@depay/widgets 6.2.2 → 6.5.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.
package/dist/esm/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import React, { useState, useContext, useEffect } from 'react';
1
+ import React, { useState, useContext, useEffect, useRef } from 'react';
2
2
  import { NavigateStackContext, ReactDialogStack } from '@depay/react-dialog-stack';
3
3
  import { getWallet, wallets } from '@depay/web3-wallets';
4
4
  import ReactDOM from 'react-dom';
@@ -918,7 +918,8 @@ var ClosableProvider = (function (props) {
918
918
  closable: closable,
919
919
  setClosable: setClosable,
920
920
  close: close,
921
- open: open
921
+ open: open,
922
+ setOpen: setOpen
922
923
  }
923
924
  }, props.children);
924
925
  });
@@ -973,23 +974,21 @@ var Dialog$1 = (function (props) {
973
974
  }, /*#__PURE__*/React.createElement("div", {
974
975
  className: ["DialogHeader", props.stacked ? 'TextCenter' : ''].join(' ')
975
976
  }, props.stacked && /*#__PURE__*/React.createElement("div", {
976
- className: "DialogHeaderAction PaddingTopS PaddingLeftS PaddingRightS"
977
+ className: "DialogHeaderActionLeft PaddingTopS PaddingLeftS PaddingRightS"
977
978
  }, /*#__PURE__*/React.createElement("button", {
978
979
  onClick: function onClick() {
979
980
  return navigate('back');
980
981
  },
981
982
  className: "ButtonCircular",
982
983
  title: "Go back"
983
- }, /*#__PURE__*/React.createElement(ChevronLeft, null))), /*#__PURE__*/React.createElement("div", {
984
- className: "DialogHeaderTitle"
985
- }, props.header), /*#__PURE__*/React.createElement("div", {
986
- className: "DialogHeaderAction PaddingTopS PaddingLeftS PaddingRightS"
984
+ }, /*#__PURE__*/React.createElement(ChevronLeft, null))), props.header, /*#__PURE__*/React.createElement("div", {
985
+ className: "DialogHeaderActionRight PaddingTopS PaddingLeftS PaddingRightS"
987
986
  }, closable && /*#__PURE__*/React.createElement("button", {
988
987
  onClick: close,
989
988
  className: "ButtonCircular",
990
989
  title: "Close dialog"
991
990
  }, /*#__PURE__*/React.createElement(CloseIcon, null)))), /*#__PURE__*/React.createElement("div", {
992
- className: "DialogBody"
991
+ className: ["DialogBody", props.bodyClassName].join(' ')
993
992
  }, props.body), /*#__PURE__*/React.createElement("div", {
994
993
  className: "DialogFooter"
995
994
  }, props.footer));
@@ -1119,7 +1118,8 @@ var SelectWalletDialog = (function (props) {
1119
1118
  }, _callee);
1120
1119
  })), [wallet]);
1121
1120
 
1122
- var connect = function connect(wallet) {
1121
+ var connect = function connect(walletClass) {
1122
+ var wallet = new walletClass();
1123
1123
  props.setWallet(wallet);
1124
1124
  navigate('ConnectingWallet');
1125
1125
  props.connect(wallet);
@@ -1128,7 +1128,7 @@ var SelectWalletDialog = (function (props) {
1128
1128
  var availableWallets = [wallets.WalletConnect];
1129
1129
 
1130
1130
  if (wallet) {
1131
- availableWallets.unshift(wallet);
1131
+ availableWallets.unshift(wallet.constructor);
1132
1132
  }
1133
1133
 
1134
1134
  var walletCards = availableWallets.map(function (wallet, index) {
@@ -1137,21 +1137,22 @@ var SelectWalletDialog = (function (props) {
1137
1137
  className: "PaddingBottomXS"
1138
1138
  }, /*#__PURE__*/React.createElement("button", {
1139
1139
  className: "Card small",
1140
- title: "Connect ".concat(wallet.name),
1140
+ title: "Connect ".concat(wallet.info.name),
1141
1141
  onClick: function onClick() {
1142
1142
  return connect(wallet);
1143
1143
  }
1144
1144
  }, /*#__PURE__*/React.createElement("div", {
1145
1145
  className: "CardImage"
1146
1146
  }, /*#__PURE__*/React.createElement("img", {
1147
- src: wallet.logo
1147
+ className: "transparent",
1148
+ src: wallet.info.logo
1148
1149
  })), /*#__PURE__*/React.createElement("div", {
1149
1150
  className: "CardBody"
1150
1151
  }, /*#__PURE__*/React.createElement("div", {
1151
1152
  className: "CardBodyWrapper PaddingLeftXS"
1152
1153
  }, /*#__PURE__*/React.createElement("h2", {
1153
1154
  className: "CardText FontWeightBold"
1154
- }, wallet.name)))));
1155
+ }, wallet.info.name)))));
1155
1156
  });
