@nok-integration/storefront-react 0.18.0 → 0.18.1
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.mjs +11 -11
- package/dist/standalone/storefront.mjs +11 -11
- package/dist/standalone/styles.css +37 -26
- package/dist/styles.css +37 -26
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -10005,17 +10005,17 @@ function useCartCount() {
|
|
|
10005
10005
|
}, [subscribe]);
|
|
10006
10006
|
return count2;
|
|
10007
10007
|
}
|
|
10008
|
-
const header$1 = "
|
|
10009
|
-
const floating = "
|
|
10010
|
-
const scrolled = "
|
|
10011
|
-
const title$1 = "
|
|
10012
|
-
const right = "
|
|
10013
|
-
const spacer = "
|
|
10014
|
-
const iconBtn = "
|
|
10015
|
-
const menuBtn = "
|
|
10016
|
-
const badge = "
|
|
10017
|
-
const closeSlot = "
|
|
10018
|
-
const centred = "
|
|
10008
|
+
const header$1 = "_header_1yjrk_25";
|
|
10009
|
+
const floating = "_floating_1yjrk_44";
|
|
10010
|
+
const scrolled = "_scrolled_1yjrk_79";
|
|
10011
|
+
const title$1 = "_title_1yjrk_172";
|
|
10012
|
+
const right = "_right_1yjrk_185";
|
|
10013
|
+
const spacer = "_spacer_1yjrk_198";
|
|
10014
|
+
const iconBtn = "_iconBtn_1yjrk_203";
|
|
10015
|
+
const menuBtn = "_menuBtn_1yjrk_230";
|
|
10016
|
+
const badge = "_badge_1yjrk_258";
|
|
10017
|
+
const closeSlot = "_closeSlot_1yjrk_285";
|
|
10018
|
+
const centred = "_centred_1yjrk_300";
|
|
10019
10019
|
const styles$1 = {
|
|
10020
10020
|
header: header$1,
|
|
10021
10021
|
floating,
|
|
@@ -10005,17 +10005,17 @@ function useCartCount() {
|
|
|
10005
10005
|
}, [subscribe]);
|
|
10006
10006
|
return count2;
|
|
10007
10007
|
}
|
|
10008
|
-
const header$1 = "
|
|
10009
|
-
const floating = "
|
|
10010
|
-
const scrolled = "
|
|
10011
|
-
const title$1 = "
|
|
10012
|
-
const right = "
|
|
10013
|
-
const spacer = "
|
|
10014
|
-
const iconBtn = "
|
|
10015
|
-
const menuBtn = "
|
|
10016
|
-
const badge = "
|
|
10017
|
-
const closeSlot = "
|
|
10018
|
-
const centred = "
|
|
10008
|
+
const header$1 = "_header_1yjrk_25";
|
|
10009
|
+
const floating = "_floating_1yjrk_44";
|
|
10010
|
+
const scrolled = "_scrolled_1yjrk_79";
|
|
10011
|
+
const title$1 = "_title_1yjrk_172";
|
|
10012
|
+
const right = "_right_1yjrk_185";
|
|
10013
|
+
const spacer = "_spacer_1yjrk_198";
|
|
10014
|
+
const iconBtn = "_iconBtn_1yjrk_203";
|
|
10015
|
+
const menuBtn = "_menuBtn_1yjrk_230";
|
|
10016
|
+
const badge = "_badge_1yjrk_258";
|
|
10017
|
+
const closeSlot = "_closeSlot_1yjrk_285";
|
|
10018
|
+
const centred = "_centred_1yjrk_300";
|
|
10019
10019
|
const styles$1 = {
|
|
10020
10020
|
header: header$1,
|
|
10021
10021
|
floating,
|
|
@@ -5384,7 +5384,7 @@
|
|
|
5384
5384
|
* the sticky CTA bar (50), the size-guide sheet (60), the bottom sheets (900) and the
|
|
5385
5385
|
* toast (1000).
|
|
5386
5386
|
*/
|
|
5387
|
-
.
|
|
5387
|
+
._header_1yjrk_25 {
|
|
5388
5388
|
position: sticky;
|
|
5389
5389
|
top: 0;
|
|
5390
5390
|
z-index: 40;
|
|
@@ -5426,24 +5426,35 @@
|
|
|
5426
5426
|
/*
|
|
5427
5427
|
* Overlaid rather than stacked, for screens whose artwork runs to the top of the display.
|
|
5428
5428
|
*
|
|
5429
|
-
*
|
|
5430
|
-
*
|
|
5431
|
-
*
|
|
5429
|
+
* Overlaid is about the ARTWORK, not about staying on screen. `mobile/hero` carries its
|
|
5430
|
+
* own `mobile/header` instance at y=0, hidden, and positions the category title at y=106 —
|
|
5431
|
+
* measured from the top of the SCREEN, not from under a bar. In flow the header pushes the
|
|
5432
|
+
* picture down and every measurement inside it lands a bar height low, which is how the
|
|
5433
|
+
* category page shipped.
|
|
5432
5434
|
*
|
|
5433
|
-
*
|
|
5434
|
-
*
|
|
5435
|
-
*
|
|
5436
|
-
*
|
|
5437
|
-
*
|
|
5435
|
+
* So it is taken out of the flow with a negative margin rather than with `absolute`, and
|
|
5436
|
+
* it keeps the sticky default. This was `position: absolute` until 21 Aug 2026, and that
|
|
5437
|
+
* scrolled the bar off the top of a category page: the back chevron, the cart badge and
|
|
5438
|
+
* the menu were reachable only by scrolling back up. DAZN reported it.
|
|
5439
|
+
*
|
|
5440
|
+
* The give-away was in the component itself — a bar that had left the screen was still
|
|
5441
|
+
* switching to `.scrolled` and painting a scrim on nothing. That state only means anything
|
|
5442
|
+
* for a bar that is still there. It looked correct on the shop entry because the entry
|
|
5443
|
+
* scrolls its own snap scroller and never the document, so `absolute` never moved.
|
|
5444
|
+
*
|
|
5445
|
+
* `sticky` rather than `fixed`: we are mounted in someone else's page, under chrome of
|
|
5446
|
+
* theirs we cannot see. `fixed` pins to the viewport and would sit on top of it. Sticky
|
|
5447
|
+
* stays inside our own box, wherever the host has put it.
|
|
5438
5448
|
*
|
|
5439
5449
|
* Declared after `.header` so it wins the background: both are one class, so the later
|
|
5440
5450
|
* rule takes it.
|
|
5441
5451
|
*/
|
|
5442
|
-
.
|
|
5443
|
-
position:
|
|
5452
|
+
._floating_1yjrk_44 {
|
|
5453
|
+
position: sticky;
|
|
5444
5454
|
top: 0;
|
|
5445
|
-
|
|
5446
|
-
|
|
5455
|
+
/* Out of the flow without leaving it: the artwork below starts at y=0 and is drawn
|
|
5456
|
+
under the bar, which is what `absolute` was really buying. */
|
|
5457
|
+
margin-bottom: calc(-1 * var(--header-height));
|
|
5447
5458
|
z-index: 5;
|
|
5448
5459
|
/*
|
|
5449
5460
|
* Clear at rest. The scrim belongs to `.scrolled` below.
|
|
@@ -5495,12 +5506,12 @@
|
|
|
5495
5506
|
* Fixed rather than tokenised, like the hero's own palette: it is drawn over a photograph
|
|
5496
5507
|
* and does not follow the surface.
|
|
5497
5508
|
*/
|
|
5498
|
-
.
|
|
5509
|
+
._floating_1yjrk_44._scrolled_1yjrk_79 {
|
|
5499
5510
|
background: rgba(8, 14, 18, 0.6);
|
|
5500
5511
|
}
|
|
5501
5512
|
|
|
5502
5513
|
@media (prefers-reduced-motion: reduce) {
|
|
5503
|
-
.
|
|
5514
|
+
._floating_1yjrk_44 {
|
|
5504
5515
|
transition: none;
|
|
5505
5516
|
}
|
|
5506
5517
|
}
|
|
@@ -5520,7 +5531,7 @@
|
|
|
5520
5531
|
* the dark screens, and the light PDP header (5295:75116) has an empty title slot. Written
|
|
5521
5532
|
* as a static white it would be invisible the first time a host passed one on a light page.
|
|
5522
5533
|
*/
|
|
5523
|
-
.
|
|
5534
|
+
._title_1yjrk_172 {
|
|
5524
5535
|
flex: 0 0 auto;
|
|
5525
5536
|
width: 222px;
|
|
5526
5537
|
min-width: 0;
|
|
@@ -5533,7 +5544,7 @@
|
|
|
5533
5544
|
white-space: nowrap;
|
|
5534
5545
|
}
|
|
5535
5546
|
|
|
5536
|
-
.
|
|
5547
|
+
._right_1yjrk_185 {
|
|
5537
5548
|
display: flex;
|
|
5538
5549
|
align-items: center;
|
|
5539
5550
|
gap: var(--space-16);
|
|
@@ -5546,12 +5557,12 @@
|
|
|
5546
5557
|
* header without a back button would silently re-lay-out rather than simply losing one
|
|
5547
5558
|
* icon. 24px is the icon box it stands in for.
|
|
5548
5559
|
*/
|
|
5549
|
-
.
|
|
5560
|
+
._spacer_1yjrk_198 {
|
|
5550
5561
|
width: 24px;
|
|
5551
5562
|
height: 24px;
|
|
5552
5563
|
}
|
|
5553
5564
|
|
|
5554
|
-
.
|
|
5565
|
+
._iconBtn_1yjrk_203 {
|
|
5555
5566
|
position: relative;
|
|
5556
5567
|
display: inline-flex;
|
|
5557
5568
|
align-items: center;
|
|
@@ -5567,7 +5578,7 @@
|
|
|
5567
5578
|
}
|
|
5568
5579
|
|
|
5569
5580
|
/* Expand the hit area to >=44px without moving the 24px icon off the 16px inset. */
|
|
5570
|
-
.
|
|
5581
|
+
._iconBtn_1yjrk_203::after {
|
|
5571
5582
|
content: '';
|
|
5572
5583
|
position: absolute;
|
|
5573
5584
|
inset: -10px;
|
|
@@ -5578,12 +5589,12 @@
|
|
|
5578
5589
|
* its glyph on the design's centre line — 16px from the right edge, not 12. Its own icon
|
|
5579
5590
|
* stays 24px.
|
|
5580
5591
|
*/
|
|
5581
|
-
.
|
|
5592
|
+
._menuBtn_1yjrk_230 {
|
|
5582
5593
|
width: 32px;
|
|
5583
5594
|
height: 32px;
|
|
5584
5595
|
}
|
|
5585
5596
|
|
|
5586
|
-
.
|
|
5597
|
+
._menuBtn_1yjrk_230::after {
|
|
5587
5598
|
inset: -6px;
|
|
5588
5599
|
}
|
|
5589
5600
|
|
|
@@ -5606,7 +5617,7 @@
|
|
|
5606
5617
|
*
|
|
5607
5618
|
* Sits above the ::after hit area so the number is never painted underneath it.
|
|
5608
5619
|
*/
|
|
5609
|
-
.
|
|
5620
|
+
._badge_1yjrk_258 {
|
|
5610
5621
|
position: absolute;
|
|
5611
5622
|
top: -6px;
|
|
5612
5623
|
left: 14px;
|
|
@@ -5633,13 +5644,13 @@
|
|
|
5633
5644
|
* `context=checkout` (5295:74075). Both side slots are the 32px box the frame draws — the
|
|
5634
5645
|
* left one empty, so the title centres on the screen rather than on what is left over.
|
|
5635
5646
|
*/
|
|
5636
|
-
.
|
|
5647
|
+
._closeSlot_1yjrk_285 {
|
|
5637
5648
|
flex: 0 0 auto;
|
|
5638
5649
|
width: 32px;
|
|
5639
5650
|
height: 32px;
|
|
5640
5651
|
}
|
|
5641
5652
|
|
|
5642
|
-
.
|
|
5653
|
+
._closeSlot_1yjrk_285._iconBtn_1yjrk_203::after {
|
|
5643
5654
|
inset: -6px;
|
|
5644
5655
|
}
|
|
5645
5656
|
|
|
@@ -5648,7 +5659,7 @@
|
|
|
5648
5659
|
* centres "Order #2304" between two equal slots, so it is the free space, not a measured
|
|
5649
5660
|
* width. Same size, weight and colour as the shop entry's — one text style, two positions.
|
|
5650
5661
|
*/
|
|
5651
|
-
.
|
|
5662
|
+
._centred_1yjrk_300 {
|
|
5652
5663
|
flex: 1 1 auto;
|
|
5653
5664
|
width: auto;
|
|
5654
5665
|
text-align: center;
|
package/dist/styles.css
CHANGED
|
@@ -5384,7 +5384,7 @@
|
|
|
5384
5384
|
* the sticky CTA bar (50), the size-guide sheet (60), the bottom sheets (900) and the
|
|
5385
5385
|
* toast (1000).
|
|
5386
5386
|
*/
|
|
5387
|
-
.
|
|
5387
|
+
._header_1yjrk_25 {
|
|
5388
5388
|
position: sticky;
|
|
5389
5389
|
top: 0;
|
|
5390
5390
|
z-index: 40;
|
|
@@ -5426,24 +5426,35 @@
|
|
|
5426
5426
|
/*
|
|
5427
5427
|
* Overlaid rather than stacked, for screens whose artwork runs to the top of the display.
|
|
5428
5428
|
*
|
|
5429
|
-
*
|
|
5430
|
-
*
|
|
5431
|
-
*
|
|
5429
|
+
* Overlaid is about the ARTWORK, not about staying on screen. `mobile/hero` carries its
|
|
5430
|
+
* own `mobile/header` instance at y=0, hidden, and positions the category title at y=106 —
|
|
5431
|
+
* measured from the top of the SCREEN, not from under a bar. In flow the header pushes the
|
|
5432
|
+
* picture down and every measurement inside it lands a bar height low, which is how the
|
|
5433
|
+
* category page shipped.
|
|
5432
5434
|
*
|
|
5433
|
-
*
|
|
5434
|
-
*
|
|
5435
|
-
*
|
|
5436
|
-
*
|
|
5437
|
-
*
|
|
5435
|
+
* So it is taken out of the flow with a negative margin rather than with `absolute`, and
|
|
5436
|
+
* it keeps the sticky default. This was `position: absolute` until 21 Aug 2026, and that
|
|
5437
|
+
* scrolled the bar off the top of a category page: the back chevron, the cart badge and
|
|
5438
|
+
* the menu were reachable only by scrolling back up. DAZN reported it.
|
|
5439
|
+
*
|
|
5440
|
+
* The give-away was in the component itself — a bar that had left the screen was still
|
|
5441
|
+
* switching to `.scrolled` and painting a scrim on nothing. That state only means anything
|
|
5442
|
+
* for a bar that is still there. It looked correct on the shop entry because the entry
|
|
5443
|
+
* scrolls its own snap scroller and never the document, so `absolute` never moved.
|
|
5444
|
+
*
|
|
5445
|
+
* `sticky` rather than `fixed`: we are mounted in someone else's page, under chrome of
|
|
5446
|
+
* theirs we cannot see. `fixed` pins to the viewport and would sit on top of it. Sticky
|
|
5447
|
+
* stays inside our own box, wherever the host has put it.
|
|
5438
5448
|
*
|
|
5439
5449
|
* Declared after `.header` so it wins the background: both are one class, so the later
|
|
5440
5450
|
* rule takes it.
|
|
5441
5451
|
*/
|
|
5442
|
-
.
|
|
5443
|
-
position:
|
|
5452
|
+
._floating_1yjrk_44 {
|
|
5453
|
+
position: sticky;
|
|
5444
5454
|
top: 0;
|
|
5445
|
-
|
|
5446
|
-
|
|
5455
|
+
/* Out of the flow without leaving it: the artwork below starts at y=0 and is drawn
|
|
5456
|
+
under the bar, which is what `absolute` was really buying. */
|
|
5457
|
+
margin-bottom: calc(-1 * var(--header-height));
|
|
5447
5458
|
z-index: 5;
|
|
5448
5459
|
/*
|
|
5449
5460
|
* Clear at rest. The scrim belongs to `.scrolled` below.
|
|
@@ -5495,12 +5506,12 @@
|
|
|
5495
5506
|
* Fixed rather than tokenised, like the hero's own palette: it is drawn over a photograph
|
|
5496
5507
|
* and does not follow the surface.
|
|
5497
5508
|
*/
|
|
5498
|
-
.
|
|
5509
|
+
._floating_1yjrk_44._scrolled_1yjrk_79 {
|
|
5499
5510
|
background: rgba(8, 14, 18, 0.6);
|
|
5500
5511
|
}
|
|
5501
5512
|
|
|
5502
5513
|
@media (prefers-reduced-motion: reduce) {
|
|
5503
|
-
.
|
|
5514
|
+
._floating_1yjrk_44 {
|
|
5504
5515
|
transition: none;
|
|
5505
5516
|
}
|
|
5506
5517
|
}
|
|
@@ -5520,7 +5531,7 @@
|
|
|
5520
5531
|
* the dark screens, and the light PDP header (5295:75116) has an empty title slot. Written
|
|
5521
5532
|
* as a static white it would be invisible the first time a host passed one on a light page.
|
|
5522
5533
|
*/
|
|
5523
|
-
.
|
|
5534
|
+
._title_1yjrk_172 {
|
|
5524
5535
|
flex: 0 0 auto;
|
|
5525
5536
|
width: 222px;
|
|
5526
5537
|
min-width: 0;
|
|
@@ -5533,7 +5544,7 @@
|
|
|
5533
5544
|
white-space: nowrap;
|
|
5534
5545
|
}
|
|
5535
5546
|
|
|
5536
|
-
.
|
|
5547
|
+
._right_1yjrk_185 {
|
|
5537
5548
|
display: flex;
|
|
5538
5549
|
align-items: center;
|
|
5539
5550
|
gap: var(--space-16);
|
|
@@ -5546,12 +5557,12 @@
|
|
|
5546
5557
|
* header without a back button would silently re-lay-out rather than simply losing one
|
|
5547
5558
|
* icon. 24px is the icon box it stands in for.
|
|
5548
5559
|
*/
|
|
5549
|
-
.
|
|
5560
|
+
._spacer_1yjrk_198 {
|
|
5550
5561
|
width: 24px;
|
|
5551
5562
|
height: 24px;
|
|
5552
5563
|
}
|
|
5553
5564
|
|
|
5554
|
-
.
|
|
5565
|
+
._iconBtn_1yjrk_203 {
|
|
5555
5566
|
position: relative;
|
|
5556
5567
|
display: inline-flex;
|
|
5557
5568
|
align-items: center;
|
|
@@ -5567,7 +5578,7 @@
|
|
|
5567
5578
|
}
|
|
5568
5579
|
|
|
5569
5580
|
/* Expand the hit area to >=44px without moving the 24px icon off the 16px inset. */
|
|
5570
|
-
.
|
|
5581
|
+
._iconBtn_1yjrk_203::after {
|
|
5571
5582
|
content: '';
|
|
5572
5583
|
position: absolute;
|
|
5573
5584
|
inset: -10px;
|
|
@@ -5578,12 +5589,12 @@
|
|
|
5578
5589
|
* its glyph on the design's centre line — 16px from the right edge, not 12. Its own icon
|
|
5579
5590
|
* stays 24px.
|
|
5580
5591
|
*/
|
|
5581
|
-
.
|
|
5592
|
+
._menuBtn_1yjrk_230 {
|
|
5582
5593
|
width: 32px;
|
|
5583
5594
|
height: 32px;
|
|
5584
5595
|
}
|
|
5585
5596
|
|
|
5586
|
-
.
|
|
5597
|
+
._menuBtn_1yjrk_230::after {
|
|
5587
5598
|
inset: -6px;
|
|
5588
5599
|
}
|
|
5589
5600
|
|
|
@@ -5606,7 +5617,7 @@
|
|
|
5606
5617
|
*
|
|
5607
5618
|
* Sits above the ::after hit area so the number is never painted underneath it.
|
|
5608
5619
|
*/
|
|
5609
|
-
.
|
|
5620
|
+
._badge_1yjrk_258 {
|
|
5610
5621
|
position: absolute;
|
|
5611
5622
|
top: -6px;
|
|
5612
5623
|
left: 14px;
|
|
@@ -5633,13 +5644,13 @@
|
|
|
5633
5644
|
* `context=checkout` (5295:74075). Both side slots are the 32px box the frame draws — the
|
|
5634
5645
|
* left one empty, so the title centres on the screen rather than on what is left over.
|
|
5635
5646
|
*/
|
|
5636
|
-
.
|
|
5647
|
+
._closeSlot_1yjrk_285 {
|
|
5637
5648
|
flex: 0 0 auto;
|
|
5638
5649
|
width: 32px;
|
|
5639
5650
|
height: 32px;
|
|
5640
5651
|
}
|
|
5641
5652
|
|
|
5642
|
-
.
|
|
5653
|
+
._closeSlot_1yjrk_285._iconBtn_1yjrk_203::after {
|
|
5643
5654
|
inset: -6px;
|
|
5644
5655
|
}
|
|
5645
5656
|
|
|
@@ -5648,7 +5659,7 @@
|
|
|
5648
5659
|
* centres "Order #2304" between two equal slots, so it is the free space, not a measured
|
|
5649
5660
|
* width. Same size, weight and colour as the shop entry's — one text style, two positions.
|
|
5650
5661
|
*/
|
|
5651
|
-
.
|
|
5662
|
+
._centred_1yjrk_300 {
|
|
5652
5663
|
flex: 1 1 auto;
|
|
5653
5664
|
width: auto;
|
|
5654
5665
|
text-align: center;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nok-integration/storefront-react",
|
|
3
|
-
"version": "0.18.
|
|
3
|
+
"version": "0.18.1",
|
|
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
6
|
"type": "module",
|