@nok-integration/storefront-react 0.19.43 → 0.19.45
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 +24 -7
- package/dist/index.mjs +71 -26
- package/dist/standalone/storefront.mjs +71 -26
- package/dist/standalone/styles.css +24 -24
- package/dist/styles.css +24 -24
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -3282,6 +3282,7 @@ export declare interface DaznShopConfig {
|
|
|
3282
3282
|
assetBaseUrl?: string;
|
|
3283
3283
|
market?: Market;
|
|
3284
3284
|
navigate?: Navigate;
|
|
3285
|
+
prefetch?: Prefetch;
|
|
3285
3286
|
/**
|
|
3286
3287
|
* @deprecated No longer affects how anything renders, and safe to remove.
|
|
3287
3288
|
*
|
|
@@ -4451,6 +4452,9 @@ export declare interface PdpBadgesProps {
|
|
|
4451
4452
|
badges: string[];
|
|
4452
4453
|
}
|
|
4453
4454
|
|
|
4455
|
+
/** Optional host router warm-up. Omit it and every navigation is a cold fetch. */
|
|
4456
|
+
export declare type Prefetch = (to: ShopRoute) => void;
|
|
4457
|
+
|
|
4454
4458
|
/**
|
|
4455
4459
|
* Displays a price with an optional discount. DISPLAY ONLY — it never computes totals;
|
|
4456
4460
|
* any percentage shown is a presentational rounding of values the server already
|
|
@@ -5568,6 +5572,7 @@ declare interface ShopContextValue {
|
|
|
5568
5572
|
/** Listen to the same event stream the host sees. Returns an unsubscribe. */
|
|
5569
5573
|
subscribe: (listener: OnEvent) => () => void;
|
|
5570
5574
|
navigate: (to: ShopRoute) => void;
|
|
5575
|
+
prefetch: ((to: ShopRoute) => void) | null;
|
|
5571
5576
|
}
|
|
5572
5577
|
|
|
5573
5578
|
export declare type ShopEvent = {
|
|
@@ -5966,18 +5971,28 @@ export declare type ShopTone = 'dark' | 'light';
|
|
|
5966
5971
|
/**
|
|
5967
5972
|
* Full-bleed background video: muted, looping, inline, and never showing a control.
|
|
5968
5973
|
*
|
|
5969
|
-
* The
|
|
5970
|
-
*
|
|
5974
|
+
* The attributes below are not stylistic. `muted` and `playsInline` together are the only
|
|
5975
|
+
* combination iOS will start without a gesture — a video that is unmuted, or that is
|
|
5971
5976
|
* allowed to go fullscreen, simply does not play, and the panel shows its poster forever.
|
|
5972
5977
|
* `loop` is the brief. `controls` is absent because this is artwork behind copy, not a
|
|
5973
5978
|
* player: a tap belongs to the CTA stretched over the panel, and a play button in the
|
|
5974
5979
|
* middle of a category slide would sit directly on that hit area.
|
|
5975
5980
|
*
|
|
5976
|
-
* **
|
|
5977
|
-
*
|
|
5978
|
-
*
|
|
5979
|
-
*
|
|
5980
|
-
*
|
|
5981
|
+
* **There is no `autoplay` attribute, and its absence is what makes `preload` mean
|
|
5982
|
+
* anything.** A `<video autoplay preload="none">` is a contradiction the browser resolves
|
|
5983
|
+
* in favour of autoplay: WebKit ignores the `preload` hint and begins fetching at once,
|
|
5984
|
+
* because it has been told the clip is going to play regardless. On the shop entry that is
|
|
5985
|
+
* five full-screen clips, several megabytes, all pulling against each other on a phone from
|
|
5986
|
+
* the moment the screen opens — which is slowest for the one panel a fan is actually
|
|
5987
|
+
* looking at. Playback is driven from the observer below instead, so the clips still start
|
|
5988
|
+
* by themselves and still loop, and `preload` is honoured.
|
|
5989
|
+
*
|
|
5990
|
+
* **Playback follows visibility; fetching runs one screen ahead of it.** Each clip plays
|
|
5991
|
+
* when its panel comes into view and pauses when it leaves, which keeps one video decoding
|
|
5992
|
+
* at a time. Downloading cannot wait that long: a clip that only starts arriving once its
|
|
5993
|
+
* panel is on screen shows its poster for as long as the file takes. So `preload` flips to
|
|
5994
|
+
* `auto` a screen out — the panel being approached is buffered before it is reached, and a
|
|
5995
|
+
* fan who never scrolls past the hero pays for the hero and its neighbour, not for all five.
|
|
5981
5996
|
*
|
|
5982
5997
|
* **Reduced motion is honoured by not playing at all.** Autoplaying background video is
|
|
5983
5998
|
* exactly what the preference is about, and there is a good still to fall back to — the
|
|
@@ -6417,6 +6432,8 @@ export declare function useMoney(defaultLocale?: string): {
|
|
|
6417
6432
|
*/
|
|
6418
6433
|
export declare function useNavigate(): ((to: ShopRoute) => void) | null;
|
|
6419
6434
|
|
|
6435
|
+
export declare function usePrefetch(): ((to: ShopRoute) => void) | null;
|
|
6436
|
+
|
|
6420
6437
|
/**
|
|
6421
6438
|
* The data behind a product screen: the product, then inventory and recommendations.
|
|
6422
6439
|
*
|
package/dist/index.mjs
CHANGED
|
@@ -5257,7 +5257,7 @@ function NoScreenTitle({ children }) {
|
|
|
5257
5257
|
}
|
|
5258
5258
|
const ShopContext = createContext(null);
|
|
5259
5259
|
function DaznShopProvider({ children, ...config }) {
|
|
5260
|
-
const { apiBaseUrl, getToken, market, navigate: hostNavigate, sessionTransport = "bearer", theme = "auto", notifications = "internal", onEvent, locale, assetBaseUrl } = config;
|
|
5260
|
+
const { apiBaseUrl, getToken, market, navigate: hostNavigate, prefetch: hostPrefetch, sessionTransport = "bearer", theme = "auto", notifications = "internal", onEvent, locale, assetBaseUrl } = config;
|
|
5261
5261
|
const listeners = useRef(/* @__PURE__ */ new Set());
|
|
5262
5262
|
const subscribe = useCallback((listener) => {
|
|
5263
5263
|
listeners.current.add(listener);
|
|
@@ -5320,8 +5320,9 @@ function DaznShopProvider({ children, ...config }) {
|
|
|
5320
5320
|
assetBaseUrl,
|
|
5321
5321
|
emit,
|
|
5322
5322
|
subscribe,
|
|
5323
|
-
navigate
|
|
5324
|
-
|
|
5323
|
+
navigate,
|
|
5324
|
+
prefetch: hostPrefetch ?? null
|
|
5325
|
+
}), [api, market, products, theme, notifications, locale, assetBaseUrl, emit, subscribe, navigate, hostPrefetch]);
|
|
5325
5326
|
return jsx(ShopContext.Provider, {
|
|
5326
5327
|
value: value2,
|
|
5327
5328
|
children: jsx(ScreenTitleProvider, {
|
|
@@ -5345,6 +5346,9 @@ function useShopApi() {
|
|
|
5345
5346
|
function useNavigate() {
|
|
5346
5347
|
return useShopOptional()?.navigate ?? null;
|
|
5347
5348
|
}
|
|
5349
|
+
function usePrefetch() {
|
|
5350
|
+
return useShopOptional()?.prefetch ?? null;
|
|
5351
|
+
}
|
|
5348
5352
|
function useAssetUrl() {
|
|
5349
5353
|
const base = useShopOptional()?.assetBaseUrl;
|
|
5350
5354
|
return useCallback((src) => resolveAssetUrl(src, base), [base]);
|
|
@@ -5355,7 +5359,35 @@ function useShopEvent() {
|
|
|
5355
5359
|
}
|
|
5356
5360
|
function ShopLink({ to, children, ...rest }) {
|
|
5357
5361
|
const navigate = useNavigate();
|
|
5362
|
+
const prefetch = usePrefetch();
|
|
5363
|
+
const anchor2 = useRef(null);
|
|
5364
|
+
const warmed = useRef(false);
|
|
5365
|
+
const warm = () => {
|
|
5366
|
+
if (warmed.current || !prefetch) return;
|
|
5367
|
+
warmed.current = true;
|
|
5368
|
+
prefetch(to);
|
|
5369
|
+
};
|
|
5370
|
+
useEffect(() => {
|
|
5371
|
+
warmed.current = false;
|
|
5372
|
+
}, [to]);
|
|
5373
|
+
useEffect(() => {
|
|
5374
|
+
const el = anchor2.current;
|
|
5375
|
+
if (!el || !prefetch || typeof IntersectionObserver === "undefined") return;
|
|
5376
|
+
const observer = new IntersectionObserver((entries) => {
|
|
5377
|
+
for (const entry of entries) {
|
|
5378
|
+
if (!entry.isIntersecting) continue;
|
|
5379
|
+
observer.disconnect();
|
|
5380
|
+
warm();
|
|
5381
|
+
}
|
|
5382
|
+
}, {
|
|
5383
|
+
rootMargin: "200px"
|
|
5384
|
+
});
|
|
5385
|
+
observer.observe(el);
|
|
5386
|
+
return () => observer.disconnect();
|
|
5387
|
+
}, [prefetch, to]);
|
|
5358
5388
|
return jsx("a", {
|
|
5389
|
+
ref: anchor2,
|
|
5390
|
+
onPointerDown: warm,
|
|
5359
5391
|
href: to,
|
|
5360
5392
|
onClick: (event) => {
|
|
5361
5393
|
if (!navigate || event.defaultPrevented || event.button !== 0 || event.metaKey || event.ctrlKey || event.shiftKey || event.altKey || rest.target && rest.target !== "_self") {
|
|
@@ -5399,6 +5431,7 @@ function ShopImage({ src, alt, fill: fill2 = false, width, height, sizes, classN
|
|
|
5399
5431
|
fetchPriority: priority ? "high" : void 0
|
|
5400
5432
|
});
|
|
5401
5433
|
}
|
|
5434
|
+
const WARM_MARGIN = "100%";
|
|
5402
5435
|
function ShopVideo({ src, poster, fill: fill2 = false, className, style, priority = false }) {
|
|
5403
5436
|
const assetUrl = useAssetUrl();
|
|
5404
5437
|
const ref = useRef(null);
|
|
@@ -5406,6 +5439,9 @@ function ShopVideo({ src, poster, fill: fill2 = false, className, style, priorit
|
|
|
5406
5439
|
const el = ref.current;
|
|
5407
5440
|
if (!el || typeof IntersectionObserver === "undefined") return;
|
|
5408
5441
|
const reduced = window.matchMedia?.("(prefers-reduced-motion: reduce)");
|
|
5442
|
+
const fetchNow = () => {
|
|
5443
|
+
if (el.preload === "none") el.preload = "auto";
|
|
5444
|
+
};
|
|
5409
5445
|
const play = () => {
|
|
5410
5446
|
if (reduced?.matches) {
|
|
5411
5447
|
el.pause();
|
|
@@ -5414,10 +5450,18 @@ function ShopVideo({ src, poster, fill: fill2 = false, className, style, priorit
|
|
|
5414
5450
|
void el.play().catch(() => {
|
|
5415
5451
|
});
|
|
5416
5452
|
};
|
|
5417
|
-
const
|
|
5453
|
+
const warm = new IntersectionObserver((entries) => {
|
|
5454
|
+
if (!entries.some((entry) => entry.isIntersecting)) return;
|
|
5455
|
+
if (!reduced?.matches) fetchNow();
|
|
5456
|
+
warm.disconnect();
|
|
5457
|
+
}, {
|
|
5458
|
+
rootMargin: WARM_MARGIN
|
|
5459
|
+
});
|
|
5460
|
+
warm.observe(el);
|
|
5461
|
+
const playback = new IntersectionObserver((entries) => {
|
|
5418
5462
|
for (const entry of entries) {
|
|
5419
5463
|
if (entry.isIntersecting) {
|
|
5420
|
-
|
|
5464
|
+
fetchNow();
|
|
5421
5465
|
play();
|
|
5422
5466
|
} else {
|
|
5423
5467
|
el.pause();
|
|
@@ -5426,10 +5470,11 @@ function ShopVideo({ src, poster, fill: fill2 = false, className, style, priorit
|
|
|
5426
5470
|
}, {
|
|
5427
5471
|
threshold: 0.25
|
|
5428
5472
|
});
|
|
5429
|
-
|
|
5473
|
+
playback.observe(el);
|
|
5430
5474
|
reduced?.addEventListener("change", play);
|
|
5431
5475
|
return () => {
|
|
5432
|
-
|
|
5476
|
+
warm.disconnect();
|
|
5477
|
+
playback.disconnect();
|
|
5433
5478
|
reduced?.removeEventListener("change", play);
|
|
5434
5479
|
};
|
|
5435
5480
|
}, []);
|
|
@@ -5448,7 +5493,6 @@ function ShopVideo({ src, poster, fill: fill2 = false, className, style, priorit
|
|
|
5448
5493
|
...fillStyle,
|
|
5449
5494
|
...style
|
|
5450
5495
|
},
|
|
5451
|
-
autoPlay: true,
|
|
5452
5496
|
loop: true,
|
|
5453
5497
|
muted: true,
|
|
5454
5498
|
playsInline: true,
|
|
@@ -8698,16 +8742,16 @@ function RailCarousel({ title: title2, products, seeAllTo, inset: inset2 }) {
|
|
|
8698
8742
|
})]
|
|
8699
8743
|
});
|
|
8700
8744
|
}
|
|
8701
|
-
const overlay$2 = "
|
|
8702
|
-
const scrim$4 = "
|
|
8703
|
-
const sheet$2 = "
|
|
8704
|
-
const grabArea = "
|
|
8705
|
-
const grabber = "
|
|
8706
|
-
const header$4 = "
|
|
8707
|
-
const title$c = "
|
|
8708
|
-
const close$1 = "
|
|
8709
|
-
const body$4 = "
|
|
8710
|
-
const footer = "
|
|
8745
|
+
const overlay$2 = "_overlay_uxpgl_1";
|
|
8746
|
+
const scrim$4 = "_scrim_uxpgl_10";
|
|
8747
|
+
const sheet$2 = "_sheet_uxpgl_16";
|
|
8748
|
+
const grabArea = "_grabArea_uxpgl_41";
|
|
8749
|
+
const grabber = "_grabber_uxpgl_51";
|
|
8750
|
+
const header$4 = "_header_uxpgl_59";
|
|
8751
|
+
const title$c = "_title_uxpgl_67";
|
|
8752
|
+
const close$1 = "_close_uxpgl_71";
|
|
8753
|
+
const body$4 = "_body_uxpgl_84";
|
|
8754
|
+
const footer = "_footer_uxpgl_97";
|
|
8711
8755
|
const styles$o = {
|
|
8712
8756
|
overlay: overlay$2,
|
|
8713
8757
|
scrim: scrim$4,
|
|
@@ -9163,14 +9207,14 @@ function StickyCtaBar({ children, info: info2, variant = "floating" }) {
|
|
|
9163
9207
|
})]
|
|
9164
9208
|
});
|
|
9165
9209
|
}
|
|
9166
|
-
const surface = "
|
|
9167
|
-
const screen = "
|
|
9168
|
-
const body$3 = "
|
|
9169
|
-
const items = "
|
|
9170
|
-
const sectionHeader = "
|
|
9171
|
-
const sectionTitle = "
|
|
9172
|
-
const count = "
|
|
9173
|
-
const lines = "
|
|
9210
|
+
const surface = "_surface_15488_15";
|
|
9211
|
+
const screen = "_screen_15488_20";
|
|
9212
|
+
const body$3 = "_body_15488_12";
|
|
9213
|
+
const items = "_items_15488_34";
|
|
9214
|
+
const sectionHeader = "_sectionHeader_15488_40";
|
|
9215
|
+
const sectionTitle = "_sectionTitle_15488_46";
|
|
9216
|
+
const count = "_count_15488_55";
|
|
9217
|
+
const lines = "_lines_15488_79";
|
|
9174
9218
|
const styles$j = {
|
|
9175
9219
|
surface,
|
|
9176
9220
|
screen,
|
|
@@ -11702,6 +11746,7 @@ export {
|
|
|
11702
11746
|
useCartSheet,
|
|
11703
11747
|
useMoney,
|
|
11704
11748
|
useNavigate,
|
|
11749
|
+
usePrefetch,
|
|
11705
11750
|
useProduct,
|
|
11706
11751
|
useShopApi,
|
|
11707
11752
|
useShopEvent,
|
|
@@ -5257,7 +5257,7 @@ function NoScreenTitle({ children }) {
|
|
|
5257
5257
|
}
|
|
5258
5258
|
const ShopContext = createContext(null);
|
|
5259
5259
|
function DaznShopProvider({ children, ...config }) {
|
|
5260
|
-
const { apiBaseUrl, getToken, market, navigate: hostNavigate, sessionTransport = "bearer", theme = "auto", notifications = "internal", onEvent, locale, assetBaseUrl } = config;
|
|
5260
|
+
const { apiBaseUrl, getToken, market, navigate: hostNavigate, prefetch: hostPrefetch, sessionTransport = "bearer", theme = "auto", notifications = "internal", onEvent, locale, assetBaseUrl } = config;
|
|
5261
5261
|
const listeners = useRef(/* @__PURE__ */ new Set());
|
|
5262
5262
|
const subscribe = useCallback((listener) => {
|
|
5263
5263
|
listeners.current.add(listener);
|
|
@@ -5320,8 +5320,9 @@ function DaznShopProvider({ children, ...config }) {
|
|
|
5320
5320
|
assetBaseUrl,
|
|
5321
5321
|
emit,
|
|
5322
5322
|
subscribe,
|
|
5323
|
-
navigate
|
|
5324
|
-
|
|
5323
|
+
navigate,
|
|
5324
|
+
prefetch: hostPrefetch ?? null
|
|
5325
|
+
}), [api, market, products, theme, notifications, locale, assetBaseUrl, emit, subscribe, navigate, hostPrefetch]);
|
|
5325
5326
|
return jsx(ShopContext.Provider, {
|
|
5326
5327
|
value: value2,
|
|
5327
5328
|
children: jsx(ScreenTitleProvider, {
|
|
@@ -5345,6 +5346,9 @@ function useShopApi() {
|
|
|
5345
5346
|
function useNavigate() {
|
|
5346
5347
|
return useShopOptional()?.navigate ?? null;
|
|
5347
5348
|
}
|
|
5349
|
+
function usePrefetch() {
|
|
5350
|
+
return useShopOptional()?.prefetch ?? null;
|
|
5351
|
+
}
|
|
5348
5352
|
function useAssetUrl() {
|
|
5349
5353
|
const base = useShopOptional()?.assetBaseUrl;
|
|
5350
5354
|
return useCallback((src) => resolveAssetUrl(src, base), [base]);
|
|
@@ -5355,7 +5359,35 @@ function useShopEvent() {
|
|
|
5355
5359
|
}
|
|
5356
5360
|
function ShopLink({ to, children, ...rest }) {
|
|
5357
5361
|
const navigate = useNavigate();
|
|
5362
|
+
const prefetch = usePrefetch();
|
|
5363
|
+
const anchor2 = useRef(null);
|
|
5364
|
+
const warmed = useRef(false);
|
|
5365
|
+
const warm = () => {
|
|
5366
|
+
if (warmed.current || !prefetch) return;
|
|
5367
|
+
warmed.current = true;
|
|
5368
|
+
prefetch(to);
|
|
5369
|
+
};
|
|
5370
|
+
useEffect(() => {
|
|
5371
|
+
warmed.current = false;
|
|
5372
|
+
}, [to]);
|
|
5373
|
+
useEffect(() => {
|
|
5374
|
+
const el = anchor2.current;
|
|
5375
|
+
if (!el || !prefetch || typeof IntersectionObserver === "undefined") return;
|
|
5376
|
+
const observer = new IntersectionObserver((entries) => {
|
|
5377
|
+
for (const entry of entries) {
|
|
5378
|
+
if (!entry.isIntersecting) continue;
|
|
5379
|
+
observer.disconnect();
|
|
5380
|
+
warm();
|
|
5381
|
+
}
|
|
5382
|
+
}, {
|
|
5383
|
+
rootMargin: "200px"
|
|
5384
|
+
});
|
|
5385
|
+
observer.observe(el);
|
|
5386
|
+
return () => observer.disconnect();
|
|
5387
|
+
}, [prefetch, to]);
|
|
5358
5388
|
return jsx("a", {
|
|
5389
|
+
ref: anchor2,
|
|
5390
|
+
onPointerDown: warm,
|
|
5359
5391
|
href: to,
|
|
5360
5392
|
onClick: (event) => {
|
|
5361
5393
|
if (!navigate || event.defaultPrevented || event.button !== 0 || event.metaKey || event.ctrlKey || event.shiftKey || event.altKey || rest.target && rest.target !== "_self") {
|
|
@@ -5399,6 +5431,7 @@ function ShopImage({ src, alt, fill: fill2 = false, width, height, sizes, classN
|
|
|
5399
5431
|
fetchPriority: priority ? "high" : void 0
|
|
5400
5432
|
});
|
|
5401
5433
|
}
|
|
5434
|
+
const WARM_MARGIN = "100%";
|
|
5402
5435
|
function ShopVideo({ src, poster, fill: fill2 = false, className, style, priority = false }) {
|
|
5403
5436
|
const assetUrl = useAssetUrl();
|
|
5404
5437
|
const ref = useRef(null);
|
|
@@ -5406,6 +5439,9 @@ function ShopVideo({ src, poster, fill: fill2 = false, className, style, priorit
|
|
|
5406
5439
|
const el = ref.current;
|
|
5407
5440
|
if (!el || typeof IntersectionObserver === "undefined") return;
|
|
5408
5441
|
const reduced = window.matchMedia?.("(prefers-reduced-motion: reduce)");
|
|
5442
|
+
const fetchNow = () => {
|
|
5443
|
+
if (el.preload === "none") el.preload = "auto";
|
|
5444
|
+
};
|
|
5409
5445
|
const play = () => {
|
|
5410
5446
|
if (reduced?.matches) {
|
|
5411
5447
|
el.pause();
|
|
@@ -5414,10 +5450,18 @@ function ShopVideo({ src, poster, fill: fill2 = false, className, style, priorit
|
|
|
5414
5450
|
void el.play().catch(() => {
|
|
5415
5451
|
});
|
|
5416
5452
|
};
|
|
5417
|
-
const
|
|
5453
|
+
const warm = new IntersectionObserver((entries) => {
|
|
5454
|
+
if (!entries.some((entry) => entry.isIntersecting)) return;
|
|
5455
|
+
if (!reduced?.matches) fetchNow();
|
|
5456
|
+
warm.disconnect();
|
|
5457
|
+
}, {
|
|
5458
|
+
rootMargin: WARM_MARGIN
|
|
5459
|
+
});
|
|
5460
|
+
warm.observe(el);
|
|
5461
|
+
const playback = new IntersectionObserver((entries) => {
|
|
5418
5462
|
for (const entry of entries) {
|
|
5419
5463
|
if (entry.isIntersecting) {
|
|
5420
|
-
|
|
5464
|
+
fetchNow();
|
|
5421
5465
|
play();
|
|
5422
5466
|
} else {
|
|
5423
5467
|
el.pause();
|
|
@@ -5426,10 +5470,11 @@ function ShopVideo({ src, poster, fill: fill2 = false, className, style, priorit
|
|
|
5426
5470
|
}, {
|
|
5427
5471
|
threshold: 0.25
|
|
5428
5472
|
});
|
|
5429
|
-
|
|
5473
|
+
playback.observe(el);
|
|
5430
5474
|
reduced?.addEventListener("change", play);
|
|
5431
5475
|
return () => {
|
|
5432
|
-
|
|
5476
|
+
warm.disconnect();
|
|
5477
|
+
playback.disconnect();
|
|
5433
5478
|
reduced?.removeEventListener("change", play);
|
|
5434
5479
|
};
|
|
5435
5480
|
}, []);
|
|
@@ -5448,7 +5493,6 @@ function ShopVideo({ src, poster, fill: fill2 = false, className, style, priorit
|
|
|
5448
5493
|
...fillStyle,
|
|
5449
5494
|
...style
|
|
5450
5495
|
},
|
|
5451
|
-
autoPlay: true,
|
|
5452
5496
|
loop: true,
|
|
5453
5497
|
muted: true,
|
|
5454
5498
|
playsInline: true,
|
|
@@ -8698,16 +8742,16 @@ function RailCarousel({ title: title2, products, seeAllTo, inset: inset2 }) {
|
|
|
8698
8742
|
})]
|
|
8699
8743
|
});
|
|
8700
8744
|
}
|
|
8701
|
-
const overlay$2 = "
|
|
8702
|
-
const scrim$4 = "
|
|
8703
|
-
const sheet$2 = "
|
|
8704
|
-
const grabArea = "
|
|
8705
|
-
const grabber = "
|
|
8706
|
-
const header$4 = "
|
|
8707
|
-
const title$c = "
|
|
8708
|
-
const close$1 = "
|
|
8709
|
-
const body$4 = "
|
|
8710
|
-
const footer = "
|
|
8745
|
+
const overlay$2 = "_overlay_uxpgl_1";
|
|
8746
|
+
const scrim$4 = "_scrim_uxpgl_10";
|
|
8747
|
+
const sheet$2 = "_sheet_uxpgl_16";
|
|
8748
|
+
const grabArea = "_grabArea_uxpgl_41";
|
|
8749
|
+
const grabber = "_grabber_uxpgl_51";
|
|
8750
|
+
const header$4 = "_header_uxpgl_59";
|
|
8751
|
+
const title$c = "_title_uxpgl_67";
|
|
8752
|
+
const close$1 = "_close_uxpgl_71";
|
|
8753
|
+
const body$4 = "_body_uxpgl_84";
|
|
8754
|
+
const footer = "_footer_uxpgl_97";
|
|
8711
8755
|
const styles$o = {
|
|
8712
8756
|
overlay: overlay$2,
|
|
8713
8757
|
scrim: scrim$4,
|
|
@@ -9163,14 +9207,14 @@ function StickyCtaBar({ children, info: info2, variant = "floating" }) {
|
|
|
9163
9207
|
})]
|
|
9164
9208
|
});
|
|
9165
9209
|
}
|
|
9166
|
-
const surface = "
|
|
9167
|
-
const screen = "
|
|
9168
|
-
const body$3 = "
|
|
9169
|
-
const items = "
|
|
9170
|
-
const sectionHeader = "
|
|
9171
|
-
const sectionTitle = "
|
|
9172
|
-
const count = "
|
|
9173
|
-
const lines = "
|
|
9210
|
+
const surface = "_surface_15488_15";
|
|
9211
|
+
const screen = "_screen_15488_20";
|
|
9212
|
+
const body$3 = "_body_15488_12";
|
|
9213
|
+
const items = "_items_15488_34";
|
|
9214
|
+
const sectionHeader = "_sectionHeader_15488_40";
|
|
9215
|
+
const sectionTitle = "_sectionTitle_15488_46";
|
|
9216
|
+
const count = "_count_15488_55";
|
|
9217
|
+
const lines = "_lines_15488_79";
|
|
9174
9218
|
const styles$j = {
|
|
9175
9219
|
surface,
|
|
9176
9220
|
screen,
|
|
@@ -11702,6 +11746,7 @@ export {
|
|
|
11702
11746
|
useCartSheet,
|
|
11703
11747
|
useMoney,
|
|
11704
11748
|
useNavigate,
|
|
11749
|
+
usePrefetch,
|
|
11705
11750
|
useProduct,
|
|
11706
11751
|
useShopApi,
|
|
11707
11752
|
useShopEvent,
|
|
@@ -2120,7 +2120,7 @@
|
|
|
2120
2120
|
width: 165px;
|
|
2121
2121
|
max-width: none;
|
|
2122
2122
|
}
|
|
2123
|
-
.
|
|
2123
|
+
._overlay_uxpgl_1 {
|
|
2124
2124
|
position: fixed;
|
|
2125
2125
|
inset: 0;
|
|
2126
2126
|
z-index: 900;
|
|
@@ -2128,12 +2128,12 @@
|
|
|
2128
2128
|
align-items: flex-end;
|
|
2129
2129
|
justify-content: center;
|
|
2130
2130
|
}
|
|
2131
|
-
.
|
|
2131
|
+
._scrim_uxpgl_10 {
|
|
2132
2132
|
position: absolute;
|
|
2133
2133
|
inset: 0;
|
|
2134
2134
|
background: rgba(8, 14, 18, 0.5);
|
|
2135
2135
|
}
|
|
2136
|
-
.
|
|
2136
|
+
._sheet_uxpgl_16 {
|
|
2137
2137
|
position: relative;
|
|
2138
2138
|
width: 100%;
|
|
2139
2139
|
max-width: 480px;
|
|
@@ -2142,10 +2142,10 @@
|
|
|
2142
2142
|
border-radius: var(--radius-18) var(--radius-18) 0 0;
|
|
2143
2143
|
display: flex;
|
|
2144
2144
|
flex-direction: column;
|
|
2145
|
-
animation: _slide-
|
|
2145
|
+
animation: _slide-up_uxpgl_1 200ms ease;
|
|
2146
2146
|
padding-bottom: var(--safe-area-bottom);
|
|
2147
2147
|
}
|
|
2148
|
-
@keyframes _slide-
|
|
2148
|
+
@keyframes _slide-up_uxpgl_1 {
|
|
2149
2149
|
from {
|
|
2150
2150
|
transform: translateY(100%);
|
|
2151
2151
|
}
|
|
@@ -2153,32 +2153,32 @@
|
|
|
2153
2153
|
transform: translateY(0);
|
|
2154
2154
|
}
|
|
2155
2155
|
}
|
|
2156
|
-
.
|
|
2156
|
+
._grabArea_uxpgl_41 {
|
|
2157
2157
|
padding: var(--space-8) 0 var(--space-4);
|
|
2158
2158
|
touch-action: none;
|
|
2159
2159
|
cursor: grab;
|
|
2160
2160
|
}
|
|
2161
|
-
.
|
|
2161
|
+
._grabArea_uxpgl_41:active {
|
|
2162
2162
|
cursor: grabbing;
|
|
2163
2163
|
}
|
|
2164
|
-
.
|
|
2164
|
+
._grabber_uxpgl_51 {
|
|
2165
2165
|
width: 40px;
|
|
2166
2166
|
height: 4px;
|
|
2167
2167
|
margin: 0 auto;
|
|
2168
2168
|
border-radius: 2px;
|
|
2169
2169
|
background: var(--color-border-default);
|
|
2170
2170
|
}
|
|
2171
|
-
.
|
|
2171
|
+
._header_uxpgl_59 {
|
|
2172
2172
|
display: flex;
|
|
2173
2173
|
align-items: center;
|
|
2174
2174
|
justify-content: space-between;
|
|
2175
2175
|
padding: var(--space-16);
|
|
2176
2176
|
border-bottom: 1px solid var(--color-border-default);
|
|
2177
2177
|
}
|
|
2178
|
-
.
|
|
2178
|
+
._title_uxpgl_67 {
|
|
2179
2179
|
font-size: var(--type-heading-md-size);
|
|
2180
2180
|
}
|
|
2181
|
-
.
|
|
2181
|
+
._close_uxpgl_71 {
|
|
2182
2182
|
min-width: var(--tap-target-min);
|
|
2183
2183
|
min-height: var(--tap-target-min);
|
|
2184
2184
|
display: inline-flex;
|
|
@@ -2190,16 +2190,16 @@
|
|
|
2190
2190
|
cursor: pointer;
|
|
2191
2191
|
color: var(--color-text-subtle);
|
|
2192
2192
|
}
|
|
2193
|
-
.
|
|
2193
|
+
._body_uxpgl_84 {
|
|
2194
2194
|
overflow-y: auto;
|
|
2195
|
-
padding: var(--space-16);
|
|
2195
|
+
padding: 0 var(--space-16) var(--space-16);
|
|
2196
2196
|
flex: 1 1 auto;
|
|
2197
2197
|
scrollbar-width: none;
|
|
2198
2198
|
}
|
|
2199
|
-
.
|
|
2199
|
+
._body_uxpgl_84::-webkit-scrollbar {
|
|
2200
2200
|
display: none;
|
|
2201
2201
|
}
|
|
2202
|
-
.
|
|
2202
|
+
._footer_uxpgl_97 {
|
|
2203
2203
|
border-top: 1px solid var(--color-border-default);
|
|
2204
2204
|
padding: var(--space-16);
|
|
2205
2205
|
}
|
|
@@ -2442,33 +2442,33 @@
|
|
|
2442
2442
|
._actions_v20rr_49 > * {
|
|
2443
2443
|
flex: 1 1 0;
|
|
2444
2444
|
}
|
|
2445
|
-
.
|
|
2445
|
+
._surface_15488_15 {
|
|
2446
2446
|
display: flex;
|
|
2447
2447
|
flex-direction: column;
|
|
2448
2448
|
}
|
|
2449
|
-
.
|
|
2449
|
+
._screen_15488_20 {
|
|
2450
2450
|
display: flex;
|
|
2451
2451
|
flex-direction: column;
|
|
2452
2452
|
flex: 1 1 auto;
|
|
2453
2453
|
}
|
|
2454
|
-
.
|
|
2454
|
+
._body_15488_12 {
|
|
2455
2455
|
display: flex;
|
|
2456
2456
|
flex-direction: column;
|
|
2457
2457
|
gap: var(--space-20);
|
|
2458
|
-
padding:
|
|
2458
|
+
padding: var(--space-20) var(--space-16) 0;
|
|
2459
2459
|
flex: 1 1 auto;
|
|
2460
2460
|
}
|
|
2461
|
-
.
|
|
2461
|
+
._items_15488_34 {
|
|
2462
2462
|
display: flex;
|
|
2463
2463
|
flex-direction: column;
|
|
2464
2464
|
gap: var(--space-20);
|
|
2465
2465
|
}
|
|
2466
|
-
.
|
|
2466
|
+
._sectionHeader_15488_40 {
|
|
2467
2467
|
display: flex;
|
|
2468
2468
|
align-items: center;
|
|
2469
2469
|
gap: var(--space-12);
|
|
2470
2470
|
}
|
|
2471
|
-
.
|
|
2471
|
+
._sectionTitle_15488_46 {
|
|
2472
2472
|
margin: 0;
|
|
2473
2473
|
font-size: var(--type-heading-md-size);
|
|
2474
2474
|
line-height: 1.38;
|
|
@@ -2476,7 +2476,7 @@
|
|
|
2476
2476
|
flex: 1 0 0;
|
|
2477
2477
|
min-width: 0;
|
|
2478
2478
|
}
|
|
2479
|
-
.
|
|
2479
|
+
._count_15488_55 {
|
|
2480
2480
|
display: inline-flex;
|
|
2481
2481
|
align-items: center;
|
|
2482
2482
|
justify-content: center;
|
|
@@ -2491,7 +2491,7 @@
|
|
|
2491
2491
|
font-variant-numeric: tabular-nums;
|
|
2492
2492
|
flex-shrink: 0;
|
|
2493
2493
|
}
|
|
2494
|
-
.
|
|
2494
|
+
._lines_15488_79 {
|
|
2495
2495
|
list-style: none;
|
|
2496
2496
|
margin: 0;
|
|
2497
2497
|
padding: 0;
|
package/dist/styles.css
CHANGED
|
@@ -2120,7 +2120,7 @@
|
|
|
2120
2120
|
width: 165px;
|
|
2121
2121
|
max-width: none;
|
|
2122
2122
|
}
|
|
2123
|
-
.
|
|
2123
|
+
._overlay_uxpgl_1 {
|
|
2124
2124
|
position: fixed;
|
|
2125
2125
|
inset: 0;
|
|
2126
2126
|
z-index: 900;
|
|
@@ -2128,12 +2128,12 @@
|
|
|
2128
2128
|
align-items: flex-end;
|
|
2129
2129
|
justify-content: center;
|
|
2130
2130
|
}
|
|
2131
|
-
.
|
|
2131
|
+
._scrim_uxpgl_10 {
|
|
2132
2132
|
position: absolute;
|
|
2133
2133
|
inset: 0;
|
|
2134
2134
|
background: rgba(8, 14, 18, 0.5);
|
|
2135
2135
|
}
|
|
2136
|
-
.
|
|
2136
|
+
._sheet_uxpgl_16 {
|
|
2137
2137
|
position: relative;
|
|
2138
2138
|
width: 100%;
|
|
2139
2139
|
max-width: 480px;
|
|
@@ -2142,10 +2142,10 @@
|
|
|
2142
2142
|
border-radius: var(--radius-18) var(--radius-18) 0 0;
|
|
2143
2143
|
display: flex;
|
|
2144
2144
|
flex-direction: column;
|
|
2145
|
-
animation: _slide-
|
|
2145
|
+
animation: _slide-up_uxpgl_1 200ms ease;
|
|
2146
2146
|
padding-bottom: var(--safe-area-bottom);
|
|
2147
2147
|
}
|
|
2148
|
-
@keyframes _slide-
|
|
2148
|
+
@keyframes _slide-up_uxpgl_1 {
|
|
2149
2149
|
from {
|
|
2150
2150
|
transform: translateY(100%);
|
|
2151
2151
|
}
|
|
@@ -2153,32 +2153,32 @@
|
|
|
2153
2153
|
transform: translateY(0);
|
|
2154
2154
|
}
|
|
2155
2155
|
}
|
|
2156
|
-
.
|
|
2156
|
+
._grabArea_uxpgl_41 {
|
|
2157
2157
|
padding: var(--space-8) 0 var(--space-4);
|
|
2158
2158
|
touch-action: none;
|
|
2159
2159
|
cursor: grab;
|
|
2160
2160
|
}
|
|
2161
|
-
.
|
|
2161
|
+
._grabArea_uxpgl_41:active {
|
|
2162
2162
|
cursor: grabbing;
|
|
2163
2163
|
}
|
|
2164
|
-
.
|
|
2164
|
+
._grabber_uxpgl_51 {
|
|
2165
2165
|
width: 40px;
|
|
2166
2166
|
height: 4px;
|
|
2167
2167
|
margin: 0 auto;
|
|
2168
2168
|
border-radius: 2px;
|
|
2169
2169
|
background: var(--color-border-default);
|
|
2170
2170
|
}
|
|
2171
|
-
.
|
|
2171
|
+
._header_uxpgl_59 {
|
|
2172
2172
|
display: flex;
|
|
2173
2173
|
align-items: center;
|
|
2174
2174
|
justify-content: space-between;
|
|
2175
2175
|
padding: var(--space-16);
|
|
2176
2176
|
border-bottom: 1px solid var(--color-border-default);
|
|
2177
2177
|
}
|
|
2178
|
-
.
|
|
2178
|
+
._title_uxpgl_67 {
|
|
2179
2179
|
font-size: var(--type-heading-md-size);
|
|
2180
2180
|
}
|
|
2181
|
-
.
|
|
2181
|
+
._close_uxpgl_71 {
|
|
2182
2182
|
min-width: var(--tap-target-min);
|
|
2183
2183
|
min-height: var(--tap-target-min);
|
|
2184
2184
|
display: inline-flex;
|
|
@@ -2190,16 +2190,16 @@
|
|
|
2190
2190
|
cursor: pointer;
|
|
2191
2191
|
color: var(--color-text-subtle);
|
|
2192
2192
|
}
|
|
2193
|
-
.
|
|
2193
|
+
._body_uxpgl_84 {
|
|
2194
2194
|
overflow-y: auto;
|
|
2195
|
-
padding: var(--space-16);
|
|
2195
|
+
padding: 0 var(--space-16) var(--space-16);
|
|
2196
2196
|
flex: 1 1 auto;
|
|
2197
2197
|
scrollbar-width: none;
|
|
2198
2198
|
}
|
|
2199
|
-
.
|
|
2199
|
+
._body_uxpgl_84::-webkit-scrollbar {
|
|
2200
2200
|
display: none;
|
|
2201
2201
|
}
|
|
2202
|
-
.
|
|
2202
|
+
._footer_uxpgl_97 {
|
|
2203
2203
|
border-top: 1px solid var(--color-border-default);
|
|
2204
2204
|
padding: var(--space-16);
|
|
2205
2205
|
}
|
|
@@ -2442,33 +2442,33 @@
|
|
|
2442
2442
|
._actions_v20rr_49 > * {
|
|
2443
2443
|
flex: 1 1 0;
|
|
2444
2444
|
}
|
|
2445
|
-
.
|
|
2445
|
+
._surface_15488_15 {
|
|
2446
2446
|
display: flex;
|
|
2447
2447
|
flex-direction: column;
|
|
2448
2448
|
}
|
|
2449
|
-
.
|
|
2449
|
+
._screen_15488_20 {
|
|
2450
2450
|
display: flex;
|
|
2451
2451
|
flex-direction: column;
|
|
2452
2452
|
flex: 1 1 auto;
|
|
2453
2453
|
}
|
|
2454
|
-
.
|
|
2454
|
+
._body_15488_12 {
|
|
2455
2455
|
display: flex;
|
|
2456
2456
|
flex-direction: column;
|
|
2457
2457
|
gap: var(--space-20);
|
|
2458
|
-
padding:
|
|
2458
|
+
padding: var(--space-20) var(--space-16) 0;
|
|
2459
2459
|
flex: 1 1 auto;
|
|
2460
2460
|
}
|
|
2461
|
-
.
|
|
2461
|
+
._items_15488_34 {
|
|
2462
2462
|
display: flex;
|
|
2463
2463
|
flex-direction: column;
|
|
2464
2464
|
gap: var(--space-20);
|
|
2465
2465
|
}
|
|
2466
|
-
.
|
|
2466
|
+
._sectionHeader_15488_40 {
|
|
2467
2467
|
display: flex;
|
|
2468
2468
|
align-items: center;
|
|
2469
2469
|
gap: var(--space-12);
|
|
2470
2470
|
}
|
|
2471
|
-
.
|
|
2471
|
+
._sectionTitle_15488_46 {
|
|
2472
2472
|
margin: 0;
|
|
2473
2473
|
font-size: var(--type-heading-md-size);
|
|
2474
2474
|
line-height: 1.38;
|
|
@@ -2476,7 +2476,7 @@
|
|
|
2476
2476
|
flex: 1 0 0;
|
|
2477
2477
|
min-width: 0;
|
|
2478
2478
|
}
|
|
2479
|
-
.
|
|
2479
|
+
._count_15488_55 {
|
|
2480
2480
|
display: inline-flex;
|
|
2481
2481
|
align-items: center;
|
|
2482
2482
|
justify-content: center;
|
|
@@ -2491,7 +2491,7 @@
|
|
|
2491
2491
|
font-variant-numeric: tabular-nums;
|
|
2492
2492
|
flex-shrink: 0;
|
|
2493
2493
|
}
|
|
2494
|
-
.
|
|
2494
|
+
._lines_15488_79 {
|
|
2495
2495
|
list-style: none;
|
|
2496
2496
|
margin: 0;
|
|
2497
2497
|
padding: 0;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nok-integration/storefront-react",
|
|
3
|
-
"version": "0.19.
|
|
3
|
+
"version": "0.19.45",
|
|
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",
|