@nibgate/sdk 0.2.35 → 0.2.37

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/nibgate.js CHANGED
@@ -27358,9 +27358,11 @@ ${prettyStateOverride(stateOverride)}`;
27358
27358
  <div style="font-size:50px;font-weight:700;letter-spacing:-.03em;color:${theme.fg};margin-bottom:12px">${esc(resource.price)} USDC</div>
27359
27359
  <div style="font-size:21px;color:${theme.muted};margin-bottom:48px">Pay to unlock this content</div>
27360
27360
  <div data-nibgate-wallet-label class="nui-mono" style="font-size:18px;color:${theme.muted};margin-bottom:40px;min-height:28px">Connect wallet</div>
27361
- <div data-nibgate-unlock-wrap style="width:100%;position:relative;border-radius:10px;overflow:hidden;cursor:pointer">
27362
- <div data-nibgate-unlock-progress style="position:absolute;inset:0;width:0%;background:rgba(255,255,255,0.35);border-radius:10px;transition:width .05s linear;z-index:2"></div>
27363
- <button type="button" data-nibgate-unlock style="width:100%;padding:14px 0;font-size:17px;font-weight:600;line-height:1;border:0;border-radius:10px;outline:none;cursor:pointer;position:relative;z-index:4;color:#fff;background:${theme.accent};box-shadow:0 4px 12px rgba(0,0,0,0.15);transition:transform .1s,box-shadow .1s;font-family:inherit;display:flex;align-items:center;justify-content:center">${unlockSVG}Hold to pay</button></div>
27361
+ <div data-nibgate-unlock-wrap style="width:100%;position:relative;border-radius:10px;cursor:pointer">
27362
+ <button type="button" data-nibgate-unlock disabled style="width:100%;padding:14px 0;font-size:17px;font-weight:600;line-height:1;border:0;border-radius:10px;outline:none;cursor:pointer;position:relative;overflow:hidden;color:#fff;background:${theme.accent};box-shadow:0 4px 12px rgba(0,0,0,0.15);transition:transform .1s,box-shadow .1s;font-family:inherit;display:flex;align-items:center;justify-content:center">
27363
+ <div data-nibgate-unlock-progress style="position:absolute;inset:0;width:0%;background:rgba(255,255,255,0.55);border-radius:10px;transition:width .05s linear"></div>
27364
+ <span data-nibgate-unlock-text style="position:relative;z-index:1;display:flex;align-items:center;justify-content:center;gap:8px">${unlockSVG}Hold to pay</span>
27365
+ </button></div>
27364
27366
  <div class="nui-stat" style="text-align:center;margin-top:16px" data-nibgate-status></div>
27365
27367
  </div>
27366
27368
  <div data-nibgate-premium hidden style="margin-top:32px;border-top:1px solid ${theme.border};padding-top:32px">${options.premiumContentHTML || ""}</div>
@@ -27405,6 +27407,7 @@ ${prettyStateOverride(stateOverride)}`;
27405
27407
  const wrap3 = card.querySelector("[data-nibgate-unlock-wrap]");
27406
27408
  const prog = card.querySelector("[data-nibgate-unlock-progress]");
27407
27409
  const btn = card.querySelector("[data-nibgate-unlock]");
27410
+ const textEl = card.querySelector("[data-nibgate-unlock-text]");
27408
27411
  const HOLD_MS = 1500;
27409
27412
  let holdTimer = null, holdActive = false, holdComplete = false;
27410
27413
  const ctrl = createEvmGatewayUnlock(resource, {
@@ -27438,13 +27441,13 @@ ${prettyStateOverride(stateOverride)}`;
27438
27441
  label.innerHTML = shortAddress(addr) + ' <span data-nibgate-disconnect style="cursor:pointer">\xB7 Disconnect</span> <span data-nibgate-bal style="margin-left:4px;cursor:pointer;white-space:nowrap;color:var(--accent,#7c9a6d)">\xB7 <span data-nibgate-bal-txt></span> | ' + depIcon() + "</span>";
27439
27442
  balEl = label.querySelector("[data-nibgate-bal]");
27440
27443
  balEl?.addEventListener("click", showDeposit);
27441
- btn.style.opacity = "1";
27444
+ btn.disabled = false;
27442
27445
  btn.style.cursor = "pointer";
27443
27446
  } else {
27444
27447
  label.innerHTML = "Connect wallet";
27445
- btn.style.opacity = "0.6";
27446
- btn.style.cursor = "pointer";
27447
- btn.innerHTML = unlockSVG + "Hold to pay";
27448
+ btn.disabled = true;
27449
+ btn.style.cursor = "default";
27450
+ textEl.innerHTML = unlockSVG + "Hold to pay";
27448
27451
  }
27449
27452
  }
27450
27453
  function attachBalClick() {
@@ -27455,7 +27458,7 @@ ${prettyStateOverride(stateOverride)}`;
27455
27458
  }
27456
27459
  }
