@nok-integration/storefront-react 0.19.3 → 0.19.5
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/index.d.ts +26 -6
- package/dist/index.mjs +69 -18
- package/dist/standalone/storefront.mjs +69 -18
- package/dist/standalone/styles.css +27 -27
- package/dist/styles.css +27 -27
- package/package.json +28 -9
package/dist/index.d.ts
CHANGED
|
@@ -3576,12 +3576,25 @@ export declare interface OrderConfirmationViewProps {
|
|
|
3576
3576
|
/**
|
|
3577
3577
|
* The frame's "Done". Omit it and no button renders.
|
|
3578
3578
|
*
|
|
3579
|
-
* **
|
|
3580
|
-
*
|
|
3581
|
-
*
|
|
3579
|
+
* **However you navigate, replace the current history entry rather than pushing a new
|
|
3580
|
+
* one.** A confirmation is a thing that happened once. Push it and the receipt stays in
|
|
3581
|
+
* the browser's history, where Back returns the customer to a confirmation for an order
|
|
3582
|
+
* they have already placed — or, read the wrong way, to an invitation to place it again.
|
|
3583
|
+
* `router.replace(to)`, or `location.replace(url)` for a full page load, takes this
|
|
3584
|
+
* screen out of the history on the way out.
|
|
3582
3585
|
*
|
|
3583
|
-
*
|
|
3584
|
-
*
|
|
3586
|
+
* Replacement swaps the current entry; it does not delete one. Back therefore lands on
|
|
3587
|
+
* whatever preceded this screen, so where checkout is a page of its own, navigate INTO
|
|
3588
|
+
* the confirmation by replacement too. Otherwise leaving by the front door returns the
|
|
3589
|
+
* customer to the payment step by the back one.
|
|
3590
|
+
*
|
|
3591
|
+
* Neither call can remove an entry already behind you, so both have to happen at the
|
|
3592
|
+
* moment of the navigation. Nothing later can undo a push.
|
|
3593
|
+
*
|
|
3594
|
+
* The destination is yours to choose, and the header's close control is the same exit:
|
|
3595
|
+
* wire the two together unless they genuinely lead to different places. This is a host
|
|
3596
|
+
* callback because it leaves the shop, which is not reachable from the `/v1` surface and
|
|
3597
|
+
* not somewhere `navigate` can go.
|
|
3585
3598
|
*/
|
|
3586
3599
|
onDone?: () => void;
|
|
3587
3600
|
}
|
|
@@ -5545,7 +5558,14 @@ export declare interface ShopHeaderProps {
|
|
|
5545
5558
|
* fetch for a badge that is not drawn.
|
|
5546
5559
|
*/
|
|
5547
5560
|
context?: 'shop' | 'checkout';
|
|
5548
|
-
/**
|
|
5561
|
+
/**
|
|
5562
|
+
* The close control, in `checkout` context. Omit it and the slot stays reserved.
|
|
5563
|
+
*
|
|
5564
|
+
* On a confirmation this is the same exit as that screen's own "Done" button, and it
|
|
5565
|
+
* carries the same requirement: **replace the current history entry, do not push a new
|
|
5566
|
+
* one.** A pushed receipt stays in the browser's history and Back brings it back. See
|
|
5567
|
+
* `OrderConfirmationViewProps.onDone`.
|
|
5568
|
+
*/
|
|
5549
5569
|
onClose?: () => void;
|
|
5550
5570
|
/** Accessible name for the back control, for a host that is not in English. */
|
|
5551
5571
|
backLabel?: string;
|
package/dist/index.mjs
CHANGED
|
@@ -5410,6 +5410,7 @@ const styles$M = {
|
|
|
5410
5410
|
surface: surface$1,
|
|
5411
5411
|
fill
|
|
5412
5412
|
};
|
|
5413
|
+
const SETTLE_MS$1 = 150;
|
|
5413
5414
|
function offsetFromViewportTop(el) {
|
|
5414
5415
|
let top = el.getBoundingClientRect().top;
|
|
5415
5416
|
for (let node = el.parentElement; node; node = node.parentElement) {
|
|
@@ -5423,17 +5424,30 @@ function useTopOffset(ref, property, enabled = true) {
|
|
|
5423
5424
|
useEffect(() => {
|
|
5424
5425
|
const el = ref.current;
|
|
5425
5426
|
if (!el || !enabled) return;
|
|
5427
|
+
let timer2;
|
|
5426
5428
|
const measure = () => {
|
|
5427
5429
|
el.style.setProperty(property, `${offsetFromViewportTop(el)}px`);
|
|
5428
5430
|
};
|
|
5431
|
+
const settle = () => {
|
|
5432
|
+
if (timer2) clearTimeout(timer2);
|
|
5433
|
+
timer2 = setTimeout(measure, SETTLE_MS$1);
|
|
5434
|
+
};
|
|
5429
5435
|
measure();
|
|
5430
5436
|
window.addEventListener("resize", measure);
|
|
5431
5437
|
window.addEventListener("orientationchange", measure);
|
|
5438
|
+
document.addEventListener("scroll", settle, {
|
|
5439
|
+
capture: true,
|
|
5440
|
+
passive: true
|
|
5441
|
+
});
|
|
5432
5442
|
const observer = typeof ResizeObserver === "undefined" ? null : new ResizeObserver(measure);
|
|
5433
5443
|
if (observer && el.parentElement) observer.observe(el.parentElement);
|
|
5434
5444
|
return () => {
|
|
5445
|
+
if (timer2) clearTimeout(timer2);
|
|
5435
5446
|
window.removeEventListener("resize", measure);
|
|
5436
5447
|
window.removeEventListener("orientationchange", measure);
|
|
5448
|
+
document.removeEventListener("scroll", settle, {
|
|
5449
|
+
capture: true
|
|
5450
|
+
});
|
|
5437
5451
|
observer?.disconnect();
|
|
5438
5452
|
};
|
|
5439
5453
|
}, [ref, property, enabled]);
|
|
@@ -10545,24 +10559,24 @@ function ProductView({ sku, initialData, showRecommendations = true, onNotFound
|
|
|
10545
10559
|
}
|
|
10546
10560
|
return unavailable;
|
|
10547
10561
|
}
|
|
10548
|
-
const showcase = "
|
|
10549
|
-
const panel = "
|
|
10550
|
-
const image = "
|
|
10551
|
-
const heroImageBox = "
|
|
10552
|
-
const hero = "
|
|
10553
|
-
const heroContent = "
|
|
10554
|
-
const heroText = "
|
|
10555
|
-
const logo = "
|
|
10556
|
-
const heroTitle = "
|
|
10557
|
-
const heroSub = "
|
|
10558
|
-
const swipe = "
|
|
10559
|
-
const swipeLabel = "
|
|
10560
|
-
const chevron$1 = "
|
|
10561
|
-
const overlay$1 = "
|
|
10562
|
-
const copy = "
|
|
10563
|
-
const title$2 = "
|
|
10564
|
-
const subtitle$1 = "
|
|
10565
|
-
const cta = "
|
|
10562
|
+
const showcase = "_showcase_12z2a_40";
|
|
10563
|
+
const panel = "_panel_12z2a_59";
|
|
10564
|
+
const image = "_image_12z2a_69";
|
|
10565
|
+
const heroImageBox = "_heroImageBox_12z2a_117";
|
|
10566
|
+
const hero = "_hero_12z2a_117";
|
|
10567
|
+
const heroContent = "_heroContent_12z2a_188";
|
|
10568
|
+
const heroText = "_heroText_12z2a_205";
|
|
10569
|
+
const logo = "_logo_12z2a_214";
|
|
10570
|
+
const heroTitle = "_heroTitle_12z2a_234";
|
|
10571
|
+
const heroSub = "_heroSub_12z2a_258";
|
|
10572
|
+
const swipe = "_swipe_12z2a_271";
|
|
10573
|
+
const swipeLabel = "_swipeLabel_12z2a_279";
|
|
10574
|
+
const chevron$1 = "_chevron_12z2a_285";
|
|
10575
|
+
const overlay$1 = "_overlay_12z2a_302";
|
|
10576
|
+
const copy = "_copy_12z2a_313";
|
|
10577
|
+
const title$2 = "_title_12z2a_318";
|
|
10578
|
+
const subtitle$1 = "_subtitle_12z2a_325";
|
|
10579
|
+
const cta = "_cta_12z2a_331";
|
|
10566
10580
|
const styles$2 = {
|
|
10567
10581
|
showcase,
|
|
10568
10582
|
panel,
|
|
@@ -10583,6 +10597,42 @@ const styles$2 = {
|
|
|
10583
10597
|
subtitle: subtitle$1,
|
|
10584
10598
|
cta
|
|
10585
10599
|
};
|
|
10600
|
+
const SETTLE_MS = 250;
|
|
10601
|
+
function useViewportHeight(ref, property, enabled = true) {
|
|
10602
|
+
useEffect(() => {
|
|
10603
|
+
const el = ref.current;
|
|
10604
|
+
if (!el || !enabled) return;
|
|
10605
|
+
let timer2;
|
|
10606
|
+
const read = () => Math.round(window.visualViewport?.height ?? window.innerHeight);
|
|
10607
|
+
const apply = () => {
|
|
10608
|
+
const height = read();
|
|
10609
|
+
if (height > 0) el.style.setProperty(property, `${height}px`);
|
|
10610
|
+
};
|
|
10611
|
+
const applySettled = () => {
|
|
10612
|
+
const previous = el.clientHeight;
|
|
10613
|
+
const index = previous > 0 ? Math.round(el.scrollTop / previous) : 0;
|
|
10614
|
+
apply();
|
|
10615
|
+
if (el.clientHeight > 0) el.scrollTo({
|
|
10616
|
+
top: index * el.clientHeight,
|
|
10617
|
+
behavior: "auto"
|
|
10618
|
+
});
|
|
10619
|
+
};
|
|
10620
|
+
const schedule = () => {
|
|
10621
|
+
if (timer2) clearTimeout(timer2);
|
|
10622
|
+
timer2 = setTimeout(applySettled, SETTLE_MS);
|
|
10623
|
+
};
|
|
10624
|
+
apply();
|
|
10625
|
+
window.addEventListener("resize", schedule);
|
|
10626
|
+
window.addEventListener("orientationchange", schedule);
|
|
10627
|
+
window.visualViewport?.addEventListener("resize", schedule);
|
|
10628
|
+
return () => {
|
|
10629
|
+
if (timer2) clearTimeout(timer2);
|
|
10630
|
+
window.removeEventListener("resize", schedule);
|
|
10631
|
+
window.removeEventListener("orientationchange", schedule);
|
|
10632
|
+
window.visualViewport?.removeEventListener("resize", schedule);
|
|
10633
|
+
};
|
|
10634
|
+
}, [ref, property, enabled]);
|
|
10635
|
+
}
|
|
10586
10636
|
const FALLBACK_PANELS = [{
|
|
10587
10637
|
key: "all-items",
|
|
10588
10638
|
title: "All items",
|
|
@@ -10687,6 +10737,7 @@ function HomeShowcase() {
|
|
|
10687
10737
|
const panels = useSlides();
|
|
10688
10738
|
const showcaseRef = useRef(null);
|
|
10689
10739
|
useTopOffset(showcaseRef, "--showcase-top");
|
|
10740
|
+
useViewportHeight(showcaseRef, "--showcase-vh");
|
|
10690
10741
|
return jsx(ShopSurface, {
|
|
10691
10742
|
tone: "dark",
|
|
10692
10743
|
children: jsxs("div", {
|
|
@@ -5410,6 +5410,7 @@ const styles$M = {
|
|
|
5410
5410
|
surface: surface$1,
|
|
5411
5411
|
fill
|
|
5412
5412
|
};
|
|
5413
|
+
const SETTLE_MS$1 = 150;
|
|
5413
5414
|
function offsetFromViewportTop(el) {
|
|
5414
5415
|
let top = el.getBoundingClientRect().top;
|
|
5415
5416
|
for (let node = el.parentElement; node; node = node.parentElement) {
|
|
@@ -5423,17 +5424,30 @@ function useTopOffset(ref, property, enabled = true) {
|
|
|
5423
5424
|
useEffect(() => {
|
|
5424
5425
|
const el = ref.current;
|
|
5425
5426
|
if (!el || !enabled) return;
|
|
5427
|
+
let timer2;
|
|
5426
5428
|
const measure = () => {
|
|
5427
5429
|
el.style.setProperty(property, `${offsetFromViewportTop(el)}px`);
|
|
5428
5430
|
};
|
|
5431
|
+
const settle = () => {
|
|
5432
|
+
if (timer2) clearTimeout(timer2);
|
|
5433
|
+
timer2 = setTimeout(measure, SETTLE_MS$1);
|
|
5434
|
+
};
|
|
5429
5435
|
measure();
|
|
5430
5436
|
window.addEventListener("resize", measure);
|
|
5431
5437
|
window.addEventListener("orientationchange", measure);
|
|
5438
|
+
document.addEventListener("scroll", settle, {
|
|
5439
|
+
capture: true,
|
|
5440
|
+
passive: true
|
|
5441
|
+
});
|
|
5432
5442
|
const observer = typeof ResizeObserver === "undefined" ? null : new ResizeObserver(measure);
|
|
5433
5443
|
if (observer && el.parentElement) observer.observe(el.parentElement);
|
|
5434
5444
|
return () => {
|
|
5445
|
+
if (timer2) clearTimeout(timer2);
|
|
5435
5446
|
window.removeEventListener("resize", measure);
|
|
5436
5447
|
window.removeEventListener("orientationchange", measure);
|
|
5448
|
+
document.removeEventListener("scroll", settle, {
|
|
5449
|
+
capture: true
|
|
5450
|
+
});
|
|
5437
5451
|
observer?.disconnect();
|
|
5438
5452
|
};
|
|
5439
5453
|
}, [ref, property, enabled]);
|
|
@@ -10545,24 +10559,24 @@ function ProductView({ sku, initialData, showRecommendations = true, onNotFound
|
|
|
10545
10559
|
}
|
|
10546
10560
|
return unavailable;
|
|
10547
10561
|
}
|
|
10548
|
-
const showcase = "
|
|
10549
|
-
const panel = "
|
|
10550
|
-
const image = "
|
|
10551
|
-
const heroImageBox = "
|
|
10552
|
-
const hero = "
|
|
10553
|
-
const heroContent = "
|
|
10554
|
-
const heroText = "
|
|
10555
|
-
const logo = "
|
|
10556
|
-
const heroTitle = "
|
|
10557
|
-
const heroSub = "
|
|
10558
|
-
const swipe = "
|
|
10559
|
-
const swipeLabel = "
|
|
10560
|
-
const chevron$1 = "
|
|
10561
|
-
const overlay$1 = "
|
|
10562
|
-
const copy = "
|
|
10563
|
-
const title$2 = "
|
|
10564
|
-
const subtitle$1 = "
|
|
10565
|
-
const cta = "
|
|
10562
|
+
const showcase = "_showcase_12z2a_40";
|
|
10563
|
+
const panel = "_panel_12z2a_59";
|
|
10564
|
+
const image = "_image_12z2a_69";
|
|
10565
|
+
const heroImageBox = "_heroImageBox_12z2a_117";
|
|
10566
|
+
const hero = "_hero_12z2a_117";
|
|
10567
|
+
const heroContent = "_heroContent_12z2a_188";
|
|
10568
|
+
const heroText = "_heroText_12z2a_205";
|
|
10569
|
+
const logo = "_logo_12z2a_214";
|
|
10570
|
+
const heroTitle = "_heroTitle_12z2a_234";
|
|
10571
|
+
const heroSub = "_heroSub_12z2a_258";
|
|
10572
|
+
const swipe = "_swipe_12z2a_271";
|
|
10573
|
+
const swipeLabel = "_swipeLabel_12z2a_279";
|
|
10574
|
+
const chevron$1 = "_chevron_12z2a_285";
|
|
10575
|
+
const overlay$1 = "_overlay_12z2a_302";
|
|
10576
|
+
const copy = "_copy_12z2a_313";
|
|
10577
|
+
const title$2 = "_title_12z2a_318";
|
|
10578
|
+
const subtitle$1 = "_subtitle_12z2a_325";
|
|
10579
|
+
const cta = "_cta_12z2a_331";
|
|
10566
10580
|
const styles$2 = {
|
|
10567
10581
|
showcase,
|
|
10568
10582
|
panel,
|
|
@@ -10583,6 +10597,42 @@ const styles$2 = {
|
|
|
10583
10597
|
subtitle: subtitle$1,
|
|
10584
10598
|
cta
|
|
10585
10599
|
};
|
|
10600
|
+
const SETTLE_MS = 250;
|
|
10601
|
+
function useViewportHeight(ref, property, enabled = true) {
|
|
10602
|
+
useEffect(() => {
|
|
10603
|
+
const el = ref.current;
|
|
10604
|
+
if (!el || !enabled) return;
|
|
10605
|
+
let timer2;
|
|
10606
|
+
const read = () => Math.round(window.visualViewport?.height ?? window.innerHeight);
|
|
10607
|
+
const apply = () => {
|
|
10608
|
+
const height = read();
|
|
10609
|
+
if (height > 0) el.style.setProperty(property, `${height}px`);
|
|
10610
|
+
};
|
|
10611
|
+
const applySettled = () => {
|
|
10612
|
+
const previous = el.clientHeight;
|
|
10613
|
+
const index = previous > 0 ? Math.round(el.scrollTop / previous) : 0;
|
|
10614
|
+
apply();
|
|
10615
|
+
if (el.clientHeight > 0) el.scrollTo({
|
|
10616
|
+
top: index * el.clientHeight,
|
|
10617
|
+
behavior: "auto"
|
|
10618
|
+
});
|
|
10619
|
+
};
|
|
10620
|
+
const schedule = () => {
|
|
10621
|
+
if (timer2) clearTimeout(timer2);
|
|
10622
|
+
timer2 = setTimeout(applySettled, SETTLE_MS);
|
|
10623
|
+
};
|
|
10624
|
+
apply();
|
|
10625
|
+
window.addEventListener("resize", schedule);
|
|
10626
|
+
window.addEventListener("orientationchange", schedule);
|
|
10627
|
+
window.visualViewport?.addEventListener("resize", schedule);
|
|
10628
|
+
return () => {
|
|
10629
|
+
if (timer2) clearTimeout(timer2);
|
|
10630
|
+
window.removeEventListener("resize", schedule);
|
|
10631
|
+
window.removeEventListener("orientationchange", schedule);
|
|
10632
|
+
window.visualViewport?.removeEventListener("resize", schedule);
|
|
10633
|
+
};
|
|
10634
|
+
}, [ref, property, enabled]);
|
|
10635
|
+
}
|
|
10586
10636
|
const FALLBACK_PANELS = [{
|
|
10587
10637
|
key: "all-items",
|
|
10588
10638
|
title: "All items",
|
|
@@ -10687,6 +10737,7 @@ function HomeShowcase() {
|
|
|
10687
10737
|
const panels = useSlides();
|
|
10688
10738
|
const showcaseRef = useRef(null);
|
|
10689
10739
|
useTopOffset(showcaseRef, "--showcase-top");
|
|
10740
|
+
useViewportHeight(showcaseRef, "--showcase-vh");
|
|
10690
10741
|
return jsx(ShopSurface, {
|
|
10691
10742
|
tone: "dark",
|
|
10692
10743
|
children: jsxs("div", {
|
|
@@ -3384,8 +3384,8 @@
|
|
|
3384
3384
|
column-gap: var(--space-12);
|
|
3385
3385
|
row-gap: var(--space-24);
|
|
3386
3386
|
}
|
|
3387
|
-
.
|
|
3388
|
-
height: calc(100svh - var(--showcase-top, 0px));
|
|
3387
|
+
._showcase_12z2a_40 {
|
|
3388
|
+
height: calc(var(--showcase-vh, 100svh) - var(--showcase-top, 0px));
|
|
3389
3389
|
overflow-y: auto;
|
|
3390
3390
|
scroll-snap-type: y mandatory;
|
|
3391
3391
|
overscroll-behavior-y: contain;
|
|
@@ -3393,22 +3393,22 @@
|
|
|
3393
3393
|
background: #080e12;
|
|
3394
3394
|
scrollbar-width: none;
|
|
3395
3395
|
}
|
|
3396
|
-
.
|
|
3396
|
+
._showcase_12z2a_40::-webkit-scrollbar {
|
|
3397
3397
|
display: none;
|
|
3398
3398
|
}
|
|
3399
|
-
.
|
|
3399
|
+
._panel_12z2a_59 {
|
|
3400
3400
|
position: relative;
|
|
3401
|
-
height: calc(100svh - var(--showcase-top, 0px));
|
|
3401
|
+
height: calc(var(--showcase-vh, 100svh) - var(--showcase-top, 0px));
|
|
3402
3402
|
scroll-snap-align: start;
|
|
3403
3403
|
scroll-snap-stop: always;
|
|
3404
3404
|
overflow: hidden;
|
|
3405
3405
|
background: #080e12;
|
|
3406
3406
|
}
|
|
3407
|
-
.
|
|
3407
|
+
._image_12z2a_69 {
|
|
3408
3408
|
object-fit: cover;
|
|
3409
3409
|
object-position: center;
|
|
3410
3410
|
}
|
|
3411
|
-
.
|
|
3411
|
+
._heroImageBox_12z2a_117 {
|
|
3412
3412
|
position: absolute;
|
|
3413
3413
|
top: 31px;
|
|
3414
3414
|
left: 0;
|
|
@@ -3416,7 +3416,7 @@
|
|
|
3416
3416
|
aspect-ratio: 750 / 1348;
|
|
3417
3417
|
overflow: hidden;
|
|
3418
3418
|
}
|
|
3419
|
-
.
|
|
3419
|
+
._hero_12z2a_117::after {
|
|
3420
3420
|
content: "";
|
|
3421
3421
|
position: absolute;
|
|
3422
3422
|
inset: 0;
|
|
@@ -3431,10 +3431,10 @@
|
|
|
3431
3431
|
rgba(8, 14, 18, 1) 90%);
|
|
3432
3432
|
pointer-events: none;
|
|
3433
3433
|
}
|
|
3434
|
-
.
|
|
3434
|
+
._hero_12z2a_117 ._image_12z2a_69 {
|
|
3435
3435
|
object-position: top;
|
|
3436
3436
|
}
|
|
3437
|
-
.
|
|
3437
|
+
._hero_12z2a_117 ._heroContent_12z2a_188 {
|
|
3438
3438
|
position: absolute;
|
|
3439
3439
|
bottom: 0;
|
|
3440
3440
|
left: 0;
|
|
@@ -3445,7 +3445,7 @@
|
|
|
3445
3445
|
gap: 24px;
|
|
3446
3446
|
align-items: stretch;
|
|
3447
3447
|
}
|
|
3448
|
-
.
|
|
3448
|
+
._heroText_12z2a_205 {
|
|
3449
3449
|
display: flex;
|
|
3450
3450
|
flex-direction: column;
|
|
3451
3451
|
gap: 8px;
|
|
@@ -3453,11 +3453,11 @@
|
|
|
3453
3453
|
padding: 0 24px;
|
|
3454
3454
|
text-align: center;
|
|
3455
3455
|
}
|
|
3456
|
-
.
|
|
3456
|
+
._heroText_12z2a_205 ._logo_12z2a_214 {
|
|
3457
3457
|
width: 48px;
|
|
3458
3458
|
height: 48px;
|
|
3459
3459
|
}
|
|
3460
|
-
.
|
|
3460
|
+
._heroTitle_12z2a_234 {
|
|
3461
3461
|
width: 100%;
|
|
3462
3462
|
margin: 0;
|
|
3463
3463
|
font-family:
|
|
@@ -3472,14 +3472,14 @@
|
|
|
3472
3472
|
letter-spacing: -1.12px;
|
|
3473
3473
|
color: #f9fafa;
|
|
3474
3474
|
}
|
|
3475
|
-
.
|
|
3475
|
+
._heroSub_12z2a_258 {
|
|
3476
3476
|
margin: 0;
|
|
3477
3477
|
font-size: 16px;
|
|
3478
3478
|
line-height: 1.55;
|
|
3479
3479
|
color: #f9fafa;
|
|
3480
3480
|
max-width: 327px;
|
|
3481
3481
|
}
|
|
3482
|
-
.
|
|
3482
|
+
._swipe_12z2a_271 {
|
|
3483
3483
|
display: flex;
|
|
3484
3484
|
flex-direction: column;
|
|
3485
3485
|
align-items: center;
|
|
@@ -3487,19 +3487,19 @@
|
|
|
3487
3487
|
padding: 8px 0;
|
|
3488
3488
|
background: #080e12;
|
|
3489
3489
|
}
|
|
3490
|
-
.
|
|
3490
|
+
._swipeLabel_12z2a_279 {
|
|
3491
3491
|
margin: 0;
|
|
3492
3492
|
font-size: 14px;
|
|
3493
3493
|
line-height: 1;
|
|
3494
3494
|
color: rgba(255, 255, 255, 0.54);
|
|
3495
3495
|
}
|
|
3496
|
-
.
|
|
3496
|
+
._chevron_12z2a_285 {
|
|
3497
3497
|
width: 24px;
|
|
3498
3498
|
height: 24px;
|
|
3499
3499
|
color: rgba(255, 255, 255, 0.54);
|
|
3500
|
-
animation:
|
|
3500
|
+
animation: _bob_12z2a_1 1.8s ease-in-out infinite;
|
|
3501
3501
|
}
|
|
3502
|
-
@keyframes
|
|
3502
|
+
@keyframes _bob_12z2a_1 {
|
|
3503
3503
|
0%, 100% {
|
|
3504
3504
|
transform: translateY(0);
|
|
3505
3505
|
}
|
|
@@ -3507,7 +3507,7 @@
|
|
|
3507
3507
|
transform: translateY(4px);
|
|
3508
3508
|
}
|
|
3509
3509
|
}
|
|
3510
|
-
.
|
|
3510
|
+
._overlay_12z2a_302 {
|
|
3511
3511
|
position: absolute;
|
|
3512
3512
|
inset: 0;
|
|
3513
3513
|
z-index: 1;
|
|
@@ -3518,25 +3518,25 @@
|
|
|
3518
3518
|
align-items: flex-start;
|
|
3519
3519
|
padding: 0 24px 24px;
|
|
3520
3520
|
}
|
|
3521
|
-
.
|
|
3521
|
+
._copy_12z2a_313 {
|
|
3522
3522
|
display: flex;
|
|
3523
3523
|
flex-direction: column;
|
|
3524
3524
|
gap: 8px;
|
|
3525
3525
|
}
|
|
3526
|
-
.
|
|
3526
|
+
._title_12z2a_318 {
|
|
3527
3527
|
margin: 0;
|
|
3528
3528
|
font-size: 32px;
|
|
3529
3529
|
line-height: 1.2;
|
|
3530
3530
|
font-weight: 700;
|
|
3531
3531
|
color: #f9fafa;
|
|
3532
3532
|
}
|
|
3533
|
-
.
|
|
3533
|
+
._subtitle_12z2a_325 {
|
|
3534
3534
|
margin: 0;
|
|
3535
3535
|
font-size: 16px;
|
|
3536
3536
|
line-height: 1.55;
|
|
3537
3537
|
color: #f9fafa;
|
|
3538
3538
|
}
|
|
3539
|
-
.
|
|
3539
|
+
._cta_12z2a_331 {
|
|
3540
3540
|
display: inline-flex;
|
|
3541
3541
|
align-items: center;
|
|
3542
3542
|
justify-content: center;
|
|
@@ -3550,15 +3550,15 @@
|
|
|
3550
3550
|
font-weight: 700;
|
|
3551
3551
|
text-decoration: none;
|
|
3552
3552
|
}
|
|
3553
|
-
.
|
|
3553
|
+
._cta_12z2a_331::after {
|
|
3554
3554
|
content: "";
|
|
3555
3555
|
position: absolute;
|
|
3556
3556
|
inset: 0;
|
|
3557
3557
|
}
|
|
3558
|
-
.
|
|
3558
|
+
._cta_12z2a_331:active {
|
|
3559
3559
|
background: rgba(249, 250, 250, 0.12);
|
|
3560
3560
|
}
|
|
3561
|
-
.
|
|
3561
|
+
._cta_12z2a_331:focus-visible {
|
|
3562
3562
|
outline: none;
|
|
3563
3563
|
box-shadow: var(--focus-ring);
|
|
3564
3564
|
}
|
package/dist/styles.css
CHANGED
|
@@ -3384,8 +3384,8 @@
|
|
|
3384
3384
|
column-gap: var(--space-12);
|
|
3385
3385
|
row-gap: var(--space-24);
|
|
3386
3386
|
}
|
|
3387
|
-
.
|
|
3388
|
-
height: calc(100svh - var(--showcase-top, 0px));
|
|
3387
|
+
._showcase_12z2a_40 {
|
|
3388
|
+
height: calc(var(--showcase-vh, 100svh) - var(--showcase-top, 0px));
|
|
3389
3389
|
overflow-y: auto;
|
|
3390
3390
|
scroll-snap-type: y mandatory;
|
|
3391
3391
|
overscroll-behavior-y: contain;
|
|
@@ -3393,22 +3393,22 @@
|
|
|
3393
3393
|
background: #080e12;
|
|
3394
3394
|
scrollbar-width: none;
|
|
3395
3395
|
}
|
|
3396
|
-
.
|
|
3396
|
+
._showcase_12z2a_40::-webkit-scrollbar {
|
|
3397
3397
|
display: none;
|
|
3398
3398
|
}
|
|
3399
|
-
.
|
|
3399
|
+
._panel_12z2a_59 {
|
|
3400
3400
|
position: relative;
|
|
3401
|
-
height: calc(100svh - var(--showcase-top, 0px));
|
|
3401
|
+
height: calc(var(--showcase-vh, 100svh) - var(--showcase-top, 0px));
|
|
3402
3402
|
scroll-snap-align: start;
|
|
3403
3403
|
scroll-snap-stop: always;
|
|
3404
3404
|
overflow: hidden;
|
|
3405
3405
|
background: #080e12;
|
|
3406
3406
|
}
|
|
3407
|
-
.
|
|
3407
|
+
._image_12z2a_69 {
|
|
3408
3408
|
object-fit: cover;
|
|
3409
3409
|
object-position: center;
|
|
3410
3410
|
}
|
|
3411
|
-
.
|
|
3411
|
+
._heroImageBox_12z2a_117 {
|
|
3412
3412
|
position: absolute;
|
|
3413
3413
|
top: 31px;
|
|
3414
3414
|
left: 0;
|
|
@@ -3416,7 +3416,7 @@
|
|
|
3416
3416
|
aspect-ratio: 750 / 1348;
|
|
3417
3417
|
overflow: hidden;
|
|
3418
3418
|
}
|
|
3419
|
-
.
|
|
3419
|
+
._hero_12z2a_117::after {
|
|
3420
3420
|
content: "";
|
|
3421
3421
|
position: absolute;
|
|
3422
3422
|
inset: 0;
|
|
@@ -3431,10 +3431,10 @@
|
|
|
3431
3431
|
rgba(8, 14, 18, 1) 90%);
|
|
3432
3432
|
pointer-events: none;
|
|
3433
3433
|
}
|
|
3434
|
-
.
|
|
3434
|
+
._hero_12z2a_117 ._image_12z2a_69 {
|
|
3435
3435
|
object-position: top;
|
|
3436
3436
|
}
|
|
3437
|
-
.
|
|
3437
|
+
._hero_12z2a_117 ._heroContent_12z2a_188 {
|
|
3438
3438
|
position: absolute;
|
|
3439
3439
|
bottom: 0;
|
|
3440
3440
|
left: 0;
|
|
@@ -3445,7 +3445,7 @@
|
|
|
3445
3445
|
gap: 24px;
|
|
3446
3446
|
align-items: stretch;
|
|
3447
3447
|
}
|
|
3448
|
-
.
|
|
3448
|
+
._heroText_12z2a_205 {
|
|
3449
3449
|
display: flex;
|
|
3450
3450
|
flex-direction: column;
|
|
3451
3451
|
gap: 8px;
|
|
@@ -3453,11 +3453,11 @@
|
|
|
3453
3453
|
padding: 0 24px;
|
|
3454
3454
|
text-align: center;
|
|
3455
3455
|
}
|
|
3456
|
-
.
|
|
3456
|
+
._heroText_12z2a_205 ._logo_12z2a_214 {
|
|
3457
3457
|
width: 48px;
|
|
3458
3458
|
height: 48px;
|
|
3459
3459
|
}
|
|
3460
|
-
.
|
|
3460
|
+
._heroTitle_12z2a_234 {
|
|
3461
3461
|
width: 100%;
|
|
3462
3462
|
margin: 0;
|
|
3463
3463
|
font-family:
|
|
@@ -3472,14 +3472,14 @@
|
|
|
3472
3472
|
letter-spacing: -1.12px;
|
|
3473
3473
|
color: #f9fafa;
|
|
3474
3474
|
}
|
|
3475
|
-
.
|
|
3475
|
+
._heroSub_12z2a_258 {
|
|
3476
3476
|
margin: 0;
|
|
3477
3477
|
font-size: 16px;
|
|
3478
3478
|
line-height: 1.55;
|
|
3479
3479
|
color: #f9fafa;
|
|
3480
3480
|
max-width: 327px;
|
|
3481
3481
|
}
|
|
3482
|
-
.
|
|
3482
|
+
._swipe_12z2a_271 {
|
|
3483
3483
|
display: flex;
|
|
3484
3484
|
flex-direction: column;
|
|
3485
3485
|
align-items: center;
|
|
@@ -3487,19 +3487,19 @@
|
|
|
3487
3487
|
padding: 8px 0;
|
|
3488
3488
|
background: #080e12;
|
|
3489
3489
|
}
|
|
3490
|
-
.
|
|
3490
|
+
._swipeLabel_12z2a_279 {
|
|
3491
3491
|
margin: 0;
|
|
3492
3492
|
font-size: 14px;
|
|
3493
3493
|
line-height: 1;
|
|
3494
3494
|
color: rgba(255, 255, 255, 0.54);
|
|
3495
3495
|
}
|
|
3496
|
-
.
|
|
3496
|
+
._chevron_12z2a_285 {
|
|
3497
3497
|
width: 24px;
|
|
3498
3498
|
height: 24px;
|
|
3499
3499
|
color: rgba(255, 255, 255, 0.54);
|
|
3500
|
-
animation:
|
|
3500
|
+
animation: _bob_12z2a_1 1.8s ease-in-out infinite;
|
|
3501
3501
|
}
|
|
3502
|
-
@keyframes
|
|
3502
|
+
@keyframes _bob_12z2a_1 {
|
|
3503
3503
|
0%, 100% {
|
|
3504
3504
|
transform: translateY(0);
|
|
3505
3505
|
}
|
|
@@ -3507,7 +3507,7 @@
|
|
|
3507
3507
|
transform: translateY(4px);
|
|
3508
3508
|
}
|
|
3509
3509
|
}
|
|
3510
|
-
.
|
|
3510
|
+
._overlay_12z2a_302 {
|
|
3511
3511
|
position: absolute;
|
|
3512
3512
|
inset: 0;
|
|
3513
3513
|
z-index: 1;
|
|
@@ -3518,25 +3518,25 @@
|
|
|
3518
3518
|
align-items: flex-start;
|
|
3519
3519
|
padding: 0 24px 24px;
|
|
3520
3520
|
}
|
|
3521
|
-
.
|
|
3521
|
+
._copy_12z2a_313 {
|
|
3522
3522
|
display: flex;
|
|
3523
3523
|
flex-direction: column;
|
|
3524
3524
|
gap: 8px;
|
|
3525
3525
|
}
|
|
3526
|
-
.
|
|
3526
|
+
._title_12z2a_318 {
|
|
3527
3527
|
margin: 0;
|
|
3528
3528
|
font-size: 32px;
|
|
3529
3529
|
line-height: 1.2;
|
|
3530
3530
|
font-weight: 700;
|
|
3531
3531
|
color: #f9fafa;
|
|
3532
3532
|
}
|
|
3533
|
-
.
|
|
3533
|
+
._subtitle_12z2a_325 {
|
|
3534
3534
|
margin: 0;
|
|
3535
3535
|
font-size: 16px;
|
|
3536
3536
|
line-height: 1.55;
|
|
3537
3537
|
color: #f9fafa;
|
|
3538
3538
|
}
|
|
3539
|
-
.
|
|
3539
|
+
._cta_12z2a_331 {
|
|
3540
3540
|
display: inline-flex;
|
|
3541
3541
|
align-items: center;
|
|
3542
3542
|
justify-content: center;
|
|
@@ -3550,15 +3550,15 @@
|
|
|
3550
3550
|
font-weight: 700;
|
|
3551
3551
|
text-decoration: none;
|
|
3552
3552
|
}
|
|
3553
|
-
.
|
|
3553
|
+
._cta_12z2a_331::after {
|
|
3554
3554
|
content: "";
|
|
3555
3555
|
position: absolute;
|
|
3556
3556
|
inset: 0;
|
|
3557
3557
|
}
|
|
3558
|
-
.
|
|
3558
|
+
._cta_12z2a_331:active {
|
|
3559
3559
|
background: rgba(249, 250, 250, 0.12);
|
|
3560
3560
|
}
|
|
3561
|
-
.
|
|
3561
|
+
._cta_12z2a_331:focus-visible {
|
|
3562
3562
|
outline: none;
|
|
3563
3563
|
box-shadow: var(--focus-ring);
|
|
3564
3564
|
}
|
package/package.json
CHANGED
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nok-integration/storefront-react",
|
|
3
|
-
"version": "0.19.
|
|
3
|
+
"version": "0.19.5",
|
|
4
4
|
"description": "Mountable React storefront components: catalogue, product detail and cart, mounted directly into a host DOM tree. No iframe.",
|
|
5
5
|
"license": "UNLICENSED",
|
|
6
|
+
"publishConfig": {
|
|
7
|
+
"access": "public",
|
|
8
|
+
"registry": "https://registry.npmjs.org/"
|
|
9
|
+
},
|
|
6
10
|
"type": "module",
|
|
7
11
|
"main": "./dist/index.mjs",
|
|
8
|
-
"module": "./dist/index.mjs",
|
|
9
12
|
"types": "./dist/index.d.ts",
|
|
10
13
|
"exports": {
|
|
11
14
|
".": {
|
|
@@ -20,18 +23,34 @@
|
|
|
20
23
|
"dist",
|
|
21
24
|
"!dist/**/*.map"
|
|
22
25
|
],
|
|
23
|
-
"
|
|
24
|
-
"
|
|
25
|
-
|
|
26
|
+
"scripts": {
|
|
27
|
+
"build": "pnpm build:package && pnpm build:standalone",
|
|
28
|
+
"build:package": "vite build",
|
|
29
|
+
"build:standalone": "BUILD_TARGET=standalone vite build",
|
|
30
|
+
"typecheck": "tsc --noEmit",
|
|
31
|
+
"build:partner": "PARTNER_DROP=1 pnpm build && pnpm pack"
|
|
32
|
+
},
|
|
26
33
|
"peerDependencies": {
|
|
27
34
|
"react": "^16.14.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
|
|
28
35
|
"react-dom": "^16.14.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
|
|
29
36
|
},
|
|
37
|
+
"devDependencies": {
|
|
38
|
+
"@microsoft/api-extractor": "^7.58.12",
|
|
39
|
+
"@raqmix/contracts": "^2.0.0",
|
|
40
|
+
"@types/react": "^19.1.0",
|
|
41
|
+
"@types/react-dom": "^19.1.0",
|
|
42
|
+
"@vitejs/plugin-react": "^4.3.4",
|
|
43
|
+
"esbuild": "^0.28.1",
|
|
44
|
+
"terser": "^5.50.0",
|
|
45
|
+
"typescript": "^5.7.3",
|
|
46
|
+
"vite": "^7.0.0",
|
|
47
|
+
"vite-plugin-dts": "^5.0.3"
|
|
48
|
+
},
|
|
49
|
+
"module": "./dist/index.mjs",
|
|
50
|
+
"sideEffects": [
|
|
51
|
+
"*.css"
|
|
52
|
+
],
|
|
30
53
|
"dependencies": {
|
|
31
54
|
"zod": "^3.24.1"
|
|
32
|
-
},
|
|
33
|
-
"publishConfig": {
|
|
34
|
-
"access": "public",
|
|
35
|
-
"registry": "https://registry.npmjs.org/"
|
|
36
55
|
}
|
|
37
56
|
}
|