@rhinestone/deposit-modal 0.3.0-alpha.13 → 0.3.0-alpha.14

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.
@@ -2063,11 +2063,9 @@ function ConnectStep({
2063
2063
  {
2064
2064
  leading: TRANSFER_CRYPTO_LEADING,
2065
2065
  title: "Transfer crypto",
2066
- subtitle: transferCryptoState === "loading" ? "Preparing\u2026" : transferCryptoState === "error" ? transferCryptoErrorReason ?? "Couldn't prepare account \u2014 tap to retry" : "Instant - No limit",
2066
+ subtitle: transferCryptoState === "error" ? transferCryptoErrorReason ?? "Couldn't prepare account \u2014 tap to retry" : "Instant - No limit",
2067
2067
  meta: CHAIN_BADGE_META,
2068
- onClick: onSelectTransferCrypto,
2069
- disabled: transferCryptoState === "loading",
2070
- trailing: transferCryptoState === "loading" ? SMALL_SPINNER : void 0
2068
+ onClick: onSelectTransferCrypto
2071
2069
  }
2072
2070
  ),
2073
2071
  fiatPaymentMethods && fiatPaymentMethods.length > 0 && onSelectFiatMethod ? fiatPaymentMethods.map((opt) => /* @__PURE__ */ jsx14(
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  isUnsupportedChainSwitchError
3
- } from "./chunk-6K4JHM2D.mjs";
3
+ } from "./chunk-4ZN726P5.mjs";
4
4
  import {
5
5
  SUPPORTED_CHAINS,
6
6
  getChainName
@@ -1,6 +1,6 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
2
2
 
3
- var _chunkDZNXG5JKcjs = require('./chunk-DZNXG5JK.cjs');
3
+ var _chunkN4XRQPVAcjs = require('./chunk-N4XRQPVA.cjs');
4
4
 
5
5
 
6
6
 
@@ -145,7 +145,7 @@ function useReownWallet() {
145
145
  await switchChainAsync({ chainId });
146
146
  }
147
147
  } catch (err) {
148
- if (_chunkDZNXG5JKcjs.isUnsupportedChainSwitchError.call(void 0, err)) {
148
+ if (_chunkN4XRQPVAcjs.isUnsupportedChainSwitchError.call(void 0, err)) {
149
149
  throw new Error(
150
150
  `Switch to ${_chunk7JIDIX27cjs.getChainName.call(void 0, chainId)} in your wallet to continue`
151
151
  );
@@ -2063,11 +2063,9 @@ function ConnectStep({
2063
2063
  {
2064
2064
  leading: TRANSFER_CRYPTO_LEADING,
2065
2065
  title: "Transfer crypto",
2066
- subtitle: transferCryptoState === "loading" ? "Preparing\u2026" : transferCryptoState === "error" ? _nullishCoalesce(transferCryptoErrorReason, () => ( "Couldn't prepare account \u2014 tap to retry")) : "Instant - No limit",
2066
+ subtitle: transferCryptoState === "error" ? _nullishCoalesce(transferCryptoErrorReason, () => ( "Couldn't prepare account \u2014 tap to retry")) : "Instant - No limit",
2067
2067
  meta: CHAIN_BADGE_META,
2068
- onClick: onSelectTransferCrypto,
2069
- disabled: transferCryptoState === "loading",
2070
- trailing: transferCryptoState === "loading" ? SMALL_SPINNER : void 0
2068
+ onClick: onSelectTransferCrypto
2071
2069
  }
2072
2070
  ),
2073
2071
  fiatPaymentMethods && fiatPaymentMethods.length > 0 && onSelectFiatMethod ? fiatPaymentMethods.map((opt) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -31,7 +31,7 @@ import {
31
31
  saveSessionOwnerToStorage,
32
32
  toEvmCaip2,
33
33
  useLatestRef
34
- } from "./chunk-6K4JHM2D.mjs";
34
+ } from "./chunk-4ZN726P5.mjs";
35
35
  import {
36
36
  DEFAULT_BACKEND_URL,
37
37
  DEFAULT_SIGNER_ADDRESS,
@@ -1494,7 +1494,7 @@ function deriveStepView(step, _registration) {
1494
1494
  // src/WithdrawModal.tsx
1495
1495
  import { jsx as jsx4, jsxs as jsxs4 } from "react/jsx-runtime";
1496
1496
  var ReownWithdrawInner = lazy(
1497
- () => import("./WithdrawModalReown-EEWQRENY.mjs").then((m) => ({
1497
+ () => import("./WithdrawModalReown-WRUEALDP.mjs").then((m) => ({
1498
1498
  default: m.WithdrawModalReown
1499
1499
  }))
1500
1500
  );
@@ -52,7 +52,7 @@ import {
52
52
  tokenFormatter,
53
53
  txRefsMatch,
54
54
  useLatestRef
55
- } from "./chunk-6K4JHM2D.mjs";
55
+ } from "./chunk-4ZN726P5.mjs";
56
56
  import {
57
57
  DEFAULT_BACKEND_URL,
58
58
  DEFAULT_SIGNER_ADDRESS,
@@ -1240,7 +1240,38 @@ function DepositNotification({
1240
1240
  const destExplorerUrl = destinationTxHash ? getExplorerTxUrl(targetChain, destinationTxHash) : null;
1241
1241
  const title = status === "complete" ? "Deposit completed" : status === "failed" ? "Deposit failed" : "Deposit received and processing\u2026";
1242
1242
  const subtitle = status === "complete" ? "Your deposit has been credited to your account." : status === "failed" ? "Your deposit could not be processed." : "Your deposit will be credited to your account shortly.";
1243
- const statusIcon = status === "complete" ? /* @__PURE__ */ jsx5("div", { className: "rs-deposit-notification-badge rs-deposit-notification-badge--complete", children: /* @__PURE__ */ jsx5(CheckIcon, {}) }) : status === "failed" ? /* @__PURE__ */ jsx5("div", { className: "rs-deposit-notification-badge rs-deposit-notification-badge--failed", children: /* @__PURE__ */ jsx5(CloseIcon, {}) }) : /* @__PURE__ */ jsx5("div", { className: "rs-deposit-notification-badge rs-deposit-notification-badge--processing", children: /* @__PURE__ */ jsx5(Spinner, {}) });
1243
+ const statusIcon = status === "complete" ? /* @__PURE__ */ jsx5("div", { className: "rs-deposit-notification-badge rs-deposit-notification-badge--complete", children: /* @__PURE__ */ jsx5(CheckIcon, {}) }) : status === "failed" ? /* @__PURE__ */ jsx5("div", { className: "rs-deposit-notification-badge rs-deposit-notification-badge--failed", children: /* @__PURE__ */ jsx5(CloseIcon, {}) }) : /* @__PURE__ */ jsx5("div", { className: "rs-deposit-notification-badge rs-deposit-notification-badge--processing", children: /* @__PURE__ */ jsxs5(
1244
+ "svg",
1245
+ {
1246
+ className: "rs-deposit-notification-spinner",
1247
+ viewBox: "0 0 44 44",
1248
+ fill: "none",
1249
+ xmlns: "http://www.w3.org/2000/svg",
1250
+ "aria-hidden": "true",
1251
+ children: [
1252
+ /* @__PURE__ */ jsx5(
1253
+ "path",
1254
+ {
1255
+ className: "rs-deposit-notification-spinner-track",
1256
+ d: "M21.5882 42.1765C32.9588 42.1765 42.1765 32.9588 42.1765 21.5882C42.1765 10.2177 32.9588 1 21.5882 1C10.2177 1 1 10.2177 1 21.5882C1 32.9588 10.2177 42.1765 21.5882 42.1765Z",
1257
+ stroke: "#D4D4D8",
1258
+ strokeWidth: "2",
1259
+ strokeLinecap: "round"
1260
+ }
1261
+ ),
1262
+ /* @__PURE__ */ jsx5(
1263
+ "path",
1264
+ {
1265
+ className: "rs-deposit-notification-spinner-head",
1266
+ d: "M28.0422 2.03186C31.4239 3.1515 34.458 5.1279 36.8489 7.76854C39.2398 10.4092 40.906 13.624 41.6852 17.1",
1267
+ stroke: "#52525C",
1268
+ strokeWidth: "2",
1269
+ strokeLinecap: "round"
1270
+ }
1271
+ )
1272
+ ]
1273
+ }
1274
+ ) });
1244
1275
  const showClose = status !== "processing";
1245
1276
  return /* @__PURE__ */ jsxs5(
1246
1277
  "div",
@@ -1329,7 +1360,7 @@ function DepositNotification({
1329
1360
  // src/components/steps/DepositAddressStep.tsx
1330
1361
  import { jsx as jsx6, jsxs as jsxs6 } from "react/jsx-runtime";
1331
1362
  var QRCode = lazy(
1332
- () => import("./QRCode-YJ3EGWQS.mjs").then((m) => ({ default: m.QRCode }))
1363
+ () => import("./QRCode-WUC652SH.mjs").then((m) => ({ default: m.QRCode }))
1333
1364
  );
1334
1365
  var POLL_INTERVAL_MS = 4e3;
1335
1366
  function isRecord(value) {
@@ -1418,7 +1449,6 @@ function pickFallbackToken(tokens, current) {
1418
1449
  function DepositAddressStep({
1419
1450
  smartAccount,
1420
1451
  solanaDepositAddress,
1421
- isUpdating = false,
1422
1452
  service,
1423
1453
  allowedRoutes,
1424
1454
  targetChain,
@@ -1544,7 +1574,6 @@ function DepositAddressStep({
1544
1574
  };
1545
1575
  }, [chainDropdownOpen, tokenDropdownOpen]);
1546
1576
  const handleCopy = useCallback2(async () => {
1547
- if (isUpdating) return;
1548
1577
  onCopyAddress?.();
1549
1578
  try {
1550
1579
  await navigator.clipboard.writeText(displayAddress);
@@ -1562,7 +1591,7 @@ function DepositAddressStep({
1562
1591
  setCopied(true);
1563
1592
  setTimeout(() => setCopied(false), 2e3);
1564
1593
  }
1565
- }, [displayAddress, onCopyAddress, isUpdating]);
1594
+ }, [displayAddress, onCopyAddress]);
1566
1595
  const handleSelectChain = useCallback2(
1567
1596
  (nextChain) => {
1568
1597
  const nextTokens = computeTokensForChain(nextChain, allowedTokenSet);
@@ -1818,38 +1847,17 @@ function DepositAddressStep({
1818
1847
  {
1819
1848
  style: { display: "flex", flexDirection: "column", gap: 4, width: "100%" },
1820
1849
  children: [
1850
+ /* @__PURE__ */ jsxs6("div", { className: "rs-deposit-address-well", children: [
1851
+ /* @__PURE__ */ jsx6("div", { className: "rs-deposit-address-qr", children: /* @__PURE__ */ jsx6(
1852
+ Suspense,
1853
+ {
1854
+ fallback: /* @__PURE__ */ jsx6("div", { className: "rs-skeleton rs-skeleton-qr", "aria-hidden": "true" }),
1855
+ children: /* @__PURE__ */ jsx6(QRCode, { value: displayAddress, size: 190, iconSrc: qrIconSrc })
1856
+ }
1857
+ ) }),
1858
+ /* @__PURE__ */ jsx6("div", { className: "rs-deposit-address-value", children: displayAddress })
1859
+ ] }),
1821
1860
  /* @__PURE__ */ jsxs6(
1822
- "div",
1823
- {
1824
- className: `rs-deposit-address-well ${isUpdating ? "rs-deposit-address-well--updating" : ""}`,
1825
- children: [
1826
- /* @__PURE__ */ jsx6("div", { className: "rs-deposit-address-qr", children: /* @__PURE__ */ jsx6(
1827
- Suspense,
1828
- {
1829
- fallback: /* @__PURE__ */ jsx6(
1830
- "div",
1831
- {
1832
- style: {
1833
- width: 200,
1834
- height: 200,
1835
- display: "flex",
1836
- alignItems: "center",
1837
- justifyContent: "center"
1838
- },
1839
- children: /* @__PURE__ */ jsx6(Spinner, {})
1840
- }
1841
- ),
1842
- children: /* @__PURE__ */ jsx6(QRCode, { value: displayAddress, size: 200, iconSrc: qrIconSrc })
1843
- }
1844
- ) }),
1845
- /* @__PURE__ */ jsx6("div", { className: "rs-deposit-address-value", children: displayAddress })
1846
- ]
1847
- }
1848
- ),
1849
- isUpdating ? /* @__PURE__ */ jsxs6("output", { className: "rs-deposit-address-updating", children: [
1850
- /* @__PURE__ */ jsx6(Spinner, { className: "rs-spinner--sm" }),
1851
- "Updating deposit details\u2026"
1852
- ] }) : /* @__PURE__ */ jsxs6(
1853
1861
  "button",
1854
1862
  {
1855
1863
  type: "button",
@@ -6391,7 +6399,6 @@ function DepositFlow({
6391
6399
  handleRetrySetup(dappAddress);
6392
6400
  return;
6393
6401
  }
6394
- if (transferCryptoState !== "ready") return;
6395
6402
  handleSelectTransferCrypto();
6396
6403
  } : void 0,
6397
6404
  onSelectPayWithCard: enableFiatOnramp && dappAddress && (!fiatOnrampMethods || fiatOnrampMethods.length === 0) ? () => handleSelectFiatMethod() : void 0,
@@ -6450,7 +6457,6 @@ function DepositFlow({
6450
6457
  {
6451
6458
  smartAccount: effectiveStep.smartAccount,
6452
6459
  solanaDepositAddress: enableSolana ? effectiveStep.solanaDepositAddress : void 0,
6453
- isUpdating: activeEntry.status !== "ready",
6454
6460
  service,
6455
6461
  allowedRoutes,
6456
6462
  targetChain,
@@ -7157,7 +7163,7 @@ DepositHistoryPanel.displayName = "DepositHistoryPanel";
7157
7163
  // src/DepositModal.tsx
7158
7164
  import { jsx as jsx19, jsxs as jsxs17 } from "react/jsx-runtime";
7159
7165
  var ReownDepositInner = lazy2(
7160
- () => import("./DepositModalReown-HBAWSK6K.mjs").then((m) => ({ default: m.DepositModalReown }))
7166
+ () => import("./DepositModalReown-DIUIB3MU.mjs").then((m) => ({ default: m.DepositModalReown }))
7161
7167
  );
7162
7168
  function sortByCreatedAtDesc(items) {
7163
7169
  return [...items].sort((a, b) => {
package/dist/deposit.cjs CHANGED
@@ -1,8 +1,8 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunkSEOQ66FWcjs = require('./chunk-SEOQ66FW.cjs');
4
- require('./chunk-DZNXG5JK.cjs');
3
+ var _chunk3CYGTYMYcjs = require('./chunk-3CYGTYMY.cjs');
4
+ require('./chunk-N4XRQPVA.cjs');
5
5
  require('./chunk-7JIDIX27.cjs');
6
6
 
7
7
 
8
- exports.DepositModal = _chunkSEOQ66FWcjs.DepositModal;
8
+ exports.DepositModal = _chunk3CYGTYMYcjs.DepositModal;
package/dist/deposit.mjs CHANGED
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  DepositModal
3
- } from "./chunk-HZBO2SIZ.mjs";
4
- import "./chunk-6K4JHM2D.mjs";
3
+ } from "./chunk-XG474KUR.mjs";
4
+ import "./chunk-4ZN726P5.mjs";
5
5
  import "./chunk-SZIYS42B.mjs";
6
6
  export {
7
7
  DepositModal
package/dist/index.cjs CHANGED
@@ -1,10 +1,10 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunkSEOQ66FWcjs = require('./chunk-SEOQ66FW.cjs');
3
+ var _chunk3CYGTYMYcjs = require('./chunk-3CYGTYMY.cjs');
4
4
 
5
5
 
6
- var _chunk6RCOF3XUcjs = require('./chunk-6RCOF3XU.cjs');
7
- require('./chunk-DZNXG5JK.cjs');
6
+ var _chunk2NUXDEEOcjs = require('./chunk-2NUXDEEO.cjs');
7
+ require('./chunk-N4XRQPVA.cjs');
8
8
 
9
9
 
10
10
 
@@ -79,4 +79,4 @@ async function disconnectWallet() {
79
79
 
80
80
 
81
81
 
82
- exports.CHAIN_BY_ID = _chunk7JIDIX27cjs.CHAIN_BY_ID; exports.DEFAULT_BACKEND_URL = _chunk7JIDIX27cjs.DEFAULT_BACKEND_URL; exports.DEFAULT_SIGNER_ADDRESS = _chunk7JIDIX27cjs.DEFAULT_SIGNER_ADDRESS; exports.DepositModal = _chunkSEOQ66FWcjs.DepositModal; exports.NATIVE_TOKEN_ADDRESS = _chunk7JIDIX27cjs.NATIVE_TOKEN_ADDRESS; exports.SOURCE_CHAINS = _chunk7JIDIX27cjs.SOURCE_CHAINS; exports.SUPPORTED_CHAINS = _chunk7JIDIX27cjs.SUPPORTED_CHAINS; exports.WithdrawModal = _chunk6RCOF3XUcjs.WithdrawModal; exports.chainRegistry = _chunk7JIDIX27cjs.chainRegistry; exports.disconnectWallet = disconnectWallet; exports.findChainIdForToken = _chunk7JIDIX27cjs.findChainIdForToken; exports.getChainBadge = _chunk7JIDIX27cjs.getChainBadge; exports.getChainIcon = _chunk7JIDIX27cjs.getChainIcon; exports.getChainId = _chunk7JIDIX27cjs.getChainId; exports.getChainName = _chunk7JIDIX27cjs.getChainName; exports.getChainObject = _chunk7JIDIX27cjs.getChainObject; exports.getExplorerName = _chunk7JIDIX27cjs.getExplorerName; exports.getExplorerTxUrl = _chunk7JIDIX27cjs.getExplorerTxUrl; exports.getExplorerUrl = _chunk7JIDIX27cjs.getExplorerUrl; exports.getSupportedChainIds = _chunk7JIDIX27cjs.getSupportedChainIds; exports.getSupportedTargetTokens = _chunk7JIDIX27cjs.getSupportedTargetTokens; exports.getSupportedTokenSymbolsForChain = _chunk7JIDIX27cjs.getSupportedTokenSymbolsForChain; exports.getTargetTokenSymbolsForChain = _chunk7JIDIX27cjs.getTargetTokenSymbolsForChain; exports.getTokenAddress = _chunk7JIDIX27cjs.getTokenAddress; exports.getTokenDecimals = _chunk7JIDIX27cjs.getTokenDecimals; exports.getTokenDecimalsByAddress = _chunk7JIDIX27cjs.getTokenDecimalsByAddress; exports.getTokenIcon = _chunk7JIDIX27cjs.getTokenIcon; exports.getTokenSymbol = _chunk7JIDIX27cjs.getTokenSymbol; exports.getUsdcAddress = _chunk7JIDIX27cjs.getUsdcAddress; exports.getUsdcDecimals = _chunk7JIDIX27cjs.getUsdcDecimals; exports.isSupportedTokenAddressForChain = _chunk7JIDIX27cjs.isSupportedTokenAddressForChain;
82
+ exports.CHAIN_BY_ID = _chunk7JIDIX27cjs.CHAIN_BY_ID; exports.DEFAULT_BACKEND_URL = _chunk7JIDIX27cjs.DEFAULT_BACKEND_URL; exports.DEFAULT_SIGNER_ADDRESS = _chunk7JIDIX27cjs.DEFAULT_SIGNER_ADDRESS; exports.DepositModal = _chunk3CYGTYMYcjs.DepositModal; exports.NATIVE_TOKEN_ADDRESS = _chunk7JIDIX27cjs.NATIVE_TOKEN_ADDRESS; exports.SOURCE_CHAINS = _chunk7JIDIX27cjs.SOURCE_CHAINS; exports.SUPPORTED_CHAINS = _chunk7JIDIX27cjs.SUPPORTED_CHAINS; exports.WithdrawModal = _chunk2NUXDEEOcjs.WithdrawModal; exports.chainRegistry = _chunk7JIDIX27cjs.chainRegistry; exports.disconnectWallet = disconnectWallet; exports.findChainIdForToken = _chunk7JIDIX27cjs.findChainIdForToken; exports.getChainBadge = _chunk7JIDIX27cjs.getChainBadge; exports.getChainIcon = _chunk7JIDIX27cjs.getChainIcon; exports.getChainId = _chunk7JIDIX27cjs.getChainId; exports.getChainName = _chunk7JIDIX27cjs.getChainName; exports.getChainObject = _chunk7JIDIX27cjs.getChainObject; exports.getExplorerName = _chunk7JIDIX27cjs.getExplorerName; exports.getExplorerTxUrl = _chunk7JIDIX27cjs.getExplorerTxUrl; exports.getExplorerUrl = _chunk7JIDIX27cjs.getExplorerUrl; exports.getSupportedChainIds = _chunk7JIDIX27cjs.getSupportedChainIds; exports.getSupportedTargetTokens = _chunk7JIDIX27cjs.getSupportedTargetTokens; exports.getSupportedTokenSymbolsForChain = _chunk7JIDIX27cjs.getSupportedTokenSymbolsForChain; exports.getTargetTokenSymbolsForChain = _chunk7JIDIX27cjs.getTargetTokenSymbolsForChain; exports.getTokenAddress = _chunk7JIDIX27cjs.getTokenAddress; exports.getTokenDecimals = _chunk7JIDIX27cjs.getTokenDecimals; exports.getTokenDecimalsByAddress = _chunk7JIDIX27cjs.getTokenDecimalsByAddress; exports.getTokenIcon = _chunk7JIDIX27cjs.getTokenIcon; exports.getTokenSymbol = _chunk7JIDIX27cjs.getTokenSymbol; exports.getUsdcAddress = _chunk7JIDIX27cjs.getUsdcAddress; exports.getUsdcDecimals = _chunk7JIDIX27cjs.getUsdcDecimals; exports.isSupportedTokenAddressForChain = _chunk7JIDIX27cjs.isSupportedTokenAddressForChain;
package/dist/index.mjs CHANGED
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  DepositModal
3
- } from "./chunk-HZBO2SIZ.mjs";
3
+ } from "./chunk-XG474KUR.mjs";
4
4
  import {
5
5
  WithdrawModal
6
- } from "./chunk-EC63ZHY4.mjs";
7
- import "./chunk-6K4JHM2D.mjs";
6
+ } from "./chunk-VD4WTEHP.mjs";
7
+ import "./chunk-4ZN726P5.mjs";
8
8
  import {
9
9
  CHAIN_BY_ID,
10
10
  DEFAULT_BACKEND_URL,
package/dist/styles.css CHANGED
@@ -391,21 +391,17 @@
391
391
  padding-inline: 16px;
392
392
  }
393
393
 
394
- .rs-modal-body::-webkit-scrollbar {
395
- width: 6px;
394
+ /* Scrollbars are hidden throughout the modal UI. The portfolio list
395
+ (.rs-asset-list) is the sole exception — it keeps a visible scrollbar since
396
+ it's a long, independently-scrolling list. The :not() exemption also keeps
397
+ this rule's specificity above the per-container scrollbar rules elsewhere. */
398
+ .rs-modal *:not(.rs-asset-list) {
399
+ scrollbar-width: none;
396
400
  }
397
401
 
398
- .rs-modal-body::-webkit-scrollbar-track {
399
- background: transparent;
400
- }
401
-
402
- .rs-modal-body::-webkit-scrollbar-thumb {
403
- background-color: var(--rs-surface-hover);
404
- border-radius: var(--rs-radius-full);
405
- }
406
-
407
- .rs-modal-body::-webkit-scrollbar-thumb:hover {
408
- background-color: var(--rs-muted-foreground);
402
+ .rs-modal *:not(.rs-asset-list)::-webkit-scrollbar {
403
+ width: 0;
404
+ height: 0;
409
405
  }
410
406
 
411
407
  /* =============================================================================
@@ -1111,7 +1107,10 @@
1111
1107
  display: flex;
1112
1108
  flex-direction: column;
1113
1109
  gap: 4px;
1114
- max-height: 320px;
1110
+ /* Figma's asset list is 284px — exactly 4 rows (4×68 + 3×4 gaps). Cap here
1111
+ so wallets with many assets scroll inside instead of growing the modal
1112
+ past the design's height. */
1113
+ max-height: 284px;
1115
1114
  overflow-y: auto;
1116
1115
  overscroll-behavior: contain;
1117
1116
  /* Pull rows back to the row's natural left edge inside a scrollable
@@ -3004,11 +3003,13 @@
3004
3003
  align-items: center;
3005
3004
  justify-content: space-between;
3006
3005
  gap: 6px;
3006
+ white-space: nowrap;
3007
3007
  }
3008
3008
 
3009
3009
  .rs-deposit-address-min {
3010
3010
  display: inline-flex;
3011
3011
  align-items: center;
3012
+ flex-shrink: 0;
3012
3013
  gap: 4px;
3013
3014
  font-size: 11px;
3014
3015
  font-weight: 500;
@@ -3016,8 +3017,8 @@
3016
3017
  }
3017
3018
 
3018
3019
  .rs-deposit-address-min-icon {
3019
- width: 16px;
3020
- height: 16px;
3020
+ width: 12px;
3021
+ height: 12px;
3021
3022
  flex-shrink: 0;
3022
3023
  color: var(--rs-icon-secondary);
3023
3024
  }
@@ -3041,6 +3042,7 @@
3041
3042
  border: none;
3042
3043
  cursor: pointer;
3043
3044
  font-family: inherit;
3045
+ line-height: normal;
3044
3046
  color: var(--rs-muted);
3045
3047
  text-align: left;
3046
3048
  }
@@ -3202,7 +3204,10 @@
3202
3204
  align-items: center;
3203
3205
  gap: 8px;
3204
3206
  width: 100%;
3205
- padding: 12px;
3207
+ /* 11px vertical (not 12) so the 1px border lands the input at Figma's
3208
+ 48px total height — Figma draws the stroke inside the box, CSS adds it
3209
+ outside. Horizontal stays 12px to match the design. */
3210
+ padding: 11px 12px;
3206
3211
  background: var(--rs-surface-subtle);
3207
3212
  border-radius: 8px;
3208
3213
  border: 1px solid var(--rs-surface-subtle);
@@ -3310,39 +3315,18 @@
3310
3315
  border-radius: 8px;
3311
3316
  }
3312
3317
 
3313
- /* Mid-refetch: dim the address/QR and block interaction so a stale
3314
- registration can't be copied or scanned until setup is ready again. */
3315
- .rs-deposit-address-well--updating {
3316
- opacity: 0.4;
3317
- pointer-events: none;
3318
- filter: grayscale(0.3);
3319
- transition: opacity 0.15s;
3320
- }
3321
-
3322
- .rs-deposit-address-updating {
3323
- display: flex;
3324
- align-items: center;
3325
- justify-content: center;
3326
- gap: 8px;
3327
- width: 100%;
3328
- padding: 10px 12px;
3329
- font-size: 14px;
3330
- font-weight: 500;
3331
- color: var(--rs-muted);
3332
- }
3333
-
3334
3318
  .rs-deposit-address-qr {
3335
3319
  display: flex;
3336
3320
  align-items: center;
3337
3321
  justify-content: center;
3338
- padding: 12px;
3322
+ padding: 16px;
3339
3323
  }
3340
3324
 
3341
3325
  .rs-deposit-address-qr canvas,
3342
3326
  .rs-deposit-address-qr svg {
3343
3327
  display: block;
3344
- width: 200px;
3345
- height: 200px;
3328
+ width: 190px;
3329
+ height: 190px;
3346
3330
  }
3347
3331
 
3348
3332
  .rs-deposit-address-value {
@@ -3384,8 +3368,8 @@
3384
3368
  }
3385
3369
 
3386
3370
  .rs-skeleton-qr {
3387
- width: 200px;
3388
- height: 200px;
3371
+ width: 190px;
3372
+ height: 190px;
3389
3373
  }
3390
3374
 
3391
3375
  .rs-skeleton-address {
@@ -3417,6 +3401,7 @@
3417
3401
  color: var(--rs-foreground);
3418
3402
  font-size: 14px;
3419
3403
  font-weight: 500;
3404
+ line-height: normal;
3420
3405
  font-family: inherit;
3421
3406
  cursor: pointer;
3422
3407
  transition: background-color 0.15s;
@@ -3521,8 +3506,8 @@
3521
3506
  .rs-deposit-notifications {
3522
3507
  position: absolute;
3523
3508
  bottom: 12px;
3524
- left: 12px;
3525
- right: 12px;
3509
+ left: 0;
3510
+ right: 0;
3526
3511
  z-index: 10;
3527
3512
  display: flex;
3528
3513
  flex-direction: column;
@@ -3579,7 +3564,8 @@
3579
3564
  justify-content: center;
3580
3565
  }
3581
3566
 
3582
- .rs-deposit-notification-badge svg {
3567
+ .rs-deposit-notification-badge--complete svg,
3568
+ .rs-deposit-notification-badge--failed svg {
3583
3569
  width: 20px;
3584
3570
  height: 20px;
3585
3571
  }
@@ -3599,9 +3585,29 @@
3599
3585
  color: var(--rs-icon-secondary);
3600
3586
  }
3601
3587
 
3602
- .rs-deposit-notification-badge--processing .rs-spinner {
3588
+ .rs-deposit-notification-spinner {
3603
3589
  width: 42px;
3604
3590
  height: 42px;
3591
+ animation: rs-spin 1s linear infinite;
3592
+ }
3593
+
3594
+ /* Spinner ring/arc colors flip with the theme. Light: a faint zinc-200 ring
3595
+ with a zinc-600 arc on the near-white card. Dark: the Figma values — a
3596
+ zinc-300 ring with a zinc-600 arc on the #18181b card. */
3597
+ .rs-deposit-notification-spinner-track {
3598
+ stroke: #e4e4e7;
3599
+ }
3600
+
3601
+ .rs-deposit-notification-spinner-head {
3602
+ stroke: #52525c;
3603
+ }
3604
+
3605
+ .rs-modal[data-theme="dark"] .rs-deposit-notification-spinner-track {
3606
+ stroke: #d4d4d8;
3607
+ }
3608
+
3609
+ .rs-modal[data-theme="dark"] .rs-deposit-notification-spinner-head {
3610
+ stroke: #52525c;
3605
3611
  }
3606
3612
 
3607
3613
  .rs-deposit-notification-content {
@@ -4049,23 +4055,6 @@
4049
4055
  padding-right: 2px;
4050
4056
  }
4051
4057
 
4052
- .rs-history-list::-webkit-scrollbar {
4053
- width: 6px;
4054
- }
4055
-
4056
- .rs-history-list::-webkit-scrollbar-thumb {
4057
- background-color: var(--rs-surface-hover);
4058
- border-radius: var(--rs-radius-full);
4059
- }
4060
-
4061
- .rs-history-list::-webkit-scrollbar-thumb:hover {
4062
- background-color: var(--rs-muted-foreground);
4063
- }
4064
-
4065
- .rs-history-list::-webkit-scrollbar-track {
4066
- background: transparent;
4067
- }
4068
-
4069
4058
  /* Card */
4070
4059
  .rs-history-card {
4071
4060
  width: 100%;
@@ -4408,6 +4397,12 @@
4408
4397
  gap: 8px;
4409
4398
  }
4410
4399
 
4400
+ /* Figma gives subtitle headers a 12px icon→title gap (vs 8px for title-only
4401
+ headers like the QR screen). */
4402
+ .rs-body-header:has(.rs-body-header-subtitle) {
4403
+ gap: 12px;
4404
+ }
4405
+
4411
4406
  .rs-body-header-icon {
4412
4407
  display: inline-flex;
4413
4408
  align-items: center;
@@ -4456,7 +4451,7 @@
4456
4451
  .rs-body-header-subtitle {
4457
4452
  font-size: 14px;
4458
4453
  font-weight: 500;
4459
- line-height: 1.4;
4454
+ line-height: normal;
4460
4455
  color: var(--rs-muted);
4461
4456
  margin: 0;
4462
4457
  }
package/dist/withdraw.cjs CHANGED
@@ -1,8 +1,8 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunk6RCOF3XUcjs = require('./chunk-6RCOF3XU.cjs');
4
- require('./chunk-DZNXG5JK.cjs');
3
+ var _chunk2NUXDEEOcjs = require('./chunk-2NUXDEEO.cjs');
4
+ require('./chunk-N4XRQPVA.cjs');
5
5
  require('./chunk-7JIDIX27.cjs');
6
6
 
7
7
 
8
- exports.WithdrawModal = _chunk6RCOF3XUcjs.WithdrawModal;
8
+ exports.WithdrawModal = _chunk2NUXDEEOcjs.WithdrawModal;
package/dist/withdraw.mjs CHANGED
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  WithdrawModal
3
- } from "./chunk-EC63ZHY4.mjs";
4
- import "./chunk-6K4JHM2D.mjs";
3
+ } from "./chunk-VD4WTEHP.mjs";
4
+ import "./chunk-4ZN726P5.mjs";
5
5
  import "./chunk-SZIYS42B.mjs";
6
6
  export {
7
7
  WithdrawModal
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rhinestone/deposit-modal",
3
- "version": "0.3.0-alpha.13",
3
+ "version": "0.3.0-alpha.14",
4
4
  "description": "React modal component for Rhinestone cross-chain deposits",
5
5
  "author": "Rhinestone <dev@rhinestone.wtf>",
6
6
  "bugs": {