@aptos-labs/wallet-adapter-react 3.3.1 → 3.4.1

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/README.md CHANGED
@@ -75,7 +75,7 @@ const wallets = [new AptosLegacyStandardWallet()];
75
75
  plugins={wallets}
76
76
  autoConnect={true}
77
77
  optInWallets={["Petra"]}
78
- dappConfig={{ netwrok: network.MAINNET }}
78
+ dappConfig={{ netwrok: Network.MAINNET }}
79
79
  onError={(error) => {
80
80
  console.log("error", error);
81
81
  }}
@@ -0,0 +1,22 @@
1
+ import { ReactNode } from "react";
2
+ export declare const APTOS_PRIVACY_POLICY_URL = "https://aptoslabs.com/privacy";
3
+ export interface AptosPrivacyPolicyProps {
4
+ /** A class name for styling the element. */
5
+ className?: string;
6
+ /**
7
+ * Whether to render as the child element instead of the default element provided.
8
+ * All props will be merged into the child element.
9
+ */
10
+ asChild?: boolean;
11
+ children?: ReactNode;
12
+ }
13
+ /**
14
+ * A headless component for rendering the Aptos Labs privacy policy disclaimer
15
+ * that should be placed under the Aptos Connect login options.
16
+ */
17
+ export declare const AptosPrivacyPolicy: import("react").ForwardRefExoticComponent<AptosPrivacyPolicyProps & import("react").RefAttributes<HTMLDivElement>> & {
18
+ Disclaimer: import("react").ForwardRefExoticComponent<AptosPrivacyPolicyProps & import("react").RefAttributes<HTMLSpanElement>>;
19
+ Link: import("react").ForwardRefExoticComponent<AptosPrivacyPolicyProps & import("react").RefAttributes<HTMLAnchorElement>>;
20
+ PoweredBy: import("react").ForwardRefExoticComponent<Pick<AptosPrivacyPolicyProps, "className"> & import("react").RefAttributes<HTMLDivElement>>;
21
+ };
22
+ //# sourceMappingURL=AptosPrivacyPolicy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AptosPrivacyPolicy.d.ts","sourceRoot":"","sources":["../../src/components/AptosPrivacyPolicy.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAc,MAAM,OAAO,CAAC;AAG9C,eAAO,MAAM,wBAAwB,kCAAkC,CAAC;AAExE,MAAM,WAAW,uBAAuB;IACtC,4CAA4C;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AA6DD;;;GAGG;AACH,eAAO,MAAM,kBAAkB;;;;CAI7B,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WalletItem.d.ts","sourceRoot":"","sources":["../../src/components/WalletItem.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EAGf,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EACL,SAAS,EAKV,MAAM,OAAO,CAAC;AAGf,MAAM,WAAW,eAAe;IAC9B,yCAAyC;IACzC,MAAM,EAAE,cAAc,CAAC;IACvB,6DAA6D;IAC7D,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,oDAAoD;IACpD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,MAAM,WAAW,sBAAsB;IACrC,4CAA4C;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAmID,kHAAkH;AAClH,eAAO,MAAM,UAAU;;;;;CAKrB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { SVGProps } from "react";
2
+ export declare function SmallAptosLogo(props: SVGProps<SVGSVGElement>): import("react/jsx-runtime").JSX.Element;
3
+ //# sourceMappingURL=SmallAptosLogo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SmallAptosLogo.d.ts","sourceRoot":"","sources":["../../src/graphics/SmallAptosLogo.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC,wBAAgB,cAAc,CAAC,KAAK,EAAE,QAAQ,CAAC,aAAa,CAAC,2CAW5D"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  export * from "@aptos-labs/wallet-adapter-core";
2
- export * from "./WalletItem";
3
2
  export * from "./WalletProvider";
3
+ export * from "./components/AptosPrivacyPolicy";
4
+ export * from "./components/WalletItem";
4
5
  export * from "./useWallet";
5
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA,cAAc,iCAAiC,CAAC;AAChD,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA,cAAc,iCAAiC,CAAC;AAChD,cAAc,kBAAkB,CAAC;AACjC,cAAc,iCAAiC,CAAC;AAChD,cAAc,yBAAyB,CAAC;AACxC,cAAc,aAAa,CAAC"}
package/dist/index.js CHANGED
@@ -21,6 +21,8 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
21
21
  // src/index.tsx
22
22
  var src_exports = {};
23
23
  __export(src_exports, {
24
+ APTOS_PRIVACY_POLICY_URL: () => APTOS_PRIVACY_POLICY_URL,
25
+ AptosPrivacyPolicy: () => AptosPrivacyPolicy,
24
26
  AptosWalletAdapterProvider: () => AptosWalletAdapterProvider,
25
27
  WalletContext: () => WalletContext,
26
28
  WalletItem: () => WalletItem,
@@ -29,9 +31,7 @@ __export(src_exports, {
29
31
  module.exports = __toCommonJS(src_exports);
30
32
  __reExport(src_exports, require("@aptos-labs/wallet-adapter-core"), module.exports);
31
33
 
32
- // src/WalletItem.tsx
33
- var import_wallet_adapter_core = require("@aptos-labs/wallet-adapter-core");
34
- var import_react_slot = require("@radix-ui/react-slot");
34
+ // src/WalletProvider.tsx
35
35
  var import_react2 = require("react");
36
36
 
37
37
  // src/useWallet.tsx
@@ -50,108 +50,8 @@ function useWallet() {
50
50
  return context;
51
51
  }
52
52
 
53
- // src/WalletItem.tsx
54
- var import_jsx_runtime = require("react/jsx-runtime");
55
- var WalletItemContext = (0, import_react2.createContext)(null);
56
- var WalletItemRoot = (0, import_react2.forwardRef)(
57
- ({ wallet, onConnect, className, asChild, children }, ref) => {
58
- const { connect } = useWallet();
59
- const connectWallet = (0, import_react2.useCallback)(() => {
60
- connect(wallet.name);
61
- onConnect == null ? void 0 : onConnect();
62
- }, [connect, wallet.name, onConnect]);
63
- const isWalletReady = wallet.readyState === import_wallet_adapter_core.WalletReadyState.Installed || wallet.readyState === import_wallet_adapter_core.WalletReadyState.Loadable;
64
- const mobileSupport = "deeplinkProvider" in wallet && wallet.deeplinkProvider;
65
- if (!isWalletReady && (0, import_wallet_adapter_core.isRedirectable)() && !mobileSupport)
66
- return null;
67
- const Component = asChild ? import_react_slot.Slot : "div";
68
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(WalletItemContext.Provider, {
69
- value: { wallet, connectWallet },
70
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Component, {
71
- ref,
72
- className,
73
- children
74
- })
75
- });
76
- }
77
- );
78
- WalletItemRoot.displayName = "WalletItem";
79
- var WalletItemIcon = (0, import_react2.forwardRef)(
80
- ({ className, asChild, children }, ref) => {
81
- const context = (0, import_react2.useContext)(WalletItemContext);
82
- if (!context) {
83
- throw new Error("`WalletItem.Icon` must be used within `WalletItem`");
84
- }
85
- const Component = asChild ? import_react_slot.Slot : "img";
86
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Component, {
87
- ref,
88
- src: context.wallet.icon,
89
- alt: `${context.wallet.name} icon`,
90
- className,
91
- children
92
- });
93
- }
94
- );
95
- WalletItemIcon.displayName = "WalletItem.Icon";
96
- var WalletItemName = (0, import_react2.forwardRef)(
97
- ({ className, asChild, children }, ref) => {
98
- const context = (0, import_react2.useContext)(WalletItemContext);
99
- if (!context) {
100
- throw new Error("`WalletItem.Name` must be used within `WalletItem`");
101
- }
102
- const Component = asChild ? import_react_slot.Slot : "div";
103
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Component, {
104
- ref,
105
- className,
106
- children: children != null ? children : context.wallet.name
107
- });
108
- }
109
- );
110
- WalletItemName.displayName = "WalletItem.Name";
111
- var WalletItemConnectButton = (0, import_react2.forwardRef)(({ className, asChild, children }, ref) => {
112
- const context = (0, import_react2.useContext)(WalletItemContext);
113
- if (!context) {
114
- throw new Error(
115
- "`WalletItem.ConnectButton` must be used within `WalletItem`"
116
- );
117
- }
118
- const Component = asChild ? import_react_slot.Slot : "button";
119
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Component, {
120
- ref,
121
- className,
122
- onClick: context.connectWallet,
123
- children: children != null ? children : "Connect"
124
- });
125
- });
126
- WalletItemConnectButton.displayName = "WalletItem.ConnectButton";
127
- var WalletItemInstallLink = (0, import_react2.forwardRef)(({ className, asChild, children }, ref) => {
128
- const context = (0, import_react2.useContext)(WalletItemContext);
129
- if (!context) {
130
- throw new Error(
131
- "`WalletItem.InstallLink` must be used within `WalletItem`"
132
- );
133
- }
134
- const Component = asChild ? import_react_slot.Slot : "a";
135
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Component, {
136
- ref,
137
- className,
138
- href: context.wallet.url,
139
- target: "_blank",
140
- rel: "noopener noreferrer",
141
- children: children != null ? children : "Install"
142
- });
143
- });
144
- WalletItemInstallLink.displayName = "WalletItem.InstallLink";
145
- var WalletItem = Object.assign(WalletItemRoot, {
146
- Icon: WalletItemIcon,
147
- Name: WalletItemName,
148
- ConnectButton: WalletItemConnectButton,
149
- InstallLink: WalletItemInstallLink
150
- });
151
-
152
53
  // src/WalletProvider.tsx
153
- var import_react3 = require("react");
154
- var import_wallet_adapter_core2 = require("@aptos-labs/wallet-adapter-core");
54
+ var import_wallet_adapter_core = require("@aptos-labs/wallet-adapter-core");
155
55
  var import_jsx_runtime = require("react/jsx-runtime");
