@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 +20 -38
- package/dist/nibgate.js.map +2 -2
- package/dist/nibgate.min.js +53 -55
- package/dist/nibgate.min.js.map +3 -3
- package/package.json +1 -1
- package/src/browser/default-ui.js +13 -30
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
|
|
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:
|
|
27363
|
-
<div data-nibgate-unlock-progress style="position:absolute;inset:0;width:0%;background:
|
|
27364
|
-
<
|
|
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
|
-
|
|
27382
|
-
|
|
27383
|
-
|
|
27384
|
-
|
|
27385
|
-
|
|
27386
|
-
|
|
27387
|
-
|
|
27388
|
-
|
|
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 =
|
|
27445
|
+
btn.innerHTML = unlockSVG + "Hold to pay";
|
|
27454
27446
|
}
|
|
27455
27447
|
}
|
|
27456
27448
|
function setBtnText(t) {
|
|
27457
|
-
btn.innerHTML =
|
|
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
|
-
|
|
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
|
-
|
|
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;
|