1156
1157
  return /*#__PURE__*/React.createElement(Dialog$1, {
1157
1158
  header: /*#__PURE__*/React.createElement("div", {
@@ -1160,7 +1161,7 @@ var SelectWalletDialog = (function (props) {
1160
1161
  className: "LineHeightL FontSizeL"
1161
1162
  }, "Select a wallet")),
1162
1163
  body: /*#__PURE__*/React.createElement("div", {
1163
- className: "PaddingTopS PaddingBottomXS PaddingLeftS PaddingRightS"
1164
+ className: "PaddingBottomS PaddingLeftS PaddingRightS"
1164
1165
  }, walletCards),
1165
1166
  footer: /*#__PURE__*/React.createElement("div", {
1166
1167
  className: "PaddingBottomS"
@@ -1386,11 +1387,6 @@ var ErrorContext = /*#__PURE__*/React.createContext();
1386
1387
 
1387
1388
  var ErrorGraphic = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAGHCAMAAADx+xo1AAAAeFBMVEVHcEweFhTcf2s2ERDegW3egWw1EBDbg2s1EBD/h4fSfWM1EBDTf2T/h4fTf2Q1EBDVgmYvEhI8EhJWLCV1QTWWV0a3Y07Ab1fOd1/PfWLXhWjUlH3/h4e8pZ3br12tub3ppI6hyNaY1Or+u6nx3mbO6/b14M3///8kXrGSAAAAEXRSTlMADSI/RWdshpqipsDG1OPj/QoziQ8AAB1ySURBVHja7J3bkqIwEIYBQTwLEUxgvNiqqZp5/zdczkFDEhCiPaa/q11WZcf+6f67ExgHQRAEQRAEQbSszmTlIPZyJmTvINayJoRsHMRaigRwdh3EVlZFAlg7iLVsCgFgArAXl6AFtJo1VgC72ROCUwCLKSvA2UHshZQK2KxXK9ddFaAdtI0N6YHlwD7ccy/6OBO0EHe97zSAHYGl1PV/TXAmZDV7rABWsyG4KmQzG+wBrAbjbzdr7ACsZoXxtxq3ir9bdIPrzX6/wUpgG5UBwGmQvdyNg3GHiH3cZQBcILYQtxgEr9elAzhjBrCcd94m4HolfkEQBGHBruRQc+qIWnKBaJjurc1nlR9bfn5xmuJk1VldC4agQeCNCIJpE1hGuQ1xHd46qDkAIjnZidOKqFaQ5zl/g+Ptdtv62vgsORF0q1h3oT6dQIR5vkqyAtbndNiFhRRAZxH/VnEMXO1MyH063s2V/TnRViuBy4ALIfCBZgSvFoAuDWymNwGeH4RlxHMrKWTAHmWwC32AySC8dRwD6asmeUCviLylcX9QQTagggBaKvDCI9fA1pt5q6AfHj49x08VAXvkEPoOLIKjJg2sR1kAN9hh8Mdp4LQDpgFve+OIEtiPsAA+Rn+SBhg0DfTSgD8ggI2mjmDRfyIPhLD8QJcGQvGBQeeV6o27HPmINNA0hQP/KQz/IgxI4ABJAscmAUwhwNL/MRKoS8B20uV/yJHZhQCIBJr4Q7z8m5FK1jsdow2Mv4peK+6OdS+L+pdh82n6ExtYjyrOLkoAgB18Iv5Gqn/E6vBk94FtYtseqw/pj105THwd7cLL2iOUn5fyYw+6K8Uzg+IDBMJ3j4nDeg702vRf5sPqy4iGgh2Jgb1mbWDFY1n/WDRwrIu1KJRs4BRMeYyyOUkgFSVwem8dCKbHf37rT9XfOmuDLR6LRgqA9Y8N6InKj4mnFXXXnOSJlJAmV7EnfGMS8G5TGwA/mp7aaU37TjY2EpoM0J5Ac2XTSafV647dv7d0GRNgl4QCSgIeXw4yFH+m+9bFY0xR29nAlZgN1vaO9likS/djKw//OH7aCSQkEZ2A8y6OveUgE/k/0uZiUSc8d9DW3d+b6dJMZQM9VpQ/vo7eva44IBo+Ljt+TNSYLqFM4UpICqYM9JeDjqE3P/5RVmX8oUvsOvBtRt1X3ATn0WQt344NNuiZ0H4+lPfqx2o9oOgzJ0FJfKGPZeB9DWG3HKTfJij1/7z7Vthxeh/sqpf/w/S1zWUyyhFkl5ikcIyA449MAzvdz6X0zzT/MKoSJVoKmo146yUWk8AbFXCXBo6e7DWqH0l0cnwkV9fij6SqDN3P1ko9G6UAkkJSQC8NbJ81AHdV0ULu2xG9AuIElAK6bYLhZAMgzlo/9IIf3/L8SQWUaUBaAvzRVwC1M/xCM6tXgGgE3tcL8H39kn84jZv6ZbYGv+lvJlheRioFQOkGNYQ5Moa2M2Dj5gGFFXxQwLsmQho84wOZjyGjo3veNBYVsHNAgglgCqO3kyS1AoCsC2ACWJ5MM+68xJUPgNUKYAJYDKYbClBSKQC8DZi/CcRO2lGxxgbECXAbEOTIU3TrypoiEKewi8D8XYCWQjsFaIpAfIVcBLwceQ6+11VXBAgF3AmgBZy/PEBVI+GSC7CRMFaAZehygMIoxKINODiAwAqwgAKoahjQFIF3+EDfwx7ANKx2gdoUkLw+BZT7gLZYAUwT6XYKXpoi8OIU0GwD0+UAN0cM06SAy0tTQBN+/XMh/BwxzetTQG8TaNB/2puPTeA7aFIAoS9KAU34H24M9I/l39ACGCTSpIDkJbMA/ojI6g/bLvwVaAGMweTdQNqmAPNrQiG/AcB3OgH4nSjQApiCKbYLR2QgBRhZEdjy8Df3hh7LksCPogUwhXIilDQpoC+AwDFAF2guh174gxc9D8ZKlNtFaVyTmraBddn3+/mAhx/3gpikXRhS2kBi2gZ6xyb84lPjcQxkGGUKSNsU8NJV4YCHf84Y6N/3z8/P91eOjLpzSlIDxHHgyTFN96tjZqwE/fv5bfjJkTEpIFLVgJgargGiJTj6qq5RH/4emASUZGNqQPLSGuBt5z0U5LuIOipg4iiAAaoBMzeEd5c/VoFxNLeNKWvA9aU1QIOriz8qYBqZ/FkpSVsDTM+CFtsOVscfi8BCXNsaYH49YIDpXWBU1n9MAcsRxQ1XQCZA0QR8FdHGFLAkrQlIAZmAna4AiHznyHMkbQ0AZAIOygYQa8CiXOMGQCZA3gX+SsmR53YGZa0AUjgmQJkA0AQ8Pw5iKhOQgDEB3hMJ4PdfjugHwpnKBLxsc/DTXeA3CmDmPJgqlgPily4HqAiULQC2AXMeJ6lYDohTw9uCZo8Bvn5RAHPXBDPFKCiB4gJ3sgqAApi9NYwpXOAFigs8yCoACmD2k4OowgUSKC7wJKsAKIDZG4OULpACmQXKtgGhABYwAapZYApjFujJKgAKYIEaoGoDEhhtgI8CMAKTbg5uBXCB0QYE8jEgDoLmuoAsV7UBpm8RnDUG+EIBzCZSbwmIYbQBO4UHxMUgEyRdGwBCAAeFAHA52ARp1waA6AMlAvhGAZiC94EgloNOKgHgjiAD8D4QxCBAthKAXaApsq4PhDAI8GQCwCbAGATSIMCX3RCAFmA25e9Ujgb7QHE5yHkXvmwpAC3AbGT3iV+6PhDAgnAgEwBagDxfYj2IKgYBVwACkO4HQguQL7EaoBRACmASJL0tCC3Af/bObadxGAigXQRCQhVybh7bUWm7LOH//3CTtonTdWwnjW9h5zzwsEJlYU5mxtcIJwLQxGeC9kJDgxXAuwBlwgKQBhcCnPQAlOinAssEpgLfhYYTjgF8CQDDTFACU4FCCyYA4WRnsCoAS0iAX0JLgwnAxTwAJUnPBT/p/T1hAnDSBRL9prA8vgDPQk+DcwAOagAYFgOy+IsBJgFOWABWQhiwycWAdAR4wRviIiAXA6KvBr0KAzXG3w+DADRtAcQJ4+8FuRoUfWP4m7mGnbD/8wCRq0HRlwP3wkzd4AqAezYkwPWu+Kb5xKffIQmtB+PbgmIglwNRgJ8NoxR40gIIxCM8/Q0BAvEI0A6esABPAvHIVQCGAvyv6ASg2Y0itgD41miv0AtgECD2njAUwCugEQCSEeBFIB5BAf5zbj1AwrtCX8UMTqcTbgNz+g5Jlt3I0xegbnApyPlbA/h2BPiUewEwCyyHTW8KJMkI8CbMNLgdYB2cMTHBVgRocEO4H/LsRux94XthgDS4I8wT2xDghMeCfTEIAAkLUOPFAN5IRoB30wAAjwV5YxMC4NUQ/khGAIIHwzxDiPloUOSzYaYhIN4OtB7STQSRbQqAZ8MdALQFTGfD4grwyzAGwAviHEAvpCvAEwrglf6SmC0KcEIB1sNRgP+bLQuAJeBhCOecXQB6gTHeQchYgDwvWiiDmAI84yjAMRyAWoCpf4M4N0Q84zyASzjQFcQ4GGAUAGcCQ4a/I/z50GfT5SC4FrAEsjr8LcF3Bb0IA9gDLur3nbAPfFOQUYBPbAHmQhh1RGADjALUWAHm4iL9R6kCL8LEJyaAwM9/8MHAizDSYAcwB6fxpzTkdWEWAWocA86AULeELAIvwszpPv5EIF4bgOAp4FXYDMAGMHABCNsFzD8b2mD9D1MAOnbBeBV26s+m+cQ1oHAJIGQNeBWIk01fbglXA1AAkWACCDgOQAGEvyEAkI8WAik3ASjAUuqOGS0gfPwZ+IBkmwAUYAmH4/n3jeOhNlaAa/ilAqk2ASjAbOrj73vOB20FgD8Ky5JAsCvjUICZ1O2zr3IQtvhLeJJdIArw2NM/VAKwxV/CUuwCUYBZtV8JvKwDEwb80QAowDa5e/y/Wu4UAHP/N+4EUYAtMqr+X989YwlAVwCalvsUkN44EAWYFX8ZfqmArALTCeC2iHaXAlCAzVEr4R+QYwE6RsZfNQAF2Brj+OsNgIkK8N0zrgI8uSMiKMC8/P8tmagCRyoRMgHcGNcAFGBbnJXnf7oNgFEL4EYALAEpMIz/vi8YugAU4Cci539sAhxRgB/I0ADaBTiPBDA1gR84EbQhzjYBRpNB4ybwikwASQuA74wyNwDGJnByPpj1wZYJ4IFhYLBrY1EAUwEwpwDNgsAQ7SH+EkhuORgFsBYAmQPU/K8ZB8rFgH9Wg9LbEIIC2EYAUgF1KUhi2A2Q9EQgCqAtAIs4u14ODjUKRAEsHaAddTkIHGwI2YUCBXCRAGQLYDKAJ7glEF8e7j4BtPCp+IsUd4WjAPohwPIOQMJXbgoOd1EUCjDJsviD+VyQPBuU3DQQCuAgA8j464+G8UTPBaEA05BangGzcdQHl3903KKfZgXYPQlEQ32QRwElyvEwDzeEhBsDoABW6osHZ134vdwQEGwWKAUBeJEXZcVEYAgtu5c1rBDh3J4P9nNHSMgEEF+AMrtQhHSAVMXtpz6QEVoTWura/T3RETqA3e6XiEyV9bTPYxCgzIcfKdzg9KLAYOtAV0RsqiKoAlBmPXnJhRtc9oFBC0AKAgRVgPsIv9MiEHAO6EoSl79WedbjMiwBf46zkUDQBqDjXaTA+MmshCdglGlAOMaRASFHgCkJ0EXH18MpH3+vjrkwYB8+/skIIETp8fm8yzGFnxHnegPeguf/lr1IBurxER0nGOEJvpn7YRMVQEDuK0rSrcy5W65eHBch/Xe8iYTwZUCVhYj/qjIAwTaCpyzAOFKFu1aw/VTXc3+OXx8FjMUpAD4E6FZNju26SfulnTMXiygyDwaUmSR39aEGBWB5+FsCzwD7Oh16OKpLpoe5hbq8xN91t15mY/Ky8u4AX+IAAGM/RoCDdt28nr9EI8ldGFBmCkXlf/6TM5hhQQWsJ1IP6PJgQBt+PUfbcsCA2ypQZlPk/tOALRVUVZvwcjawi4Q7AWTy1xhgDr8fA5T4K2tB9o0gN+qHuwLOGNyg16/F9Tf+SQLU57tDlF/zBQA1/M669irTk1fWblbuCZSbgFZAlP9WwXred5FwtC24j//oBK1ys/qSGLmZDwDLZ3NTN6vdBrieCQGCLwMbBKDF8qnYIf6SWQmAXx5/XymgyszkoPdZj1WBKresZpSqAKH3gZgE6NpxeKj+629QOItJ2Dj+3e7QqhsXAQfomqSuS6LrdpzePvTykdcPLe6Uo4/0M+famneKeQKUrCfWRODuaTpvVo/cpmC4QkPzJ6vk6JxyEQgC1TDjUFgFWJ4Eqsz2BBX/ChBvIlAnQPlAAfi+Z1YDcA2+h+VfG/w67VTOPR4upbaOakspACHJC7BT/zSLBThM3qIzawhIYwS/h1UVmTmmVfLa0fJ88363MDcJUDHG4k4E7nZksgcolncA6iVKsgHYHkMXqMj9ZasCeZfW5AYBMvUdN6roE4G73fu0n0TMx5YAfL54mnhqHWQRULtb82/Fh94CaAeb+I4eGn0eSAqg1LClFUAbfxcjZ93qUX4ZPfioI7IIqO2tMa/RSwk1CQBZDyQgwH66i60WC6BvAPzQTSD7PFAgi4Ba3gxiyz8foRoBaNYTfyLwL3tXuJysDkSRQm2t2hggm+DXqZ3Off9XvAHFYEMSohBX5PxyOq0U9mT37G7YdBCAKAr7rJX/wtq/qSCMt5dYBQFTfLMkAUztERTm+hS9fyGwa0cI30lkt1SBtAqQG4ca+73vJj8FCr3MerpQ6cb3dS6ANkkAZwYRWCAqBDYE0G+B+xLgP1MFyI3Dr8Kht/39GbA/tK5zcAcBhwv4NvYfslIRwFYJvn8hMIqWhn+w8JZLXT2Ar77m96IAtOzf/siHvVA7CNhigL68c0UAKDXkmOpAUWq8h7740g7V9BAA5PCrw/U32bmjC3VNj/bpHO1/dewdd+ZIBPalafUoAnBbIRBBHShKDV6MktvHan77LX+Ffrs8cvFXERZ2++s4XCkDjP6NqPhJTHWgDFMdKEpMpUp281C1H1/7K/Tp8ucaJ2ys/e3GoT+3exGgaHki3h0Byl2DAkEZIEpMSyy/+XDt/TX2d9slV/bXVlXhfaV9/1vTy8GOR0eEKEtbIRBBGaBzShDziwHltfYvf40ojRBU7fDX3EI25JUqfHe2BIwSV1C384RdAwxlgE4ClNQvD/i60v77XyP2rm0+RbdfEHYH4C8EfzoYYL7FouZmz31KFEMZIIqMXjYre+PHtWvG2ywHx/Ojoru+Kga8UqfEbWc6BvWU9yRAhiELVP1g/Wny6xnwXZZjEeCYBBaGZz/klQzuTZHc4N2htCJHlQWqdqAPk3X82LfODumYRZHnrIMY8sfFoFRz7Q/7sntO94YwDFmg6gZ1xDLi+V6QMv/NBCgHhptq/mmuQQIWLgKgygINBBC7K7aGfn1LfO2HMMvge0gON1Bt/9PTARRtdUI4CHO3qAJgSAJkN8gcqOjYL1EejG55cDio5s+AH4MDyFvDI6HUwZElAYb3gyHAPA2JQyj733Qp0sWAvUHdQXtYiCg1MGRJgIEAZRZmnsIhlP1vvNS3OwDwtgMomakVVCBLAkyvh8Ltr+b1wj6Q+SX2zn6wW+Qq+1scgG07UJkj04BRYk1Xh99r12GXIObXt57sr55/8L03ufb8coC4LQlgODSgkQBwDFRj68DLjVpk/MtZN4W5Xxj/qV4SN7/mChcEAFsSgEQDms+MyAMFgWng8mkRZiKAwKYBzRPjBQ0VBCaAQu1HsEsAhqwOKEEcNzXCWxeTA6jF0iIA2FpBBYbNAI550fkwg3qmD5GpANAKAdzWCgIkEsA2LljQgELwgUEyrUUNTMLWCaBoJIBtVCAbYFDPEyDrGDfCAUipQ+CTANZBYcXMADdy435EiwYskFQBXIPCspkBDpDc+IisEgDBS0F9Do8kDQNmHWB/QBnxGoedIWkEuE8OE3SgoZ3TBM+8Hg+hjQRAkwTqaYDe5JrrASYAVa8l+kkAPBHAOTGc07FO8nl4FL5zzfPmDzBFgCh1urmxhjA8NoQK6GUbwMBEiAxjBIjiHndqdAJQZFkWZvr6nSCKLMsLMBxEqMd/aIqAOgTKCNDj/FiSG870g3zyErFhf84NQ87zzoOj7CEDTxXIrQIV3fU4UNBBpnqjxpn7lLWsrH5adJ8kbo8AaPoAbhWoM57mQhG6AS2nCqqfOSdy2u0R1VYgsEYAwCQBtVqgwwkoChS7FqYaAxqjKQbw3HLEqWBHEFsEyFBJQJcI0P1ehRyU/Se9b4TtLhkAuWU0nXIA1mjC0DQCfQ+QZdnuDPlxjFPecAG0u7QPpyQ2ByDQOoAo9Z/PqYNOzwmoqKchKywHSPPub0PrAFQlwA2iPZRQB/OGR2E1v5kAYO+snh3APY6LN2Bb9gfp8AKTbBeAl/mVBgDr11FwOIA4SdJ0+f6+2Wzeo1BY+s7pHuGIJ3Qw8DxnpRkEAEjZidy9GVQa/d8FghUK49ITvJsCU3IBbFdjqKHU3L0RIP33F+FcwHoY/zilgmA3xfltX0eZpQi41AgQTiampScIfUoC0PJKCOoeDhqfDS/Dfx0MArYKyCARckoiYNgbLPqMh47TNEni+KgHKh5E4bAcJEeakgfIfDJdzhgQqwPwPSp2E1QCXCEDBZ04AbQQYB6aI4BJgOvLVAa4tfl2FQ6C9opWQ7iAqWcBhWH5H0Ec2+qYOQPozggqIsTHqsD76HLA2wWQbLgIiRJ97w+YkwB5zR6fA0Leay0YNCM0uQA7rSfcEmRaAOBW+4P9mwqviRD/NERjIy59AXTSvQBS9Kl087P9idVXKvuvFz2McWn8MBnB6or9chO2/1+ZkwlrAAB7ACi4JgCdSYCqCoTQAJJ1pPQGO1Mgm5IAbACZ1v03EACsRVOq2d+FWNp8WZUFAhjeVg50A4pcopjidpAKXN2ejQDc6iYpU/YPadDxOwIzagYAsZYAMngQ+0fxtpzhDeLQETl/FPu79gerLQ98qpuA+0FwUF7fDkYLfsYau/3dLQGV9fKnnRjAgdUQvVQk41gmQg6TCzKFqeo+OzhrAKUTouDcWv97eUW0MbCXEGQtPKMPAOZBAAGt8J9EOhaUfkTIENsZwJ/bBRCmIJy/LFruvzP8v1BKI2xwpAIclAdokwLgGYShcNtfQfD2/o+HIYAzGRQnCoD2UGCKQUFwDlz88QDAe/2hWv5mAizwCQIVBUwgHNQjgOnKAnL2d6J9s72cnSX6K0gCvDR64AORIFhfqYsYqEcnIR6cD7zjxkS/myL9mv+flL4eP73SCkhcgN8WQc4UoPWzh1QGhGgB3yL53fZf2ms/b6dV/yKXP63dARakpOwNAZoyYgoP0yUUACq70ZntA6EFfzMB6GLxKh0BNgJ49gUEgKYLG5ALngDSOjIB7T/m14ob0WP1K8d/sv7HC6YQcM1OcaKiI2EtCO1n0PazQtxDKggOFVRBGyz/MXB/979NrcZUlaDG/K2ccIGEB8l2CPnELA5V7acJ21rg+tLWKVuZEvyVrKh9v1L+bhdQmf/48fOcDiChwJLcnkDx5gfMTgqhSk2d+pFc25/lACeS2cqZrIXbqgZ8nXqY7+Xt7fUY+aXd3061geoTDsSr8sanIWyaGgwJhBYqONNJQU5enJO2sTWnDS1jWy4LQ5SzSGV9W+R3p4SVLKyEARIXIOPAYNuE2smCxRKMWS0GpU4UbmnVcAfvuOIOwG2lCyJWftbXq4KV+69QcQENhqNAtUJAgnd5BW4hQLemVCAdyYfNyYyRpBJr3HejkgDN8qeIioIDU0BPHzVd6DC2MGeaRpmhr/YKQ2ak65vf46uMfwz/i+gVW0YYJatyNBAhOBdaQm4iBekghUVmEBhhtf/F6mbzNwT4PDaEPlDFgBrxMtyO0aaR3pcUHfIeyJ9vE4Mt9r/YLr0Cf7LZJAYCVKv/FA+QxYDGDYRM1onuJySEJigAxN9fC1ha8o/8+uSPs83fzpVgdFXBBmlQDmAHWaWRLxYdr/rq9b8Frr7AHf0AXmz9A7968dtJnA88taAuDixHSwseBOul1fruF3/jHklhhBmLpyUBsRvfjVQLAg+yX1hHkq7CpQYIQNardICEb6MFgcd4Y6AbsWTBE/iC7XqZDvViV/wv8AzAAKhpsJ2kOqxMnwy7Gpdhhv7cA/VMq9V6ElzYSoc/0nyGTfAhcHdAfCSDZMOD6QQZ6ZfS8sMu+o4gsBnzCsggyZDUZNgiJsNWGj7UTJYJB4FengEPGYg0ezi7P1kQ6EsGKRqCsmFbG11afVw/b0USaPTbI2FxDBTSOVSEGEpGCg7b9dHg9dCtwCvdxPx088RBoDcjFi80k0gkL05YdmLVfEiPSCrEEi+7ChEuJMv3gNMfHxy7Cte3xV53EqhKqskm8PjPB8fHTuL1+l02OwlUXbXL8a+zChzZgjV/MO2tipXxl6ETj4fEjT78cyeBamPFpjb+EC2l50Ct4q5ujC92Fe6W6j1LI2hMnEx4F/qMg2euAQZ34viSgLkGGFTG4UsCnrERdMc04BNbEjAHAX8vfkMYX+zQJQFzEPDWcTeoQJSF4LkRFK4YjFIDzkEgnApEqQHnIBDOiugKwXMQCOvHkWrA8/thy2jGmEoOYSG4FQRmFzC6GTEWgs9IZgKMXs3BqwErpJsQh4FOAUc7TkoDzgiiAvFtBpgRsqeLWgPOGN+QqDXgjPFdOdpC8AwF+4SE/9u7gxWHYRiKonkITMAL4///2XEndFzquEEhBJW5Z9GNQV3o2VEaaBrTMMx5h0fZow6Xgu/SXqJRN9menTx1+5jysw73A1/ESu3K78e50eG1TpT/4MdIi15ZHck9Aw6KSQspCEXd5/5Xc5ZNdVT6d0R5K8t/pplcd6S24DlI1rpjfayQghA0ZfVz75bBUYq6tkAGQtBgsnf7COdT6uQcIQMhhAoACbidYgWABNxN8s4AJp80mQFIQAhyHgHZ5JXKzgFAAKLwJKCsvf0elt/q0P84jrZvLlvP8toe5Jxnaf2r1NpPAAI5bp6ZrrFVov/B6KT5L4DXVcQ9Lm+UXHg2FMIlnfecCQt9D4jtCQAAAAAAAAAAAABvfgCECMuQGDaxMAAAAABJRU5ErkJggg==";
1388
1389
 
1389
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
1390
-
1391
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
1392
- var ReactDOM__default = /*#__PURE__*/_interopDefaultLegacy(ReactDOM);
1393
-
1394
1390
  function ReactDialogStyle (styles) {
1395
1391
  let background =
1396
1392
  typeof styles === 'object' && styles.background ? styles.background : 'rgba(0,0,0,0.4)';
@@ -1457,7 +1453,7 @@ function ReactDialogStyle (styles) {
1457
1453
  }
1458
1454
 
1459
1455
  const _jsxFileName = "/home/runner/work/react-dialog/react-dialog/src/components/Dialog.jsx";
1460
- class Dialog extends React__default['default'].Component {
1456
+ class Dialog extends React.Component {
1461
1457
  constructor(props) {
1462
1458
  super(props);
1463
1459
 
@@ -1505,11 +1501,11 @@ class Dialog extends React__default['default'].Component {
1505
1501
  const classNames = ['ReactDialog', this.state.open ? 'ReactDialogOpen' : ''];
1506
1502
  const style = ReactDialogStyle({ background: this.props.background });
1507
1503
  return (
1508
- React__default['default'].createElement('div', { className: classNames.join(' '), __self: this, __source: {fileName: _jsxFileName, lineNumber: 54}}
1509
- , React__default['default'].createElement('style', {__self: this, __source: {fileName: _jsxFileName, lineNumber: 55}}, style)
1510
- , React__default['default'].createElement('div', { className: "ReactDialogRow", __self: this, __source: {fileName: _jsxFileName, lineNumber: 56}}
1511
- , React__default['default'].createElement('div', { className: "ReactDialogCell", __self: this, __source: {fileName: _jsxFileName, lineNumber: 57}}
1512
- , React__default['default'].createElement('div', { className: "ReactDialogBackground", onClick: this.onClickBackground.bind(this), __self: this, __source: {fileName: _jsxFileName, lineNumber: 58}} )
1504
+ React.createElement('div', { className: classNames.join(' '), __self: this, __source: {fileName: _jsxFileName, lineNumber: 54}}
1505
+ , React.createElement('style', {__self: this, __source: {fileName: _jsxFileName, lineNumber: 55}}, style)
1506
+ , React.createElement('div', { className: "ReactDialogRow", __self: this, __source: {fileName: _jsxFileName, lineNumber: 56}}
1507
+ , React.createElement('div', { className: "ReactDialogCell", __self: this, __source: {fileName: _jsxFileName, lineNumber: 57}}
1508
+ , React.createElement('div', { className: "ReactDialogBackground", onClick: this.onClickBackground.bind(this), __self: this, __source: {fileName: _jsxFileName, lineNumber: 58}} )
1513
1509
  , this.props.children
1514
1510
  )
1515
1511
  )
@@ -1519,7 +1515,7 @@ class Dialog extends React__default['default'].Component {
1519
1515
  }
1520
1516
 
1521
1517
  const _jsxFileName$1 = "/home/runner/work/react-dialog/react-dialog/src/index.jsx";
1522
- class ReactDialog extends React__default['default'].Component {
1518
+ class ReactDialog extends React.Component {
1523
1519
  constructor(props) {
1524
1520
  super(props);
1525
1521
 
@@ -1542,8 +1538,8 @@ class ReactDialog extends React__default['default'].Component {
1542
1538
  let _document = this.props.document || document;
1543
1539
  let container = this.props.container || _document.body;
1544
1540
  if (this.state.open) {
1545
- return ReactDOM__default['default'].createPortal(
1546
- React__default['default'].createElement(Dialog, {
1541
+ return ReactDOM.createPortal(
1542
+ React.createElement(Dialog, {
1547
1543
  background: this.props.background,
1548
1544
  close: this.props.close,
1549
1545
  document: _document,
@@ -1560,8 +1556,6 @@ class ReactDialog extends React__default['default'].Component {
1560
1556
  }
1561
1557
  }
1562
1558
 
1563
- var ReactDialog_1 = ReactDialog;
1564
-
1565
1559
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
1566
1560
 
1567
1561
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
@@ -1593,7 +1587,7 @@ var ErrorBoundary = /*#__PURE__*/function (_React$Component) {
1593
1587
  }(React.Component);
1594
1588
 
1595
1589
  var ErrorProvider = (function (props) {
1596
- var _useState = useState(),
1590
+ var _useState = useState(props.error),
1597
1591
  _useState2 = _slicedToArray(_useState, 2),
1598
1592
  error = _useState2[0],
1599
1593
  setError = _useState2[1];
@@ -1606,8 +1600,8 @@ var ErrorProvider = (function (props) {
1606
1600
  var setErrorFromChildren = function setErrorFromChildren(error) {
1607
1601
  setError(error);
1608
1602
 
1609
- if (props.error) {
1610
- props.error(error);
1603
+ if (props.errorCallback) {
1604
+ props.errorCallback(error);
1611
1605
  }
1612
1606
  };
1613
1607
 
@@ -1618,7 +1612,7 @@ var ErrorProvider = (function (props) {
1618
1612
 
1619
1613
  if (error) {
1620
1614
  console.log(error);
1621
- return /*#__PURE__*/React.createElement(ReactDialog_1, {
1615
+ return /*#__PURE__*/React.createElement(ReactDialog, {
1622
1616
  container: props.container,
1623
1617
  close: close,
1624
1618
  open: open
@@ -1666,6 +1660,10 @@ var ErrorProvider = (function (props) {
1666
1660
  }
1667
1661
  });
1668
1662
 
1663
+ var AlertStyle = (function (style) {
1664
+ return "\n\n .Alert {\n background: rgba(0,0,0,0.08);\n border-radius: 0.4rem;\n font-weight: 500;\n padding: 0.5rem;\n }\n ";
1665
+ });
1666
+
1669
1667
  var BlockchainLogoStyle = (function (style) {
1670
1668
  return "\n\n .BlockchainLogo {\n border-radius: 999px;\n }\n\n .BlockchainLogo.small {\n height: 18px;\n width: 18px;\n }\n ";
1671
1669
  });
@@ -1679,11 +1677,11 @@ var ButtonPrimaryStyle = (function (style) {
1679
1677
  });
1680
1678
 
1681
1679
  var CardStyle = (function (style) {
1682
- return "\n\n .Card {\n align-items: center;\n background: rgb(255,255,255);\n border-radius: 0.8rem;\n box-shadow: 0 0 8px rgba(0,0,0,0.03);\n cursor: pointer;\n display: flex;\n flex-direction: row;\n margin-bottom: 0.5rem;\n min-height: 4.78rem;\n padding: 1rem 0.6rem;\n width: 100%;\n }\n\n a.Card, a.Card * {\n color: inherit;\n text-decoration: none;\n }\n\n .Card.transparent {\n background: none;\n box-shadow: none;\n }\n\n .Card.small {\n min-height: auto;\n padding: 0.5rem 0.5rem;\n margin: 0;\n }\n\n .Card.disabled {\n cursor: default;\n }\n\n .Card:hover:not(.disabled) {\n background: rgb(240,240,240);\n box-shadow: 0 0 0 rgba(0,0,0,0); \n }\n\n .Card:active:not(.disabled) {\n background: rgb(235,235,235);\n box-shadow: inset 0 0 6px rgba(0,0,0,0.02);\n color: inherit;\n }\n\n .Card:hover:not(.disabled) .CardAction {\n opacity: 0.4;\n }\n\n .CardImage, .CardBody, .CardAction, .CardInfo {\n align-items: center;\n display: flex;\n min-width: 0;\n padding: 0 0.4rem;\n }\n\n .CardImage {\n flex-basis: auto;\n flex-grow: 0;\n flex-shrink: 0;\n justify-content: center;\n position: relative;\n width: 3.6rem;\n }\n\n .CardBody {\n flex-basis: auto;\n flex-grow: 1;\n flex-shrink: 1;\n line-height: 1.4rem;\n padding-left: 0.6rem;\n text-align: left;\n }\n\n .CardBodyWrapper {\n min-width: 0;\n }\n\n .CardAction {\n flex-basis: auto;\n flex-shrink: 0;\n flex-grow: 0;\n padding-right: 0;\n margin-left: auto;\n }\n\n .Card.disabled .CardAction {\n opacity: 0; \n }\n\n .CardInfo {\n display: flex;\n flex-basis: auto;\n flex-direction: column;\n flex-grow: 0;\n flex-shrink: 1;\n justify-content: center;\n margin-left: auto; \n padding-right: 0;\n }\n\n .CardImage img {\n background: white;\n border-radius: 99rem;\n border: 1px solid white;\n box-shadow: 0 2px 8px rgb(0 0 0 / 10%);\n height: 2.8rem;\n position: relative;\n vertical-align: middle;\n width: 2.8rem;\n }\n\n .CardImage .BlockchainLogo {\n position: absolute;\n bottom: 0;\n right: 0;\n }\n\n .CardTitle {\n font-size: 0.9rem;\n color: rgb(150,150,150);\n }\n \n .CardText, a .CardText {\n color: ".concat(style.colors.text, ";\n flex: 1;\n font-size: 1.3rem;\n }\n\n .CardText strong {\n font-weight: 500;\n }\n\n .CardText small {\n font-size: 1.1rem;\n color: rgb(150,150,150);\n }\n\n .CardAction {\n opacity: 0.2;\n }\n\n .Card.More {\n display: inline-block;\n text-align: center;\n }\n ");
1680
+ return "\n\n .Card {\n align-items: center;\n background: rgb(255,255,255);\n border-radius: 0.8rem;\n box-shadow: 0 0 8px rgba(0,0,0,0.03);\n cursor: pointer;\n display: flex;\n flex-direction: row;\n margin-bottom: 0.5rem;\n min-height: 4.78rem;\n padding: 1rem 0.6rem;\n width: 100%;\n }\n\n .Card.Row {\n border-radius: 0;\n margin-bottom: 0;\n box-shadow: none;\n min-height: 4.3rem;\n padding: 0.4rem 1.3rem;\n border-top: 1px solid rgba(0,0,0,0.05);\n }\n\n .Card.Row .CardText {\n font-size: 1.2rem;\n }\n\n .CardTokenSymbol {\n width: 40%;\n min-width: 0;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .CardTokenName {\n text-align: right;\n opacity: 0.5;\n width: 60%;\n min-width: 0;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n \n .Card.Row .CardTokenName .CardText {\n font-size: 1rem;\n }\n\n .Card.Row .CardImage {\n width: 2.5rem;\n }\n\n .Card.Row .CardImage img {\n height: 1.9rem;\n width: 1.9rem;\n }\n\n a.Card, a.Card * {\n color: inherit;\n text-decoration: none;\n }\n\n .Card.transparent {\n background: none;\n box-shadow: none;\n }\n\n .Card.small {\n min-height: auto;\n padding: 0.5rem 0.5rem;\n margin: 0;\n }\n\n .CardImage.small {\n width: 1.7rem;\n }\n\n .CardImage.small img {\n height: 1.4rem;\n width: 1.4rem;\n }\n\n .Card.disabled {\n cursor: default;\n }\n\n .Card:hover:not(.disabled) {\n background: rgb(240,240,240);\n box-shadow: 0 0 0 rgba(0,0,0,0); \n }\n\n .Card:active:not(.disabled) {\n background: rgb(235,235,235);\n box-shadow: inset 0 0 6px rgba(0,0,0,0.02);\n color: inherit;\n }\n\n .Card:hover:not(.disabled) .CardAction {\n opacity: 0.4;\n }\n\n .CardImage, .CardBody, .CardAction, .CardInfo {\n align-items: center;\n display: flex;\n min-width: 0;\n padding: 0 0.4rem;\n }\n\n .CardImage {\n flex-basis: auto;\n flex-grow: 0;\n flex-shrink: 0;\n justify-content: center;\n position: relative;\n width: 3.6rem;\n }\n\n .CardBody {\n flex-basis: auto;\n flex-grow: 1;\n flex-shrink: 1;\n line-height: 1.4rem;\n padding-left: 0.6rem;\n text-align: left;\n }\n\n .CardBodyWrapper {\n min-width: 0;\n }\n\n .CardAction {\n flex-basis: auto;\n flex-shrink: 0;\n flex-grow: 0;\n padding-right: 0;\n margin-left: auto;\n }\n\n .Card.disabled .CardAction {\n opacity: 0; \n }\n\n .CardInfo {\n display: flex;\n flex-basis: auto;\n flex-direction: column;\n flex-grow: 0;\n flex-shrink: 1;\n justify-content: center;\n margin-left: auto; \n padding-right: 0;\n }\n\n .CardImage img {\n background: white;\n border-radius: 99rem;\n border: 1px solid white;\n background: rgba(0,0,0,0.1);\n box-shadow: 0 2px 8px rgb(0 0 0 / 10%);\n height: 2.8rem;\n position: relative;\n vertical-align: middle;\n width: 2.8rem;\n }\n\n .CardImage img.transparent {\n border: none;\n background: none;\n box-shadow: none;\n }\n \n .CardImage .BlockchainLogo {\n position: absolute;\n bottom: 0;\n right: 0;\n }\n\n .CardTitle {\n font-size: 0.9rem;\n color: rgb(150,150,150);\n }\n \n .CardText, a .CardText {\n color: ".concat(style.colors.text, ";\n flex: 1;\n font-size: 1.3rem;\n }\n\n .CardText strong {\n font-weight: 500;\n }\n\n .CardText small {\n font-size: 1.26rem;\n color: rgb(150,150,150);\n }\n\n .CardAction {\n opacity: 0.2;\n }\n\n .Card.More {\n display: inline-block;\n text-align: center;\n }\n ");
1683
1681
  });
1684
1682
 
1685
1683
  var DialogStyle = (function (style) {
1686
- return "\n\n .ReactDialogBackground {\n backdrop-filter: blur(5px);\n background: rgba(0,0,0,0.7);\n }\n\n .Dialog {\n margin: 0 auto;\n position: relative;\n width: 420px;\n box-shadow: 0 0 20px rgba(0,0,0,0.1);\n border-radius: 0.8rem;\n }\n\n @media screen and (max-width: 450px) {\n \n .Dialog, .ReactDialogAnimation {\n width: 100%;\n }\n\n }\n\n @media (orientation: portrait) and (max-width: 900px) {\n\n .Dialog {\n align-content: stretch;\n display: flex;\n flex-direction: column;\n height: 100%;\n }\n\n .DialogBody {\n flex: 1;\n align-items: flex-end;\n max-height: 60vh !important;\n }\n\n .DialogFooter {\n padding-bottom: 20px;\n }\n\n .ReactDialogStackCell {\n vertical-align: bottom;\n }\n\n .ReactDialogAnimation {\n bottom: -100px !important;\n max-height: 66vh !important;\n top: inherit !important;\n transition: opacity 0.4s ease, bottom 0.4s ease;\n }\n\n .ReactDialog.ReactDialogOpen .ReactDialogAnimation {\n bottom: 0px !important;\n }\n\n .DialogFooter {\n border-bottom-left-radius: 0 !important;\n border-bottom-right-radius: 0 !important;\n }\n }\n\n .DialogBody {\n background: rgb(248,248,248);\n overflow-x: hidden;\n overflow-y: auto;\n }\n\n .DialogBody.HeightAuto {\n height: auto;\n }\n\n .DialogHeader {\n background: rgb(248,248,248);\n border-top-left-radius: 0.8rem;\n border-top-right-radius: 0.8rem;\n display: flex;\n flex-direction: row;\n position: relative;\n }\n\n .DialogHeaderTitle {\n flex-basis: auto;\n flex-grow: 1;\n }\n \n .DialogHeaderAction {\n height: 3rem;\n }\n\n .DialogFooter {\n background: rgb(248,248,248);\n border-bottom-left-radius: 0.8rem;\n border-bottom-right-radius: 0.8rem;\n line-height: 1.5rem;\n min-height: 2rem;\n position: relative;\n text-align: center;\n }\n\n .ReactShadowDOMInsideContainer > .ReactDialog {\n display: table;\n }\n\n ";
1684
+ return "\n\n .ReactDialogBackground {\n backdrop-filter: blur(5px);\n background: rgba(0,0,0,0.7);\n }\n\n .Dialog {\n margin: 0 auto;\n position: relative;\n width: 420px;\n box-shadow: 0 0 20px rgba(0,0,0,0.1);\n border-radius: 0.8rem;\n background: rgb(248,248,248);\n }\n\n @media screen and (max-width: 450px) {\n \n .Dialog, .ReactDialogAnimation {\n width: 100%;\n }\n\n }\n\n @media (orientation: portrait) and (max-width: 900px) {\n\n .Dialog {\n align-content: stretch;\n display: flex;\n flex-direction: column;\n height: 100%;\n }\n\n .DialogBody {\n flex: 1;\n align-items: flex-end;\n }\n\n .DialogFooter {\n padding-bottom: 20px;\n }\n\n .ReactDialogStackCell {\n vertical-align: bottom;\n }\n\n .ReactDialogAnimation {\n bottom: -100px !important;\n top: inherit !important;\n transition: opacity 0.4s ease, bottom 0.4s ease;\n }\n\n .ReactDialog.ReactDialogOpen .ReactDialogAnimation {\n bottom: 0px !important;\n }\n\n .DialogFooter {\n border-bottom-left-radius: 0 !important;\n border-bottom-right-radius: 0 !important;\n }\n }\n\n .DialogBody {\n background: rgb(248,248,248);\n overflow-x: hidden;\n overflow-y: auto;\n }\n\n .DialogBody.ScrollHeight {\n height: 30vh !important;\n max-height: 30vh !important;\n }\n\n .DialogHeader {\n background: rgb(248,248,248);\n border-top-left-radius: 0.8rem;\n border-top-right-radius: 0.8rem;\n min-height: 3.4rem;\n position: relative;\n width: 100%;\n }\n\n .DialogHeaderActionRight {\n position: absolute;\n top: 0;\n right: 0;\n height: 3rem;\n }\n\n .DialogHeaderActionLeft {\n position: absolute;\n top: 0;\n left: 0;\n height: 3rem;\n }\n\n .DialogFooter {\n background: rgb(248,248,248);\n border-bottom-left-radius: 0.8rem;\n border-bottom-right-radius: 0.8rem;\n line-height: 1.5rem;\n min-height: 2rem;\n position: relative;\n text-align: center;\n }\n\n .ReactShadowDOMInsideContainer > .ReactDialog {\n display: table;\n }\n\n ";
1687
1685
  });
1688
1686
 
1689
1687
  var FontStyle = (function (style) {
@@ -1714,6 +1712,10 @@ var LabelStyle = (function (style) {
1714
1712
  return "\n\n .Label {\n background: rgb(248,248,248);\n border-radius: 999px;\n color: ".concat(style.colors.primary, ";\n font-size: 0.8rem;\n padding: 0.1rem 0.5rem;\n margin: 0.1rem;\n }\n\n ");
1715
1713
  });
1716
1714
 
1715
+ var LinkStyle = (function (style) {
1716
+ return "\n\n .Link {\n color: ".concat(style.colors.primary, ";\n cursor: pointer;\n text-decoration: none;\n }\n\n .Link:hover {\n filter: brightness(0.8);\n }\n\n .Link:active {\n filter: brightness(1.0);\n }\n ");
1717
+ });
1718
+
1717
1719
  var LoadingTextStyle = (function (style) {
1718
1720
  return "\n\n .LoadingText {\n color: ".concat(style.colors.buttonText, ";\n display: inline-block;\n text-decoration: none;\n }\n\n @keyframes blink {\n 0% { opacity: .2; }\n 20% { opacity: 1; }\n 100% { opacity: .2; }\n }\n \n .LoadingText .dot {\n animation-name: blink;\n animation-duration: 1.4s;\n animation-iteration-count: infinite;\n animation-fill-mode: both;\n }\n \n .LoadingText .dot:nth-child(2) {\n animation-delay: .2s;\n }\n \n .LoadingText .dot:nth-child(3) {\n animation-delay: .4s;\n }\n ");
1719
1721
  });
@@ -1738,10 +1740,18 @@ var ResetStyle = (function () {
1738
1740
  return "\n\n html, body, div, span, applet, object, iframe,\n h1, h2, h3, h4, h5, h6, p, blockquote, pre,\n a, abbr, acronym, address, big, cite, code,\n del, dfn, em, img, ins, kbd, q, s, samp,\n small, strike, strong, sub, sup, tt, var,\n b, u, i, center,\n dl, dt, dd, ol, ul, li,\n fieldset, form, label, legend,\n table, caption, tbody, tfoot, thead, tr, th, td,\n article, aside, canvas, details, embed, \n figure, figcaption, footer, header, hgroup, \n menu, nav, output, ruby, section, summary,\n time, mark, audio, video {\n margin: 0;\n padding: 0;\n border: 0;\n font-size: 100%;\n font: inherit;\n text-align: inherit;\n vertical-align: baseline;\n }\n\n article, aside, details, figcaption, figure, \n footer, header, hgroup, menu, nav, section {\n display: block;\n }\n\n body {\n line-height: 1;\n }\n\n ol, ul {\n list-style: none;\n }\n\n blockquote, q {\n quotes: none;\n }\n\n blockquote:before, blockquote:after,\n q:before, q:after {\n content: '';\n content: none;\n }\n \n table {\n border-collapse: collapse;\n border-spacing: 0;\n }\n\n * {\n box-sizing: border-box;\n }\n\n button {\n border: 0;\n background: none;\n outline: none;\n }\n\n ";
1739
1741
  });
1740
1742
 
1743
+ var SearchStyle = (function (style) {
1744
+ return "\n\n .Search {\n border-radius: 0.8rem;\n border: 1px solid rgba(0,0,0,0.2);\n outline: none !important;\n color: ".concat(style.colors.text, ";\n font-size: 1.2rem;\n padding: 0.8rem;\n width: 100%;\n }\n\n .Search::placeholder {\n color: rgb(180,180,180);\n } \n\n .Search:focus, .Search:focus-visible {\n border: 1px solid ").concat(style.colors.primary, ";\n }\n\n ");
1745
+ });
1746
+
1741
1747
  var SkeletonStyle = (function () {
1742
1748
  return "\n \n .Skeleton {\n background: rgb(230,230,230) !important;\n border: 0px solid transparent !important;\n box-shadow: none !important;\n cursor: inherit !important;\n line-height: 0;\n overflow: hidden;\n position: relative;\n }\n\n @keyframes SkeletonBackgroundAnimation {\n from {\n left: -500px;\n }\n to {\n left: +120%;\n }\n }\n\n .SkeletonBackground {\n animation: 2s SkeletonBackgroundAnimation 0.2s ease infinite;\n background: linear-gradient(to right, transparent 0%, rgba(0,0,0,0.1) 50%, transparent 100%);\n height: 100%;\n left: -140%;\n position: absolute;\n top: 0;\n width: 400px;\n }\n\n .SkeletonWrapper {\n line-height: 0;\n }\n ";
1743
1749
  });
1744
1750
 
1751
+ var TableStyle = (function (style) {
1752
+ return "\n\n .Table {\n border-collapse: separate;\n border-radius: 0.4rem;\n border-style: hidden;\n border: 1px solid rgba(0,0,0,0.1);\n font-size: 94%;\n width: 100%;\n }\n\n .Table tr.small td {\n font-size: 90%;\n }\n\n .Table tr td {\n border-bottom: 1px solid rgba(0,0,0,0.1);\n word-break: break-all;\n }\n \n .Table tr:last-child td {\n border-bottom: none;\n }\n \n .Table tr td {\n padding: 0.5rem 0.9rem;\n text-align: left;\n }\n \n .Table tr td:first-child {\n width: 30%\n }\n\n .Table tr td:last-child {\n width: 70%\n }\n \n .Table .TableSubTitle {\n font-weight: 300;\n opacity: 0.7;\n }\n\n .Table tr td:last-child {\n font-weight: 500;\n }\n ";
1753
+ });
1754
+
1745
1755
  var TextButtonStyle = (function (style) {
1746
1756
  return "\n\n .TextButton {\n cursor: pointer;\n font-size: 16px;\n color: ".concat(style.colors.primary, "\n }\n\n .TextButton:hover * {\n opacity: 1.0;\n }\n ");
1747
1757
  });
@@ -1751,7 +1761,15 @@ var TextStyle = (function (style) {
1751
1761
  });
1752
1762
 
1753
1763
  var TokenAmountStyle = (function () {
1754
- return "\n \n .TokenAmountRow {\n min-width: 0;\n width: 100%;\n display: flex;\n flex-direction: row;\n }\n\n .TokenAmountCell {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .TokenSymbolCell {\n \n }\n ";
1764
+ return "\n \n .TokenAmountRow {\n min-width: 0;\n width: 100%;\n display: flex;\n flex-direction: row;\n }\n\n .TokenAmountCell {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .TokenSymbolCell {\n }\n ";
1765
+ });
1766
+
1767
+ var TokenImageStyle = (function (style) {
1768
+ return "\n\n .TokenImage img {\n background: white;\n border-radius: 99rem;\n border: 1px solid white;\n background: rgba(0,0,0,0.1);\n box-shadow: 0 2px 8px rgb(0 0 0 / 10%);\n height: 2.8rem;\n position: relative;\n vertical-align: middle;\n width: 2.8rem;\n }\n\n .TokenImage.medium img {\n height: 5.8rem;\n width: 5.8rem;\n }\n ";
1769
+ });
1770
+
1771
+ var TooltipStyle = (function (style) {
1772
+ return "\n\n .Tooltip {\n background: ".concat(style.colors.primary, ";\n border-radius: 0.6rem;\n color: ").concat(style.colors.buttonText, ";\n padding: 0.6rem 0.8rem;\n position: relative;\n box-shadow: 0 0 8px rgba(0,0,0,0.2);\n }\n\n .TooltipArrowUp {\n border-bottom: 10px solid ").concat(style.colors.primary, ";\n border-left: 10px solid transparent;\n border-right: 10px solid transparent;\n height: 0; \n left: 12px;\n position: absolute;\n top: -8px;\n width: 0; \n }\n ");
1755
1773
  });
1756
1774
 
1757
1775
  var styleRenderer = (function (style) {
@@ -1764,7 +1782,7 @@ var styleRenderer = (function (style) {
1764
1782
  },
1765
1783
  fontFamily: '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"'
1766
1784
  }, style);
1767
- return [ResetStyle(), FontStyle(style), DialogStyle(), ButtonCircularStyle(), ButtonPrimaryStyle(style), CardStyle(style), PoweredByStyle(style), GraphicStyle(), SkeletonStyle(), TokenAmountStyle(), TextStyle(style), IconStyle(style), OpacityStyle(), PaddingStyle(), HeightStyle(), LabelStyle(style), LoadingTextStyle(style), RangeSliderStyle(style), InputStyle(), TextButtonStyle(style), ImageStyle(), BlockchainLogoStyle()].join('');
1785
+ return [ResetStyle(), FontStyle(style), DialogStyle(), ButtonCircularStyle(), ButtonPrimaryStyle(style), CardStyle(style), PoweredByStyle(style), GraphicStyle(), SkeletonStyle(), TokenAmountStyle(), TextStyle(style), IconStyle(style), OpacityStyle(), PaddingStyle(), HeightStyle(), LabelStyle(style), LoadingTextStyle(style), RangeSliderStyle(style), InputStyle(), TextButtonStyle(style), ImageStyle(), BlockchainLogoStyle(), SearchStyle(style), TokenImageStyle(), AlertStyle(), TableStyle(), LinkStyle(style), TooltipStyle(style)].join('');
1768
1786
  });
1769
1787
 
1770
1788
  var mount = (function (_ref, content) {
@@ -1877,7 +1895,7 @@ var Connect = function Connect(options) {
1877
1895
 
1878
1896
  return function (container) {
1879
1897
  return /*#__PURE__*/React.createElement(ErrorProvider, {
1880
- error: error,
1898
+ errorCallback: error,
1881
1899
  container: container,
1882
1900
  unmount: unmount
1883
1901
  }, /*#__PURE__*/React.createElement(UpdatableProvider, null, /*#__PURE__*/React.createElement(ClosableProvider, {
@@ -3008,7 +3026,7 @@ var DonationOverviewSkeleton = (function (props) {
3008
3026
  className: "LineHeightL FontSizeL"
3009
3027
  }, "Donation")),
3010
3028
  body: /*#__PURE__*/React.createElement("div", {
3011
- className: "PaddingTopS PaddingLeftM PaddingRightM PaddingBottomXS"
3029
+ className: "PaddingLeftM PaddingRightM PaddingBottomXS"
3012
3030
  }, /*#__PURE__*/React.createElement("div", {
3013
3031
  className: "Card Skeleton"
3014
3032
  }, /*#__PURE__*/React.createElement("div", {
@@ -3317,7 +3335,7 @@ var DonationOverviewDialog = (function (props) {
3317
3335
  className: "LineHeightL FontSizeL"
3318
3336
  }, "Donation")),
3319
3337
  body: /*#__PURE__*/React.createElement("div", {
3320
- className: "PaddingTopS PaddingLeftM PaddingRightM PaddingBottomXS"
3338
+ className: "PaddingLeftM PaddingRightM PaddingBottomXS"
3321
3339
  }, /*#__PURE__*/React.createElement("div", {
3322
3340
  className: ["Card", paymentState == 'initialized' ? '' : 'disabled'].join(' '),
3323
3341
  title: paymentState == 'initialized' ? "Change amount" : undefined,
@@ -3726,7 +3744,7 @@ var Donation = /*#__PURE__*/function () {
3726
3744
  }, function (unmount) {
3727
3745
  return function (container) {
3728
3746
  return /*#__PURE__*/React.createElement(ErrorProvider, {
3729
- error: error,
3747
+ errorCallback: error,
3730
3748
  container: container,
3731
3749
  unmount: unmount
3732
3750
  }, /*#__PURE__*/React.createElement(ConfigurationProvider, {
@@ -3790,11 +3808,6 @@ var SignLoginDialog = (function (props) {
3790
3808
  var _useContext = useContext(ErrorContext),
3791
3809
  setError = _useContext.setError;
3792
3810
 
3793
- var _useState = useState(false),
3794
- _useState2 = _slicedToArray(_useState, 2),
3795
- showSignButton = _useState2[0],
3796
- setShowSignButton = _useState2[1];
3797
-
3798
3811
  var _useContext2 = useContext(ConfigurationContext),
3799
3812
  message = _useContext2.message,
3800
3813
  endpoint = _useContext2.endpoint;
@@ -3838,20 +3851,13 @@ var SignLoginDialog = (function (props) {
3838
3851
  message: message,
3839
3852
  signature: signature
3840
3853
  }).then(props.resolve)["catch"](setError);
3841
- })["catch"](setError);
3854
+ })["catch"](function (error) {
3855
+ if (error && error.code && error.code == 4001) ; else {
3856
+ setError(error);
3857
+ }
3858
+ });
3842
3859
  };
3843
3860
 
3844
- useEffect(function () {
3845
- return setTimeout(login, 1000);
3846
- }, []);
3847
- useEffect(function () {
3848
- var timeout = setTimeout(function () {
3849
- return setShowSignButton(true);
3850
- }, 10000);
3851
- return function () {
3852
- return clearTimeout(timeout);
3853
- };
3854
- }, []);
3855
3861
  return /*#__PURE__*/React.createElement(Dialog$1, {
3856
3862
  body: /*#__PURE__*/React.createElement("div", null, walletLogo && /*#__PURE__*/React.createElement("div", {
3857
3863
  className: "GraphicWrapper PaddingTopS PaddingBottomS"
@@ -3864,8 +3870,8 @@ var SignLoginDialog = (function (props) {
3864
3870
  className: "Text PaddingTopS PaddingBottomS PaddingLeftS PaddingRightS"
3865
3871
  }, /*#__PURE__*/React.createElement("p", {
3866
3872
  className: "FontSizeM PaddingLeftM PaddingRightM"
3867
- }, "Please sign the login message with your connected wallet."))),
3868
- footer: showSignButton && /*#__PURE__*/React.createElement("div", {
3873
+ }, "Please click \"Log in\" and sign the message with your connected wallet."))),
3874
+ footer: /*#__PURE__*/React.createElement("div", {
3869
3875
  className: "PaddingTopXS PaddingRightM PaddingLeftM PaddingBottomM"
3870
3876
  }, /*#__PURE__*/React.createElement("button", {
3871
3877
  className: "ButtonPrimary",
@@ -3892,7 +3898,8 @@ var LoginStack = (function (props) {
3892
3898
  document: props.document,
3893
3899
  dialogs: {
3894
3900
  SignLogin: /*#__PURE__*/React.createElement(SignLoginDialog, {
3895
- resolve: props.resolve
3901
+ resolve: props.resolve,
3902
+ userClosedDialog: props.userClosedDialog
3896
3903
  })
3897
3904
  }
3898
3905
  });
@@ -3921,14 +3928,14 @@ var Login = function Login(options) {
3921
3928
  style: style,
3922
3929
  document: ensureDocument(document)
3923
3930
  }, function (unmount) {
3924
- var rejectBeforeUnmount = function rejectBeforeUnmount() {
3931
+ var userClosedDialog = function userClosedDialog() {
3925
3932
  reject('USER_CLOSED_DIALOG');
3926
3933
  unmount();
3927
3934
  };
3928
3935
 
3929
3936
  return function (container) {
3930
3937
  return /*#__PURE__*/React.createElement(ErrorProvider, {
3931
- error: error,
3938
+ errorCallback: error,
3932
3939
  container: container,
3933
3940
  unmount: unmount
3934
3941
  }, /*#__PURE__*/React.createElement(ConfigurationProvider, {
@@ -3938,7 +3945,7 @@ var Login = function Login(options) {
3938
3945
  recover: recover
3939
3946
  }
3940
3947
  }, /*#__PURE__*/React.createElement(UpdatableProvider, null, /*#__PURE__*/React.createElement(ClosableProvider, {
3941
- unmount: rejectBeforeUnmount
3948
+ unmount: userClosedDialog
3942
3949
  }, /*#__PURE__*/React.createElement(LoginStack, {
3943
3950
  document: document,
3944
3951
  container: container,
@@ -4010,7 +4017,7 @@ var PaymentOverviewSkeleton = (function (props) {
4010
4017
  className: "LineHeightL FontSizeL"
4011
4018
  }, "Payment")),
4012
4019
  body: /*#__PURE__*/React.createElement("div", {
4013
- className: "PaddingTopS PaddingLeftM PaddingRightM PaddingBottomXS"
4020
+ className: "PaddingLeftM PaddingRightM PaddingBottomXS"
4014
4021
  }, amountsMissing && /*#__PURE__*/React.createElement("div", {
4015
4022
  className: "Card Skeleton"
4016
4023
  }, /*#__PURE__*/React.createElement("div", {
@@ -4061,7 +4068,7 @@ var PaymentOverviewDialog = (function (props) {
4061
4068
  className: "LineHeightL FontSizeL"
4062
4069
  }, "Payment")),
4063
4070
  body: /*#__PURE__*/React.createElement("div", {
4064
- className: "PaddingTopS PaddingLeftM PaddingRightM PaddingBottomXS"
4071
+ className: "PaddingLeftM PaddingRightM PaddingBottomXS"
4065
4072
  }, amountsMissing && /*#__PURE__*/React.createElement("div", {
4066
4073
  className: ["Card", paymentState == 'initialized' ? '' : 'disabled'].join(' '),
4067
4074
  title: paymentState == 'initialized' ? "Change amount" : undefined,
@@ -4208,7 +4215,7 @@ var Payment = /*#__PURE__*/function () {
4208
4215
  }, function (unmount) {
4209
4216
  return function (container) {
4210
4217
  return /*#__PURE__*/React.createElement(ErrorProvider, {
4211
- error: error,
4218
+ errorCallback: error,
4212
4219
  container: container,
4213
4220
  unmount: unmount
4214
4221
  }, /*#__PURE__*/React.createElement(ConfigurationProvider, {
@@ -4362,7 +4369,7 @@ var SaleOverviewSkeleton = (function (props) {
4362
4369
  className: "LineHeightL FontSizeL"
4363
4370
  }, "Purchase")),
4364
4371
  body: /*#__PURE__*/React.createElement("div", {
4365
- className: "PaddingTopS PaddingLeftM PaddingRightM PaddingBottomXS"
4372
+ className: "PaddingLeftM PaddingRightM PaddingBottomXS"
4366
4373
  }, /*#__PURE__*/React.createElement("div", {
4367
4374
  className: "Card Skeleton",
4368
4375
  style: {
@@ -4446,7 +4453,7 @@ var SaleOverviewDialog = (function (props) {
4446
4453
  className: "LineHeightL FontSizeL"
4447
4454
  }, "Purchase")),
4448
4455
  body: /*#__PURE__*/React.createElement("div", {
4449
- className: "PaddingTopS PaddingLeftM PaddingRightM PaddingBottomXS"
4456
+ className: "PaddingLeftM PaddingRightM PaddingBottomXS"
4450
4457
  }, /*#__PURE__*/React.createElement("div", {
4451
4458
  className: ["Card", paymentState == 'initialized' ? '' : 'disabled'].join(' '),
4452
4459
  title: paymentState == 'initialized' ? "Change amount" : undefined,
@@ -4612,7 +4619,7 @@ var Sale = /*#__PURE__*/function () {
4612
4619
  }, function (unmount) {
4613
4620
  return function (container) {
4614
4621
  return /*#__PURE__*/React.createElement(ErrorProvider, {
4615
- error: error,
4622
+ errorCallback: error,
4616
4623
  container: container,
4617
4624
  unmount: unmount
4618
4625
  }, /*#__PURE__*/React.createElement(ConfigurationProvider, {
@@ -4672,12 +4679,572 @@ var Sale = /*#__PURE__*/function () {
4672
4679
  };
4673
4680
  }();
4674
4681
 
4682
+ var SelectionContext = /*#__PURE__*/React.createContext();
4683
+
4684
+ var SelectionProvider = (function (props) {
4685
+ var _useState = useState({}),
4686
+ _useState2 = _slicedToArray(_useState, 2),
4687
+ selection = _useState2[0],
4688
+ setSelection = _useState2[1];
4689
+
4690
+ return /*#__PURE__*/React.createElement(SelectionContext.Provider, {
4691
+ value: {
4692
+ selection: selection,
4693
+ setSelection: setSelection
4694
+ }
4695
+ }, props.children);
4696
+ });
4697
+
4698
+ var msToTime = (function (ms) {
4699
+ var year, month, day, hour, minute, second;
4700
+ second = Math.floor(ms / 1000);
4701
+ minute = Math.floor(second / 60);
4702
+ second = second % 60;
4703
+ hour = Math.floor(minute / 60);
4704
+ minute = minute % 60;
4705
+ day = Math.floor(hour / 24);
4706
+ hour = hour % 24;
4707
+ month = Math.floor(day / 30);
4708
+ day = day % 30;
4709
+ year = Math.floor(month / 12);
4710
+ month = month % 12;
4711
+ return {
4712
+ year: year,
4713
+ month: month,
4714
+ day: day,
4715
+ hour: hour,
4716
+ minute: minute,
4717
+ second: second
4718
+ };
4719
+ });
4720
+
4721
+ var ConfirmTokenSelectionDialog = (function (props) {
4722
+ var _useContext = useContext(SelectionContext),
4723
+ selection = _useContext.selection;
4724
+
4725
+ var _useContext2 = useContext(ClosableContext),
4726
+ setOpen = _useContext2.setOpen;
4727
+
4728
+ var token = selection.token;
4729
+ var address = token.address || token.external_id;
4730
+ var logo = token.logo || token.image;
4731
+ var blockchain = Blockchain.findByName(token.blockchain);
4732
+ var age = token.first_transfer ? msToTime(new Date() - new Date(token.first_transfer)) : undefined;
4733
+
4734
+ if (age) {
4735
+ age = [age.year && age.year >= 1 ? age.year >= 2 ? "".concat(age.year, " years") : "1 year" : undefined, age.month && age.month >= 1 ? age.month >= 2 ? "".concat(age.month, " months") : "1 month" : undefined, age.day && age.day >= 1 && age.month <= 1 && age.year < 1 ? age.day >= 2 ? "".concat(age.day, " days !!!") : "1 day !!!" : undefined].filter(function (n) {
4736
+ return n;
4737
+ }).join(' ');
4738
+ }
4739
+
4740
+ var holders = token.unique_senders ? token.unique_senders : undefined;
4741
+
4742
+ if (holders) {
4743
+ if (holders > 1000000) {
4744
+ holders = "Millions";
4745
+ } else if (holders > 100000) {
4746
+ holders = "Hundreds of Thousands";
4747
+ } else if (holders > 2000) {
4748
+ holders = "Thousands";
4749
+ } else if (holders > 100) {
4750
+ holders = "Hundreds";
4751
+ } else {
4752
+ holders = "Only a Few!!!";
4753
+ }
4754
+ }
4755
+
4756
+ var onClickConfirm = function onClickConfirm() {
4757
+ setOpen(false);
4758
+ props.resolve({
4759
+ blockchain: token.blockchain,
4760
+ address: token.external_id,
4761
+ symbol: token.symbol,
4762
+ name: token.name,
4763
+ decimals: token.decimals,
4764
+ logo: token.image
4765
+ });
4766
+ setTimeout(props.unmount, 300);
4767
+ };
4768
+
4769
+ return /*#__PURE__*/React.createElement(Dialog$1, {
4770
+ header: /*#__PURE__*/React.createElement("div", {
4771
+ className: "PaddingTopS PaddingLeftM PaddingRightM TextLeft"
4772
+ }, /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("h1", {
4773
+ className: "LineHeightL FontSizeL"
4774
+ }, "Confirm Selection"))),
4775
+ stacked: true,
4776
+ body: /*#__PURE__*/React.createElement("div", {
4777
+ className: "PaddingTopS PaddingLeftM PaddingRightM"
4778
+ }, /*#__PURE__*/React.createElement("div", {
4779
+ className: "TokenImage medium"
4780
+ }, logo && /*#__PURE__*/React.createElement("img", {
4781
+ src: logo
4782
+ }), !logo && /*#__PURE__*/React.createElement(TokenImage, {
4783
+ blockchain: token.blockchain,
4784
+ address: address
4785
+ })), /*#__PURE__*/React.createElement("div", {
4786
+ className: "PaddingTopS"
4787
+ }, /*#__PURE__*/React.createElement("div", {
4788
+ className: "Alert"
4789
+ }, /*#__PURE__*/React.createElement("strong", null, "Please review this information"))), /*#__PURE__*/React.createElement("div", {
4790
+ className: "PaddingTopXS"
4791
+ }, /*#__PURE__*/React.createElement("table", {
4792
+ className: "Table"
4793
+ }, /*#__PURE__*/React.createElement("tbody", null, /*#__PURE__*/React.createElement("tr", {
4794
+ className: "small"
4795
+ }, /*#__PURE__*/React.createElement("td", {
4796
+ colSpan: "2"
4797
+ }, /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("a", {
4798
+ className: "Link",
4799
+ href: blockchain.explorerUrlFor({
4800
+ token: address
4801
+ }),
4802
+ target: "_blank",
4803
+ rel: "noopener noreferrer"
4804
+ }, address)))), /*#__PURE__*/React.createElement("tr", null, /*#__PURE__*/React.createElement("td", null, /*#__PURE__*/React.createElement("div", {
4805
+ className: "TableSubTitle"
4806
+ }, "Blockchain")), /*#__PURE__*/React.createElement("td", null, /*#__PURE__*/React.createElement("div", null, blockchain.label))), /*#__PURE__*/React.createElement("tr", null, /*#__PURE__*/React.createElement("td", null, /*#__PURE__*/React.createElement("div", {
4807
+ className: "TableSubTitle"
4808
+ }, "Symbol")), /*#__PURE__*/React.createElement("td", null, /*#__PURE__*/React.createElement("div", null, token.symbol))), /*#__PURE__*/React.createElement("tr", null, /*#__PURE__*/React.createElement("td", null, /*#__PURE__*/React.createElement("div", {
4809
+ className: "TableSubTitle"
4810
+ }, "Name")), /*#__PURE__*/React.createElement("td", null, /*#__PURE__*/React.createElement("div", null, token.name))), age && /*#__PURE__*/React.createElement("tr", null, /*#__PURE__*/React.createElement("td", null, /*#__PURE__*/React.createElement("div", {
4811
+ className: "TableSubTitle"
4812
+ }, "Age")), /*#__PURE__*/React.createElement("td", null, /*#__PURE__*/React.createElement("div", null, age))), holders && /*#__PURE__*/React.createElement("tr", null, /*#__PURE__*/React.createElement("td", null, /*#__PURE__*/React.createElement("div", {
4813
+ className: "TableSubTitle"
4814
+ }, "Holders")), /*#__PURE__*/React.createElement("td", null, /*#__PURE__*/React.createElement("div", null, holders))))))),
4815
+ footer: /*#__PURE__*/React.createElement("div", {
4816
+ className: "PaddingTopS PaddingRightM PaddingLeftM PaddingBottomS"
4817
+ }, /*#__PURE__*/React.createElement("button", {
4818
+ className: "ButtonPrimary",
4819
+ onClick: onClickConfirm
4820
+ }, "Confirm"))
4821
+ });
4822
+ });
4823
+
4824
+ var SelectBlockchainDialog = (function (props) {
4825
+ var _useContext = useContext(SelectionContext),
4826
+ setSelection = _useContext.setSelection;
4827
+
4828
+ var _useContext2 = useContext(NavigateStackContext),
4829
+ navigate = _useContext2.navigate;
4830
+
4831
+ var stacked = Object.keys(props.selection).length > 1;
4832
+ var blockchains = [Blockchain.findByName('ethereum'), Blockchain.findByName('bsc')];
4833
+
4834
+ var selectBlockchain = function selectBlockchain(blockchain) {
4835
+ setSelection(Object.assign(props.selection, {
4836
+ blockchain: blockchain
4837
+ }));
4838
+
4839
+ if (stacked) {
4840
+ navigate('back');
4841
+ } else {
4842
+ props.resolve(blockchain);
4843
+ }
4844
+ };
4845
+
4846
+ var elements = blockchains.map(function (blockchain, index) {
4847
+ return /*#__PURE__*/React.createElement("div", {
4848
+ key: index,
4849
+ className: "Card Row",
4850
+ onClick: function onClick() {
4851
+ return selectBlockchain(blockchain);
4852
+ }
4853
+ }, /*#__PURE__*/React.createElement("div", {
4854
+ className: "CardImage"
4855
+ }, /*#__PURE__*/React.createElement("img", {
4856
+ className: "transparent",
4857
+ src: blockchain.logo
4858
+ })), /*#__PURE__*/React.createElement("div", {
4859
+ className: "CardBody"
4860
+ }, /*#__PURE__*/React.createElement("span", {
4861
+ className: "CardText"
4862
+ }, blockchain.label)));
4863
+ });
4864
+ return /*#__PURE__*/React.createElement(Dialog$1, {
4865
+ header: /*#__PURE__*/React.createElement("div", {
4866
+ className: "PaddingTopS PaddingLeftM PaddingRightM TextLeft"
4867
+ }, /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("h1", {
4868
+ className: "LineHeightL FontSizeL"
4869
+ }, "Select Blockchain"))),
4870
+ stacked: stacked,
4871
+ bodyClassName: "ScrollHeight",
4872
+ body: /*#__PURE__*/React.createElement("div", {
4873
+ className: "PaddingTopS"
4874
+ }, elements),
4875
+ footer: /*#__PURE__*/React.createElement("div", {
4876
+ className: "PaddingTopS PaddingRightM PaddingLeftM PaddingBottomS"
4877
+ })
4878
+ });
4879
+ });
4880
+
4881
+ var SelectTokenDialog = (function (props) {
4882
+ var _useContext = useContext(NavigateStackContext),
4883
+ navigate = _useContext.navigate;
4884
+
4885
+ var _useContext2 = useContext(ClosableContext),
4886
+ setOpen = _useContext2.setOpen;
4887
+
4888
+ var _useContext3 = useContext(SelectionContext),
4889
+ setSelection = _useContext3.setSelection;
4890
+
4891
+ var _useState = useState(),
4892
+ _useState2 = _slicedToArray(_useState, 2),
4893
+ requestController = _useState2[0],
4894
+ setRequestController = _useState2[1];
4895
+
4896
+ var _useState3 = useState(),
4897
+ _useState4 = _slicedToArray(_useState3, 2),
4898
+ blockchain = _useState4[0],
4899
+ setBlockchain = _useState4[1];
4900
+
4901
+ var _useState5 = useState(false),
4902
+ _useState6 = _slicedToArray(_useState5, 2),
4903
+ showAddToken = _useState6[0],
4904
+ setShowAddToken = _useState6[1];
4905
+
4906
+ var _useState7 = useState([]),
4907
+ _useState8 = _slicedToArray(_useState7, 2),
4908
+ tokens = _useState8[0],
4909
+ setTokens = _useState8[1];
4910
+
4911
+ var _useState9 = useState(),
4912
+ _useState10 = _slicedToArray(_useState9, 2);
4913
+ _useState10[0];
4914
+ _useState10[1];
4915
+
4916
+ var searchElement = useRef();
4917
+ var wallet = getWallet();
4918
+ useEffect(function () {
4919
+ var blockchain;
4920
+
4921
+ if (wallet) {
4922
+ wallet.connectedTo().then(function (name) {
4923
+ blockchain = Blockchain.findByName(name);
4924
+ setBlockchain(blockchain);
4925
+ setSelection(Object.assign(props.selection, {
4926
+ blockchain: blockchain,
4927
+ token: undefined
4928
+ }));
4929
+ setTokens(blockchain.tokens);
4930
+ });
4931
+ } else {
4932
+ blockchain = Blockchain.findByName('ethereum');
4933
+ setBlockchain(blockchain);
4934
+ setSelection(Object.assign(props.selection, {
4935
+ blockchain: blockchain,
4936
+ token: undefined
4937
+ }));
4938
+ setTokens(blockchain.tokens);
4939
+ }
4940
+ }, []);
4941
+ useEffect(function () {
4942
+ if (props.selection.blockchain) {
4943
+ setBlockchain(props.selection.blockchain);
4944
+ setTokens(props.selection.blockchain.tokens);
4945
+
4946
+ if (searchElement.current) {
4947
+ searchElement.current.value = '';
4948
+ searchElement.current.focus();
4949
+ }
4950
+ }
4951
+ }, [props.selection, props.selection.blockchain]);
4952
+
4953
+ var onClickChangeBlockchain = function onClickChangeBlockchain() {
4954
+ navigate('SelectBlockchain');
4955
+ };
4956
+
4957
+ var onClickAddToken = function onClickAddToken() {
4958
+ setShowAddToken(true);
4959
+
4960
+ if (searchElement.current) {
4961
+ searchElement.current.value = '';
4962
+ searchElement.current.focus();
4963
+ }
4964
+ };
4965
+
4966
+ var onChangeSearch = function onChangeSearch(event) {
4967
+ if (requestController) {
4968
+ requestController.abort();
4969
+ }
4970
+
4971
+ var newRequestController = new AbortController();
4972
+ setRequestController(newRequestController);
4973
+ var signal = newRequestController.signal;
4974
+ var term = event.target.value;
4975
+
4976
+ if (term.match(/^0x/)) {
4977
+ setTokens([]);
4978
+ var token;
4979
+
4980
+ try {
4981
+ token = new Token({
4982
+ blockchain: blockchain.name,
4983
+ address: term
4984
+ });
4985
+ } catch (_unused) {}
4986
+
4987
+ if (token == undefined) {
4988
+ return;
4989
+ }
4990
+
4991
+ Promise.all([token.name(), token.symbol(), token.decimals()]).then(function (_ref) {
4992
+ var _ref2 = _slicedToArray(_ref, 3),
4993
+ name = _ref2[0],
4994
+ symbol = _ref2[1],
4995
+ decimals = _ref2[2];
4996
+
4997
+ setTokens([{
4998
+ name: name,
4999
+ symbol: symbol,
5000
+ decimals: decimals,
5001
+ address: term,
5002
+ blockchain: blockchain.name
5003
+ }]);
5004
+ });
5005
+ } else if (term && term.length) {
5006
+ setTokens([]);
5007
+ fetch("https://api.depay.fi/v2/tokens/search?blockchain=".concat(blockchain.name, "&term=").concat(term), {
5008
+ signal: signal,
5009
+ headers: {
5010
+ 'X-Api-Key': apiKey
5011
+ }
5012
+ }).then(function (response) {
5013
+ if (response.status == 200) {
5014
+ response.json().then(function (tokens) {
5015
+ setTokens(tokens);
5016
+ });
5017
+ }
5018
+ })["catch"](function () {});
5019
+ } else {
5020
+ setTokens(blockchain.tokens);
5021
+ }
5022
+ };
5023
+
5024
+ var select = function select(token) {
5025
+ if (blockchain.tokens.find(function (majorToken) {
5026
+ return majorToken.address.toLowerCase() == (token.address || token.external_id).toLowerCase();
5027
+ })) {
5028
+ setOpen(false);
5029
+ props.resolve({
5030
+ blockchain: blockchain.name,
5031
+ address: token.address || token.external_id,
5032
+ logo: token.logo || token.image,
5033
+ name: token.name,
5034
+ symbol: token.symbol,
5035
+ decimals: token.decimals
5036
+ });
5037
+ setTimeout(props.unmount, 300);
5038
+ } else {
5039
+ setSelection(Object.assign(props.selection, {
5040
+ token: token
5041
+ }));
5042
+ navigate('ConfirmTokenSelection');
5043
+ }
5044
+ };
5045
+
5046
+ var elements = tokens.map(function (token, index) {
5047
+ return /*#__PURE__*/React.createElement("div", {
5048
+ key: "".concat(index, "-").concat(token.address),
5049
+ className: "Card Row",
5050
+ onClick: function onClick() {
5051
+ return select(token);
5052
+ }
5053
+ }, /*#__PURE__*/React.createElement("div", {
5054
+ className: "CardImage"
5055
+ }, token.logo && /*#__PURE__*/React.createElement("img", {
5056
+ src: token.logo
5057
+ }), token.image && /*#__PURE__*/React.createElement("img", {
5058
+ src: token.image
5059
+ }), !(token.logo || token.image) && /*#__PURE__*/React.createElement(TokenImage, {
5060
+ blockchain: token.blockchain,
5061
+ address: token.external_id || token.address
5062
+ })), /*#__PURE__*/React.createElement("div", {
5063
+ className: "CardBody"
5064
+ }, /*#__PURE__*/React.createElement("div", {
5065
+ className: "CardTokenSymbol",
5066
+ title: token.symbol
5067
+ }, /*#__PURE__*/React.createElement("span", {
5068
+ className: "CardText"
5069
+ }, token.symbol)), /*#__PURE__*/React.createElement("div", {
5070
+ className: "CardTokenName",
5071
+ title: token.name
5072
+ }, /*#__PURE__*/React.createElement("span", {
5073
+ className: "CardText"
5074
+ }, token.name))));
5075
+ });
5076
+
5077
+ if (blockchain == undefined) {
5078
+ return null;
5079
+ }
5080
+
5081
+ return /*#__PURE__*/React.createElement(Dialog$1, {
5082
+ header: /*#__PURE__*/React.createElement("div", {
5083
+ className: "PaddingTopS PaddingLeftM PaddingRightM TextLeft"
5084
+ }, /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("h1", {
5085
+ className: "LineHeightL FontSizeL"
5086
+ }, "Select Token")), /*#__PURE__*/React.createElement("div", {
5087
+ className: "PaddingTopS PaddingBottomXS"
5088
+ }, /*#__PURE__*/React.createElement("div", {
5089
+ className: "Card small",
5090
+ onClick: onClickChangeBlockchain
5091
+ }, /*#__PURE__*/React.createElement("div", {
5092
+ className: "CardImage small"
5093
+ }, /*#__PURE__*/React.createElement("img", {
5094
+ className: "transparent",
5095
+ src: blockchain.logo
5096
+ })), /*#__PURE__*/React.createElement("div", {
5097
+ className: "CardBody"
5098
+ }, blockchain.label), /*#__PURE__*/React.createElement("div", {
5099
+ className: "CardAction"
5100
+ }, /*#__PURE__*/React.createElement(ChevronRight, null)))), /*#__PURE__*/React.createElement("div", {
5101
+ className: "PaddingTopXS PaddingBottomS"
5102
+ }, /*#__PURE__*/React.createElement("input", {
5103
+ onChange: onChangeSearch,
5104
+ className: "Search",
5105
+ autoFocus: true,
5106
+ placeholder: "Search name or paste address",
5107
+ ref: searchElement
5108
+ }), showAddToken && /*#__PURE__*/React.createElement("div", {
5109
+ className: "PaddingTopXS PaddingRightXS PaddingLeftXS"
5110
+ }, /*#__PURE__*/React.createElement("div", {
5111
+ className: "Tooltip"
5112
+ }, /*#__PURE__*/React.createElement("span", {
5113
+ className: "TooltipArrowUp"
5114
+ }), "Paste or enter token address here!")))),
5115
+ bodyClassName: "ScrollHeight",
5116
+ body: /*#__PURE__*/React.createElement("div", {
5117
+ className: ""
5118
+ }, elements),
5119
+ footer: /*#__PURE__*/React.createElement("div", {
5120
+ className: "PaddingTopS PaddingRightM PaddingLeftM PaddingBottomS"
5121
+ }, /*#__PURE__*/React.createElement("div", {
5122
+ className: "PaddingTopXS PaddingBottomXS"
5123
+ }, /*#__PURE__*/React.createElement("div", {
5124
+ className: "Link",
5125
+ onClick: onClickAddToken
5126
+ }, "Token missing? Add it.")))
5127
+ });
5128
+ });
5129
+
5130
+ var SelectStack = (function (props) {
5131
+ var _useContext = useContext(ConfigurationContext),
5132
+ what = _useContext.what;
5133
+
5134
+ var _useContext2 = useContext(ClosableContext),
5135
+ open = _useContext2.open,
5136
+ close = _useContext2.close;
5137
+
5138
+ var _useContext3 = useContext(SelectionContext),
5139
+ selection = _useContext3.selection;
5140
+
5141
+ var start;
5142
+
5143
+ switch (what) {
5144
+ default:
5145
+ start = 'SelectToken';
5146
+ }
5147
+
5148
+ return /*#__PURE__*/React.createElement(ReactDialogStack, {
5149
+ open: open,
5150
+ close: close,
5151
+ start: start,
5152
+ container: props.container,
5153
+ document: props.document,
5154
+ dialogs: {
5155
+ SelectToken: /*#__PURE__*/React.createElement(SelectTokenDialog, {
5156
+ selection: selection,
5157
+ resolve: props.resolve,
5158
+ unmount: props.unmount
5159
+ }),
5160
+ SelectBlockchain: /*#__PURE__*/React.createElement(SelectBlockchainDialog, {
5161
+ selection: selection,
5162
+ resolve: props.resolve
5163
+ }),
5164
+ ConfirmTokenSelection: /*#__PURE__*/React.createElement(ConfirmTokenSelectionDialog, {
5165
+ selection: selection,
5166
+ resolve: props.resolve,
5167
+ unmount: props.unmount
5168
+ })
5169
+ }
5170
+ });
5171
+ });
5172
+
5173
+ var Select = function Select(options) {
5174
+ var style, error, document, what;
5175
+
5176
+ if (_typeof(options) == 'object') {
5177
+ style = options.style;
5178
+ error = options.error;
5179
+ document = options.document;
5180
+ what = options.what;
5181
+ }
5182
+
5183
+ var startupError;
5184
+
5185
+ if (what == undefined) {
5186
+ startupError = '"what" needs to be configured!';
5187
+ } else if (['token'].indexOf(what) < 0) {
5188
+ startupError = "Unknown \"what\" configured: ".concat(what, "!");
5189
+ }
5190
+
5191
+ return new Promise( /*#__PURE__*/function () {
5192
+ var _ref = _asyncToGenerator( /*#__PURE__*/regenerator.mark(function _callee(resolve, reject) {
5193
+ return regenerator.wrap(function _callee$(_context) {
5194
+ while (1) {
5195
+ switch (_context.prev = _context.next) {
5196
+ case 0:
5197
+ mount({
5198
+ style: style,
5199
+ document: ensureDocument(document)
5200
+ }, function (unmount) {
5201
+ var userClosedDialog = function userClosedDialog() {
5202
+ reject('USER_CLOSED_DIALOG');
5203
+ unmount();
5204
+ };
5205
+
5206
+ return function (container) {
5207
+ return /*#__PURE__*/React.createElement(ErrorProvider, {
5208
+ error: startupError,
5209
+ errorCallback: error,
5210
+ container: container,
5211
+ unmount: unmount
5212
+ }, /*#__PURE__*/React.createElement(ConfigurationProvider, {
5213
+ configuration: {
5214
+ what: what
5215
+ }
5216
+ }, /*#__PURE__*/React.createElement(UpdatableProvider, null, /*#__PURE__*/React.createElement(ClosableProvider, {
5217
+ unmount: userClosedDialog
5218
+ }, /*#__PURE__*/React.createElement(SelectionProvider, null, /*#__PURE__*/React.createElement(SelectStack, {
5219
+ document: document,
5220
+ container: container,
5221
+ unmount: unmount,
5222
+ resolve: resolve
5223
+ })), /*#__PURE__*/React.createElement(PoweredBy, null)))));
5224
+ };
5225
+ });
5226
+
5227
+ case 1:
5228
+ case "end":
5229
+ return _context.stop();
5230
+ }
5231
+ }
5232
+ }, _callee);
5233
+ }));
5234
+
5235
+ return function (_x, _x2) {
5236
+ return _ref.apply(this, arguments);
5237
+ };
5238
+ }());
5239
+ };
5240
+
4675
5241
  var DePayWidgets = {
4676
5242
  Connect: Connect,
4677
5243
  Donation: Donation,
4678
5244
  Login: Login,
4679
5245
  Payment: Payment,
4680
5246
  Sale: Sale,
5247
+ Select: Select,
4681
5248
  provider: provider
4682
5249
  };
4683
5250