@nibgate/sdk 0.2.20 → 0.2.22

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
@@ -27314,7 +27314,6 @@ ${prettyStateOverride(stateOverride)}`;
27314
27314
  const s = h("style", { id: SID }, `
27315
27315
  @keyframes nfade { from { opacity:0;transform:translateY(6px) } to { opacity:1;transform:translateY(0) } }
27316
27316
  @keyframes nscale { from { opacity:0;transform:scale(0.96) } to { opacity:1;transform:scale(1) } }
27317
- @keyframes nshimmer { 0% { transform:translateX(-100%) } 100% { transform:translateX(100%) } }
27318
27317
 
27319
27318
  .nui { font-family:var(--font-content,'Kumbh Sans','ABC Favorit',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif);color:${theme.fg};line-height:1.5;-webkit-font-smoothing:antialiased;font-size:19px }
27320
27319
  .nui *,.nui *::before,.nui *::after { box-sizing:border-box }
@@ -27352,17 +27351,16 @@ ${prettyStateOverride(stateOverride)}`;
27352
27351
  function renderDefaultUnlockUI(container, resource, options = {}) {
27353
27352
  inject();
27354
27353
  const card = el("div", { cls: "nui", style: { animation: "nfade .2s ease-out" } });
27355
- const lockSVG = '<svg width="24" height="24" viewBox="0 0 32 32" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" style="vertical-align:middle"><path d="M6 16v8a3 3 0 0 0 3 3h14a3 3 0 0 0 3-3v-8"/><path d="M10 16v-5a6 6 0 0 1 12 0v5"/><circle cx="16" cy="21" r="2"/></svg>';
27354
+ const unlockSVG = '<svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="vertical-align:middle;margin-right:6px"><rect x="3" y="11" width="18" height="11" rx="2" ry="2"/><path d="M7 11V7a5 5 0 0 1 9.9-1"/></svg>';
27356
27355
  card.innerHTML = `
27357
27356
  <div style="display:flex;flex-direction:column;align-items:center;text-align:center;max-width:580px;margin:0 auto;padding:40px 52px">
27358
27357
  <div id="nibgate-lottie" style="width:165px;height:168px;margin-bottom:24px"></div>
27359
27358
  <div style="font-size:50px;font-weight:700;letter-spacing:-.03em;color:${theme.fg};margin-bottom:12px">${esc(resource.price)} USDC</div>
27360
27359
  <div style="font-size:21px;color:${theme.muted};margin-bottom:48px">Pay to unlock this content</div>
27361
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>
27362
- <div data-nibgate-unlock-wrap style="width:100%;position:relative;border-radius:12px;overflow:hidden;cursor:pointer">
27363
- <div data-nibgate-unlock-progress style="position:absolute;inset:0;width:0%;background:linear-gradient(90deg,rgba(255,255,255,0.1),rgba(255,255,255,0.45));border-radius:12px;transition:width .05s linear;z-index:2"></div>
27364
- <div data-nibgate-shimmer style="position:absolute;inset:0;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,0.12),transparent);border-radius:12px;transform:translateX(-100%);z-index:3;pointer-events:none"></div>
27365
- <button type="button" data-nibgate-unlock disabled class="nui-btn nui-btn-primary" style="width:100%;padding:24px 32px;font-size:24px;position:relative;z-index:4;background:${theme.accent};transition:transform .1s,opacity .15s;display:flex">${lockSVG}Hold to pay ${esc(resource.price)} USDC</button></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:${theme.accent};opacity:0.15;border-radius:10px;transition:width .05s linear;z-index:2"></div>
27363
+ <button type="button" data-nibgate-unlock disabled style="width:100%;padding:14px 0;font-size:17px;font-weight:500;line-height:1;border:0;border-radius:10px;outline:none;cursor:pointer;position:relative;z-index:4;color:${theme.accent};background:rgba(124,154,109,0.08);transition:box-shadow .3s,transform .3s;font-family:inherit;display:flex;align-items:center;justify-content:center">${unlockSVG}Hold to pay</button></div>
27366
27364
  <div class="nui-stat" style="text-align:center;margin-top:16px" data-nibgate-status></div>
27367
27365
  </div>
27368
27366
  <div data-nibgate-premium hidden style="margin-top:32px;border-top:1px solid ${theme.border};padding-top:32px">${options.premiumContentHTML || ""}</div>