156
56
  var initialState = {
157
57
  connected: false,
@@ -167,13 +67,13 @@ var AptosWalletAdapterProvider = ({
167
67
  dappConfig,
168
68
  onError
169
69
  }) => {
170
- const [{ connected, account, network, wallet }, setState] = (0, import_react3.useState)(initialState);
171
- const [isLoading, setIsLoading] = (0, import_react3.useState)(true);
172
- const walletCore = (0, import_react3.useMemo)(
173
- () => new import_wallet_adapter_core2.WalletCore(plugins != null ? plugins : [], optInWallets != null ? optInWallets : [], dappConfig),
70
+ const [{ connected, account, network, wallet }, setState] = (0, import_react2.useState)(initialState);
71
+ const [isLoading, setIsLoading] = (0, import_react2.useState)(true);
72
+ const walletCore = (0, import_react2.useMemo)(
73
+ () => new import_wallet_adapter_core.WalletCore(plugins != null ? plugins : [], optInWallets != null ? optInWallets : [], dappConfig),
174
74
  []
175
75
  );
176
- const [wallets, setWallets] = (0, import_react3.useState)(walletCore.wallets);
76
+ const [wallets, setWallets] = (0, import_react2.useState)(walletCore.wallets);
177
77
  const connect = async (walletName) => {
178
78
  try {
179
79
  setIsLoading(true);
@@ -249,7 +149,7 @@ var AptosWalletAdapterProvider = ({
249
149
  return Promise.reject(error);
250
150
  }
251
151
  };
252
- (0, import_react3.useEffect)(() => {
152
+ (0, import_react2.useEffect)(() => {
253
153
  if (autoConnect) {
254
154
  if (localStorage.getItem("AptosWalletName") && !connected) {
255
155
  connect(localStorage.getItem("AptosWalletName"));
@@ -258,7 +158,7 @@ var AptosWalletAdapterProvider = ({
258
158
  }
259
159
  }
260
160
  }, [autoConnect, wallets]);
261
- (0, import_react3.useEffect)(() => {
161
+ (0, import_react2.useEffect)(() => {
262
162
  if (connected) {
263
163
  walletCore.onAccountChange();
264
164
  walletCore.onNetworkChange();
@@ -288,7 +188,7 @@ var AptosWalletAdapterProvider = ({
288
188
  };
289
189
  });
290
190
  };
291
- const handleAccountChange = (0, import_react3.useCallback)(() => {
191
+ const handleAccountChange = (0, import_react2.useCallback)(() => {
292
192
  if (!connected)
293
193
  return;
294
194
  if (!walletCore.wallet)
@@ -300,7 +200,7 @@ var AptosWalletAdapterProvider = ({
300
200
  };
301
201
  });
302
202
  }, [connected]);
303
- const handleNetworkChange = (0, import_react3.useCallback)(() => {
203
+ const handleNetworkChange = (0, import_react2.useCallback)(() => {
304
204
  if (!connected)
305
205
  return;
306
206
  if (!walletCore.wallet)
@@ -335,7 +235,7 @@ var AptosWalletAdapterProvider = ({
335
235
  setWallets((wallets2) => [...wallets2, standardWallet]);
336
236
  }
337
237
  };
338
- (0, import_react3.useEffect)(() => {
238
+ (0, import_react2.useEffect)(() => {
339
239
  walletCore.on("connect", handleConnect);
340
240
  walletCore.on("disconnect", handleDisconnect);
341
241
  walletCore.on("accountChange", handleAccountChange);
@@ -371,8 +271,195 @@ var AptosWalletAdapterProvider = ({
371
271
  children
372
272
  });
373
273
  };
274
+
275
+ // src/components/AptosPrivacyPolicy.tsx
276
+ var import_react_slot = require("@radix-ui/react-slot");
277
+ var import_react3 = require("react");
278
+
279
+ // src/graphics/SmallAptosLogo.tsx
280
+ var import_jsx_runtime = require("react/jsx-runtime");
281
+ function SmallAptosLogo(props) {
282
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("svg", {
283
+ width: "12",
284
+ height: "12",
285
+ viewBox: "0 0 12 12",
286
+ fill: "none",
287
+ ...props,
288
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", {
289
+ fillRule: "evenodd",
290
+ clipRule: "evenodd",
291
+ d: "M6 12C9.31371 12 12 9.31371 12 6C12 2.68629 9.31371 0 6 0C2.68629 0 0 2.68629 0 6C0 9.31371 2.68629 12 6 12ZM7.17547 3.67976C7.13401 3.72309 7.07649 3.74757 7.01648 3.74757H3.00775C3.69185 2.83824 4.77995 2.25 6.00569 2.25C7.23142 2.25 8.31953 2.83824 9.00362 3.74757H8.28524C8.20824 3.74757 8.13498 3.71468 8.08401 3.65701L7.81608 3.35416C7.77618 3.30896 7.71882 3.28308 7.6585 3.28308H7.6454C7.58805 3.28308 7.53318 3.30646 7.49343 3.34792L7.17547 3.67976ZM8.05656 4.75897H7.39569C7.31869 4.75897 7.24543 4.72593 7.19447 4.66842L6.92638 4.36557C6.88647 4.32036 6.82896 4.29465 6.7688 4.29465C6.70863 4.29465 6.65112 4.32052 6.61121 4.36557L6.38131 4.6254C6.30603 4.71034 6.19801 4.75913 6.08454 4.75913H2.46703C2.36401 5.05278 2.29683 5.36296 2.27002 5.68467H5.68505C5.74506 5.68467 5.80258 5.66019 5.84404 5.61686L6.16201 5.28502C6.20175 5.24356 6.25662 5.22018 6.31398 5.22018H6.32707C6.38739 5.22018 6.44475 5.24606 6.48465 5.29126L6.75258 5.59411C6.80355 5.65178 6.87681 5.68467 6.95381 5.68467H9.74133C9.71452 5.3628 9.64734 5.05263 9.54431 4.75913H8.05641L8.05656 4.75897ZM4.33651 7.63095C4.39652 7.63095 4.45404 7.60648 4.4955 7.56315L4.81347 7.23131C4.85321 7.18985 4.90808 7.16647 4.96544 7.16647H4.97853C5.03885 7.16647 5.09621 7.19234 5.13611 7.23739L5.40404 7.54024C5.45501 7.59791 5.52827 7.6308 5.60527 7.6308H9.38285C9.52438 7.33839 9.62803 7.02463 9.68975 6.69591H6.06383C5.98683 6.69591 5.91357 6.66287 5.8626 6.60535L5.59467 6.3025C5.55477 6.2573 5.49725 6.23158 5.43709 6.23158C5.37692 6.23158 5.31941 6.25746 5.27951 6.3025L5.0496 6.56233C4.97432 6.64728 4.86631 6.69606 4.75268 6.69606H2.32147C2.3832 7.02479 2.487 7.33855 2.62837 7.63095H4.33651ZM5.57359 8.55745H4.59116C4.51417 8.55745 4.44091 8.52441 4.38994 8.46689L4.12201 8.16404C4.0821 8.11884 4.02459 8.09312 3.96442 8.09312C3.90426 8.09312 3.84675 8.119 3.80684 8.16404L3.57694 8.42387C3.50166 8.50882 3.39364 8.55761 3.28001 8.55761H3.26474C3.94915 9.29096 4.92378 9.74998 6.00596 9.74998C7.08815 9.74998 8.06262 9.29096 8.74719 8.55761H5.57359V8.55745Z",
292
+ fill: "currentColor"
293
+ })
294
+ });
295
+ }
296
+
297
+ // src/components/AptosPrivacyPolicy.tsx
298
+ var import_jsx_runtime = require("react/jsx-runtime");
299
+ var APTOS_PRIVACY_POLICY_URL = "https://aptoslabs.com/privacy";
300
+ var Root = (0, import_react3.forwardRef)(
301
+ ({ className, asChild, children }, ref) => {
302
+ const Component = asChild ? import_react_slot.Slot : "div";
303
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Component, {
304
+ ref,
305
+ className,
306
+ children
307
+ });
308
+ }
309
+ );
310
+ Root.displayName = "AptosPrivacyPolicy.Root";
311
+ var Disclaimer = (0, import_react3.forwardRef)(
312
+ ({ className, asChild, children }, ref) => {
313
+ const Component = asChild ? import_react_slot.Slot : "span";
314
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Component, {
315
+ ref,
316
+ className,
317
+ children: children != null ? children : "By continuing, you agree to Aptos Labs'"
318
+ });
319
+ }
320
+ );
321
+ Disclaimer.displayName = "AptosPrivacyPolicy.Disclaimer";
322
+ var Link = (0, import_react3.forwardRef)(
323
+ ({ className, asChild, children }, ref) => {
324
+ const Component = asChild ? import_react_slot.Slot : "a";
325
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Component, {
326
+ ref,
327
+ className,
328
+ href: APTOS_PRIVACY_POLICY_URL,
329
+ target: "_blank",
330
+ rel: "noopener noreferrer",
331
+ children: children != null ? children : "Privacy Policy"
332
+ });
333
+ }
334
+ );
335
+ Link.displayName = "AptosPrivacyPolicy.Link";
336
+ var PoweredBy = (0, import_react3.forwardRef)(({ className }, ref) => {
337
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
338
+ ref,
339
+ className,
340
+ children: [
341
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
342
+ children: "Powered by"
343
+ }),
344
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SmallAptosLogo, {}),
345
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", {
346
+ children: "Aptos Labs"
347
+ })
348
+ ]
349
+ });
350
+ });
351
+ PoweredBy.displayName = "AptosPrivacyPolicy.PoweredBy";
352
+ var AptosPrivacyPolicy = Object.assign(Root, {
353
+ Disclaimer,
354
+ Link,
355
+ PoweredBy
356
+ });
357
+
358
+ // src/components/WalletItem.tsx
359
+ var import_wallet_adapter_core2 = require("@aptos-labs/wallet-adapter-core");
360
+ var import_react_slot2 = require("@radix-ui/react-slot");
361
+ var import_react4 = require("react");
362
+ var import_jsx_runtime = require("react/jsx-runtime");
363
+ var WalletItemContext = (0, import_react4.createContext)(null);
364
+ var WalletItemRoot = (0, import_react4.forwardRef)(
365
+ ({ wallet, onConnect, className, asChild, children }, ref) => {
366
+ const { connect } = useWallet();
367
+ const connectWallet = (0, import_react4.useCallback)(() => {
368
+ connect(wallet.name);
369
+ onConnect == null ? void 0 : onConnect();
370
+ }, [connect, wallet.name, onConnect]);
371
+ const isWalletReady = wallet.readyState === import_wallet_adapter_core2.WalletReadyState.Installed || wallet.readyState === import_wallet_adapter_core2.WalletReadyState.Loadable;
372
+ const mobileSupport = "deeplinkProvider" in wallet && wallet.deeplinkProvider;
373
+ if (!isWalletReady && (0, import_wallet_adapter_core2.isRedirectable)() && !mobileSupport)
374
+ return null;
375
+ const Component = asChild ? import_react_slot2.Slot : "div";
376
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(WalletItemContext.Provider, {
377
+ value: { wallet, connectWallet },
378
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Component, {
379
+ ref,
380
+ className,
381
+ children
382
+ })
383
+ });
384
+ }
385
+ );
386
+ WalletItemRoot.displayName = "WalletItem";
387
+ var WalletItemIcon = (0, import_react4.forwardRef)(
388
+ ({ className, asChild, children }, ref) => {
389
+ const context = (0, import_react4.useContext)(WalletItemContext);
390
+ if (!context) {
391
+ throw new Error("`WalletItem.Icon` must be used within `WalletItem`");
392
+ }
393
+ const Component = asChild ? import_react_slot2.Slot : "img";
394
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Component, {
395
+ ref,
396
+ src: context.wallet.icon,
397
+ alt: `${context.wallet.name} icon`,
398
+ className,
399
+ children
400
+ });
401
+ }
402
+ );
403
+ WalletItemIcon.displayName = "WalletItem.Icon";
404
+ var WalletItemName = (0, import_react4.forwardRef)(
405
+ ({ className, asChild, children }, ref) => {
406
+ const context = (0, import_react4.useContext)(WalletItemContext);
407
+ if (!context) {
408
+ throw new Error("`WalletItem.Name` must be used within `WalletItem`");
409
+ }
410
+ const Component = asChild ? import_react_slot2.Slot : "div";
411
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Component, {
412
+ ref,
413
+ className,
414
+ children: children != null ? children : context.wallet.name
415
+ });
416
+ }
417
+ );
418
+ WalletItemName.displayName = "WalletItem.Name";
419
+ var WalletItemConnectButton = (0, import_react4.forwardRef)(({ className, asChild, children }, ref) => {
420
+ const context = (0, import_react4.useContext)(WalletItemContext);
421
+ if (!context) {
422
+ throw new Error(
423
+ "`WalletItem.ConnectButton` must be used within `WalletItem`"
424
+ );
425
+ }
426
+ const Component = asChild ? import_react_slot2.Slot : "button";
427
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Component, {
428
+ ref,
429
+ className,
430
+ onClick: context.connectWallet,
431
+ children: children != null ? children : "Connect"
432
+ });
433
+ });
434
+ WalletItemConnectButton.displayName = "WalletItem.ConnectButton";
435
+ var WalletItemInstallLink = (0, import_react4.forwardRef)(({ className, asChild, children }, ref) => {
436
+ const context = (0, import_react4.useContext)(WalletItemContext);
437
+ if (!context) {
438
+ throw new Error(
439
+ "`WalletItem.InstallLink` must be used within `WalletItem`"
440
+ );
441
+ }
442
+ const Component = asChild ? import_react_slot2.Slot : "a";
443
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Component, {
444
+ ref,
445
+ className,
446
+ href: context.wallet.url,
447
+ target: "_blank",
448
+ rel: "noopener noreferrer",
449
+ children: children != null ? children : "Install"
450
+ });
451
+ });
452
+ WalletItemInstallLink.displayName = "WalletItem.InstallLink";
453
+ var WalletItem = Object.assign(WalletItemRoot, {
454
+ Icon: WalletItemIcon,
455
+ Name: WalletItemName,
456
+ ConnectButton: WalletItemConnectButton,
457
+ InstallLink: WalletItemInstallLink
458
+ });
374
459
  // Annotate the CommonJS export names for ESM import in node:
375
460
  0 && (module.exports = {
461
+ APTOS_PRIVACY_POLICY_URL,
462
+ AptosPrivacyPolicy,
376
463
  AptosWalletAdapterProvider,
377
464
  WalletContext,
378
465
  WalletItem,
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.tsx","../src/WalletItem.tsx","../src/useWallet.tsx","../src/WalletProvider.tsx"],"sourcesContent":["export * from \"@aptos-labs/wallet-adapter-core\";\nexport * from \"./WalletItem\";\nexport * from \"./WalletProvider\";\nexport * from \"./useWallet\";\n","import {\n AnyAptosWallet,\n WalletReadyState,\n isRedirectable,\n} from \"@aptos-labs/wallet-adapter-core\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport {\n ReactNode,\n createContext,\n forwardRef,\n useCallback,\n useContext,\n} from \"react\";\nimport { useWallet } from \"./useWallet\";\n\nexport interface WalletItemProps {\n /** The wallet option to be displayed. */\n wallet: AnyAptosWallet;\n /** A callback to be invoked when the wallet is connected. */\n onConnect?: () => void;\n /** A class name for styling the wrapper element. */\n className?: string;\n /**\n * Whether to render as the child element instead of the default `div` provided.\n * All props will be merged into the child element.\n */\n asChild?: boolean;\n children?: ReactNode;\n}\n\nexport interface WalletItemElementProps {\n /** A class name for styling the element. */\n className?: string;\n /**\n * Whether to render as the child element instead of the default element provided.\n * All props will be merged into the child element.\n */\n asChild?: boolean;\n children?: ReactNode;\n}\n\nconst WalletItemContext = createContext<{\n wallet: AnyAptosWallet;\n connectWallet: () => void;\n} | null>(null);\n\nconst WalletItemRoot = forwardRef<HTMLDivElement, WalletItemProps>(\n ({ wallet, onConnect, className, asChild, children }, ref) => {\n const { connect } = useWallet();\n\n const connectWallet = useCallback(() => {\n connect(wallet.name);\n onConnect?.();\n }, [connect, wallet.name, onConnect]);\n\n const isWalletReady =\n wallet.readyState === WalletReadyState.Installed ||\n wallet.readyState === WalletReadyState.Loadable;\n\n const mobileSupport =\n \"deeplinkProvider\" in wallet && wallet.deeplinkProvider;\n\n if (!isWalletReady && isRedirectable() && !mobileSupport) return null;\n\n const Component = asChild ? Slot : \"div\";\n\n return (\n <WalletItemContext.Provider value={{ wallet, connectWallet }}>\n <Component ref={ref} className={className}>\n {children}\n </Component>\n </WalletItemContext.Provider>\n );\n }\n);\nWalletItemRoot.displayName = \"WalletItem\";\n\nconst WalletItemIcon = forwardRef<HTMLImageElement, WalletItemElementProps>(\n ({ className, asChild, children }, ref) => {\n const context = useContext(WalletItemContext);\n\n if (!context) {\n throw new Error(\"`WalletItem.Icon` must be used within `WalletItem`\");\n }\n\n const Component = asChild ? Slot : \"img\";\n\n return (\n <Component\n ref={ref}\n src={context.wallet.icon}\n alt={`${context.wallet.name} icon`}\n className={className}\n >\n {children}\n </Component>\n );\n }\n);\nWalletItemIcon.displayName = \"WalletItem.Icon\";\n\nconst WalletItemName = forwardRef<HTMLDivElement, WalletItemElementProps>(\n ({ className, asChild, children }, ref) => {\n const context = useContext(WalletItemContext);\n\n if (!context) {\n throw new Error(\"`WalletItem.Name` must be used within `WalletItem`\");\n }\n\n const Component = asChild ? Slot : \"div\";\n\n return (\n <Component ref={ref} className={className}>\n {children ?? context.wallet.name}\n </Component>\n );\n }\n);\nWalletItemName.displayName = \"WalletItem.Name\";\n\nconst WalletItemConnectButton = forwardRef<\n HTMLButtonElement,\n WalletItemElementProps\n>(({ className, asChild, children }, ref) => {\n const context = useContext(WalletItemContext);\n\n if (!context) {\n throw new Error(\n \"`WalletItem.ConnectButton` must be used within `WalletItem`\"\n );\n }\n\n const Component = asChild ? Slot : \"button\";\n\n return (\n <Component ref={ref} className={className} onClick={context.connectWallet}>\n {children ?? \"Connect\"}\n </Component>\n );\n});\nWalletItemConnectButton.displayName = \"WalletItem.ConnectButton\";\n\nconst WalletItemInstallLink = forwardRef<\n HTMLAnchorElement,\n WalletItemElementProps\n>(({ className, asChild, children }, ref) => {\n const context = useContext(WalletItemContext);\n\n if (!context) {\n throw new Error(\n \"`WalletItem.InstallLink` must be used within `WalletItem`\"\n );\n }\n\n const Component = asChild ? Slot : \"a\";\n\n return (\n <Component\n ref={ref}\n className={className}\n href={context.wallet.url}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n {children ?? \"Install\"}\n </Component>\n );\n});\nWalletItemInstallLink.displayName = \"WalletItem.InstallLink\";\n\n/** A headless component for rendering a wallet option's name, icon, and either connect button or install link. */\nexport const WalletItem = Object.assign(WalletItemRoot, {\n Icon: WalletItemIcon,\n Name: WalletItemName,\n ConnectButton: WalletItemConnectButton,\n InstallLink: WalletItemInstallLink,\n});\n","import {\n AccountInfo,\n NetworkInfo,\n WalletInfo,\n SignMessagePayload,\n SignMessageResponse,\n Wallet,\n InputGenerateTransactionOptions,\n AnyRawTransaction,\n InputTransactionData,\n InputSubmitTransactionData,\n PendingTransactionResponse,\n AccountAuthenticator,\n Types,\n WalletName,\n AptosChangeNetworkOutput,\n Network,\n AptosStandardSupportedWallet,\n} from \"@aptos-labs/wallet-adapter-core\";\nimport { createContext, useContext } from \"react\";\n\nexport interface WalletContextState {\n connected: boolean;\n isLoading: boolean;\n account: AccountInfo | null;\n network: NetworkInfo | null;\n connect(walletName: WalletName): void;\n disconnect(): void;\n wallet: WalletInfo | null;\n wallets?: ReadonlyArray<Wallet | AptosStandardSupportedWallet>;\n signAndSubmitTransaction(transaction: InputTransactionData): Promise<any>;\n signTransaction(\n transactionOrPayload: AnyRawTransaction | Types.TransactionPayload,\n asFeePayer?: boolean,\n options?: InputGenerateTransactionOptions\n ): Promise<AccountAuthenticator>;\n submitTransaction(\n transaction: InputSubmitTransactionData\n ): Promise<PendingTransactionResponse>;\n signMessage(message: SignMessagePayload): Promise<SignMessageResponse>;\n signMessageAndVerify(message: SignMessagePayload): Promise<boolean>;\n changeNetwork(network: Network): Promise<AptosChangeNetworkOutput>;\n}\n\nconst DEFAULT_CONTEXT = {\n connected: false,\n};\n\nexport const WalletContext = createContext<WalletContextState>(\n DEFAULT_CONTEXT as WalletContextState\n);\n\nexport function useWallet(): WalletContextState {\n const context = useContext(WalletContext);\n if (!context) {\n throw new Error(\"useWallet must be used within a WalletContextState\");\n }\n return context;\n}\n","import {\n FC,\n ReactNode,\n useCallback,\n useEffect,\n useMemo,\n useState,\n} from \"react\";\nimport { WalletContext } from \"./useWallet\";\nimport type {\n AccountInfo,\n NetworkInfo,\n SignMessagePayload,\n Wallet,\n WalletInfo,\n InputGenerateTransactionOptions,\n AnyRawTransaction,\n InputSubmitTransactionData,\n AccountAuthenticator,\n PendingTransactionResponse,\n SignMessageResponse,\n WalletName,\n Types,\n InputTransactionData,\n Network,\n AptosStandardSupportedWallet,\n AvailableWallets,\n} from \"@aptos-labs/wallet-adapter-core\";\nimport { WalletCore } from \"@aptos-labs/wallet-adapter-core\";\n\nexport interface AptosWalletProviderProps {\n children: ReactNode;\n plugins?: ReadonlyArray<Wallet>;\n optInWallets?: ReadonlyArray<AvailableWallets>;\n autoConnect?: boolean;\n dappConfig?: { network: Network };\n onError?: (error: any) => void;\n}\n\nconst initialState: {\n account: AccountInfo | null;\n network: NetworkInfo | null;\n connected: boolean;\n wallet: WalletInfo | null;\n} = {\n connected: false,\n account: null,\n network: null,\n wallet: null,\n};\n\n/**\n * Supported props to pass into the provider\n *\n * @param plugins Non AIP-62 supported wallet plugins array\n * @param optInWallets AIP-62 supported wallet names array to only include in the adapter wallets\n * @param autoConnect A boolean flag to indicate if the adapter should auto connect to a wallet\n * @param dappConfig The dapp configurations to be used by SDK wallets to set their configurations\n * @param onError A callback function to execute when there is an error in the adapter\n *\n */\nexport const AptosWalletAdapterProvider: FC<AptosWalletProviderProps> = ({\n children,\n plugins,\n optInWallets,\n autoConnect = false,\n dappConfig,\n onError,\n}: AptosWalletProviderProps) => {\n const [{ connected, account, network, wallet }, setState] =\n useState(initialState);\n\n // a local state to track whether wallet connect request is loading\n // https://github.com/aptos-labs/aptos-wallet-adapter/issues/94\n const [isLoading, setIsLoading] = useState<boolean>(true);\n\n const walletCore = useMemo(\n () => new WalletCore(plugins ?? [], optInWallets ?? [], dappConfig),\n []\n );\n const [wallets, setWallets] = useState<\n ReadonlyArray<Wallet | AptosStandardSupportedWallet>\n >(walletCore.wallets);\n\n const connect = async (walletName: WalletName) => {\n try {\n setIsLoading(true);\n await walletCore.connect(walletName);\n } catch (error: any) {\n if (onError) onError(error);\n return Promise.reject(error);\n } finally {\n setIsLoading(false);\n }\n };\n\n const disconnect = async () => {\n try {\n await walletCore.disconnect();\n } catch (error) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n const signTransaction = async (\n transaction: AnyRawTransaction | Types.TransactionPayload,\n asFeePayer?: boolean,\n options?: InputGenerateTransactionOptions\n ): Promise<AccountAuthenticator> => {\n try {\n return await walletCore.signTransaction(transaction, asFeePayer, options);\n } catch (error: any) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n const signMessage = async (\n message: SignMessagePayload\n ): Promise<SignMessageResponse> => {\n try {\n return await walletCore.signMessage(message);\n } catch (error: any) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n const signMessageAndVerify = async (\n message: SignMessagePayload\n ): Promise<boolean> => {\n try {\n return await walletCore.signMessageAndVerify(message);\n } catch (error: any) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n const submitTransaction = async (\n transaction: InputSubmitTransactionData\n ): Promise<PendingTransactionResponse> => {\n try {\n return await walletCore.submitTransaction(transaction);\n } catch (error: any) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n const signAndSubmitTransaction = async (\n transaction: InputTransactionData\n ) => {\n try {\n return await walletCore.signAndSubmitTransaction(transaction);\n } catch (error: any) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n const changeNetwork = async (network: Network) => {\n try {\n return await walletCore.changeNetwork(network);\n } catch (error: any) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n useEffect(() => {\n if (autoConnect) {\n if (localStorage.getItem(\"AptosWalletName\") && !connected) {\n connect(localStorage.getItem(\"AptosWalletName\") as WalletName);\n } else {\n // if we dont use autoconnect set the connect is loading to false\n setIsLoading(false);\n }\n }\n }, [autoConnect, wallets]);\n\n useEffect(() => {\n if (connected) {\n walletCore.onAccountChange();\n walletCore.onNetworkChange();\n }\n }, [connected]);\n\n // Handle the adapter's connect event\n const handleConnect = () => {\n setState((state) => {\n return {\n ...state,\n connected: true,\n account: walletCore.account,\n network: walletCore.network,\n wallet: walletCore.wallet,\n };\n });\n };\n\n // Handle the adapter's disconnect event\n const handleDisconnect = () => {\n if (!connected) return;\n setState((state) => {\n return {\n ...state,\n connected: false,\n account: walletCore.account,\n network: walletCore.network,\n wallet: null,\n };\n });\n };\n\n // Handle the adapter's account change event\n const handleAccountChange = useCallback(() => {\n if (!connected) return;\n if (!walletCore.wallet) return;\n setState((state) => {\n return {\n ...state,\n account: walletCore.account,\n };\n });\n }, [connected]);\n\n // Handle the adapter's network event\n const handleNetworkChange = useCallback(() => {\n if (!connected) return;\n if (!walletCore.wallet) return;\n setState((state) => {\n return {\n ...state,\n network: walletCore.network,\n };\n });\n }, [connected]);\n\n const handleReadyStateChange = (updatedWallet: Wallet) => {\n // Create a new array with updated values\n const updatedWallets = (wallets as Wallet[])?.map((wallet) => {\n if (wallet.name === updatedWallet.name) {\n // Return a new object with updated value\n return { ...wallet, readyState: updatedWallet.readyState };\n }\n return wallet;\n });\n setWallets(updatedWallets);\n };\n\n const handleStandardWalletsAdded = (\n standardWallet: Wallet | AptosStandardSupportedWallet\n ) => {\n // Manage current wallet state by removing optional duplications\n // as new wallets are coming\n const existingWalletIndex = wallets.findIndex(\n (wallet) => wallet.name == standardWallet.name\n );\n if (existingWalletIndex !== -1) {\n // If wallet exists, replace it with the new wallet\n setWallets((wallets) => [\n ...wallets.slice(0, existingWalletIndex),\n standardWallet,\n ...wallets.slice(existingWalletIndex + 1),\n ]);\n } else {\n // If wallet doesn't exist, add it to the array\n setWallets((wallets) => [...wallets, standardWallet]);\n }\n };\n\n useEffect(() => {\n walletCore.on(\"connect\", handleConnect);\n walletCore.on(\"disconnect\", handleDisconnect);\n walletCore.on(\"accountChange\", handleAccountChange);\n walletCore.on(\"networkChange\", handleNetworkChange);\n walletCore.on(\"readyStateChange\", handleReadyStateChange);\n walletCore.on(\"standardWalletsAdded\", handleStandardWalletsAdded);\n return () => {\n walletCore.off(\"connect\", handleConnect);\n walletCore.off(\"disconnect\", handleDisconnect);\n walletCore.off(\"accountChange\", handleAccountChange);\n walletCore.off(\"networkChange\", handleNetworkChange);\n walletCore.off(\"readyStateChange\", handleReadyStateChange);\n walletCore.off(\"standardWalletsAdded\", handleStandardWalletsAdded);\n };\n }, [wallets, connected]);\n\n return (\n <WalletContext.Provider\n value={{\n connect,\n account,\n network,\n connected,\n disconnect,\n wallet,\n wallets,\n signAndSubmitTransaction,\n signTransaction,\n signMessage,\n signMessageAndVerify,\n isLoading,\n submitTransaction,\n changeNetwork,\n }}\n >\n {children}\n </WalletContext.Provider>\n );\n};\n"],"mappings":"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","names":["import_react","import_react","import_wallet_adapter_core","network","wallet","wallets"]}
1
+ {"version":3,"sources":["../src/index.tsx","../src/WalletProvider.tsx","../src/useWallet.tsx","../src/components/AptosPrivacyPolicy.tsx","../src/graphics/SmallAptosLogo.tsx","../src/components/WalletItem.tsx"],"sourcesContent":["export * from \"@aptos-labs/wallet-adapter-core\";\nexport * from \"./WalletProvider\";\nexport * from \"./components/AptosPrivacyPolicy\";\nexport * from \"./components/WalletItem\";\nexport * from \"./useWallet\";\n","import {\n FC,\n ReactNode,\n useCallback,\n useEffect,\n useMemo,\n useState,\n} from \"react\";\nimport { WalletContext } from \"./useWallet\";\nimport type {\n AccountInfo,\n NetworkInfo,\n SignMessagePayload,\n Wallet,\n WalletInfo,\n InputGenerateTransactionOptions,\n AnyRawTransaction,\n InputSubmitTransactionData,\n AccountAuthenticator,\n PendingTransactionResponse,\n SignMessageResponse,\n WalletName,\n Types,\n InputTransactionData,\n Network,\n AptosStandardSupportedWallet,\n AvailableWallets,\n} from \"@aptos-labs/wallet-adapter-core\";\nimport { WalletCore } from \"@aptos-labs/wallet-adapter-core\";\n\nexport interface AptosWalletProviderProps {\n children: ReactNode;\n plugins?: ReadonlyArray<Wallet>;\n optInWallets?: ReadonlyArray<AvailableWallets>;\n autoConnect?: boolean;\n dappConfig?: { network: Network };\n onError?: (error: any) => void;\n}\n\nconst initialState: {\n account: AccountInfo | null;\n network: NetworkInfo | null;\n connected: boolean;\n wallet: WalletInfo | null;\n} = {\n connected: false,\n account: null,\n network: null,\n wallet: null,\n};\n\n/**\n * Supported props to pass into the provider\n *\n * @param plugins Non AIP-62 supported wallet plugins array\n * @param optInWallets AIP-62 supported wallet names array to only include in the adapter wallets\n * @param autoConnect A boolean flag to indicate if the adapter should auto connect to a wallet\n * @param dappConfig The dapp configurations to be used by SDK wallets to set their configurations\n * @param onError A callback function to execute when there is an error in the adapter\n *\n */\nexport const AptosWalletAdapterProvider: FC<AptosWalletProviderProps> = ({\n children,\n plugins,\n optInWallets,\n autoConnect = false,\n dappConfig,\n onError,\n}: AptosWalletProviderProps) => {\n const [{ connected, account, network, wallet }, setState] =\n useState(initialState);\n\n // a local state to track whether wallet connect request is loading\n // https://github.com/aptos-labs/aptos-wallet-adapter/issues/94\n const [isLoading, setIsLoading] = useState<boolean>(true);\n\n const walletCore = useMemo(\n () => new WalletCore(plugins ?? [], optInWallets ?? [], dappConfig),\n []\n );\n const [wallets, setWallets] = useState<\n ReadonlyArray<Wallet | AptosStandardSupportedWallet>\n >(walletCore.wallets);\n\n const connect = async (walletName: WalletName) => {\n try {\n setIsLoading(true);\n await walletCore.connect(walletName);\n } catch (error: any) {\n if (onError) onError(error);\n return Promise.reject(error);\n } finally {\n setIsLoading(false);\n }\n };\n\n const disconnect = async () => {\n try {\n await walletCore.disconnect();\n } catch (error) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n const signTransaction = async (\n transaction: AnyRawTransaction | Types.TransactionPayload,\n asFeePayer?: boolean,\n options?: InputGenerateTransactionOptions\n ): Promise<AccountAuthenticator> => {\n try {\n return await walletCore.signTransaction(transaction, asFeePayer, options);\n } catch (error: any) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n const signMessage = async (\n message: SignMessagePayload\n ): Promise<SignMessageResponse> => {\n try {\n return await walletCore.signMessage(message);\n } catch (error: any) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n const signMessageAndVerify = async (\n message: SignMessagePayload\n ): Promise<boolean> => {\n try {\n return await walletCore.signMessageAndVerify(message);\n } catch (error: any) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n const submitTransaction = async (\n transaction: InputSubmitTransactionData\n ): Promise<PendingTransactionResponse> => {\n try {\n return await walletCore.submitTransaction(transaction);\n } catch (error: any) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n const signAndSubmitTransaction = async (\n transaction: InputTransactionData\n ) => {\n try {\n return await walletCore.signAndSubmitTransaction(transaction);\n } catch (error: any) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n const changeNetwork = async (network: Network) => {\n try {\n return await walletCore.changeNetwork(network);\n } catch (error: any) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n useEffect(() => {\n if (autoConnect) {\n if (localStorage.getItem(\"AptosWalletName\") && !connected) {\n connect(localStorage.getItem(\"AptosWalletName\") as WalletName);\n } else {\n // if we dont use autoconnect set the connect is loading to false\n setIsLoading(false);\n }\n }\n }, [autoConnect, wallets]);\n\n useEffect(() => {\n if (connected) {\n walletCore.onAccountChange();\n walletCore.onNetworkChange();\n }\n }, [connected]);\n\n // Handle the adapter's connect event\n const handleConnect = () => {\n setState((state) => {\n return {\n ...state,\n connected: true,\n account: walletCore.account,\n network: walletCore.network,\n wallet: walletCore.wallet,\n };\n });\n };\n\n // Handle the adapter's disconnect event\n const handleDisconnect = () => {\n if (!connected) return;\n setState((state) => {\n return {\n ...state,\n connected: false,\n account: walletCore.account,\n network: walletCore.network,\n wallet: null,\n };\n });\n };\n\n // Handle the adapter's account change event\n const handleAccountChange = useCallback(() => {\n if (!connected) return;\n if (!walletCore.wallet) return;\n setState((state) => {\n return {\n ...state,\n account: walletCore.account,\n };\n });\n }, [connected]);\n\n // Handle the adapter's network event\n const handleNetworkChange = useCallback(() => {\n if (!connected) return;\n if (!walletCore.wallet) return;\n setState((state) => {\n return {\n ...state,\n network: walletCore.network,\n };\n });\n }, [connected]);\n\n const handleReadyStateChange = (updatedWallet: Wallet) => {\n // Create a new array with updated values\n const updatedWallets = (wallets as Wallet[])?.map((wallet) => {\n if (wallet.name === updatedWallet.name) {\n // Return a new object with updated value\n return { ...wallet, readyState: updatedWallet.readyState };\n }\n return wallet;\n });\n setWallets(updatedWallets);\n };\n\n const handleStandardWalletsAdded = (\n standardWallet: Wallet | AptosStandardSupportedWallet\n ) => {\n // Manage current wallet state by removing optional duplications\n // as new wallets are coming\n const existingWalletIndex = wallets.findIndex(\n (wallet) => wallet.name == standardWallet.name\n );\n if (existingWalletIndex !== -1) {\n // If wallet exists, replace it with the new wallet\n setWallets((wallets) => [\n ...wallets.slice(0, existingWalletIndex),\n standardWallet,\n ...wallets.slice(existingWalletIndex + 1),\n ]);\n } else {\n // If wallet doesn't exist, add it to the array\n setWallets((wallets) => [...wallets, standardWallet]);\n }\n };\n\n useEffect(() => {\n walletCore.on(\"connect\", handleConnect);\n walletCore.on(\"disconnect\", handleDisconnect);\n walletCore.on(\"accountChange\", handleAccountChange);\n walletCore.on(\"networkChange\", handleNetworkChange);\n walletCore.on(\"readyStateChange\", handleReadyStateChange);\n walletCore.on(\"standardWalletsAdded\", handleStandardWalletsAdded);\n return () => {\n walletCore.off(\"connect\", handleConnect);\n walletCore.off(\"disconnect\", handleDisconnect);\n walletCore.off(\"accountChange\", handleAccountChange);\n walletCore.off(\"networkChange\", handleNetworkChange);\n walletCore.off(\"readyStateChange\", handleReadyStateChange);\n walletCore.off(\"standardWalletsAdded\", handleStandardWalletsAdded);\n };\n }, [wallets, connected]);\n\n return (\n <WalletContext.Provider\n value={{\n connect,\n account,\n network,\n connected,\n disconnect,\n wallet,\n wallets,\n signAndSubmitTransaction,\n signTransaction,\n signMessage,\n signMessageAndVerify,\n isLoading,\n submitTransaction,\n changeNetwork,\n }}\n >\n {children}\n </WalletContext.Provider>\n );\n};\n","import {\n AccountInfo,\n NetworkInfo,\n WalletInfo,\n SignMessagePayload,\n SignMessageResponse,\n Wallet,\n InputGenerateTransactionOptions,\n AnyRawTransaction,\n InputTransactionData,\n InputSubmitTransactionData,\n PendingTransactionResponse,\n AccountAuthenticator,\n Types,\n WalletName,\n AptosChangeNetworkOutput,\n Network,\n AptosStandardSupportedWallet,\n} from \"@aptos-labs/wallet-adapter-core\";\nimport { createContext, useContext } from \"react\";\n\nexport interface WalletContextState {\n connected: boolean;\n isLoading: boolean;\n account: AccountInfo | null;\n network: NetworkInfo | null;\n connect(walletName: WalletName): void;\n disconnect(): void;\n wallet: WalletInfo | null;\n wallets?: ReadonlyArray<Wallet | AptosStandardSupportedWallet>;\n signAndSubmitTransaction(transaction: InputTransactionData): Promise<any>;\n signTransaction(\n transactionOrPayload: AnyRawTransaction | Types.TransactionPayload,\n asFeePayer?: boolean,\n options?: InputGenerateTransactionOptions\n ): Promise<AccountAuthenticator>;\n submitTransaction(\n transaction: InputSubmitTransactionData\n ): Promise<PendingTransactionResponse>;\n signMessage(message: SignMessagePayload): Promise<SignMessageResponse>;\n signMessageAndVerify(message: SignMessagePayload): Promise<boolean>;\n changeNetwork(network: Network): Promise<AptosChangeNetworkOutput>;\n}\n\nconst DEFAULT_CONTEXT = {\n connected: false,\n};\n\nexport const WalletContext = createContext<WalletContextState>(\n DEFAULT_CONTEXT as WalletContextState\n);\n\nexport function useWallet(): WalletContextState {\n const context = useContext(WalletContext);\n if (!context) {\n throw new Error(\"useWallet must be used within a WalletContextState\");\n }\n return context;\n}\n","import { Slot } from \"@radix-ui/react-slot\";\nimport { ReactNode, forwardRef } from \"react\";\nimport { SmallAptosLogo } from \"../graphics/SmallAptosLogo\";\n\nexport const APTOS_PRIVACY_POLICY_URL = \"https://aptoslabs.com/privacy\";\n\nexport interface AptosPrivacyPolicyProps {\n /** A class name for styling the element. */\n className?: string;\n /**\n * Whether to render as the child element instead of the default element provided.\n * All props will be merged into the child element.\n */\n asChild?: boolean;\n children?: ReactNode;\n}\n\nconst Root = forwardRef<HTMLDivElement, AptosPrivacyPolicyProps>(\n ({ className, asChild, children }, ref) => {\n const Component = asChild ? Slot : \"div\";\n\n return (\n <Component ref={ref} className={className}>\n {children}\n </Component>\n );\n }\n);\nRoot.displayName = \"AptosPrivacyPolicy.Root\";\n\nconst Disclaimer = forwardRef<HTMLSpanElement, AptosPrivacyPolicyProps>(\n ({ className, asChild, children }, ref) => {\n const Component = asChild ? Slot : \"span\";\n\n return (\n <Component ref={ref} className={className}>\n {children ?? \"By continuing, you agree to Aptos Labs'\"}\n </Component>\n );\n }\n);\nDisclaimer.displayName = \"AptosPrivacyPolicy.Disclaimer\";\n\nconst Link = forwardRef<HTMLAnchorElement, AptosPrivacyPolicyProps>(\n ({ className, asChild, children }, ref) => {\n const Component = asChild ? Slot : \"a\";\n\n return (\n <Component\n ref={ref}\n className={className}\n href={APTOS_PRIVACY_POLICY_URL}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n {children ?? \"Privacy Policy\"}\n </Component>\n );\n }\n);\nLink.displayName = \"AptosPrivacyPolicy.Link\";\n\nconst PoweredBy = forwardRef<\n HTMLDivElement,\n Pick<AptosPrivacyPolicyProps, \"className\">\n>(({ className }, ref) => {\n return (\n <div ref={ref} className={className}>\n <span>Powered by</span>\n <SmallAptosLogo />\n <span>Aptos Labs</span>\n </div>\n );\n});\nPoweredBy.displayName = \"AptosPrivacyPolicy.PoweredBy\";\n\n/**\n * A headless component for rendering the Aptos Labs privacy policy disclaimer\n * that should be placed under the Aptos Connect login options.\n */\nexport const AptosPrivacyPolicy = Object.assign(Root, {\n Disclaimer,\n Link,\n PoweredBy,\n});\n","import { SVGProps } from \"react\";\n\nexport function SmallAptosLogo(props: SVGProps<SVGSVGElement>) {\n return (\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M6 12C9.31371 12 12 9.31371 12 6C12 2.68629 9.31371 0 6 0C2.68629 0 0 2.68629 0 6C0 9.31371 2.68629 12 6 12ZM7.17547 3.67976C7.13401 3.72309 7.07649 3.74757 7.01648 3.74757H3.00775C3.69185 2.83824 4.77995 2.25 6.00569 2.25C7.23142 2.25 8.31953 2.83824 9.00362 3.74757H8.28524C8.20824 3.74757 8.13498 3.71468 8.08401 3.65701L7.81608 3.35416C7.77618 3.30896 7.71882 3.28308 7.6585 3.28308H7.6454C7.58805 3.28308 7.53318 3.30646 7.49343 3.34792L7.17547 3.67976ZM8.05656 4.75897H7.39569C7.31869 4.75897 7.24543 4.72593 7.19447 4.66842L6.92638 4.36557C6.88647 4.32036 6.82896 4.29465 6.7688 4.29465C6.70863 4.29465 6.65112 4.32052 6.61121 4.36557L6.38131 4.6254C6.30603 4.71034 6.19801 4.75913 6.08454 4.75913H2.46703C2.36401 5.05278 2.29683 5.36296 2.27002 5.68467H5.68505C5.74506 5.68467 5.80258 5.66019 5.84404 5.61686L6.16201 5.28502C6.20175 5.24356 6.25662 5.22018 6.31398 5.22018H6.32707C6.38739 5.22018 6.44475 5.24606 6.48465 5.29126L6.75258 5.59411C6.80355 5.65178 6.87681 5.68467 6.95381 5.68467H9.74133C9.71452 5.3628 9.64734 5.05263 9.54431 4.75913H8.05641L8.05656 4.75897ZM4.33651 7.63095C4.39652 7.63095 4.45404 7.60648 4.4955 7.56315L4.81347 7.23131C4.85321 7.18985 4.90808 7.16647 4.96544 7.16647H4.97853C5.03885 7.16647 5.09621 7.19234 5.13611 7.23739L5.40404 7.54024C5.45501 7.59791 5.52827 7.6308 5.60527 7.6308H9.38285C9.52438 7.33839 9.62803 7.02463 9.68975 6.69591H6.06383C5.98683 6.69591 5.91357 6.66287 5.8626 6.60535L5.59467 6.3025C5.55477 6.2573 5.49725 6.23158 5.43709 6.23158C5.37692 6.23158 5.31941 6.25746 5.27951 6.3025L5.0496 6.56233C4.97432 6.64728 4.86631 6.69606 4.75268 6.69606H2.32147C2.3832 7.02479 2.487 7.33855 2.62837 7.63095H4.33651ZM5.57359 8.55745H4.59116C4.51417 8.55745 4.44091 8.52441 4.38994 8.46689L4.12201 8.16404C4.0821 8.11884 4.02459 8.09312 3.96442 8.09312C3.90426 8.09312 3.84675 8.119 3.80684 8.16404L3.57694 8.42387C3.50166 8.50882 3.39364 8.55761 3.28001 8.55761H3.26474C3.94915 9.29096 4.92378 9.74998 6.00596 9.74998C7.08815 9.74998 8.06262 9.29096 8.74719 8.55761H5.57359V8.55745Z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n}\n","import {\n AnyAptosWallet,\n WalletReadyState,\n isRedirectable,\n} from \"@aptos-labs/wallet-adapter-core\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport {\n ReactNode,\n createContext,\n forwardRef,\n useCallback,\n useContext,\n} from \"react\";\nimport { useWallet } from \"../useWallet\";\n\nexport interface WalletItemProps {\n /** The wallet option to be displayed. */\n wallet: AnyAptosWallet;\n /** A callback to be invoked when the wallet is connected. */\n onConnect?: () => void;\n /** A class name for styling the wrapper element. */\n className?: string;\n /**\n * Whether to render as the child element instead of the default `div` provided.\n * All props will be merged into the child element.\n */\n asChild?: boolean;\n children?: ReactNode;\n}\n\nexport interface WalletItemElementProps {\n /** A class name for styling the element. */\n className?: string;\n /**\n * Whether to render as the child element instead of the default element provided.\n * All props will be merged into the child element.\n */\n asChild?: boolean;\n children?: ReactNode;\n}\n\nconst WalletItemContext = createContext<{\n wallet: AnyAptosWallet;\n connectWallet: () => void;\n} | null>(null);\n\nconst WalletItemRoot = forwardRef<HTMLDivElement, WalletItemProps>(\n ({ wallet, onConnect, className, asChild, children }, ref) => {\n const { connect } = useWallet();\n\n const connectWallet = useCallback(() => {\n connect(wallet.name);\n onConnect?.();\n }, [connect, wallet.name, onConnect]);\n\n const isWalletReady =\n wallet.readyState === WalletReadyState.Installed ||\n wallet.readyState === WalletReadyState.Loadable;\n\n const mobileSupport =\n \"deeplinkProvider\" in wallet && wallet.deeplinkProvider;\n\n if (!isWalletReady && isRedirectable() && !mobileSupport) return null;\n\n const Component = asChild ? Slot : \"div\";\n\n return (\n <WalletItemContext.Provider value={{ wallet, connectWallet }}>\n <Component ref={ref} className={className}>\n {children}\n </Component>\n </WalletItemContext.Provider>\n );\n }\n);\nWalletItemRoot.displayName = \"WalletItem\";\n\nconst WalletItemIcon = forwardRef<HTMLImageElement, WalletItemElementProps>(\n ({ className, asChild, children }, ref) => {\n const context = useContext(WalletItemContext);\n\n if (!context) {\n throw new Error(\"`WalletItem.Icon` must be used within `WalletItem`\");\n }\n\n const Component = asChild ? Slot : \"img\";\n\n return (\n <Component\n ref={ref}\n src={context.wallet.icon}\n alt={`${context.wallet.name} icon`}\n className={className}\n >\n {children}\n </Component>\n );\n }\n);\nWalletItemIcon.displayName = \"WalletItem.Icon\";\n\nconst WalletItemName = forwardRef<HTMLDivElement, WalletItemElementProps>(\n ({ className, asChild, children }, ref) => {\n const context = useContext(WalletItemContext);\n\n if (!context) {\n throw new Error(\"`WalletItem.Name` must be used within `WalletItem`\");\n }\n\n const Component = asChild ? Slot : \"div\";\n\n return (\n <Component ref={ref} className={className}>\n {children ?? context.wallet.name}\n </Component>\n );\n }\n);\nWalletItemName.displayName = \"WalletItem.Name\";\n\nconst WalletItemConnectButton = forwardRef<\n HTMLButtonElement,\n WalletItemElementProps\n>(({ className, asChild, children }, ref) => {\n const context = useContext(WalletItemContext);\n\n if (!context) {\n throw new Error(\n \"`WalletItem.ConnectButton` must be used within `WalletItem`\"\n );\n }\n\n const Component = asChild ? Slot : \"button\";\n\n return (\n <Component ref={ref} className={className} onClick={context.connectWallet}>\n {children ?? \"Connect\"}\n </Component>\n );\n});\nWalletItemConnectButton.displayName = \"WalletItem.ConnectButton\";\n\nconst WalletItemInstallLink = forwardRef<\n HTMLAnchorElement,\n WalletItemElementProps\n>(({ className, asChild, children }, ref) => {\n const context = useContext(WalletItemContext);\n\n if (!context) {\n throw new Error(\n \"`WalletItem.InstallLink` must be used within `WalletItem`\"\n );\n }\n\n const Component = asChild ? Slot : \"a\";\n\n return (\n <Component\n ref={ref}\n className={className}\n href={context.wallet.url}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n {children ?? \"Install\"}\n </Component>\n );\n});\nWalletItemInstallLink.displayName = \"WalletItem.InstallLink\";\n\n/** A headless component for rendering a wallet option's name, icon, and either connect button or install link. */\nexport const WalletItem = Object.assign(WalletItemRoot, {\n Icon: WalletItemIcon,\n Name: WalletItemName,\n ConnectButton: WalletItemConnectButton,\n InstallLink: WalletItemInstallLink,\n});\n"],"mappings":"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","names":["import_react","network","wallet","wallets","import_react","import_wallet_adapter_core","import_react_slot","import_react"]}
package/dist/index.mjs CHANGED
@@ -1,17 +1,12 @@
1
1
  // src/index.tsx
2
2
  export * from "@aptos-labs/wallet-adapter-core";
3
3
 
4
- // src/WalletItem.tsx
5
- import {
6
- WalletReadyState,
7
- isRedirectable
8
- } from "@aptos-labs/wallet-adapter-core";
9
- import { Slot } from "@radix-ui/react-slot";
4
+ // src/WalletProvider.tsx
10
5
  import {
11
- createContext as createContext2,
12
- forwardRef,
13
6
  useCallback,
14
- useContext as useContext2
7
+ useEffect,
8
+ useMemo,
9
+ useState
15
10
  } from "react";
16
11
 
17
12
  // src/useWallet.tsx
@@ -30,114 +25,9 @@ function useWallet() {
30
25
  return context;
31
26
  }
32
27
 
33
- // src/WalletItem.tsx
34
- import { jsx } from "react/jsx-runtime";
35
- var WalletItemContext = createContext2(null);
36
- var WalletItemRoot = forwardRef(
37
- ({ wallet, onConnect, className, asChild, children }, ref) => {
38
- const { connect } = useWallet();
39
- const connectWallet = useCallback(() => {
40
- connect(wallet.name);
41
- onConnect == null ? void 0 : onConnect();
42
- }, [connect, wallet.name, onConnect]);
43
- const isWalletReady = wallet.readyState === WalletReadyState.Installed || wallet.readyState === WalletReadyState.Loadable;
44
- const mobileSupport = "deeplinkProvider" in wallet && wallet.deeplinkProvider;
45
- if (!isWalletReady && isRedirectable() && !mobileSupport)
46
- return null;
47
- const Component = asChild ? Slot : "div";
48
- return /* @__PURE__ */ jsx(WalletItemContext.Provider, {
49
- value: { wallet, connectWallet },
50
- children: /* @__PURE__ */ jsx(Component, {
51
- ref,
52
- className,
53
- children
54
- })
55
- });
56
- }
57
- );
58
- WalletItemRoot.displayName = "WalletItem";
59
- var WalletItemIcon = forwardRef(
60
- ({ className, asChild, children }, ref) => {
61
- const context = useContext2(WalletItemContext);
62
- if (!context) {
63
- throw new Error("`WalletItem.Icon` must be used within `WalletItem`");
64
- }
65
- const Component = asChild ? Slot : "img";
66
- return /* @__PURE__ */ jsx(Component, {
67
- ref,
68
- src: context.wallet.icon,
69
- alt: `${context.wallet.name} icon`,
70
- className,
71
- children
72
- });
73
- }
74
- );
75
- WalletItemIcon.displayName = "WalletItem.Icon";
76
- var WalletItemName = forwardRef(
77
- ({ className, asChild, children }, ref) => {
78
- const context = useContext2(WalletItemContext);
79
- if (!context) {
80
- throw new Error("`WalletItem.Name` must be used within `WalletItem`");
81
- }
82
- const Component = asChild ? Slot : "div";
83
- return /* @__PURE__ */ jsx(Component, {
84
- ref,
85
- className,
86
- children: children != null ? children : context.wallet.name
87
- });
88
- }
89
- );
90
- WalletItemName.displayName = "WalletItem.Name";
91
- var WalletItemConnectButton = forwardRef(({ className, asChild, children }, ref) => {
92
- const context = useContext2(WalletItemContext);
93
- if (!context) {
94
- throw new Error(
95
- "`WalletItem.ConnectButton` must be used within `WalletItem`"
96
- );
97
- }
98
- const Component = asChild ? Slot : "button";
99
- return /* @__PURE__ */ jsx(Component, {
100
- ref,
101
- className,
102
- onClick: context.connectWallet,
103
- children: children != null ? children : "Connect"
104
- });
105
- });
106
- WalletItemConnectButton.displayName = "WalletItem.ConnectButton";
107
- var WalletItemInstallLink = forwardRef(({ className, asChild, children }, ref) => {
108
- const context = useContext2(WalletItemContext);
109
- if (!context) {
110
- throw new Error(
111
- "`WalletItem.InstallLink` must be used within `WalletItem`"
112
- );
113
- }
114
- const Component = asChild ? Slot : "a";
115
- return /* @__PURE__ */ jsx(Component, {
116
- ref,
117
- className,
118
- href: context.wallet.url,
119
- target: "_blank",
120
- rel: "noopener noreferrer",
121
- children: children != null ? children : "Install"
122
- });
123
- });
124
- WalletItemInstallLink.displayName = "WalletItem.InstallLink";
125
- var WalletItem = Object.assign(WalletItemRoot, {
126
- Icon: WalletItemIcon,
127
- Name: WalletItemName,
128
- ConnectButton: WalletItemConnectButton,
129
- InstallLink: WalletItemInstallLink
130
- });
131
-
132
28
  // src/WalletProvider.tsx
133
- import {
134
- useCallback as useCallback2,
135
- useEffect,
136
- useMemo,
137
- useState
138
- } from "react";
139
29
  import { WalletCore } from "@aptos-labs/wallet-adapter-core";
140
- import { jsx as jsx2 } from "react/jsx-runtime";
30
+ import { jsx } from "react/jsx-runtime";
141
31
  var initialState = {
142
32
  connected: false,
143
33
  account: null,
@@ -273,7 +163,7 @@ var AptosWalletAdapterProvider = ({
273
163
  };
274
164
  });
275
165
  };
276
- const handleAccountChange = useCallback2(() => {
166
+ const handleAccountChange = useCallback(() => {
277
167
  if (!connected)
278
168
  return;
279
169
  if (!walletCore.wallet)
@@ -285,7 +175,7 @@ var AptosWalletAdapterProvider = ({
285
175
  };
286
176
  });
287
177
  }, [connected]);
288
- const handleNetworkChange = useCallback2(() => {
178
+ const handleNetworkChange = useCallback(() => {
289
179
  if (!connected)
290
180
  return;
291
181
  if (!walletCore.wallet)
@@ -336,7 +226,7 @@ var AptosWalletAdapterProvider = ({
336
226
  walletCore.off("standardWalletsAdded", handleStandardWalletsAdded);
337
227
  };
338
228
  }, [wallets, connected]);
339
- return /* @__PURE__ */ jsx2(WalletContext.Provider, {
229
+ return /* @__PURE__ */ jsx(WalletContext.Provider, {
340
230
  value: {
341
231
  connect,
342
232
  account,
@@ -356,7 +246,202 @@ var AptosWalletAdapterProvider = ({
356
246
  children
357
247
  });
358
248
  };
249
+
250
+ // src/components/AptosPrivacyPolicy.tsx
251
+ import { Slot } from "@radix-ui/react-slot";
252
+ import { forwardRef } from "react";
253
+
254
+ // src/graphics/SmallAptosLogo.tsx
255
+ import { jsx as jsx2 } from "react/jsx-runtime";
256
+ function SmallAptosLogo(props) {
257
+ return /* @__PURE__ */ jsx2("svg", {
258
+ width: "12",
259
+ height: "12",
260
+ viewBox: "0 0 12 12",
261
+ fill: "none",
262
+ ...props,
263
+ children: /* @__PURE__ */ jsx2("path", {
264
+ fillRule: "evenodd",
265
+ clipRule: "evenodd",
266
+ d: "M6 12C9.31371 12 12 9.31371 12 6C12 2.68629 9.31371 0 6 0C2.68629 0 0 2.68629 0 6C0 9.31371 2.68629 12 6 12ZM7.17547 3.67976C7.13401 3.72309 7.07649 3.74757 7.01648 3.74757H3.00775C3.69185 2.83824 4.77995 2.25 6.00569 2.25C7.23142 2.25 8.31953 2.83824 9.00362 3.74757H8.28524C8.20824 3.74757 8.13498 3.71468 8.08401 3.65701L7.81608 3.35416C7.77618 3.30896 7.71882 3.28308 7.6585 3.28308H7.6454C7.58805 3.28308 7.53318 3.30646 7.49343 3.34792L7.17547 3.67976ZM8.05656 4.75897H7.39569C7.31869 4.75897 7.24543 4.72593 7.19447 4.66842L6.92638 4.36557C6.88647 4.32036 6.82896 4.29465 6.7688 4.29465C6.70863 4.29465 6.65112 4.32052 6.61121 4.36557L6.38131 4.6254C6.30603 4.71034 6.19801 4.75913 6.08454 4.75913H2.46703C2.36401 5.05278 2.29683 5.36296 2.27002 5.68467H5.68505C5.74506 5.68467 5.80258 5.66019 5.84404 5.61686L6.16201 5.28502C6.20175 5.24356 6.25662 5.22018 6.31398 5.22018H6.32707C6.38739 5.22018 6.44475 5.24606 6.48465 5.29126L6.75258 5.59411C6.80355 5.65178 6.87681 5.68467 6.95381 5.68467H9.74133C9.71452 5.3628 9.64734 5.05263 9.54431 4.75913H8.05641L8.05656 4.75897ZM4.33651 7.63095C4.39652 7.63095 4.45404 7.60648 4.4955 7.56315L4.81347 7.23131C4.85321 7.18985 4.90808 7.16647 4.96544 7.16647H4.97853C5.03885 7.16647 5.09621 7.19234 5.13611 7.23739L5.40404 7.54024C5.45501 7.59791 5.52827 7.6308 5.60527 7.6308H9.38285C9.52438 7.33839 9.62803 7.02463 9.68975 6.69591H6.06383C5.98683 6.69591 5.91357 6.66287 5.8626 6.60535L5.59467 6.3025C5.55477 6.2573 5.49725 6.23158 5.43709 6.23158C5.37692 6.23158 5.31941 6.25746 5.27951 6.3025L5.0496 6.56233C4.97432 6.64728 4.86631 6.69606 4.75268 6.69606H2.32147C2.3832 7.02479 2.487 7.33855 2.62837 7.63095H4.33651ZM5.57359 8.55745H4.59116C4.51417 8.55745 4.44091 8.52441 4.38994 8.46689L4.12201 8.16404C4.0821 8.11884 4.02459 8.09312 3.96442 8.09312C3.90426 8.09312 3.84675 8.119 3.80684 8.16404L3.57694 8.42387C3.50166 8.50882 3.39364 8.55761 3.28001 8.55761H3.26474C3.94915 9.29096 4.92378 9.74998 6.00596 9.74998C7.08815 9.74998 8.06262 9.29096 8.74719 8.55761H5.57359V8.55745Z",
267
+ fill: "currentColor"
268
+ })
269
+ });
270
+ }
271
+
272
+ // src/components/AptosPrivacyPolicy.tsx
273
+ import { jsx as jsx3, jsxs } from "react/jsx-runtime";
274
+ var APTOS_PRIVACY_POLICY_URL = "https://aptoslabs.com/privacy";
275
+ var Root = forwardRef(
276
+ ({ className, asChild, children }, ref) => {
277
+ const Component = asChild ? Slot : "div";
278
+ return /* @__PURE__ */ jsx3(Component, {
279
+ ref,
280
+ className,
281
+ children
282
+ });
283
+ }
284
+ );
285
+ Root.displayName = "AptosPrivacyPolicy.Root";
286
+ var Disclaimer = forwardRef(
287
+ ({ className, asChild, children }, ref) => {
288
+ const Component = asChild ? Slot : "span";
289
+ return /* @__PURE__ */ jsx3(Component, {
290
+ ref,
291
+ className,
292
+ children: children != null ? children : "By continuing, you agree to Aptos Labs'"
293
+ });
294
+ }
295
+ );
296
+ Disclaimer.displayName = "AptosPrivacyPolicy.Disclaimer";
297
+ var Link = forwardRef(
298
+ ({ className, asChild, children }, ref) => {
299
+ const Component = asChild ? Slot : "a";
300
+ return /* @__PURE__ */ jsx3(Component, {
301
+ ref,
302
+ className,
303
+ href: APTOS_PRIVACY_POLICY_URL,
304
+ target: "_blank",
305
+ rel: "noopener noreferrer",
306
+ children: children != null ? children : "Privacy Policy"
307
+ });
308
+ }
309
+ );
310
+ Link.displayName = "AptosPrivacyPolicy.Link";
311
+ var PoweredBy = forwardRef(({ className }, ref) => {
312
+ return /* @__PURE__ */ jsxs("div", {
313
+ ref,
314
+ className,
315
+ children: [
316
+ /* @__PURE__ */ jsx3("span", {
317
+ children: "Powered by"
318
+ }),
319
+ /* @__PURE__ */ jsx3(SmallAptosLogo, {}),
320
+ /* @__PURE__ */ jsx3("span", {
321
+ children: "Aptos Labs"
322
+ })
323
+ ]
324
+ });
325
+ });
326
+ PoweredBy.displayName = "AptosPrivacyPolicy.PoweredBy";
327
+ var AptosPrivacyPolicy = Object.assign(Root, {
328
+ Disclaimer,
329
+ Link,
330
+ PoweredBy
331
+ });
332
+
333
+ // src/components/WalletItem.tsx
334
+ import {
335
+ WalletReadyState,
336
+ isRedirectable
337
+ } from "@aptos-labs/wallet-adapter-core";
338
+ import { Slot as Slot2 } from "@radix-ui/react-slot";
339
+ import {
340
+ createContext as createContext2,
341
+ forwardRef as forwardRef2,
342
+ useCallback as useCallback2,
343
+ useContext as useContext2
344
+ } from "react";
345
+ import { jsx as jsx4 } from "react/jsx-runtime";
346
+ var WalletItemContext = createContext2(null);
347
+ var WalletItemRoot = forwardRef2(
348
+ ({ wallet, onConnect, className, asChild, children }, ref) => {
349
+ const { connect } = useWallet();
350
+ const connectWallet = useCallback2(() => {
351
+ connect(wallet.name);
352
+ onConnect == null ? void 0 : onConnect();
353
+ }, [connect, wallet.name, onConnect]);
354
+ const isWalletReady = wallet.readyState === WalletReadyState.Installed || wallet.readyState === WalletReadyState.Loadable;
355
+ const mobileSupport = "deeplinkProvider" in wallet && wallet.deeplinkProvider;
356
+ if (!isWalletReady && isRedirectable() && !mobileSupport)
357
+ return null;
358
+ const Component = asChild ? Slot2 : "div";
359
+ return /* @__PURE__ */ jsx4(WalletItemContext.Provider, {
360
+ value: { wallet, connectWallet },
361
+ children: /* @__PURE__ */ jsx4(Component, {
362
+ ref,
363
+ className,
364
+ children
365
+ })
366
+ });
367
+ }
368
+ );
369
+ WalletItemRoot.displayName = "WalletItem";
370
+ var WalletItemIcon = forwardRef2(
371
+ ({ className, asChild, children }, ref) => {
372
+ const context = useContext2(WalletItemContext);
373
+ if (!context) {
374
+ throw new Error("`WalletItem.Icon` must be used within `WalletItem`");
375
+ }
376
+ const Component = asChild ? Slot2 : "img";
377
+ return /* @__PURE__ */ jsx4(Component, {
378
+ ref,
379
+ src: context.wallet.icon,
380
+ alt: `${context.wallet.name} icon`,
381
+ className,
382
+ children
383
+ });
384
+ }
385
+ );
386
+ WalletItemIcon.displayName = "WalletItem.Icon";
387
+ var WalletItemName = forwardRef2(
388
+ ({ className, asChild, children }, ref) => {
389
+ const context = useContext2(WalletItemContext);
390
+ if (!context) {
391
+ throw new Error("`WalletItem.Name` must be used within `WalletItem`");
392
+ }
393
+ const Component = asChild ? Slot2 : "div";
394
+ return /* @__PURE__ */ jsx4(Component, {
395
+ ref,
396
+ className,
397
+ children: children != null ? children : context.wallet.name
398
+ });
399
+ }
400
+ );
401
+ WalletItemName.displayName = "WalletItem.Name";
402
+ var WalletItemConnectButton = forwardRef2(({ className, asChild, children }, ref) => {
403
+ const context = useContext2(WalletItemContext);
404
+ if (!context) {
405
+ throw new Error(
406
+ "`WalletItem.ConnectButton` must be used within `WalletItem`"
407
+ );
408
+ }
409
+ const Component = asChild ? Slot2 : "button";
410
+ return /* @__PURE__ */ jsx4(Component, {
411
+ ref,
412
+ className,
413
+ onClick: context.connectWallet,
414
+ children: children != null ? children : "Connect"
415
+ });
416
+ });
417
+ WalletItemConnectButton.displayName = "WalletItem.ConnectButton";
418
+ var WalletItemInstallLink = forwardRef2(({ className, asChild, children }, ref) => {
419
+ const context = useContext2(WalletItemContext);
420
+ if (!context) {
421
+ throw new Error(
422
+ "`WalletItem.InstallLink` must be used within `WalletItem`"
423
+ );
424
+ }
425
+ const Component = asChild ? Slot2 : "a";
426
+ return /* @__PURE__ */ jsx4(Component, {
427
+ ref,
428
+ className,
429
+ href: context.wallet.url,
430
+ target: "_blank",
431
+ rel: "noopener noreferrer",
432
+ children: children != null ? children : "Install"
433
+ });
434
+ });
435
+ WalletItemInstallLink.displayName = "WalletItem.InstallLink";
436
+ var WalletItem = Object.assign(WalletItemRoot, {
437
+ Icon: WalletItemIcon,
438
+ Name: WalletItemName,
439
+ ConnectButton: WalletItemConnectButton,
440
+ InstallLink: WalletItemInstallLink
441
+ });
359
442
  export {
443
+ APTOS_PRIVACY_POLICY_URL,
444
+ AptosPrivacyPolicy,
360
445
  AptosWalletAdapterProvider,
361
446
  WalletContext,
362
447
  WalletItem,
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.tsx","../src/WalletItem.tsx","../src/useWallet.tsx","../src/WalletProvider.tsx"],"sourcesContent":["export * from \"@aptos-labs/wallet-adapter-core\";\nexport * from \"./WalletItem\";\nexport * from \"./WalletProvider\";\nexport * from \"./useWallet\";\n","import {\n AnyAptosWallet,\n WalletReadyState,\n isRedirectable,\n} from \"@aptos-labs/wallet-adapter-core\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport {\n ReactNode,\n createContext,\n forwardRef,\n useCallback,\n useContext,\n} from \"react\";\nimport { useWallet } from \"./useWallet\";\n\nexport interface WalletItemProps {\n /** The wallet option to be displayed. */\n wallet: AnyAptosWallet;\n /** A callback to be invoked when the wallet is connected. */\n onConnect?: () => void;\n /** A class name for styling the wrapper element. */\n className?: string;\n /**\n * Whether to render as the child element instead of the default `div` provided.\n * All props will be merged into the child element.\n */\n asChild?: boolean;\n children?: ReactNode;\n}\n\nexport interface WalletItemElementProps {\n /** A class name for styling the element. */\n className?: string;\n /**\n * Whether to render as the child element instead of the default element provided.\n * All props will be merged into the child element.\n */\n asChild?: boolean;\n children?: ReactNode;\n}\n\nconst WalletItemContext = createContext<{\n wallet: AnyAptosWallet;\n connectWallet: () => void;\n} | null>(null);\n\nconst WalletItemRoot = forwardRef<HTMLDivElement, WalletItemProps>(\n ({ wallet, onConnect, className, asChild, children }, ref) => {\n const { connect } = useWallet();\n\n const connectWallet = useCallback(() => {\n connect(wallet.name);\n onConnect?.();\n }, [connect, wallet.name, onConnect]);\n\n const isWalletReady =\n wallet.readyState === WalletReadyState.Installed ||\n wallet.readyState === WalletReadyState.Loadable;\n\n const mobileSupport =\n \"deeplinkProvider\" in wallet && wallet.deeplinkProvider;\n\n if (!isWalletReady && isRedirectable() && !mobileSupport) return null;\n\n const Component = asChild ? Slot : \"div\";\n\n return (\n <WalletItemContext.Provider value={{ wallet, connectWallet }}>\n <Component ref={ref} className={className}>\n {children}\n </Component>\n </WalletItemContext.Provider>\n );\n }\n);\nWalletItemRoot.displayName = \"WalletItem\";\n\nconst WalletItemIcon = forwardRef<HTMLImageElement, WalletItemElementProps>(\n ({ className, asChild, children }, ref) => {\n const context = useContext(WalletItemContext);\n\n if (!context) {\n throw new Error(\"`WalletItem.Icon` must be used within `WalletItem`\");\n }\n\n const Component = asChild ? Slot : \"img\";\n\n return (\n <Component\n ref={ref}\n src={context.wallet.icon}\n alt={`${context.wallet.name} icon`}\n className={className}\n >\n {children}\n </Component>\n );\n }\n);\nWalletItemIcon.displayName = \"WalletItem.Icon\";\n\nconst WalletItemName = forwardRef<HTMLDivElement, WalletItemElementProps>(\n ({ className, asChild, children }, ref) => {\n const context = useContext(WalletItemContext);\n\n if (!context) {\n throw new Error(\"`WalletItem.Name` must be used within `WalletItem`\");\n }\n\n const Component = asChild ? Slot : \"div\";\n\n return (\n <Component ref={ref} className={className}>\n {children ?? context.wallet.name}\n </Component>\n );\n }\n);\nWalletItemName.displayName = \"WalletItem.Name\";\n\nconst WalletItemConnectButton = forwardRef<\n HTMLButtonElement,\n WalletItemElementProps\n>(({ className, asChild, children }, ref) => {\n const context = useContext(WalletItemContext);\n\n if (!context) {\n throw new Error(\n \"`WalletItem.ConnectButton` must be used within `WalletItem`\"\n );\n }\n\n const Component = asChild ? Slot : \"button\";\n\n return (\n <Component ref={ref} className={className} onClick={context.connectWallet}>\n {children ?? \"Connect\"}\n </Component>\n );\n});\nWalletItemConnectButton.displayName = \"WalletItem.ConnectButton\";\n\nconst WalletItemInstallLink = forwardRef<\n HTMLAnchorElement,\n WalletItemElementProps\n>(({ className, asChild, children }, ref) => {\n const context = useContext(WalletItemContext);\n\n if (!context) {\n throw new Error(\n \"`WalletItem.InstallLink` must be used within `WalletItem`\"\n );\n }\n\n const Component = asChild ? Slot : \"a\";\n\n return (\n <Component\n ref={ref}\n className={className}\n href={context.wallet.url}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n {children ?? \"Install\"}\n </Component>\n );\n});\nWalletItemInstallLink.displayName = \"WalletItem.InstallLink\";\n\n/** A headless component for rendering a wallet option's name, icon, and either connect button or install link. */\nexport const WalletItem = Object.assign(WalletItemRoot, {\n Icon: WalletItemIcon,\n Name: WalletItemName,\n ConnectButton: WalletItemConnectButton,\n InstallLink: WalletItemInstallLink,\n});\n","import {\n AccountInfo,\n NetworkInfo,\n WalletInfo,\n SignMessagePayload,\n SignMessageResponse,\n Wallet,\n InputGenerateTransactionOptions,\n AnyRawTransaction,\n InputTransactionData,\n InputSubmitTransactionData,\n PendingTransactionResponse,\n AccountAuthenticator,\n Types,\n WalletName,\n AptosChangeNetworkOutput,\n Network,\n AptosStandardSupportedWallet,\n} from \"@aptos-labs/wallet-adapter-core\";\nimport { createContext, useContext } from \"react\";\n\nexport interface WalletContextState {\n connected: boolean;\n isLoading: boolean;\n account: AccountInfo | null;\n network: NetworkInfo | null;\n connect(walletName: WalletName): void;\n disconnect(): void;\n wallet: WalletInfo | null;\n wallets?: ReadonlyArray<Wallet | AptosStandardSupportedWallet>;\n signAndSubmitTransaction(transaction: InputTransactionData): Promise<any>;\n signTransaction(\n transactionOrPayload: AnyRawTransaction | Types.TransactionPayload,\n asFeePayer?: boolean,\n options?: InputGenerateTransactionOptions\n ): Promise<AccountAuthenticator>;\n submitTransaction(\n transaction: InputSubmitTransactionData\n ): Promise<PendingTransactionResponse>;\n signMessage(message: SignMessagePayload): Promise<SignMessageResponse>;\n signMessageAndVerify(message: SignMessagePayload): Promise<boolean>;\n changeNetwork(network: Network): Promise<AptosChangeNetworkOutput>;\n}\n\nconst DEFAULT_CONTEXT = {\n connected: false,\n};\n\nexport const WalletContext = createContext<WalletContextState>(\n DEFAULT_CONTEXT as WalletContextState\n);\n\nexport function useWallet(): WalletContextState {\n const context = useContext(WalletContext);\n if (!context) {\n throw new Error(\"useWallet must be used within a WalletContextState\");\n }\n return context;\n}\n","import {\n FC,\n ReactNode,\n useCallback,\n useEffect,\n useMemo,\n useState,\n} from \"react\";\nimport { WalletContext } from \"./useWallet\";\nimport type {\n AccountInfo,\n NetworkInfo,\n SignMessagePayload,\n Wallet,\n WalletInfo,\n InputGenerateTransactionOptions,\n AnyRawTransaction,\n InputSubmitTransactionData,\n AccountAuthenticator,\n PendingTransactionResponse,\n SignMessageResponse,\n WalletName,\n Types,\n InputTransactionData,\n Network,\n AptosStandardSupportedWallet,\n AvailableWallets,\n} from \"@aptos-labs/wallet-adapter-core\";\nimport { WalletCore } from \"@aptos-labs/wallet-adapter-core\";\n\nexport interface AptosWalletProviderProps {\n children: ReactNode;\n plugins?: ReadonlyArray<Wallet>;\n optInWallets?: ReadonlyArray<AvailableWallets>;\n autoConnect?: boolean;\n dappConfig?: { network: Network };\n onError?: (error: any) => void;\n}\n\nconst initialState: {\n account: AccountInfo | null;\n network: NetworkInfo | null;\n connected: boolean;\n wallet: WalletInfo | null;\n} = {\n connected: false,\n account: null,\n network: null,\n wallet: null,\n};\n\n/**\n * Supported props to pass into the provider\n *\n * @param plugins Non AIP-62 supported wallet plugins array\n * @param optInWallets AIP-62 supported wallet names array to only include in the adapter wallets\n * @param autoConnect A boolean flag to indicate if the adapter should auto connect to a wallet\n * @param dappConfig The dapp configurations to be used by SDK wallets to set their configurations\n * @param onError A callback function to execute when there is an error in the adapter\n *\n */\nexport const AptosWalletAdapterProvider: FC<AptosWalletProviderProps> = ({\n children,\n plugins,\n optInWallets,\n autoConnect = false,\n dappConfig,\n onError,\n}: AptosWalletProviderProps) => {\n const [{ connected, account, network, wallet }, setState] =\n useState(initialState);\n\n // a local state to track whether wallet connect request is loading\n // https://github.com/aptos-labs/aptos-wallet-adapter/issues/94\n const [isLoading, setIsLoading] = useState<boolean>(true);\n\n const walletCore = useMemo(\n () => new WalletCore(plugins ?? [], optInWallets ?? [], dappConfig),\n []\n );\n const [wallets, setWallets] = useState<\n ReadonlyArray<Wallet | AptosStandardSupportedWallet>\n >(walletCore.wallets);\n\n const connect = async (walletName: WalletName) => {\n try {\n setIsLoading(true);\n await walletCore.connect(walletName);\n } catch (error: any) {\n if (onError) onError(error);\n return Promise.reject(error);\n } finally {\n setIsLoading(false);\n }\n };\n\n const disconnect = async () => {\n try {\n await walletCore.disconnect();\n } catch (error) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n const signTransaction = async (\n transaction: AnyRawTransaction | Types.TransactionPayload,\n asFeePayer?: boolean,\n options?: InputGenerateTransactionOptions\n ): Promise<AccountAuthenticator> => {\n try {\n return await walletCore.signTransaction(transaction, asFeePayer, options);\n } catch (error: any) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n const signMessage = async (\n message: SignMessagePayload\n ): Promise<SignMessageResponse> => {\n try {\n return await walletCore.signMessage(message);\n } catch (error: any) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n const signMessageAndVerify = async (\n message: SignMessagePayload\n ): Promise<boolean> => {\n try {\n return await walletCore.signMessageAndVerify(message);\n } catch (error: any) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n const submitTransaction = async (\n transaction: InputSubmitTransactionData\n ): Promise<PendingTransactionResponse> => {\n try {\n return await walletCore.submitTransaction(transaction);\n } catch (error: any) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n const signAndSubmitTransaction = async (\n transaction: InputTransactionData\n ) => {\n try {\n return await walletCore.signAndSubmitTransaction(transaction);\n } catch (error: any) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n const changeNetwork = async (network: Network) => {\n try {\n return await walletCore.changeNetwork(network);\n } catch (error: any) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n useEffect(() => {\n if (autoConnect) {\n if (localStorage.getItem(\"AptosWalletName\") && !connected) {\n connect(localStorage.getItem(\"AptosWalletName\") as WalletName);\n } else {\n // if we dont use autoconnect set the connect is loading to false\n setIsLoading(false);\n }\n }\n }, [autoConnect, wallets]);\n\n useEffect(() => {\n if (connected) {\n walletCore.onAccountChange();\n walletCore.onNetworkChange();\n }\n }, [connected]);\n\n // Handle the adapter's connect event\n const handleConnect = () => {\n setState((state) => {\n return {\n ...state,\n connected: true,\n account: walletCore.account,\n network: walletCore.network,\n wallet: walletCore.wallet,\n };\n });\n };\n\n // Handle the adapter's disconnect event\n const handleDisconnect = () => {\n if (!connected) return;\n setState((state) => {\n return {\n ...state,\n connected: false,\n account: walletCore.account,\n network: walletCore.network,\n wallet: null,\n };\n });\n };\n\n // Handle the adapter's account change event\n const handleAccountChange = useCallback(() => {\n if (!connected) return;\n if (!walletCore.wallet) return;\n setState((state) => {\n return {\n ...state,\n account: walletCore.account,\n };\n });\n }, [connected]);\n\n // Handle the adapter's network event\n const handleNetworkChange = useCallback(() => {\n if (!connected) return;\n if (!walletCore.wallet) return;\n setState((state) => {\n return {\n ...state,\n network: walletCore.network,\n };\n });\n }, [connected]);\n\n const handleReadyStateChange = (updatedWallet: Wallet) => {\n // Create a new array with updated values\n const updatedWallets = (wallets as Wallet[])?.map((wallet) => {\n if (wallet.name === updatedWallet.name) {\n // Return a new object with updated value\n return { ...wallet, readyState: updatedWallet.readyState };\n }\n return wallet;\n });\n setWallets(updatedWallets);\n };\n\n const handleStandardWalletsAdded = (\n standardWallet: Wallet | AptosStandardSupportedWallet\n ) => {\n // Manage current wallet state by removing optional duplications\n // as new wallets are coming\n const existingWalletIndex = wallets.findIndex(\n (wallet) => wallet.name == standardWallet.name\n );\n if (existingWalletIndex !== -1) {\n // If wallet exists, replace it with the new wallet\n setWallets((wallets) => [\n ...wallets.slice(0, existingWalletIndex),\n standardWallet,\n ...wallets.slice(existingWalletIndex + 1),\n ]);\n } else {\n // If wallet doesn't exist, add it to the array\n setWallets((wallets) => [...wallets, standardWallet]);\n }\n };\n\n useEffect(() => {\n walletCore.on(\"connect\", handleConnect);\n walletCore.on(\"disconnect\", handleDisconnect);\n walletCore.on(\"accountChange\", handleAccountChange);\n walletCore.on(\"networkChange\", handleNetworkChange);\n walletCore.on(\"readyStateChange\", handleReadyStateChange);\n walletCore.on(\"standardWalletsAdded\", handleStandardWalletsAdded);\n return () => {\n walletCore.off(\"connect\", handleConnect);\n walletCore.off(\"disconnect\", handleDisconnect);\n walletCore.off(\"accountChange\", handleAccountChange);\n walletCore.off(\"networkChange\", handleNetworkChange);\n walletCore.off(\"readyStateChange\", handleReadyStateChange);\n walletCore.off(\"standardWalletsAdded\", handleStandardWalletsAdded);\n };\n }, [wallets, connected]);\n\n return (\n <WalletContext.Provider\n value={{\n connect,\n account,\n network,\n connected,\n disconnect,\n wallet,\n wallets,\n signAndSubmitTransaction,\n signTransaction,\n signMessage,\n signMessageAndVerify,\n isLoading,\n submitTransaction,\n changeNetwork,\n }}\n >\n {children}\n </WalletContext.Provider>\n );\n};\n"],"mappings":"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","names":["createContext","useContext","createContext","useContext","useCallback","jsx","network","useCallback","wallet","wallets"]}
1
+ {"version":3,"sources":["../src/index.tsx","../src/WalletProvider.tsx","../src/useWallet.tsx","../src/components/AptosPrivacyPolicy.tsx","../src/graphics/SmallAptosLogo.tsx","../src/components/WalletItem.tsx"],"sourcesContent":["export * from \"@aptos-labs/wallet-adapter-core\";\nexport * from \"./WalletProvider\";\nexport * from \"./components/AptosPrivacyPolicy\";\nexport * from \"./components/WalletItem\";\nexport * from \"./useWallet\";\n","import {\n FC,\n ReactNode,\n useCallback,\n useEffect,\n useMemo,\n useState,\n} from \"react\";\nimport { WalletContext } from \"./useWallet\";\nimport type {\n AccountInfo,\n NetworkInfo,\n SignMessagePayload,\n Wallet,\n WalletInfo,\n InputGenerateTransactionOptions,\n AnyRawTransaction,\n InputSubmitTransactionData,\n AccountAuthenticator,\n PendingTransactionResponse,\n SignMessageResponse,\n WalletName,\n Types,\n InputTransactionData,\n Network,\n AptosStandardSupportedWallet,\n AvailableWallets,\n} from \"@aptos-labs/wallet-adapter-core\";\nimport { WalletCore } from \"@aptos-labs/wallet-adapter-core\";\n\nexport interface AptosWalletProviderProps {\n children: ReactNode;\n plugins?: ReadonlyArray<Wallet>;\n optInWallets?: ReadonlyArray<AvailableWallets>;\n autoConnect?: boolean;\n dappConfig?: { network: Network };\n onError?: (error: any) => void;\n}\n\nconst initialState: {\n account: AccountInfo | null;\n network: NetworkInfo | null;\n connected: boolean;\n wallet: WalletInfo | null;\n} = {\n connected: false,\n account: null,\n network: null,\n wallet: null,\n};\n\n/**\n * Supported props to pass into the provider\n *\n * @param plugins Non AIP-62 supported wallet plugins array\n * @param optInWallets AIP-62 supported wallet names array to only include in the adapter wallets\n * @param autoConnect A boolean flag to indicate if the adapter should auto connect to a wallet\n * @param dappConfig The dapp configurations to be used by SDK wallets to set their configurations\n * @param onError A callback function to execute when there is an error in the adapter\n *\n */\nexport const AptosWalletAdapterProvider: FC<AptosWalletProviderProps> = ({\n children,\n plugins,\n optInWallets,\n autoConnect = false,\n dappConfig,\n onError,\n}: AptosWalletProviderProps) => {\n const [{ connected, account, network, wallet }, setState] =\n useState(initialState);\n\n // a local state to track whether wallet connect request is loading\n // https://github.com/aptos-labs/aptos-wallet-adapter/issues/94\n const [isLoading, setIsLoading] = useState<boolean>(true);\n\n const walletCore = useMemo(\n () => new WalletCore(plugins ?? [], optInWallets ?? [], dappConfig),\n []\n );\n const [wallets, setWallets] = useState<\n ReadonlyArray<Wallet | AptosStandardSupportedWallet>\n >(walletCore.wallets);\n\n const connect = async (walletName: WalletName) => {\n try {\n setIsLoading(true);\n await walletCore.connect(walletName);\n } catch (error: any) {\n if (onError) onError(error);\n return Promise.reject(error);\n } finally {\n setIsLoading(false);\n }\n };\n\n const disconnect = async () => {\n try {\n await walletCore.disconnect();\n } catch (error) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n const signTransaction = async (\n transaction: AnyRawTransaction | Types.TransactionPayload,\n asFeePayer?: boolean,\n options?: InputGenerateTransactionOptions\n ): Promise<AccountAuthenticator> => {\n try {\n return await walletCore.signTransaction(transaction, asFeePayer, options);\n } catch (error: any) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n const signMessage = async (\n message: SignMessagePayload\n ): Promise<SignMessageResponse> => {\n try {\n return await walletCore.signMessage(message);\n } catch (error: any) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n const signMessageAndVerify = async (\n message: SignMessagePayload\n ): Promise<boolean> => {\n try {\n return await walletCore.signMessageAndVerify(message);\n } catch (error: any) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n const submitTransaction = async (\n transaction: InputSubmitTransactionData\n ): Promise<PendingTransactionResponse> => {\n try {\n return await walletCore.submitTransaction(transaction);\n } catch (error: any) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n const signAndSubmitTransaction = async (\n transaction: InputTransactionData\n ) => {\n try {\n return await walletCore.signAndSubmitTransaction(transaction);\n } catch (error: any) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n const changeNetwork = async (network: Network) => {\n try {\n return await walletCore.changeNetwork(network);\n } catch (error: any) {\n if (onError) onError(error);\n return Promise.reject(error);\n }\n };\n\n useEffect(() => {\n if (autoConnect) {\n if (localStorage.getItem(\"AptosWalletName\") && !connected) {\n connect(localStorage.getItem(\"AptosWalletName\") as WalletName);\n } else {\n // if we dont use autoconnect set the connect is loading to false\n setIsLoading(false);\n }\n }\n }, [autoConnect, wallets]);\n\n useEffect(() => {\n if (connected) {\n walletCore.onAccountChange();\n walletCore.onNetworkChange();\n }\n }, [connected]);\n\n // Handle the adapter's connect event\n const handleConnect = () => {\n setState((state) => {\n return {\n ...state,\n connected: true,\n account: walletCore.account,\n network: walletCore.network,\n wallet: walletCore.wallet,\n };\n });\n };\n\n // Handle the adapter's disconnect event\n const handleDisconnect = () => {\n if (!connected) return;\n setState((state) => {\n return {\n ...state,\n connected: false,\n account: walletCore.account,\n network: walletCore.network,\n wallet: null,\n };\n });\n };\n\n // Handle the adapter's account change event\n const handleAccountChange = useCallback(() => {\n if (!connected) return;\n if (!walletCore.wallet) return;\n setState((state) => {\n return {\n ...state,\n account: walletCore.account,\n };\n });\n }, [connected]);\n\n // Handle the adapter's network event\n const handleNetworkChange = useCallback(() => {\n if (!connected) return;\n if (!walletCore.wallet) return;\n setState((state) => {\n return {\n ...state,\n network: walletCore.network,\n };\n });\n }, [connected]);\n\n const handleReadyStateChange = (updatedWallet: Wallet) => {\n // Create a new array with updated values\n const updatedWallets = (wallets as Wallet[])?.map((wallet) => {\n if (wallet.name === updatedWallet.name) {\n // Return a new object with updated value\n return { ...wallet, readyState: updatedWallet.readyState };\n }\n return wallet;\n });\n setWallets(updatedWallets);\n };\n\n const handleStandardWalletsAdded = (\n standardWallet: Wallet | AptosStandardSupportedWallet\n ) => {\n // Manage current wallet state by removing optional duplications\n // as new wallets are coming\n const existingWalletIndex = wallets.findIndex(\n (wallet) => wallet.name == standardWallet.name\n );\n if (existingWalletIndex !== -1) {\n // If wallet exists, replace it with the new wallet\n setWallets((wallets) => [\n ...wallets.slice(0, existingWalletIndex),\n standardWallet,\n ...wallets.slice(existingWalletIndex + 1),\n ]);\n } else {\n // If wallet doesn't exist, add it to the array\n setWallets((wallets) => [...wallets, standardWallet]);\n }\n };\n\n useEffect(() => {\n walletCore.on(\"connect\", handleConnect);\n walletCore.on(\"disconnect\", handleDisconnect);\n walletCore.on(\"accountChange\", handleAccountChange);\n walletCore.on(\"networkChange\", handleNetworkChange);\n walletCore.on(\"readyStateChange\", handleReadyStateChange);\n walletCore.on(\"standardWalletsAdded\", handleStandardWalletsAdded);\n return () => {\n walletCore.off(\"connect\", handleConnect);\n walletCore.off(\"disconnect\", handleDisconnect);\n walletCore.off(\"accountChange\", handleAccountChange);\n walletCore.off(\"networkChange\", handleNetworkChange);\n walletCore.off(\"readyStateChange\", handleReadyStateChange);\n walletCore.off(\"standardWalletsAdded\", handleStandardWalletsAdded);\n };\n }, [wallets, connected]);\n\n return (\n <WalletContext.Provider\n value={{\n connect,\n account,\n network,\n connected,\n disconnect,\n wallet,\n wallets,\n signAndSubmitTransaction,\n signTransaction,\n signMessage,\n signMessageAndVerify,\n isLoading,\n submitTransaction,\n changeNetwork,\n }}\n >\n {children}\n </WalletContext.Provider>\n );\n};\n","import {\n AccountInfo,\n NetworkInfo,\n WalletInfo,\n SignMessagePayload,\n SignMessageResponse,\n Wallet,\n InputGenerateTransactionOptions,\n AnyRawTransaction,\n InputTransactionData,\n InputSubmitTransactionData,\n PendingTransactionResponse,\n AccountAuthenticator,\n Types,\n WalletName,\n AptosChangeNetworkOutput,\n Network,\n AptosStandardSupportedWallet,\n} from \"@aptos-labs/wallet-adapter-core\";\nimport { createContext, useContext } from \"react\";\n\nexport interface WalletContextState {\n connected: boolean;\n isLoading: boolean;\n account: AccountInfo | null;\n network: NetworkInfo | null;\n connect(walletName: WalletName): void;\n disconnect(): void;\n wallet: WalletInfo | null;\n wallets?: ReadonlyArray<Wallet | AptosStandardSupportedWallet>;\n signAndSubmitTransaction(transaction: InputTransactionData): Promise<any>;\n signTransaction(\n transactionOrPayload: AnyRawTransaction | Types.TransactionPayload,\n asFeePayer?: boolean,\n options?: InputGenerateTransactionOptions\n ): Promise<AccountAuthenticator>;\n submitTransaction(\n transaction: InputSubmitTransactionData\n ): Promise<PendingTransactionResponse>;\n signMessage(message: SignMessagePayload): Promise<SignMessageResponse>;\n signMessageAndVerify(message: SignMessagePayload): Promise<boolean>;\n changeNetwork(network: Network): Promise<AptosChangeNetworkOutput>;\n}\n\nconst DEFAULT_CONTEXT = {\n connected: false,\n};\n\nexport const WalletContext = createContext<WalletContextState>(\n DEFAULT_CONTEXT as WalletContextState\n);\n\nexport function useWallet(): WalletContextState {\n const context = useContext(WalletContext);\n if (!context) {\n throw new Error(\"useWallet must be used within a WalletContextState\");\n }\n return context;\n}\n","import { Slot } from \"@radix-ui/react-slot\";\nimport { ReactNode, forwardRef } from \"react\";\nimport { SmallAptosLogo } from \"../graphics/SmallAptosLogo\";\n\nexport const APTOS_PRIVACY_POLICY_URL = \"https://aptoslabs.com/privacy\";\n\nexport interface AptosPrivacyPolicyProps {\n /** A class name for styling the element. */\n className?: string;\n /**\n * Whether to render as the child element instead of the default element provided.\n * All props will be merged into the child element.\n */\n asChild?: boolean;\n children?: ReactNode;\n}\n\nconst Root = forwardRef<HTMLDivElement, AptosPrivacyPolicyProps>(\n ({ className, asChild, children }, ref) => {\n const Component = asChild ? Slot : \"div\";\n\n return (\n <Component ref={ref} className={className}>\n {children}\n </Component>\n );\n }\n);\nRoot.displayName = \"AptosPrivacyPolicy.Root\";\n\nconst Disclaimer = forwardRef<HTMLSpanElement, AptosPrivacyPolicyProps>(\n ({ className, asChild, children }, ref) => {\n const Component = asChild ? Slot : \"span\";\n\n return (\n <Component ref={ref} className={className}>\n {children ?? \"By continuing, you agree to Aptos Labs'\"}\n </Component>\n );\n }\n);\nDisclaimer.displayName = \"AptosPrivacyPolicy.Disclaimer\";\n\nconst Link = forwardRef<HTMLAnchorElement, AptosPrivacyPolicyProps>(\n ({ className, asChild, children }, ref) => {\n const Component = asChild ? Slot : \"a\";\n\n return (\n <Component\n ref={ref}\n className={className}\n href={APTOS_PRIVACY_POLICY_URL}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n {children ?? \"Privacy Policy\"}\n </Component>\n );\n }\n);\nLink.displayName = \"AptosPrivacyPolicy.Link\";\n\nconst PoweredBy = forwardRef<\n HTMLDivElement,\n Pick<AptosPrivacyPolicyProps, \"className\">\n>(({ className }, ref) => {\n return (\n <div ref={ref} className={className}>\n <span>Powered by</span>\n <SmallAptosLogo />\n <span>Aptos Labs</span>\n </div>\n );\n});\nPoweredBy.displayName = \"AptosPrivacyPolicy.PoweredBy\";\n\n/**\n * A headless component for rendering the Aptos Labs privacy policy disclaimer\n * that should be placed under the Aptos Connect login options.\n */\nexport const AptosPrivacyPolicy = Object.assign(Root, {\n Disclaimer,\n Link,\n PoweredBy,\n});\n","import { SVGProps } from \"react\";\n\nexport function SmallAptosLogo(props: SVGProps<SVGSVGElement>) {\n return (\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M6 12C9.31371 12 12 9.31371 12 6C12 2.68629 9.31371 0 6 0C2.68629 0 0 2.68629 0 6C0 9.31371 2.68629 12 6 12ZM7.17547 3.67976C7.13401 3.72309 7.07649 3.74757 7.01648 3.74757H3.00775C3.69185 2.83824 4.77995 2.25 6.00569 2.25C7.23142 2.25 8.31953 2.83824 9.00362 3.74757H8.28524C8.20824 3.74757 8.13498 3.71468 8.08401 3.65701L7.81608 3.35416C7.77618 3.30896 7.71882 3.28308 7.6585 3.28308H7.6454C7.58805 3.28308 7.53318 3.30646 7.49343 3.34792L7.17547 3.67976ZM8.05656 4.75897H7.39569C7.31869 4.75897 7.24543 4.72593 7.19447 4.66842L6.92638 4.36557C6.88647 4.32036 6.82896 4.29465 6.7688 4.29465C6.70863 4.29465 6.65112 4.32052 6.61121 4.36557L6.38131 4.6254C6.30603 4.71034 6.19801 4.75913 6.08454 4.75913H2.46703C2.36401 5.05278 2.29683 5.36296 2.27002 5.68467H5.68505C5.74506 5.68467 5.80258 5.66019 5.84404 5.61686L6.16201 5.28502C6.20175 5.24356 6.25662 5.22018 6.31398 5.22018H6.32707C6.38739 5.22018 6.44475 5.24606 6.48465 5.29126L6.75258 5.59411C6.80355 5.65178 6.87681 5.68467 6.95381 5.68467H9.74133C9.71452 5.3628 9.64734 5.05263 9.54431 4.75913H8.05641L8.05656 4.75897ZM4.33651 7.63095C4.39652 7.63095 4.45404 7.60648 4.4955 7.56315L4.81347 7.23131C4.85321 7.18985 4.90808 7.16647 4.96544 7.16647H4.97853C5.03885 7.16647 5.09621 7.19234 5.13611 7.23739L5.40404 7.54024C5.45501 7.59791 5.52827 7.6308 5.60527 7.6308H9.38285C9.52438 7.33839 9.62803 7.02463 9.68975 6.69591H6.06383C5.98683 6.69591 5.91357 6.66287 5.8626 6.60535L5.59467 6.3025C5.55477 6.2573 5.49725 6.23158 5.43709 6.23158C5.37692 6.23158 5.31941 6.25746 5.27951 6.3025L5.0496 6.56233C4.97432 6.64728 4.86631 6.69606 4.75268 6.69606H2.32147C2.3832 7.02479 2.487 7.33855 2.62837 7.63095H4.33651ZM5.57359 8.55745H4.59116C4.51417 8.55745 4.44091 8.52441 4.38994 8.46689L4.12201 8.16404C4.0821 8.11884 4.02459 8.09312 3.96442 8.09312C3.90426 8.09312 3.84675 8.119 3.80684 8.16404L3.57694 8.42387C3.50166 8.50882 3.39364 8.55761 3.28001 8.55761H3.26474C3.94915 9.29096 4.92378 9.74998 6.00596 9.74998C7.08815 9.74998 8.06262 9.29096 8.74719 8.55761H5.57359V8.55745Z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n}\n","import {\n AnyAptosWallet,\n WalletReadyState,\n isRedirectable,\n} from \"@aptos-labs/wallet-adapter-core\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport {\n ReactNode,\n createContext,\n forwardRef,\n useCallback,\n useContext,\n} from \"react\";\nimport { useWallet } from \"../useWallet\";\n\nexport interface WalletItemProps {\n /** The wallet option to be displayed. */\n wallet: AnyAptosWallet;\n /** A callback to be invoked when the wallet is connected. */\n onConnect?: () => void;\n /** A class name for styling the wrapper element. */\n className?: string;\n /**\n * Whether to render as the child element instead of the default `div` provided.\n * All props will be merged into the child element.\n */\n asChild?: boolean;\n children?: ReactNode;\n}\n\nexport interface WalletItemElementProps {\n /** A class name for styling the element. */\n className?: string;\n /**\n * Whether to render as the child element instead of the default element provided.\n * All props will be merged into the child element.\n */\n asChild?: boolean;\n children?: ReactNode;\n}\n\nconst WalletItemContext = createContext<{\n wallet: AnyAptosWallet;\n connectWallet: () => void;\n} | null>(null);\n\nconst WalletItemRoot = forwardRef<HTMLDivElement, WalletItemProps>(\n ({ wallet, onConnect, className, asChild, children }, ref) => {\n const { connect } = useWallet();\n\n const connectWallet = useCallback(() => {\n connect(wallet.name);\n onConnect?.();\n }, [connect, wallet.name, onConnect]);\n\n const isWalletReady =\n wallet.readyState === WalletReadyState.Installed ||\n wallet.readyState === WalletReadyState.Loadable;\n\n const mobileSupport =\n \"deeplinkProvider\" in wallet && wallet.deeplinkProvider;\n\n if (!isWalletReady && isRedirectable() && !mobileSupport) return null;\n\n const Component = asChild ? Slot : \"div\";\n\n return (\n <WalletItemContext.Provider value={{ wallet, connectWallet }}>\n <Component ref={ref} className={className}>\n {children}\n </Component>\n </WalletItemContext.Provider>\n );\n }\n);\nWalletItemRoot.displayName = \"WalletItem\";\n\nconst WalletItemIcon = forwardRef<HTMLImageElement, WalletItemElementProps>(\n ({ className, asChild, children }, ref) => {\n const context = useContext(WalletItemContext);\n\n if (!context) {\n throw new Error(\"`WalletItem.Icon` must be used within `WalletItem`\");\n }\n\n const Component = asChild ? Slot : \"img\";\n\n return (\n <Component\n ref={ref}\n src={context.wallet.icon}\n alt={`${context.wallet.name} icon`}\n className={className}\n >\n {children}\n </Component>\n );\n }\n);\nWalletItemIcon.displayName = \"WalletItem.Icon\";\n\nconst WalletItemName = forwardRef<HTMLDivElement, WalletItemElementProps>(\n ({ className, asChild, children }, ref) => {\n const context = useContext(WalletItemContext);\n\n if (!context) {\n throw new Error(\"`WalletItem.Name` must be used within `WalletItem`\");\n }\n\n const Component = asChild ? Slot : \"div\";\n\n return (\n <Component ref={ref} className={className}>\n {children ?? context.wallet.name}\n </Component>\n );\n }\n);\nWalletItemName.displayName = \"WalletItem.Name\";\n\nconst WalletItemConnectButton = forwardRef<\n HTMLButtonElement,\n WalletItemElementProps\n>(({ className, asChild, children }, ref) => {\n const context = useContext(WalletItemContext);\n\n if (!context) {\n throw new Error(\n \"`WalletItem.ConnectButton` must be used within `WalletItem`\"\n );\n }\n\n const Component = asChild ? Slot : \"button\";\n\n return (\n <Component ref={ref} className={className} onClick={context.connectWallet}>\n {children ?? \"Connect\"}\n </Component>\n );\n});\nWalletItemConnectButton.displayName = \"WalletItem.ConnectButton\";\n\nconst WalletItemInstallLink = forwardRef<\n HTMLAnchorElement,\n WalletItemElementProps\n>(({ className, asChild, children }, ref) => {\n const context = useContext(WalletItemContext);\n\n if (!context) {\n throw new Error(\n \"`WalletItem.InstallLink` must be used within `WalletItem`\"\n );\n }\n\n const Component = asChild ? Slot : \"a\";\n\n return (\n <Component\n ref={ref}\n className={className}\n href={context.wallet.url}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n {children ?? \"Install\"}\n </Component>\n );\n});\nWalletItemInstallLink.displayName = \"WalletItem.InstallLink\";\n\n/** A headless component for rendering a wallet option's name, icon, and either connect button or install link. */\nexport const WalletItem = Object.assign(WalletItemRoot, {\n Icon: WalletItemIcon,\n Name: WalletItemName,\n ConnectButton: WalletItemConnectButton,\n InstallLink: WalletItemInstallLink,\n});\n"],"mappings":"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","names":["network","wallet","wallets","jsx","jsx","Slot","createContext","forwardRef","useCallback","useContext","jsx","createContext","forwardRef","useCallback","Slot","useContext"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aptos-labs/wallet-adapter-react",
3
- "version": "3.3.1",
3
+ "version": "3.4.1",
4
4
  "description": "Aptos Wallet Adapter React Provider",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.mjs",
@@ -0,0 +1,85 @@
1
+ import { Slot } from "@radix-ui/react-slot";
2
+ import { ReactNode, forwardRef } from "react";
3
+ import { SmallAptosLogo } from "../graphics/SmallAptosLogo";
4
+
5
+ export const APTOS_PRIVACY_POLICY_URL = "https://aptoslabs.com/privacy";
6
+
7
+ export interface AptosPrivacyPolicyProps {
8
+ /** A class name for styling the element. */
9
+ className?: string;
10
+ /**
11
+ * Whether to render as the child element instead of the default element provided.
12
+ * All props will be merged into the child element.
13
+ */
14
+ asChild?: boolean;
15
+ children?: ReactNode;
16
+ }
17
+
18
+ const Root = forwardRef<HTMLDivElement, AptosPrivacyPolicyProps>(
19
+ ({ className, asChild, children }, ref) => {
20
+ const Component = asChild ? Slot : "div";
21
+
22
+ return (
23
+ <Component ref={ref} className={className}>
24
+ {children}
25
+ </Component>
26
+ );
27
+ }
28
+ );
29
+ Root.displayName = "AptosPrivacyPolicy.Root";
30
+
31
+ const Disclaimer = forwardRef<HTMLSpanElement, AptosPrivacyPolicyProps>(
32
+ ({ className, asChild, children }, ref) => {
33
+ const Component = asChild ? Slot : "span";
34
+
35
+ return (
36
+ <Component ref={ref} className={className}>
37
+ {children ?? "By continuing, you agree to Aptos Labs'"}
38
+ </Component>
39
+ );
40
+ }
41
+ );
42
+ Disclaimer.displayName = "AptosPrivacyPolicy.Disclaimer";
43
+
44
+ const Link = forwardRef<HTMLAnchorElement, AptosPrivacyPolicyProps>(
45
+ ({ className, asChild, children }, ref) => {
46
+ const Component = asChild ? Slot : "a";
47
+
48
+ return (
49
+ <Component
50
+ ref={ref}
51
+ className={className}
52
+ href={APTOS_PRIVACY_POLICY_URL}
53
+ target="_blank"
54
+ rel="noopener noreferrer"
55
+ >
56
+ {children ?? "Privacy Policy"}
57
+ </Component>
58
+ );
59
+ }
60
+ );
61
+ Link.displayName = "AptosPrivacyPolicy.Link";
62
+
63
+ const PoweredBy = forwardRef<
64
+ HTMLDivElement,
65
+ Pick<AptosPrivacyPolicyProps, "className">
66
+ >(({ className }, ref) => {
67
+ return (
68
+ <div ref={ref} className={className}>
69
+ <span>Powered by</span>
70
+ <SmallAptosLogo />
71
+ <span>Aptos Labs</span>
72
+ </div>
73
+ );
74
+ });
75
+ PoweredBy.displayName = "AptosPrivacyPolicy.PoweredBy";
76
+
77
+ /**
78
+ * A headless component for rendering the Aptos Labs privacy policy disclaimer
79
+ * that should be placed under the Aptos Connect login options.
80
+ */
81
+ export const AptosPrivacyPolicy = Object.assign(Root, {
82
+ Disclaimer,
83
+ Link,
84
+ PoweredBy,
85
+ });
@@ -11,7 +11,7 @@ import {
11
11
  useCallback,
12
12
  useContext,
13
13
  } from "react";
14
- import { useWallet } from "./useWallet";
14
+ import { useWallet } from "../useWallet";
15
15
 
16
16
  export interface WalletItemProps {
17
17
  /** The wallet option to be displayed. */
@@ -0,0 +1,14 @@
1
+ import { SVGProps } from "react";
2
+
3
+ export function SmallAptosLogo(props: SVGProps<SVGSVGElement>) {
4
+ return (
5
+ <svg width="12" height="12" viewBox="0 0 12 12" fill="none" {...props}>
6
+ <path
7
+ fillRule="evenodd"
8
+ clipRule="evenodd"
9
+ d="M6 12C9.31371 12 12 9.31371 12 6C12 2.68629 9.31371 0 6 0C2.68629 0 0 2.68629 0 6C0 9.31371 2.68629 12 6 12ZM7.17547 3.67976C7.13401 3.72309 7.07649 3.74757 7.01648 3.74757H3.00775C3.69185 2.83824 4.77995 2.25 6.00569 2.25C7.23142 2.25 8.31953 2.83824 9.00362 3.74757H8.28524C8.20824 3.74757 8.13498 3.71468 8.08401 3.65701L7.81608 3.35416C7.77618 3.30896 7.71882 3.28308 7.6585 3.28308H7.6454C7.58805 3.28308 7.53318 3.30646 7.49343 3.34792L7.17547 3.67976ZM8.05656 4.75897H7.39569C7.31869 4.75897 7.24543 4.72593 7.19447 4.66842L6.92638 4.36557C6.88647 4.32036 6.82896 4.29465 6.7688 4.29465C6.70863 4.29465 6.65112 4.32052 6.61121 4.36557L6.38131 4.6254C6.30603 4.71034 6.19801 4.75913 6.08454 4.75913H2.46703C2.36401 5.05278 2.29683 5.36296 2.27002 5.68467H5.68505C5.74506 5.68467 5.80258 5.66019 5.84404 5.61686L6.16201 5.28502C6.20175 5.24356 6.25662 5.22018 6.31398 5.22018H6.32707C6.38739 5.22018 6.44475 5.24606 6.48465 5.29126L6.75258 5.59411C6.80355 5.65178 6.87681 5.68467 6.95381 5.68467H9.74133C9.71452 5.3628 9.64734 5.05263 9.54431 4.75913H8.05641L8.05656 4.75897ZM4.33651 7.63095C4.39652 7.63095 4.45404 7.60648 4.4955 7.56315L4.81347 7.23131C4.85321 7.18985 4.90808 7.16647 4.96544 7.16647H4.97853C5.03885 7.16647 5.09621 7.19234 5.13611 7.23739L5.40404 7.54024C5.45501 7.59791 5.52827 7.6308 5.60527 7.6308H9.38285C9.52438 7.33839 9.62803 7.02463 9.68975 6.69591H6.06383C5.98683 6.69591 5.91357 6.66287 5.8626 6.60535L5.59467 6.3025C5.55477 6.2573 5.49725 6.23158 5.43709 6.23158C5.37692 6.23158 5.31941 6.25746 5.27951 6.3025L5.0496 6.56233C4.97432 6.64728 4.86631 6.69606 4.75268 6.69606H2.32147C2.3832 7.02479 2.487 7.33855 2.62837 7.63095H4.33651ZM5.57359 8.55745H4.59116C4.51417 8.55745 4.44091 8.52441 4.38994 8.46689L4.12201 8.16404C4.0821 8.11884 4.02459 8.09312 3.96442 8.09312C3.90426 8.09312 3.84675 8.119 3.80684 8.16404L3.57694 8.42387C3.50166 8.50882 3.39364 8.55761 3.28001 8.55761H3.26474C3.94915 9.29096 4.92378 9.74998 6.00596 9.74998C7.08815 9.74998 8.06262 9.29096 8.74719 8.55761H5.57359V8.55745Z"
10
+ fill="currentColor"
11
+ />
12
+ </svg>
13
+ );
14
+ }
package/src/index.tsx CHANGED
@@ -1,4 +1,5 @@
1
1
  export * from "@aptos-labs/wallet-adapter-core";
2
- export * from "./WalletItem";
3
2
  export * from "./WalletProvider";
3
+ export * from "./components/AptosPrivacyPolicy";
4
+ export * from "./components/WalletItem";
4
5
  export * from "./useWallet";
@@ -1 +0,0 @@
1
- {"version":3,"file":"WalletItem.d.ts","sourceRoot":"","sources":["../src/WalletItem.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EAGf,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EACL,SAAS,EAKV,MAAM,OAAO,CAAC;AAGf,MAAM,WAAW,eAAe;IAC9B,yCAAyC;IACzC,MAAM,EAAE,cAAc,CAAC;IACvB,6DAA6D;IAC7D,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,oDAAoD;IACpD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,MAAM,WAAW,sBAAsB;IACrC,4CAA4C;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAmID,kHAAkH;AAClH,eAAO,MAAM,UAAU;;;;;CAKrB,CAAC"}