@tronweb3/tronwallet-adapter-react-ui 1.0.1 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/lib/cjs/Button.js +55 -0
  2. package/lib/cjs/Button.js.map +1 -0
  3. package/lib/cjs/Collapse.js +61 -0
  4. package/lib/cjs/Collapse.js.map +1 -0
  5. package/lib/cjs/Modal/ReactPortal.js +38 -0
  6. package/lib/cjs/Modal/ReactPortal.js.map +1 -0
  7. package/lib/cjs/Modal/WalletSelectModal.js +81 -0
  8. package/lib/cjs/Modal/WalletSelectModal.js.map +1 -0
  9. package/lib/cjs/WalletActionButton.js +123 -0
  10. package/lib/cjs/WalletActionButton.js.map +1 -0
  11. package/lib/cjs/WalletConnectButton.js +75 -0
  12. package/lib/cjs/WalletConnectButton.js.map +1 -0
  13. package/lib/cjs/WalletDisconnectButton.js +63 -0
  14. package/lib/cjs/WalletDisconnectButton.js.map +1 -0
  15. package/lib/cjs/WalletItem.js +17 -0
  16. package/lib/cjs/WalletItem.js.map +1 -0
  17. package/lib/cjs/WalletModalProvider.js +52 -0
  18. package/lib/cjs/WalletModalProvider.js.map +1 -0
  19. package/lib/cjs/WalletSelectButton.js +53 -0
  20. package/lib/cjs/WalletSelectButton.js.map +1 -0
  21. package/lib/cjs/index.js +27 -0
  22. package/lib/cjs/index.js.map +1 -0
  23. package/lib/cjs/package.json +1 -0
  24. package/lib/cjs/useWalletModal.js +26 -0
  25. package/lib/cjs/useWalletModal.js.map +1 -0
  26. package/lib/cjs/utils.js +16 -0
  27. package/lib/cjs/utils.js.map +1 -0
  28. package/lib/esm/Button.js +15 -0
  29. package/lib/esm/Button.js.map +1 -0
  30. package/lib/esm/Collapse.js +40 -0
  31. package/lib/esm/Collapse.js.map +1 -0
  32. package/lib/esm/Modal/ReactPortal.js +34 -0
  33. package/lib/esm/Modal/ReactPortal.js.map +1 -0
  34. package/lib/esm/Modal/WalletSelectModal.js +54 -0
  35. package/lib/esm/Modal/WalletSelectModal.js.map +1 -0
  36. package/lib/esm/WalletActionButton.js +73 -0
  37. package/lib/esm/WalletActionButton.js.map +1 -0
  38. package/lib/esm/WalletConnectButton.js +27 -0
  39. package/lib/esm/WalletConnectButton.js.map +1 -0
  40. package/lib/esm/WalletDisconnectButton.js +24 -0
  41. package/lib/esm/WalletDisconnectButton.js.map +1 -0
  42. package/lib/esm/WalletItem.js +10 -0
  43. package/lib/esm/WalletItem.js.map +1 -0
  44. package/lib/esm/WalletModalProvider.js +13 -0
  45. package/lib/esm/WalletModalProvider.js.map +1 -0
  46. package/lib/esm/WalletSelectButton.js +14 -0
  47. package/lib/esm/WalletSelectButton.js.map +1 -0
  48. package/lib/esm/index.js +11 -0
  49. package/lib/esm/index.js.map +1 -0
  50. package/lib/esm/useWalletModal.js +22 -0
  51. package/lib/esm/useWalletModal.js.map +1 -0
  52. package/lib/esm/utils.js +12 -0
  53. package/lib/esm/utils.js.map +1 -0
  54. package/lib/types/Button.d.ts +11 -0
  55. package/lib/types/Button.d.ts.map +1 -0
  56. package/lib/types/Collapse.d.ts +9 -0
  57. package/lib/types/Collapse.d.ts.map +1 -0
  58. package/lib/types/Modal/ReactPortal.d.ts +7 -0
  59. package/lib/types/Modal/ReactPortal.d.ts.map +1 -0
  60. package/lib/types/Modal/WalletSelectModal.d.ts +8 -0
  61. package/lib/types/Modal/WalletSelectModal.d.ts.map +1 -0
  62. package/lib/types/WalletActionButton.d.ts +4 -0
  63. package/lib/types/WalletActionButton.d.ts.map +1 -0
  64. package/lib/types/WalletConnectButton.d.ts +4 -0
  65. package/lib/types/WalletConnectButton.d.ts.map +1 -0
  66. package/lib/types/WalletDisconnectButton.d.ts +4 -0
  67. package/lib/types/WalletDisconnectButton.d.ts.map +1 -0
  68. package/lib/types/WalletItem.d.ts +8 -0
  69. package/lib/types/WalletItem.d.ts.map +1 -0
  70. package/lib/types/WalletModalProvider.d.ts +3 -0
  71. package/lib/types/WalletModalProvider.d.ts.map +1 -0
  72. package/lib/types/WalletSelectButton.d.ts +4 -0
  73. package/lib/types/WalletSelectButton.d.ts.map +1 -0
  74. package/lib/types/index.d.ts +11 -0
  75. package/lib/types/index.d.ts.map +1 -0
  76. package/lib/types/useWalletModal.d.ts +8 -0
  77. package/lib/types/useWalletModal.d.ts.map +1 -0
  78. package/lib/types/utils.d.ts +2 -0
  79. package/lib/types/utils.d.ts.map +1 -0
  80. package/package.json +68 -63
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __rest = (this && this.__rest) || function (s, e) {
26
+ var t = {};
27
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
28
+ t[p] = s[p];
29
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
30
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
31
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
32
+ t[p[i]] = s[p[i]];
33
+ }
34
+ return t;
35
+ };
36
+ Object.defineProperty(exports, "__esModule", { value: true });
37
+ exports.WalletSelectButton = void 0;
38
+ const react_1 = __importStar(require("react"));
39
+ const Button_js_1 = require("./Button.js");
40
+ const useWalletModal_js_1 = require("./useWalletModal.js");
41
+ const WalletSelectButton = function (_a) {
42
+ var { children = 'Select Wallet', onClick } = _a, props = __rest(_a, ["children", "onClick"]);
43
+ const { visible, setVisible } = (0, useWalletModal_js_1.useWalletModal)();
44
+ const handleClick = (0, react_1.useCallback)((event) => {
45
+ if (onClick)
46
+ onClick(event);
47
+ if (!event.defaultPrevented)
48
+ setVisible(!visible);
49
+ }, [onClick, setVisible, visible]);
50
+ return (react_1.default.createElement(Button_js_1.Button, Object.assign({ "data-testid": "wallet-select-button", onClick: handleClick }, props), children));
51
+ };
52
+ exports.WalletSelectButton = WalletSelectButton;
53
+ //# sourceMappingURL=WalletSelectButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WalletSelectButton.js","sourceRoot":"","sources":["../../src/WalletSelectButton.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAA2C;AAE3C,2CAAqC;AAErC,2DAAqD;AAE9C,MAAM,kBAAkB,GAAoB,UAAU,EAAiD;QAAjD,EAAE,QAAQ,GAAG,eAAe,EAAE,OAAO,OAAY,EAAP,KAAK,cAA/C,uBAAiD,CAAF;IACxG,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,IAAA,kCAAc,GAAE,CAAC;IAEjD,MAAM,WAAW,GAAG,IAAA,mBAAW,EAC3B,CAAC,KAAoC,EAAE,EAAE;QACrC,IAAI,OAAO;YAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QAC5B,IAAI,CAAC,KAAK,CAAC,gBAAgB;YAAE,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC;IACtD,CAAC,EACD,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,CACjC,CAAC;IAEF,OAAO,CACH,8BAAC,kBAAM,iCAAa,sBAAsB,EAAC,OAAO,EAAE,WAAW,IAAM,KAAK,GACrE,QAAQ,CACJ,CACZ,CAAC;AACN,CAAC,CAAC;AAhBW,QAAA,kBAAkB,sBAgB7B"}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./Collapse.js"), exports);
18
+ __exportStar(require("./Button.js"), exports);
19
+ __exportStar(require("./Modal/WalletSelectModal.js"), exports);
20
+ __exportStar(require("./WalletConnectButton.js"), exports);
21
+ __exportStar(require("./WalletDisconnectButton.js"), exports);
22
+ __exportStar(require("./WalletItem.js"), exports);
23
+ __exportStar(require("./WalletActionButton.js"), exports);
24
+ __exportStar(require("./WalletSelectButton.js"), exports);
25
+ __exportStar(require("./useWalletModal.js"), exports);
26
+ __exportStar(require("./WalletModalProvider.js"), exports);
27
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA8B;AAC9B,8CAA4B;AAC5B,+DAA6C;AAC7C,2DAAyC;AACzC,8DAA4C;AAC5C,kDAAgC;AAChC,0DAAwC;AACxC,0DAAwC;AACxC,sDAAoC;AACpC,2DAAyC"}
@@ -0,0 +1 @@
1
+ { "type": "commonjs" }
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useWalletModal = exports.WalletModalContext = void 0;
4
+ const react_1 = require("react");
5
+ const DEFAULT_VALUE = {
6
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
7
+ setVisible(_open) {
8
+ printError();
9
+ },
10
+ visible: false,
11
+ };
12
+ Object.defineProperty(DEFAULT_VALUE, 'visible', {
13
+ get() {
14
+ printError();
15
+ return false;
16
+ },
17
+ });
18
+ function printError() {
19
+ console.error('WalletModalProvider is not provided.' + 'Please wrap your components with WalletModalProvider.');
20
+ }
21
+ exports.WalletModalContext = (0, react_1.createContext)(DEFAULT_VALUE);
22
+ function useWalletModal() {
23
+ return (0, react_1.useContext)(exports.WalletModalContext);
24
+ }
25
+ exports.useWalletModal = useWalletModal;
26
+ //# sourceMappingURL=useWalletModal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useWalletModal.js","sourceRoot":"","sources":["../../src/useWalletModal.tsx"],"names":[],"mappings":";;;AAAA,iCAAkD;AAOlD,MAAM,aAAa,GAAG;IAClB,6DAA6D;IAC7D,UAAU,CAAC,KAAc;QACrB,UAAU,EAAE,CAAC;IACjB,CAAC;IACD,OAAO,EAAE,KAAK;CACjB,CAAC;AACF,MAAM,CAAC,cAAc,CAAC,aAAa,EAAE,SAAS,EAAE;IAC5C,GAAG;QACC,UAAU,EAAE,CAAC;QACb,OAAO,KAAK,CAAC;IACjB,CAAC;CACJ,CAAC,CAAC;AAEH,SAAS,UAAU;IACf,OAAO,CAAC,KAAK,CAAC,sCAAsC,GAAG,uDAAuD,CAAC,CAAC;AACpH,CAAC;AAEY,QAAA,kBAAkB,GAAG,IAAA,qBAAa,EAA0B,aAAoB,CAAC,CAAC;AAE/F,SAAgB,cAAc;IAC1B,OAAO,IAAA,kBAAU,EAAC,0BAAkB,CAAC,CAAC;AAC1C,CAAC;AAFD,wCAEC"}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.copyData = void 0;
4
+ function copyData(copyText) {
5
+ const textArea = document.createElement('textarea');
6
+ textArea.value = copyText;
7
+ document.body.appendChild(textArea);
8
+ textArea.select();
9
+ textArea.style.position = 'fixed';
10
+ textArea.style.top = '-9999px';
11
+ textArea.style.left = '-9999px';
12
+ document.execCommand('copy');
13
+ textArea.blur();
14
+ }
15
+ exports.copyData = copyData;
16
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.tsx"],"names":[],"mappings":";;;AAAA,SAAgB,QAAQ,CAAC,QAAgB;IACrC,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IACpD,QAAQ,CAAC,KAAK,GAAG,QAAQ,CAAC;IAC1B,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC;IAClC,QAAQ,CAAC,KAAK,CAAC,GAAG,GAAG,SAAS,CAAC;IAC/B,QAAQ,CAAC,KAAK,CAAC,IAAI,GAAG,SAAS,CAAC;IAChC,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,CAAC;AACpB,CAAC;AAVD,4BAUC"}
@@ -0,0 +1,15 @@
1
+ import React, { useRef } from 'react';
2
+ export const Button = ({ children, onClick, className = '', tabIndex = 0, icon, ...rest }) => {
3
+ const ref = useRef(null);
4
+ function handleClick(event) {
5
+ onClick?.(event);
6
+ setTimeout(() => {
7
+ ref.current?.blur();
8
+ }, 300);
9
+ }
10
+ return (React.createElement("button", { ref: ref, onClick: handleClick, className: `adapter-react-button ${className}`, tabIndex: tabIndex, ...rest },
11
+ icon && (React.createElement("i", { className: "button-icon" },
12
+ React.createElement("img", { src: icon }))),
13
+ children));
14
+ };
15
+ //# sourceMappingURL=Button.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Button.js","sourceRoot":"","sources":["../../src/Button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAYtC,MAAM,CAAC,MAAM,MAAM,GAAoB,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,GAAG,EAAE,EAAE,QAAQ,GAAG,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE;IAC1G,MAAM,GAAG,GAAG,MAAM,CAAoB,IAAI,CAAC,CAAC;IAC5C,SAAS,WAAW,CAAC,KAAoC;QACrD,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;QACjB,UAAU,CAAC,GAAG,EAAE;YACZ,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC;QACxB,CAAC,EAAE,GAAG,CAAC,CAAC;IACZ,CAAC;IACD,OAAO,CACH,gCACI,GAAG,EAAE,GAAG,EACR,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE,wBAAwB,SAAS,EAAE,EAC9C,QAAQ,EAAE,QAAQ,KACd,IAAI;QAEP,IAAI,IAAI,CACL,2BAAG,SAAS,EAAC,aAAa;YACtB,6BAAK,GAAG,EAAE,IAAI,GAAI,CAClB,CACP;QACA,QAAQ,CACJ,CACZ,CAAC;AACN,CAAC,CAAC"}
@@ -0,0 +1,40 @@
1
+ import React, { useLayoutEffect, useRef, useEffect, useState } from 'react';
2
+ export const Collapse = function ({ children, className, transition = 'height 250ms ease-out', isOpen, }) {
3
+ const initialState = { height: '0px', transition };
4
+ const wrapRef = useRef(null);
5
+ const [style, setStyle] = useState(initialState);
6
+ useEffect(function () {
7
+ setStyle((style) => ({ ...style, transition }));
8
+ }, [transition]);
9
+ function open() {
10
+ if (!wrapRef.current) {
11
+ return;
12
+ }
13
+ setStyle((style) => ({
14
+ ...style,
15
+ height: wrapRef.current?.scrollHeight + 'px',
16
+ }));
17
+ }
18
+ function close() {
19
+ if (!wrapRef.current) {
20
+ return;
21
+ }
22
+ setStyle((style) => ({
23
+ ...style,
24
+ height: '0px',
25
+ }));
26
+ }
27
+ useLayoutEffect(() => {
28
+ if (isOpen) {
29
+ open();
30
+ }
31
+ else {
32
+ close();
33
+ }
34
+ }, [isOpen]);
35
+ return (React.createElement("div", { ref: wrapRef, className: 'react-collapse ' + className, style: {
36
+ overflow: 'hidden',
37
+ ...style,
38
+ } }, children));
39
+ };
40
+ //# sourceMappingURL=Collapse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Collapse.js","sourceRoot":"","sources":["../../src/Collapse.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,eAAe,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAS5E,MAAM,CAAC,MAAM,QAAQ,GAAsB,UAAU,EACjD,QAAQ,EACR,SAAS,EACT,UAAU,GAAG,uBAAuB,EACpC,MAAM,GACT;IACG,MAAM,YAAY,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;IACnD,MAAM,OAAO,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAC7C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC;IAEjD,SAAS,CACL;QACI,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;IACpD,CAAC,EACD,CAAC,UAAU,CAAC,CACf,CAAC;IAEF,SAAS,IAAI;QACT,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;YAClB,OAAO;SACV;QACD,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACjB,GAAG,KAAK;YACR,MAAM,EAAE,OAAO,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;SAC/C,CAAC,CAAC,CAAC;IACR,CAAC;IAED,SAAS,KAAK;QACV,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;YAClB,OAAO;SACV;QACD,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACjB,GAAG,KAAK;YACR,MAAM,EAAE,KAAK;SAChB,CAAC,CAAC,CAAC;IACR,CAAC;IAED,eAAe,CAAC,GAAG,EAAE;QACjB,IAAI,MAAM,EAAE;YACR,IAAI,EAAE,CAAC;SACV;aAAM;YACH,KAAK,EAAE,CAAC;SACX;IACL,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEb,OAAO,CACH,6BACI,GAAG,EAAE,OAAO,EACZ,SAAS,EAAE,iBAAiB,GAAG,SAAS,EACxC,KAAK,EAAE;YACH,QAAQ,EAAE,QAAQ;YAClB,GAAG,KAAK;SACX,IAEA,QAAQ,CACP,CACT,CAAC;AACN,CAAC,CAAC"}
@@ -0,0 +1,34 @@
1
+ import { useState, useLayoutEffect } from 'react';
2
+ import { createPortal } from 'react-dom';
3
+ function createWrapperAndAppendToBody(wrapperId) {
4
+ const wrapperElement = document.createElement('div');
5
+ wrapperElement.setAttribute('id', wrapperId);
6
+ wrapperElement.style.position = 'relative';
7
+ document.body.appendChild(wrapperElement);
8
+ return wrapperElement;
9
+ }
10
+ export const ReactPortal = function ({ children, wrapperId = 'react-portal-wrapper' }) {
11
+ const [wrapperElement, setWrapperElement] = useState(null);
12
+ useLayoutEffect(() => {
13
+ let element = document.getElementById(wrapperId);
14
+ let systemCreated = false;
15
+ // if element is not found with wrapperId or wrapperId is not provided,
16
+ // create and append to body
17
+ if (!element) {
18
+ systemCreated = true;
19
+ element = createWrapperAndAppendToBody(wrapperId);
20
+ }
21
+ setWrapperElement(element);
22
+ return () => {
23
+ // delete the programatically created element
24
+ if (systemCreated && element?.parentNode) {
25
+ element.parentNode.removeChild(element);
26
+ }
27
+ };
28
+ }, [wrapperId]);
29
+ // wrapperElement state will be null on very first render.
30
+ if (wrapperElement === null)
31
+ return null;
32
+ return createPortal(children, wrapperElement);
33
+ };
34
+ //# sourceMappingURL=ReactPortal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReactPortal.js","sourceRoot":"","sources":["../../../src/Modal/ReactPortal.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,OAAO,CAAC;AAElD,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEzC,SAAS,4BAA4B,CAAC,SAAiB;IACnD,MAAM,cAAc,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IACrD,cAAc,CAAC,YAAY,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC7C,cAAc,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC;IAC3C,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;IAC1C,OAAO,cAAc,CAAC;AAC1B,CAAC;AAKD,MAAM,CAAC,MAAM,WAAW,GAAyB,UAAU,EAAE,QAAQ,EAAE,SAAS,GAAG,sBAAsB,EAAE;IACvG,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAqB,IAAI,CAAC,CAAC;IAE/E,eAAe,CAAC,GAAG,EAAE;QACjB,IAAI,OAAO,GAAuB,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QACrE,IAAI,aAAa,GAAG,KAAK,CAAC;QAC1B,uEAAuE;QACvE,4BAA4B;QAC5B,IAAI,CAAC,OAAO,EAAE;YACV,aAAa,GAAG,IAAI,CAAC;YACrB,OAAO,GAAG,4BAA4B,CAAC,SAAS,CAAC,CAAC;SACrD;QACD,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAE3B,OAAO,GAAG,EAAE;YACR,6CAA6C;YAC7C,IAAI,aAAa,IAAI,OAAO,EAAE,UAAU,EAAE;gBACtC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;aAC3C;QACL,CAAC,CAAC;IACN,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAEhB,0DAA0D;IAC1D,IAAI,cAAc,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAEzC,OAAO,YAAY,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;AAClD,CAAC,CAAC"}
@@ -0,0 +1,54 @@
1
+ import { useWallet } from '@tronweb3/tronwallet-adapter-react-hooks';
2
+ import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';
3
+ import { AdapterState } from '@tronweb3/tronwallet-abstract-adapter';
4
+ import { ReactPortal } from './ReactPortal.js';
5
+ import { WalletItem } from '../WalletItem.js';
6
+ export const WalletSelectModal = function ({ visible, onClose }) {
7
+ const nodeRef = useRef(null);
8
+ const { wallets, select } = useWallet();
9
+ const [fadeIn, setFadeIn] = useState(false);
10
+ const [render, setRender] = useState(false);
11
+ const walletsList = useMemo(() => [
12
+ ...wallets.filter((a) => a.state !== AdapterState.NotFound),
13
+ ...wallets.filter((a) => a.state === AdapterState.NotFound),
14
+ ], [wallets]);
15
+ const onWalletClick = useCallback((wallet) => {
16
+ select(wallet.adapter.name);
17
+ onClose();
18
+ }, [select, onClose]);
19
+ function show() {
20
+ setRender(true);
21
+ setFadeIn(true);
22
+ }
23
+ function close() {
24
+ setFadeIn(false);
25
+ // setRender(false)
26
+ setTimeout(() => setRender(false), 200);
27
+ }
28
+ useEffect(function () {
29
+ if (visible) {
30
+ show();
31
+ }
32
+ else {
33
+ close();
34
+ }
35
+ }, [visible]);
36
+ useEffect(() => {
37
+ const closeOnEscapeKey = (e) => (e.key === 'Escape' ? onClose() : null);
38
+ document.body.addEventListener('keydown', closeOnEscapeKey);
39
+ return () => {
40
+ document.body.removeEventListener('keydown', closeOnEscapeKey);
41
+ };
42
+ }, [onClose]);
43
+ return render ? (React.createElement(ReactPortal, { wrapperId: "react-portal-modal-container" },
44
+ React.createElement("div", { "data-testid": "wallet-select-modal", ref: nodeRef, className: `adapter-modal ${fadeIn && 'adapter-modal-fade-in'}` },
45
+ React.createElement("div", { className: "adapter-modal-wrapper" },
46
+ React.createElement("div", { className: "adapter-modal-header" },
47
+ React.createElement("button", { onClick: onClose, className: "close-button", tabIndex: 0 }),
48
+ React.createElement("div", { className: "adapter-modal-title" },
49
+ "Connect a wallet on",
50
+ React.createElement("br", null),
51
+ "Tron to continue")),
52
+ React.createElement("div", { className: "adapter-list" }, walletsList.map((wallet) => (React.createElement(WalletItem, { key: wallet.adapter.name, wallet: wallet, onClick: () => onWalletClick(wallet) })))))))) : null;
53
+ };
54
+ //# sourceMappingURL=WalletSelectModal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WalletSelectModal.js","sourceRoot":"","sources":["../../../src/Modal/WalletSelectModal.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,73 @@
1
+ import { useWallet } from '@tronweb3/tronwallet-adapter-react-hooks';
2
+ import { useEffect, useRef, useState } from 'react';
3
+ import React, { useCallback, useMemo } from 'react';
4
+ import { Button } from './Button.js';
5
+ import { WalletSelectButton } from './WalletSelectButton.js';
6
+ import { WalletConnectButton } from './WalletConnectButton.js';
7
+ import { Collapse } from './Collapse.js';
8
+ import { useWalletModal } from './useWalletModal.js';
9
+ import { copyData } from './utils.js';
10
+ export const WalletActionButton = ({ children, ...props }) => {
11
+ const { address, wallet, disconnect } = useWallet();
12
+ const { setVisible } = useWalletModal();
13
+ const [dropdownVisible, setDropdownVisible] = useState(false);
14
+ const [copied, setCopied] = useState(false);
15
+ const ref = useRef(null);
16
+ const content = useMemo(() => {
17
+ if (children)
18
+ return children;
19
+ if (!wallet || !address)
20
+ return null;
21
+ return address.slice(0, 4) + '...' + address.slice(-4);
22
+ }, [children, wallet, address]);
23
+ const copyAddress = () => {
24
+ if (address) {
25
+ copyData(address);
26
+ setCopied(true);
27
+ setTimeout(() => {
28
+ setCopied(false);
29
+ hideDropdown();
30
+ }, 400);
31
+ }
32
+ };
33
+ function changeWallet() {
34
+ setVisible(true);
35
+ hideDropdown();
36
+ }
37
+ const openDropdown = useCallback(function () {
38
+ setDropdownVisible(true);
39
+ }, []);
40
+ const hideDropdown = useCallback(function () {
41
+ setDropdownVisible(false);
42
+ }, []);
43
+ const handleDisconnect = useCallback(async function () {
44
+ await disconnect();
45
+ hideDropdown();
46
+ }, [disconnect, hideDropdown]);
47
+ useEffect(() => {
48
+ const listener = (event) => {
49
+ const node = ref.current;
50
+ if (!node || node.contains(event.target))
51
+ return;
52
+ hideDropdown();
53
+ };
54
+ document.addEventListener('mousedown', listener);
55
+ document.addEventListener('touchstart', listener);
56
+ return () => {
57
+ document.removeEventListener('mousedown', listener);
58
+ document.removeEventListener('touchstart', listener);
59
+ };
60
+ }, [ref, hideDropdown]);
61
+ if (!wallet)
62
+ return React.createElement(WalletSelectButton, { ...props }, children);
63
+ if (!address)
64
+ return React.createElement(WalletConnectButton, { ...props }, children);
65
+ return (React.createElement("div", { "data-testid": "wallet-action-button", className: "adapter-dropdown" },
66
+ React.createElement(Button, { onClick: openDropdown, style: { pointerEvents: dropdownVisible ? 'none' : 'auto', ...props.style }, icon: wallet ? wallet.adapter.icon : '', ...props }, content),
67
+ React.createElement(Collapse, { className: "adapter-dropdown-collapse", isOpen: dropdownVisible },
68
+ React.createElement("ul", { ref: ref, className: "adapter-dropdown-list", role: "menu" },
69
+ React.createElement("li", { onClick: copyAddress, className: "adapter-dropdown-list-item", role: "menuitem" }, copied ? 'Copied' : 'Copy address'),
70
+ React.createElement("li", { onClick: changeWallet, className: "adapter-dropdown-list-item", role: "menuitem" }, "Change wallet"),
71
+ React.createElement("li", { onClick: handleDisconnect, className: "adapter-dropdown-list-item", role: "menuitem" }, "Disconnect")))));
72
+ };
73
+ //# sourceMappingURL=WalletActionButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WalletActionButton.js","sourceRoot":"","sources":["../../src/WalletActionButton.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import { useWallet } from '@tronweb3/tronwallet-adapter-react-hooks';
2
+ import React, { useCallback, useMemo } from 'react';
3
+ import { Button } from './Button.js';
4
+ export const WalletConnectButton = ({ children, disabled, onClick, ...props }) => {
5
+ const { wallet, connect, connecting, connected } = useWallet();
6
+ const handleClick = useCallback(async (event) => {
7
+ if (onClick)
8
+ onClick(event);
9
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
10
+ if (!event.defaultPrevented) {
11
+ await connect();
12
+ }
13
+ }, [onClick, connect]);
14
+ const content = useMemo(() => {
15
+ if (children)
16
+ return children;
17
+ if (connecting)
18
+ return 'Connecting ...';
19
+ if (connected)
20
+ return 'Connected';
21
+ if (wallet)
22
+ return 'Connect';
23
+ return 'Connect Wallet';
24
+ }, [children, connecting, connected, wallet]);
25
+ return (React.createElement(Button, { "data-testid": "wallet-connect-button", className: "wallet-button", disabled: disabled || !wallet || connecting || connected, onClick: handleClick, icon: wallet ? wallet.adapter.icon : '', ...props }, content));
26
+ };
27
+ //# sourceMappingURL=WalletConnectButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WalletConnectButton.js","sourceRoot":"","sources":["../../src/WalletConnectButton.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,0CAA0C,CAAC;AAErE,OAAO,KAAK,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAEpD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,MAAM,CAAC,MAAM,mBAAmB,GAAoB,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE;IAC9F,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,SAAS,EAAE,CAAC;IAE/D,MAAM,WAAW,GAAG,WAAW,CAC3B,KAAK,EAAE,KAAoC,EAAE,EAAE;QAC3C,IAAI,OAAO;YAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QAC5B,gEAAgE;QAChE,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE;YACzB,MAAM,OAAO,EAAE,CAAC;SACnB;IACL,CAAC,EACD,CAAC,OAAO,EAAE,OAAO,CAAC,CACrB,CAAC;IAEF,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE;QACzB,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAC9B,IAAI,UAAU;YAAE,OAAO,gBAAgB,CAAC;QACxC,IAAI,SAAS;YAAE,OAAO,WAAW,CAAC;QAClC,IAAI,MAAM;YAAE,OAAO,SAAS,CAAC;QAC7B,OAAO,gBAAgB,CAAC;IAC5B,CAAC,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;IAE9C,OAAO,CACH,oBAAC,MAAM,mBACS,uBAAuB,EACnC,SAAS,EAAC,eAAe,EACzB,QAAQ,EAAE,QAAQ,IAAI,CAAC,MAAM,IAAI,UAAU,IAAI,SAAS,EACxD,OAAO,EAAE,WAAW,EACpB,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KACnC,KAAK,IAER,OAAO,CACH,CACZ,CAAC;AACN,CAAC,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { useWallet } from '@tronweb3/tronwallet-adapter-react-hooks';
2
+ import React, { useCallback, useMemo } from 'react';
3
+ import { Button } from './Button.js';
4
+ export const WalletDisconnectButton = ({ children, disabled, onClick, ...props }) => {
5
+ const { wallet, disconnect, disconnecting, connected } = useWallet();
6
+ const handleClick = useCallback((event) => {
7
+ if (onClick)
8
+ onClick(event);
9
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
10
+ if (!event.defaultPrevented)
11
+ disconnect().catch(() => { });
12
+ }, [onClick, disconnect]);
13
+ const content = useMemo(() => {
14
+ if (children)
15
+ return children;
16
+ if (disconnecting)
17
+ return 'Disconnecting ...';
18
+ if (wallet)
19
+ return 'Disconnect';
20
+ return 'Disconnect Wallet';
21
+ }, [children, disconnecting, wallet]);
22
+ return (React.createElement(Button, { "data-testid": "wallet-disconnect-button", disabled: disabled || !wallet || !connected, icon: wallet ? wallet.adapter.icon : '', onClick: handleClick, ...props }, content));
23
+ };
24
+ //# sourceMappingURL=WalletDisconnectButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WalletDisconnectButton.js","sourceRoot":"","sources":["../../src/WalletDisconnectButton.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,0CAA0C,CAAC;AAErE,OAAO,KAAK,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAEpD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,MAAM,CAAC,MAAM,sBAAsB,GAAoB,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE;IACjG,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,GAAG,SAAS,EAAE,CAAC;IAErE,MAAM,WAAW,GAAyC,WAAW,CACjE,CAAC,KAAK,EAAE,EAAE;QACN,IAAI,OAAO;YAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QAC5B,gEAAgE;QAChE,IAAI,CAAC,KAAK,CAAC,gBAAgB;YAAE,UAAU,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAC9D,CAAC,EACD,CAAC,OAAO,EAAE,UAAU,CAAC,CACxB,CAAC;IAEF,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE;QACzB,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAC9B,IAAI,aAAa;YAAE,OAAO,mBAAmB,CAAC;QAC9C,IAAI,MAAM;YAAE,OAAO,YAAY,CAAC;QAChC,OAAO,mBAAmB,CAAC;IAC/B,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC;IAEtC,OAAO,CACH,oBAAC,MAAM,mBACS,0BAA0B,EACtC,QAAQ,EAAE,QAAQ,IAAI,CAAC,MAAM,IAAI,CAAC,SAAS,EAC3C,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EACvC,OAAO,EAAE,WAAW,KAChB,KAAK,IAER,OAAO,CACH,CACZ,CAAC;AACN,CAAC,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { AdapterState } from '@tronweb3/tronwallet-abstract-adapter';
2
+ import React from 'react';
3
+ import { Button } from './Button.js';
4
+ export const WalletItem = ({ onClick, wallet }) => {
5
+ return (React.createElement("div", { className: "adapter-wallet-item" },
6
+ React.createElement(Button, { onClick: onClick, icon: wallet.adapter.icon, tabIndex: 0 },
7
+ wallet.adapter.name,
8
+ React.createElement("span", { className: "status-text" }, wallet.state !== AdapterState.NotFound ? 'Detected' : 'NotFound'))));
9
+ };
10
+ //# sourceMappingURL=WalletItem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WalletItem.js","sourceRoot":"","sources":["../../src/WalletItem.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAGrE,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAOrC,MAAM,CAAC,MAAM,UAAU,GAAwB,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE;IACnE,OAAO,CACH,6BAAK,SAAS,EAAC,qBAAqB;QAChC,oBAAC,MAAM,IAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC;YAC3D,MAAM,CAAC,OAAO,CAAC,IAAI;YACpB,8BAAM,SAAS,EAAC,aAAa,IAAE,MAAM,CAAC,KAAK,KAAK,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAQ,CAClG,CACP,CACT,CAAC;AACN,CAAC,CAAC"}
@@ -0,0 +1,13 @@
1
+ import React, { useState } from 'react';
2
+ import { WalletSelectModal } from './Modal/WalletSelectModal.js';
3
+ import { WalletModalContext } from './useWalletModal.js';
4
+ export function WalletModalProvider({ children, ...props }) {
5
+ const [visible, setVisible] = useState(false);
6
+ return (React.createElement(WalletModalContext.Provider, { value: {
7
+ visible,
8
+ setVisible,
9
+ } },
10
+ children,
11
+ React.createElement(WalletSelectModal, { visible: visible, onClose: () => setVisible(false), ...props })));
12
+ }
13
+ //# sourceMappingURL=WalletModalProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WalletModalProvider.js","sourceRoot":"","sources":["../../src/WalletModalProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD,MAAM,UAAU,mBAAmB,CAAC,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAO;IAC3D,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9C,OAAO,CACH,oBAAC,kBAAkB,CAAC,QAAQ,IACxB,KAAK,EAAE;YACH,OAAO;YACP,UAAU;SACb;QAEA,QAAQ;QACR,oBAAC,iBAAiB,IAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,KAAM,KAAK,GAAI,CAC3D,CACjC,CAAC;AACN,CAAC"}
@@ -0,0 +1,14 @@
1
+ import React, { useCallback } from 'react';
2
+ import { Button } from './Button.js';
3
+ import { useWalletModal } from './useWalletModal.js';
4
+ export const WalletSelectButton = function ({ children = 'Select Wallet', onClick, ...props }) {
5
+ const { visible, setVisible } = useWalletModal();
6
+ const handleClick = useCallback((event) => {
7
+ if (onClick)
8
+ onClick(event);
9
+ if (!event.defaultPrevented)
10
+ setVisible(!visible);
11
+ }, [onClick, setVisible, visible]);
12
+ return (React.createElement(Button, { "data-testid": "wallet-select-button", onClick: handleClick, ...props }, children));
13
+ };
14
+ //# sourceMappingURL=WalletSelectButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WalletSelectButton.js","sourceRoot":"","sources":["../../src/WalletSelectButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAE3C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,MAAM,CAAC,MAAM,kBAAkB,GAAoB,UAAU,EAAE,QAAQ,GAAG,eAAe,EAAE,OAAO,EAAE,GAAG,KAAK,EAAE;IAC1G,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,cAAc,EAAE,CAAC;IAEjD,MAAM,WAAW,GAAG,WAAW,CAC3B,CAAC,KAAoC,EAAE,EAAE;QACrC,IAAI,OAAO;YAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QAC5B,IAAI,CAAC,KAAK,CAAC,gBAAgB;YAAE,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC;IACtD,CAAC,EACD,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,CACjC,CAAC;IAEF,OAAO,CACH,oBAAC,MAAM,mBAAa,sBAAsB,EAAC,OAAO,EAAE,WAAW,KAAM,KAAK,IACrE,QAAQ,CACJ,CACZ,CAAC;AACN,CAAC,CAAC"}
@@ -0,0 +1,11 @@
1
+ export * from './Collapse.js';
2
+ export * from './Button.js';
3
+ export * from './Modal/WalletSelectModal.js';
4
+ export * from './WalletConnectButton.js';
5
+ export * from './WalletDisconnectButton.js';
6
+ export * from './WalletItem.js';
7
+ export * from './WalletActionButton.js';
8
+ export * from './WalletSelectButton.js';
9
+ export * from './useWalletModal.js';
10
+ export * from './WalletModalProvider.js';
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { createContext, useContext } from 'react';
2
+ const DEFAULT_VALUE = {
3
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
4
+ setVisible(_open) {
5
+ printError();
6
+ },
7
+ visible: false,
8
+ };
9
+ Object.defineProperty(DEFAULT_VALUE, 'visible', {
10
+ get() {
11
+ printError();
12
+ return false;
13
+ },
14
+ });
15
+ function printError() {
16
+ console.error('WalletModalProvider is not provided.' + 'Please wrap your components with WalletModalProvider.');
17
+ }
18
+ export const WalletModalContext = createContext(DEFAULT_VALUE);
19
+ export function useWalletModal() {
20
+ return useContext(WalletModalContext);
21
+ }
22
+ //# sourceMappingURL=useWalletModal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useWalletModal.js","sourceRoot":"","sources":["../../src/useWalletModal.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAOlD,MAAM,aAAa,GAAG;IAClB,6DAA6D;IAC7D,UAAU,CAAC,KAAc;QACrB,UAAU,EAAE,CAAC;IACjB,CAAC;IACD,OAAO,EAAE,KAAK;CACjB,CAAC;AACF,MAAM,CAAC,cAAc,CAAC,aAAa,EAAE,SAAS,EAAE;IAC5C,GAAG;QACC,UAAU,EAAE,CAAC;QACb,OAAO,KAAK,CAAC;IACjB,CAAC;CACJ,CAAC,CAAC;AAEH,SAAS,UAAU;IACf,OAAO,CAAC,KAAK,CAAC,sCAAsC,GAAG,uDAAuD,CAAC,CAAC;AACpH,CAAC;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG,aAAa,CAA0B,aAAoB,CAAC,CAAC;AAE/F,MAAM,UAAU,cAAc;IAC1B,OAAO,UAAU,CAAC,kBAAkB,CAAC,CAAC;AAC1C,CAAC"}
@@ -0,0 +1,12 @@
1
+ export function copyData(copyText) {
2
+ const textArea = document.createElement('textarea');
3
+ textArea.value = copyText;
4
+ document.body.appendChild(textArea);
5
+ textArea.select();
6
+ textArea.style.position = 'fixed';
7
+ textArea.style.top = '-9999px';
8
+ textArea.style.left = '-9999px';
9
+ document.execCommand('copy');
10
+ textArea.blur();
11
+ }
12
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.tsx"],"names":[],"mappings":"AAAA,MAAM,UAAU,QAAQ,CAAC,QAAgB;IACrC,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IACpD,QAAQ,CAAC,KAAK,GAAG,QAAQ,CAAC;IAC1B,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC;IAClC,QAAQ,CAAC,KAAK,CAAC,GAAG,GAAG,SAAS,CAAC;IAC/B,QAAQ,CAAC,KAAK,CAAC,IAAI,GAAG,SAAS,CAAC;IAChC,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,CAAC;AACpB,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { CSSProperties, FC, MouseEvent, PropsWithChildren } from 'react';
2
+ export type ButtonProps = PropsWithChildren<{
3
+ className?: string;
4
+ disabled?: boolean;
5
+ onClick?: (e: MouseEvent<HTMLButtonElement>) => void;
6
+ style?: CSSProperties;
7
+ tabIndex?: number;
8
+ icon?: string;
9
+ }>;
10
+ export declare const Button: FC<ButtonProps>;
11
+ //# sourceMappingURL=Button.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../src/Button.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,EAAE,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAE9E,MAAM,MAAM,WAAW,GAAG,iBAAiB,CAAC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;IACrD,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC,CAAC;AAEH,eAAO,MAAM,MAAM,EAAE,EAAE,CAAC,WAAW,CAwBlC,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { FC, PropsWithChildren } from 'react';
2
+ export type CollapseProps = PropsWithChildren<{
3
+ isOpen: boolean;
4
+ id?: string;
5
+ className?: string;
6
+ transition?: string;
7
+ }>;
8
+ export declare const Collapse: FC<CollapseProps>;
9
+ //# sourceMappingURL=Collapse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Collapse.d.ts","sourceRoot":"","sources":["../../src/Collapse.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAGnD,MAAM,MAAM,aAAa,GAAG,iBAAiB,CAAC;IAC1C,MAAM,EAAE,OAAO,CAAC;IAChB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC,CAAC;AAEH,eAAO,MAAM,QAAQ,EAAE,EAAE,CAAC,aAAa,CAyDtC,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { PropsWithChildren, FC } from 'react';
2
+ type ReactPortalProps = PropsWithChildren<{
3
+ wrapperId: string;
4
+ }>;
5
+ export declare const ReactPortal: FC<ReactPortalProps>;
6
+ export {};
7
+ //# sourceMappingURL=ReactPortal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReactPortal.d.ts","sourceRoot":"","sources":["../../../src/Modal/ReactPortal.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAWnD,KAAK,gBAAgB,GAAG,iBAAiB,CAAC;IACtC,SAAS,EAAE,MAAM,CAAC;CACrB,CAAC,CAAC;AACH,eAAO,MAAM,WAAW,EAAE,EAAE,CAAC,gBAAgB,CA0B5C,CAAC"}