@@ -27372,23 +27370,18 @@ ${prettyStateOverride(stateOverride)}`;
27372
27370
  if (!document.getElementById("nibgate-lottie")) return;
27373
27371
  function startAnim(data) {
27374
27372
  var d = document.getElementById("nibgate-lottie");
27375
- if (d && window.lottie) {
27376
- window.lottie.loadAnimation({ container: d, animationData: data, loop: true, autoplay: true });
27377
- }
27373
+ if (d && window.lottie) window.lottie.loadAnimation({ container: d, animationData: data, loop: true, autoplay: true });
27378
27374
  }
27379
27375
  if (window.lottie) {
27380
- if (window._lottieData) {
27381
- startAnim(window._lottieData);
27382
- } else {
27383
- fetch("/nibgate-unlock-key.json?t=1").then(function(r) {
27384
- if (!r.ok) throw new Error();
27385
- return r.json();
27386
- }).then(function(d) {
27387
- window._lottieData = d;
27388
- startAnim(d);
27389
- }).catch(function() {
27390
- });
27391
- }
27376
+ if (window._lottieData) startAnim(window._lottieData);
27377
+ else fetch("/nibgate-unlock-key.json?t=1").then(function(r) {
27378
+ if (!r.ok) throw new Error();
27379
+ return r.json();
27380
+ }).then(function(d) {
27381
+ window._lottieData = d;
27382
+ startAnim(d);
27383
+ }).catch(function() {
27384
+ });
27392
27385
  return;
27393
27386
  }
27394
27387
  if (window._lottieLoading) return;
@@ -27411,7 +27404,6 @@ ${prettyStateOverride(stateOverride)}`;
27411
27404
  const label = card.querySelector("[data-nibgate-wallet-label]");
27412
27405
  const wrap3 = card.querySelector("[data-nibgate-unlock-wrap]");
27413
27406
  const prog = card.querySelector("[data-nibgate-unlock-progress]");
27414
- const shimmer = card.querySelector("[data-nibgate-shimmer]");
27415
27407
  const btn = card.querySelector("[data-nibgate-unlock]");
27416
27408
  const HOLD_MS = 1500;
27417
27409
  let holdTimer = null, holdActive = false, holdComplete = false;
@@ -27450,21 +27442,20 @@ ${prettyStateOverride(stateOverride)}`;
27450
27442
  label.textContent = "Connect wallet";
27451
27443
  btn.disabled = true;
27452
27444
  btn.style.cursor = "default";
27453
- btn.innerHTML = lockSVG + "Hold to pay " + esc(resource.price) + " USDC";
27445
+ btn.innerHTML = unlockSVG + "Hold to pay";
27454
27446
  }
27455
27447
  }
27456
27448
  function setBtnText(t) {
27457
- btn.innerHTML = lockSVG + t;
27449
+ btn.innerHTML = unlockSVG + t;
27458
27450
  }
27459
27451
  function resetHold() {
27460
27452
  holdActive = false;
27461
27453
  holdComplete = false;
27462
27454
  holdTimer = null;
27463
27455
  btn.style.transform = "scale(1)";
27456
+ btn.style.boxShadow = "0 4px 12px rgba(0,0,0,0.08)";
27464
27457
  prog.style.width = "0%";
27465
- shimmer.style.animation = "none";
27466
- shimmer.style.transform = "translateX(-100%)";
27467
- if (!btn.disabled) setBtnText("Hold to pay " + esc(resource.price) + " USDC");
27458
+ if (!btn.disabled) setBtnText("Hold to pay");
27468
27459
  }
27469
27460
  function startHold(e) {
27470
27461
  if (btn.disabled || holdActive) return;
@@ -27472,28 +27463,19 @@ ${prettyStateOverride(stateOverride)}`;
27472
27463
  holdActive = true;
27473
27464
  holdComplete = false;
27474
27465
  btn.style.transform = "scale(.97)";
27466
+ btn.style.boxShadow = "0 2px 6px rgba(0,0,0,0.12)";
27475
27467
  prog.style.transition = "none";
27476
27468
  prog.style.width = "0%";
27477
- shimmer.style.animation = "nshimmer 1s ease-in-out infinite";
27478
- shimmer.style.transform = "none";
27479
27469
  setBtnText("Hold\u2026");
27480
27470
  requestAnimationFrame(() => {
27481
27471
  prog.style.transition = "width " + HOLD_MS + "ms linear";
27482
27472
  prog.style.width = "100%";
27483
27473
  });
27484
- const t1 = setTimeout(() => {
27485
- if (holdActive && !holdComplete) setBtnText("Keep holding\u2026");
27486
- }, HOLD_MS * 0.4);
27487
- const t2 = setTimeout(() => {
27488
- if (holdActive && !holdComplete) setBtnText("Almost there\u2026");
27489
- }, HOLD_MS * 0.75);
27490
27474
  holdTimer = setTimeout(() => {
27491
27475
  holdComplete = true;
27492
27476
  holdActive = false;
27493
- clearTimeout(t1);
27494
- clearTimeout(t2);
27495
27477
  btn.style.transform = "scale(1)";
27496
- shimmer.style.animation = "none";
27478
+ btn.style.boxShadow = "0 4px 12px rgba(0,0,0,0.08)";
27497
27479
  prog.style.transition = "width .05s linear";
27498
27480
  setBtnText("Processing\u2026");
27499
27481
  btn.disabled = true;