27457
27460
  function setBtnText(t) {
27458
- btn.innerHTML = unlockSVG + (t || "Hold to pay");
27461
+ textEl.innerHTML = unlockSVG + t;
27459
27462
  }
27460
27463
  function resetHold() {
27461
27464
  holdActive = false;
@@ -27464,29 +27467,11 @@ ${prettyStateOverride(stateOverride)}`;
27464
27467
  btn.style.transform = "";
27465
27468
  btn.style.boxShadow = "";
27466
27469
  prog.style.width = "0%";
27467
- setBtnText("Hold to pay");
27470
+ if (!btn.disabled) setBtnText("Hold to pay");
27468
27471
  }
27469
27472
  function startHold(e) {
27470
- if (holdActive) return;
27473
+ if (btn.disabled || holdActive) return;
27471
27474
  e.preventDefault();
27472
- if (!ctrl.getWalletAddress()) {
27473
- setBtnText("Connecting\u2026");
27474
- btn.style.opacity = "0.6";
27475
- ctrl.connect().then(() => {
27476
- updateLabel();
27477
- btn.style.opacity = "1";
27478
- setBtnText("Hold\u2026");
27479
- beginHold();
27480
- }).catch(() => {
27481
- updateLabel();
27482
- btn.style.opacity = "1";
27483
- setBtnText("Hold to pay");
27484
- });
27485
- return;
27486
- }
27487
- beginHold();
27488
- }
27489
- function beginHold() {
27490
27475
  holdActive = true;
27491
27476
  holdComplete = false;
27492
27477
  btn.style.transform = "scale(0.96)";
@@ -27505,7 +27490,7 @@ ${prettyStateOverride(stateOverride)}`;
27505
27490
  btn.style.boxShadow = "";
27506
27491
  prog.style.transition = "width .05s linear";
27507
27492
  setBtnText("Processing\u2026");
27508
- btn.style.opacity = "0.6";
27493
+ btn.disabled = true;
27509
27494
  setTimeout(() => ctrl.unlock().then(updateLabel).catch(updateLabel), 300);
27510
27495
  }, HOLD_MS);
27511
27496
  }
@@ -27515,9 +27500,7 @@ ${prettyStateOverride(stateOverride)}`;
27515
27500
  resetHold();
27516
27501
  }
27517
27502
  label.addEventListener("click", (e) => {
27518
- if (e.target.dataset.nibgateDisconnect !== void 0) {
27519
- ctrl.disconnect().then(updateLabel);
27520
- } else if (!ctrl.getWalletAddress()) {
27503
+ if (!ctrl.getWalletAddress()) {
27521
27504
  ctrl.connect().then(updateLabel).catch(() => updateLabel());
27522
27505
  }
27523
27506
  });
@@ -27526,6 +27509,17 @@ ${prettyStateOverride(stateOverride)}`;
27526
27509
  document.addEventListener("mouseup", cancelHold);
27527
27510
  document.addEventListener("touchend", cancelHold);
27528
27511
  wrap3.addEventListener("mouseleave", cancelHold);
27512
+ function pressIn() {
27513
+ if (!btn.style.transform || btn.style.transform === "none" || btn.style.transform === "") btn.style.transform = "scale(0.97)";
27514
+ }
27515
+ function pressOut() {
27516
+ if (!holdActive) btn.style.transform = "";
27517
+ }
27518
+ btn.addEventListener("mousedown", pressIn);
27519
+ btn.addEventListener("touchstart", pressIn, { passive: true });
27520
+ btn.addEventListener("mouseup", pressOut);
27521
+ btn.addEventListener("touchend", pressOut);
27522
+ btn.addEventListener("mouseleave", pressOut);
27529
27523
  setTimeout(updateLabel, 200);
27530
27524
  const cleanup = () => {
27531
27525
  document.removeEventListener("mouseup", cancelHold);
@@ -27587,7 +27581,7 @@ ${prettyStateOverride(stateOverride)}`;
27587
27581
  }
27588
27582
  }
27589
27583
  if (window.ethereum) {
27590
- balTimer = setInterval(refreshBal, 15e3);
27584
+ balTimer = setInterval(refreshBal, 3e3);
27591
27585
  setTimeout(refreshBal, 1e3);
27592
27586
  window.ethereum.on("accountsChanged", refreshBal);
27593
27587
  }