@nok-integration/storefront-react 0.16.1 → 0.16.3

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 CHANGED
@@ -5476,8 +5476,8 @@ function Skeleton({ width, height, radius, className, circle }) {
5476
5476
  }
5477
5477
  );
5478
5478
  }
5479
- const surface$1 = "_surface_nj74o_10";
5480
- const fill = "_fill_nj74o_35";
5479
+ const surface$1 = "_surface_cfqo9_10";
5480
+ const fill = "_fill_cfqo9_35";
5481
5481
  const styles$E = {
5482
5482
  surface: surface$1,
5483
5483
  fill
@@ -7403,15 +7403,15 @@ function CartSheetProvider({ children }) {
7403
7403
  isOpen && /* @__PURE__ */ jsx(BottomSheet, { open: true, onClose: close2, title: "Cart", children: /* @__PURE__ */ jsx(CartView, { onContinueShopping: close2 }) })
7404
7404
  ] });
7405
7405
  }
7406
- const gallery = "_gallery_h8m00_1";
7407
- const track$2 = "_track_h8m00_8";
7408
- const slide$1 = "_slide_h8m00_19";
7409
- const image$4 = "_image_h8m00_26";
7410
- const placeholder$1 = "_placeholder_h8m00_30";
7411
- const share = "_share_h8m00_37";
7412
- const dots$2 = "_dots_h8m00_54";
7413
- const dot$2 = "_dot_h8m00_54";
7414
- const dotActive$2 = "_dotActive_h8m00_78";
7406
+ const gallery = "_gallery_1e69n_1";
7407
+ const track$2 = "_track_1e69n_8";
7408
+ const slide$1 = "_slide_1e69n_25";
7409
+ const image$4 = "_image_1e69n_32";
7410
+ const placeholder$1 = "_placeholder_1e69n_36";
7411
+ const share = "_share_1e69n_43";
7412
+ const dots$2 = "_dots_1e69n_60";
7413
+ const dot$2 = "_dot_1e69n_60";
7414
+ const dotActive$2 = "_dotActive_1e69n_84";
7415
7415
  const styles$i = {
7416
7416
  gallery,
7417
7417
  track: track$2,
@@ -8212,15 +8212,15 @@ function LifestyleImage({ images }) {
8212
8212
  )) })
8213
8213
  ] }) });
8214
8214
  }
8215
- const section$2 = "_section_iy175_1";
8216
- const track = "_track_iy175_8";
8217
- const card = "_card_iy175_31";
8218
- const quote = "_quote_iy175_43";
8219
- const author = "_author_iy175_51";
8220
- const dots = "_dots_iy175_57";
8221
- const dot = "_dot_iy175_57";
8222
- const dotActive = "_dotActive_iy175_70";
8223
- const disclaimer = "_disclaimer_iy175_76";
8215
+ const section$2 = "_section_n8xka_1";
8216
+ const track = "_track_n8xka_8";
8217
+ const card = "_card_n8xka_38";
8218
+ const quote = "_quote_n8xka_50";
8219
+ const author = "_author_n8xka_58";
8220
+ const dots = "_dots_n8xka_64";
8221
+ const dot = "_dot_n8xka_64";
8222
+ const dotActive = "_dotActive_n8xka_77";
8223
+ const disclaimer = "_disclaimer_n8xka_83";
8224
8224
  const styles$6 = {
8225
8225
  section: section$2,
8226
8226
  track,
@@ -5476,8 +5476,8 @@ function Skeleton({ width, height, radius, className, circle }) {
5476
5476
  }
5477
5477
  );
5478
5478
  }
5479
- const surface$1 = "_surface_nj74o_10";
5480
- const fill = "_fill_nj74o_35";
5479
+ const surface$1 = "_surface_cfqo9_10";
5480
+ const fill = "_fill_cfqo9_35";
5481
5481
  const styles$E = {
5482
5482
  surface: surface$1,
5483
5483
  fill
@@ -7403,15 +7403,15 @@ function CartSheetProvider({ children }) {
7403
7403
  isOpen && /* @__PURE__ */ jsx(BottomSheet, { open: true, onClose: close2, title: "Cart", children: /* @__PURE__ */ jsx(CartView, { onContinueShopping: close2 }) })
7404
7404
  ] });
7405
7405
  }
