@xrpl-wallet-kit/browser 0.1.7 → 0.1.9
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 +8 -3
- package/dist/xrpl-wallet-kit-legacy-bridge.js +11 -4
- package/dist/xrpl-wallet-kit.iife.js +493 -96
- package/dist/xrpl-wallet-kit.iife.min.js +49 -49
- package/package.json +2 -2
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! @xrpl-wallet-kit/browser v0.1.
|
|
1
|
+
/*! @xrpl-wallet-kit/browser v0.1.9 | MIT | https://github.com/XRPDomains/xrpl-wallet-kit */
|
|
2
2
|
var __defProp = Object.defineProperty;
|
|
3
3
|
var __typeError = (msg) => {
|
|
4
4
|
throw TypeError(msg);
|
|
@@ -2431,6 +2431,8 @@ var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot
|
|
|
2431
2431
|
const SESSION_KEY = "session";
|
|
2432
2432
|
const WALLET_STORAGE_VERSION = 1;
|
|
2433
2433
|
const RECOVER_SESSION_RETRY_DELAYS_MS = [0, 700, 1600, 3e3];
|
|
2434
|
+
const DEFAULT_AUTO_RECONNECT_RESTORE_TIMEOUT_MS = 3e3;
|
|
2435
|
+
const DEFAULT_PENDING_RETURN_RECOVERY_TIMEOUT_MS = 1e4;
|
|
2434
2436
|
const DEFAULT_ACCOUNT_STATUS_TIMEOUT_MS = 2500;
|
|
2435
2437
|
const DEFAULT_AUTHENTICATE_EXPIRES_IN_SECONDS = 3600;
|
|
2436
2438
|
const DEFAULT_TX_CONFIRMATION_ATTEMPTS = 6;
|
|
@@ -2543,9 +2545,14 @@ var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot
|
|
|
2543
2545
|
}
|
|
2544
2546
|
try {
|
|
2545
2547
|
if (adapter.restoreSession) {
|
|
2546
|
-
const
|
|
2548
|
+
const restoredResult = await this.withTimeout(adapter.restoreSession(session), DEFAULT_AUTO_RECONNECT_RESTORE_TIMEOUT_MS);
|
|
2549
|
+
if (restoredResult.timedOut) {
|
|
2550
|
+
await this.clearStoredSessionAsStale(session, "restore_timeout");
|
|
2551
|
+
return null;
|
|
2552
|
+
}
|
|
2553
|
+
const restored = restoredResult.value;
|
|
2547
2554
|
if (!(restored == null ? void 0 : restored.session)) {
|
|
2548
|
-
this.
|
|
2555
|
+
await this.clearStoredSessionAsStale(session, "restore_unavailable");
|
|
2549
2556
|
return null;
|
|
2550
2557
|
}
|
|
2551
2558
|
const enrichedSession2 = await this.enrichSession(this.withWalletMetadata(restored.session, adapter));
|
|
@@ -2555,8 +2562,19 @@ var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot
|
|
|
2555
2562
|
this.emit("connected", { adapterId: enrichedSession2.adapterId, account: enrichedSession2.account, session: enrichedSession2 });
|
|
2556
2563
|
return enrichedSession2;
|
|
2557
2564
|
}
|
|
2558
|
-
if (adapter.isAvailable
|
|
2559
|
-
|
|
2565
|
+
if (adapter.isAvailable) {
|
|
2566
|
+
const availability = await this.withTimeout(Promise.resolve(adapter.isAvailable()), DEFAULT_AUTO_RECONNECT_RESTORE_TIMEOUT_MS);
|
|
2567
|
+
if (availability.timedOut) {
|
|
2568
|
+
await this.clearStoredSessionAsStale(session, "availability_timeout");
|
|
2569
|
+
return null;
|
|
2570
|
+
}
|
|
2571
|
+
if (!availability.value) {
|
|
2572
|
+
await this.clearStoredSessionAsStale(session, "adapter_unavailable");
|
|
2573
|
+
return null;
|
|
2574
|
+
}
|
|
2575
|
+
}
|
|
2576
|
+
if (session.expiresAt && session.expiresAt <= Date.now()) {
|
|
2577
|
+
await this.clearStoredSessionAsStale(session, "session_expired");
|
|
2560
2578
|
return null;
|
|
2561
2579
|
}
|
|
2562
2580
|
const enrichedSession = await this.enrichSession(this.withWalletMetadata(session, adapter));
|
|
@@ -2590,16 +2608,34 @@ var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot
|
|
|
2590
2608
|
return null;
|
|
2591
2609
|
const announcedAdapters = /* @__PURE__ */ new Set();
|
|
2592
2610
|
const recoveryRetryDelaysMs = this.config.recoveryRetryDelaysMs ?? RECOVER_SESSION_RETRY_DELAYS_MS;
|
|
2611
|
+
const recoveryDeadline = Date.now() + DEFAULT_PENDING_RETURN_RECOVERY_TIMEOUT_MS;
|
|
2612
|
+
let timedOut = false;
|
|
2593
2613
|
for (const delayMs of recoveryRetryDelaysMs) {
|
|
2614
|
+
const remainingBeforeDelay = recoveryDeadline - Date.now();
|
|
2615
|
+
if (remainingBeforeDelay <= 0) {
|
|
2616
|
+
timedOut = true;
|
|
2617
|
+
break;
|
|
2618
|
+
}
|
|
2594
2619
|
if (delayMs > 0)
|
|
2595
|
-
await this.delay(delayMs);
|
|
2620
|
+
await this.delay(Math.min(delayMs, remainingBeforeDelay));
|
|
2596
2621
|
for (const adapter of recoverableAdapters) {
|
|
2622
|
+
const remaining = recoveryDeadline - Date.now();
|
|
2623
|
+
if (remaining <= 0) {
|
|
2624
|
+
timedOut = true;
|
|
2625
|
+
break;
|
|
2626
|
+
}
|
|
2597
2627
|
try {
|
|
2598
2628
|
if (!announcedAdapters.has(adapter.metadata.id)) {
|
|
2599
2629
|
announcedAdapters.add(adapter.metadata.id);
|
|
2600
2630
|
this.emit("connecting", { adapterId: adapter.metadata.id, recovering: true });
|
|
2601
2631
|
}
|
|
2602
|
-
const
|
|
2632
|
+
const recovery = await this.withTimeout((_a2 = adapter.recoverSession) == null ? void 0 : _a2.call(adapter, { network, walletId: adapter.metadata.id }), remaining);
|
|
2633
|
+
if (recovery.timedOut) {
|
|
2634
|
+
timedOut = true;
|
|
2635
|
+
this.logger.warn(`Session recovery timed out for ${adapter.metadata.id}`);
|
|
2636
|
+
break;
|
|
2637
|
+
}
|
|
2638
|
+
const recovered = recovery.value;
|
|
2603
2639
|
if (!(recovered == null ? void 0 : recovered.session))
|
|
2604
2640
|
continue;
|
|
2605
2641
|
const enrichedSession = await this.enrichSession(this.withWalletMetadata(recovered.session, adapter));
|
|
@@ -2613,14 +2649,20 @@ var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot
|
|
|
2613
2649
|
this.logger.warn(`Session recovery failed for ${adapter.metadata.id}`, error);
|
|
2614
2650
|
}
|
|
2615
2651
|
}
|
|
2652
|
+
if (timedOut)
|
|
2653
|
+
break;
|
|
2616
2654
|
}
|
|
2617
2655
|
recoverableAdapters.forEach((adapter) => {
|
|
2618
2656
|
var _a3;
|
|
2619
|
-
this.emit("session_stale", { adapterId: adapter.metadata.id, reason: "recover_unavailable", attempts: recoveryRetryDelaysMs.length });
|
|
2657
|
+
this.emit("session_stale", { adapterId: adapter.metadata.id, reason: timedOut ? "recover_timeout" : "recover_unavailable", attempts: recoveryRetryDelaysMs.length });
|
|
2620
2658
|
void ((_a3 = adapter.cancelPendingConnection) == null ? void 0 : _a3.call(adapter));
|
|
2621
2659
|
});
|
|
2622
2660
|
return null;
|
|
2623
2661
|
}
|
|
2662
|
+
async clearStoredSessionAsStale(session, reason) {
|
|
2663
|
+
await this.storage.removeItem(SESSION_KEY);
|
|
2664
|
+
this.emit("session_stale", { adapterId: session.adapterId, account: session.account, session, reason });
|
|
2665
|
+
}
|
|
2624
2666
|
delay(ms2) {
|
|
2625
2667
|
return new Promise((resolve) => setTimeout(resolve, ms2));
|
|
2626
2668
|
}
|
|
@@ -4402,7 +4444,7 @@ var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot
|
|
|
4402
4444
|
async connect(options) {
|
|
4403
4445
|
var _a2;
|
|
4404
4446
|
const signInAndWait = this.requireMethod("signInAndWait");
|
|
4405
|
-
const result = await signInAndWait(this.randomHex());
|
|
4447
|
+
const result = await this.withAbort(signInAndWait(this.randomHex()), options.signal);
|
|
4406
4448
|
const address = this.pickString(result, ["response.data.address", "response.address", "address"]);
|
|
4407
4449
|
if (!address)
|
|
4408
4450
|
throw new Error("Crossmark did not return an XRPL address");
|
|
@@ -4511,6 +4553,37 @@ var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot
|
|
|
4511
4553
|
const value = pickPath(source, paths);
|
|
4512
4554
|
return typeof value === "string" && value.trim() ? value : void 0;
|
|
4513
4555
|
}
|
|
4556
|
+
withAbort(promise, signal) {
|
|
4557
|
+
if (!signal)
|
|
4558
|
+
return promise;
|
|
4559
|
+
if (signal.aborted)
|
|
4560
|
+
return Promise.reject(createWalletError.connectionRejected(this.metadata.name, new Error("Connection was cancelled")));
|
|
4561
|
+
return new Promise((resolve, reject) => {
|
|
4562
|
+
let settled = false;
|
|
4563
|
+
const cleanup = () => signal.removeEventListener("abort", abort);
|
|
4564
|
+
const abort = () => {
|
|
4565
|
+
if (settled)
|
|
4566
|
+
return;
|
|
4567
|
+
settled = true;
|
|
4568
|
+
cleanup();
|
|
4569
|
+
reject(createWalletError.connectionRejected(this.metadata.name, new Error("Connection was cancelled")));
|
|
4570
|
+
};
|
|
4571
|
+
signal.addEventListener("abort", abort, { once: true });
|
|
4572
|
+
promise.then((value) => {
|
|
4573
|
+
if (settled)
|
|
4574
|
+
return;
|
|
4575
|
+
settled = true;
|
|
4576
|
+
cleanup();
|
|
4577
|
+
resolve(value);
|
|
4578
|
+
}, (error) => {
|
|
4579
|
+
if (settled)
|
|
4580
|
+
return;
|
|
4581
|
+
settled = true;
|
|
4582
|
+
cleanup();
|
|
4583
|
+
reject(error);
|
|
4584
|
+
});
|
|
4585
|
+
});
|
|
4586
|
+
}
|
|
4514
4587
|
}
|
|
4515
4588
|
function createCrossmarkAdapter(options) {
|
|
4516
4589
|
return new CrossmarkAdapter(options);
|
|
@@ -4537,14 +4610,14 @@ var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot
|
|
|
4537
4610
|
async connect(options) {
|
|
4538
4611
|
var _a2;
|
|
4539
4612
|
const provider = this.provider();
|
|
4540
|
-
const state2 = await this.initialize(provider);
|
|
4541
|
-
const connected = await this.resolveConnected(provider, state2);
|
|
4613
|
+
const state2 = await this.withAbort(this.initialize(provider), options.signal);
|
|
4614
|
+
const connected = await this.withAbort(this.resolveConnected(provider, state2), options.signal);
|
|
4542
4615
|
if (!connected)
|
|
4543
4616
|
throw new Error("DropFi connection was rejected");
|
|
4544
|
-
const address = await this.resolveAddress(provider, connected, state2);
|
|
4617
|
+
const address = await this.withAbort(this.resolveAddress(provider, connected, state2), options.signal);
|
|
4545
4618
|
if (!address)
|
|
4546
4619
|
throw new Error("DropFi did not return an XRPL address");
|
|
4547
|
-
const publicKey = await this.resolvePublicKey(provider, connected, state2);
|
|
4620
|
+
const publicKey = await this.withAbort(this.resolvePublicKey(provider, connected, state2), options.signal);
|
|
4548
4621
|
this.activeAddress = address;
|
|
4549
4622
|
return { account: { address, publicKey, network: options.network, networkType: (_a2 = options.network) == null ? void 0 : _a2.networkType }, raw: { connected, address, publicKey } };
|
|
4550
4623
|
}
|
|
@@ -4639,6 +4712,37 @@ var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot
|
|
|
4639
4712
|
clearTimeout(timer);
|
|
4640
4713
|
}
|
|
4641
4714
|
}
|
|
4715
|
+
withAbort(promise, signal) {
|
|
4716
|
+
if (!signal)
|
|
4717
|
+
return promise;
|
|
4718
|
+
if (signal.aborted)
|
|
4719
|
+
return Promise.reject(createWalletError.connectionRejected(this.metadata.name, new Error("Connection was cancelled")));
|
|
4720
|
+
return new Promise((resolve, reject) => {
|
|
4721
|
+
let settled = false;
|
|
4722
|
+
const cleanup = () => signal.removeEventListener("abort", abort);
|
|
4723
|
+
const abort = () => {
|
|
4724
|
+
if (settled)
|
|
4725
|
+
return;
|
|
4726
|
+
settled = true;
|
|
4727
|
+
cleanup();
|
|
4728
|
+
reject(createWalletError.connectionRejected(this.metadata.name, new Error("Connection was cancelled")));
|
|
4729
|
+
};
|
|
4730
|
+
signal.addEventListener("abort", abort, { once: true });
|
|
4731
|
+
promise.then((value) => {
|
|
4732
|
+
if (settled)
|
|
4733
|
+
return;
|
|
4734
|
+
settled = true;
|
|
4735
|
+
cleanup();
|
|
4736
|
+
resolve(value);
|
|
4737
|
+
}, (error) => {
|
|
4738
|
+
if (settled)
|
|
4739
|
+
return;
|
|
4740
|
+
settled = true;
|
|
4741
|
+
cleanup();
|
|
4742
|
+
reject(error);
|
|
4743
|
+
});
|
|
4744
|
+
});
|
|
4745
|
+
}
|
|
4642
4746
|
provider(required = true) {
|
|
4643
4747
|
const host = globalThis;
|
|
4644
4748
|
const provider = this.options.provider ?? host.__xwk_dropfi ?? host.dropfi ?? this.resolveLegacyXrplProvider(host.xrpl);
|
|
@@ -8855,7 +8959,7 @@ var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot
|
|
|
8855
8959
|
throw new Error("Please install GemWallet Extension");
|
|
8856
8960
|
if (!provider.getAddress)
|
|
8857
8961
|
throw new Error("GemWallet provider is missing getAddress()");
|
|
8858
|
-
const [address, publicKey, network] = await Promise.all([provider.getAddress(), this.getPublicKey(provider), (_a2 = provider.getNetwork) == null ? void 0 : _a2.call(provider)]);
|
|
8962
|
+
const [address, publicKey, network] = await this.withAbort(Promise.all([provider.getAddress(), this.getPublicKey(provider), (_a2 = provider.getNetwork) == null ? void 0 : _a2.call(provider)]), options.signal);
|
|
8859
8963
|
const accountAddress = (_b = address.result) == null ? void 0 : _b.address;
|
|
8860
8964
|
if (!accountAddress)
|
|
8861
8965
|
throw new Error("GemWallet did not return an XRPL address");
|
|
@@ -9031,6 +9135,37 @@ var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot
|
|
|
9031
9135
|
networkName(network) {
|
|
9032
9136
|
return typeof network === "string" ? network : network == null ? void 0 : network.name;
|
|
9033
9137
|
}
|
|
9138
|
+
withAbort(promise, signal) {
|
|
9139
|
+
if (!signal)
|
|
9140
|
+
return promise;
|
|
9141
|
+
if (signal.aborted)
|
|
9142
|
+
return Promise.reject(createWalletError.connectionRejected(this.metadata.name, new Error("Connection was cancelled")));
|
|
9143
|
+
return new Promise((resolve, reject) => {
|
|
9144
|
+
let settled = false;
|
|
9145
|
+
const cleanup = () => signal.removeEventListener("abort", abort);
|
|
9146
|
+
const abort = () => {
|
|
9147
|
+
if (settled)
|
|
9148
|
+
return;
|
|
9149
|
+
settled = true;
|
|
9150
|
+
cleanup();
|
|
9151
|
+
reject(createWalletError.connectionRejected(this.metadata.name, new Error("Connection was cancelled")));
|
|
9152
|
+
};
|
|
9153
|
+
signal.addEventListener("abort", abort, { once: true });
|
|
9154
|
+
promise.then((value) => {
|
|
9155
|
+
if (settled)
|
|
9156
|
+
return;
|
|
9157
|
+
settled = true;
|
|
9158
|
+
cleanup();
|
|
9159
|
+
resolve(value);
|
|
9160
|
+
}, (error) => {
|
|
9161
|
+
if (settled)
|
|
9162
|
+
return;
|
|
9163
|
+
settled = true;
|
|
9164
|
+
cleanup();
|
|
9165
|
+
reject(error);
|
|
9166
|
+
});
|
|
9167
|
+
});
|
|
9168
|
+
}
|
|
9034
9169
|
}
|
|
9035
9170
|
function createGemWalletAdapter(options) {
|
|
9036
9171
|
return new GemWalletAdapter(options);
|
|
@@ -10546,9 +10681,10 @@ var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot
|
|
|
10546
10681
|
}
|
|
10547
10682
|
}
|
|
10548
10683
|
function createWalletConnectMetadata(metadata2) {
|
|
10684
|
+
var _a2;
|
|
10549
10685
|
return {
|
|
10550
10686
|
...metadata2,
|
|
10551
|
-
icons: [WALLETCONNECT_ICON]
|
|
10687
|
+
icons: ((_a2 = metadata2.icons) == null ? void 0 : _a2.length) ? metadata2.icons : [WALLETCONNECT_ICON]
|
|
10552
10688
|
};
|
|
10553
10689
|
}
|
|
10554
10690
|
function createWalletConnectAdapter(options) {
|
|
@@ -15525,6 +15661,7 @@ var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot
|
|
|
15525
15661
|
var distExports = requireDist$4();
|
|
15526
15662
|
const XAMAN_ICON = "data:image/png;base64,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";
|
|
15527
15663
|
const XAMAN_PENDING_RECOVERY_TTL_MS = 18e4;
|
|
15664
|
+
const XAMAN_RESTORE_READY_TIMEOUT_MS = 2500;
|
|
15528
15665
|
class XamanAdapter extends BaseWalletAdapter {
|
|
15529
15666
|
constructor(options) {
|
|
15530
15667
|
super();
|
|
@@ -15548,7 +15685,7 @@ var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot
|
|
|
15548
15685
|
async connect(options) {
|
|
15549
15686
|
await this.setPendingRecoveryMarker();
|
|
15550
15687
|
try {
|
|
15551
|
-
const result = await this.authorize();
|
|
15688
|
+
const result = await this.withAbort(this.authorize(), options.signal);
|
|
15552
15689
|
if (result instanceof Error)
|
|
15553
15690
|
throw result;
|
|
15554
15691
|
const connectResult = await this.createConnectResultFromAuth(result, options);
|
|
@@ -15578,7 +15715,7 @@ var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot
|
|
|
15578
15715
|
if (!await this.hasPendingRecoveryMarker())
|
|
15579
15716
|
return null;
|
|
15580
15717
|
try {
|
|
15581
|
-
const result = await this.authorize();
|
|
15718
|
+
const result = await this.withAbort(this.authorize(), options.signal);
|
|
15582
15719
|
if (!result || result instanceof Error) {
|
|
15583
15720
|
this.clearPendingRecoveryMarker();
|
|
15584
15721
|
return null;
|
|
@@ -15642,19 +15779,24 @@ var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot
|
|
|
15642
15779
|
});
|
|
15643
15780
|
}
|
|
15644
15781
|
async checkXamanState(options = {}) {
|
|
15645
|
-
var _a2, _b, _c, _d
|
|
15646
|
-
if (!
|
|
15782
|
+
var _a2, _b, _c, _d;
|
|
15783
|
+
if (!this.sdk)
|
|
15647
15784
|
return null;
|
|
15648
|
-
|
|
15785
|
+
await this.waitForSdkReady(this.sdk);
|
|
15786
|
+
const openid = await this.resolveSdkValue((_a2 = this.sdk.environment) == null ? void 0 : _a2.openid);
|
|
15787
|
+
const accountAddress = await this.resolveSdkValue((_b = this.sdk.user) == null ? void 0 : _b.account) ?? ((_c = this.sdk.state) == null ? void 0 : _c.account) ?? (openid == null ? void 0 : openid.account) ?? (openid == null ? void 0 : openid.sub);
|
|
15649
15788
|
if (!accountAddress)
|
|
15650
15789
|
return null;
|
|
15651
15790
|
return {
|
|
15652
15791
|
account: {
|
|
15653
15792
|
address: accountAddress,
|
|
15654
15793
|
network: options.network,
|
|
15655
|
-
networkType: await this.resolveSdkValue((
|
|
15794
|
+
networkType: await this.resolveSdkValue((_d = this.sdk.user) == null ? void 0 : _d.networkType) ?? (openid == null ? void 0 : openid.networkType)
|
|
15656
15795
|
},
|
|
15657
|
-
raw:
|
|
15796
|
+
raw: {
|
|
15797
|
+
state: this.sdk.state,
|
|
15798
|
+
openid
|
|
15799
|
+
}
|
|
15658
15800
|
};
|
|
15659
15801
|
}
|
|
15660
15802
|
requireSdk() {
|
|
@@ -15730,6 +15872,20 @@ var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot
|
|
|
15730
15872
|
async resolveSdkValue(value) {
|
|
15731
15873
|
return value instanceof Promise ? value : value;
|
|
15732
15874
|
}
|
|
15875
|
+
async waitForSdkReady(sdk) {
|
|
15876
|
+
var _a2, _b, _c;
|
|
15877
|
+
const readySignals = [
|
|
15878
|
+
(_a2 = sdk.environment) == null ? void 0 : _a2.ready,
|
|
15879
|
+
(_b = sdk.environment) == null ? void 0 : _b.retrieved,
|
|
15880
|
+
(_c = sdk.environment) == null ? void 0 : _c.success
|
|
15881
|
+
].filter((signal) => Boolean(signal));
|
|
15882
|
+
if (!readySignals.length)
|
|
15883
|
+
return;
|
|
15884
|
+
await Promise.race([
|
|
15885
|
+
Promise.race(readySignals).then(() => void 0),
|
|
15886
|
+
new Promise((resolve) => setTimeout(resolve, XAMAN_RESTORE_READY_TIMEOUT_MS))
|
|
15887
|
+
]);
|
|
15888
|
+
}
|
|
15733
15889
|
clearPkceStorage() {
|
|
15734
15890
|
var _a2;
|
|
15735
15891
|
if (typeof window === "undefined")
|
|
@@ -15739,6 +15895,37 @@ var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot
|
|
|
15739
15895
|
} catch {
|
|
15740
15896
|
}
|
|
15741
15897
|
}
|
|
15898
|
+
withAbort(promise, signal) {
|
|
15899
|
+
if (!signal)
|
|
15900
|
+
return promise;
|
|
15901
|
+
if (signal.aborted)
|
|
15902
|
+
return Promise.reject(createWalletError.connectionRejected(this.metadata.name, new Error("Connection was cancelled")));
|
|
15903
|
+
return new Promise((resolve, reject) => {
|
|
15904
|
+
let settled = false;
|
|
15905
|
+
const cleanup = () => signal.removeEventListener("abort", abort);
|
|
15906
|
+
const abort = () => {
|
|
15907
|
+
if (settled)
|
|
15908
|
+
return;
|
|
15909
|
+
settled = true;
|
|
15910
|
+
cleanup();
|
|
15911
|
+
reject(createWalletError.connectionRejected(this.metadata.name, new Error("Connection was cancelled")));
|
|
15912
|
+
};
|
|
15913
|
+
signal.addEventListener("abort", abort, { once: true });
|
|
15914
|
+
promise.then((value) => {
|
|
15915
|
+
if (settled)
|
|
15916
|
+
return;
|
|
15917
|
+
settled = true;
|
|
15918
|
+
cleanup();
|
|
15919
|
+
resolve(value);
|
|
15920
|
+
}, (error) => {
|
|
15921
|
+
if (settled)
|
|
15922
|
+
return;
|
|
15923
|
+
settled = true;
|
|
15924
|
+
cleanup();
|
|
15925
|
+
reject(error);
|
|
15926
|
+
});
|
|
15927
|
+
});
|
|
15928
|
+
}
|
|
15742
15929
|
getPendingRecoveryKey() {
|
|
15743
15930
|
return `xwk.xaman.pending.${this.options.apiKey ?? "injected"}`;
|
|
15744
15931
|
}
|
|
@@ -15795,8 +15982,8 @@ var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot
|
|
|
15795
15982
|
async connect(options) {
|
|
15796
15983
|
var _a2;
|
|
15797
15984
|
const ethereum = this.ethereum();
|
|
15798
|
-
await ethereum.request({ method: "wallet_requestSnaps", params: { [this.snapId]: {} } });
|
|
15799
|
-
const snap = await ethereum.request({ method: "wallet_invokeSnap", params: { snapId: this.snapId, request: { method: "xrpl_getAccount" } } });
|
|
15985
|
+
await this.withAbort(ethereum.request({ method: "wallet_requestSnaps", params: { [this.snapId]: {} } }), options.signal);
|
|
15986
|
+
const snap = await this.withAbort(ethereum.request({ method: "wallet_invokeSnap", params: { snapId: this.snapId, request: { method: "xrpl_getAccount" } } }), options.signal);
|
|
15800
15987
|
const address = snap.account;
|
|
15801
15988
|
if (!address)
|
|
15802
15989
|
throw new Error("XRPL Snap did not return an XRPL address");
|
|
@@ -15938,6 +16125,37 @@ var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot
|
|
|
15938
16125
|
throw new Error("No MetaMask provider installed");
|
|
15939
16126
|
return ethereum;
|
|
15940
16127
|
}
|
|
16128
|
+
withAbort(promise, signal) {
|
|
16129
|
+
if (!signal)
|
|
16130
|
+
return promise;
|
|
16131
|
+
if (signal.aborted)
|
|
16132
|
+
return Promise.reject(createWalletError.connectionRejected(this.metadata.name, new Error("Connection was cancelled")));
|
|
16133
|
+
return new Promise((resolve, reject) => {
|
|
16134
|
+
let settled = false;
|
|
16135
|
+
const cleanup = () => signal.removeEventListener("abort", abort);
|
|
16136
|
+
const abort = () => {
|
|
16137
|
+
if (settled)
|
|
16138
|
+
return;
|
|
16139
|
+
settled = true;
|
|
16140
|
+
cleanup();
|
|
16141
|
+
reject(createWalletError.connectionRejected(this.metadata.name, new Error("Connection was cancelled")));
|
|
16142
|
+
};
|
|
16143
|
+
signal.addEventListener("abort", abort, { once: true });
|
|
16144
|
+
promise.then((value) => {
|
|
16145
|
+
if (settled)
|
|
16146
|
+
return;
|
|
16147
|
+
settled = true;
|
|
16148
|
+
cleanup();
|
|
16149
|
+
resolve(value);
|
|
16150
|
+
}, (error) => {
|
|
16151
|
+
if (settled)
|
|
16152
|
+
return;
|
|
16153
|
+
settled = true;
|
|
16154
|
+
cleanup();
|
|
16155
|
+
reject(error);
|
|
16156
|
+
});
|
|
16157
|
+
});
|
|
16158
|
+
}
|
|
15941
16159
|
}
|
|
15942
16160
|
function createXrplSnapAdapter(options) {
|
|
15943
16161
|
return new XrplSnapAdapter(options);
|
|
@@ -15951,11 +16169,11 @@ var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot
|
|
|
15951
16169
|
error: "#b45309",
|
|
15952
16170
|
success: "#059669",
|
|
15953
16171
|
muted: "#64748b",
|
|
15954
|
-
border: "
|
|
16172
|
+
border: "rgba(17,24,39,.08)",
|
|
15955
16173
|
overlay: "rgba(15,23,42,.46)",
|
|
15956
16174
|
overlayBlur: 0,
|
|
15957
16175
|
surface: "#f8fafc",
|
|
15958
|
-
surfaceHover: "
|
|
16176
|
+
surfaceHover: "rgba(17,24,39,.04)",
|
|
15959
16177
|
fallbackIconBackground: "rgba(15,23,42,.06)",
|
|
15960
16178
|
fallbackIconColor: "#111827",
|
|
15961
16179
|
shadow: "0 8px 40px rgba(15,23,42,.12), 0 0 0 1px rgba(15,23,42,.04)",
|
|
@@ -15973,7 +16191,7 @@ var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot
|
|
|
15973
16191
|
error: "#fbbf24",
|
|
15974
16192
|
success: "#34d399",
|
|
15975
16193
|
muted: "#94a3b8",
|
|
15976
|
-
border: "
|
|
16194
|
+
border: "rgba(248,250,252,.10)",
|
|
15977
16195
|
overlay: "rgba(2,6,23,.72)",
|
|
15978
16196
|
overlayBlur: 0,
|
|
15979
16197
|
surface: "#1f2937",
|
|
@@ -16036,12 +16254,12 @@ var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot
|
|
|
16036
16254
|
muted: "#64748b",
|
|
16037
16255
|
border: "rgba(255,255,255,.50)",
|
|
16038
16256
|
overlay: "rgba(15,23,42,.30)",
|
|
16039
|
-
overlayBlur:
|
|
16257
|
+
overlayBlur: 24,
|
|
16040
16258
|
surface: "rgba(255,255,255,.52)",
|
|
16041
16259
|
surfaceHover: "rgba(255,255,255,.66)",
|
|
16042
16260
|
fallbackIconBackground: "rgba(99,102,241,.15)",
|
|
16043
16261
|
fallbackIconColor: "#6366f1",
|
|
16044
|
-
shadow: "0
|
|
16262
|
+
shadow: "0 0 0 1px rgba(255,255,255,.08), 0 12px 40px rgba(15,23,42,.24)",
|
|
16045
16263
|
radius: "20px",
|
|
16046
16264
|
walletRadius: "14px",
|
|
16047
16265
|
spinnerTrail: "rgba(99,102,241,.15)",
|
|
@@ -16268,15 +16486,18 @@ var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot
|
|
|
16268
16486
|
const accountPanel = ui.accountPanel ?? {};
|
|
16269
16487
|
const identity2 = ui.identity ?? {};
|
|
16270
16488
|
const { accountPanelMode: overrideAccountPanelMode, ...restOverrides } = overrides;
|
|
16489
|
+
const themeMode = ui.mode ?? ui.themeMode ?? overrides.themeMode ?? "light";
|
|
16271
16490
|
const theme = {
|
|
16272
|
-
...resolveWalletTheme({ mode:
|
|
16491
|
+
...resolveWalletTheme({ mode: themeMode, themeName: ui.themeName }),
|
|
16492
|
+
...ui.theme ?? {},
|
|
16273
16493
|
...ui.customTheme ?? {},
|
|
16274
16494
|
...overrides.theme ?? {}
|
|
16275
16495
|
};
|
|
16276
|
-
return createDefaultWalletButtonConfig({
|
|
16496
|
+
return createDefaultWalletButtonConfig(compactWalletButtonConfig({
|
|
16277
16497
|
language: ui.language,
|
|
16278
16498
|
messages: resolveWalletUiMessages(ui.language, ui.messages),
|
|
16279
16499
|
label: connectButton.label,
|
|
16500
|
+
icon: connectButton.icon,
|
|
16280
16501
|
showAdapterIcon: connectButton.showAdapterIcon,
|
|
16281
16502
|
showChevron: connectButton.showChevron,
|
|
16282
16503
|
showBalance: connectButton.showBalance,
|
|
@@ -16291,18 +16512,19 @@ var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot
|
|
|
16291
16512
|
showWeb3Name: identity2.enabled ?? true,
|
|
16292
16513
|
fallbackToAddress: identity2.fallbackToAddress,
|
|
16293
16514
|
identityResolver: identity2.resolver,
|
|
16294
|
-
themeMode
|
|
16515
|
+
themeMode,
|
|
16295
16516
|
themeName: ui.themeName,
|
|
16296
16517
|
...restOverrides,
|
|
16297
16518
|
accountPanelMode: overrideAccountPanelMode ?? accountPanel.mode ?? "modal",
|
|
16298
16519
|
theme
|
|
16299
|
-
});
|
|
16520
|
+
}));
|
|
16300
16521
|
}
|
|
16301
16522
|
function createDefaultWalletButtonConfig(overrides = {}) {
|
|
16302
16523
|
const { theme, ...rest } = overrides;
|
|
16303
16524
|
const messages = resolveWalletUiMessages(overrides.language, overrides.messages);
|
|
16304
|
-
return {
|
|
16525
|
+
return compactWalletButtonConfig({
|
|
16305
16526
|
showWeb3Name: true,
|
|
16527
|
+
icon: { type: "default" },
|
|
16306
16528
|
showAdapterIcon: true,
|
|
16307
16529
|
showChevron: true,
|
|
16308
16530
|
showBalance: false,
|
|
@@ -16324,7 +16546,10 @@ var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot
|
|
|
16324
16546
|
...resolveWalletTheme({ mode: rest.themeMode ?? "light", themeName: rest.themeName }),
|
|
16325
16547
|
...theme ?? {}
|
|
16326
16548
|
}
|
|
16327
|
-
};
|
|
16549
|
+
});
|
|
16550
|
+
}
|
|
16551
|
+
function compactWalletButtonConfig(config) {
|
|
16552
|
+
return Object.fromEntries(Object.entries(config).filter(([, value]) => value !== void 0));
|
|
16328
16553
|
}
|
|
16329
16554
|
var qrCodeStyling$1 = { exports: {} };
|
|
16330
16555
|
var qrCodeStyling = qrCodeStyling$1.exports;
|
|
@@ -19620,13 +19845,6 @@ ${new this._window.XMLSerializer().serializeToString(e4)}`;
|
|
|
19620
19845
|
window.scrollTo(0, savedScrollY);
|
|
19621
19846
|
savedScrollY = 0;
|
|
19622
19847
|
}
|
|
19623
|
-
function getWalletStyleId(prefix, styles2) {
|
|
19624
|
-
let hash2 = 5381;
|
|
19625
|
-
for (let index2 = 0; index2 < styles2.length; index2 += 1) {
|
|
19626
|
-
hash2 = (hash2 << 5) + hash2 ^ styles2.charCodeAt(index2);
|
|
19627
|
-
}
|
|
19628
|
-
return `${prefix}-${(hash2 >>> 0).toString(36)}`;
|
|
19629
|
-
}
|
|
19630
19848
|
function ensureWalletStyle(id2, styles2) {
|
|
19631
19849
|
if (typeof document === "undefined")
|
|
19632
19850
|
return;
|
|
@@ -19636,6 +19854,8 @@ ${new this._window.XMLSerializer().serializeToString(e4)}`;
|
|
|
19636
19854
|
element = document.createElement("style");
|
|
19637
19855
|
element.dataset.xwkStyle = id2;
|
|
19638
19856
|
document.head.appendChild(element);
|
|
19857
|
+
} else if (element.nextSibling) {
|
|
19858
|
+
document.head.appendChild(element);
|
|
19639
19859
|
}
|
|
19640
19860
|
if (element.textContent !== styles2)
|
|
19641
19861
|
element.textContent = styles2;
|
|
@@ -19654,6 +19874,7 @@ ${new this._window.XMLSerializer().serializeToString(e4)}`;
|
|
|
19654
19874
|
this.qrCopied = false;
|
|
19655
19875
|
this.qrLightMode = false;
|
|
19656
19876
|
this.availability = {};
|
|
19877
|
+
this.availabilityLoading = false;
|
|
19657
19878
|
this.offEvents = [];
|
|
19658
19879
|
this.openHandlers = /* @__PURE__ */ new Set();
|
|
19659
19880
|
this.closeHandlers = /* @__PURE__ */ new Set();
|
|
@@ -19672,6 +19893,7 @@ ${new this._window.XMLSerializer().serializeToString(e4)}`;
|
|
|
19672
19893
|
}
|
|
19673
19894
|
open() {
|
|
19674
19895
|
this.activeGroupId = void 0;
|
|
19896
|
+
this.availabilityLoading = true;
|
|
19675
19897
|
this.lastFocusedElement = document.activeElement instanceof HTMLElement ? document.activeElement : null;
|
|
19676
19898
|
this.renderView("list");
|
|
19677
19899
|
this.openHandlers.forEach((handler) => handler());
|
|
@@ -20073,7 +20295,11 @@ ${new this._window.XMLSerializer().serializeToString(e4)}`;
|
|
|
20073
20295
|
}
|
|
20074
20296
|
async refreshAvailability() {
|
|
20075
20297
|
var _a2;
|
|
20076
|
-
|
|
20298
|
+
try {
|
|
20299
|
+
this.availability = await this.options.manager.getWalletAvailability();
|
|
20300
|
+
} finally {
|
|
20301
|
+
this.availabilityLoading = false;
|
|
20302
|
+
}
|
|
20077
20303
|
if (((_a2 = this.root) == null ? void 0 : _a2.dataset.xwkView) !== "list")
|
|
20078
20304
|
return;
|
|
20079
20305
|
const grid = this.root.querySelector(".xwk-grid");
|
|
@@ -20403,7 +20629,7 @@ ${new this._window.XMLSerializer().serializeToString(e4)}`;
|
|
|
20403
20629
|
this.bindChrome();
|
|
20404
20630
|
}
|
|
20405
20631
|
renderQrLoading() {
|
|
20406
|
-
return `<span class="xwk-qr-loading" role="status" aria-live="polite"><span class="xwk-qr-
|
|
20632
|
+
return `<span class="xwk-qr-loading xwk-qr-loading-skeleton" role="status" aria-live="polite"><span class="xwk-skeleton-qr xwk-qr-skeleton" aria-hidden="true"></span><span class="xwk-sr-only">${this.escapeHtml(this.messages().generatingQr)}</span></span>`;
|
|
20407
20633
|
}
|
|
20408
20634
|
renderQrCopyButtonContent() {
|
|
20409
20635
|
const messages = this.messages();
|
|
@@ -20479,11 +20705,12 @@ ${new this._window.XMLSerializer().serializeToString(e4)}`;
|
|
|
20479
20705
|
}
|
|
20480
20706
|
ensureStyles(theme, layout, size2, textSize) {
|
|
20481
20707
|
const styles2 = `${this.renderStyles(theme, layout, size2, textSize)}${this.renderMobileSheetOverrides(theme)}`;
|
|
20482
|
-
ensureWalletStyle(
|
|
20708
|
+
ensureWalletStyle("xwk-modal", styles2);
|
|
20483
20709
|
}
|
|
20484
20710
|
renderMobileSheetOverrides(theme) {
|
|
20485
20711
|
const inlineOverrides = `.xwk-inline{background:transparent!important;display:block!important;inset:auto!important;opacity:1!important;overflow:visible!important;padding:0!important;place-items:initial!important;position:relative!important;z-index:auto!important}.xwk-inline .xwk-modal{border:1px solid ${theme.border}!important;border-radius:${theme.radius}!important;box-shadow:none!important;max-height:none!important;max-width:none!important;opacity:1!important;transform:none!important;transition:none!important;width:100%!important}.xwk-inline .xwk-body{max-height:none!important}.xwk-inline .xwk-header-spacer{display:block;height:44px;width:44px}.xwk-inline[data-xwk-state="closing"] .xwk-modal{opacity:1!important;transform:none!important}`;
|
|
20486
|
-
|
|
20712
|
+
const skeletonOverrides = `.xwk-skeleton{animation:xwk-qr-skeleton-pulse 1.4s ease-in-out infinite;background:linear-gradient(90deg,${theme.surface} 25%,${theme.surfaceHover} 50%,${theme.surface} 75%);background-size:200% 100%;display:inline-block}.xwk-skeleton-circle{border-radius:999px}.xwk-skeleton-line{height:14px;border-radius:4px}.xwk-skeleton-pill{border-radius:999px}.xwk-skeleton-card,.xwk-skeleton-button{border-radius:${theme.walletRadius}}.xwk-skeleton-row{align-items:center;display:flex;gap:12px;width:100%}.xwk-qr-loading-skeleton{display:grid;height:100%;place-items:stretch;width:100%}.xwk-qr-skeleton{border-radius:10px;box-sizing:border-box;display:block;height:100%;overflow:hidden;position:relative;width:100%}.xwk-qr-skeleton:before{background-image:radial-gradient(circle,${theme.muted} 0 2px,transparent 2.8px);background-size:14px 14px;content:"";inset:0;opacity:.22;position:absolute}.xwk-qr-skeleton:after{animation:xwk-qr-shimmer 1.35s ease-in-out infinite;background:linear-gradient(90deg,transparent 0%,${theme.surfaceHover} 42%,rgba(255,255,255,.34) 50%,${theme.surfaceHover} 58%,transparent 100%);content:"";inset:0;opacity:.52;position:absolute;transform:translateX(-115%);will-change:transform}.xwk-wallet-badge-loading{color:transparent;min-width:72px;visibility:visible}.xwk-wallet-badge-loading:before{display:none}@keyframes xwk-qr-skeleton-pulse{0%{background-position:200% 0}100%{background-position:-200% 0}}@keyframes xwk-qr-shimmer{0%{transform:translateX(-115%)}100%{transform:translateX(115%)}}@media(prefers-reduced-motion:reduce){.xwk-skeleton,.xwk-qr-skeleton,.xwk-qr-skeleton:after{animation:none!important}.xwk-skeleton,.xwk-qr-skeleton{background:${theme.surfaceHover}!important}.xwk-qr-skeleton:after{display:none!important}}`;
|
|
20713
|
+
return `${skeletonOverrides}.xwk-modal:focus{outline:none}.xwk-sr-only{border:0!important;clip:rect(0 0 0 0)!important;height:1px!important;margin:-1px!important;overflow:hidden!important;padding:0!important;position:absolute!important;white-space:nowrap!important;width:1px!important}.xwk-error-text,.xwk-connect-status.xwk-error-text,.xwk-qr-loading.xwk-error-text{color:${theme.error}!important}.xwk-close,.xwk-back{-webkit-appearance:none;-webkit-tap-highlight-color:transparent;appearance:none;background:transparent!important;border:0!important;box-shadow:none!important;margin:0;outline:none!important}.xwk-close:focus-visible,.xwk-back:focus-visible{outline:2px solid ${theme.accent}!important;outline-offset:0}@media(max-width:640px){.xwk-overlay{padding:max(12px,env(safe-area-inset-top)) 0 0!important;place-items:end center!important}.xwk-modal{align-self:end!important;border-bottom:0!important;border-bottom-left-radius:0!important;border-bottom-right-radius:0!important;border-left:0!important;border-right:0!important;border-top-left-radius:${theme.radius}!important;border-top-right-radius:${theme.radius}!important;height:auto!important;max-height:calc(100dvh - env(safe-area-inset-top))!important;max-width:none!important;width:100vw!important}.xwk-header{border-top-left-radius:${theme.radius};border-top-right-radius:${theme.radius}}.xwk-body{padding-bottom:max(6px,calc(6px + env(safe-area-inset-bottom)))!important}.xwk-overlay[data-xwk-view="list"] .xwk-body{padding-bottom:max(2px,calc(2px + env(safe-area-inset-bottom)))!important}.xwk-network-row{margin:-4px 0 8px!important}.xwk-overlay[data-xwk-view="list"] .xwk-footer{padding-top:6px!important}}${inlineOverrides}`;
|
|
20487
20714
|
}
|
|
20488
20715
|
renderWalletList(layout) {
|
|
20489
20716
|
const groups = this.getGroups();
|
|
@@ -20521,8 +20748,12 @@ ${new this._window.XMLSerializer().serializeToString(e4)}`;
|
|
|
20521
20748
|
if (wallet.recommended)
|
|
20522
20749
|
badges.push(`<span class="xwk-wallet-badge xwk-recommended">${this.escapeHtml(messages.recommended || "Recommended")}</span>`);
|
|
20523
20750
|
if (isExtensionLike) {
|
|
20524
|
-
|
|
20525
|
-
|
|
20751
|
+
if (this.availabilityLoading) {
|
|
20752
|
+
badges.push(`<span class="xwk-wallet-badge xwk-wallet-badge-loading xwk-skeleton xwk-skeleton-pill" aria-hidden="true"></span>`);
|
|
20753
|
+
} else {
|
|
20754
|
+
const className = this.availability[wallet.id] ? "xwk-wallet-badge xwk-installed" : "xwk-wallet-badge";
|
|
20755
|
+
badges.push(`<span class="${className}">${this.escapeHtml(messages.installed || "Installed")}</span>`);
|
|
20756
|
+
}
|
|
20526
20757
|
}
|
|
20527
20758
|
if (!badges.length)
|
|
20528
20759
|
return "";
|
|
@@ -20821,10 +21052,11 @@ ${new this._window.XMLSerializer().serializeToString(e4)}`;
|
|
|
20821
21052
|
this.balanceLoading = false;
|
|
20822
21053
|
this.activationStatus = "unknown";
|
|
20823
21054
|
this.balanceRequest = 0;
|
|
21055
|
+
this.balanceDebounceSession = null;
|
|
20824
21056
|
this.balanceRefreshTimers = /* @__PURE__ */ new Set();
|
|
20825
21057
|
this.panelOpen = false;
|
|
20826
21058
|
this.addressQrOpen = false;
|
|
20827
|
-
this.
|
|
21059
|
+
this.historyOpen = false;
|
|
20828
21060
|
this.panelScrollLocked = false;
|
|
20829
21061
|
this.connecting = false;
|
|
20830
21062
|
this.copied = false;
|
|
@@ -20839,6 +21071,7 @@ ${new this._window.XMLSerializer().serializeToString(e4)}`;
|
|
|
20839
21071
|
language: options.language,
|
|
20840
21072
|
messages,
|
|
20841
21073
|
label: messages.connectWallet,
|
|
21074
|
+
icon: { type: "default" },
|
|
20842
21075
|
showAdapterIcon: true,
|
|
20843
21076
|
showChevron: true,
|
|
20844
21077
|
showWeb3Name: true,
|
|
@@ -20860,7 +21093,7 @@ ${new this._window.XMLSerializer().serializeToString(e4)}`;
|
|
|
20860
21093
|
balanceResolver: options.balanceResolver ?? createXrpBalanceResolver(),
|
|
20861
21094
|
explorerUrl: options.explorerUrl,
|
|
20862
21095
|
formatAddress: options.formatAddress,
|
|
20863
|
-
...options
|
|
21096
|
+
...compactButtonOptions(options)
|
|
20864
21097
|
};
|
|
20865
21098
|
this.offEvents.push(options.manager.on("connecting", () => {
|
|
20866
21099
|
this.connecting = true;
|
|
@@ -20870,6 +21103,7 @@ ${new this._window.XMLSerializer().serializeToString(e4)}`;
|
|
|
20870
21103
|
this.connecting = false;
|
|
20871
21104
|
this.panelOpen = false;
|
|
20872
21105
|
this.addressQrOpen = false;
|
|
21106
|
+
this.historyOpen = false;
|
|
20873
21107
|
this.renderConnectedState(session ?? options.manager.getSession());
|
|
20874
21108
|
void this.resolveBalance(session ?? options.manager.getSession());
|
|
20875
21109
|
}));
|
|
@@ -20890,12 +21124,14 @@ ${new this._window.XMLSerializer().serializeToString(e4)}`;
|
|
|
20890
21124
|
this.connecting = false;
|
|
20891
21125
|
this.panelOpen = false;
|
|
20892
21126
|
this.addressQrOpen = false;
|
|
21127
|
+
this.historyOpen = false;
|
|
20893
21128
|
this.identityName = null;
|
|
20894
21129
|
this.identityAvatar = null;
|
|
20895
21130
|
this.identityRequest += 1;
|
|
20896
21131
|
this.identityResolvingKey = void 0;
|
|
20897
21132
|
this.clearIdentitySettleTimer();
|
|
20898
21133
|
this.clearBalanceRefreshTimers();
|
|
21134
|
+
this.clearBalanceDebounce();
|
|
20899
21135
|
this.balanceRequest += 1;
|
|
20900
21136
|
this.balance = null;
|
|
20901
21137
|
this.balanceLoading = false;
|
|
@@ -20908,7 +21144,7 @@ ${new this._window.XMLSerializer().serializeToString(e4)}`;
|
|
|
20908
21144
|
}));
|
|
20909
21145
|
this.offEvents.push(options.manager.on("tx_confirmed", () => {
|
|
20910
21146
|
this.clearBalanceRefreshTimers();
|
|
20911
|
-
|
|
21147
|
+
this.queueBalanceRefresh(options.manager.getSession());
|
|
20912
21148
|
this.render();
|
|
20913
21149
|
}));
|
|
20914
21150
|
this.offEvents.push(options.manager.on("tx_failed", () => {
|
|
@@ -20918,13 +21154,13 @@ ${new this._window.XMLSerializer().serializeToString(e4)}`;
|
|
|
20918
21154
|
this.clearBalanceRefreshTimers();
|
|
20919
21155
|
const session = options.manager.getSession();
|
|
20920
21156
|
this.renderConnectedState(session);
|
|
20921
|
-
|
|
21157
|
+
this.queueBalanceRefresh(session);
|
|
20922
21158
|
}));
|
|
20923
21159
|
this.offEvents.push(options.manager.on("networkChanged", () => {
|
|
20924
21160
|
this.clearBalanceRefreshTimers();
|
|
20925
21161
|
const session = options.manager.getSession();
|
|
20926
21162
|
this.renderConnectedState(session);
|
|
20927
|
-
|
|
21163
|
+
this.queueBalanceRefresh(session);
|
|
20928
21164
|
}));
|
|
20929
21165
|
this.offEvents.push(options.manager.on("error", () => {
|
|
20930
21166
|
this.connecting = false;
|
|
@@ -20975,6 +21211,7 @@ ${new this._window.XMLSerializer().serializeToString(e4)}`;
|
|
|
20975
21211
|
this.identityRequest += 1;
|
|
20976
21212
|
this.identityResolvingKey = void 0;
|
|
20977
21213
|
this.clearBalanceRefreshTimers();
|
|
21214
|
+
this.clearBalanceDebounce();
|
|
20978
21215
|
if (this.copyResetTimer)
|
|
20979
21216
|
window.clearTimeout(this.copyResetTimer);
|
|
20980
21217
|
if (this.identitySettleTimer)
|
|
@@ -20988,9 +21225,15 @@ ${new this._window.XMLSerializer().serializeToString(e4)}`;
|
|
|
20988
21225
|
if (!this.target)
|
|
20989
21226
|
return;
|
|
20990
21227
|
this.target.innerHTML = "";
|
|
20991
|
-
|
|
20992
|
-
|
|
20993
|
-
|
|
21228
|
+
try {
|
|
21229
|
+
this.target.appendChild(this.createRoot());
|
|
21230
|
+
this.syncAccountPanelPortal();
|
|
21231
|
+
this.syncPanelListeners();
|
|
21232
|
+
} catch (error) {
|
|
21233
|
+
this.removeAccountPanelPortal();
|
|
21234
|
+
this.syncPanelScrollLock(false);
|
|
21235
|
+
this.target.appendChild(this.createRenderFallback(error));
|
|
21236
|
+
}
|
|
20994
21237
|
}
|
|
20995
21238
|
createRoot() {
|
|
20996
21239
|
var _a2;
|
|
@@ -21008,6 +21251,25 @@ ${new this._window.XMLSerializer().serializeToString(e4)}`;
|
|
|
21008
21251
|
this.renderAddressQrIfNeeded(root);
|
|
21009
21252
|
return root;
|
|
21010
21253
|
}
|
|
21254
|
+
createRenderFallback(_error) {
|
|
21255
|
+
var _a2;
|
|
21256
|
+
const root = document.createElement("div");
|
|
21257
|
+
root.className = "xwk-button-root";
|
|
21258
|
+
try {
|
|
21259
|
+
this.ensureStyles();
|
|
21260
|
+
} catch {
|
|
21261
|
+
}
|
|
21262
|
+
root.innerHTML = `<button class="xwk-account-button" data-xwk-wallet-reset type="button"><span class="xwk-button-label">${this.escapeHtml("Reset wallet")}</span></button>`;
|
|
21263
|
+
(_a2 = root.querySelector("[data-xwk-wallet-reset]")) == null ? void 0 : _a2.addEventListener("click", (event) => {
|
|
21264
|
+
event.stopPropagation();
|
|
21265
|
+
this.connecting = false;
|
|
21266
|
+
this.panelOpen = false;
|
|
21267
|
+
this.addressQrOpen = false;
|
|
21268
|
+
this.historyOpen = false;
|
|
21269
|
+
void this.options.manager.disconnect();
|
|
21270
|
+
});
|
|
21271
|
+
return root;
|
|
21272
|
+
}
|
|
21011
21273
|
onButtonClick() {
|
|
21012
21274
|
const session = this.options.manager.getSession();
|
|
21013
21275
|
if (!session) {
|
|
@@ -21022,6 +21284,7 @@ ${new this._window.XMLSerializer().serializeToString(e4)}`;
|
|
|
21022
21284
|
closePanel() {
|
|
21023
21285
|
this.panelOpen = false;
|
|
21024
21286
|
this.addressQrOpen = false;
|
|
21287
|
+
this.historyOpen = false;
|
|
21025
21288
|
this.render();
|
|
21026
21289
|
}
|
|
21027
21290
|
handleDocumentPointerDown(event) {
|
|
@@ -21034,6 +21297,7 @@ ${new this._window.XMLSerializer().serializeToString(e4)}`;
|
|
|
21034
21297
|
return;
|
|
21035
21298
|
this.panelOpen = false;
|
|
21036
21299
|
this.addressQrOpen = false;
|
|
21300
|
+
this.historyOpen = false;
|
|
21037
21301
|
this.render();
|
|
21038
21302
|
}
|
|
21039
21303
|
handleDocumentKeyDown(event) {
|
|
@@ -21042,6 +21306,7 @@ ${new this._window.XMLSerializer().serializeToString(e4)}`;
|
|
|
21042
21306
|
if (event.key === "Escape") {
|
|
21043
21307
|
this.panelOpen = false;
|
|
21044
21308
|
this.addressQrOpen = false;
|
|
21309
|
+
this.historyOpen = false;
|
|
21045
21310
|
this.render();
|
|
21046
21311
|
return;
|
|
21047
21312
|
}
|
|
@@ -21106,7 +21371,7 @@ ${new this._window.XMLSerializer().serializeToString(e4)}`;
|
|
|
21106
21371
|
(_a2 = root.querySelector("[data-xwk-account-close]")) == null ? void 0 : _a2.addEventListener("click", () => this.closePanel());
|
|
21107
21372
|
(_b = root.querySelector("[data-xwk-account-back]")) == null ? void 0 : _b.addEventListener("click", (event) => {
|
|
21108
21373
|
event.stopPropagation();
|
|
21109
|
-
this.
|
|
21374
|
+
this.closeSubView();
|
|
21110
21375
|
});
|
|
21111
21376
|
(_c = root.querySelector("[data-xwk-account-overlay]")) == null ? void 0 : _c.addEventListener("click", (event) => {
|
|
21112
21377
|
if (event.target === event.currentTarget)
|
|
@@ -21120,10 +21385,9 @@ ${new this._window.XMLSerializer().serializeToString(e4)}`;
|
|
|
21120
21385
|
event.stopPropagation();
|
|
21121
21386
|
this.openAddressQr();
|
|
21122
21387
|
});
|
|
21123
|
-
(_f = root.querySelector("[data-xwk-tx-
|
|
21388
|
+
(_f = root.querySelector("[data-xwk-tx-history]")) == null ? void 0 : _f.addEventListener("click", (event) => {
|
|
21124
21389
|
event.stopPropagation();
|
|
21125
|
-
this.
|
|
21126
|
-
this.render();
|
|
21390
|
+
this.openTransactionHistory();
|
|
21127
21391
|
});
|
|
21128
21392
|
(_g = root.querySelector("[data-xwk-disconnect]")) == null ? void 0 : _g.addEventListener("click", () => void this.disconnect());
|
|
21129
21393
|
}
|
|
@@ -21132,10 +21396,20 @@ ${new this._window.XMLSerializer().serializeToString(e4)}`;
|
|
|
21132
21396
|
return;
|
|
21133
21397
|
this.panelOpen = true;
|
|
21134
21398
|
this.addressQrOpen = true;
|
|
21399
|
+
this.historyOpen = false;
|
|
21135
21400
|
this.render();
|
|
21136
21401
|
}
|
|
21137
|
-
|
|
21402
|
+
openTransactionHistory() {
|
|
21403
|
+
if (!this.options.manager.getSession())
|
|
21404
|
+
return;
|
|
21405
|
+
this.panelOpen = true;
|
|
21406
|
+
this.addressQrOpen = false;
|
|
21407
|
+
this.historyOpen = true;
|
|
21408
|
+
this.render();
|
|
21409
|
+
}
|
|
21410
|
+
closeSubView() {
|
|
21138
21411
|
this.addressQrOpen = false;
|
|
21412
|
+
this.historyOpen = false;
|
|
21139
21413
|
this.panelOpen = true;
|
|
21140
21414
|
this.render();
|
|
21141
21415
|
}
|
|
@@ -21357,9 +21631,13 @@ ${new this._window.XMLSerializer().serializeToString(e4)}`;
|
|
|
21357
21631
|
const messages = this.messages();
|
|
21358
21632
|
const session = this.options.manager.getSession();
|
|
21359
21633
|
const connected = Boolean(session);
|
|
21634
|
+
if (this.connecting && !session) {
|
|
21635
|
+
const icon2 = this.options.showAdapterIcon ? `<span class="xwk-button-icon xwk-button-icon-loading" aria-hidden="true"><span class="xwk-skeleton xwk-skeleton-circle xwk-skeleton-button-icon"></span></span>` : "";
|
|
21636
|
+
return `<button class="xwk-account-button xwk-account-button-loading" data-xwk-wallet-button type="button" aria-busy="true" aria-label="${this.escapeHtml(messages.connecting)}">${icon2}<span class="xwk-button-label xwk-button-label-loading" aria-hidden="true"><span class="xwk-skeleton xwk-skeleton-line xwk-skeleton-button-label"></span></span></button>`;
|
|
21637
|
+
}
|
|
21360
21638
|
const label = this.connecting ? messages.connecting : session ? this.getAccountLabel(session) : this.options.label;
|
|
21361
|
-
const balance = session && this.options.showBalance && this.balanceLoading ? `<span class="xwk-button-balance xwk-button-balance-loading"
|
|
21362
|
-
const icon = this.options.showAdapterIcon ? this.renderWalletIcon(
|
|
21639
|
+
const balance = session && this.options.showBalance && this.balanceLoading ? `<span class="xwk-button-balance xwk-button-balance-loading" aria-hidden="true"><span class="xwk-skeleton xwk-skeleton-button-balance"></span></span>` : session && this.options.showBalance && this.activationStatus === "unfunded" ? `<span class="xwk-button-balance">(${this.escapeHtml(messages.notActivated)})</span>` : session && this.options.showBalance && ((_a2 = this.balance) == null ? void 0 : _a2.formatted) ? `<span class="xwk-button-balance">(${this.escapeHtml(this.balance.formatted)})</span>` : "";
|
|
21640
|
+
const icon = this.options.showAdapterIcon ? connected ? this.renderWalletIcon(session == null ? void 0 : session.wallet) : this.renderPreConnectIcon() : "";
|
|
21363
21641
|
const pendingDot = connected && this.options.showRecentTransactions && this.getPendingTransactionCount() > 0 ? `<span class="xwk-button-pending-dot" aria-hidden="true"></span>` : "";
|
|
21364
21642
|
const chevron = connected && this.options.showChevron && this.options.accountPanel ? `<span class="xwk-button-chevron" aria-hidden="true">${this.chevronIcon()}</span>` : "";
|
|
21365
21643
|
return `<button class="xwk-account-button" data-xwk-wallet-button type="button">${icon}${pendingDot}<span class="xwk-button-label">${this.escapeHtml(label)}${balance}</span>${chevron}</button>`;
|
|
@@ -21369,15 +21647,15 @@ ${new this._window.XMLSerializer().serializeToString(e4)}`;
|
|
|
21369
21647
|
const session = this.options.manager.getSession();
|
|
21370
21648
|
if (!session)
|
|
21371
21649
|
return "";
|
|
21372
|
-
const content = this.addressQrOpen ? this.renderAddressQrPanelContent(session) : this.renderPanelContent(session);
|
|
21373
|
-
const title = this.addressQrOpen ? messages.addressQr : messages.connected;
|
|
21374
|
-
const hasTransactions = !this.addressQrOpen && this.options.showRecentTransactions && this.getVisibleTransactions(session).length > 0;
|
|
21375
|
-
const panelStateClass = `${this.addressQrOpen ? " xwk-account-panel-address-qr" : ""}${hasTransactions ? " xwk-account-panel-with-transactions" : ""}`;
|
|
21376
|
-
const leading = this.addressQrOpen ? `<button class="xwk-account-back" type="button" data-xwk-account-back aria-label="${this.escapeHtml(messages.back)}">${this.backIcon()}</button>` : `<span></span>`;
|
|
21650
|
+
const content = this.addressQrOpen ? this.renderAddressQrPanelContent(session) : this.historyOpen ? this.renderTransactionHistoryPanelContent(session) : this.renderPanelContent(session);
|
|
21651
|
+
const title = this.addressQrOpen ? messages.addressQr : this.historyOpen ? messages.recentTransactions : messages.connected;
|
|
21652
|
+
const hasTransactions = !this.addressQrOpen && !this.historyOpen && this.options.showRecentTransactions && this.getVisibleTransactions(session).length > 0;
|
|
21653
|
+
const panelStateClass = `${this.addressQrOpen ? " xwk-account-panel-address-qr" : ""}${this.historyOpen ? " xwk-account-panel-history" : ""}${hasTransactions ? " xwk-account-panel-with-transactions" : ""}`;
|
|
21654
|
+
const leading = this.addressQrOpen || this.historyOpen ? `<button class="xwk-account-back" type="button" data-xwk-account-back aria-label="${this.escapeHtml(messages.back)}">${this.backIcon()}</button>` : `<span></span>`;
|
|
21377
21655
|
if (this.options.accountPanelMode === "modal") {
|
|
21378
21656
|
return `<div class="xwk-account-overlay" data-xwk-account-overlay role="presentation"><section class="xwk-account-panel xwk-account-panel-modal${panelStateClass}" role="dialog" aria-modal="true" aria-label="${this.escapeHtml(title)}" tabindex="-1"><div class="xwk-account-modal-header">${leading}<h2>${this.escapeHtml(title)}</h2><button class="xwk-account-close" type="button" data-xwk-account-close aria-label="${this.escapeHtml(messages.close)}">×</button></div><div class="xwk-account-modal-body">${content}</div></section></div>`;
|
|
21379
21657
|
}
|
|
21380
|
-
const dropdownBack = this.addressQrOpen ? `<div class="xwk-account-dropdown-header"><button class="xwk-account-back" type="button" data-xwk-account-back aria-label="${this.escapeHtml(messages.back)}">${this.backIcon()}</button><strong>${this.escapeHtml(title)}</strong></div>` : "";
|
|
21658
|
+
const dropdownBack = this.addressQrOpen || this.historyOpen ? `<div class="xwk-account-dropdown-header"><button class="xwk-account-back" type="button" data-xwk-account-back aria-label="${this.escapeHtml(messages.back)}">${this.backIcon()}</button><strong>${this.escapeHtml(title)}</strong></div>` : "";
|
|
21381
21659
|
return `<div class="xwk-account-panel xwk-account-panel-dropdown${panelStateClass}" role="dialog" aria-label="${this.escapeHtml(title)}">${dropdownBack}${content}</div>`;
|
|
21382
21660
|
}
|
|
21383
21661
|
renderPanelContent(session) {
|
|
@@ -21394,15 +21672,17 @@ ${new this._window.XMLSerializer().serializeToString(e4)}`;
|
|
|
21394
21672
|
const disconnect = this.options.disconnect ? `<button type="button" data-xwk-disconnect${this.copyInProgress || disconnectBusy ? " disabled" : ""}>${disconnectIcon}<span>${disconnectBusy ? this.escapeHtml(messages.disconnecting) : this.escapeHtml(messages.disconnect)}</span></button>` : "";
|
|
21395
21673
|
const nativeAsset = getNativeAsset(session.account.network);
|
|
21396
21674
|
const notActivated = this.options.showBalance && this.activationStatus === "unfunded" ? `<div class="xwk-account-warning">${this.escapeHtml(messages.accountNotActivated(nativeAsset))}</div>` : "";
|
|
21397
|
-
const balance = this.options.showBalance && this.balanceLoading ? `<
|
|
21398
|
-
const metaRow = balance ? `<div class="xwk-account-meta-row">${balance}</div>` : "";
|
|
21675
|
+
const balance = this.options.showBalance && this.balanceLoading ? `<span class="xwk-pill-balance xwk-account-balance-loading" role="status" aria-label="${this.escapeHtml(messages.connecting)}"><span class="xwk-skeleton xwk-skeleton-balance"></span></span>` : this.options.showBalance && this.activationStatus !== "unfunded" && ((_a2 = this.balance) == null ? void 0 : _a2.formatted) ? `<span class="xwk-pill-balance">${this.escapeHtml(this.balance.formatted)}</span>` : "";
|
|
21399
21676
|
const addressQrButton = this.renderAddressQrButton(address);
|
|
21677
|
+
const identityResolving = this.isIdentityResolving(session);
|
|
21400
21678
|
const hasIdentity = this.shouldShowWeb3Name() && this.identityName;
|
|
21401
|
-
const addressLabel =
|
|
21679
|
+
const addressLabel = address ? `<span class="xwk-pill-address">${this.escapeHtml(this.formatAddress(address))}</span>` : "";
|
|
21680
|
+
const divider = addressLabel && balance ? `<span class="xwk-pill-divider" aria-hidden="true"></span>` : "";
|
|
21681
|
+
const metaPill = addressLabel || balance || addressQrButton ? `<div class="xwk-account-meta-pill">${addressLabel}${divider}${balance}${addressQrButton}</div>` : "";
|
|
21402
21682
|
const actions = `<div class="xwk-account-panel-actions">${copy}${explorer}${disconnect}</div>`;
|
|
21403
|
-
const accountName =
|
|
21683
|
+
const accountName = identityResolving ? `<div class="xwk-account-name xwk-account-name-skeleton" role="status" aria-label="${this.escapeHtml(messages.connecting)}"><span class="xwk-skeleton xwk-skeleton-name"></span></div>` : hasIdentity ? `<div class="xwk-account-name">${this.escapeHtml(label)}</div>` : "";
|
|
21404
21684
|
const transactions2 = this.renderTransactionHistory(session);
|
|
21405
|
-
return `<div class="xwk-account-hero">${this.renderAccountAvatar(session)}</div>${accountName}${
|
|
21685
|
+
return `<div class="xwk-account-hero">${this.renderAccountAvatar(session, identityResolving)}</div>${accountName}${metaPill}${notActivated}${transactions2}${actions}`;
|
|
21406
21686
|
}
|
|
21407
21687
|
renderAddressQrPanelContent(session) {
|
|
21408
21688
|
const messages = this.messages();
|
|
@@ -21422,15 +21702,22 @@ ${new this._window.XMLSerializer().serializeToString(e4)}`;
|
|
|
21422
21702
|
renderTransactionHistory(session) {
|
|
21423
21703
|
if (!this.options.showRecentTransactions)
|
|
21424
21704
|
return "";
|
|
21425
|
-
const
|
|
21426
|
-
if (!
|
|
21705
|
+
const allTransactions = this.getVisibleTransactions(session);
|
|
21706
|
+
if (!allTransactions.length)
|
|
21427
21707
|
return "";
|
|
21708
|
+
const transactions2 = allTransactions.slice(0, Math.min(3, allTransactions.length));
|
|
21709
|
+
const messages = this.messages();
|
|
21710
|
+
const count = allTransactions.length > 9 ? "9+" : String(allTransactions.length);
|
|
21711
|
+
const historyAction = allTransactions.length > transactions2.length ? `<button class="xwk-tx-header-link" type="button" data-xwk-tx-history>${this.escapeHtml(messages.view)}${this.chevronRightIcon()}</button>` : "";
|
|
21712
|
+
const list = `<div class="xwk-tx-list" role="list"><div class="xwk-tx-list-inner">${transactions2.map((transaction2) => this.renderTransactionRow(transaction2)).join("")}</div></div>`;
|
|
21713
|
+
return `<section class="xwk-tx-section" aria-label="${this.escapeHtml(messages.recentTransactions)}"><div class="xwk-tx-header"><span>${this.escapeHtml(messages.recentTransactions)}</span><span class="xwk-tx-count">${this.escapeHtml(count)}</span>${historyAction}</div>${list}</section>`;
|
|
21714
|
+
}
|
|
21715
|
+
renderTransactionHistoryPanelContent(session) {
|
|
21428
21716
|
const messages = this.messages();
|
|
21429
|
-
const
|
|
21430
|
-
|
|
21431
|
-
|
|
21432
|
-
|
|
21433
|
-
return `<section class="xwk-tx-section" aria-label="${this.escapeHtml(messages.recentTransactions)}"><button class="xwk-tx-header" type="button" data-xwk-tx-toggle aria-expanded="${this.txSectionOpen ? "true" : "false"}"><span>${this.escapeHtml(messages.recentTransactions)}</span><span class="xwk-tx-count">${this.escapeHtml(count)}</span><span class="xwk-tx-chevron ${chevronClass}" aria-hidden="true">${this.chevronUpIcon()}</span></button>${list}</section>`;
|
|
21717
|
+
const transactions2 = this.getVisibleTransactions(session, Math.max(10, this.options.maxVisibleTransactions));
|
|
21718
|
+
if (!transactions2.length)
|
|
21719
|
+
return `<div class="xwk-tx-empty">${this.escapeHtml(messages.noRecentTransactions)}</div>`;
|
|
21720
|
+
return `<section class="xwk-tx-history-view" aria-label="${this.escapeHtml(messages.recentTransactions)}"><div class="xwk-tx-list" role="list"><div class="xwk-tx-list-inner">${transactions2.map((transaction2) => this.renderTransactionRow(transaction2)).join("")}</div></div></section>`;
|
|
21434
21721
|
}
|
|
21435
21722
|
renderTransactionRow(transaction2) {
|
|
21436
21723
|
const messages = this.messages();
|
|
@@ -21458,9 +21745,9 @@ ${new this._window.XMLSerializer().serializeToString(e4)}`;
|
|
|
21458
21745
|
return this.questionIcon();
|
|
21459
21746
|
return `<span class="xwk-tx-spinner" aria-hidden="true"></span>`;
|
|
21460
21747
|
}
|
|
21461
|
-
getVisibleTransactions(session) {
|
|
21748
|
+
getVisibleTransactions(session, limit = this.options.maxVisibleTransactions) {
|
|
21462
21749
|
const address = this.getSessionAddress(session);
|
|
21463
|
-
const max = Math.max(1, Math.floor(
|
|
21750
|
+
const max = Math.max(1, Math.floor(limit));
|
|
21464
21751
|
return this.getRecentTransactions(session).filter((transaction2) => {
|
|
21465
21752
|
var _a2;
|
|
21466
21753
|
return !address || !((_a2 = transaction2.account) == null ? void 0 : _a2.address) || transaction2.account.address === address;
|
|
@@ -21517,7 +21804,10 @@ ${new this._window.XMLSerializer().serializeToString(e4)}`;
|
|
|
21517
21804
|
const address = this.getSessionAddress(session);
|
|
21518
21805
|
return address ? (this.options.formatAddress ?? this.formatAddress)(address) : ((_b = session.wallet) == null ? void 0 : _b.name) ?? session.adapterId;
|
|
21519
21806
|
}
|
|
21520
|
-
renderAccountAvatar(session) {
|
|
21807
|
+
renderAccountAvatar(session, identityResolving = false) {
|
|
21808
|
+
if (identityResolving) {
|
|
21809
|
+
return `<div class="xwk-account-art xwk-account-avatar-skeleton" role="status" aria-label="${this.escapeHtml(this.messages().connecting)}"><span class="xwk-skeleton xwk-skeleton-circle"></span></div>`;
|
|
21810
|
+
}
|
|
21521
21811
|
if (this.identityAvatar) {
|
|
21522
21812
|
return `<img class="xwk-account-avatar" src="${this.escapeHtml(this.identityAvatar)}" alt="">`;
|
|
21523
21813
|
}
|
|
@@ -21548,6 +21838,14 @@ ${new this._window.XMLSerializer().serializeToString(e4)}`;
|
|
|
21548
21838
|
return address;
|
|
21549
21839
|
return typeof (account == null ? void 0 : account.classicAddress) === "string" ? account.classicAddress : "";
|
|
21550
21840
|
}
|
|
21841
|
+
isIdentityResolving(session) {
|
|
21842
|
+
if (!session || !this.shouldShowWeb3Name() || this.identityName)
|
|
21843
|
+
return false;
|
|
21844
|
+
const address = this.getSessionAddress(session);
|
|
21845
|
+
if (!address || !this.options.identityResolver)
|
|
21846
|
+
return false;
|
|
21847
|
+
return this.identityResolvingKey === this.identityCacheKey(session);
|
|
21848
|
+
}
|
|
21551
21849
|
shouldShowWeb3Name() {
|
|
21552
21850
|
return this.options.showWeb3Name ?? true;
|
|
21553
21851
|
}
|
|
@@ -21563,6 +21861,20 @@ ${new this._window.XMLSerializer().serializeToString(e4)}`;
|
|
|
21563
21861
|
const label = wallet.name.slice(0, 1).toUpperCase();
|
|
21564
21862
|
return `<span class="xwk-button-icon xwk-button-icon-fallback xwk-button-icon-initial" aria-hidden="true">${this.escapeHtml(label)}</span>`;
|
|
21565
21863
|
}
|
|
21864
|
+
renderPreConnectIcon() {
|
|
21865
|
+
const icon = this.options.icon;
|
|
21866
|
+
if (!icon || icon.type === "default")
|
|
21867
|
+
return this.renderWalletIcon(void 0);
|
|
21868
|
+
if (icon.type === "image") {
|
|
21869
|
+
const aria = icon.alt ? ` role="img" aria-label="${this.escapeHtml(icon.alt)}"` : ` aria-hidden="true"`;
|
|
21870
|
+
return `<span class="xwk-button-icon xwk-button-icon-custom xwk-button-icon-custom-image"${aria}><img src="${this.escapeHtml(icon.src)}" alt="" decoding="async"></span>`;
|
|
21871
|
+
}
|
|
21872
|
+
return this.renderCustomHtmlIcon(icon);
|
|
21873
|
+
}
|
|
21874
|
+
renderCustomHtmlIcon(icon) {
|
|
21875
|
+
const aria = icon.ariaLabel ? ` role="img" aria-label="${this.escapeHtml(icon.ariaLabel)}"` : ` aria-hidden="true"`;
|
|
21876
|
+
return `<span class="xwk-button-icon xwk-button-icon-custom xwk-button-icon-custom-html"${aria}>${icon.html}</span>`;
|
|
21877
|
+
}
|
|
21566
21878
|
repairFallbackIcon(root) {
|
|
21567
21879
|
root.querySelectorAll(".xwk-button-icon-svg-fallback").forEach((icon) => {
|
|
21568
21880
|
if (icon.querySelector("svg"))
|
|
@@ -21665,7 +21977,7 @@ ${new this._window.XMLSerializer().serializeToString(e4)}`;
|
|
|
21665
21977
|
let timer = 0;
|
|
21666
21978
|
timer = window.setTimeout(() => {
|
|
21667
21979
|
this.balanceRefreshTimers.delete(timer);
|
|
21668
|
-
|
|
21980
|
+
this.queueBalanceRefresh(this.options.manager.getSession(), 0);
|
|
21669
21981
|
}, delay2);
|
|
21670
21982
|
this.balanceRefreshTimers.add(timer);
|
|
21671
21983
|
});
|
|
@@ -21674,11 +21986,33 @@ ${new this._window.XMLSerializer().serializeToString(e4)}`;
|
|
|
21674
21986
|
this.balanceRefreshTimers.forEach((timer) => window.clearTimeout(timer));
|
|
21675
21987
|
this.balanceRefreshTimers.clear();
|
|
21676
21988
|
}
|
|
21989
|
+
queueBalanceRefresh(session, delay2 = 300) {
|
|
21990
|
+
if (!this.options.showBalance || !this.options.balanceResolver)
|
|
21991
|
+
return;
|
|
21992
|
+
this.balanceDebounceSession = session;
|
|
21993
|
+
this.clearBalanceDebounce();
|
|
21994
|
+
if (typeof window === "undefined") {
|
|
21995
|
+
void this.resolveBalance(this.balanceDebounceSession);
|
|
21996
|
+
return;
|
|
21997
|
+
}
|
|
21998
|
+
this.balanceDebounceTimer = window.setTimeout(() => {
|
|
21999
|
+
this.balanceDebounceTimer = void 0;
|
|
22000
|
+
const nextSession = this.balanceDebounceSession;
|
|
22001
|
+
this.balanceDebounceSession = null;
|
|
22002
|
+
void this.resolveBalance(nextSession);
|
|
22003
|
+
}, delay2);
|
|
22004
|
+
}
|
|
22005
|
+
clearBalanceDebounce() {
|
|
22006
|
+
if (this.balanceDebounceTimer && typeof window !== "undefined") {
|
|
22007
|
+
window.clearTimeout(this.balanceDebounceTimer);
|
|
22008
|
+
}
|
|
22009
|
+
this.balanceDebounceTimer = void 0;
|
|
22010
|
+
}
|
|
21677
22011
|
chevronIcon() {
|
|
21678
22012
|
return `<svg width="14" height="14" viewBox="0 0 24 24" fill="none"><path d="m6 9 6 6 6-6" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"/></svg>`;
|
|
21679
22013
|
}
|
|
21680
|
-
|
|
21681
|
-
return `<svg width="
|
|
22014
|
+
chevronRightIcon() {
|
|
22015
|
+
return `<svg width="13" height="13" viewBox="0 0 24 24" fill="none" aria-hidden="true"><path d="m9 6 6 6-6 6" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"/></svg>`;
|
|
21682
22016
|
}
|
|
21683
22017
|
checkIcon() {
|
|
21684
22018
|
return `<svg width="15" height="15" viewBox="0 0 24 24" fill="none"><path d="m5 12.5 4.2 4.2L19 7" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"/></svg>`;
|
|
@@ -21709,7 +22043,7 @@ ${new this._window.XMLSerializer().serializeToString(e4)}`;
|
|
|
21709
22043
|
}
|
|
21710
22044
|
ensureStyles() {
|
|
21711
22045
|
const styles2 = this.renderStyles();
|
|
21712
|
-
ensureWalletStyle(
|
|
22046
|
+
ensureWalletStyle("xwk-button", styles2);
|
|
21713
22047
|
}
|
|
21714
22048
|
renderStyles() {
|
|
21715
22049
|
const theme = this.resolveTheme();
|
|
@@ -21724,7 +22058,11 @@ ${new this._window.XMLSerializer().serializeToString(e4)}`;
|
|
|
21724
22058
|
const fallbackIconBackground = theme.fallbackIconBackground;
|
|
21725
22059
|
const fallbackIconColor = theme.fallbackIconColor;
|
|
21726
22060
|
const overlayBlur = theme.overlayBlur > 0 ? `blur(${theme.overlayBlur}px)` : "none";
|
|
21727
|
-
return `.xwk-button-root{display:inline-block;max-width:100%;position:relative;font-family:${theme.fontFamily};font-size:14px}.xwk-account-button{align-items:center;background:${background};border:1px solid ${border};border-radius:${radius};box-shadow:none;box-sizing:border-box;color:${theme.foreground};cursor:pointer;display:inline-flex;gap:8px;font:inherit;font-weight:560;max-width:100%;min-height:${height};overflow:hidden;padding:0 12px 0 10px;touch-action:manipulation;transition:background-color .16s ease,border-color .16s ease;white-space:nowrap;-webkit-tap-highlight-color:transparent;transform:none}.xwk-account-button:hover{background:${hoverBackground};box-shadow:none;opacity:1;transform:none}.xwk-account-button:active{background:${hoverBackground};opacity:1;transform:none}.xwk-account-button:focus-visible,.xwk-button-chevron:focus-visible,.xwk-account-panel-actions button:focus-visible,.xwk-account-panel-actions a:focus-visible,.xwk-address-qr-trigger:focus-visible,.xwk-tx-header:focus-visible,.xwk-tx-link:focus-visible{outline:2px solid ${theme.accent};outline-offset:2px;text-decoration:none}.xwk-button-icon{background:${theme.background};border:1px solid ${iconBorder};border-radius:10px;box-sizing:border-box;display:inline-flex;flex:0 0 28px;height:28px;isolation:isolate;line-height:0;max-width:28px;min-width:28px;object-fit:contain;overflow:hidden;position:relative;width:28px}.xwk-button-icon-fallback{align-items:center;background:${fallbackIconBackground};color:${fallbackIconColor};justify-content:center}.xwk-button-icon-initial{font-size:12px;line-height:1}.xwk-button-icon-svg-fallback{font-size:0}.xwk-button-icon-svg-fallback svg{display:block;flex:0 0 17px;height:17px;max-height:17px;max-width:17px;min-height:17px;min-width:17px;width:17px}.xwk-button-pending-dot{background:${theme.accent};border:2px solid ${background};border-radius:999px;box-sizing:border-box;flex:0 0 9px;height:9px;margin-left:-13px;margin-right:4px;position:relative;width:9px;z-index:1}.xwk-button-label{display:inline-block;flex:1 1 0;font-size:13px;font-weight:560;line-height:1.1;max-width:220px;min-width:0;overflow:hidden;padding-right:2px;text-overflow:ellipsis;white-space:nowrap}.xwk-button-balance{color:${theme.muted};font-weight:500;margin-left:4px}.xwk-button-balance-loading{display:inline-flex;vertical-align:-2px}.xwk-balance-spinner{animation:xwk-action-spin .8s linear infinite;border:2px solid ${theme.spinnerTrail};border-top-color:${theme.muted};border-radius:999px;box-sizing:border-box;display:inline-block;flex:0 0 13px;height:13px;width:13px}.xwk-button-chevron{align-items:center;background:${theme.background};border:1px solid ${iconBorder};border-radius:999px;color:${theme.muted};display:inline-flex;flex:0 0 26px;height:26px;justify-content:center;line-height:1;touch-action:manipulation;width:26px}.xwk-button-chevron:hover{background:${theme.surfaceHover};color:${theme.foreground}}.xwk-account-overlay{align-items:center;background:${theme.overlay};-webkit-backdrop-filter:${overlayBlur};backdrop-filter:${overlayBlur};display:flex;inset:0;justify-content:center;overscroll-behavior:contain;padding:max(24px,env(safe-area-inset-top)) max(24px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(24px,env(safe-area-inset-left));position:fixed;z-index:2147483647}.xwk-account-portal[data-xwk-entering="true"] .xwk-account-overlay{animation:xwk-account-overlay-in .18s ease-out}.xwk-account-panel{background:${theme.background};border:1px solid ${theme.border};border-radius:${theme.radius};box-shadow:${theme.shadow};box-sizing:border-box;color:${theme.foreground};display:grid;gap:12px;overflow:hidden;z-index:2147483647}.xwk-account-panel:focus{outline:none}.xwk-account-panel-dropdown{box-shadow:none;justify-items:center;margin-top:10px;min-width:320px;padding:18px;position:absolute;right:0;top:100%;width:min(360px,calc(100vw - 32px))}.xwk-account-dropdown-header{align-items:center;display:grid;grid-template-columns:44px minmax(0,1fr) 44px;margin:-4px 0 0;width:100%}.xwk-account-dropdown-header strong{font-size:14px;font-weight:600;line-height:1.2;min-width:0;overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap}.xwk-account-panel-modal{gap:0;grid-template-rows:auto minmax(0,1fr);height:min(527px,calc(100dvh - 48px - env(safe-area-inset-top) - env(safe-area-inset-bottom)));max-width:520px;position:relative;transform-origin:center bottom;width:min(520px,100%)}.xwk-account-panel-modal.xwk-account-panel-with-transactions{height:min(650px,calc(100dvh - 48px - env(safe-area-inset-top) - env(safe-area-inset-bottom)))}.xwk-account-portal[data-xwk-entering="true"] .xwk-account-panel-modal{animation:xwk-account-panel-in .22s cubic-bezier(.22,1,.36,1)}.xwk-account-modal-header{align-items:center;background:${theme.headerBackground};border-bottom:1px solid ${theme.border};display:grid;grid-template-columns:44px minmax(0,1fr) 44px;column-gap:8px;padding:8px 18px}.xwk-account-modal-header h2{color:${theme.foreground};font-size:16px;font-weight:500;line-height:1.2;margin:0;min-width:0;overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap}.xwk-account-modal-body{-webkit-overflow-scrolling:touch;align-items:center;display:flex;flex-direction:column;gap:12px;min-height:0;overflow:hidden;overscroll-behavior:contain;padding:22px 28px 28px}.xwk-account-panel-with-transactions .xwk-account-modal-body{overflow:auto;padding-top:14px}.xwk-account-modal-body>.xwk-account-hero,.xwk-account-modal-body>.xwk-account-name,.xwk-account-modal-body>.xwk-account-address,.xwk-account-modal-body>.xwk-account-meta-row,.xwk-account-modal-body>.xwk-account-warning,.xwk-account-modal-body>.xwk-tx-section,.xwk-account-modal-body>.xwk-account-panel-actions{flex-shrink:0}.xwk-account-close,.xwk-account-back{-webkit-appearance:none;-webkit-tap-highlight-color:transparent;align-items:center;appearance:none;background:transparent!important;border:0!important;border-radius:999px;box-shadow:none!important;color:${theme.muted};cursor:pointer;display:inline-flex;font:inherit;font-size:26px;font-weight:500;height:44px;justify-content:center;line-height:1;margin:0;min-height:0;outline:none!important;padding:0;touch-action:manipulation;transform:none;width:44px}.xwk-account-back{font-size:0;justify-self:start}.xwk-account-close{justify-self:end}.xwk-account-close:hover,.xwk-account-back:hover{background:${theme.surfaceHover}!important;box-shadow:none!important;color:${theme.foreground};transform:none}.xwk-account-close:focus-visible,.xwk-account-back:focus-visible{outline:2px solid ${theme.accent}!important;outline-offset:0}.xwk-account-hero{height:154px;margin-top:4px;position:relative;width:180px}.xwk-account-panel-with-transactions .xwk-account-hero{height:126px;margin-bottom:0}.xwk-account-panel-with-transactions .xwk-account-art,.xwk-account-panel-with-transactions .xwk-account-avatar{top:0}.xwk-account-panel-dropdown .xwk-account-hero{height:132px;width:160px}.xwk-account-art,.xwk-account-avatar{border-radius:999px;height:118px;left:31px;position:absolute;top:8px;width:118px}.xwk-account-panel-dropdown .xwk-account-art,.xwk-account-panel-dropdown .xwk-account-avatar{height:104px;left:28px;width:104px}.xwk-account-art{align-items:center;background:radial-gradient(circle at 58% 38%,var(--xwk-avatar-spot),transparent 0 22%,transparent 23%),linear-gradient(160deg,var(--xwk-avatar-from),var(--xwk-avatar-to));display:flex;justify-content:center}.xwk-account-art span{background:rgba(255,255,255,.18);border-radius:999px;height:50px;width:50px}.xwk-account-panel-dropdown .xwk-account-art span{height:42px;width:42px}.xwk-account-avatar{background:${theme.surface};border:1px solid ${iconBorder};box-sizing:border-box;display:block;object-fit:cover;overflow:hidden}.xwk-account-panel-with-transactions .xwk-account-name{position:relative;z-index:1}.xwk-account-name{color:${theme.foreground};font-size:21px;font-weight:650;line-height:1.2;max-width:100%;overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap}.xwk-account-panel-dropdown .xwk-account-name{font-size:18px}.xwk-account-name-with-qr,.xwk-account-address{align-items:center;display:inline-flex;gap:6px;justify-content:center}.xwk-account-name-with-qr span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.xwk-account-name-address{background:${theme.surface};border:1px solid ${theme.border};border-radius:14px;color:${theme.muted};font-size:16px;font-weight:600;line-height:1.2;max-width:min(260px,100%);padding:7px 6px 7px 14px}.xwk-account-address{background:${theme.surface};border:1px solid ${theme.border};border-radius:12px;color:${theme.muted};font-size:14px;font-weight:520;line-height:1.25;max-width:100%;overflow:hidden;padding:8px 8px 8px 12px;text-align:center;text-overflow:ellipsis;white-space:nowrap}.xwk-address-qr-trigger{-webkit-appearance:none;-webkit-tap-highlight-color:transparent;align-items:center;appearance:none;background:transparent;border:0;border-radius:10px;box-shadow:none;color:currentColor;cursor:pointer;display:inline-flex;flex:0 0 40px;height:40px;justify-content:center;margin:-7px -6px -7px 0;min-height:40px;outline:none;overflow:visible;padding:0;touch-action:manipulation;transform:none;width:40px}.xwk-address-qr-trigger svg{display:block;height:17px;overflow:visible;width:17px}.xwk-address-qr-trigger:hover{background:${theme.surfaceHover};box-shadow:none;transform:none}.xwk-account-meta-row{align-items:center;display:flex;gap:8px;justify-content:center;max-width:100%;min-height:42px}.xwk-account-balance{align-items:center;background:${theme.surface};border:1px solid ${actionBorder};border-radius:999px;box-sizing:border-box;color:${theme.muted};display:inline-flex;font-size:13px;font-weight:560;height:42px;justify-content:center;letter-spacing:0;line-height:1;padding:0 14px;text-align:center}.xwk-account-balance-loading{align-items:center;display:inline-flex;gap:6px}.xwk-account-warning{align-items:center;background:${theme.surface};border:1px solid ${actionBorder};border-radius:12px;box-sizing:border-box;color:${theme.muted};display:flex;font-size:13px;font-weight:520;justify-content:center;line-height:1.25;min-height:54px;padding:0 14px;text-align:center;width:100%}.xwk-address-qr-content{align-content:center;display:grid;gap:14px;justify-items:center;min-height:100%;width:100%}.xwk-address-qr-code{aspect-ratio:1/1;background:${theme.surface};border:1px solid ${theme.border};border-radius:14px;box-sizing:border-box;display:grid;max-width:304px;padding:12px;place-items:center;width:min(304px,100%)}.xwk-address-qr-code svg,.xwk-address-qr-code canvas,.xwk-address-qr-code img{aspect-ratio:1/1;display:block;height:auto;max-width:100%;width:100%}.xwk-address-qr-chip{background:${theme.surface};border:1px solid ${theme.border};border-radius:12px;box-sizing:border-box;color:${theme.muted};font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;font-weight:520;line-height:1.45;max-width:100%;overflow-wrap:anywhere;padding:9px 11px;text-align:center;width:100%}.xwk-address-qr-fallback{color:${theme.muted};font-size:12px;line-height:1.45;overflow-wrap:anywhere}.xwk-tx-section{background:${theme.surface};border:1px solid ${actionBorder};border-radius:${theme.walletRadius};box-sizing:border-box;display:grid;overflow:hidden;width:100%}.xwk-tx-header{-webkit-appearance:none;-webkit-tap-highlight-color:transparent;align-items:center;appearance:none;background:${theme.surface}!important;border:0!important;box-shadow:none!important;color:${theme.muted};cursor:pointer;display:flex;font:inherit;font-size:10px;font-weight:650;gap:6px;letter-spacing:.07em;line-height:1.2;margin:0;min-height:34px;outline:none;padding:0 12px;text-align:left;text-transform:uppercase;touch-action:manipulation;transform:none;transition:background-color .16s ease,color .16s ease;width:100%}.xwk-tx-header:hover,.xwk-tx-header:active{background:${theme.surfaceHover}!important;border:0!important;box-shadow:none!important;color:${theme.foreground};opacity:1;text-decoration:none;transform:none}.xwk-tx-count{align-items:center;background:${theme.background};border:1px solid ${actionBorder};border-radius:999px;box-sizing:border-box;color:${theme.muted};display:inline-flex;font-size:10px;font-weight:650;height:16px;justify-content:center;letter-spacing:0;line-height:1;min-width:18px;padding:0 5px;text-transform:none}.xwk-tx-chevron{align-items:center;color:${theme.muted};display:inline-flex;flex:0 0 16px;height:16px;justify-content:center;margin-left:auto;transition:transform .18s ease;width:16px}.xwk-tx-chevron.closed{transform:rotate(-90deg)}.xwk-tx-chevron svg{display:block;height:12px;width:12px}.xwk-tx-list{display:grid;grid-template-rows:1fr;overflow:hidden;transition:grid-template-rows .18s ease}.xwk-tx-list.closed{grid-template-rows:0fr}.xwk-tx-list-inner{min-height:0;overflow:hidden}.xwk-tx-row{align-items:center;background:${theme.surface};border-top:1px solid ${actionBorder};box-sizing:border-box;display:grid;gap:8px;grid-template-columns:24px minmax(0,1fr) auto;min-height:42px;padding:7px 10px;transition:background-color .16s ease}.xwk-tx-row:hover{background:${theme.surface};box-shadow:none;transform:none}.xwk-tx-row:first-child{border-top:0}.xwk-tx-status{align-items:center;background:${theme.background};border-radius:999px;color:${theme.accent};display:inline-flex;height:24px;justify-content:center;width:24px}.xwk-tx-row-confirmed .xwk-tx-status{color:${theme.success}}.xwk-tx-row-failed .xwk-tx-status{color:${theme.error}}.xwk-tx-row-unknown .xwk-tx-status{color:${theme.muted}}.xwk-tx-main{display:grid;gap:2px;min-width:0}.xwk-tx-label{color:${theme.foreground};font-size:12px;font-weight:600;line-height:1.15;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.xwk-tx-hash{color:${theme.muted};font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;line-height:1.15;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.xwk-tx-link{align-items:center;border-radius:9px;color:${theme.accent};display:inline-flex;font:inherit;font-size:12px;font-weight:650;gap:3px;line-height:1.2;min-height:28px;padding:0 6px;text-decoration:none}.xwk-tx-link:hover{background:${theme.surfaceHover};box-shadow:none;text-decoration:none;transform:none}.xwk-tx-link svg{height:12px;width:12px}.xwk-tx-empty{background:${theme.surface};border:1px solid ${actionBorder};border-radius:${theme.walletRadius};box-sizing:border-box;color:${theme.muted};font-size:13px;line-height:1.35;padding:14px;text-align:center;width:100%}.xwk-tx-spinner{animation:xwk-action-spin .8s linear infinite;border:2px solid ${theme.spinnerTrail};border-top-color:${theme.accent};border-radius:999px;box-sizing:border-box;display:block;height:14px;width:14px}.xwk-account-panel-actions{display:grid;gap:10px;grid-template-columns:1fr;width:100%}.xwk-account-modal-body .xwk-account-panel-actions{margin-top:auto}.xwk-account-panel-with-transactions .xwk-account-modal-body .xwk-account-panel-actions{margin-top:0}.xwk-account-panel-actions button,.xwk-account-panel-actions a{-webkit-appearance:none;-webkit-tap-highlight-color:transparent;align-items:center;appearance:none;background:${theme.surface};border:1px solid ${actionBorder};border-radius:${theme.walletRadius};box-shadow:none;box-sizing:border-box;color:${theme.foreground};cursor:pointer;display:flex;font:inherit;font-size:14px;font-weight:560;gap:8px;justify-content:center;line-height:1.2;min-height:46px;min-width:0;outline:none;overflow:hidden;padding:0 12px;text-decoration:none;touch-action:manipulation;transform:none;transition:background-color .16s ease,border-color .16s ease;width:100%}.xwk-account-panel-actions button:disabled{cursor:wait;opacity:1}.xwk-account-panel-actions svg{flex:0 0 auto;opacity:.58}.xwk-account-panel-actions span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.xwk-account-panel-actions button:hover,.xwk-account-panel-actions a:hover{background:${theme.surfaceHover};border-color:${actionBorder};box-shadow:none;text-decoration:none;transform:none}.xwk-account-panel-actions button:active,.xwk-account-panel-actions a:active{background:${theme.surfaceHover};opacity:1;text-decoration:none;transform:none}.xwk-copied-icon{color:${theme.success};opacity:1!important}.xwk-action-spinner{animation:xwk-action-spin .8s linear infinite;border:2px solid ${theme.spinnerTrail};border-top-color:${theme.muted};border-radius:999px;box-sizing:border-box;display:inline-block;height:17px;width:17px}@keyframes xwk-action-spin{to{transform:rotate(360deg)}}@keyframes xwk-account-overlay-in{from{opacity:0}to{opacity:1}}@keyframes xwk-account-panel-in{from{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@media(prefers-reduced-motion:reduce){.xwk-account-button,.xwk-tx-list,.xwk-tx-chevron,.xwk-account-panel-actions button,.xwk-account-panel-actions a{transition:none}.xwk-account-portal[data-xwk-entering="true"] .xwk-account-overlay,.xwk-account-portal[data-xwk-entering="true"] .xwk-account-panel-modal{animation-duration:1ms!important}.xwk-action-spinner,.xwk-balance-spinner,.xwk-tx-spinner{animation:none}}@media(max-width:520px){.xwk-account-panel-dropdown{bottom:0;left:0;margin-top:0;min-width:0;position:fixed;right:0;top:auto;width:100vw}.xwk-account-overlay{align-items:flex-end;padding:max(12px,env(safe-area-inset-top)) 0 0}.xwk-account-panel-modal{align-self:flex-end;border-bottom:0;border-bottom-left-radius:0;border-bottom-right-radius:0;border-left:0;border-right:0;border-top-left-radius:${theme.radius};border-top-right-radius:${theme.radius};height:min(527px,calc(100dvh - env(safe-area-inset-top)));max-width:none;width:100vw}.xwk-account-panel-modal.xwk-account-panel-with-transactions{height:min(650px,calc(100dvh - env(safe-area-inset-top)))}.xwk-account-portal[data-xwk-entering="true"] .xwk-account-panel-modal{animation:xwk-account-sheet-in .28s cubic-bezier(.32,.72,0,1)}.xwk-account-modal-header{border-top-left-radius:${theme.radius};border-top-right-radius:${theme.radius};grid-template-columns:44px minmax(0,1fr) 44px;padding:10px 16px}.xwk-account-modal-body{min-height:0;padding:18px 20px max(22px,calc(22px + env(safe-area-inset-bottom)))}.xwk-button-label{max-width:min(150px,calc(100vw - 140px))}}@keyframes xwk-account-sheet-in{from{opacity:1;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}`;
|
|
22061
|
+
const baseStyles = `.xwk-button-root{display:inline-block;max-width:100%;position:relative;font-family:${theme.fontFamily};font-size:14px}.xwk-account-button{align-items:center;background:${background};border:1px solid ${border};border-radius:${radius};box-shadow:none;box-sizing:border-box;color:${theme.foreground};cursor:pointer;display:inline-flex;gap:8px;font:inherit;font-weight:560;max-width:100%;min-height:${height};overflow:hidden;padding:0 12px 0 10px;touch-action:manipulation;transition:background-color .16s ease,border-color .16s ease;white-space:nowrap;-webkit-tap-highlight-color:transparent;transform:none}.xwk-account-button:hover{background:${hoverBackground};box-shadow:none;opacity:1;transform:none}.xwk-account-button:active{background:${hoverBackground};opacity:1;transform:none}.xwk-account-button:focus-visible,.xwk-button-chevron:focus-visible,.xwk-account-panel-actions button:focus-visible,.xwk-account-panel-actions a:focus-visible,.xwk-address-qr-trigger:focus-visible,.xwk-tx-header-link:focus-visible,.xwk-tx-link:focus-visible{outline:2px solid ${theme.accent};outline-offset:2px;text-decoration:none}.xwk-button-icon{background:${theme.background};border:1px solid ${iconBorder};border-radius:10px;box-sizing:border-box;display:inline-flex;flex:0 0 28px;height:28px;isolation:isolate;line-height:0;max-width:28px;min-width:28px;object-fit:contain;overflow:hidden;position:relative;width:28px}.xwk-button-icon-fallback{align-items:center;background:${fallbackIconBackground};color:${fallbackIconColor};justify-content:center}.xwk-button-icon-initial{font-size:12px;line-height:1}.xwk-button-icon-svg-fallback{font-size:0}.xwk-button-icon-svg-fallback svg{display:block;flex:0 0 17px;height:17px;max-height:17px;max-width:17px;min-height:17px;min-width:17px;width:17px}.xwk-button-icon-custom{align-items:center;justify-content:center}.xwk-button-icon-custom img,.xwk-button-icon-custom svg{display:block;max-height:18px;max-width:18px}.xwk-button-icon-custom img{height:18px;object-fit:contain;width:18px}.xwk-button-icon-custom-html>*{max-height:18px;max-width:18px}.xwk-skeleton{animation:xwk-skeleton-pulse 1.4s ease-in-out infinite;background:linear-gradient(90deg,${theme.surface} 25%,${theme.surfaceHover} 50%,${theme.surface} 75%);background-size:200% 100%;border-radius:999px;display:inline-block}.xwk-skeleton-button-balance{height:12px;width:44px}.xwk-skeleton-balance{height:14px;width:70px}.xwk-skeleton-name{height:24px;width:132px}.xwk-account-name-skeleton{align-items:center;display:flex;justify-content:center;min-height:26px}.xwk-button-pending-dot{background:${theme.accent};border:2px solid ${background};border-radius:999px;box-sizing:border-box;flex:0 0 9px;height:9px;margin-left:-13px;margin-right:4px;position:relative;width:9px;z-index:1}.xwk-button-label{display:inline-block;flex:1 1 0;font-size:13px;font-weight:560;line-height:1.1;max-width:220px;min-width:0;overflow:hidden;padding-right:2px;text-overflow:ellipsis;white-space:nowrap}.xwk-button-balance{color:${theme.muted};font-weight:500;margin-left:4px}.xwk-button-balance-loading{display:inline-flex;vertical-align:-2px}.xwk-balance-spinner{animation:xwk-action-spin .8s linear infinite;border:2px solid ${theme.spinnerTrail};border-top-color:${theme.muted};border-radius:999px;box-sizing:border-box;display:inline-block;flex:0 0 13px;height:13px;width:13px}.xwk-button-chevron{align-items:center;background:${theme.background};border:1px solid ${iconBorder};border-radius:999px;color:${theme.muted};display:inline-flex;flex:0 0 26px;height:26px;justify-content:center;line-height:1;touch-action:manipulation;width:26px}.xwk-button-chevron:hover{background:${theme.surfaceHover};color:${theme.foreground}}.xwk-account-overlay{align-items:center;background:${theme.overlay};-webkit-backdrop-filter:${overlayBlur};backdrop-filter:${overlayBlur};display:flex;inset:0;justify-content:center;overscroll-behavior:contain;padding:max(24px,env(safe-area-inset-top)) max(24px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(24px,env(safe-area-inset-left));position:fixed;z-index:2147483647}.xwk-account-portal[data-xwk-entering="true"] .xwk-account-overlay{animation:xwk-account-overlay-in .18s ease-out}.xwk-account-panel{background:${theme.background};border:1px solid ${theme.border};border-radius:${theme.radius};box-shadow:${theme.shadow};box-sizing:border-box;color:${theme.foreground};display:grid;gap:12px;overflow:hidden;z-index:2147483647}.xwk-account-panel:focus{outline:none}.xwk-account-panel-dropdown{box-shadow:none;justify-items:center;margin-top:10px;min-width:320px;padding:18px;position:absolute;right:0;top:100%;width:min(360px,calc(100vw - 32px))}.xwk-account-dropdown-header{align-items:center;display:grid;grid-template-columns:44px minmax(0,1fr) 44px;margin:-4px 0 0;width:100%}.xwk-account-dropdown-header strong{font-size:14px;font-weight:600;line-height:1.2;min-width:0;overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap}.xwk-account-panel-modal{gap:0;grid-template-rows:auto minmax(0,1fr);height:min(527px,calc(100dvh - 48px - env(safe-area-inset-top) - env(safe-area-inset-bottom)));max-width:520px;position:relative;transform-origin:center bottom;width:min(520px,100%)}.xwk-account-panel-modal.xwk-account-panel-with-transactions,.xwk-account-panel-modal.xwk-account-panel-history{height:min(650px,calc(100dvh - 48px - env(safe-area-inset-top) - env(safe-area-inset-bottom)))}.xwk-account-portal[data-xwk-entering="true"] .xwk-account-panel-modal{animation:xwk-account-panel-in .22s cubic-bezier(.22,1,.36,1)}.xwk-account-modal-header{align-items:center;background:${theme.headerBackground};border-bottom:1px solid ${theme.border};display:grid;grid-template-columns:44px minmax(0,1fr) 44px;column-gap:8px;padding:8px 18px}.xwk-account-modal-header h2{color:${theme.foreground};font-size:16px;font-weight:500;line-height:1.2;margin:0;min-width:0;overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap}.xwk-account-modal-body{-webkit-overflow-scrolling:touch;align-items:center;display:flex;flex-direction:column;gap:12px;min-height:0;overflow:hidden;overscroll-behavior:contain;padding:22px 28px 28px}.xwk-account-panel-with-transactions .xwk-account-modal-body,.xwk-account-panel-history .xwk-account-modal-body{overflow:auto;padding-top:14px}.xwk-account-modal-body>.xwk-account-hero,.xwk-account-modal-body>.xwk-account-name,.xwk-account-modal-body>.xwk-account-meta-pill,.xwk-account-modal-body>.xwk-account-warning,.xwk-account-modal-body>.xwk-tx-section,.xwk-account-modal-body>.xwk-tx-history-view,.xwk-account-modal-body>.xwk-account-panel-actions{flex-shrink:0}.xwk-account-close,.xwk-account-back{-webkit-appearance:none;-webkit-tap-highlight-color:transparent;align-items:center;appearance:none;background:transparent!important;border:0!important;border-radius:999px;box-shadow:none!important;color:${theme.muted};cursor:pointer;display:inline-flex;font:inherit;font-size:26px;font-weight:500;height:44px;justify-content:center;line-height:1;margin:0;min-height:0;outline:none!important;padding:0;touch-action:manipulation;transform:none;width:44px}.xwk-account-back{font-size:0;justify-self:start}.xwk-account-close{justify-self:end}.xwk-account-close:hover,.xwk-account-back:hover{background:${theme.surfaceHover}!important;box-shadow:none!important;color:${theme.foreground};transform:none}.xwk-account-close:focus-visible,.xwk-account-back:focus-visible{outline:2px solid ${theme.accent}!important;outline-offset:0}.xwk-account-hero{height:154px;margin-top:4px;position:relative;width:180px}.xwk-account-panel-with-transactions .xwk-account-hero{height:126px;margin-bottom:0}.xwk-account-panel-with-transactions .xwk-account-art,.xwk-account-panel-with-transactions .xwk-account-avatar{top:0}.xwk-account-panel-dropdown .xwk-account-hero{height:132px;width:160px}.xwk-account-art,.xwk-account-avatar{border-radius:999px;height:118px;left:31px;position:absolute;top:8px;width:118px}.xwk-account-panel-dropdown .xwk-account-art,.xwk-account-panel-dropdown .xwk-account-avatar{height:104px;left:28px;width:104px}.xwk-account-art{align-items:center;background:radial-gradient(circle at 58% 38%,var(--xwk-avatar-spot),transparent 0 22%,transparent 23%),linear-gradient(160deg,var(--xwk-avatar-from),var(--xwk-avatar-to));display:flex;justify-content:center}.xwk-account-art span{background:rgba(255,255,255,.18);border-radius:999px;height:50px;width:50px}.xwk-account-panel-dropdown .xwk-account-art span{height:42px;width:42px}.xwk-account-avatar{background:${theme.surface};border:1px solid ${iconBorder};box-sizing:border-box;display:block;object-fit:cover;overflow:hidden}.xwk-account-panel-with-transactions .xwk-account-name{position:relative;z-index:1}.xwk-account-name{color:${theme.foreground};font-size:21px;font-weight:650;line-height:1.2;max-width:100%;overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap}.xwk-account-panel-dropdown .xwk-account-name{font-size:18px}.xwk-account-meta-pill{align-items:center;background:${theme.surface};border:1px solid ${actionBorder};border-radius:14px;box-sizing:border-box;color:${theme.muted};display:inline-flex;font-size:13px;font-weight:560;gap:8px;justify-content:center;line-height:1.2;max-width:100%;min-height:44px;overflow:hidden;padding:2px 4px 2px 12px}.xwk-pill-address{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.xwk-pill-divider{background:${actionBorder};display:inline-block;flex:0 0 1px;height:18px;opacity:.8}.xwk-pill-balance{color:${theme.foreground};white-space:nowrap}.xwk-account-name-with-qr,.xwk-account-address{align-items:center;display:inline-flex;gap:6px;justify-content:center}.xwk-account-name-with-qr span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.xwk-account-name-address{background:${theme.surface};border:1px solid ${theme.border};border-radius:14px;color:${theme.muted};font-size:16px;font-weight:600;line-height:1.2;max-width:min(260px,100%);padding:7px 6px 7px 14px}.xwk-account-address{background:${theme.surface};border:1px solid ${theme.border};border-radius:12px;color:${theme.muted};font-size:14px;font-weight:520;line-height:1.25;max-width:100%;overflow:hidden;padding:8px 8px 8px 12px;text-align:center;text-overflow:ellipsis;white-space:nowrap}.xwk-address-qr-trigger{-webkit-appearance:none;-webkit-tap-highlight-color:transparent;align-items:center;appearance:none;background:transparent;border:0;border-radius:10px;box-shadow:none;color:currentColor;cursor:pointer;display:inline-flex;flex:0 0 40px;height:40px;justify-content:center;margin:0 -2px 0 0;min-height:40px;outline:none;overflow:visible;padding:0;touch-action:manipulation;transform:none;width:40px}.xwk-address-qr-trigger svg{display:block;height:17px;overflow:visible;width:17px}.xwk-address-qr-trigger:hover{background:${theme.surfaceHover};box-shadow:none;transform:none}.xwk-account-meta-row{align-items:center;display:flex;gap:8px;justify-content:center;max-width:100%;min-height:42px}.xwk-account-balance{align-items:center;background:${theme.surface};border:1px solid ${actionBorder};border-radius:999px;box-sizing:border-box;color:${theme.muted};display:inline-flex;font-size:13px;font-weight:560;height:42px;justify-content:center;letter-spacing:0;line-height:1;padding:0 14px;text-align:center}.xwk-account-balance-loading{align-items:center;display:inline-flex;gap:6px}.xwk-account-warning{align-items:center;background:${theme.surface};border:1px solid ${actionBorder};border-radius:12px;box-sizing:border-box;color:${theme.muted};display:flex;font-size:13px;font-weight:520;justify-content:center;line-height:1.25;min-height:54px;padding:0 14px;text-align:center;width:100%}.xwk-address-qr-content{align-content:center;display:grid;gap:14px;justify-items:center;min-height:100%;width:100%}.xwk-address-qr-code{aspect-ratio:1/1;background:${theme.surface};border:1px solid ${theme.border};border-radius:14px;box-sizing:border-box;display:grid;max-width:304px;padding:12px;place-items:center;width:min(304px,100%)}.xwk-address-qr-code svg,.xwk-address-qr-code canvas,.xwk-address-qr-code img{aspect-ratio:1/1;display:block;height:auto;max-width:100%;width:100%}.xwk-address-qr-chip{background:${theme.surface};border:1px solid ${theme.border};border-radius:12px;box-sizing:border-box;color:${theme.muted};font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;font-weight:520;line-height:1.45;max-width:100%;overflow-wrap:anywhere;padding:9px 11px;text-align:center;width:100%}.xwk-address-qr-fallback{color:${theme.muted};font-size:12px;line-height:1.45;overflow-wrap:anywhere}.xwk-tx-section{background:${theme.surface};border:1px solid ${actionBorder};border-radius:${theme.walletRadius};box-sizing:border-box;display:grid;overflow:hidden;width:100%}.xwk-tx-header{-webkit-tap-highlight-color:transparent;align-items:center;background:${theme.surface};border:0;box-shadow:none;color:${theme.muted};display:flex;font:inherit;font-size:10px;font-weight:650;gap:6px;letter-spacing:.07em;line-height:1.2;margin:0;min-height:34px;outline:none;padding:0 12px;text-align:left;text-transform:uppercase;transform:none;width:100%}.xwk-tx-header-link{-webkit-appearance:none;-webkit-tap-highlight-color:transparent;align-items:center;appearance:none;background:transparent;border:0;border-radius:9px;box-shadow:none;color:${theme.accent};cursor:pointer;display:inline-flex;font:inherit;font-size:11px;font-weight:650;gap:2px;line-height:1;margin-left:auto;min-height:28px;padding:0 6px;text-decoration:none;text-transform:none;touch-action:manipulation;transform:none}.xwk-tx-header-link:hover,.xwk-tx-header-link:active{background:${theme.surfaceHover};box-shadow:none;color:${theme.accent};opacity:1;text-decoration:none;transform:none}.xwk-tx-header-link svg{display:block;height:13px;width:13px}.xwk-tx-count{align-items:center;background:${theme.background};border:1px solid ${actionBorder};border-radius:999px;box-sizing:border-box;color:${theme.muted};display:inline-flex;font-size:10px;font-weight:650;height:16px;justify-content:center;letter-spacing:0;line-height:1;min-width:18px;padding:0 5px;text-transform:none}.xwk-tx-list{display:grid;overflow:hidden}.xwk-tx-list-inner{min-height:0;overflow:hidden}.xwk-tx-history-view{background:${theme.surface};border:1px solid ${actionBorder};border-radius:${theme.walletRadius};box-sizing:border-box;display:grid;overflow:hidden;width:100%}.xwk-tx-history-view .xwk-tx-list-inner{max-height:468px;overflow:auto}.xwk-tx-row{align-items:center;background:${theme.surface};border-top:1px solid ${actionBorder};box-sizing:border-box;display:grid;gap:8px;grid-template-columns:24px minmax(0,1fr) auto;min-height:42px;padding:7px 10px;transition:background-color .16s ease}.xwk-tx-row:hover{background:${theme.surface};box-shadow:none;transform:none}.xwk-tx-row:first-child{border-top:0}.xwk-tx-status{align-items:center;background:${theme.background};border-radius:999px;color:${theme.accent};display:inline-flex;height:24px;justify-content:center;position:relative;width:24px}.xwk-tx-row-submitted .xwk-tx-status:before{animation:xwk-pulse-ring 1.4s ease-out infinite;border:1px solid currentColor;border-radius:999px;content:"";inset:2px;opacity:.42;position:absolute}.xwk-tx-row-confirmed .xwk-tx-status{color:${theme.success}}.xwk-tx-row-failed .xwk-tx-status{color:${theme.error}}.xwk-tx-row-unknown .xwk-tx-status{color:${theme.muted}}.xwk-tx-main{display:grid;gap:2px;min-width:0}.xwk-tx-label{color:${theme.foreground};font-size:12px;font-weight:600;line-height:1.15;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.xwk-tx-hash{color:${theme.muted};font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;line-height:1.15;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.xwk-tx-link{align-items:center;border-radius:9px;color:${theme.accent};display:inline-flex;font:inherit;font-size:12px;font-weight:650;gap:3px;line-height:1.2;min-height:28px;padding:0 6px;text-decoration:none}.xwk-tx-link:hover{background:${theme.surfaceHover};box-shadow:none;text-decoration:none;transform:none}.xwk-tx-link svg{height:12px;width:12px}.xwk-tx-empty{background:${theme.surface};border:1px solid ${actionBorder};border-radius:${theme.walletRadius};box-sizing:border-box;color:${theme.muted};font-size:13px;line-height:1.35;padding:14px;text-align:center;width:100%}.xwk-tx-spinner{animation:xwk-action-spin .8s linear infinite;border:2px solid ${theme.spinnerTrail};border-top-color:${theme.accent};border-radius:999px;box-sizing:border-box;display:block;height:14px;width:14px}.xwk-account-panel-actions{display:grid;gap:10px;grid-template-columns:1fr;width:100%}.xwk-account-modal-body .xwk-account-panel-actions{margin-top:auto}.xwk-account-panel-with-transactions .xwk-account-modal-body .xwk-account-panel-actions{margin-top:0}.xwk-account-panel-actions button,.xwk-account-panel-actions a{-webkit-appearance:none;-webkit-tap-highlight-color:transparent;align-items:center;appearance:none;background:${theme.surface};border:1px solid ${actionBorder};border-radius:${theme.walletRadius};box-shadow:none;box-sizing:border-box;color:${theme.foreground};cursor:pointer;display:flex;font:inherit;font-size:14px;font-weight:560;gap:8px;justify-content:center;line-height:1.2;min-height:46px;min-width:0;outline:none;overflow:hidden;padding:0 12px;text-decoration:none;touch-action:manipulation;transform:none;transition:background-color .16s ease,border-color .16s ease;width:100%}.xwk-account-panel-actions button:disabled{cursor:wait;opacity:1}.xwk-account-panel-actions svg{flex:0 0 auto;opacity:.58}.xwk-account-panel-actions span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.xwk-account-panel-actions button:hover,.xwk-account-panel-actions a:hover{background:${theme.surfaceHover};border-color:${actionBorder};box-shadow:none;text-decoration:none;transform:none}.xwk-account-panel-actions button:active,.xwk-account-panel-actions a:active{background:${theme.surfaceHover};opacity:1;text-decoration:none;transform:none}.xwk-copied-icon{color:${theme.success};opacity:1!important}.xwk-action-spinner{animation:xwk-action-spin .8s linear infinite;border:2px solid ${theme.spinnerTrail};border-top-color:${theme.muted};border-radius:999px;box-sizing:border-box;display:inline-block;height:17px;width:17px}@keyframes xwk-action-spin{to{transform:rotate(360deg)}}@keyframes xwk-skeleton-pulse{0%{background-position:200% 0}100%{background-position:-200% 0}}@keyframes xwk-pulse-ring{0%{opacity:.42;transform:scale(.8)}80%,100%{opacity:0;transform:scale(1.45)}}@keyframes xwk-account-overlay-in{from{opacity:0}to{opacity:1}}@keyframes xwk-account-panel-in{from{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@media(prefers-reduced-motion:reduce){.xwk-account-button,.xwk-tx-header-link,.xwk-account-panel-actions button,.xwk-account-panel-actions a{transition:none}.xwk-account-portal[data-xwk-entering="true"] .xwk-account-overlay,.xwk-account-portal[data-xwk-entering="true"] .xwk-account-panel-modal{animation-duration:1ms!important}.xwk-action-spinner,.xwk-balance-spinner,.xwk-tx-spinner,.xwk-skeleton,.xwk-tx-row-submitted .xwk-tx-status:before{animation:none}}@media(max-width:520px){.xwk-account-panel-dropdown{bottom:0;left:0;margin-top:0;min-width:0;position:fixed;right:0;top:auto;width:100vw}.xwk-account-overlay{align-items:flex-end;padding:max(12px,env(safe-area-inset-top)) 0 0}.xwk-account-panel-modal{align-self:flex-end;border-bottom:0;border-bottom-left-radius:0;border-bottom-right-radius:0;border-left:0;border-right:0;border-top-left-radius:${theme.radius};border-top-right-radius:${theme.radius};height:min(527px,calc(100dvh - env(safe-area-inset-top)));max-width:none;width:100vw}.xwk-account-panel-modal.xwk-account-panel-with-transactions,.xwk-account-panel-modal.xwk-account-panel-history{height:min(650px,calc(100dvh - env(safe-area-inset-top)))}.xwk-account-portal[data-xwk-entering="true"] .xwk-account-panel-modal{animation:xwk-account-sheet-in .28s cubic-bezier(.32,.72,0,1)}.xwk-account-modal-header{border-top-left-radius:${theme.radius};border-top-right-radius:${theme.radius};grid-template-columns:44px minmax(0,1fr) 44px;padding:10px 16px}.xwk-account-modal-body{min-height:0;padding:18px 20px max(22px,calc(22px + env(safe-area-inset-bottom)))}.xwk-button-label{max-width:min(150px,calc(100vw - 140px))}}@keyframes xwk-account-sheet-in{from{opacity:1;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}`;
|
|
22062
|
+
return `${baseStyles}${this.renderSkeletonPrimitiveStyles(theme, iconBorder)}`;
|
|
22063
|
+
}
|
|
22064
|
+
renderSkeletonPrimitiveStyles(theme, iconBorder) {
|
|
22065
|
+
return `.xwk-skeleton-circle{border-radius:999px}.xwk-skeleton-line{height:14px;border-radius:4px}.xwk-skeleton-pill{border-radius:999px}.xwk-skeleton-card,.xwk-skeleton-button{border-radius:${theme.walletRadius}}.xwk-skeleton-row{align-items:center;display:flex;gap:12px;width:100%}.xwk-skeleton-button-icon{height:28px;width:28px}.xwk-skeleton-button-label{height:14px;width:92px}.xwk-account-button-loading .xwk-button-label{align-items:center;display:inline-flex}.xwk-button-icon-loading{background:transparent;border-color:${iconBorder};padding:0}.xwk-account-avatar-skeleton{background:${theme.surface};border:1px solid ${iconBorder};box-sizing:border-box;overflow:hidden}.xwk-account-avatar-skeleton>span{height:100%;width:100%}.xwk-tx-skeleton-row{grid-template-columns:24px minmax(0,1fr) auto}.xwk-tx-skeleton-main{display:grid;gap:6px;min-width:0}.xwk-tx-skeleton-label{height:13px;width:86px}.xwk-tx-skeleton-hash{height:11px;width:132px}@media(prefers-reduced-motion:reduce){.xwk-skeleton{animation:none!important;background:${theme.surfaceHover}!important}}`;
|
|
21728
22066
|
}
|
|
21729
22067
|
resolveTheme() {
|
|
21730
22068
|
return resolveWalletTheme({
|
|
@@ -21869,6 +22207,9 @@ ${new this._window.XMLSerializer().serializeToString(e4)}`;
|
|
|
21869
22207
|
return value;
|
|
21870
22208
|
}
|
|
21871
22209
|
}
|
|
22210
|
+
function compactButtonOptions(options) {
|
|
22211
|
+
return Object.fromEntries(Object.entries(options).filter(([, value]) => value !== void 0));
|
|
22212
|
+
}
|
|
21872
22213
|
function createWalletButton(options) {
|
|
21873
22214
|
const button = new WalletButtonController(options);
|
|
21874
22215
|
if (options.target)
|
|
@@ -22003,7 +22344,7 @@ ${new this._window.XMLSerializer().serializeToString(e4)}`;
|
|
|
22003
22344
|
}
|
|
22004
22345
|
ensureStyles() {
|
|
22005
22346
|
const styles2 = this.renderStyles();
|
|
22006
|
-
ensureWalletStyle(
|
|
22347
|
+
ensureWalletStyle("xwk-toast", styles2);
|
|
22007
22348
|
}
|
|
22008
22349
|
getExplorerUrl(hash2, network) {
|
|
22009
22350
|
var _a2, _b;
|
|
@@ -22100,6 +22441,7 @@ ${new this._window.XMLSerializer().serializeToString(e4)}`;
|
|
|
22100
22441
|
if (modal && modalOptions.autoOpen) {
|
|
22101
22442
|
modal.autoOpen();
|
|
22102
22443
|
}
|
|
22444
|
+
const subscribe2 = createKitSubscriber(manager);
|
|
22103
22445
|
return {
|
|
22104
22446
|
manager,
|
|
22105
22447
|
modal,
|
|
@@ -22112,11 +22454,52 @@ ${new this._window.XMLSerializer().serializeToString(e4)}`;
|
|
|
22112
22454
|
refreshBalance: () => button == null ? void 0 : button.refreshBalance(),
|
|
22113
22455
|
refreshAccount: () => button == null ? void 0 : button.refreshAccount(),
|
|
22114
22456
|
getSession: () => manager.getSession(),
|
|
22457
|
+
on: manager.on.bind(manager),
|
|
22458
|
+
off: manager.off.bind(manager),
|
|
22459
|
+
once: manager.once.bind(manager),
|
|
22460
|
+
subscribe: subscribe2,
|
|
22115
22461
|
signAndSubmit: manager.signAndSubmit.bind(manager),
|
|
22116
22462
|
signTransaction: manager.signTransaction.bind(manager),
|
|
22117
22463
|
signMessage: manager.signMessage.bind(manager)
|
|
22118
22464
|
};
|
|
22119
22465
|
}
|
|
22466
|
+
function createKitSubscriber(manager) {
|
|
22467
|
+
function snapshot2(eventName, event) {
|
|
22468
|
+
const status = eventName === "connecting" ? "connecting" : manager.getSession() ? "connected" : "disconnected";
|
|
22469
|
+
return {
|
|
22470
|
+
status,
|
|
22471
|
+
session: manager.getSession(),
|
|
22472
|
+
account: manager.getAccount(),
|
|
22473
|
+
eventName,
|
|
22474
|
+
event
|
|
22475
|
+
};
|
|
22476
|
+
}
|
|
22477
|
+
function subscribe2(eventNameOrHandler, maybeHandler) {
|
|
22478
|
+
if (typeof eventNameOrHandler === "function") {
|
|
22479
|
+
const handler = eventNameOrHandler;
|
|
22480
|
+
const eventNames = [
|
|
22481
|
+
"connecting",
|
|
22482
|
+
"connected",
|
|
22483
|
+
"disconnected",
|
|
22484
|
+
"session_restored",
|
|
22485
|
+
"session_stale",
|
|
22486
|
+
"session_expired",
|
|
22487
|
+
"accountChanged",
|
|
22488
|
+
"networkChanged"
|
|
22489
|
+
];
|
|
22490
|
+
const unsubs = eventNames.map((eventName) => manager.on(eventName, (event) => {
|
|
22491
|
+
handler(snapshot2(eventName, event));
|
|
22492
|
+
}));
|
|
22493
|
+
handler(snapshot2());
|
|
22494
|
+
return () => unsubs.forEach((unsubscribe) => unsubscribe());
|
|
22495
|
+
}
|
|
22496
|
+
if (!maybeHandler) {
|
|
22497
|
+
throw new TypeError("kit.subscribe(eventName, handler) requires a handler.");
|
|
22498
|
+
}
|
|
22499
|
+
return manager.on(eventNameOrHandler, maybeHandler);
|
|
22500
|
+
}
|
|
22501
|
+
return subscribe2;
|
|
22502
|
+
}
|
|
22120
22503
|
function scheduleAutoReconnect(manager) {
|
|
22121
22504
|
const run = () => {
|
|
22122
22505
|
const requestFrame = typeof globalThis.requestAnimationFrame === "function" ? globalThis.requestAnimationFrame.bind(globalThis) : (callback) => globalThis.setTimeout(() => callback(Date.now()), 16);
|
|
@@ -22163,16 +22546,12 @@ ${new this._window.XMLSerializer().serializeToString(e4)}`;
|
|
|
22163
22546
|
adapters.push(createXrplSnapAdapter());
|
|
22164
22547
|
if (options.walletConnectProjectId && shouldIncludeWalletConnect(ids)) {
|
|
22165
22548
|
const walletConnectUiMode = getWalletConnectUiMode(options);
|
|
22549
|
+
const appMetadata = resolveAppMetadata(options);
|
|
22166
22550
|
adapters.push(...createWalletConnectAdapters({
|
|
22167
22551
|
projectId: options.walletConnectProjectId,
|
|
22168
22552
|
mode: walletConnectUiMode === "default" ? "default" : "details",
|
|
22169
22553
|
wallets: resolveWalletConnectWallets(ids),
|
|
22170
|
-
metadata: createWalletConnectMetadata(
|
|
22171
|
-
name: options.appName,
|
|
22172
|
-
description: options.appDescription ?? `${options.appName} XRPL wallet connection`,
|
|
22173
|
-
url: options.appUrl ?? getCurrentOrigin(),
|
|
22174
|
-
icons: options.appIcons ?? []
|
|
22175
|
-
}),
|
|
22554
|
+
metadata: createWalletConnectMetadata(appMetadata),
|
|
22176
22555
|
onQr,
|
|
22177
22556
|
signMessageDestination: options.walletConnectSignMessageDestination,
|
|
22178
22557
|
useModal: walletConnectUiMode === "default" ? true : void 0,
|
|
@@ -22289,6 +22668,24 @@ ${new this._window.XMLSerializer().serializeToString(e4)}`;
|
|
|
22289
22668
|
function getCurrentOrigin() {
|
|
22290
22669
|
return typeof window !== "undefined" ? window.location.origin : "https://xrpl.org";
|
|
22291
22670
|
}
|
|
22671
|
+
function resolveAppMetadata(options) {
|
|
22672
|
+
var _a2, _b, _c, _d;
|
|
22673
|
+
const name = nonEmptyString((_a2 = options.metadata) == null ? void 0 : _a2.name) ?? nonEmptyString(options.appName) ?? "XRPL dApp";
|
|
22674
|
+
return {
|
|
22675
|
+
name,
|
|
22676
|
+
description: nonEmptyString((_b = options.metadata) == null ? void 0 : _b.description) ?? nonEmptyString(options.appDescription) ?? `${name} XRPL wallet connection`,
|
|
22677
|
+
url: nonEmptyString((_c = options.metadata) == null ? void 0 : _c.url) ?? nonEmptyString(options.appUrl) ?? getCurrentOrigin(),
|
|
22678
|
+
icons: normalizeIcons(((_d = options.metadata) == null ? void 0 : _d.icons) ?? options.appIcons)
|
|
22679
|
+
};
|
|
22680
|
+
}
|
|
22681
|
+
function nonEmptyString(value) {
|
|
22682
|
+
return typeof value === "string" && value.trim() ? value.trim() : void 0;
|
|
22683
|
+
}
|
|
22684
|
+
function normalizeIcons(icons) {
|
|
22685
|
+
if (!Array.isArray(icons))
|
|
22686
|
+
return [];
|
|
22687
|
+
return icons.filter((icon) => typeof icon === "string" && icon.trim().length > 0);
|
|
22688
|
+
}
|
|
22292
22689
|
function withoutKitOnlyOptions(options) {
|
|
22293
22690
|
const { adapters: _adapters, storage: _storage, walletConnectProjectId: _walletConnectProjectId, walletConnectSignMessageDestination: _walletConnectSignMessageDestination, xamanClientId: _xamanClientId, wallets: _wallets, ui: _ui, ...managerConfig } = options;
|
|
22294
22691
|
return managerConfig;
|