@nok-integration/storefront-react 0.19.14 → 0.19.15

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 CHANGED
@@ -2503,6 +2503,7 @@ declare function createClient(options: ClientOptions): {
2503
2503
  cta: string;
2504
2504
  image?: string | undefined;
2505
2505
  target?: string | undefined;
2506
+ video?: string | undefined;
2506
2507
  focal_y?: number | undefined;
2507
2508
  }[];
2508
2509
  }>;
@@ -2858,6 +2859,7 @@ declare function createClient(options: ClientOptions): {
2858
2859
  amount: number;
2859
2860
  currency: string;
2860
2861
  } | undefined;
2862
+ returned_qty?: number | undefined;
2861
2863
  }[];
2862
2864
  totals: {
2863
2865
  shipping: {
@@ -2951,6 +2953,7 @@ declare function createClient(options: ClientOptions): {
2951
2953
  amount: number;
2952
2954
  currency: string;
2953
2955
  } | undefined;
2956
+ returned_qty?: number | undefined;
2954
2957
  }[];
2955
2958
  totals: {
2956
2959
  shipping: {
@@ -3729,6 +3732,20 @@ declare const OrderDetail: z.ZodObject<{
3729
3732
  */
3730
3733
  cancelled_qty: z.ZodNumber;
3731
3734
  refunded_qty: z.ZodNumber;
3735
+ /**
3736
+ * Units already reported as coming back.
3737
+ *
3738
+ * **The returns screen cannot compute what is left without it, and got it wrong.** The
3739
+ * engine refuses a return of more than `qty - cancelled_qty - refunded_qty - returned_qty`
3740
+ * (`returns.service`), and this was the only one of those four not on the wire — so a
3741
+ * line returned in full still offered its full quantity, and choosing it answered 400
3742
+ * `invalid_request` with "Only 0 of line_1 can be returned". Seen on UAT order 611887,
3743
+ * 28 Aug.
3744
+ *
3745
+ * Optional so an engine that predates it stays valid; absent means zero, which is what a
3746
+ * consumer already assumed.
3747
+ */
3748
+ returned_qty: z.ZodOptional<z.ZodNumber>;
3732
3749
  }, "strip", z.ZodTypeAny, {
3733
3750
  sku: string;
3734
3751
  qty: number;
@@ -3750,6 +3767,7 @@ declare const OrderDetail: z.ZodObject<{
3750
3767
  title?: string | undefined;
3751
3768
  image?: string | undefined;
3752
3769
  attributes?: Record<string, string> | undefined;
3770
+ returned_qty?: number | undefined;
3753
3771
  }, {
3754
3772
  sku: string;
3755
3773
  qty: number;
@@ -3771,6 +3789,7 @@ declare const OrderDetail: z.ZodObject<{
3771
3789
  title?: string | undefined;
3772
3790
  image?: string | undefined;
3773
3791
  attributes?: Record<string, string> | undefined;
3792
+ returned_qty?: number | undefined;
3774
3793
  }>, "many">;
3775
3794
  ship_to: z.ZodObject<{
3776
3795
  name: z.ZodString;
@@ -3951,6 +3970,7 @@ declare const OrderDetail: z.ZodObject<{
3951
3970
  title?: string | undefined;
3952
3971
  image?: string | undefined;
3953
3972
  attributes?: Record<string, string> | undefined;
3973
+ returned_qty?: number | undefined;
3954
3974
  }[];
3955
3975
  totals: {
3956
3976
  shipping: {
@@ -4037,6 +4057,7 @@ declare const OrderDetail: z.ZodObject<{
4037
4057
  title?: string | undefined;
4038
4058
  image?: string | undefined;
4039
4059
  attributes?: Record<string, string> | undefined;
4060
+ returned_qty?: number | undefined;
4040
4061
  }[];
4041
4062
  totals: {
4042
4063
  shipping: {
@@ -5769,6 +5790,51 @@ export declare interface ShopSurfaceProps extends Omit<ComponentPropsWithoutRef<
5769
5790
 
5770
5791
  export declare type ShopTone = 'dark' | 'light';
5771
5792
 
5793
+ /**
5794
+ * Full-bleed background video: muted, looping, inline, and never showing a control.
5795
+ *
5796
+ * The four attributes below are not stylistic. `muted` and `playsInline` together are the
5797
+ * only combination iOS will start without a gesture — a video that is unmuted, or that is
5798
+ * allowed to go fullscreen, simply does not play, and the panel shows its poster forever.
5799
+ * `loop` is the brief. `controls` is absent because this is artwork behind copy, not a
5800
+ * player: a tap belongs to the CTA stretched over the panel, and a play button in the
5801
+ * middle of a category slide would sit directly on that hit area.
5802
+ *
5803
+ * **Playback follows visibility.** The shop entry is five full-screen panels, so a naive
5804
+ * page decodes five simultaneous streams for four panels nobody is looking at. Each clip
5805
+ * starts when its panel comes into view and pauses when it leaves, which keeps one video
5806
+ * decoding at a time. Fetching is deferred the same way: `preload="none"` until the
5807
+ * observer fires, so a fan who never scrolls past the hero pays for the hero alone.
5808
+ *
5809
+ * **Reduced motion is honoured by not playing at all.** Autoplaying background video is
5810
+ * exactly what the preference is about, and there is a good still to fall back to — the
5811
+ * poster is frame 0 of the clip, so the panel is the design's own opening frame rather
5812
+ * than an empty box. The preference is read live rather than once: a fan can change it
5813
+ * while the page is open, and on iOS it changes with the low-power setting.
5814
+ */
5815
+ export declare function ShopVideo({ src, poster, fill, className, style, priority, }: ShopVideoProps): JSX.Element;
5816
+
5817
+ export declare interface ShopVideoProps {
5818
+ src: string;
5819
+ /**
5820
+ * Still shown until the first frame decodes, and the only thing shown when motion is
5821
+ * reduced. Cut from frame 0 of `src` so there is no jump when playback starts.
5822
+ */
5823
+ poster?: string;
5824
+ /**
5825
+ * Fill the positioned ancestor, as `ShopImage`'s `fill` does. The parent must be
5826
+ * `position: relative` (or absolute/fixed) — same requirement, same reason.
5827
+ */
5828
+ fill?: boolean;
5829
+ className?: string;
5830
+ style?: CSSProperties;
5831
+ /**
5832
+ * Above the fold. Fetches the file immediately instead of waiting for the panel to come
5833
+ * into view. One video per screen should carry this; the rest should not.
5834
+ */
5835
+ priority?: boolean;
5836
+ }
5837
+
5772
5838
  /**
5773
5839
  * Sizing help, shown in the PDP "Size guide" overlay (Figma `size-guide`, 4882:58365).
5774
5840
  *
package/dist/index.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
  import { jsx, jsxs, Fragment } from "react/jsx-runtime";
3
- import { useContext, useEffect, useState, useRef, useCallback, useMemo, createContext, forwardRef } from "react";
3
+ import { useContext, useEffect, useState, useRef, useCallback, useMemo, createContext, forwardRef, Fragment as Fragment$1 } from "react";
4
4
  var client = {};
5
5
  var catalog = {};
6
6
  var zod = {};
@@ -4392,6 +4392,7 @@ function requireContent() {
4392
4392
  cta: zod_1.z.string().min(1),
4393
4393
  target: zod_1.z.string().min(1).optional(),
4394
4394
  image: zod_1.z.string().min(1).optional(),
4395
+ video: zod_1.z.string().min(1).optional(),
4395
4396
  focal_y: zod_1.z.number().int().min(0).max(100).optional()
4396
4397
  });
4397
4398
  exports.HomeContent = zod_1.z.object({
@@ -4673,7 +4674,8 @@ function requireOrderTracking() {
4673
4674
  image: common_1.Url.optional(),
4674
4675
  attributes: common_1.Attributes.optional(),
4675
4676
  cancelled_qty: zod_1.z.number().int().nonnegative(),
4676
- refunded_qty: zod_1.z.number().int().nonnegative()
4677
+ refunded_qty: zod_1.z.number().int().nonnegative(),
4678
+ returned_qty: zod_1.z.number().int().nonnegative().optional()
4677
4679
  });
4678
4680
  exports.OrderSummaryItem = zod_1.z.object({
4679
4681
  order_ref: ids_1.OrderRef,
@@ -5338,6 +5340,64 @@ function ShopImage({ src, alt, fill: fill2 = false, width, height, sizes, classN
5338
5340
  fetchPriority: priority ? "high" : void 0
5339
5341
  });
5340
5342
  }
5343
+ function ShopVideo({ src, poster, fill: fill2 = false, className, style, priority = false }) {
5344
+ const assetUrl = useAssetUrl();
5345
+ const ref = useRef(null);
5346
+ useEffect(() => {
5347
+ const el = ref.current;
5348
+ if (!el || typeof IntersectionObserver === "undefined") return;
5349
+ const reduced = window.matchMedia?.("(prefers-reduced-motion: reduce)");
5350
+ const play = () => {
5351
+ if (reduced?.matches) {
5352
+ el.pause();
5353
+ return;
5354
+ }
5355
+ void el.play().catch(() => {
5356
+ });
5357
+ };
5358
+ const observer = new IntersectionObserver((entries) => {
5359
+ for (const entry of entries) {
5360
+ if (entry.isIntersecting) {
5361
+ if (el.preload === "none") el.preload = "auto";
5362
+ play();
5363
+ } else {
5364
+ el.pause();
5365
+ }
5366
+ }
5367
+ }, {
5368
+ threshold: 0.25
5369
+ });
5370
+ observer.observe(el);
5371
+ reduced?.addEventListener("change", play);
5372
+ return () => {
5373
+ observer.disconnect();
5374
+ reduced?.removeEventListener("change", play);
5375
+ };
5376
+ }, []);
5377
+ const fillStyle = fill2 ? {
5378
+ position: "absolute",
5379
+ inset: 0,
5380
+ width: "100%",
5381
+ height: "100%"
5382
+ } : {};
5383
+ return jsx("video", {
5384
+ ref,
5385
+ src: assetUrl(src),
5386
+ poster: poster ? assetUrl(poster) : void 0,
5387
+ className,
5388
+ style: {
5389
+ ...fillStyle,
5390
+ ...style
5391
+ },
5392
+ autoPlay: true,
5393
+ loop: true,
5394
+ muted: true,
5395
+ playsInline: true,
5396
+ preload: priority ? "auto" : "none",
5397
+ "aria-hidden": true,
5398
+ tabIndex: -1
5399
+ });
5400
+ }
5341
5401
  const badge$5 = "_badge_1bagf_1";
5342
5402
  const neutral$1 = "_neutral_1bagf_12";
5343
5403
  const success$1 = "_success_1bagf_17";
@@ -5555,7 +5615,6 @@ const ES = {
5555
5615
  "Close size guide": "Cerrar la guía de tallas",
5556
5616
  Color: "Color",
5557
5617
  "Color:": "Color:",
5558
- "Complete the look with everyday essentials and finishing details": "Completa tu look con básicos para el día a día y detalles que marcan la diferencia",
5559
5618
  "Continue shopping": "Seguir comprando",
5560
5619
  DAZN: "DAZN",
5561
5620
  "DAZN Shop": "Tienda DAZN",
@@ -5618,7 +5677,6 @@ const ES = {
5618
5677
  "Shipping address": "Dirección de envío",
5619
5678
  "Shipping and returns": "Envíos y devoluciones",
5620
5679
  "Shop menu": "Menú de la tienda",
5621
- "Shop now": "Comprar ahora",
5622
5680
  Size: "Talla",
5623
5681
  "Size guide": "Guía de tallas",
5624
5682
  "Something looks off": "Algo no va bien",
@@ -5626,6 +5684,7 @@ const ES = {
5626
5684
  "Standard or express delivery": "Envío estándar o urgente",
5627
5685
  Subtotal: "Subtotal",
5628
5686
  "Swipe down for more": "Desliza hacia abajo para ver más",
5687
+ "The DAZN Shop collection": "La colección de DAZN Shop",
5629
5688
  "T-Shirts": "Camisetas",
5630
5689
  Tax: "Impuestos",
5631
5690
  "That is not possible right now": "Eso no es posible en este momento",
@@ -6937,15 +6996,18 @@ const RETURN_REASONS = [{
6937
6996
  label: "Changed my mind"
6938
6997
  }];
6939
6998
  const REASON_LABEL = new Map(RETURN_REASONS.map((r) => [r.value, r.label]));
6999
+ function unitsLeft(item2) {
7000
+ return item2.qty - item2.cancelled_qty - item2.refunded_qty - (item2.returned_qty ?? 0);
7001
+ }
6940
7002
  function ReturnItemsView({ order, onSubmit, busy = false }) {
6941
7003
  const { format } = useMoney();
6942
7004
  const [chosen, setChosen] = useState({});
6943
7005
  const [reasonFor, setReasonFor] = useState(null);
6944
- const returnable = useMemo(() => order.items.filter((i) => i.qty - i.cancelled_qty - i.refunded_qty > 0), [order.items]);
7006
+ const returnable = useMemo(() => order.items.filter((i) => unitsLeft(i) > 0), [order.items]);
6945
7007
  const selected2 = Object.entries(chosen).filter(([, reason2]) => reason2 !== void 0);
6946
7008
  const canSubmit = selected2.length > 0;
6947
7009
  function remaining(item2) {
6948
- return item2.qty - item2.cancelled_qty - item2.refunded_qty;
7010
+ return unitsLeft(item2);
6949
7011
  }
6950
7012
  function toggle2(lineRef) {
6951
7013
  if (lineRef in chosen) {
@@ -10601,29 +10663,28 @@ function ProductView({ sku, initialData, showRecommendations = true, onNotFound
10601
10663
  }
10602
10664
  return unavailable;
10603
10665
  }
10604
- const showcase = "_showcase_a0wva_39";
10605
- const panel = "_panel_a0wva_43";
10606
- const image = "_image_a0wva_71";
10607
- const heroImageBox = "_heroImageBox_a0wva_119";
10608
- const hero = "_hero_a0wva_119";
10609
- const heroContent = "_heroContent_a0wva_190";
10610
- const heroText = "_heroText_a0wva_207";
10611
- const logo = "_logo_a0wva_216";
10612
- const heroTitle = "_heroTitle_a0wva_236";
10613
- const heroSub = "_heroSub_a0wva_260";
10614
- const swipe = "_swipe_a0wva_273";
10615
- const swipeLabel = "_swipeLabel_a0wva_281";
10616
- const chevron$1 = "_chevron_a0wva_287";
10617
- const overlay$1 = "_overlay_a0wva_304";
10618
- const copy = "_copy_a0wva_315";
10619
- const title$2 = "_title_a0wva_320";
10620
- const subtitle$1 = "_subtitle_a0wva_327";
10621
- const cta = "_cta_a0wva_333";
10666
+ const showcase = "_showcase_144lm_44";
10667
+ const panel = "_panel_144lm_48";
10668
+ const image = "_image_144lm_76";
10669
+ const hero = "_hero_144lm_116";
10670
+ const heroContent = "_heroContent_144lm_174";
10671
+ const heroText = "_heroText_144lm_197";
10672
+ const logo = "_logo_144lm_206";
10673
+ const heroTitle = "_heroTitle_144lm_226";
10674
+ const heroSub = "_heroSub_144lm_250";
10675
+ const swipe = "_swipe_144lm_269";
10676
+ const swipeLabel = "_swipeLabel_144lm_276";
10677
+ const chevron$1 = "_chevron_144lm_282";
10678
+ const overlay$1 = "_overlay_144lm_11";
10679
+ const copy = "_copy_144lm_315";
10680
+ const title$2 = "_title_144lm_320";
10681
+ const subtitle$1 = "_subtitle_144lm_327";
10682
+ const cta = "_cta_144lm_333";
10683
+ const mosaic = "_mosaic_144lm_377";
10622
10684
  const styles$2 = {
10623
10685
  showcase,
10624
10686
  panel,
10625
10687
  image,
10626
- heroImageBox,
10627
10688
  hero,
10628
10689
  heroContent,
10629
10690
  heroText,
@@ -10637,7 +10698,8 @@ const styles$2 = {
10637
10698
  copy,
10638
10699
  title: title$2,
10639
10700
  subtitle: subtitle$1,
10640
- cta
10701
+ cta,
10702
+ mosaic
10641
10703
  };
10642
10704
  const SETTLE_MS = 150;
10643
10705
  function useDocumentSnap(ref, enabled = true) {
@@ -10670,40 +10732,29 @@ function useDocumentSnap(ref, enabled = true) {
10670
10732
  }, [ref, enabled]);
10671
10733
  }
10672
10734
  const FALLBACK_PANELS = [{
10673
- key: "all-items",
10674
- title: "All items",
10675
- subtitle: "Heavyweight comfort built for training days and off-duty moments",
10676
- cta: "See more",
10677
- to: "/category/t-shirts",
10678
- image: "/figma/home/new.jpg"
10679
- }, {
10680
10735
  key: "hoodies",
10681
10736
  title: "Hoodies",
10682
10737
  subtitle: "Heavyweight comfort built for training days and off-duty moments",
10683
10738
  cta: "See more",
10684
10739
  to: "/category/hoodies",
10685
- image: "/figma/home/hoodies.jpg"
10740
+ video: "/figma/home/hoodies.mp4",
10741
+ image: "/figma/home/hoodies-poster.jpg"
10742
+ }, {
10743
+ key: "zip-ups",
10744
+ title: "Zip Ups",
10745
+ subtitle: "Everyday essentials with sport-inspired fits and minimal branding",
10746
+ cta: "See more",
10747
+ to: "/category/zip-ups",
10748
+ video: "/figma/home/zip-ups.mp4",
10749
+ image: "/figma/home/zip-ups-poster.jpg"
10686
10750
  }, {
10687
10751
  key: "t-shirts",
10688
10752
  title: "T-Shirts",
10689
10753
  subtitle: "Everyday essentials with sport-inspired fits and minimal branding",
10690
- cta: "Explore",
10691
- to: "/category/t-shirts",
10692
- image: "/figma/home/tshirts.jpg"
10693
- }, {
10694
- key: "jackets",
10695
- title: "Jackets",
10696
- subtitle: "Heavyweight comfort built for training days and off-duty moments",
10697
10754
  cta: "See more",
10698
- to: "/category/jackets",
10699
- image: "/figma/home/jackets.jpg"
10700
- }, {
10701
- key: "seasonal",
10702
- title: "Seasonal",
10703
- subtitle: "Complete the look with everyday essentials and finishing details",
10704
- cta: "Shop now",
10705
- to: "/category/summer",
10706
- image: "/figma/home/accessories.jpg"
10755
+ to: "/category/t-shirts",
10756
+ video: "/figma/home/tshirts.mp4",
10757
+ image: "/figma/home/tshirts-poster.jpg"
10707
10758
  }];
10708
10759
  function CategoryPanel({ panel: panel2 }) {
10709
10760
  return jsxs("section", {
@@ -10714,7 +10765,12 @@ function CategoryPanel({ panel: panel2 }) {
10714
10765
  "--slide-focal-y": `${panel2.focalY}%`
10715
10766
  }
10716
10767
  },
10717
- children: [jsx(ShopImage, {
10768
+ children: [panel2.video ? jsx(ShopVideo, {
10769
+ src: panel2.video,
10770
+ poster: panel2.image,
10771
+ fill: true,
10772
+ className: styles$2.image
10773
+ }) : jsx(ShopImage, {
10718
10774
  src: panel2.image,
10719
10775
  alt: "",
10720
10776
  fill: true,
@@ -10740,6 +10796,19 @@ function CategoryPanel({ panel: panel2 }) {
10740
10796
  })]
10741
10797
  });
10742
10798
  }
10799
+ function MosaicPanel() {
10800
+ const t = useT();
10801
+ return jsx("section", {
10802
+ className: `${styles$2.panel} ${styles$2.mosaic}`,
10803
+ "aria-label": t("The DAZN Shop collection"),
10804
+ children: jsx(ShopVideo, {
10805
+ src: "/figma/home/mosaic.mp4",
10806
+ poster: "/figma/home/mosaic-poster.jpg",
10807
+ fill: true,
10808
+ className: styles$2.image
10809
+ })
10810
+ });
10811
+ }
10743
10812
  function useSlides() {
10744
10813
  const t = useT();
10745
10814
  const shop = useShopOptional();
@@ -10763,6 +10832,9 @@ function useSlides() {
10763
10832
  cta: s.cta,
10764
10833
  to: s.target ? `/category/${s.target}` : "/",
10765
10834
  image: s.image ?? "",
10835
+ ...s.video === void 0 ? {} : {
10836
+ video: s.video
10837
+ },
10766
10838
  ...s.focal_y === void 0 ? {} : {
10767
10839
  focalY: s.focal_y
10768
10840
  }
@@ -10790,16 +10862,12 @@ function HomeShowcase() {
10790
10862
  children: [jsxs("section", {
10791
10863
  className: `${styles$2.panel} ${styles$2.hero}`,
10792
10864
  "aria-label": t("DAZN Shop"),
10793
- children: [jsx("div", {
10794
- className: styles$2.heroImageBox,
10795
- children: jsx(ShopImage, {
10796
- src: "/figma/home/hero.jpg",
10797
- alt: "",
10798
- fill: true,
10799
- priority: true,
10800
- sizes: "(max-width: 480px) 100vw, 480px",
10801
- className: styles$2.image
10802
- })
10865
+ children: [jsx(ShopVideo, {
10866
+ src: "/figma/home/hero.mp4",
10867
+ poster: "/figma/home/hero-poster.jpg",
10868
+ fill: true,
10869
+ priority: true,
10870
+ className: styles$2.image
10803
10871
  }), jsxs("div", {
10804
10872
  className: styles$2.heroContent,
10805
10873
  children: [jsxs("div", {
@@ -10835,9 +10903,11 @@ function HomeShowcase() {
10835
10903
  })]
10836
10904
  })]
10837
10905
  })]
10838
- }), panels.map((p) => jsx(CategoryPanel, {
10839
- panel: p
10840
- }, p.key))]
10906
+ }), panels.map((p, i) => jsxs(Fragment$1, {
10907
+ children: [jsx(CategoryPanel, {
10908
+ panel: p
10909
+ }), i === 0 && jsx(MosaicPanel, {})]
10910
+ }, p.key)), panels.length === 0 && jsx(MosaicPanel, {})]
10841
10911
  })
10842
10912
  });
10843
10913
  }
@@ -11353,6 +11423,7 @@ export {
11353
11423
  ShopLink,
11354
11424
  ShopMenuSheet,
11355
11425
  ShopSurface,
11426
+ ShopVideo,
11356
11427
  SizeGuideSheet,
11357
11428
  SizeSelector,
11358
11429
  Skeleton,
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
  import { jsx, jsxs, Fragment } from "react/jsx-runtime";
3
- import { useContext, useEffect, useState, useRef, useCallback, useMemo, createContext, forwardRef } from "react";
3
+ import { useContext, useEffect, useState, useRef, useCallback, useMemo, createContext, forwardRef, Fragment as Fragment$1 } from "react";
4
4
  var client = {};
5
5
  var catalog = {};
6
6
  var zod = {};
@@ -4392,6 +4392,7 @@ function requireContent() {
4392
4392
  cta: zod_1.z.string().min(1),
4393
4393
  target: zod_1.z.string().min(1).optional(),
4394
4394
  image: zod_1.z.string().min(1).optional(),
4395
+ video: zod_1.z.string().min(1).optional(),
4395
4396
  focal_y: zod_1.z.number().int().min(0).max(100).optional()
4396
4397
  });
4397
4398
  exports.HomeContent = zod_1.z.object({
@@ -4673,7 +4674,8 @@ function requireOrderTracking() {
4673
4674
  image: common_1.Url.optional(),
4674
4675
  attributes: common_1.Attributes.optional(),
4675
4676
  cancelled_qty: zod_1.z.number().int().nonnegative(),
4676
- refunded_qty: zod_1.z.number().int().nonnegative()
4677
+ refunded_qty: zod_1.z.number().int().nonnegative(),
4678
+ returned_qty: zod_1.z.number().int().nonnegative().optional()
4677
4679
  });
4678
4680
  exports.OrderSummaryItem = zod_1.z.object({
4679
4681
  order_ref: ids_1.OrderRef,
@@ -5338,6 +5340,64 @@ function ShopImage({ src, alt, fill: fill2 = false, width, height, sizes, classN
5338
5340
  fetchPriority: priority ? "high" : void 0
5339
5341
  });
5340
5342
  }
5343
+ function ShopVideo({ src, poster, fill: fill2 = false, className, style, priority = false }) {
5344
+ const assetUrl = useAssetUrl();
5345
+ const ref = useRef(null);
5346
+ useEffect(() => {
5347
+ const el = ref.current;
5348
+ if (!el || typeof IntersectionObserver === "undefined") return;
5349
+ const reduced = window.matchMedia?.("(prefers-reduced-motion: reduce)");
5350
+ const play = () => {
5351
+ if (reduced?.matches) {
5352
+ el.pause();
5353
+ return;
5354
+ }
5355
+ void el.play().catch(() => {
5356
+ });
5357
+ };
5358
+ const observer = new IntersectionObserver((entries) => {
5359
+ for (const entry of entries) {
5360
+ if (entry.isIntersecting) {
5361
+ if (el.preload === "none") el.preload = "auto";
5362
+ play();
5363
+ } else {
5364
+ el.pause();
5365
+ }
5366
+ }
5367
+ }, {
5368
+ threshold: 0.25
5369
+ });
5370
+ observer.observe(el);
5371
+ reduced?.addEventListener("change", play);
5372
+ return () => {
5373
+ observer.disconnect();
5374
+ reduced?.removeEventListener("change", play);
5375
+ };
5376
+ }, []);
5377
+ const fillStyle = fill2 ? {
5378
+ position: "absolute",
5379
+ inset: 0,
5380
+ width: "100%",
5381
+ height: "100%"
5382
+ } : {};
5383
+ return jsx("video", {
5384
+ ref,
5385
+ src: assetUrl(src),
5386
+ poster: poster ? assetUrl(poster) : void 0,
5387
+ className,
5388
+ style: {
5389
+ ...fillStyle,
5390
+ ...style
5391
+ },
5392
+ autoPlay: true,
5393
+ loop: true,
5394
+ muted: true,
5395
+ playsInline: true,
5396
+ preload: priority ? "auto" : "none",
5397
+ "aria-hidden": true,
5398
+ tabIndex: -1
5399
+ });
5400
+ }
5341
5401
  const badge$5 = "_badge_1bagf_1";
5342
5402
  const neutral$1 = "_neutral_1bagf_12";
5343
5403
  const success$1 = "_success_1bagf_17";
@@ -5555,7 +5615,6 @@ const ES = {
5555
5615
  "Close size guide": "Cerrar la guía de tallas",
5556
5616
  Color: "Color",
5557
5617
  "Color:": "Color:",
5558
- "Complete the look with everyday essentials and finishing details": "Completa tu look con básicos para el día a día y detalles que marcan la diferencia",
5559
5618
  "Continue shopping": "Seguir comprando",
5560
5619
  DAZN: "DAZN",
5561
5620
  "DAZN Shop": "Tienda DAZN",
@@ -5618,7 +5677,6 @@ const ES = {
5618
5677
  "Shipping address": "Dirección de envío",
5619
5678
  "Shipping and returns": "Envíos y devoluciones",
5620
5679
  "Shop menu": "Menú de la tienda",
5621
- "Shop now": "Comprar ahora",
5622
5680
  Size: "Talla",
5623
5681
  "Size guide": "Guía de tallas",
5624
5682
  "Something looks off": "Algo no va bien",
@@ -5626,6 +5684,7 @@ const ES = {
5626
5684
  "Standard or express delivery": "Envío estándar o urgente",
5627
5685
  Subtotal: "Subtotal",
5628
5686
  "Swipe down for more": "Desliza hacia abajo para ver más",
5687
+ "The DAZN Shop collection": "La colección de DAZN Shop",
5629
5688
  "T-Shirts": "Camisetas",
5630
5689
  Tax: "Impuestos",
5631
5690
  "That is not possible right now": "Eso no es posible en este momento",
@@ -6937,15 +6996,18 @@ const RETURN_REASONS = [{
6937
6996
  label: "Changed my mind"
6938
6997
  }];
6939
6998
  const REASON_LABEL = new Map(RETURN_REASONS.map((r) => [r.value, r.label]));
6999
+ function unitsLeft(item2) {
7000
+ return item2.qty - item2.cancelled_qty - item2.refunded_qty - (item2.returned_qty ?? 0);
7001
+ }
6940
7002
  function ReturnItemsView({ order, onSubmit, busy = false }) {
6941
7003
  const { format } = useMoney();
6942
7004
  const [chosen, setChosen] = useState({});
6943
7005
  const [reasonFor, setReasonFor] = useState(null);
6944
- const returnable = useMemo(() => order.items.filter((i) => i.qty - i.cancelled_qty - i.refunded_qty > 0), [order.items]);
7006
+ const returnable = useMemo(() => order.items.filter((i) => unitsLeft(i) > 0), [order.items]);
6945
7007
  const selected2 = Object.entries(chosen).filter(([, reason2]) => reason2 !== void 0);
6946
7008
  const canSubmit = selected2.length > 0;
6947
7009
  function remaining(item2) {
6948
- return item2.qty - item2.cancelled_qty - item2.refunded_qty;
7010
+ return unitsLeft(item2);
6949
7011
  }
6950
7012
  function toggle2(lineRef) {
6951
7013
  if (lineRef in chosen) {
@@ -10601,29 +10663,28 @@ function ProductView({ sku, initialData, showRecommendations = true, onNotFound
10601
10663
  }
10602
10664
  return unavailable;
10603
10665
  }
10604
- const showcase = "_showcase_a0wva_39";
10605
- const panel = "_panel_a0wva_43";
10606
- const image = "_image_a0wva_71";
10607
- const heroImageBox = "_heroImageBox_a0wva_119";
10608
- const hero = "_hero_a0wva_119";
10609
- const heroContent = "_heroContent_a0wva_190";
10610
- const heroText = "_heroText_a0wva_207";
10611
- const logo = "_logo_a0wva_216";
10612
- const heroTitle = "_heroTitle_a0wva_236";
10613
- const heroSub = "_heroSub_a0wva_260";
10614
- const swipe = "_swipe_a0wva_273";
10615
- const swipeLabel = "_swipeLabel_a0wva_281";
10616
- const chevron$1 = "_chevron_a0wva_287";
10617
- const overlay$1 = "_overlay_a0wva_304";
10618
- const copy = "_copy_a0wva_315";
10619
- const title$2 = "_title_a0wva_320";
10620
- const subtitle$1 = "_subtitle_a0wva_327";
10621
- const cta = "_cta_a0wva_333";
10666
+ const showcase = "_showcase_144lm_44";
10667
+ const panel = "_panel_144lm_48";
10668
+ const image = "_image_144lm_76";
10669
+ const hero = "_hero_144lm_116";
10670
+ const heroContent = "_heroContent_144lm_174";
10671
+ const heroText = "_heroText_144lm_197";
10672
+ const logo = "_logo_144lm_206";
10673
+ const heroTitle = "_heroTitle_144lm_226";
10674
+ const heroSub = "_heroSub_144lm_250";
10675
+ const swipe = "_swipe_144lm_269";
10676
+ const swipeLabel = "_swipeLabel_144lm_276";
10677
+ const chevron$1 = "_chevron_144lm_282";
10678
+ const overlay$1 = "_overlay_144lm_11";
10679
+ const copy = "_copy_144lm_315";
10680
+ const title$2 = "_title_144lm_320";
10681
+ const subtitle$1 = "_subtitle_144lm_327";
10682
+ const cta = "_cta_144lm_333";
10683
+ const mosaic = "_mosaic_144lm_377";
10622
10684
  const styles$2 = {
10623
10685
  showcase,
10624
10686
  panel,
10625
10687
  image,
10626
- heroImageBox,
10627
10688
  hero,
10628
10689
  heroContent,
10629
10690
  heroText,
@@ -10637,7 +10698,8 @@ const styles$2 = {
10637
10698
  copy,
10638
10699
  title: title$2,
10639
10700
  subtitle: subtitle$1,
10640
- cta
10701
+ cta,
10702
+ mosaic
10641
10703
  };
10642
10704
  const SETTLE_MS = 150;
10643
10705
  function useDocumentSnap(ref, enabled = true) {
@@ -10670,40 +10732,29 @@ function useDocumentSnap(ref, enabled = true) {
10670
10732
  }, [ref, enabled]);
10671
10733
  }
10672
10734
  const FALLBACK_PANELS = [{
10673
- key: "all-items",
10674
- title: "All items",
10675
- subtitle: "Heavyweight comfort built for training days and off-duty moments",
10676
- cta: "See more",
10677
- to: "/category/t-shirts",
10678
- image: "/figma/home/new.jpg"
10679
- }, {
10680
10735
  key: "hoodies",
10681
10736
  title: "Hoodies",
10682
10737
  subtitle: "Heavyweight comfort built for training days and off-duty moments",
10683
10738
  cta: "See more",
10684
10739
  to: "/category/hoodies",
10685
- image: "/figma/home/hoodies.jpg"
10740
+ video: "/figma/home/hoodies.mp4",
10741
+ image: "/figma/home/hoodies-poster.jpg"
10742
+ }, {
10743
+ key: "zip-ups",
10744
+ title: "Zip Ups",
10745
+ subtitle: "Everyday essentials with sport-inspired fits and minimal branding",
10746
+ cta: "See more",
10747
+ to: "/category/zip-ups",
10748
+ video: "/figma/home/zip-ups.mp4",
10749
+ image: "/figma/home/zip-ups-poster.jpg"
10686
10750
  }, {
10687
10751
  key: "t-shirts",
10688
10752
  title: "T-Shirts",
10689
10753
  subtitle: "Everyday essentials with sport-inspired fits and minimal branding",
10690
- cta: "Explore",
10691
- to: "/category/t-shirts",
10692
- image: "/figma/home/tshirts.jpg"
10693
- }, {
10694
- key: "jackets",
10695
- title: "Jackets",
10696
- subtitle: "Heavyweight comfort built for training days and off-duty moments",
10697
10754
  cta: "See more",
10698
- to: "/category/jackets",
10699
- image: "/figma/home/jackets.jpg"
10700
- }, {
10701
- key: "seasonal",
10702
- title: "Seasonal",
10703
- subtitle: "Complete the look with everyday essentials and finishing details",
10704
- cta: "Shop now",
10705
- to: "/category/summer",
10706
- image: "/figma/home/accessories.jpg"
10755
+ to: "/category/t-shirts",
10756
+ video: "/figma/home/tshirts.mp4",
10757
+ image: "/figma/home/tshirts-poster.jpg"
10707
10758
  }];
10708
10759
  function CategoryPanel({ panel: panel2 }) {
10709
10760
  return jsxs("section", {
@@ -10714,7 +10765,12 @@ function CategoryPanel({ panel: panel2 }) {
10714
10765
  "--slide-focal-y": `${panel2.focalY}%`
10715
10766
  }
10716
10767
  },
10717
- children: [jsx(ShopImage, {
10768
+ children: [panel2.video ? jsx(ShopVideo, {
10769
+ src: panel2.video,
10770
+ poster: panel2.image,
10771
+ fill: true,
10772
+ className: styles$2.image
10773
+ }) : jsx(ShopImage, {
10718
10774
  src: panel2.image,
10719
10775
  alt: "",
10720
10776
  fill: true,
@@ -10740,6 +10796,19 @@ function CategoryPanel({ panel: panel2 }) {
10740
10796
  })]
10741
10797
  });
10742
10798
  }
10799
+ function MosaicPanel() {
10800
+ const t = useT();
10801
+ return jsx("section", {
10802
+ className: `${styles$2.panel} ${styles$2.mosaic}`,
10803
+ "aria-label": t("The DAZN Shop collection"),
10804
+ children: jsx(ShopVideo, {
10805
+ src: "/figma/home/mosaic.mp4",
10806
+ poster: "/figma/home/mosaic-poster.jpg",
10807
+ fill: true,
10808
+ className: styles$2.image
10809
+ })
10810
+ });
10811
+ }
10743
10812
  function useSlides() {
10744
10813
  const t = useT();
10745
10814
  const shop = useShopOptional();
@@ -10763,6 +10832,9 @@ function useSlides() {
10763
10832
  cta: s.cta,
10764
10833
  to: s.target ? `/category/${s.target}` : "/",
10765
10834
  image: s.image ?? "",
10835
+ ...s.video === void 0 ? {} : {
10836
+ video: s.video
10837
+ },
10766
10838
  ...s.focal_y === void 0 ? {} : {
10767
10839
  focalY: s.focal_y
10768
10840
  }
@@ -10790,16 +10862,12 @@ function HomeShowcase() {
10790
10862
  children: [jsxs("section", {
10791
10863
  className: `${styles$2.panel} ${styles$2.hero}`,
10792
10864
  "aria-label": t("DAZN Shop"),
10793
- children: [jsx("div", {
10794
- className: styles$2.heroImageBox,
10795
- children: jsx(ShopImage, {
10796
- src: "/figma/home/hero.jpg",
10797
- alt: "",
10798
- fill: true,
10799
- priority: true,
10800
- sizes: "(max-width: 480px) 100vw, 480px",
10801
- className: styles$2.image
10802
- })
10865
+ children: [jsx(ShopVideo, {
10866
+ src: "/figma/home/hero.mp4",
10867
+ poster: "/figma/home/hero-poster.jpg",
10868
+ fill: true,
10869
+ priority: true,
10870
+ className: styles$2.image
10803
10871
  }), jsxs("div", {
10804
10872
  className: styles$2.heroContent,
10805
10873
  children: [jsxs("div", {
@@ -10835,9 +10903,11 @@ function HomeShowcase() {
10835
10903
  })]
10836
10904
  })]
10837
10905
  })]
10838
- }), panels.map((p) => jsx(CategoryPanel, {
10839
- panel: p
10840
- }, p.key))]
10906
+ }), panels.map((p, i) => jsxs(Fragment$1, {
10907
+ children: [jsx(CategoryPanel, {
10908
+ panel: p
10909
+ }), i === 0 && jsx(MosaicPanel, {})]
10910
+ }, p.key)), panels.length === 0 && jsx(MosaicPanel, {})]
10841
10911
  })
10842
10912
  });
10843
10913
  }
@@ -11353,6 +11423,7 @@ export {
11353
11423
  ShopLink,
11354
11424
  ShopMenuSheet,
11355
11425
  ShopSurface,
11426
+ ShopVideo,
11356
11427
  SizeGuideSheet,
11357
11428
  SizeSelector,
11358
11429
  Skeleton,
@@ -3423,10 +3423,10 @@
3423
3423
  column-gap: var(--space-12);
3424
3424
  row-gap: var(--space-24);
3425
3425
  }
3426
- ._showcase_a0wva_39 {
3426
+ ._showcase_144lm_44 {
3427
3427
  background: #080e12;
3428
3428
  }
3429
- ._panel_a0wva_43 {
3429
+ ._panel_144lm_48 {
3430
3430
  position: relative;
3431
3431
  height: calc(100lvh - var(--showcase-top, 0px));
3432
3432
  scroll-snap-align: start;
@@ -3434,39 +3434,28 @@
3434
3434
  overflow: hidden;
3435
3435
  background: #080e12;
3436
3436
  }
3437
- ._image_a0wva_71 {
3437
+ ._image_144lm_76 {
3438
3438
  object-fit: cover;
3439
3439
  object-position: 50% var(--slide-focal-y, 50%);
3440
3440
  }
3441
- ._heroImageBox_a0wva_119 {
3442
- position: absolute;
3443
- top: 31px;
3444
- left: 0;
3445
- right: 0;
3446
- aspect-ratio: 750 / 1348;
3447
- overflow: hidden;
3448
- }
3449
- ._hero_a0wva_119::after {
3441
+ ._hero_144lm_116::after {
3450
3442
  content: "";
3451
3443
  position: absolute;
3452
3444
  inset: 0;
3453
3445
  background:
3454
3446
  linear-gradient(
3455
3447
  to bottom,
3456
- rgba(8, 14, 18, 1) 39px,
3457
- rgba(8, 14, 18, 0) 119px),
3448
+ rgba(8, 14, 18, 0.45) 118px,
3449
+ rgba(8, 14, 18, 0) 180px),
3458
3450
  linear-gradient(
3459
- to bottom,
3460
- rgba(8, 14, 18, 0) 18%,
3461
- rgba(8, 14, 18, 1) 90%);
3451
+ to top,
3452
+ rgba(8, 14, 18, 0.6) 330px,
3453
+ rgba(8, 14, 18, 0) 520px);
3462
3454
  pointer-events: none;
3463
3455
  }
3464
- ._hero_a0wva_119 ._image_a0wva_71 {
3465
- object-position: top;
3466
- }
3467
- ._hero_a0wva_119 ._heroContent_a0wva_190 {
3456
+ ._hero_144lm_116 ._heroContent_144lm_174 {
3468
3457
  position: absolute;
3469
- bottom: 0;
3458
+ bottom: 32px;
3470
3459
  left: 0;
3471
3460
  right: 0;
3472
3461
  z-index: 1;
@@ -3475,7 +3464,7 @@
3475
3464
  gap: 24px;
3476
3465
  align-items: stretch;
3477
3466
  }
3478
- ._heroText_a0wva_207 {
3467
+ ._heroText_144lm_197 {
3479
3468
  display: flex;
3480
3469
  flex-direction: column;
3481
3470
  gap: 8px;
@@ -3483,11 +3472,11 @@
3483
3472
  padding: 0 24px;
3484
3473
  text-align: center;
3485
3474
  }
3486
- ._heroText_a0wva_207 ._logo_a0wva_216 {
3475
+ ._heroText_144lm_197 ._logo_144lm_206 {
3487
3476
  width: 48px;
3488
3477
  height: 48px;
3489
3478
  }
3490
- ._heroTitle_a0wva_236 {
3479
+ ._heroTitle_144lm_226 {
3491
3480
  width: 100%;
3492
3481
  margin: 0;
3493
3482
  font-family:
@@ -3502,34 +3491,33 @@
3502
3491
  letter-spacing: -1.12px;
3503
3492
  color: #f9fafa;
3504
3493
  }
3505
- ._heroSub_a0wva_260 {
3494
+ ._heroSub_144lm_250 {
3506
3495
  margin: 0;
3507
3496
  font-size: 16px;
3508
3497
  line-height: 1.55;
3509
3498
  color: #f9fafa;
3510
3499
  max-width: 327px;
3511
3500
  }
3512
- ._swipe_a0wva_273 {
3501
+ ._swipe_144lm_269 {
3513
3502
  display: flex;
3514
3503
  flex-direction: column;
3515
3504
  align-items: center;
3516
3505
  gap: 6px;
3517
3506
  padding: 8px 0;
3518
- background: #080e12;
3519
3507
  }
3520
- ._swipeLabel_a0wva_281 {
3508
+ ._swipeLabel_144lm_276 {
3521
3509
  margin: 0;
3522
3510
  font-size: 14px;
3523
3511
  line-height: 1;
3524
3512
  color: rgba(255, 255, 255, 0.54);
3525
3513
  }
3526
- ._chevron_a0wva_287 {
3514
+ ._chevron_144lm_282 {
3527
3515
  width: 24px;
3528
3516
  height: 24px;
3529
3517
  color: rgba(255, 255, 255, 0.54);
3530
- animation: _bob_a0wva_1 1.8s ease-in-out infinite;
3518
+ animation: _bob_144lm_1 1.8s ease-in-out infinite;
3531
3519
  }
3532
- @keyframes _bob_a0wva_1 {
3520
+ @keyframes _bob_144lm_1 {
3533
3521
  0%, 100% {
3534
3522
  transform: translateY(0);
3535
3523
  }
@@ -3537,10 +3525,15 @@
3537
3525
  transform: translateY(4px);
3538
3526
  }
3539
3527
  }
3540
- ._overlay_a0wva_304 {
3528
+ ._overlay_144lm_11 {
3541
3529
  position: absolute;
3542
3530
  inset: 0;
3543
3531
  z-index: 1;
3532
+ background:
3533
+ linear-gradient(
3534
+ to top,
3535
+ rgba(8, 14, 18, 0.6) 260px,
3536
+ rgba(8, 14, 18, 0) 460px);
3544
3537
  display: flex;
3545
3538
  flex-direction: column;
3546
3539
  justify-content: flex-end;
@@ -3548,25 +3541,25 @@
3548
3541
  align-items: flex-start;
3549
3542
  padding: 0 24px 24px;
3550
3543
  }
3551
- ._copy_a0wva_315 {
3544
+ ._copy_144lm_315 {
3552
3545
  display: flex;
3553
3546
  flex-direction: column;
3554
3547
  gap: 8px;
3555
3548
  }
3556
- ._title_a0wva_320 {
3549
+ ._title_144lm_320 {
3557
3550
  margin: 0;
3558
3551
  font-size: 32px;
3559
3552
  line-height: 1.2;
3560
3553
  font-weight: 700;
3561
3554
  color: #f9fafa;
3562
3555
  }
3563
- ._subtitle_a0wva_327 {
3556
+ ._subtitle_144lm_327 {
3564
3557
  margin: 0;
3565
3558
  font-size: 16px;
3566
3559
  line-height: 1.55;
3567
3560
  color: #f9fafa;
3568
3561
  }
3569
- ._cta_a0wva_333 {
3562
+ ._cta_144lm_333 {
3570
3563
  display: inline-flex;
3571
3564
  align-items: center;
3572
3565
  justify-content: center;
@@ -3580,18 +3573,21 @@
3580
3573
  font-weight: 700;
3581
3574
  text-decoration: none;
3582
3575
  }
3583
- ._cta_a0wva_333::after {
3576
+ ._cta_144lm_333::after {
3584
3577
  content: "";
3585
3578
  position: absolute;
3586
3579
  inset: 0;
3587
3580
  }
3588
- ._cta_a0wva_333:active {
3581
+ ._cta_144lm_333:active {
3589
3582
  background: rgba(249, 250, 250, 0.12);
3590
3583
  }
3591
- ._cta_a0wva_333:focus-visible {
3584
+ ._cta_144lm_333:focus-visible {
3592
3585
  outline: none;
3593
3586
  box-shadow: var(--focus-ring);
3594
3587
  }
3588
+ ._mosaic_144lm_377 {
3589
+ background: #080e12;
3590
+ }
3595
3591
  ._header_8o3d7_25 {
3596
3592
  position: sticky;
3597
3593
  top: 0;
package/dist/styles.css CHANGED
@@ -3423,10 +3423,10 @@
3423
3423
  column-gap: var(--space-12);
3424
3424
  row-gap: var(--space-24);
3425
3425
  }
3426
- ._showcase_a0wva_39 {
3426
+ ._showcase_144lm_44 {
3427
3427
  background: #080e12;
3428
3428
  }
3429
- ._panel_a0wva_43 {
3429
+ ._panel_144lm_48 {
3430
3430
  position: relative;
3431
3431
  height: calc(100lvh - var(--showcase-top, 0px));
3432
3432
  scroll-snap-align: start;
@@ -3434,39 +3434,28 @@
3434
3434
  overflow: hidden;
3435
3435
  background: #080e12;
3436
3436
  }
3437
- ._image_a0wva_71 {
3437
+ ._image_144lm_76 {
3438
3438
  object-fit: cover;
3439
3439
  object-position: 50% var(--slide-focal-y, 50%);
3440
3440
  }
3441
- ._heroImageBox_a0wva_119 {
3442
- position: absolute;
3443
- top: 31px;
3444
- left: 0;
3445
- right: 0;
3446
- aspect-ratio: 750 / 1348;
3447
- overflow: hidden;
3448
- }
3449
- ._hero_a0wva_119::after {
3441
+ ._hero_144lm_116::after {
3450
3442
  content: "";
3451
3443
  position: absolute;
3452
3444
  inset: 0;
3453
3445
  background:
3454
3446
  linear-gradient(
3455
3447
  to bottom,
3456
- rgba(8, 14, 18, 1) 39px,
3457
- rgba(8, 14, 18, 0) 119px),
3448
+ rgba(8, 14, 18, 0.45) 118px,
3449
+ rgba(8, 14, 18, 0) 180px),
3458
3450
  linear-gradient(
3459
- to bottom,
3460
- rgba(8, 14, 18, 0) 18%,
3461
- rgba(8, 14, 18, 1) 90%);
3451
+ to top,
3452
+ rgba(8, 14, 18, 0.6) 330px,
3453
+ rgba(8, 14, 18, 0) 520px);
3462
3454
  pointer-events: none;
3463
3455
  }
3464
- ._hero_a0wva_119 ._image_a0wva_71 {
3465
- object-position: top;
3466
- }
3467
- ._hero_a0wva_119 ._heroContent_a0wva_190 {
3456
+ ._hero_144lm_116 ._heroContent_144lm_174 {
3468
3457
  position: absolute;
3469
- bottom: 0;
3458
+ bottom: 32px;
3470
3459
  left: 0;
3471
3460
  right: 0;
3472
3461
  z-index: 1;
@@ -3475,7 +3464,7 @@
3475
3464
  gap: 24px;
3476
3465
  align-items: stretch;
3477
3466
  }
3478
- ._heroText_a0wva_207 {
3467
+ ._heroText_144lm_197 {
3479
3468
  display: flex;
3480
3469
  flex-direction: column;
3481
3470
  gap: 8px;
@@ -3483,11 +3472,11 @@
3483
3472
  padding: 0 24px;
3484
3473
  text-align: center;
3485
3474
  }
3486
- ._heroText_a0wva_207 ._logo_a0wva_216 {
3475
+ ._heroText_144lm_197 ._logo_144lm_206 {
3487
3476
  width: 48px;
3488
3477
  height: 48px;
3489
3478
  }
3490
- ._heroTitle_a0wva_236 {
3479
+ ._heroTitle_144lm_226 {
3491
3480
  width: 100%;
3492
3481
  margin: 0;
3493
3482
  font-family:
@@ -3502,34 +3491,33 @@
3502
3491
  letter-spacing: -1.12px;
3503
3492
  color: #f9fafa;
3504
3493
  }
3505
- ._heroSub_a0wva_260 {
3494
+ ._heroSub_144lm_250 {
3506
3495
  margin: 0;
3507
3496
  font-size: 16px;
3508
3497
  line-height: 1.55;
3509
3498
  color: #f9fafa;
3510
3499
  max-width: 327px;
3511
3500
  }
3512
- ._swipe_a0wva_273 {
3501
+ ._swipe_144lm_269 {
3513
3502
  display: flex;
3514
3503
  flex-direction: column;
3515
3504
  align-items: center;
3516
3505
  gap: 6px;
3517
3506
  padding: 8px 0;
3518
- background: #080e12;
3519
3507
  }
3520
- ._swipeLabel_a0wva_281 {
3508
+ ._swipeLabel_144lm_276 {
3521
3509
  margin: 0;
3522
3510
  font-size: 14px;
3523
3511
  line-height: 1;
3524
3512
  color: rgba(255, 255, 255, 0.54);
3525
3513
  }
3526
- ._chevron_a0wva_287 {
3514
+ ._chevron_144lm_282 {
3527
3515
  width: 24px;
3528
3516
  height: 24px;
3529
3517
  color: rgba(255, 255, 255, 0.54);
3530
- animation: _bob_a0wva_1 1.8s ease-in-out infinite;
3518
+ animation: _bob_144lm_1 1.8s ease-in-out infinite;
3531
3519
  }
3532
- @keyframes _bob_a0wva_1 {
3520
+ @keyframes _bob_144lm_1 {
3533
3521
  0%, 100% {
3534
3522
  transform: translateY(0);
3535
3523
  }
@@ -3537,10 +3525,15 @@
3537
3525
  transform: translateY(4px);
3538
3526
  }
3539
3527
  }
3540
- ._overlay_a0wva_304 {
3528
+ ._overlay_144lm_11 {
3541
3529
  position: absolute;
3542
3530
  inset: 0;
3543
3531
  z-index: 1;
3532
+ background:
3533
+ linear-gradient(
3534
+ to top,
3535
+ rgba(8, 14, 18, 0.6) 260px,
3536
+ rgba(8, 14, 18, 0) 460px);
3544
3537
  display: flex;
3545
3538
  flex-direction: column;
3546
3539
  justify-content: flex-end;
@@ -3548,25 +3541,25 @@
3548
3541
  align-items: flex-start;
3549
3542
  padding: 0 24px 24px;
3550
3543
  }
3551
- ._copy_a0wva_315 {
3544
+ ._copy_144lm_315 {
3552
3545
  display: flex;
3553
3546
  flex-direction: column;
3554
3547
  gap: 8px;
3555
3548
  }
3556
- ._title_a0wva_320 {
3549
+ ._title_144lm_320 {
3557
3550
  margin: 0;
3558
3551
  font-size: 32px;
3559
3552
  line-height: 1.2;
3560
3553
  font-weight: 700;
3561
3554
  color: #f9fafa;
3562
3555
  }
3563
- ._subtitle_a0wva_327 {
3556
+ ._subtitle_144lm_327 {
3564
3557
  margin: 0;
3565
3558
  font-size: 16px;
3566
3559
  line-height: 1.55;
3567
3560
  color: #f9fafa;
3568
3561
  }
3569
- ._cta_a0wva_333 {
3562
+ ._cta_144lm_333 {
3570
3563
  display: inline-flex;
3571
3564
  align-items: center;
3572
3565
  justify-content: center;
@@ -3580,18 +3573,21 @@
3580
3573
  font-weight: 700;
3581
3574
  text-decoration: none;
3582
3575
  }
3583
- ._cta_a0wva_333::after {
3576
+ ._cta_144lm_333::after {
3584
3577
  content: "";
3585
3578
  position: absolute;
3586
3579
  inset: 0;
3587
3580
  }
3588
- ._cta_a0wva_333:active {
3581
+ ._cta_144lm_333:active {
3589
3582
  background: rgba(249, 250, 250, 0.12);
3590
3583
  }
3591
- ._cta_a0wva_333:focus-visible {
3584
+ ._cta_144lm_333:focus-visible {
3592
3585
  outline: none;
3593
3586
  box-shadow: var(--focus-ring);
3594
3587
  }
3588
+ ._mosaic_144lm_377 {
3589
+ background: #080e12;
3590
+ }
3595
3591
  ._header_8o3d7_25 {
3596
3592
  position: sticky;
3597
3593
  top: 0;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nok-integration/storefront-react",
3
- "version": "0.19.14",
3
+ "version": "0.19.15",
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",