7406
- const gallery = "_gallery_h8m00_1";
7407
- const track$2 = "_track_h8m00_8";
7408
- const slide$1 = "_slide_h8m00_19";
7409
- const image$4 = "_image_h8m00_26";
7410
- const placeholder$1 = "_placeholder_h8m00_30";
7411
- const share = "_share_h8m00_37";
7412
- const dots$2 = "_dots_h8m00_54";
7413
- const dot$2 = "_dot_h8m00_54";
7414
- const dotActive$2 = "_dotActive_h8m00_78";
7406
+ const gallery = "_gallery_1e69n_1";
7407
+ const track$2 = "_track_1e69n_8";
7408
+ const slide$1 = "_slide_1e69n_25";
7409
+ const image$4 = "_image_1e69n_32";
7410
+ const placeholder$1 = "_placeholder_1e69n_36";
7411
+ const share = "_share_1e69n_43";
7412
+ const dots$2 = "_dots_1e69n_60";
7413
+ const dot$2 = "_dot_1e69n_60";
7414
+ const dotActive$2 = "_dotActive_1e69n_84";
7415
7415
  const styles$i = {
7416
7416
  gallery,
7417
7417
  track: track$2,
@@ -8212,15 +8212,15 @@ function LifestyleImage({ images }) {
8212
8212
  )) })
8213
8213
  ] }) });
8214
8214
  }
8215
- const section$2 = "_section_iy175_1";
8216
- const track = "_track_iy175_8";
8217
- const card = "_card_iy175_31";
8218
- const quote = "_quote_iy175_43";
8219
- const author = "_author_iy175_51";
8220
- const dots = "_dots_iy175_57";
8221
- const dot = "_dot_iy175_57";
8222
- const dotActive = "_dotActive_iy175_70";
8223
- const disclaimer = "_disclaimer_iy175_76";
8215
+ const section$2 = "_section_n8xka_1";
8216
+ const track = "_track_n8xka_8";
8217
+ const card = "_card_n8xka_38";
8218
+ const quote = "_quote_n8xka_50";
8219
+ const author = "_author_n8xka_58";
8220
+ const dots = "_dots_n8xka_64";
8221
+ const dot = "_dot_n8xka_64";
8222
+ const dotActive = "_dotActive_n8xka_77";
8223
+ const disclaimer = "_disclaimer_n8xka_83";
8224
8224
  const styles$6 = {
8225
8225
  section: section$2,
8226
8226
  track,
@@ -305,7 +305,7 @@
305
305
  * (serif, in a page that never set one) and its own background.
306
306
  */
307
307
 
308
- ._surface_nj74o_10 {
308
+ ._surface_cfqo9_10 {
309
309
  font-family: var(--font-family-base);
310
310
  font-weight: var(--font-weight-regular);
311
311
  font-size: var(--type-paragraph-size);
@@ -316,9 +316,9 @@
316
316
  text-rendering: optimizeLegibility;
317
317
  }
318
318
 
319
- ._surface_nj74o_10 *,
320
- ._surface_nj74o_10 *::before,
321
- ._surface_nj74o_10 *::after {
319
+ ._surface_cfqo9_10 *,
320
+ ._surface_cfqo9_10 *::before,
321
+ ._surface_cfqo9_10 *::after {
322
322
  box-sizing: border-box;
323
323
  }
324
324
 
@@ -330,7 +330,7 @@
330
330
  * through a screen of the opposite palette) is invisible in our own app, where the body
331
331
  * already matches, and so goes unnoticed until a partner reports it.
332
332
  */
333
- ._fill_nj74o_35 {
333
+ ._fill_cfqo9_35 {
334
334
  /* Declared twice on purpose, and the order matters.
335
335
  `dvh` landed in Chrome 108 / iOS 15.4, and this package supports React 16.14 because
336
336
  that is what DAZN's app runs — an app that old can be paired with a WebView that old.
@@ -348,17 +348,31 @@
348
348
  min-height: calc(100dvh - var(--surface-top, 0px));
349
349
  }
350
350
 
351
- ._surface_nj74o_10 :is(h1, h2, h3) {
351
+ /*
352
+ * Base heading typography — a DEFAULT, which is why every part is wrapped in `:where()`.
353
+ *
354
+ * This is the same trap the link rule below documents, and it was still live here.
355
+ * `.surface h1` is specificity (0,1,1) and a CSS-module class is (0,1,0), so these rules
356
+ * beat every component that set its own heading size. The category hero asked for 40px in
357
+ * `PcpHero.module.css` and rendered at 24px — the `--type-heading-lg-size` below — which
358
+ * read as "the design is wrong" rather than "a base style is winning", and sent us
359
+ * measuring Figma twice before checking what the browser actually computed.
360
+ *
361
+ * `:where()` drops the whole selector to specificity (0,0,0), so ANY component class wins
362
+ * deterministically rather than by source order, while a heading that sets nothing still
363
+ * gets the scale. That is what a base style should be.
364
+ */
365
+ :where(._surface_cfqo9_10) :where(h1, h2, h3) {
352
366
  margin: 0;
353
367
  font-weight: var(--font-weight-bold);
354
368
  }
355
369
 
356
- ._surface_nj74o_10 h1 {
370
+ :where(._surface_cfqo9_10) :where(h1) {
357
371
  font-size: var(--type-heading-lg-size);
358
372
  line-height: var(--type-heading-lg-line);
359
373
  }
360
374
 
361
- ._surface_nj74o_10 h2 {
375
+ :where(._surface_cfqo9_10) :where(h2) {
362
376
  font-size: var(--type-heading-md-size);
363
377
  line-height: var(--type-heading-md-line);
364
378
  }
@@ -377,27 +391,27 @@
377
391
  * Restricting the rule to unclassed anchors keeps what it is for — a bare `<a>` must never
378
392
  * render browser-blue — while leaving any anchor that carries a class in charge of itself.
379
393
  */
380
- ._surface_nj74o_10 a:not([class]) {
394
+ ._surface_cfqo9_10 a:not([class]) {
381
395
  color: inherit;
382
396
  }
383
397
 
384
- ._surface_nj74o_10 img {
398
+ ._surface_cfqo9_10 img {
385
399
  max-width: 100%;
386
400
  height: auto;
387
401
  }
388
402
 
389
403
  /* Visible focus for keyboard users — a WCAG 2.1 AA launch gate, so it cannot be left
390
404
  to the host to remember. */
391
- ._surface_nj74o_10 :focus-visible {
405
+ ._surface_cfqo9_10 :focus-visible {
392
406
  outline: 2px solid var(--color-surface-max);
393
407
  outline-offset: 2px;
394
408
  border-radius: var(--radius-4);
395
409
  }
396
410
 
397
411
  @media (prefers-reduced-motion: reduce) {
398
- ._surface_nj74o_10 *,
399
- ._surface_nj74o_10 *::before,
400
- ._surface_nj74o_10 *::after {
412
+ ._surface_cfqo9_10 *,
413
+ ._surface_cfqo9_10 *::before,
414
+ ._surface_cfqo9_10 *::after {
401
415
  animation-duration: 0.001ms !important;
402
416
  animation-iteration-count: 1 !important;
403
417
  transition-duration: 0.001ms !important;
@@ -2109,14 +2123,14 @@
2109
2123
  gap: var(--space-20);
2110
2124
  }
2111
2125
 
2112
- ._gallery_h8m00_1 {
2126
+ ._gallery_1e69n_1 {
2113
2127
  position: relative;
2114
2128
  display: flex;
2115
2129
  flex-direction: column;
2116
2130
  gap: var(--space-12);
2117
2131
  }
2118
2132
 
2119
- ._track_h8m00_8 {
2133
+ ._track_1e69n_8 {
2120
2134
  display: flex;
2121
2135
  overflow-x: auto;
2122
2136
  scroll-snap-type: x mandatory;
@@ -2125,27 +2139,33 @@
2125
2139
  edge-to-edge and flush under the header. */
2126
2140
  aspect-ratio: 375 / 485;
2127
2141
  background: var(--color-surface-soft);
2142
+ /* Same as the review carousel: the dots below are the indicator. */
2143
+ scrollbar-width: none;
2144
+ }
2145
+
2146
+ ._track_1e69n_8::-webkit-scrollbar {
2147
+ display: none;
2128
2148
  }
2129
2149
 
2130
- ._slide_h8m00_19 {
2150
+ ._slide_1e69n_25 {
2131
2151
  position: relative;
2132
2152
  flex: 0 0 100%;
2133
2153
  scroll-snap-align: center;
2134
2154
  aspect-ratio: 375 / 485;
2135
2155
  }
2136
2156
 
2137
- ._image_h8m00_26 {
2157
+ ._image_1e69n_32 {
2138
2158
  object-fit: cover;
2139
2159
  }
2140
2160
 
2141
- ._placeholder_h8m00_30 {
2161
+ ._placeholder_1e69n_36 {
2142
2162
  width: 100%;
2143
2163
  aspect-ratio: 375 / 485;
2144
2164
  background: var(--color-surface-soft);
2145
2165
  }
2146
2166
 
2147
2167
  /* Share button — top-right chrome over the image (mobile/button: 32px, soft, radius-8). */
2148
- ._share_h8m00_37 {
2168
+ ._share_1e69n_43 {
2149
2169
  position: absolute;
2150
2170
  top: var(--space-16);
2151
2171
  right: var(--space-16);
@@ -2162,13 +2182,13 @@
2162
2182
  cursor: pointer;
2163
2183
  }
2164
2184
 
2165
- ._dots_h8m00_54 {
2185
+ ._dots_1e69n_60 {
2166
2186
  display: flex;
2167
2187
  justify-content: center;
2168
2188
  gap: var(--space-6);
2169
2189
  }
2170
2190
 
2171
- ._dot_h8m00_54 {
2191
+ ._dot_1e69n_60 {
2172
2192
  width: 8px;
2173
2193
  height: 8px;
2174
2194
  padding: 0;
@@ -2180,13 +2200,13 @@
2180
2200
  position: relative;
2181
2201
  }
2182
2202
 
2183
- ._dot_h8m00_54::after {
2203
+ ._dot_1e69n_60::after {
2184
2204
  content: '';
2185
2205
  position: absolute;
2186
2206
  inset: -18px;
2187
2207
  }
2188
2208
 
2189
- ._dotActive_h8m00_78 {
2209
+ ._dotActive_1e69n_84 {
2190
2210
  background: var(--color-surface-max);
2191
2211
  }
2192
2212
  /*
@@ -2943,14 +2963,14 @@
2943
2963
  ._dotActive_9mquf_63 {
2944
2964
  background: #f9fafa;
2945
2965
  }
2946
- ._section_iy175_1 {
2966
+ ._section_n8xka_1 {
2947
2967
  display: flex;
2948
2968
  flex-direction: column;
2949
2969
  gap: var(--space-12);
2950
2970
  padding: var(--space-24) 0 var(--space-16);
2951
2971
  }
2952
2972
 
2953
- ._track_iy175_8 {
2973
+ ._track_n8xka_8 {
2954
2974
  display: flex;
2955
2975
  gap: var(--space-12);
2956
2976
  list-style: none;
@@ -2960,6 +2980,13 @@
2960
2980
  scroll-snap-type: x mandatory;
2961
2981
  scroll-padding-inline: var(--space-16);
2962
2982
  -webkit-overflow-scrolling: touch;
2983
+ /* The dots are the position indicator. A native scrollbar under them says the same
2984
+ thing twice, in a style nothing else on the page uses, and it is not in the frame. */
2985
+ scrollbar-width: none;
2986
+ }
2987
+
2988
+ ._track_n8xka_8::-webkit-scrollbar {
2989
+ display: none;
2963
2990
  }
2964
2991
 
2965
2992
  /*
@@ -2973,7 +3000,7 @@
2973
3000
  * is raised with DAZN's designers, and the card flips the moment they retune the token.
2974
3001
  * Everything else on this block follows Figma exactly.
2975
3002
  */
2976
- ._card_iy175_31 {
3003
+ ._card_n8xka_38 {
2977
3004
  flex: 0 0 323px;
2978
3005
  max-width: calc(100% - var(--space-20));
2979
3006
  scroll-snap-align: start;
@@ -2985,7 +3012,7 @@
2985
3012
  background: #f9fafa;
2986
3013
  }
2987
3014
 
2988
- ._quote_iy175_43 {
3015
+ ._quote_n8xka_50 {
2989
3016
  margin: 0;
2990
3017
  font-size: var(--type-heading-lg-size);
2991
3018
  line-height: 1.2;
@@ -2993,32 +3020,32 @@
2993
3020
  color: #0c161c;
2994
3021
  }
2995
3022
 
2996
- ._author_iy175_51 {
3023
+ ._author_n8xka_58 {
2997
3024
  margin: 0;
2998
3025
  font-size: var(--type-trimmed-sm-size);
2999
3026
  color: #3d4549;
3000
3027
  }
3001
3028
 
3002
- ._dots_iy175_57 {
3029
+ ._dots_n8xka_64 {
3003
3030
  display: flex;
3004
3031
  justify-content: center;
3005
3032
  gap: var(--space-8);
3006
3033
  }
3007
3034
 
3008
- ._dot_iy175_57 {
3035
+ ._dot_n8xka_64 {
3009
3036
  width: 8px;
3010
3037
  height: 8px;
3011
3038
  border-radius: var(--radius-full);
3012
3039
  background: #9ea2a4;
3013
3040
  }
3014
3041
 
3015
- ._dotActive_iy175_70 {
3042
+ ._dotActive_n8xka_77 {
3016
3043
  background: #f9fafa;
3017
3044
  }
3018
3045
 
3019
3046
  /* Quiet, but present. Not in the Figma frame — the component's own note makes it
3020
3047
  mandatory, and staff quotes shown as reviews without one is the failure it guards. */
3021
- ._disclaimer_iy175_76 {
3048
+ ._disclaimer_n8xka_83 {
3022
3049
  margin: 0;
3023
3050
  padding: 0 var(--space-16);
3024
3051
  font-size: var(--type-trimmed-xs-size);
package/dist/styles.css CHANGED
@@ -305,7 +305,7 @@
305
305
  * (serif, in a page that never set one) and its own background.
306
306
  */
307
307
 
308
- ._surface_nj74o_10 {
308
+ ._surface_cfqo9_10 {
309
309
  font-family: var(--font-family-base);
310
310
  font-weight: var(--font-weight-regular);
311
311
  font-size: var(--type-paragraph-size);
@@ -316,9 +316,9 @@
316
316
  text-rendering: optimizeLegibility;
317
317
  }
318
318
 
319
- ._surface_nj74o_10 *,
320
- ._surface_nj74o_10 *::before,
321
- ._surface_nj74o_10 *::after {
319
+ ._surface_cfqo9_10 *,
320
+ ._surface_cfqo9_10 *::before,
321
+ ._surface_cfqo9_10 *::after {
322
322
  box-sizing: border-box;
323
323
  }
324
324
 
@@ -330,7 +330,7 @@
330
330
  * through a screen of the opposite palette) is invisible in our own app, where the body
331
331
  * already matches, and so goes unnoticed until a partner reports it.
332
332
  */
333
- ._fill_nj74o_35 {
333
+ ._fill_cfqo9_35 {
334
334
  /* Declared twice on purpose, and the order matters.
335
335
  `dvh` landed in Chrome 108 / iOS 15.4, and this package supports React 16.14 because
336
336
  that is what DAZN's app runs — an app that old can be paired with a WebView that old.
@@ -348,17 +348,31 @@
348
348
  min-height: calc(100dvh - var(--surface-top, 0px));
349
349
  }
350
350
 
351
- ._surface_nj74o_10 :is(h1, h2, h3) {
351
+ /*
352
+ * Base heading typography — a DEFAULT, which is why every part is wrapped in `:where()`.
353
+ *
354
+ * This is the same trap the link rule below documents, and it was still live here.
355
+ * `.surface h1` is specificity (0,1,1) and a CSS-module class is (0,1,0), so these rules
356
+ * beat every component that set its own heading size. The category hero asked for 40px in
357
+ * `PcpHero.module.css` and rendered at 24px — the `--type-heading-lg-size` below — which
358
+ * read as "the design is wrong" rather than "a base style is winning", and sent us
359
+ * measuring Figma twice before checking what the browser actually computed.
360
+ *
361
+ * `:where()` drops the whole selector to specificity (0,0,0), so ANY component class wins
362
+ * deterministically rather than by source order, while a heading that sets nothing still
363
+ * gets the scale. That is what a base style should be.
364
+ */
365
+ :where(._surface_cfqo9_10) :where(h1, h2, h3) {
352
366
  margin: 0;
353
367
  font-weight: var(--font-weight-bold);
354
368
  }
355
369
 
356
- ._surface_nj74o_10 h1 {
370
+ :where(._surface_cfqo9_10) :where(h1) {
357
371
  font-size: var(--type-heading-lg-size);
358
372
  line-height: var(--type-heading-lg-line);
359
373
  }
360
374
 
361
- ._surface_nj74o_10 h2 {
375
+ :where(._surface_cfqo9_10) :where(h2) {
362
376
  font-size: var(--type-heading-md-size);
363
377
  line-height: var(--type-heading-md-line);
364
378
  }
@@ -377,27 +391,27 @@
377
391
  * Restricting the rule to unclassed anchors keeps what it is for — a bare `<a>` must never
378
392
  * render browser-blue — while leaving any anchor that carries a class in charge of itself.
379
393
  */
380
- ._surface_nj74o_10 a:not([class]) {
394
+ ._surface_cfqo9_10 a:not([class]) {
381
395
  color: inherit;
382
396
  }
383
397
 
384
- ._surface_nj74o_10 img {
398
+ ._surface_cfqo9_10 img {
385
399
  max-width: 100%;
386
400
  height: auto;
387
401
  }
388
402
 
389
403
  /* Visible focus for keyboard users — a WCAG 2.1 AA launch gate, so it cannot be left
390
404
  to the host to remember. */
391
- ._surface_nj74o_10 :focus-visible {
405
+ ._surface_cfqo9_10 :focus-visible {
392
406
  outline: 2px solid var(--color-surface-max);
393
407
  outline-offset: 2px;
394
408
  border-radius: var(--radius-4);
395
409
  }
396
410
 
397
411
  @media (prefers-reduced-motion: reduce) {
398
- ._surface_nj74o_10 *,
399
- ._surface_nj74o_10 *::before,
400
- ._surface_nj74o_10 *::after {
412
+ ._surface_cfqo9_10 *,
413
+ ._surface_cfqo9_10 *::before,
414
+ ._surface_cfqo9_10 *::after {
401
415
  animation-duration: 0.001ms !important;
402
416
  animation-iteration-count: 1 !important;
403
417
  transition-duration: 0.001ms !important;
@@ -2109,14 +2123,14 @@
2109
2123
  gap: var(--space-20);
2110
2124
  }
2111
2125
 
2112
- ._gallery_h8m00_1 {
2126
+ ._gallery_1e69n_1 {
2113
2127
  position: relative;
2114
2128
  display: flex;
2115
2129
  flex-direction: column;
2116
2130
  gap: var(--space-12);
2117
2131
  }
2118
2132
 
2119
- ._track_h8m00_8 {
2133
+ ._track_1e69n_8 {
2120
2134
  display: flex;
2121
2135
  overflow-x: auto;
2122
2136
  scroll-snap-type: x mandatory;
@@ -2125,27 +2139,33 @@
2125
2139
  edge-to-edge and flush under the header. */
2126
2140
  aspect-ratio: 375 / 485;
2127
2141
  background: var(--color-surface-soft);
2142
+ /* Same as the review carousel: the dots below are the indicator. */
2143
+ scrollbar-width: none;
2144
+ }
2145
+
2146
+ ._track_1e69n_8::-webkit-scrollbar {
2147
+ display: none;
2128
2148
  }
2129
2149
 
2130
- ._slide_h8m00_19 {
2150
+ ._slide_1e69n_25 {
2131
2151
  position: relative;
2132
2152
  flex: 0 0 100%;
2133
2153
  scroll-snap-align: center;
2134
2154
  aspect-ratio: 375 / 485;
2135
2155
  }
2136
2156
 
2137
- ._image_h8m00_26 {
2157
+ ._image_1e69n_32 {
2138
2158
  object-fit: cover;
2139
2159
  }
2140
2160
 
2141
- ._placeholder_h8m00_30 {
2161
+ ._placeholder_1e69n_36 {
2142
2162
  width: 100%;
2143
2163
  aspect-ratio: 375 / 485;
2144
2164
  background: var(--color-surface-soft);
2145
2165
  }
2146
2166
 
2147
2167
  /* Share button — top-right chrome over the image (mobile/button: 32px, soft, radius-8). */
2148
- ._share_h8m00_37 {
2168
+ ._share_1e69n_43 {
2149
2169
  position: absolute;
2150
2170
  top: var(--space-16);
2151
2171
  right: var(--space-16);
@@ -2162,13 +2182,13 @@
2162
2182
  cursor: pointer;
2163
2183
  }
2164
2184
 
2165
- ._dots_h8m00_54 {
2185
+ ._dots_1e69n_60 {
2166
2186
  display: flex;
2167
2187
  justify-content: center;
2168
2188
  gap: var(--space-6);
2169
2189
  }
2170
2190
 
2171
- ._dot_h8m00_54 {
2191
+ ._dot_1e69n_60 {
2172
2192
  width: 8px;
2173
2193
  height: 8px;
2174
2194
  padding: 0;
@@ -2180,13 +2200,13 @@
2180
2200
  position: relative;
2181
2201
  }
2182
2202
 
2183
- ._dot_h8m00_54::after {
2203
+ ._dot_1e69n_60::after {
2184
2204
  content: '';
2185
2205
  position: absolute;
2186
2206
  inset: -18px;
2187
2207
  }
2188
2208
 
2189
- ._dotActive_h8m00_78 {
2209
+ ._dotActive_1e69n_84 {
2190
2210
  background: var(--color-surface-max);
2191
2211
  }
2192
2212
  /*
@@ -2943,14 +2963,14 @@
2943
2963
  ._dotActive_9mquf_63 {
2944
2964
  background: #f9fafa;
2945
2965
  }
2946
- ._section_iy175_1 {
2966
+ ._section_n8xka_1 {
2947
2967
  display: flex;
2948
2968
  flex-direction: column;
2949
2969
  gap: var(--space-12);
2950
2970
  padding: var(--space-24) 0 var(--space-16);
2951
2971
  }
2952
2972
 
2953
- ._track_iy175_8 {
2973
+ ._track_n8xka_8 {
2954
2974
  display: flex;
2955
2975
  gap: var(--space-12);
2956
2976
  list-style: none;
@@ -2960,6 +2980,13 @@
2960
2980
  scroll-snap-type: x mandatory;
2961
2981
  scroll-padding-inline: var(--space-16);
2962
2982
  -webkit-overflow-scrolling: touch;
2983
+ /* The dots are the position indicator. A native scrollbar under them says the same
2984
+ thing twice, in a style nothing else on the page uses, and it is not in the frame. */
2985
+ scrollbar-width: none;
2986
+ }
2987
+
2988
+ ._track_n8xka_8::-webkit-scrollbar {
2989
+ display: none;
2963
2990
  }
2964
2991
 
2965
2992
  /*
@@ -2973,7 +3000,7 @@
2973
3000
  * is raised with DAZN's designers, and the card flips the moment they retune the token.
2974
3001
  * Everything else on this block follows Figma exactly.
2975
3002
  */
2976
- ._card_iy175_31 {
3003
+ ._card_n8xka_38 {
2977
3004
  flex: 0 0 323px;
2978
3005
  max-width: calc(100% - var(--space-20));
2979
3006
  scroll-snap-align: start;
@@ -2985,7 +3012,7 @@
2985
3012
  background: #f9fafa;
2986
3013
  }
2987
3014
 
2988
- ._quote_iy175_43 {
3015
+ ._quote_n8xka_50 {
2989
3016
  margin: 0;
2990
3017
  font-size: var(--type-heading-lg-size);
2991
3018
  line-height: 1.2;
@@ -2993,32 +3020,32 @@
2993
3020
  color: #0c161c;
2994
3021
  }
2995
3022
 
2996
- ._author_iy175_51 {
3023
+ ._author_n8xka_58 {
2997
3024
  margin: 0;
2998
3025
  font-size: var(--type-trimmed-sm-size);
2999
3026
  color: #3d4549;
3000
3027
  }
3001
3028
 
3002
- ._dots_iy175_57 {
3029
+ ._dots_n8xka_64 {
3003
3030
  display: flex;
3004
3031
  justify-content: center;
3005
3032
  gap: var(--space-8);
3006
3033
  }
3007
3034
 
3008
- ._dot_iy175_57 {
3035
+ ._dot_n8xka_64 {
3009
3036
  width: 8px;
3010
3037
  height: 8px;
3011
3038
  border-radius: var(--radius-full);
3012
3039
  background: #9ea2a4;
3013
3040
  }
3014
3041
 
3015
- ._dotActive_iy175_70 {
3042
+ ._dotActive_n8xka_77 {
3016
3043
  background: #f9fafa;
3017
3044
  }
3018
3045
 
3019
3046
  /* Quiet, but present. Not in the Figma frame — the component's own note makes it
3020
3047
  mandatory, and staff quotes shown as reviews without one is the failure it guards. */
3021
- ._disclaimer_iy175_76 {
3048
+ ._disclaimer_n8xka_83 {
3022
3049
  margin: 0;
3023
3050
  padding: 0 var(--space-16);
3024
3051
  font-size: var(--type-trimmed-xs-size);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nok-integration/storefront-react",
3
- "version": "0.16.1",
3
+ "version": "0.16.3",
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
  "publishConfig": {