@nok-integration/storefront-react 0.13.0 → 0.15.0

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
@@ -4465,7 +4465,14 @@ function requireIds() {
4465
4465
  ids.UserId = prefixedId("usr_");
4466
4466
  ids.CartId = prefixedId("cart_");
4467
4467
  ids.CheckoutId = prefixedId("chk_");
4468
- ids.OrderRef = prefixedId("ord_");
4468
+ ids.OrderRef = zod_1.z.string().regex(
4469
+ // Deliberately unbounded in length. DAZN said six digits "for now", and a schema that
4470
+ // pinned six would reject the first order they place after widening the column — a
4471
+ // 400 at intake, which is an order we never receive and never fulfil. The rule we can
4472
+ // hold them to is "digits"; the count is theirs to change.
4473
+ /^(?:ord_[A-Za-z0-9._-]+|\d+)$/,
4474
+ "must be an 'ord_…' identifier or a numeric order reference"
4475
+ ).brand();
4469
4476
  ids.EventId = prefixedId("evt_");
4470
4477
  ids.RequestId = prefixedId("req_");
4471
4478
  return ids;
@@ -4830,7 +4837,18 @@ function requireOrderTracking() {
4830
4837
  total: money_1.Money,
4831
4838
  item_count: zod_1.z.number().int().nonnegative(),
4832
4839
  /** First line's thumbnail, for the list row. Absent = render the placeholder. */
4833
- image: common_1.Url.optional()
4840
+ image: common_1.Url.optional(),
4841
+ /**
4842
+ * Up to three line thumbnails, in line order, for the row's image strip.
4843
+ *
4844
+ * `image` is the first of these and stays for consumers already reading it. Capped at
4845
+ * three because that is what the row draws: an order of twenty lines must not put twenty
4846
+ * URLs on a list response, and the count the fan needs is already in `item_count`.
4847
+ *
4848
+ * Fewer than three entries is normal — an order can have one line, and a de-listed SKU
4849
+ * resolves to no image at all. A consumer renders what it is given and never pads.
4850
+ */
4851
+ images: zod_1.z.array(common_1.Url).max(3).optional()
4834
4852
  });
4835
4853
  exports.OrderList = zod_1.z.object({
4836
4854
  orders: zod_1.z.array(exports.OrderSummaryItem)
@@ -5355,20 +5373,20 @@ function ShopImage({
5355
5373
  }
5356
5374
  );
5357
5375
  }
5358
- const badge$3 = "_badge_1bagf_1";
5376
+ const badge$4 = "_badge_1bagf_1";
5359
5377
  const neutral$1 = "_neutral_1bagf_12";
5360
5378
  const success$1 = "_success_1bagf_17";
5361
5379
  const critical$1 = "_critical_1bagf_22";
5362
5380
  const promo = "_promo_1bagf_27";
5363
- const styles$E = {
5364
- badge: badge$3,
5381
+ const styles$H = {
5382
+ badge: badge$4,
5365
5383
  neutral: neutral$1,
5366
5384
  success: success$1,
5367
5385
  critical: critical$1,
5368
5386
  promo
5369
5387
  };
5370
5388
  function Badge({ tone = "neutral", children }) {
5371
- return /* @__PURE__ */ jsx("span", { className: [styles$E.badge, styles$E[tone]].join(" "), children });
5389
+ return /* @__PURE__ */ jsx("span", { className: [styles$H.badge, styles$H[tone]].join(" "), children });
5372
5390
  }
5373
5391
  const button$1 = "_button_vvcmd_1";
5374
5392
  const fullWidth = "_fullWidth_vvcmd_23";
@@ -5378,7 +5396,7 @@ const ghost = "_ghost_vvcmd_38";
5378
5396
  const spinner = "_spinner_vvcmd_54";
5379
5397
  const spin = "_spin_vvcmd_54";
5380
5398
  const labelLoading = "_labelLoading_vvcmd_63";
5381
- const styles$D = {
5399
+ const styles$G = {
5382
5400
  button: button$1,
5383
5401
  fullWidth,
5384
5402
  primary,
@@ -5405,23 +5423,23 @@ const Button = forwardRef(function Button2({
5405
5423
  ref,
5406
5424
  type,
5407
5425
  className: [
5408
- styles$D.button,
5409
- styles$D[variant],
5410
- fullWidth2 ? styles$D.fullWidth : "",
5426
+ styles$G.button,
5427
+ styles$G[variant],
5428
+ fullWidth2 ? styles$G.fullWidth : "",
5411
5429
  className ?? ""
5412
5430
  ].filter(Boolean).join(" "),
5413
5431
  disabled: isDisabled,
5414
5432
  "aria-busy": loading || void 0,
5415
5433
  ...rest,
5416
5434
  children: [
5417
- loading && /* @__PURE__ */ jsx("span", { className: styles$D.spinner, "aria-hidden": "true" }),
5418
- /* @__PURE__ */ jsx("span", { className: loading ? styles$D.labelLoading : void 0, children })
5435
+ loading && /* @__PURE__ */ jsx("span", { className: styles$G.spinner, "aria-hidden": "true" }),
5436
+ /* @__PURE__ */ jsx("span", { className: loading ? styles$G.labelLoading : void 0, children })
5419
5437
  ]
5420
5438
  }
5421
5439
  );
5422
5440
  });
5423
5441
  const skeleton = "_skeleton_1nxz7_1";
5424
- const styles$C = {
5442
+ const styles$F = {
5425
5443
  skeleton
5426
5444
  };
5427
5445
  function Skeleton({ width, height, radius, className, circle }) {
@@ -5434,14 +5452,14 @@ function Skeleton({ width, height, radius, className, circle }) {
5434
5452
  "span",
5435
5453
  {
5436
5454
  "aria-hidden": "true",
5437
- className: [styles$C.skeleton, className ?? ""].filter(Boolean).join(" "),
5455
+ className: [styles$F.skeleton, className ?? ""].filter(Boolean).join(" "),
5438
5456
  style
5439
5457
  }
5440
5458
  );
5441
5459
  }
5442
5460
  const surface$1 = "_surface_nj74o_10";
5443
5461
  const fill = "_fill_nj74o_35";
5444
- const styles$B = {
5462
+ const styles$E = {
5445
5463
  surface: surface$1,
5446
5464
  fill
5447
5465
  };
@@ -5482,7 +5500,7 @@ const ShopSurface = forwardRef(function ShopSurface2({ tone, fill: fill2 = false
5482
5500
  ...rest,
5483
5501
  ref: attach,
5484
5502
  "data-shop-theme": tone,
5485
- className: [styles$B.surface, fill2 ? styles$B.fill : "", className ?? ""].filter(Boolean).join(" "),
5503
+ className: [styles$E.surface, fill2 ? styles$E.fill : "", className ?? ""].filter(Boolean).join(" "),
5486
5504
  children
5487
5505
  }
5488
5506
  );
@@ -5494,9 +5512,9 @@ const lines$2 = "_lines_ney0g_32";
5494
5512
  const lineWide = "_lineWide_ney0g_41";
5495
5513
  const lineMid = "_lineMid_ney0g_45";
5496
5514
  const lineNarrow = "_lineNarrow_ney0g_49";
5497
- const row$7 = "_row_ney0g_53";
5515
+ const row$8 = "_row_ney0g_53";
5498
5516
  const action$2 = "_action_ney0g_57";
5499
- const styles$A = {
5517
+ const styles$D = {
5500
5518
  root: root$6,
5501
5519
  inner,
5502
5520
  media: media$3,
@@ -5504,38 +5522,38 @@ const styles$A = {
5504
5522
  lineWide,
5505
5523
  lineMid,
5506
5524
  lineNarrow,
5507
- row: row$7,
5525
+ row: row$8,
5508
5526
  action: action$2
5509
5527
  };
5510
5528
  function ScreenSkeleton({ tone, shape = "media" }) {
5511
- return /* @__PURE__ */ jsx(ShopSurface, { tone, fill: true, className: styles$A.root, children: /* @__PURE__ */ jsx("div", { className: styles$A.inner, role: "status", "aria-label": "Loading", children: shape === "media" ? /* @__PURE__ */ jsxs(Fragment, { children: [
5512
- /* @__PURE__ */ jsx(Skeleton, { className: styles$A.media }),
5513
- /* @__PURE__ */ jsxs("div", { className: styles$A.lines, children: [
5514
- /* @__PURE__ */ jsx(Skeleton, { height: 22, className: styles$A.lineWide }),
5515
- /* @__PURE__ */ jsx(Skeleton, { height: 16, className: styles$A.lineMid }),
5516
- /* @__PURE__ */ jsx(Skeleton, { height: 16, className: styles$A.lineNarrow })
5529
+ return /* @__PURE__ */ jsx(ShopSurface, { tone, fill: true, className: styles$D.root, children: /* @__PURE__ */ jsx("div", { className: styles$D.inner, role: "status", "aria-label": "Loading", children: shape === "media" ? /* @__PURE__ */ jsxs(Fragment, { children: [
5530
+ /* @__PURE__ */ jsx(Skeleton, { className: styles$D.media }),
5531
+ /* @__PURE__ */ jsxs("div", { className: styles$D.lines, children: [
5532
+ /* @__PURE__ */ jsx(Skeleton, { height: 22, className: styles$D.lineWide }),
5533
+ /* @__PURE__ */ jsx(Skeleton, { height: 16, className: styles$D.lineMid }),
5534
+ /* @__PURE__ */ jsx(Skeleton, { height: 16, className: styles$D.lineNarrow })
5517
5535
  ] }),
5518
- /* @__PURE__ */ jsx(Skeleton, { height: 48, radius: 8, className: styles$A.action })
5519
- ] }) : /* @__PURE__ */ jsx("div", { className: styles$A.lines, children: [0, 1, 2, 3].map((i) => /* @__PURE__ */ jsx(Skeleton, { height: 72, className: styles$A.row }, i)) }) }) });
5536
+ /* @__PURE__ */ jsx(Skeleton, { height: 48, radius: 8, className: styles$D.action })
5537
+ ] }) : /* @__PURE__ */ jsx("div", { className: styles$D.lines, children: [0, 1, 2, 3].map((i) => /* @__PURE__ */ jsx(Skeleton, { height: 72, className: styles$D.row }, i)) }) }) });
5520
5538
  }
5521
5539
  const root$5 = "_root_1u83t_1";
5522
- const icon$3 = "_icon_1u83t_10";
5523
- const title$f = "_title_1u83t_15";
5540
+ const icon$4 = "_icon_1u83t_10";
5541
+ const title$h = "_title_1u83t_15";
5524
5542
  const body$5 = "_body_1u83t_20";
5525
5543
  const action$1 = "_action_1u83t_33";
5526
- const styles$z = {
5544
+ const styles$C = {
5527
5545
  root: root$5,
5528
- icon: icon$3,
5529
- title: title$f,
5546
+ icon: icon$4,
5547
+ title: title$h,
5530
5548
  body: body$5,
5531
5549
  action: action$1
5532
5550
  };
5533
5551
  function EmptyState({ title: title2, body: body2, action: action2, icon: icon2 }) {
5534
- return /* @__PURE__ */ jsxs("div", { className: styles$z.root, role: "status", children: [
5535
- icon2 && /* @__PURE__ */ jsx("div", { className: styles$z.icon, children: icon2 }),
5536
- /* @__PURE__ */ jsx("h2", { className: styles$z.title, children: title2 }),
5537
- body2 && /* @__PURE__ */ jsx("p", { className: styles$z.body, children: body2 }),
5538
- action2 && /* @__PURE__ */ jsx("div", { className: styles$z.action, children: action2 })
5552
+ return /* @__PURE__ */ jsxs("div", { className: styles$C.root, role: "status", children: [
5553
+ icon2 && /* @__PURE__ */ jsx("div", { className: styles$C.icon, children: icon2 }),
5554
+ /* @__PURE__ */ jsx("h2", { className: styles$C.title, children: title2 }),
5555
+ body2 && /* @__PURE__ */ jsx("p", { className: styles$C.body, children: body2 }),
5556
+ action2 && /* @__PURE__ */ jsx("div", { className: styles$C.action, children: action2 })
5539
5557
  ] });
5540
5558
  }
5541
5559
  const TREATMENTS = {
@@ -5664,19 +5682,19 @@ function isDuplicateOrder(err) {
5664
5682
  return codeOf(err) === "duplicate_order";
5665
5683
  }
5666
5684
  const root$4 = "_root_1lbpx_1";
5667
- const title$e = "_title_1lbpx_10";
5685
+ const title$g = "_title_1lbpx_10";
5668
5686
  const body$4 = "_body_1lbpx_15";
5669
- const styles$y = {
5687
+ const styles$B = {
5670
5688
  root: root$4,
5671
- title: title$e,
5689
+ title: title$g,
5672
5690
  body: body$4
5673
5691
  };
5674
5692
  function ErrorState({ code, title: title2, body: body2, onRetry, retryLabel }) {
5675
5693
  const treatment = treatmentFor(code);
5676
5694
  const showRetry = Boolean(onRetry) && treatment.retriable;
5677
- return /* @__PURE__ */ jsxs("div", { className: styles$y.root, role: "alert", children: [
5678
- /* @__PURE__ */ jsx("h2", { className: styles$y.title, children: title2 ?? treatment.title }),
5679
- /* @__PURE__ */ jsx("p", { className: styles$y.body, children: body2 ?? treatment.body }),
5695
+ return /* @__PURE__ */ jsxs("div", { className: styles$B.root, role: "alert", children: [
5696
+ /* @__PURE__ */ jsx("h2", { className: styles$B.title, children: title2 ?? treatment.title }),
5697
+ /* @__PURE__ */ jsx("p", { className: styles$B.body, children: body2 ?? treatment.body }),
5680
5698
  showRetry && /* @__PURE__ */ jsx(Button, { variant: "secondary", onClick: onRetry, children: retryLabel ?? "Try again" })
5681
5699
  ] });
5682
5700
  }
@@ -5703,7 +5721,7 @@ function StatusBadge({ status: status2 }) {
5703
5721
  }
5704
5722
  const viewport = "_viewport_1lt9i_1";
5705
5723
  const toast = "_toast_1lt9i_15";
5706
- const text$3 = "_text_1lt9i_32";
5724
+ const text$4 = "_text_1lt9i_32";
5707
5725
  const message$1 = "_message_1lt9i_39";
5708
5726
  const action = "_action_1lt9i_44";
5709
5727
  const neutral = "_neutral_1lt9i_63";
@@ -5713,10 +5731,10 @@ const rich = "_rich_1lt9i_81";
5713
5731
  const description = "_description_1lt9i_96";
5714
5732
  const thumb$1 = "_thumb_1lt9i_113";
5715
5733
  const thumbImage = "_thumbImage_1lt9i_124";
5716
- const styles$x = {
5734
+ const styles$A = {
5717
5735
  viewport,
5718
5736
  toast,
5719
- text: text$3,
5737
+ text: text$4,
5720
5738
  message: message$1,
5721
5739
  action,
5722
5740
  neutral,
@@ -5777,24 +5795,24 @@ function ToastProvider({ children }) {
5777
5795
  const api = useMemo(() => ({ show }), [show]);
5778
5796
  return /* @__PURE__ */ jsxs(ToastContext.Provider, { value: api, children: [
5779
5797
  children,
5780
- /* @__PURE__ */ jsx("div", { className: styles$x.viewport, "aria-live": "polite", "aria-atomic": "false", children: toasts.map((t) => {
5798
+ /* @__PURE__ */ jsx("div", { className: styles$A.viewport, "aria-live": "polite", "aria-atomic": "false", children: toasts.map((t) => {
5781
5799
  const rich2 = Boolean(t.description || t.image);
5782
5800
  return /* @__PURE__ */ jsxs(
5783
5801
  "div",
5784
5802
  {
5785
- className: [styles$x.toast, rich2 ? styles$x.rich : styles$x[t.tone]].join(" "),
5803
+ className: [styles$A.toast, rich2 ? styles$A.rich : styles$A[t.tone]].join(" "),
5786
5804
  role: "status",
5787
5805
  children: [
5788
- t.image && /* @__PURE__ */ jsx("span", { className: styles$x.thumb, children: /* @__PURE__ */ jsx(ShopImage, { src: t.image, alt: "", fill: true, sizes: "40px", className: styles$x.thumbImage }) }),
5789
- /* @__PURE__ */ jsxs("span", { className: styles$x.text, children: [
5790
- /* @__PURE__ */ jsx("span", { className: styles$x.message, children: t.message }),
5791
- t.description && /* @__PURE__ */ jsx("span", { className: styles$x.description, children: t.description })
5806
+ t.image && /* @__PURE__ */ jsx("span", { className: styles$A.thumb, children: /* @__PURE__ */ jsx(ShopImage, { src: t.image, alt: "", fill: true, sizes: "40px", className: styles$A.thumbImage }) }),
5807
+ /* @__PURE__ */ jsxs("span", { className: styles$A.text, children: [
5808
+ /* @__PURE__ */ jsx("span", { className: styles$A.message, children: t.message }),
5809
+ t.description && /* @__PURE__ */ jsx("span", { className: styles$A.description, children: t.description })
5792
5810
  ] }),
5793
5811
  t.action && /* @__PURE__ */ jsx(
5794
5812
  "button",
5795
5813
  {
5796
5814
  type: "button",
5797
- className: styles$x.action,
5815
+ className: styles$A.action,
5798
5816
  onClick: () => {
5799
5817
  t.action?.onAction();
5800
5818
  dismiss(t.id);
@@ -5855,15 +5873,15 @@ function useLocale(override) {
5855
5873
  const shop = useShopOptional();
5856
5874
  return override ?? shop?.locale ?? shop?.market?.lang ?? (typeof navigator !== "undefined" ? navigator.language : void 0);
5857
5875
  }
5858
- const badge$2 = "_badge_156ya_2";
5859
- const icon$2 = "_icon_156ya_18";
5860
- const styles$w = {
5861
- badge: badge$2,
5862
- icon: icon$2
5876
+ const badge$3 = "_badge_156ya_2";
5877
+ const icon$3 = "_icon_156ya_18";
5878
+ const styles$z = {
5879
+ badge: badge$3,
5880
+ icon: icon$3
5863
5881
  };
5864
5882
  function SaleBadge({ pct }) {
5865
- return /* @__PURE__ */ jsxs("span", { className: styles$w.badge, children: [
5866
- /* @__PURE__ */ jsxs("svg", { className: styles$w.icon, width: "12", height: "12", viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true", children: [
5883
+ return /* @__PURE__ */ jsxs("span", { className: styles$z.badge, children: [
5884
+ /* @__PURE__ */ jsxs("svg", { className: styles$z.icon, width: "12", height: "12", viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true", children: [
5867
5885
  /* @__PURE__ */ jsx(
5868
5886
  "path",
5869
5887
  {
@@ -5889,7 +5907,7 @@ const lg = "_lg_n3nm5_27";
5889
5907
  const price$1 = "_price_n3nm5_31";
5890
5908
  const compareAt = "_compareAt_n3nm5_36";
5891
5909
  const strikethrough = "_strikethrough_n3nm5_44";
5892
- const styles$v = {
5910
+ const styles$y = {
5893
5911
  root: root$3,
5894
5912
  center: center$1,
5895
5913
  end,
@@ -5911,9 +5929,9 @@ function PriceBlock({
5911
5929
  const { format } = useMoney();
5912
5930
  const pct = discountPct$1 ?? discountPct(price2, compareAt2);
5913
5931
  const hasCompare = compareAt2 && compareAt2.amount > price2.amount;
5914
- return /* @__PURE__ */ jsxs("div", { className: [styles$v.root, styles$v[size], styles$v[align], styles$v[variant]].join(" "), children: [
5915
- /* @__PURE__ */ jsx("span", { className: styles$v.price, children: format(price2) }),
5916
- hasCompare && /* @__PURE__ */ jsxs("span", { className: styles$v.compareAt, children: [
5932
+ return /* @__PURE__ */ jsxs("div", { className: [styles$y.root, styles$y[size], styles$y[align], styles$y[variant]].join(" "), children: [
5933
+ /* @__PURE__ */ jsx("span", { className: styles$y.price, children: format(price2) }),
5934
+ hasCompare && /* @__PURE__ */ jsxs("span", { className: styles$y.compareAt, children: [
5917
5935
  /* @__PURE__ */ jsx("span", { className: "visually-hidden", children: "Was " }),
5918
5936
  format(compareAt2)
5919
5937
  ] }),
@@ -6009,52 +6027,52 @@ function swatchColour(name) {
6009
6027
  return SWATCH_HEX[name.toLowerCase().trim()] ?? "#c9cdd0";
6010
6028
  }
6011
6029
  const timeline = "_timeline_1j37h_7";
6012
- const row$6 = "_row_1j37h_15";
6030
+ const row$7 = "_row_1j37h_15";
6013
6031
  const line$1 = "_line_1j37h_20";
6014
6032
  const marker = "_marker_1j37h_27";
6015
6033
  const tick = "_tick_1j37h_35";
6016
6034
  const pending$2 = "_pending_1j37h_44";
6017
6035
  const connector = "_connector_1j37h_68";
6018
- const text$2 = "_text_1j37h_84";
6036
+ const text$3 = "_text_1j37h_84";
6019
6037
  const label$1 = "_label_1j37h_101";
6020
6038
  const past = "_past_1j37h_113";
6021
6039
  const current = "_current_1j37h_118";
6022
6040
  const future = "_future_1j37h_123";
6023
- const date = "_date_1j37h_128";
6024
- const styles$u = {
6041
+ const date$1 = "_date_1j37h_128";
6042
+ const styles$x = {
6025
6043
  timeline,
6026
- row: row$6,
6044
+ row: row$7,
6027
6045
  line: line$1,
6028
6046
  marker,
6029
6047
  tick,
6030
6048
  pending: pending$2,
6031
6049
  connector,
6032
- text: text$2,
6050
+ text: text$3,
6033
6051
  label: label$1,
6034
6052
  past,
6035
6053
  current,
6036
6054
  future,
6037
- date
6055
+ date: date$1
6038
6056
  };
6039
- function OrderTimeline({ progress, locale: localeProp }) {
6057
+ function OrderTimeline({ progress: progress2, locale: localeProp }) {
6040
6058
  const locale = useLocale(localeProp);
6041
- const currentIndex = progress.findIndex((e) => e.current);
6042
- return /* @__PURE__ */ jsx("ol", { className: styles$u.timeline, children: progress.map((entry, i) => {
6059
+ const currentIndex = progress2.findIndex((e) => e.current);
6060
+ return /* @__PURE__ */ jsx("ol", { className: styles$x.timeline, children: progress2.map((entry, i) => {
6043
6061
  const state = stateOf(entry, i, currentIndex);
6044
6062
  return /* @__PURE__ */ jsxs(
6045
6063
  "li",
6046
6064
  {
6047
- className: styles$u.row,
6065
+ className: styles$x.row,
6048
6066
  "aria-current": entry.current ? "step" : void 0,
6049
6067
  children: [
6050
- /* @__PURE__ */ jsxs("div", { className: styles$u.line, children: [
6051
- /* @__PURE__ */ jsx("span", { className: styles$u.marker, children: state === "future" ? /* @__PURE__ */ jsx("span", { className: styles$u.pending, "aria-hidden": "true" }) : /* @__PURE__ */ jsx(StepTick, { tone: state }) }),
6052
- /* @__PURE__ */ jsxs("span", { className: styles$u.text, children: [
6053
- /* @__PURE__ */ jsx("span", { className: [styles$u.label, styles$u[state]].join(" "), children: entry.label }),
6054
- entry.at && /* @__PURE__ */ jsx("time", { className: styles$u.date, dateTime: entry.at, children: formatStepDate(entry.at, locale) })
6068
+ /* @__PURE__ */ jsxs("div", { className: styles$x.line, children: [
6069
+ /* @__PURE__ */ jsx("span", { className: styles$x.marker, children: state === "future" ? /* @__PURE__ */ jsx("span", { className: styles$x.pending, "aria-hidden": "true" }) : /* @__PURE__ */ jsx(StepTick, { tone: state }) }),
6070
+ /* @__PURE__ */ jsxs("span", { className: styles$x.text, children: [
6071
+ /* @__PURE__ */ jsx("span", { className: [styles$x.label, styles$x[state]].join(" "), children: entry.label }),
6072
+ entry.at && /* @__PURE__ */ jsx("time", { className: styles$x.date, dateTime: entry.at, children: formatStepDate(entry.at, locale) })
6055
6073
  ] })
6056
6074
  ] }),
6057
- i < progress.length - 1 && /* @__PURE__ */ jsx("span", { className: styles$u.connector, "aria-hidden": "true" })
6075
+ i < progress2.length - 1 && /* @__PURE__ */ jsx("span", { className: styles$x.connector, "aria-hidden": "true" })
6058
6076
  ]
6059
6077
  },
6060
6078
  entry.step
@@ -6070,7 +6088,7 @@ function StepTick({ tone }) {
6070
6088
  return /* @__PURE__ */ jsxs(
6071
6089
  "svg",
6072
6090
  {
6073
- className: styles$u.tick,
6091
+ className: styles$x.tick,
6074
6092
  width: "28",
6075
6093
  height: "28",
6076
6094
  viewBox: "0 0 28 28",
@@ -6104,12 +6122,12 @@ function formatStepDate(iso, locale) {
6104
6122
  return `${weekday}, ${dayMonth}`;
6105
6123
  }
6106
6124
  const summary = "_summary_1h18y_2";
6107
- const row$5 = "_row_1h18y_8";
6125
+ const row$6 = "_row_1h18y_8";
6108
6126
  const free = "_free_1h18y_36";
6109
6127
  const pending$1 = "_pending_1h18y_42";
6110
- const styles$t = {
6128
+ const styles$w = {
6111
6129
  summary,
6112
- row: row$5,
6130
+ row: row$6,
6113
6131
  free,
6114
6132
  pending: pending$1
6115
6133
  };
@@ -6124,26 +6142,26 @@ function OrderSummary({ pricing, deferred = [], rows = CART_ROWS }) {
6124
6142
  const isDeferred = (key) => deferred.includes(key);
6125
6143
  const anyDeferred = deferred.length > 0;
6126
6144
  const visible = rows.filter((row2) => row2.key !== "total" || !anyDeferred);
6127
- return /* @__PURE__ */ jsx("dl", { className: styles$t.summary, children: visible.map(({ label: label2, key }) => {
6145
+ return /* @__PURE__ */ jsx("dl", { className: styles$w.summary, children: visible.map(({ label: label2, key }) => {
6128
6146
  const pending2 = key !== "total" && isDeferred(key);
6129
- return /* @__PURE__ */ jsxs("div", { className: styles$t.row, children: [
6147
+ return /* @__PURE__ */ jsxs("div", { className: styles$w.row, children: [
6130
6148
  /* @__PURE__ */ jsx("dt", { children: label2 }),
6131
- /* @__PURE__ */ jsx("dd", { className: pending2 ? styles$t.pending : void 0, children: pending2 ? "Calculated at checkout" : renderValue(key, pricing, format) })
6149
+ /* @__PURE__ */ jsx("dd", { className: pending2 ? styles$w.pending : void 0, children: pending2 ? "Calculated at checkout" : renderValue(key, pricing, format) })
6132
6150
  ] }, key);
6133
6151
  }) });
6134
6152
  }
6135
6153
  function renderValue(key, pricing, format) {
6136
6154
  if (key === "shipping" && pricing.shipping.amount === 0) {
6137
- return /* @__PURE__ */ jsx("span", { className: styles$t.free, children: "Free" });
6155
+ return /* @__PURE__ */ jsx("span", { className: styles$w.free, children: "Free" });
6138
6156
  }
6139
6157
  return format(pricing[key]);
6140
6158
  }
6141
- const page$1 = "_page_1eqkm_1";
6159
+ const page$2 = "_page_1eqkm_1";
6142
6160
  const status = "_status_1eqkm_10";
6143
6161
  const widget = "_widget_1eqkm_18";
6144
- const title$d = "_title_1eqkm_24";
6162
+ const title$f = "_title_1eqkm_24";
6145
6163
  const headline = "_headline_1eqkm_30";
6146
- const subtitle$2 = "_subtitle_1eqkm_37";
6164
+ const subtitle$3 = "_subtitle_1eqkm_37";
6147
6165
  const dot$3 = "_dot_1eqkm_48";
6148
6166
  const trackButton = "_trackButton_1eqkm_58";
6149
6167
  const srOnly = "_srOnly_1eqkm_78";
@@ -6154,8 +6172,8 @@ const count$1 = "_count_1eqkm_115";
6154
6172
  const lines$1 = "_lines_1eqkm_130";
6155
6173
  const line = "_line_1eqkm_130";
6156
6174
  const thumb = "_thumb_1eqkm_152";
6157
- const image$7 = "_image_1eqkm_162";
6158
- const placeholder$4 = "_placeholder_1eqkm_166";
6175
+ const image$8 = "_image_1eqkm_162";
6176
+ const placeholder$5 = "_placeholder_1eqkm_166";
6159
6177
  const lineBody = "_lineBody_1eqkm_172";
6160
6178
  const lineText = "_lineText_1eqkm_180";
6161
6179
  const lineTitle = "_lineTitle_1eqkm_189";
@@ -6170,13 +6188,13 @@ const last4 = "_last4_1eqkm_256";
6170
6188
  const brand = "_brand_1eqkm_262";
6171
6189
  const divider$2 = "_divider_1eqkm_268";
6172
6190
  const summaryCard = "_summaryCard_1eqkm_275";
6173
- const styles$s = {
6174
- page: page$1,
6191
+ const styles$v = {
6192
+ page: page$2,
6175
6193
  status,
6176
6194
  widget,
6177
- title: title$d,
6195
+ title: title$f,
6178
6196
  headline,
6179
- subtitle: subtitle$2,
6197
+ subtitle: subtitle$3,
6180
6198
  dot: dot$3,
6181
6199
  trackButton,
6182
6200
  srOnly,
@@ -6187,8 +6205,8 @@ const styles$s = {
6187
6205
  lines: lines$1,
6188
6206
  line,
6189
6207
  thumb,
6190
- image: image$7,
6191
- placeholder: placeholder$4,
6208
+ image: image$8,
6209
+ placeholder: placeholder$5,
6192
6210
  lineBody,
6193
6211
  lineText,
6194
6212
  lineTitle,
@@ -6233,7 +6251,7 @@ function OrderTrackingContent({ orderRef, locale: localeProp }) {
6233
6251
  void load();
6234
6252
  }, [load]);
6235
6253
  if (state === "loading") {
6236
- return /* @__PURE__ */ jsxs("div", { className: styles$s.page, children: [
6254
+ return /* @__PURE__ */ jsxs("div", { className: styles$v.page, children: [
6237
6255
  /* @__PURE__ */ jsx(Skeleton, { height: 120, radius: 8 }),
6238
6256
  /* @__PURE__ */ jsx(Skeleton, { height: 220, radius: 18 }),
6239
6257
  /* @__PURE__ */ jsx(Skeleton, { height: 140, radius: 18 })
@@ -6242,34 +6260,34 @@ function OrderTrackingContent({ orderRef, locale: localeProp }) {
6242
6260
  if (state === "error" || !order) {
6243
6261
  return /* @__PURE__ */ jsx(ErrorState, { code: errorCode, onRetry: () => void load() });
6244
6262
  }
6245
- return /* @__PURE__ */ jsxs("div", { className: styles$s.page, children: [
6246
- /* @__PURE__ */ jsxs("section", { className: styles$s.status, "aria-label": "Delivery status", children: [
6247
- /* @__PURE__ */ jsxs("div", { className: styles$s.title, children: [
6248
- /* @__PURE__ */ jsx("h1", { className: styles$s.headline, children: order.headline }),
6249
- /* @__PURE__ */ jsxs("p", { className: styles$s.subtitle, children: [
6263
+ return /* @__PURE__ */ jsxs("div", { className: styles$v.page, children: [
6264
+ /* @__PURE__ */ jsxs("section", { className: styles$v.status, "aria-label": "Delivery status", children: [
6265
+ /* @__PURE__ */ jsxs("div", { className: styles$v.title, children: [
6266
+ /* @__PURE__ */ jsx("h1", { className: styles$v.headline, children: order.headline }),
6267
+ /* @__PURE__ */ jsxs("p", { className: styles$v.subtitle, children: [
6250
6268
  /* @__PURE__ */ jsxs("span", { children: [
6251
6269
  "Order #",
6252
- shortRef(order.order_ref)
6270
+ shortRef$1(order.order_ref)
6253
6271
  ] }),
6254
- /* @__PURE__ */ jsx("span", { className: styles$s.dot, "aria-hidden": "true" }),
6272
+ /* @__PURE__ */ jsx("span", { className: styles$v.dot, "aria-hidden": "true" }),
6255
6273
  /* @__PURE__ */ jsxs("span", { children: [
6256
6274
  "Placed ",
6257
- formatPlaced(order.placed_at, locale)
6275
+ formatPlaced$1(order.placed_at, locale)
6258
6276
  ] })
6259
6277
  ] })
6260
6278
  ] }),
6261
- /* @__PURE__ */ jsxs("div", { className: styles$s.widget, children: [
6279
+ /* @__PURE__ */ jsxs("div", { className: styles$v.widget, children: [
6262
6280
  /* @__PURE__ */ jsx(OrderTimeline, { progress: order.progress, locale }),
6263
6281
  order.tracking?.url && /* @__PURE__ */ jsxs(
6264
6282
  "a",
6265
6283
  {
6266
- className: styles$s.trackButton,
6284
+ className: styles$v.trackButton,
6267
6285
  href: order.tracking.url,
6268
6286
  target: "_blank",
6269
6287
  rel: "noopener noreferrer",
6270
6288
  children: [
6271
6289
  "Track order",
6272
- /* @__PURE__ */ jsxs("span", { className: styles$s.srOnly, children: [
6290
+ /* @__PURE__ */ jsxs("span", { className: styles$v.srOnly, children: [
6273
6291
  " (opens ",
6274
6292
  order.tracking.carrier,
6275
6293
  " in a new tab)"
@@ -6280,18 +6298,18 @@ function OrderTrackingContent({ orderRef, locale: localeProp }) {
6280
6298
  ] })
6281
6299
  ] }),
6282
6300
  /* @__PURE__ */ jsx(ItemsCard, { order }),
6283
- /* @__PURE__ */ jsxs("section", { className: styles$s.details, "aria-label": "Delivery and payment", children: [
6284
- /* @__PURE__ */ jsxs("div", { className: styles$s.detailBlock, children: [
6285
- /* @__PURE__ */ jsx("h2", { className: styles$s.detailLabel, children: "Shipping address" }),
6286
- /* @__PURE__ */ jsx("p", { className: styles$s.detailValue, children: formatAddress(order.ship_to) })
6301
+ /* @__PURE__ */ jsxs("section", { className: styles$v.details, "aria-label": "Delivery and payment", children: [
6302
+ /* @__PURE__ */ jsxs("div", { className: styles$v.detailBlock, children: [
6303
+ /* @__PURE__ */ jsx("h2", { className: styles$v.detailLabel, children: "Shipping address" }),
6304
+ /* @__PURE__ */ jsx("p", { className: styles$v.detailValue, children: formatAddress(order.ship_to) })
6287
6305
  ] }),
6288
6306
  order.payment && /* @__PURE__ */ jsxs(Fragment, { children: [
6289
- /* @__PURE__ */ jsx("div", { className: styles$s.divider, role: "presentation" }),
6290
- /* @__PURE__ */ jsxs("div", { className: [styles$s.detailBlock, styles$s.payment].join(" "), children: [
6291
- /* @__PURE__ */ jsx("h2", { className: styles$s.detailLabel, children: "Payment" }),
6292
- /* @__PURE__ */ jsxs("p", { className: styles$s.detailValue, children: [
6293
- /* @__PURE__ */ jsx("span", { className: styles$s.brand, children: order.payment.brand }),
6294
- order.payment.last4 && /* @__PURE__ */ jsxs("span", { className: styles$s.last4, children: [
6307
+ /* @__PURE__ */ jsx("div", { className: styles$v.divider, role: "presentation" }),
6308
+ /* @__PURE__ */ jsxs("div", { className: [styles$v.detailBlock, styles$v.payment].join(" "), children: [
6309
+ /* @__PURE__ */ jsx("h2", { className: styles$v.detailLabel, children: "Payment" }),
6310
+ /* @__PURE__ */ jsxs("p", { className: styles$v.detailValue, children: [
6311
+ /* @__PURE__ */ jsx("span", { className: styles$v.brand, children: order.payment.brand }),
6312
+ order.payment.last4 && /* @__PURE__ */ jsxs("span", { className: styles$v.last4, children: [
6295
6313
  "•••• ",
6296
6314
  order.payment.last4
6297
6315
  ] })
@@ -6299,27 +6317,27 @@ function OrderTrackingContent({ orderRef, locale: localeProp }) {
6299
6317
  ] })
6300
6318
  ] })
6301
6319
  ] }),
6302
- /* @__PURE__ */ jsxs("section", { className: styles$s.summaryCard, "aria-label": "Order summary", children: [
6303
- /* @__PURE__ */ jsx("h2", { className: styles$s.cardTitle, children: "Order summary" }),
6320
+ /* @__PURE__ */ jsxs("section", { className: styles$v.summaryCard, "aria-label": "Order summary", children: [
6321
+ /* @__PURE__ */ jsx("h2", { className: styles$v.cardTitle, children: "Order summary" }),
6304
6322
  /* @__PURE__ */ jsx(OrderSummary, { pricing: toPricing(order), rows: SUMMARY_ROWS })
6305
6323
  ] })
6306
6324
  ] });
6307
6325
  }
6308
6326
  function ItemsCard({ order }) {
6309
6327
  const { format } = useMoney();
6310
- return /* @__PURE__ */ jsxs("section", { className: styles$s.itemsCard, "aria-label": "Items", children: [
6311
- /* @__PURE__ */ jsxs("div", { className: styles$s.cardHeader, children: [
6312
- /* @__PURE__ */ jsx("h2", { className: styles$s.cardTitle, children: "Items" }),
6313
- /* @__PURE__ */ jsx("span", { className: styles$s.count, children: order.items.reduce((n, i) => n + i.qty, 0) })
6328
+ return /* @__PURE__ */ jsxs("section", { className: styles$v.itemsCard, "aria-label": "Items", children: [
6329
+ /* @__PURE__ */ jsxs("div", { className: styles$v.cardHeader, children: [
6330
+ /* @__PURE__ */ jsx("h2", { className: styles$v.cardTitle, children: "Items" }),
6331
+ /* @__PURE__ */ jsx("span", { className: styles$v.count, children: order.items.reduce((n, i) => n + i.qty, 0) })
6314
6332
  ] }),
6315
- /* @__PURE__ */ jsx("ul", { className: styles$s.lines, children: order.items.map((item2) => /* @__PURE__ */ jsxs("li", { className: styles$s.line, children: [
6316
- /* @__PURE__ */ jsx("div", { className: styles$s.thumb, children: item2.image ? /* @__PURE__ */ jsx(ShopImage, { src: item2.image, alt: "", fill: true, sizes: "48px", className: styles$s.image }) : /* @__PURE__ */ jsx("div", { className: styles$s.placeholder, "aria-hidden": "true" }) }),
6317
- /* @__PURE__ */ jsxs("div", { className: styles$s.lineBody, children: [
6318
- /* @__PURE__ */ jsxs("div", { className: styles$s.lineText, children: [
6319
- /* @__PURE__ */ jsx("span", { className: styles$s.lineTitle, children: item2.title ?? item2.sku }),
6320
- detailsOf(item2).length > 0 && /* @__PURE__ */ jsx("span", { className: styles$s.lineDetails, children: detailsOf(item2).map((detail2) => /* @__PURE__ */ jsx("span", { children: detail2 }, detail2)) })
6333
+ /* @__PURE__ */ jsx("ul", { className: styles$v.lines, children: order.items.map((item2) => /* @__PURE__ */ jsxs("li", { className: styles$v.line, children: [
6334
+ /* @__PURE__ */ jsx("div", { className: styles$v.thumb, children: item2.image ? /* @__PURE__ */ jsx(ShopImage, { src: item2.image, alt: "", fill: true, sizes: "48px", className: styles$v.image }) : /* @__PURE__ */ jsx("div", { className: styles$v.placeholder, "aria-hidden": "true" }) }),
6335
+ /* @__PURE__ */ jsxs("div", { className: styles$v.lineBody, children: [
6336
+ /* @__PURE__ */ jsxs("div", { className: styles$v.lineText, children: [
6337
+ /* @__PURE__ */ jsx("span", { className: styles$v.lineTitle, children: item2.title ?? item2.sku }),
6338
+ detailsOf(item2).length > 0 && /* @__PURE__ */ jsx("span", { className: styles$v.lineDetails, children: detailsOf(item2).map((detail2) => /* @__PURE__ */ jsx("span", { children: detail2 }, detail2)) })
6321
6339
  ] }),
6322
- /* @__PURE__ */ jsx("span", { className: styles$s.linePrice, children: format(item2.line_total) })
6340
+ /* @__PURE__ */ jsx("span", { className: styles$v.linePrice, children: format(item2.line_total) })
6323
6341
  ] })
6324
6342
  ] }, item2.line_ref)) })
6325
6343
  ] });
@@ -6336,10 +6354,10 @@ function toPricing(order) {
6336
6354
  total: order.totals.grand_total
6337
6355
  };
6338
6356
  }
6339
- function shortRef(orderRef) {
6357
+ function shortRef$1(orderRef) {
6340
6358
  return orderRef.replace(/^ord_/, "");
6341
6359
  }
6342
- function formatPlaced(iso, locale) {
6360
+ function formatPlaced$1(iso, locale) {
6343
6361
  return new Date(iso).toLocaleDateString(locale, {
6344
6362
  day: "numeric",
6345
6363
  month: "short",
@@ -6349,6 +6367,202 @@ function formatPlaced(iso, locale) {
6349
6367
  function formatAddress(address) {
6350
6368
  return [address.line1, address.line2, address.postcode, address.city, address.country].filter(Boolean).join(", ");
6351
6369
  }
6370
+ const badge$2 = "_badge_ghd02_6";
6371
+ const progress = "_progress_ghd02_22";
6372
+ const delivered = "_delivered_ghd02_27";
6373
+ const cancelled = "_cancelled_ghd02_32";
6374
+ const styles$u = {
6375
+ badge: badge$2,
6376
+ progress,
6377
+ delivered,
6378
+ cancelled
6379
+ };
6380
+ const LABEL = {
6381
+ packing: "In progress",
6382
+ on_its_way: "In progress",
6383
+ out_for_delivery: "In progress",
6384
+ delivered: "Delivered",
6385
+ cancelled: "Cancelled"
6386
+ };
6387
+ const TONE = {
6388
+ packing: "progress",
6389
+ on_its_way: "progress",
6390
+ out_for_delivery: "progress",
6391
+ delivered: "delivered",
6392
+ cancelled: "cancelled"
6393
+ };
6394
+ function OrderStatusBadge({ status: status2 }) {
6395
+ const label2 = LABEL[status2] ?? status2.replace(/_/g, " ");
6396
+ const tone = TONE[status2] ?? "progress";
6397
+ return /* @__PURE__ */ jsx("span", { className: [styles$u.badge, styles$u[tone]].join(" "), children: label2 });
6398
+ }
6399
+ const page$1 = "_page_y686q_2";
6400
+ const empty = "_empty_y686q_11";
6401
+ const cta$1 = "_cta_y686q_22";
6402
+ const card$1 = "_card_y686q_45";
6403
+ const tappable = "_tappable_y686q_60";
6404
+ const head$1 = "_head_y686q_69";
6405
+ const heading = "_heading_y686q_77";
6406
+ const title$e = "_title_y686q_86";
6407
+ const date = "_date_y686q_97";
6408
+ const bottom$1 = "_bottom_y686q_102";
6409
+ const strip = "_strip_y686q_110";
6410
+ const tile$2 = "_tile_y686q_115";
6411
+ const image$7 = "_image_y686q_125";
6412
+ const placeholder$4 = "_placeholder_y686q_129";
6413
+ const more = "_more_y686q_136";
6414
+ const chevron$3 = "_chevron_y686q_149";
6415
+ const styles$t = {
6416
+ page: page$1,
6417
+ empty,
6418
+ cta: cta$1,
6419
+ card: card$1,
6420
+ tappable,
6421
+ head: head$1,
6422
+ heading,
6423
+ title: title$e,
6424
+ date,
6425
+ bottom: bottom$1,
6426
+ strip,
6427
+ tile: tile$2,
6428
+ image: image$7,
6429
+ placeholder: placeholder$4,
6430
+ more,
6431
+ chevron: chevron$3
6432
+ };
6433
+ const TILES = 3;
6434
+ function Chevron() {
6435
+ return /* @__PURE__ */ jsx("svg", { width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ jsx(
6436
+ "path",
6437
+ {
6438
+ d: "M9 5.5l6.5 6.5L9 18.5",
6439
+ stroke: "currentColor",
6440
+ strokeWidth: "1.8",
6441
+ strokeLinecap: "round",
6442
+ strokeLinejoin: "round"
6443
+ }
6444
+ ) });
6445
+ }
6446
+ function OrderListView(props) {
6447
+ return /* @__PURE__ */ jsx(ShopSurface, { tone: "light", fill: true, children: /* @__PURE__ */ jsx(OrderListContent, { ...props }) });
6448
+ }
6449
+ function OrderListContent({ onOpenOrder, onStartShopping, locale: localeProp }) {
6450
+ const { api } = useShop();
6451
+ const locale = useLocale(localeProp);
6452
+ const [orders2, setOrders] = useState([]);
6453
+ const [state, setState] = useState("loading");
6454
+ const [errorCode, setErrorCode] = useState(void 0);
6455
+ const load = useCallback(async () => {
6456
+ setState("loading");
6457
+ try {
6458
+ const { orders: rows } = await api.orders.list();
6459
+ setOrders(rows);
6460
+ setState("ready");
6461
+ } catch (err) {
6462
+ setErrorCode(codeOf(err));
6463
+ setState("error");
6464
+ }
6465
+ }, [api]);
6466
+ useEffect(() => {
6467
+ void load();
6468
+ }, [load]);
6469
+ if (state === "loading") {
6470
+ return /* @__PURE__ */ jsxs("div", { className: styles$t.page, children: [
6471
+ /* @__PURE__ */ jsx(Skeleton, { height: 148, radius: 12 }),
6472
+ /* @__PURE__ */ jsx(Skeleton, { height: 148, radius: 12 }),
6473
+ /* @__PURE__ */ jsx(Skeleton, { height: 148, radius: 12 })
6474
+ ] });
6475
+ }
6476
+ if (state === "error") {
6477
+ return /* @__PURE__ */ jsx(ErrorState, { code: errorCode, onRetry: () => void load() });
6478
+ }
6479
+ if (orders2.length === 0) {
6480
+ return /* @__PURE__ */ jsx("div", { className: styles$t.empty, children: /* @__PURE__ */ jsx(
6481
+ EmptyState,
6482
+ {
6483
+ title: "Nothing here yet",
6484
+ body: "Your orders will show up here once you've shopped.",
6485
+ ...onStartShopping ? {
6486
+ action: /* @__PURE__ */ jsx("button", { type: "button", className: styles$t.cta, onClick: onStartShopping, children: "Find my fit" })
6487
+ } : {}
6488
+ }
6489
+ ) });
6490
+ }
6491
+ return /* @__PURE__ */ jsx("ul", { className: styles$t.page, children: orders2.map((order) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
6492
+ OrderCard,
6493
+ {
6494
+ order,
6495
+ locale,
6496
+ ...onOpenOrder ? { onOpen: () => onOpenOrder(order.order_ref) } : {}
6497
+ }
6498
+ ) }, order.order_ref)) });
6499
+ }
6500
+ function OrderCard({
6501
+ order,
6502
+ locale,
6503
+ onOpen
6504
+ }) {
6505
+ const body2 = /* @__PURE__ */ jsxs(Fragment, { children: [
6506
+ /* @__PURE__ */ jsxs("div", { className: styles$t.head, children: [
6507
+ /* @__PURE__ */ jsxs("div", { className: styles$t.heading, children: [
6508
+ /* @__PURE__ */ jsxs("span", { className: styles$t.title, children: [
6509
+ "Order #",
6510
+ shortRef(order.order_ref)
6511
+ ] }),
6512
+ /* @__PURE__ */ jsx("span", { className: styles$t.date, children: formatPlaced(order.placed_at, locale) })
6513
+ ] }),
6514
+ /* @__PURE__ */ jsx(OrderStatusBadge, { status: order.status })
6515
+ ] }),
6516
+ /* @__PURE__ */ jsxs("div", { className: styles$t.bottom, children: [
6517
+ /* @__PURE__ */ jsx(Thumbnails, { order }),
6518
+ onOpen && /* @__PURE__ */ jsx("span", { className: styles$t.chevron, children: /* @__PURE__ */ jsx(Chevron, {}) })
6519
+ ] })
6520
+ ] });
6521
+ if (!onOpen) return /* @__PURE__ */ jsx("div", { className: styles$t.card, children: body2 });
6522
+ return /* @__PURE__ */ jsx(
6523
+ "button",
6524
+ {
6525
+ type: "button",
6526
+ className: [styles$t.card, styles$t.tappable].join(" "),
6527
+ onClick: onOpen,
6528
+ "aria-label": `Order ${shortRef(order.order_ref)}, ${order.headline}`,
6529
+ children: body2
6530
+ }
6531
+ );
6532
+ }
6533
+ function Thumbnails({ order }) {
6534
+ const images = order.images ?? (order.image ? [order.image] : []);
6535
+ const hidden = order.item_count - TILES + 1;
6536
+ const overflow = images.length >= TILES && hidden > 1 ? hidden : 0;
6537
+ if (images.length === 0) {
6538
+ return /* @__PURE__ */ jsx("div", { className: styles$t.strip, children: /* @__PURE__ */ jsx("div", { className: [styles$t.tile, styles$t.placeholder].join(" "), "aria-hidden": "true" }) });
6539
+ }
6540
+ return /* @__PURE__ */ jsx("div", { className: styles$t.strip, children: images.map((src, i) => {
6541
+ const last = i === images.length - 1;
6542
+ return /* @__PURE__ */ jsxs("div", { className: styles$t.tile, children: [
6543
+ /* @__PURE__ */ jsx(ShopImage, { src, alt: "", fill: true, sizes: "56px", className: styles$t.image }),
6544
+ overflow > 0 && last && /* @__PURE__ */ jsxs("span", { className: styles$t.more, children: [
6545
+ /* @__PURE__ */ jsxs("span", { "aria-hidden": "true", children: [
6546
+ "+",
6547
+ overflow
6548
+ ] }),
6549
+ /* @__PURE__ */ jsxs("span", { className: "visually-hidden", children: [
6550
+ "and ",
6551
+ overflow,
6552
+ " more items"
6553
+ ] })
6554
+ ] })
6555
+ ] }, `${src}-${i}`);
6556
+ }) });
6557
+ }
6558
+ function shortRef(orderRef) {
6559
+ return orderRef.replace(/^ord_/, "");
6560
+ }
6561
+ function formatPlaced(iso, locale) {
6562
+ const date2 = new Date(iso);
6563
+ const day = date2.toLocaleDateString(locale, { day: "numeric", month: "short" });
6564
+ return `${day}, ${date2.toLocaleDateString(locale, { year: "numeric" })}`;
6565
+ }
6352
6566
  const tile$1 = "_tile_1u9l8_3";
6353
6567
  const media$2 = "_media_1u9l8_11";
6354
6568
  const image$6 = "_image_1u9l8_21";
@@ -6358,13 +6572,13 @@ const saleBadge$1 = "_saleBadge_1u9l8_56";
6358
6572
  const oos$2 = "_oos_1u9l8_63";
6359
6573
  const bottom = "_bottom_1u9l8_88";
6360
6574
  const titlePrice$1 = "_titlePrice_1u9l8_1";
6361
- const title$c = "_title_1u9l8_1";
6575
+ const title$d = "_title_1u9l8_1";
6362
6576
  const swatches = "_swatches_1u9l8_119";
6363
6577
  const swatch = "_swatch_1u9l8_119";
6364
6578
  const swatchActive = "_swatchActive_1u9l8_132";
6365
6579
  const swatchDot = "_swatchDot_1u9l8_136";
6366
6580
  const large = "_large_1u9l8_147";
6367
- const styles$r = {
6581
+ const styles$s = {
6368
6582
  tile: tile$1,
6369
6583
  media: media$2,
6370
6584
  image: image$6,
@@ -6374,7 +6588,7 @@ const styles$r = {
6374
6588
  oos: oos$2,
6375
6589
  bottom,
6376
6590
  titlePrice: titlePrice$1,
6377
- title: title$c,
6591
+ title: title$d,
6378
6592
  swatches,
6379
6593
  swatch,
6380
6594
  swatchActive,
@@ -6391,9 +6605,9 @@ function ProductTile({ product, priority, size = "default" }) {
6391
6605
  ShopLink,
6392
6606
  {
6393
6607
  to: `/product/${encodeURIComponent(product.sku)}`,
6394
- className: [styles$r.tile, size === "large" ? styles$r.large : ""].join(" "),
6608
+ className: [styles$s.tile, size === "large" ? styles$s.large : ""].join(" "),
6395
6609
  children: [
6396
- /* @__PURE__ */ jsxs("div", { className: styles$r.media, children: [
6610
+ /* @__PURE__ */ jsxs("div", { className: styles$s.media, children: [
6397
6611
  image2 ? /* @__PURE__ */ jsx(
6398
6612
  ShopImage,
6399
6613
  {
@@ -6401,17 +6615,17 @@ function ProductTile({ product, priority, size = "default" }) {
6401
6615
  alt: product.title,
6402
6616
  fill: true,
6403
6617
  sizes: size === "large" ? "(max-width: 480px) 100vw, 480px" : "(max-width: 480px) 45vw, 200px",
6404
- className: styles$r.image,
6618
+ className: styles$s.image,
6405
6619
  priority
6406
6620
  }
6407
- ) : /* @__PURE__ */ jsx("div", { className: styles$r.placeholder, "aria-hidden": "true" }),
6408
- anyInStock && topBadge2 && /* @__PURE__ */ jsx("span", { className: styles$r.topBadge, children: topBadge2 }),
6409
- anyInStock && pct !== void 0 && /* @__PURE__ */ jsx("span", { className: styles$r.saleBadge, children: /* @__PURE__ */ jsx(SaleBadge, { pct }) }),
6410
- !anyInStock && /* @__PURE__ */ jsx("span", { className: styles$r.oos, children: "Out of stock" })
6621
+ ) : /* @__PURE__ */ jsx("div", { className: styles$s.placeholder, "aria-hidden": "true" }),
6622
+ anyInStock && topBadge2 && /* @__PURE__ */ jsx("span", { className: styles$s.topBadge, children: topBadge2 }),
6623
+ anyInStock && pct !== void 0 && /* @__PURE__ */ jsx("span", { className: styles$s.saleBadge, children: /* @__PURE__ */ jsx(SaleBadge, { pct }) }),
6624
+ !anyInStock && /* @__PURE__ */ jsx("span", { className: styles$s.oos, children: "Out of stock" })
6411
6625
  ] }),
6412
- /* @__PURE__ */ jsxs("div", { className: styles$r.bottom, children: [
6413
- /* @__PURE__ */ jsxs("div", { className: styles$r.titlePrice, children: [
6414
- /* @__PURE__ */ jsx("span", { className: styles$r.title, children: product.title }),
6626
+ /* @__PURE__ */ jsxs("div", { className: styles$s.bottom, children: [
6627
+ /* @__PURE__ */ jsxs("div", { className: styles$s.titlePrice, children: [
6628
+ /* @__PURE__ */ jsx("span", { className: styles$s.title, children: product.title }),
6415
6629
  /* @__PURE__ */ jsx(
6416
6630
  PriceBlock,
6417
6631
  {
@@ -6423,11 +6637,11 @@ function ProductTile({ product, priority, size = "default" }) {
6423
6637
  }
6424
6638
  )
6425
6639
  ] }),
6426
- swatches2.length > 0 && /* @__PURE__ */ jsx("div", { className: styles$r.swatches, "aria-hidden": "true", children: swatches2.map((c, i) => /* @__PURE__ */ jsx(
6640
+ swatches2.length > 0 && /* @__PURE__ */ jsx("div", { className: styles$s.swatches, "aria-hidden": "true", children: swatches2.map((c, i) => /* @__PURE__ */ jsx(
6427
6641
  "span",
6428
6642
  {
6429
- className: [styles$r.swatch, i === 0 ? styles$r.swatchActive : ""].join(" "),
6430
- children: /* @__PURE__ */ jsx("span", { className: styles$r.swatchDot, style: { background: swatchColour(c.value) } })
6643
+ className: [styles$s.swatch, i === 0 ? styles$s.swatchActive : ""].join(" "),
6644
+ children: /* @__PURE__ */ jsx("span", { className: styles$s.swatchDot, style: { background: swatchColour(c.value) } })
6431
6645
  },
6432
6646
  c.value
6433
6647
  )) })
@@ -6441,7 +6655,7 @@ const chips$1 = "_chips_fn0g9_8";
6441
6655
  const chip$1 = "_chip_fn0g9_8";
6442
6656
  const on = "_on_fn0g9_29";
6443
6657
  const clear = "_clear_fn0g9_35";
6444
- const styles$q = {
6658
+ const styles$r = {
6445
6659
  bar: bar$1,
6446
6660
  chips: chips$1,
6447
6661
  chip: chip$1,
@@ -6450,27 +6664,27 @@ const styles$q = {
6450
6664
  };
6451
6665
  function FilterBar({ options: options2, active, onToggle, onClear }) {
6452
6666
  const hasActive = active.length > 0;
6453
- return /* @__PURE__ */ jsxs("div", { className: styles$q.bar, role: "group", "aria-label": "Filters", children: [
6454
- /* @__PURE__ */ jsx("div", { className: styles$q.chips, children: options2.map((opt) => {
6667
+ return /* @__PURE__ */ jsxs("div", { className: styles$r.bar, role: "group", "aria-label": "Filters", children: [
6668
+ /* @__PURE__ */ jsx("div", { className: styles$r.chips, children: options2.map((opt) => {
6455
6669
  const on2 = active.includes(opt.value);
6456
6670
  return /* @__PURE__ */ jsx(
6457
6671
  "button",
6458
6672
  {
6459
6673
  type: "button",
6460
6674
  "aria-pressed": on2,
6461
- className: [styles$q.chip, on2 ? styles$q.on : ""].join(" "),
6675
+ className: [styles$r.chip, on2 ? styles$r.on : ""].join(" "),
6462
6676
  onClick: () => onToggle(opt.value),
6463
6677
  children: opt.label
6464
6678
  },
6465
6679
  opt.value
6466
6680
  );
6467
6681
  }) }),
6468
- hasActive && onClear && /* @__PURE__ */ jsx("button", { type: "button", className: styles$q.clear, onClick: onClear, children: "Clear" })
6682
+ hasActive && onClear && /* @__PURE__ */ jsx("button", { type: "button", className: styles$r.clear, onClick: onClear, children: "Clear" })
6469
6683
  ] });
6470
6684
  }
6471
6685
  const wrap$2 = "_wrap_15ntf_1";
6472
6686
  const grid$1 = "_grid_15ntf_7";
6473
- const styles$p = {
6687
+ const styles$q = {
6474
6688
  wrap: wrap$2,
6475
6689
  grid: grid$1
6476
6690
  };
@@ -6515,7 +6729,7 @@ function ProductGrid({
6515
6729
  return () => observer.disconnect();
6516
6730
  }, [loadMore]);
6517
6731
  const visible = active.length === 0 ? products : products.filter((p) => active.includes(p.category));
6518
- return /* @__PURE__ */ jsxs("div", { className: styles$p.wrap, children: [
6732
+ return /* @__PURE__ */ jsxs("div", { className: styles$q.wrap, children: [
6519
6733
  filters.length > 0 && /* @__PURE__ */ jsx(
6520
6734
  FilterBar,
6521
6735
  {
@@ -6532,22 +6746,22 @@ function ProductGrid({
6532
6746
  body: "Nothing matches these filters.",
6533
6747
  action: active.length > 0 ? /* @__PURE__ */ jsx(Button, { variant: "secondary", onClick: () => setActive([]), children: "Clear filters" }) : void 0
6534
6748
  }
6535
- ) : /* @__PURE__ */ jsx("ul", { className: styles$p.grid, children: visible.map((product, i) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(ProductTile, { product, priority: i < 4 }) }, product.sku)) }),
6536
- loading && /* @__PURE__ */ jsx("div", { className: styles$p.grid, "aria-hidden": "true", children: [0, 1].map((i) => /* @__PURE__ */ jsx(Skeleton, { height: 200, radius: 12 }, i)) }),
6749
+ ) : /* @__PURE__ */ jsx("ul", { className: styles$q.grid, children: visible.map((product, i) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(ProductTile, { product, priority: i < 4 }) }, product.sku)) }),
6750
+ loading && /* @__PURE__ */ jsx("div", { className: styles$q.grid, "aria-hidden": "true", children: [0, 1].map((i) => /* @__PURE__ */ jsx(Skeleton, { height: 200, radius: 12 }, i)) }),
6537
6751
  /* @__PURE__ */ jsx("div", { ref: sentinelRef, "aria-hidden": "true" })
6538
6752
  ] });
6539
6753
  }
6540
6754
  const rail = "_rail_5z5e9_2";
6541
- const header$5 = "_header_5z5e9_9";
6542
- const title$b = "_title_5z5e9_16";
6755
+ const header$6 = "_header_5z5e9_9";
6756
+ const title$c = "_title_5z5e9_16";
6543
6757
  const seeAll = "_seeAll_5z5e9_22";
6544
6758
  const track$3 = "_track_5z5e9_28";
6545
6759
  const item = "_item_5z5e9_45";
6546
6760
  const inset = "_inset_5z5e9_57";
6547
- const styles$o = {
6761
+ const styles$p = {
6548
6762
  rail,
6549
- header: header$5,
6550
- title: title$b,
6763
+ header: header$6,
6764
+ title: title$c,
6551
6765
  seeAll,
6552
6766
  track: track$3,
6553
6767
  item,
@@ -6555,62 +6769,16 @@ const styles$o = {
6555
6769
  };
6556
6770
  function RailCarousel({ title: title2, products, seeAllTo, inset: inset2 }) {
6557
6771
  if (products.length === 0) return null;
6558
- return /* @__PURE__ */ jsxs("section", { className: [styles$o.rail, inset2 ? styles$o.inset : ""].join(" "), "aria-label": title2, children: [
6559
- /* @__PURE__ */ jsxs("div", { className: styles$o.header, children: [
6560
- /* @__PURE__ */ jsx("h2", { className: styles$o.title, children: title2 }),
6561
- seeAllTo && /* @__PURE__ */ jsx(ShopLink, { className: styles$o.seeAll, to: seeAllTo, children: "See all" })
6772
+ return /* @__PURE__ */ jsxs("section", { className: [styles$p.rail, inset2 ? styles$p.inset : ""].join(" "), "aria-label": title2, children: [
6773
+ /* @__PURE__ */ jsxs("div", { className: styles$p.header, children: [
6774
+ /* @__PURE__ */ jsx("h2", { className: styles$p.title, children: title2 }),
6775
+ seeAllTo && /* @__PURE__ */ jsx(ShopLink, { className: styles$p.seeAll, to: seeAllTo, children: "See all" })
6562
6776
  ] }),
6563
- /* @__PURE__ */ jsx("ul", { className: styles$o.track, children: products.map((product, i) => /* @__PURE__ */ jsx("li", { className: styles$o.item, children: /* @__PURE__ */ jsx(ProductTile, { product, priority: i < 2 }) }, product.sku)) })
6777
+ /* @__PURE__ */ jsx("ul", { className: styles$p.track, children: products.map((product, i) => /* @__PURE__ */ jsx("li", { className: styles$p.item, children: /* @__PURE__ */ jsx(ProductTile, { product, priority: i < 2 }) }, product.sku)) })
6564
6778
  ] });
6565
6779
  }
6566
- const overlay$1 = "_overlay_s4eai_1";
6567
- const scrim$3 = "_scrim_s4eai_10";
6568
- const sheet$1 = "_sheet_s4eai_16";
6569
- const grabArea = "_grabArea_s4eai_41";
6570
- const grabber$1 = "_grabber_s4eai_51";
6571
- const header$4 = "_header_s4eai_59";
6572
- const title$a = "_title_s4eai_67";
6573
- const close$1 = "_close_s4eai_71";
6574
- const body$3 = "_body_s4eai_84";
6575
- const footer = "_footer_s4eai_90";
6576
- const styles$n = {
6577
- overlay: overlay$1,
6578
- scrim: scrim$3,
6579
- sheet: sheet$1,
6580
- grabArea,
6581
- grabber: grabber$1,
6582
- header: header$4,
6583
- title: title$a,
6584
- close: close$1,
6585
- body: body$3,
6586
- footer
6587
- };
6588
6780
  const FOCUSABLE = 'a[href], button:not([disabled]), textarea, input, select, [tabindex]:not([tabindex="-1"])';
6589
- const DISMISS_THRESHOLD_PX = 96;
6590
- function BottomSheet({ open, onClose, title: title2, children, footer: footer2 }) {
6591
- const sheetRef = useRef(null);
6592
- const previouslyFocused = useRef(null);
6593
- const dragStartY = useRef(null);
6594
- const dragDistance = useRef(0);
6595
- const [dragY, setDragY] = useState(0);
6596
- const titleId = "bottomsheet-title";
6597
- const onDragStart = useCallback((clientY) => {
6598
- dragStartY.current = clientY;
6599
- }, []);
6600
- const onDragMove = useCallback((clientY) => {
6601
- if (dragStartY.current === null) return;
6602
- const distance = Math.max(0, clientY - dragStartY.current);
6603
- dragDistance.current = distance;
6604
- setDragY(distance);
6605
- }, []);
6606
- const onDragEnd = useCallback(() => {
6607
- if (dragStartY.current === null) return;
6608
- dragStartY.current = null;
6609
- const dismissed = dragDistance.current > DISMISS_THRESHOLD_PX;
6610
- dragDistance.current = 0;
6611
- setDragY(0);
6612
- if (dismissed) onClose();
6613
- }, [onClose]);
6781
+ function useModalDialog(open, onClose, ref) {
6614
6782
  const handleKeyDown = useCallback(
6615
6783
  (e) => {
6616
6784
  if (e.key === "Escape") {
@@ -6619,9 +6787,9 @@ function BottomSheet({ open, onClose, title: title2, children, footer: footer2 }
6619
6787
  return;
6620
6788
  }
6621
6789
  if (e.key !== "Tab") return;
6622
- const sheet2 = sheetRef.current;
6623
- if (!sheet2) return;
6624
- const focusables = Array.from(sheet2.querySelectorAll(FOCUSABLE)).filter(
6790
+ const dialog = ref.current;
6791
+ if (!dialog) return;
6792
+ const focusables = Array.from(dialog.querySelectorAll(FOCUSABLE)).filter(
6625
6793
  (el) => el.offsetParent !== null || el === document.activeElement
6626
6794
  );
6627
6795
  if (focusables.length === 0) {
@@ -6638,31 +6806,77 @@ function BottomSheet({ open, onClose, title: title2, children, footer: footer2 }
6638
6806
  first.focus();
6639
6807
  }
6640
6808
  },
6641
- [onClose]
6809
+ [onClose, ref]
6642
6810
  );
6643
6811
  useEffect(() => {
6644
6812
  if (!open) return;
6645
- previouslyFocused.current = document.activeElement;
6813
+ const previouslyFocused = document.activeElement;
6646
6814
  document.addEventListener("keydown", handleKeyDown);
6647
- const sheet2 = sheetRef.current;
6648
- const first = sheet2?.querySelector(FOCUSABLE);
6649
- first?.focus();
6815
+ ref.current?.querySelector(FOCUSABLE)?.focus();
6650
6816
  const { overflow } = document.body.style;
6651
6817
  document.body.style.overflow = "hidden";
6652
6818
  return () => {
6653
6819
  document.removeEventListener("keydown", handleKeyDown);
6654
6820
  document.body.style.overflow = overflow;
6655
- previouslyFocused.current?.focus?.();
6821
+ previouslyFocused?.focus?.();
6656
6822
  };
6657
- }, [open, handleKeyDown]);
6823
+ }, [open, handleKeyDown, ref]);
6824
+ }
6825
+ const overlay$2 = "_overlay_s4eai_1";
6826
+ const scrim$4 = "_scrim_s4eai_10";
6827
+ const sheet$2 = "_sheet_s4eai_16";
6828
+ const grabArea = "_grabArea_s4eai_41";
6829
+ const grabber$1 = "_grabber_s4eai_51";
6830
+ const header$5 = "_header_s4eai_59";
6831
+ const title$b = "_title_s4eai_67";
6832
+ const close$2 = "_close_s4eai_71";
6833
+ const body$3 = "_body_s4eai_84";
6834
+ const footer = "_footer_s4eai_90";
6835
+ const styles$o = {
6836
+ overlay: overlay$2,
6837
+ scrim: scrim$4,
6838
+ sheet: sheet$2,
6839
+ grabArea,
6840
+ grabber: grabber$1,
6841
+ header: header$5,
6842
+ title: title$b,
6843
+ close: close$2,
6844
+ body: body$3,
6845
+ footer
6846
+ };
6847
+ const DISMISS_THRESHOLD_PX = 96;
6848
+ function BottomSheet({ open, onClose, title: title2, children, footer: footer2 }) {
6849
+ const sheetRef = useRef(null);
6850
+ const dragStartY = useRef(null);
6851
+ const dragDistance = useRef(0);
6852
+ const [dragY, setDragY] = useState(0);
6853
+ const titleId = "bottomsheet-title";
6854
+ const onDragStart = useCallback((clientY) => {
6855
+ dragStartY.current = clientY;
6856
+ }, []);
6857
+ const onDragMove = useCallback((clientY) => {
6858
+ if (dragStartY.current === null) return;
6859
+ const distance = Math.max(0, clientY - dragStartY.current);
6860
+ dragDistance.current = distance;
6861
+ setDragY(distance);
6862
+ }, []);
6863
+ const onDragEnd = useCallback(() => {
6864
+ if (dragStartY.current === null) return;
6865
+ dragStartY.current = null;
6866
+ const dismissed = dragDistance.current > DISMISS_THRESHOLD_PX;
6867
+ dragDistance.current = 0;
6868
+ setDragY(0);
6869
+ if (dismissed) onClose();
6870
+ }, [onClose]);
6871
+ useModalDialog(open, onClose, sheetRef);
6658
6872
  if (!open) return null;
6659
- return /* @__PURE__ */ jsxs("div", { className: styles$n.overlay, children: [
6660
- /* @__PURE__ */ jsx("div", { className: styles$n.scrim, onClick: onClose, "aria-hidden": "true" }),
6873
+ return /* @__PURE__ */ jsxs("div", { className: styles$o.overlay, children: [
6874
+ /* @__PURE__ */ jsx("div", { className: styles$o.scrim, onClick: onClose, "aria-hidden": "true" }),
6661
6875
  /* @__PURE__ */ jsxs(
6662
6876
  ShopSurface,
6663
6877
  {
6664
6878
  tone: "light",
6665
- className: styles$n.sheet,
6879
+ className: styles$o.sheet,
6666
6880
  role: "dialog",
6667
6881
  "aria-modal": "true",
6668
6882
  "aria-labelledby": titleId,
@@ -6672,7 +6886,7 @@ function BottomSheet({ open, onClose, title: title2, children, footer: footer2 }
6672
6886
  /* @__PURE__ */ jsx(
6673
6887
  "div",
6674
6888
  {
6675
- className: styles$n.grabArea,
6889
+ className: styles$o.grabArea,
6676
6890
  onPointerDown: (e) => {
6677
6891
  e.currentTarget.setPointerCapture(e.pointerId);
6678
6892
  onDragStart(e.clientY);
@@ -6680,12 +6894,12 @@ function BottomSheet({ open, onClose, title: title2, children, footer: footer2 }
6680
6894
  onPointerMove: (e) => onDragMove(e.clientY),
6681
6895
  onPointerUp: onDragEnd,
6682
6896
  onPointerCancel: onDragEnd,
6683
- children: /* @__PURE__ */ jsx("div", { className: styles$n.grabber, "aria-hidden": "true" })
6897
+ children: /* @__PURE__ */ jsx("div", { className: styles$o.grabber, "aria-hidden": "true" })
6684
6898
  }
6685
6899
  ),
6686
- /* @__PURE__ */ jsxs("div", { className: styles$n.header, children: [
6687
- /* @__PURE__ */ jsx("h2", { id: titleId, className: styles$n.title, children: title2 }),
6688
- /* @__PURE__ */ jsx("button", { type: "button", className: styles$n.close, onClick: onClose, "aria-label": "Close", children: /* @__PURE__ */ jsx("svg", { width: "20", height: "20", viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ jsx(
6900
+ /* @__PURE__ */ jsxs("div", { className: styles$o.header, children: [
6901
+ /* @__PURE__ */ jsx("h2", { id: titleId, className: styles$o.title, children: title2 }),
6902
+ /* @__PURE__ */ jsx("button", { type: "button", className: styles$o.close, onClick: onClose, "aria-label": "Close", children: /* @__PURE__ */ jsx("svg", { width: "20", height: "20", viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ jsx(
6689
6903
  "path",
6690
6904
  {
6691
6905
  d: "M6 6l12 12M18 6L6 18",
@@ -6695,8 +6909,8 @@ function BottomSheet({ open, onClose, title: title2, children, footer: footer2 }
6695
6909
  }
6696
6910
  ) }) })
6697
6911
  ] }),
6698
- /* @__PURE__ */ jsx("div", { className: styles$n.body, children }),
6699
- footer2 && /* @__PURE__ */ jsx("div", { className: styles$n.footer, children: footer2 })
6912
+ /* @__PURE__ */ jsx("div", { className: styles$o.body, children }),
6913
+ footer2 && /* @__PURE__ */ jsx("div", { className: styles$o.footer, children: footer2 })
6700
6914
  ]
6701
6915
  }
6702
6916
  )
@@ -6707,7 +6921,7 @@ const stepper = "_stepper_1rmip_10";
6707
6921
  const cap = "_cap_1rmip_23";
6708
6922
  const button = "_button_1rmip_31";
6709
6923
  const value$1 = "_value_1rmip_50";
6710
- const styles$m = {
6924
+ const styles$n = {
6711
6925
  wrap: wrap$1,
6712
6926
  stepper,
6713
6927
  cap,
@@ -6765,25 +6979,25 @@ function QtyStepper({ qty, max, onChange, onRemove, disabled: disabled2 }) {
6765
6979
  function increment() {
6766
6980
  if (!atMax) onChange(qty + 1);
6767
6981
  }
6768
- return /* @__PURE__ */ jsxs("div", { className: styles$m.wrap, children: [
6769
- /* @__PURE__ */ jsxs("div", { className: styles$m.stepper, children: [
6982
+ return /* @__PURE__ */ jsxs("div", { className: styles$n.wrap, children: [
6983
+ /* @__PURE__ */ jsxs("div", { className: styles$n.stepper, children: [
6770
6984
  /* @__PURE__ */ jsx(
6771
6985
  "button",
6772
6986
  {
6773
6987
  type: "button",
6774
- className: styles$m.button,
6988
+ className: styles$n.button,
6775
6989
  onClick: decrement,
6776
6990
  disabled: disabled2,
6777
6991
  "aria-label": willDelete ? "Remove item" : "Decrease quantity",
6778
6992
  children: willDelete ? /* @__PURE__ */ jsx(TrashIcon, {}) : /* @__PURE__ */ jsx(MinusIcon, {})
6779
6993
  }
6780
6994
  ),
6781
- /* @__PURE__ */ jsx("span", { className: styles$m.value, "aria-live": "polite", "aria-label": `Quantity ${qty}`, children: qty }),
6995
+ /* @__PURE__ */ jsx("span", { className: styles$n.value, "aria-live": "polite", "aria-label": `Quantity ${qty}`, children: qty }),
6782
6996
  /* @__PURE__ */ jsx(
6783
6997
  "button",
6784
6998
  {
6785
6999
  type: "button",
6786
- className: styles$m.button,
7000
+ className: styles$n.button,
6787
7001
  onClick: increment,
6788
7002
  disabled: disabled2 || atMax,
6789
7003
  "aria-label": "Increase quantity",
@@ -6792,10 +7006,10 @@ function QtyStepper({ qty, max, onChange, onRemove, disabled: disabled2 }) {
6792
7006
  }
6793
7007
  )
6794
7008
  ] }),
6795
- atMax && /* @__PURE__ */ jsx("span", { id: capId, className: styles$m.cap, role: "status", children: max === 0 ? "Out of stock" : `Only ${max} left` })
7009
+ atMax && /* @__PURE__ */ jsx("span", { id: capId, className: styles$n.cap, role: "status", children: max === 0 ? "Out of stock" : `Only ${max} left` })
6796
7010
  ] });
6797
7011
  }
6798
- const row$4 = "_row_1xbbn_1";
7012
+ const row$5 = "_row_1xbbn_1";
6799
7013
  const pending = "_pending_1xbbn_7";
6800
7014
  const media$1 = "_media_1xbbn_11";
6801
7015
  const image$5 = "_image_1xbbn_21";
@@ -6805,14 +7019,14 @@ const oos$1 = "_oos_1xbbn_45";
6805
7019
  const info$1 = "_info_1xbbn_58";
6806
7020
  const head = "_head_1xbbn_66";
6807
7021
  const meta = "_meta_1xbbn_73";
6808
- const title$9 = "_title_1xbbn_80";
7022
+ const title$a = "_title_1xbbn_80";
6809
7023
  const details = "_details_1xbbn_92";
6810
7024
  const detail = "_detail_1xbbn_92";
6811
7025
  const price = "_price_1xbbn_106";
6812
7026
  const amount = "_amount_1xbbn_114";
6813
7027
  const was = "_was_1xbbn_120";
6814
- const styles$l = {
6815
- row: row$4,
7028
+ const styles$m = {
7029
+ row: row$5,
6816
7030
  pending,
6817
7031
  media: media$1,
6818
7032
  image: image$5,
@@ -6822,7 +7036,7 @@ const styles$l = {
6822
7036
  info: info$1,
6823
7037
  head,
6824
7038
  meta,
6825
- title: title$9,
7039
+ title: title$a,
6826
7040
  details,
6827
7041
  detail,
6828
7042
  price,
@@ -6845,24 +7059,24 @@ function CartLineItem({
6845
7059
  const displayImage = image2 ?? item2.image;
6846
7060
  const pairs = variantPairs(item2.attributes);
6847
7061
  const soldOut = item2.available === 0;
6848
- return /* @__PURE__ */ jsxs("div", { className: [styles$l.row, pending2 ? styles$l.pending : ""].join(" "), children: [
6849
- /* @__PURE__ */ jsxs("div", { className: styles$l.media, children: [
6850
- displayImage ? /* @__PURE__ */ jsx(ShopImage, { src: displayImage, alt: "", fill: true, sizes: "100px", className: styles$l.image }) : /* @__PURE__ */ jsx("div", { className: styles$l.placeholder, "aria-hidden": "true" }),
6851
- soldOut ? /* @__PURE__ */ jsx("span", { className: styles$l.oos, children: "Out of stock" }) : discountPct2 !== void 0 && /* @__PURE__ */ jsx("span", { className: styles$l.saleBadge, children: /* @__PURE__ */ jsx(SaleBadge, { pct: discountPct2 }) })
7062
+ return /* @__PURE__ */ jsxs("div", { className: [styles$m.row, pending2 ? styles$m.pending : ""].join(" "), children: [
7063
+ /* @__PURE__ */ jsxs("div", { className: styles$m.media, children: [
7064
+ displayImage ? /* @__PURE__ */ jsx(ShopImage, { src: displayImage, alt: "", fill: true, sizes: "100px", className: styles$m.image }) : /* @__PURE__ */ jsx("div", { className: styles$m.placeholder, "aria-hidden": "true" }),
7065
+ soldOut ? /* @__PURE__ */ jsx("span", { className: styles$m.oos, children: "Out of stock" }) : discountPct2 !== void 0 && /* @__PURE__ */ jsx("span", { className: styles$m.saleBadge, children: /* @__PURE__ */ jsx(SaleBadge, { pct: discountPct2 }) })
6852
7066
  ] }),
6853
- /* @__PURE__ */ jsxs("div", { className: styles$l.info, children: [
6854
- /* @__PURE__ */ jsxs("div", { className: styles$l.head, children: [
6855
- /* @__PURE__ */ jsxs("div", { className: styles$l.meta, children: [
6856
- /* @__PURE__ */ jsx("span", { className: styles$l.title, children: displayTitle }),
6857
- pairs.length > 0 && /* @__PURE__ */ jsx("div", { className: styles$l.details, children: pairs.map(({ key, label: label2, value: value2 }) => /* @__PURE__ */ jsxs("span", { className: styles$l.detail, children: [
7067
+ /* @__PURE__ */ jsxs("div", { className: styles$m.info, children: [
7068
+ /* @__PURE__ */ jsxs("div", { className: styles$m.head, children: [
7069
+ /* @__PURE__ */ jsxs("div", { className: styles$m.meta, children: [
7070
+ /* @__PURE__ */ jsx("span", { className: styles$m.title, children: displayTitle }),
7071
+ pairs.length > 0 && /* @__PURE__ */ jsx("div", { className: styles$m.details, children: pairs.map(({ key, label: label2, value: value2 }) => /* @__PURE__ */ jsxs("span", { className: styles$m.detail, children: [
6858
7072
  label2,
6859
7073
  ": ",
6860
7074
  value2
6861
7075
  ] }, key)) })
6862
7076
  ] }),
6863
- /* @__PURE__ */ jsxs("div", { className: styles$l.price, children: [
6864
- /* @__PURE__ */ jsx("span", { className: styles$l.amount, children: format(item2.line_total) }),
6865
- compareAt2 && /* @__PURE__ */ jsx("span", { className: styles$l.was, children: format(compareAt2) })
7077
+ /* @__PURE__ */ jsxs("div", { className: styles$m.price, children: [
7078
+ /* @__PURE__ */ jsx("span", { className: styles$m.amount, children: format(item2.line_total) }),
7079
+ compareAt2 && /* @__PURE__ */ jsx("span", { className: styles$m.was, children: format(compareAt2) })
6866
7080
  ] })
6867
7081
  ] }),
6868
7082
  /* @__PURE__ */ jsx(
@@ -6879,21 +7093,21 @@ function CartLineItem({
6879
7093
  ] });
6880
7094
  }
6881
7095
  const box$1 = "_box_1cf1a_1";
6882
- const row$3 = "_row_1cf1a_10";
6883
- const icon$1 = "_icon_1cf1a_16";
7096
+ const row$4 = "_row_1cf1a_10";
7097
+ const icon$2 = "_icon_1cf1a_16";
6884
7098
  const label = "_label_1cf1a_22";
6885
7099
  const divider$1 = "_divider_1cf1a_29";
6886
- const styles$k = {
7100
+ const styles$l = {
6887
7101
  box: box$1,
6888
- row: row$3,
6889
- icon: icon$1,
7102
+ row: row$4,
7103
+ icon: icon$2,
6890
7104
  label,
6891
7105
  divider: divider$1
6892
7106
  };
6893
7107
  function ShippingInfo() {
6894
- return /* @__PURE__ */ jsxs("section", { className: styles$k.box, "aria-label": "Shipping and returns", children: [
6895
- /* @__PURE__ */ jsxs("div", { className: styles$k.row, children: [
6896
- /* @__PURE__ */ jsxs("svg", { className: styles$k.icon, width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true", children: [
7108
+ return /* @__PURE__ */ jsxs("section", { className: styles$l.box, "aria-label": "Shipping and returns", children: [
7109
+ /* @__PURE__ */ jsxs("div", { className: styles$l.row, children: [
7110
+ /* @__PURE__ */ jsxs("svg", { className: styles$l.icon, width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true", children: [
6897
7111
  /* @__PURE__ */ jsx(
6898
7112
  "path",
6899
7113
  {
@@ -6906,11 +7120,11 @@ function ShippingInfo() {
6906
7120
  /* @__PURE__ */ jsx("circle", { cx: "7", cy: "17", r: "1.6", stroke: "currentColor", strokeWidth: "1.5" }),
6907
7121
  /* @__PURE__ */ jsx("circle", { cx: "17.5", cy: "17", r: "1.6", stroke: "currentColor", strokeWidth: "1.5" })
6908
7122
  ] }),
6909
- /* @__PURE__ */ jsx("p", { className: styles$k.label, children: "Standard or express delivery" })
7123
+ /* @__PURE__ */ jsx("p", { className: styles$l.label, children: "Standard or express delivery" })
6910
7124
  ] }),
6911
- /* @__PURE__ */ jsx("div", { className: styles$k.divider, role: "presentation" }),
6912
- /* @__PURE__ */ jsxs("div", { className: styles$k.row, children: [
6913
- /* @__PURE__ */ jsxs("svg", { className: styles$k.icon, width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true", children: [
7125
+ /* @__PURE__ */ jsx("div", { className: styles$l.divider, role: "presentation" }),
7126
+ /* @__PURE__ */ jsxs("div", { className: styles$l.row, children: [
7127
+ /* @__PURE__ */ jsxs("svg", { className: styles$l.icon, width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true", children: [
6914
7128
  /* @__PURE__ */ jsx(
6915
7129
  "path",
6916
7130
  {
@@ -6932,7 +7146,7 @@ function ShippingInfo() {
6932
7146
  }
6933
7147
  )
6934
7148
  ] }),
6935
- /* @__PURE__ */ jsx("p", { className: styles$k.label, children: "30 days returns" })
7149
+ /* @__PURE__ */ jsx("p", { className: styles$l.label, children: "30 days returns" })
6936
7150
  ] })
6937
7151
  ] });
6938
7152
  }
@@ -6941,7 +7155,7 @@ const floating$1 = "_floating_1aly7_16";
6941
7155
  const divider = "_divider_1aly7_22";
6942
7156
  const info = "_info_1aly7_26";
6943
7157
  const actions = "_actions_1aly7_33";
6944
- const styles$j = {
7158
+ const styles$k = {
6945
7159
  bar,
6946
7160
  floating: floating$1,
6947
7161
  divider,
@@ -6949,9 +7163,9 @@ const styles$j = {
6949
7163
  actions
6950
7164
  };
6951
7165
  function StickyCtaBar({ children, info: info2, variant = "floating" }) {
6952
- return /* @__PURE__ */ jsxs("div", { className: [styles$j.bar, styles$j[variant]].join(" "), children: [
6953
- info2 && /* @__PURE__ */ jsx("div", { className: styles$j.info, children: info2 }),
6954
- /* @__PURE__ */ jsx("div", { className: styles$j.actions, children })
7166
+ return /* @__PURE__ */ jsxs("div", { className: [styles$k.bar, styles$k[variant]].join(" "), children: [
7167
+ info2 && /* @__PURE__ */ jsx("div", { className: styles$k.info, children: info2 }),
7168
+ /* @__PURE__ */ jsx("div", { className: styles$k.actions, children })
6955
7169
  ] });
6956
7170
  }
6957
7171
  const surface = "_surface_1wfue_15";
@@ -6962,7 +7176,7 @@ const sectionHeader = "_sectionHeader_1wfue_40";
6962
7176
  const sectionTitle = "_sectionTitle_1wfue_46";
6963
7177
  const count = "_count_1wfue_53";
6964
7178
  const lines = "_lines_1wfue_73";
6965
- const styles$i = {
7179
+ const styles$j = {
6966
7180
  surface,
6967
7181
  screen,
6968
7182
  body: body$2,
@@ -6973,7 +7187,7 @@ const styles$i = {
6973
7187
  lines
6974
7188
  };
6975
7189
  function CartView(props = {}) {
6976
- return /* @__PURE__ */ jsx(ShopSurface, { tone: "light", fill: true, className: styles$i.surface, children: /* @__PURE__ */ jsx(CartViewContent, { ...props }) });
7190
+ return /* @__PURE__ */ jsx(ShopSurface, { tone: "light", fill: true, className: styles$j.surface, children: /* @__PURE__ */ jsx(CartViewContent, { ...props }) });
6977
7191
  }
6978
7192
  function CartViewContent({
6979
7193
  onContinueShopping,
@@ -7112,14 +7326,14 @@ function CartViewContent({
7112
7326
  }
7113
7327
  const locked = cart2.locked !== void 0;
7114
7328
  const itemCount = cart2.items.reduce((n, i) => n + i.qty, 0);
7115
- return /* @__PURE__ */ jsxs("div", { className: styles$i.screen, children: [
7116
- /* @__PURE__ */ jsxs("div", { className: styles$i.body, children: [
7117
- /* @__PURE__ */ jsxs("section", { className: styles$i.items, children: [
7118
- /* @__PURE__ */ jsxs("div", { className: styles$i.sectionHeader, children: [
7119
- /* @__PURE__ */ jsx("h2", { className: styles$i.sectionTitle, children: "Items" }),
7120
- /* @__PURE__ */ jsx("span", { className: styles$i.count, children: itemCount })
7329
+ return /* @__PURE__ */ jsxs("div", { className: styles$j.screen, children: [
7330
+ /* @__PURE__ */ jsxs("div", { className: styles$j.body, children: [
7331
+ /* @__PURE__ */ jsxs("section", { className: styles$j.items, children: [
7332
+ /* @__PURE__ */ jsxs("div", { className: styles$j.sectionHeader, children: [
7333
+ /* @__PURE__ */ jsx("h2", { className: styles$j.sectionTitle, children: "Items" }),
7334
+ /* @__PURE__ */ jsx("span", { className: styles$j.count, children: itemCount })
7121
7335
  ] }),
7122
- /* @__PURE__ */ jsx("ul", { className: styles$i.lines, children: cart2.items.map((item2) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
7336
+ /* @__PURE__ */ jsx("ul", { className: styles$j.lines, children: cart2.items.map((item2) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
7123
7337
  CartLineItem,
7124
7338
  {
7125
7339
  item: item2,
@@ -7167,7 +7381,7 @@ const share = "_share_h8m00_37";
7167
7381
  const dots$2 = "_dots_h8m00_54";
7168
7382
  const dot$2 = "_dot_h8m00_54";
7169
7383
  const dotActive$2 = "_dotActive_h8m00_78";
7170
- const styles$h = {
7384
+ const styles$i = {
7171
7385
  gallery,
7172
7386
  track: track$2,
7173
7387
  slide: slide$1,
@@ -7205,7 +7419,7 @@ function MediaGallery({ media: media2, alt }) {
7205
7419
  setActive(index);
7206
7420
  }
7207
7421
  if (media2.length === 0) {
7208
- return /* @__PURE__ */ jsx("div", { className: styles$h.placeholder, "aria-hidden": "true" });
7422
+ return /* @__PURE__ */ jsx("div", { className: styles$i.placeholder, "aria-hidden": "true" });
7209
7423
  }
7210
7424
  function share2() {
7211
7425
  if (typeof navigator !== "undefined" && navigator.share) {
@@ -7213,8 +7427,8 @@ function MediaGallery({ media: media2, alt }) {
7213
7427
  });
7214
7428
  }
7215
7429
  }
7216
- return /* @__PURE__ */ jsxs("div", { className: styles$h.gallery, children: [
7217
- /* @__PURE__ */ jsx("button", { type: "button", className: styles$h.share, onClick: share2, "aria-label": "Share", children: /* @__PURE__ */ jsx("svg", { width: "20", height: "20", viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ jsx(
7430
+ return /* @__PURE__ */ jsxs("div", { className: styles$i.gallery, children: [
7431
+ /* @__PURE__ */ jsx("button", { type: "button", className: styles$i.share, onClick: share2, "aria-label": "Share", children: /* @__PURE__ */ jsx("svg", { width: "20", height: "20", viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ jsx(
7218
7432
  "path",
7219
7433
  {
7220
7434
  d: "M12 3v12M12 3 8 7m4-4 4 4M5 12v6a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2v-6",
@@ -7224,47 +7438,47 @@ function MediaGallery({ media: media2, alt }) {
7224
7438
  strokeLinejoin: "round"
7225
7439
  }
7226
7440
  ) }) }),
7227
- /* @__PURE__ */ jsx("div", { className: styles$h.track, ref: trackRef, role: "group", "aria-label": `${alt} images`, children: media2.map((src, i) => /* @__PURE__ */ jsx("div", { className: styles$h.slide, children: /* @__PURE__ */ jsx(
7441
+ /* @__PURE__ */ jsx("div", { className: styles$i.track, ref: trackRef, role: "group", "aria-label": `${alt} images`, children: media2.map((src, i) => /* @__PURE__ */ jsx("div", { className: styles$i.slide, children: /* @__PURE__ */ jsx(
7228
7442
  ShopImage,
7229
7443
  {
7230
7444
  src,
7231
7445
  alt: `${alt} — image ${i + 1} of ${media2.length}`,
7232
7446
  fill: true,
7233
7447
  sizes: "(max-width: 480px) 100vw, 480px",
7234
- className: styles$h.image,
7448
+ className: styles$i.image,
7235
7449
  priority: i === 0
7236
7450
  }
7237
7451
  ) }, src)) }),
7238
- media2.length > 1 && /* @__PURE__ */ jsx("div", { className: styles$h.dots, role: "tablist", "aria-label": "Gallery pagination", children: media2.map((src, i) => /* @__PURE__ */ jsx(
7452
+ media2.length > 1 && /* @__PURE__ */ jsx("div", { className: styles$i.dots, role: "tablist", "aria-label": "Gallery pagination", children: media2.map((src, i) => /* @__PURE__ */ jsx(
7239
7453
  "button",
7240
7454
  {
7241
7455
  type: "button",
7242
7456
  role: "tab",
7243
7457
  "aria-selected": i === active,
7244
7458
  "aria-label": `Go to image ${i + 1}`,
7245
- className: [styles$h.dot, i === active ? styles$h.dotActive : ""].join(" "),
7459
+ className: [styles$i.dot, i === active ? styles$i.dotActive : ""].join(" "),
7246
7460
  onClick: () => goTo(i)
7247
7461
  },
7248
7462
  src
7249
7463
  )) })
7250
7464
  ] });
7251
7465
  }
7252
- const scrim$2 = "_scrim_8wz6r_6";
7253
- const sheet = "_sheet_8wz6r_17";
7466
+ const scrim$3 = "_scrim_8wz6r_6";
7467
+ const sheet$1 = "_sheet_8wz6r_17";
7254
7468
  const grabber = "_grabber_8wz6r_29";
7255
- const header$3 = "_header_8wz6r_37";
7256
- const title$8 = "_title_8wz6r_45";
7257
- const close = "_close_8wz6r_51";
7469
+ const header$4 = "_header_8wz6r_37";
7470
+ const title$9 = "_title_8wz6r_45";
7471
+ const close$1 = "_close_8wz6r_51";
7258
7472
  const tableWrap = "_tableWrap_8wz6r_71";
7259
7473
  const table = "_table_8wz6r_71";
7260
7474
  const notes = "_notes_8wz6r_95";
7261
- const styles$g = {
7262
- scrim: scrim$2,
7263
- sheet,
7475
+ const styles$h = {
7476
+ scrim: scrim$3,
7477
+ sheet: sheet$1,
7264
7478
  grabber,
7265
- header: header$3,
7266
- title: title$8,
7267
- close,
7479
+ header: header$4,
7480
+ title: title$9,
7481
+ close: close$1,
7268
7482
  tableWrap,
7269
7483
  table,
7270
7484
  notes
@@ -7283,24 +7497,24 @@ function SizeGuideSheet({ guide, onClose }) {
7283
7497
  const rows = guide.rows ?? [];
7284
7498
  const notes2 = guide.notes ?? [];
7285
7499
  const hasTable = columns.length > 0 && rows.length > 0;
7286
- return /* @__PURE__ */ jsx("div", { className: styles$g.scrim, onClick: onClose, children: /* @__PURE__ */ jsxs(
7500
+ return /* @__PURE__ */ jsx("div", { className: styles$h.scrim, onClick: onClose, children: /* @__PURE__ */ jsxs(
7287
7501
  "div",
7288
7502
  {
7289
- className: styles$g.sheet,
7503
+ className: styles$h.sheet,
7290
7504
  role: "dialog",
7291
7505
  "aria-modal": "true",
7292
7506
  "aria-labelledby": "size-guide-title",
7293
7507
  onClick: (e) => e.stopPropagation(),
7294
7508
  children: [
7295
- /* @__PURE__ */ jsx("div", { className: styles$g.grabber, "aria-hidden": "true" }),
7296
- /* @__PURE__ */ jsxs("div", { className: styles$g.header, children: [
7297
- /* @__PURE__ */ jsx("h2", { id: "size-guide-title", className: styles$g.title, children: guide.title }),
7509
+ /* @__PURE__ */ jsx("div", { className: styles$h.grabber, "aria-hidden": "true" }),
7510
+ /* @__PURE__ */ jsxs("div", { className: styles$h.header, children: [
7511
+ /* @__PURE__ */ jsx("h2", { id: "size-guide-title", className: styles$h.title, children: guide.title }),
7298
7512
  /* @__PURE__ */ jsx(
7299
7513
  "button",
7300
7514
  {
7301
7515
  ref: closeRef,
7302
7516
  type: "button",
7303
- className: styles$g.close,
7517
+ className: styles$h.close,
7304
7518
  onClick: onClose,
7305
7519
  "aria-label": "Close size guide",
7306
7520
  children: /* @__PURE__ */ jsx("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ jsx(
@@ -7315,38 +7529,38 @@ function SizeGuideSheet({ guide, onClose }) {
7315
7529
  }
7316
7530
  )
7317
7531
  ] }),
7318
- hasTable && /* @__PURE__ */ jsx("div", { className: styles$g.tableWrap, children: /* @__PURE__ */ jsxs("table", { className: styles$g.table, children: [
7532
+ hasTable && /* @__PURE__ */ jsx("div", { className: styles$h.tableWrap, children: /* @__PURE__ */ jsxs("table", { className: styles$h.table, children: [
7319
7533
  /* @__PURE__ */ jsx("thead", { children: /* @__PURE__ */ jsx("tr", { children: columns.map((c) => /* @__PURE__ */ jsx("th", { scope: "col", children: c }, c)) }) }),
7320
7534
  /* @__PURE__ */ jsx("tbody", { children: rows.map((row2) => /* @__PURE__ */ jsx("tr", { children: row2.map(
7321
7535
  (cell, i) => i === 0 ? /* @__PURE__ */ jsx("th", { scope: "row", children: cell }, cell) : /* @__PURE__ */ jsx("td", { children: cell }, `${cell}-${i}`)
7322
7536
  ) }, row2.join("|"))) })
7323
7537
  ] }) }),
7324
- notes2.length > 0 && /* @__PURE__ */ jsx("ul", { className: styles$g.notes, children: notes2.map((n) => /* @__PURE__ */ jsx("li", { children: n }, n)) })
7538
+ notes2.length > 0 && /* @__PURE__ */ jsx("ul", { className: styles$h.notes, children: notes2.map((n) => /* @__PURE__ */ jsx("li", { children: n }, n)) })
7325
7539
  ]
7326
7540
  }
7327
7541
  ) });
7328
7542
  }
7329
7543
  const root$2 = "_root_9zj90_1";
7330
- const header$2 = "_header_9zj90_7";
7331
- const title$7 = "_title_9zj90_12";
7544
+ const header$3 = "_header_9zj90_7";
7545
+ const title$8 = "_title_9zj90_12";
7332
7546
  const chips = "_chips_9zj90_20";
7333
7547
  const chip = "_chip_9zj90_20";
7334
7548
  const selected$2 = "_selected_9zj90_44";
7335
7549
  const disabled$1 = "_disabled_9zj90_56";
7336
7550
  const error = "_error_9zj90_64";
7337
7551
  const sizeGuide = "_sizeGuide_9zj90_71";
7338
- const chevron$1 = "_chevron_9zj90_85";
7339
- const styles$f = {
7552
+ const chevron$2 = "_chevron_9zj90_85";
7553
+ const styles$g = {
7340
7554
  root: root$2,
7341
- header: header$2,
7342
- title: title$7,
7555
+ header: header$3,
7556
+ title: title$8,
7343
7557
  chips,
7344
7558
  chip,
7345
7559
  selected: selected$2,
7346
7560
  disabled: disabled$1,
7347
7561
  error,
7348
7562
  sizeGuide,
7349
- chevron: chevron$1
7563
+ chevron: chevron$2
7350
7564
  };
7351
7565
  function SizeSelector({
7352
7566
  sizes,
@@ -7356,9 +7570,9 @@ function SizeSelector({
7356
7570
  guide
7357
7571
  }) {
7358
7572
  const [guideOpen, setGuideOpen] = useState(false);
7359
- return /* @__PURE__ */ jsxs("section", { className: styles$f.root, "aria-labelledby": "size-heading", children: [
7360
- /* @__PURE__ */ jsx("div", { className: styles$f.header, children: /* @__PURE__ */ jsx("h2", { id: "size-heading", className: styles$f.title, children: "Size" }) }),
7361
- /* @__PURE__ */ jsx("div", { className: styles$f.chips, role: "radiogroup", "aria-label": "Size", "aria-required": "true", children: sizes.map((size) => {
7573
+ return /* @__PURE__ */ jsxs("section", { className: styles$g.root, "aria-labelledby": "size-heading", children: [
7574
+ /* @__PURE__ */ jsx("div", { className: styles$g.header, children: /* @__PURE__ */ jsx("h2", { id: "size-heading", className: styles$g.title, children: "Size" }) }),
7575
+ /* @__PURE__ */ jsx("div", { className: styles$g.chips, role: "radiogroup", "aria-label": "Size", "aria-required": "true", children: sizes.map((size) => {
7362
7576
  const isSelected = size.value === selected2;
7363
7577
  const disabled2 = !size.available;
7364
7578
  return /* @__PURE__ */ jsxs(
@@ -7369,7 +7583,7 @@ function SizeSelector({
7369
7583
  "aria-checked": isSelected,
7370
7584
  "aria-disabled": disabled2 || void 0,
7371
7585
  disabled: disabled2,
7372
- className: [styles$f.chip, isSelected ? styles$f.selected : "", disabled2 ? styles$f.disabled : ""].filter(Boolean).join(" "),
7586
+ className: [styles$g.chip, isSelected ? styles$g.selected : "", disabled2 ? styles$g.disabled : ""].filter(Boolean).join(" "),
7373
7587
  onClick: () => !disabled2 && onSelect(size.value),
7374
7588
  children: [
7375
7589
  size.value,
@@ -7379,12 +7593,12 @@ function SizeSelector({
7379
7593
  size.value
7380
7594
  );
7381
7595
  }) }),
7382
- error2 && /* @__PURE__ */ jsx("p", { className: styles$f.error, role: "alert", children: "Please select a size" }),
7596
+ error2 && /* @__PURE__ */ jsx("p", { className: styles$g.error, role: "alert", children: "Please select a size" }),
7383
7597
  guide && /* @__PURE__ */ jsxs(
7384
7598
  "button",
7385
7599
  {
7386
7600
  type: "button",
7387
- className: styles$f.sizeGuide,
7601
+ className: styles$g.sizeGuide,
7388
7602
  onClick: () => setGuideOpen(true),
7389
7603
  "aria-haspopup": "dialog",
7390
7604
  "aria-expanded": guideOpen,
@@ -7393,7 +7607,7 @@ function SizeSelector({
7393
7607
  /* @__PURE__ */ jsx(
7394
7608
  "svg",
7395
7609
  {
7396
- className: styles$f.chevron,
7610
+ className: styles$g.chevron,
7397
7611
  width: "12",
7398
7612
  height: "12",
7399
7613
  viewBox: "0 0 12 12",
@@ -7418,8 +7632,8 @@ function SizeSelector({
7418
7632
  ] });
7419
7633
  }
7420
7634
  const root$1 = "_root_1j4n8_1";
7421
- const header$1 = "_header_1j4n8_7";
7422
- const title$6 = "_title_1j4n8_14";
7635
+ const header$2 = "_header_1j4n8_7";
7636
+ const title$7 = "_title_1j4n8_14";
7423
7637
  const value = "_value_1j4n8_19";
7424
7638
  const tiles = "_tiles_1j4n8_24";
7425
7639
  const tile = "_tile_1j4n8_24";
@@ -7427,12 +7641,12 @@ const selected$1 = "_selected_1j4n8_48";
7427
7641
  const media = "_media_1j4n8_32";
7428
7642
  const image$3 = "_image_1j4n8_60";
7429
7643
  const placeholder = "_placeholder_1j4n8_64";
7430
- const scrim$1 = "_scrim_1j4n8_72";
7644
+ const scrim$2 = "_scrim_1j4n8_72";
7431
7645
  const stockBadge = "_stockBadge_1j4n8_91";
7432
- const styles$e = {
7646
+ const styles$f = {
7433
7647
  root: root$1,
7434
- header: header$1,
7435
- title: title$6,
7648
+ header: header$2,
7649
+ title: title$7,
7436
7650
  value,
7437
7651
  tiles,
7438
7652
  tile,
@@ -7440,17 +7654,17 @@ const styles$e = {
7440
7654
  media,
7441
7655
  image: image$3,
7442
7656
  placeholder,
7443
- scrim: scrim$1,
7657
+ scrim: scrim$2,
7444
7658
  stockBadge
7445
7659
  };
7446
7660
  function ColorSelector({ colours, selected: selected2, onSelect }) {
7447
- return /* @__PURE__ */ jsxs("section", { className: styles$e.root, "aria-labelledby": "colour-heading", children: [
7448
- /* @__PURE__ */ jsxs("p", { className: styles$e.header, children: [
7449
- /* @__PURE__ */ jsx("span", { id: "colour-heading", className: styles$e.title, children: "Color:" }),
7661
+ return /* @__PURE__ */ jsxs("section", { className: styles$f.root, "aria-labelledby": "colour-heading", children: [
7662
+ /* @__PURE__ */ jsxs("p", { className: styles$f.header, children: [
7663
+ /* @__PURE__ */ jsx("span", { id: "colour-heading", className: styles$f.title, children: "Color:" }),
7450
7664
  " ",
7451
- /* @__PURE__ */ jsx("span", { className: styles$e.value, children: selected2 ?? "Select" })
7665
+ /* @__PURE__ */ jsx("span", { className: styles$f.value, children: selected2 ?? "Select" })
7452
7666
  ] }),
7453
- /* @__PURE__ */ jsx("div", { className: styles$e.tiles, role: "radiogroup", "aria-label": "Color", "aria-required": "true", children: colours.map((c) => {
7667
+ /* @__PURE__ */ jsx("div", { className: styles$f.tiles, role: "radiogroup", "aria-label": "Color", "aria-required": "true", children: colours.map((c) => {
7454
7668
  const isSelected = c.value === selected2;
7455
7669
  const soldOut = !c.available;
7456
7670
  const lowStock = !soldOut && c.remaining !== void 0 && c.remaining > 0 && c.remaining <= 5;
@@ -7461,14 +7675,14 @@ function ColorSelector({ colours, selected: selected2, onSelect }) {
7461
7675
  role: "radio",
7462
7676
  "aria-checked": isSelected,
7463
7677
  "aria-label": `${c.value}${soldOut ? " (out of stock)" : ""}`,
7464
- className: [styles$e.tile, isSelected ? styles$e.selected : ""].filter(Boolean).join(" "),
7678
+ className: [styles$f.tile, isSelected ? styles$f.selected : ""].filter(Boolean).join(" "),
7465
7679
  onClick: () => onSelect(c.value),
7466
7680
  children: [
7467
- /* @__PURE__ */ jsxs("span", { className: styles$e.media, children: [
7468
- c.image ? /* @__PURE__ */ jsx(ShopImage, { src: c.image, alt: "", fill: true, sizes: "79px", className: styles$e.image }) : /* @__PURE__ */ jsx("span", { className: styles$e.placeholder, "aria-hidden": "true" }),
7469
- soldOut && /* @__PURE__ */ jsx("span", { className: styles$e.scrim, "aria-hidden": "true", children: "Out of stock" })
7681
+ /* @__PURE__ */ jsxs("span", { className: styles$f.media, children: [
7682
+ c.image ? /* @__PURE__ */ jsx(ShopImage, { src: c.image, alt: "", fill: true, sizes: "79px", className: styles$f.image }) : /* @__PURE__ */ jsx("span", { className: styles$f.placeholder, "aria-hidden": "true" }),
7683
+ soldOut && /* @__PURE__ */ jsx("span", { className: styles$f.scrim, "aria-hidden": "true", children: "Out of stock" })
7470
7684
  ] }),
7471
- lowStock && /* @__PURE__ */ jsxs("span", { className: styles$e.stockBadge, "aria-hidden": "true", children: [
7685
+ lowStock && /* @__PURE__ */ jsxs("span", { className: styles$f.stockBadge, "aria-hidden": "true", children: [
7472
7686
  c.remaining,
7473
7687
  " left"
7474
7688
  ] })
@@ -7485,7 +7699,7 @@ const options = "_options_1mnz1_16";
7485
7699
  const option = "_option_1mnz1_16";
7486
7700
  const selected = "_selected_1mnz1_36";
7487
7701
  const disabled = "_disabled_1mnz1_42";
7488
- const styles$d = {
7702
+ const styles$e = {
7489
7703
  fieldset,
7490
7704
  legend,
7491
7705
  options,
@@ -7506,9 +7720,9 @@ function VariantSelector({
7506
7720
  const values = Object.values(variant.attributes);
7507
7721
  return values.length > 0 ? values.join(" · ") : variant.sku;
7508
7722
  }
7509
- return /* @__PURE__ */ jsxs("fieldset", { className: styles$d.fieldset, children: [
7510
- /* @__PURE__ */ jsx("legend", { className: styles$d.legend, children: "Select an option" }),
7511
- /* @__PURE__ */ jsx("div", { className: styles$d.options, role: "radiogroup", "aria-label": "Variant", children: variants.map((variant) => {
7723
+ return /* @__PURE__ */ jsxs("fieldset", { className: styles$e.fieldset, children: [
7724
+ /* @__PURE__ */ jsx("legend", { className: styles$e.legend, children: "Select an option" }),
7725
+ /* @__PURE__ */ jsx("div", { className: styles$e.options, role: "radiogroup", "aria-label": "Variant", children: variants.map((variant) => {
7512
7726
  const selected2 = variant.sku === selectedSku;
7513
7727
  const disabled2 = !variant.in_stock;
7514
7728
  return /* @__PURE__ */ jsxs(
@@ -7520,9 +7734,9 @@ function VariantSelector({
7520
7734
  "aria-disabled": disabled2 || void 0,
7521
7735
  disabled: disabled2,
7522
7736
  className: [
7523
- styles$d.option,
7524
- selected2 ? styles$d.selected : "",
7525
- disabled2 ? styles$d.disabled : ""
7737
+ styles$e.option,
7738
+ selected2 ? styles$e.selected : "",
7739
+ disabled2 ? styles$e.disabled : ""
7526
7740
  ].filter(Boolean).join(" "),
7527
7741
  onClick: () => !disabled2 && onSelect(variant.sku),
7528
7742
  children: [
@@ -7537,15 +7751,15 @@ function VariantSelector({
7537
7751
  }
7538
7752
  const root = "_root_t4qba_2";
7539
7753
  const group = "_group_t4qba_8";
7540
- const title$5 = "_title_t4qba_14";
7754
+ const title$6 = "_title_t4qba_14";
7541
7755
  const body$1 = "_body_t4qba_22";
7542
7756
  const paragraph = "_paragraph_t4qba_26";
7543
7757
  const clamped = "_clamped_t4qba_46";
7544
7758
  const toggle = "_toggle_t4qba_51";
7545
- const styles$c = {
7759
+ const styles$d = {
7546
7760
  root,
7547
7761
  group,
7548
- title: title$5,
7762
+ title: title$6,
7549
7763
  body: body$1,
7550
7764
  paragraph,
7551
7765
  clamped,
@@ -7558,16 +7772,16 @@ function ProductDetails({ description: description2 }) {
7558
7772
  const [expanded, setExpanded] = useState(false);
7559
7773
  const paragraphs = paragraphsOf(description2);
7560
7774
  if (paragraphs.length === 0) return null;
7561
- return /* @__PURE__ */ jsxs("section", { className: styles$c.root, "aria-labelledby": "details-heading", children: [
7562
- /* @__PURE__ */ jsxs("div", { className: styles$c.group, children: [
7563
- /* @__PURE__ */ jsx("h2", { id: "details-heading", className: styles$c.title, children: "Product details" }),
7564
- /* @__PURE__ */ jsx("div", { className: [styles$c.body, expanded ? "" : styles$c.clamped].join(" "), children: paragraphs.map((p) => /* @__PURE__ */ jsx("p", { className: styles$c.paragraph, children: p }, p)) })
7775
+ return /* @__PURE__ */ jsxs("section", { className: styles$d.root, "aria-labelledby": "details-heading", children: [
7776
+ /* @__PURE__ */ jsxs("div", { className: styles$d.group, children: [
7777
+ /* @__PURE__ */ jsx("h2", { id: "details-heading", className: styles$d.title, children: "Product details" }),
7778
+ /* @__PURE__ */ jsx("div", { className: [styles$d.body, expanded ? "" : styles$d.clamped].join(" "), children: paragraphs.map((p) => /* @__PURE__ */ jsx("p", { className: styles$d.paragraph, children: p }, p)) })
7565
7779
  ] }),
7566
7780
  /* @__PURE__ */ jsx(
7567
7781
  "button",
7568
7782
  {
7569
7783
  type: "button",
7570
- className: styles$c.toggle,
7784
+ className: styles$d.toggle,
7571
7785
  "aria-expanded": expanded,
7572
7786
  onClick: () => setExpanded((v) => !v),
7573
7787
  children: expanded ? "Less" : "more"
@@ -7575,25 +7789,25 @@ function ProductDetails({ description: description2 }) {
7575
7789
  )
7576
7790
  ] });
7577
7791
  }
7578
- const row$2 = "_row_l4edh_1";
7792
+ const row$3 = "_row_l4edh_1";
7579
7793
  const badge$1 = "_badge_l4edh_11";
7580
- const styles$b = {
7581
- row: row$2,
7794
+ const styles$c = {
7795
+ row: row$3,
7582
7796
  badge: badge$1
7583
7797
  };
7584
7798
  function PdpBadges({ badges }) {
7585
7799
  const flags = badges.filter((b) => b.trim().length > 0);
7586
7800
  if (flags.length === 0) return null;
7587
- return /* @__PURE__ */ jsx("ul", { className: styles$b.row, children: flags.map((flag) => /* @__PURE__ */ jsx("li", { className: styles$b.badge, children: flag }, flag)) });
7801
+ return /* @__PURE__ */ jsx("ul", { className: styles$c.row, children: flags.map((flag) => /* @__PURE__ */ jsx("li", { className: styles$c.badge, children: flag }, flag)) });
7588
7802
  }
7589
7803
  const banner = "_banner_1xvw4_2";
7590
7804
  const message = "_message_1xvw4_14";
7591
- const icon = "_icon_1xvw4_22";
7805
+ const icon$1 = "_icon_1xvw4_22";
7592
7806
  const timer = "_timer_1xvw4_27";
7593
- const styles$a = {
7807
+ const styles$b = {
7594
7808
  banner,
7595
7809
  message,
7596
- icon,
7810
+ icon: icon$1,
7597
7811
  timer
7598
7812
  };
7599
7813
  function formatRemaining(ms) {
@@ -7613,15 +7827,15 @@ function PromoBanner({ promo: promo2 }) {
7613
7827
  }, [promo2.ends_at]);
7614
7828
  const remaining = promo2.ends_at && now !== null ? new Date(promo2.ends_at).getTime() - now : null;
7615
7829
  const showTimer = remaining !== null && remaining > 0;
7616
- return /* @__PURE__ */ jsxs("div", { className: styles$a.banner, children: [
7617
- /* @__PURE__ */ jsxs("span", { className: styles$a.message, children: [
7618
- /* @__PURE__ */ jsxs("svg", { className: styles$a.icon, width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true", children: [
7830
+ return /* @__PURE__ */ jsxs("div", { className: styles$b.banner, children: [
7831
+ /* @__PURE__ */ jsxs("span", { className: styles$b.message, children: [
7832
+ /* @__PURE__ */ jsxs("svg", { className: styles$b.icon, width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true", children: [
7619
7833
  /* @__PURE__ */ jsx("rect", { x: "3", y: "8", width: "18", height: "12", rx: "1.5", stroke: "currentColor", strokeWidth: "1.6" }),
7620
7834
  /* @__PURE__ */ jsx("path", { d: "M3 12h18M12 8v12M12 8S10.5 4 8.5 4 6 6 8 6.5 12 8 12 8Zm0 0s1.5-4 3.5-4 2.5 2 .5 2.5S12 8 12 8Z", stroke: "currentColor", strokeWidth: "1.6", strokeLinejoin: "round" })
7621
7835
  ] }),
7622
7836
  promo2.message
7623
7837
  ] }),
7624
- showTimer && /* @__PURE__ */ jsxs("span", { className: styles$a.timer, children: [
7838
+ showTimer && /* @__PURE__ */ jsxs("span", { className: styles$b.timer, children: [
7625
7839
  /* @__PURE__ */ jsxs("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true", children: [
7626
7840
  /* @__PURE__ */ jsx("circle", { cx: "12", cy: "12", r: "9", stroke: "currentColor", strokeWidth: "1.6" }),
7627
7841
  /* @__PURE__ */ jsx("path", { d: "M12 7v5l3 2", stroke: "currentColor", strokeWidth: "1.6", strokeLinecap: "round", strokeLinejoin: "round" })
@@ -7635,17 +7849,17 @@ const content = "_content_1hv16_14";
7635
7849
  const intro = "_intro_1hv16_21";
7636
7850
  const productInfo = "_productInfo_1hv16_28";
7637
7851
  const titlePrice = "_titlePrice_1hv16_34";
7638
- const title$4 = "_title_1hv16_34";
7852
+ const title$5 = "_title_1hv16_34";
7639
7853
  const availability = "_availability_1hv16_55";
7640
7854
  const low = "_low_1hv16_62";
7641
7855
  const oos = "_oos_1hv16_66";
7642
- const styles$9 = {
7856
+ const styles$a = {
7643
7857
  page,
7644
7858
  content,
7645
7859
  intro,
7646
7860
  productInfo,
7647
7861
  titlePrice,
7648
- title: title$4,
7862
+ title: title$5,
7649
7863
  availability,
7650
7864
  low,
7651
7865
  oos
@@ -7788,14 +8002,14 @@ function ProductDetail({ product, inventory: inventory2, recommendations = [] })
7788
8002
  const lowStock = available > 0 && available <= 5;
7789
8003
  const stockNotice = !purchasable || lowStock;
7790
8004
  const availabilityLabel = !purchasable ? "Out of stock" : lowStock ? `Only ${available} left` : "";
7791
- return /* @__PURE__ */ jsxs(ShopSurface, { tone: "light", fill: true, className: styles$9.page, children: [
8005
+ return /* @__PURE__ */ jsxs(ShopSurface, { tone: "light", fill: true, className: styles$a.page, children: [
7792
8006
  /* @__PURE__ */ jsx(MediaGallery, { media: media2, alt: product.title }),
7793
- /* @__PURE__ */ jsxs("div", { className: styles$9.content, children: [
7794
- /* @__PURE__ */ jsxs("div", { className: styles$9.intro, children: [
8007
+ /* @__PURE__ */ jsxs("div", { className: styles$a.content, children: [
8008
+ /* @__PURE__ */ jsxs("div", { className: styles$a.intro, children: [
7795
8009
  /* @__PURE__ */ jsx(PdpBadges, { badges: product.badges ?? [] }),
7796
- /* @__PURE__ */ jsxs("div", { className: styles$9.productInfo, children: [
7797
- /* @__PURE__ */ jsxs("div", { className: styles$9.titlePrice, children: [
7798
- /* @__PURE__ */ jsx("h1", { className: styles$9.title, children: product.title }),
8010
+ /* @__PURE__ */ jsxs("div", { className: styles$a.productInfo, children: [
8011
+ /* @__PURE__ */ jsxs("div", { className: styles$a.titlePrice, children: [
8012
+ /* @__PURE__ */ jsx("h1", { className: styles$a.title, children: product.title }),
7799
8013
  /* @__PURE__ */ jsx(
7800
8014
  PriceBlock,
7801
8015
  {
@@ -7813,7 +8027,7 @@ function ProductDetail({ product, inventory: inventory2, recommendations = [] })
7813
8027
  stockNotice && /* @__PURE__ */ jsx(
7814
8028
  "p",
7815
8029
  {
7816
- className: [styles$9.availability, anyInStock ? styles$9.low : styles$9.oos].join(" "),
8030
+ className: [styles$a.availability, anyInStock ? styles$a.low : styles$a.oos].join(" "),
7817
8031
  role: "status",
7818
8032
  children: availabilityLabel
7819
8033
  }
@@ -7871,24 +8085,24 @@ function ProductDetail({ product, inventory: inventory2, recommendations = [] })
7871
8085
  }
7872
8086
  const hero$1 = "_hero_2mcnp_10";
7873
8087
  const image$2 = "_image_2mcnp_37";
7874
- const scrim = "_scrim_2mcnp_51";
7875
- const text$1 = "_text_2mcnp_57";
7876
- const title$3 = "_title_2mcnp_72";
7877
- const subtitle$1 = "_subtitle_2mcnp_81";
8088
+ const scrim$1 = "_scrim_2mcnp_51";
8089
+ const text$2 = "_text_2mcnp_57";
8090
+ const title$4 = "_title_2mcnp_72";
8091
+ const subtitle$2 = "_subtitle_2mcnp_81";
7878
8092
  const noImage = "_noImage_2mcnp_94";
7879
- const styles$8 = {
8093
+ const styles$9 = {
7880
8094
  hero: hero$1,
7881
8095
  image: image$2,
7882
- scrim,
7883
- text: text$1,
7884
- title: title$3,
7885
- subtitle: subtitle$1,
8096
+ scrim: scrim$1,
8097
+ text: text$2,
8098
+ title: title$4,
8099
+ subtitle: subtitle$2,
7886
8100
  noImage
7887
8101
  };
7888
8102
  function PcpHero({ hero: hero2 }) {
7889
- return /* @__PURE__ */ jsxs("section", { className: [styles$8.hero, hero2.image ? "" : styles$8.noImage].join(" "), children: [
8103
+ return /* @__PURE__ */ jsxs("section", { className: [styles$9.hero, hero2.image ? "" : styles$9.noImage].join(" "), children: [
7890
8104
  hero2.image && /* @__PURE__ */ jsxs(Fragment, { children: [
7891
- /* @__PURE__ */ jsx("div", { className: styles$8.image, children: /* @__PURE__ */ jsx(
8105
+ /* @__PURE__ */ jsx("div", { className: styles$9.image, children: /* @__PURE__ */ jsx(
7892
8106
  ShopImage,
7893
8107
  {
7894
8108
  src: hero2.image,
@@ -7898,24 +8112,24 @@ function PcpHero({ hero: hero2 }) {
7898
8112
  priority: true
7899
8113
  }
7900
8114
  ) }),
7901
- /* @__PURE__ */ jsx("div", { className: styles$8.scrim, "aria-hidden": "true" })
8115
+ /* @__PURE__ */ jsx("div", { className: styles$9.scrim, "aria-hidden": "true" })
7902
8116
  ] }),
7903
- /* @__PURE__ */ jsxs("div", { className: styles$8.text, children: [
7904
- /* @__PURE__ */ jsx("h1", { className: styles$8.title, children: hero2.title }),
7905
- hero2.subtitle && /* @__PURE__ */ jsx("p", { className: styles$8.subtitle, children: hero2.subtitle })
8117
+ /* @__PURE__ */ jsxs("div", { className: styles$9.text, children: [
8118
+ /* @__PURE__ */ jsx("h1", { className: styles$9.title, children: hero2.title }),
8119
+ hero2.subtitle && /* @__PURE__ */ jsx("p", { className: styles$9.subtitle, children: hero2.subtitle })
7906
8120
  ] })
7907
8121
  ] });
7908
8122
  }
7909
- const text = "_text_1saw4_6";
8123
+ const text$1 = "_text_1saw4_6";
7910
8124
  const center = "_center_1saw4_18";
7911
8125
  const left = "_left_1saw4_23";
7912
- const styles$7 = {
7913
- text,
8126
+ const styles$8 = {
8127
+ text: text$1,
7914
8128
  center,
7915
8129
  left
7916
8130
  };
7917
8131
  function LifestyleText({ text: text2, align = "center" }) {
7918
- return /* @__PURE__ */ jsx("p", { className: [styles$7.text, align === "left" ? styles$7.left : styles$7.center].join(" "), children: text2 });
8132
+ return /* @__PURE__ */ jsx("p", { className: [styles$8.text, align === "left" ? styles$8.left : styles$8.center].join(" "), children: text2 });
7919
8133
  }
7920
8134
  const wrap = "_wrap_9mquf_1";
7921
8135
  const box = "_box_9mquf_5";
@@ -7925,7 +8139,7 @@ const image$1 = "_image_9mquf_38";
7925
8139
  const dots$1 = "_dots_9mquf_43";
7926
8140
  const dot$1 = "_dot_9mquf_43";
7927
8141
  const dotActive$1 = "_dotActive_9mquf_63";
7928
- const styles$6 = {
8142
+ const styles$7 = {
7929
8143
  wrap,
7930
8144
  box,
7931
8145
  track: track$1,
@@ -7946,22 +8160,22 @@ function LifestyleImage({ images }) {
7946
8160
  return () => track2.removeEventListener("scroll", onScroll);
7947
8161
  }, []);
7948
8162
  if (images.length === 0) return null;
7949
- return /* @__PURE__ */ jsx("div", { className: styles$6.wrap, children: /* @__PURE__ */ jsxs("div", { className: styles$6.box, children: [
7950
- /* @__PURE__ */ jsx("ul", { className: styles$6.track, ref: trackRef, children: images.map((src, i) => /* @__PURE__ */ jsx("li", { className: styles$6.slide, children: /* @__PURE__ */ jsx(
8163
+ return /* @__PURE__ */ jsx("div", { className: styles$7.wrap, children: /* @__PURE__ */ jsxs("div", { className: styles$7.box, children: [
8164
+ /* @__PURE__ */ jsx("ul", { className: styles$7.track, ref: trackRef, children: images.map((src, i) => /* @__PURE__ */ jsx("li", { className: styles$7.slide, children: /* @__PURE__ */ jsx(
7951
8165
  ShopImage,
7952
8166
  {
7953
8167
  src,
7954
8168
  alt: "",
7955
8169
  fill: true,
7956
8170
  sizes: "(max-width: 480px) 100vw, 480px",
7957
- className: styles$6.image,
8171
+ className: styles$7.image,
7958
8172
  priority: i === 0
7959
8173
  }
7960
8174
  ) }, src)) }),
7961
- images.length > 1 && /* @__PURE__ */ jsx("div", { className: styles$6.dots, "aria-hidden": "true", children: images.map((src, i) => /* @__PURE__ */ jsx(
8175
+ images.length > 1 && /* @__PURE__ */ jsx("div", { className: styles$7.dots, "aria-hidden": "true", children: images.map((src, i) => /* @__PURE__ */ jsx(
7962
8176
  "span",
7963
8177
  {
7964
- className: [styles$6.dot, i === active ? styles$6.dotActive : ""].join(" ")
8178
+ className: [styles$7.dot, i === active ? styles$7.dotActive : ""].join(" ")
7965
8179
  },
7966
8180
  src
7967
8181
  )) })
@@ -7976,7 +8190,7 @@ const dots = "_dots_iy175_57";
7976
8190
  const dot = "_dot_iy175_57";
7977
8191
  const dotActive = "_dotActive_iy175_70";
7978
8192
  const disclaimer = "_disclaimer_iy175_76";
7979
- const styles$5 = {
8193
+ const styles$6 = {
7980
8194
  section: section$2,
7981
8195
  track,
7982
8196
  card,
@@ -7997,49 +8211,49 @@ function ReviewCarousel({ quotes, disclaimer: disclaimer2 }) {
7997
8211
  track2.addEventListener("scroll", onScroll, { passive: true });
7998
8212
  return () => track2.removeEventListener("scroll", onScroll);
7999
8213
  }, []);
8000
- return /* @__PURE__ */ jsxs("section", { className: styles$5.section, "aria-label": "Reviews", children: [
8001
- /* @__PURE__ */ jsx("ul", { className: styles$5.track, ref: trackRef, children: quotes.map((q, i) => /* @__PURE__ */ jsxs("li", { className: styles$5.card, children: [
8002
- /* @__PURE__ */ jsxs("blockquote", { className: styles$5.quote, children: [
8214
+ return /* @__PURE__ */ jsxs("section", { className: styles$6.section, "aria-label": "Reviews", children: [
8215
+ /* @__PURE__ */ jsx("ul", { className: styles$6.track, ref: trackRef, children: quotes.map((q, i) => /* @__PURE__ */ jsxs("li", { className: styles$6.card, children: [
8216
+ /* @__PURE__ */ jsxs("blockquote", { className: styles$6.quote, children: [
8003
8217
  "“",
8004
8218
  q.quote,
8005
8219
  "”"
8006
8220
  ] }),
8007
- /* @__PURE__ */ jsx("p", { className: styles$5.author, children: q.author })
8221
+ /* @__PURE__ */ jsx("p", { className: styles$6.author, children: q.author })
8008
8222
  ] }, i)) }),
8009
- quotes.length > 1 && /* @__PURE__ */ jsx("div", { className: styles$5.dots, "aria-hidden": "true", children: quotes.map((_, i) => /* @__PURE__ */ jsx("span", { className: [styles$5.dot, i === active ? styles$5.dotActive : ""].join(" ") }, i)) }),
8010
- disclaimer2 && /* @__PURE__ */ jsx("p", { className: styles$5.disclaimer, children: disclaimer2 })
8223
+ quotes.length > 1 && /* @__PURE__ */ jsx("div", { className: styles$6.dots, "aria-hidden": "true", children: quotes.map((_, i) => /* @__PURE__ */ jsx("span", { className: [styles$6.dot, i === active ? styles$6.dotActive : ""].join(" ") }, i)) }),
8224
+ disclaimer2 && /* @__PURE__ */ jsx("p", { className: styles$6.disclaimer, children: disclaimer2 })
8011
8225
  ] });
8012
8226
  }
8013
8227
  const section$1 = "_section_145t0_1";
8014
- const row$1 = "_row_145t0_9";
8015
- const title$2 = "_title_145t0_21";
8228
+ const row$2 = "_row_145t0_9";
8229
+ const title$3 = "_title_145t0_21";
8016
8230
  const body = "_body_145t0_29";
8017
- const styles$4 = {
8231
+ const styles$5 = {
8018
8232
  section: section$1,
8019
- row: row$1,
8020
- title: title$2,
8233
+ row: row$2,
8234
+ title: title$3,
8021
8235
  body
8022
8236
  };
8023
8237
  function WhyUs({ items: items2 }) {
8024
- return /* @__PURE__ */ jsx("section", { className: styles$4.section, "aria-label": "Why shop with us", children: items2.map((it, i) => /* @__PURE__ */ jsxs("div", { className: styles$4.row, children: [
8025
- /* @__PURE__ */ jsx("p", { className: styles$4.title, children: it.title }),
8026
- /* @__PURE__ */ jsx("p", { className: styles$4.body, children: it.body })
8238
+ return /* @__PURE__ */ jsx("section", { className: styles$5.section, "aria-label": "Why shop with us", children: items2.map((it, i) => /* @__PURE__ */ jsxs("div", { className: styles$5.row, children: [
8239
+ /* @__PURE__ */ jsx("p", { className: styles$5.title, children: it.title }),
8240
+ /* @__PURE__ */ jsx("p", { className: styles$5.body, children: it.body })
8027
8241
  ] }, i)) });
8028
8242
  }
8029
8243
  const section = "_section_opjfc_1";
8030
- const title$1 = "_title_opjfc_8";
8031
- const list = "_list_opjfc_15";
8032
- const row = "_row_opjfc_26";
8033
- const styles$3 = {
8244
+ const title$2 = "_title_opjfc_8";
8245
+ const list$1 = "_list_opjfc_15";
8246
+ const row$1 = "_row_opjfc_26";
8247
+ const styles$4 = {
8034
8248
  section,
8035
- title: title$1,
8036
- list,
8037
- row
8249
+ title: title$2,
8250
+ list: list$1,
8251
+ row: row$1
8038
8252
  };
8039
8253
  function ExploreList({ title: title2, links }) {
8040
- return /* @__PURE__ */ jsxs("section", { className: styles$3.section, "aria-label": title2, children: [
8041
- /* @__PURE__ */ jsx("h2", { className: styles$3.title, children: title2 }),
8042
- /* @__PURE__ */ jsx("ul", { className: styles$3.list, children: links.map((l) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsxs(ShopLink, { to: `/category/${encodeURIComponent(l.code)}`, className: styles$3.row, children: [
8254
+ return /* @__PURE__ */ jsxs("section", { className: styles$4.section, "aria-label": title2, children: [
8255
+ /* @__PURE__ */ jsx("h2", { className: styles$4.title, children: title2 }),
8256
+ /* @__PURE__ */ jsx("ul", { className: styles$4.list, children: links.map((l) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsxs(ShopLink, { to: `/category/${encodeURIComponent(l.code)}`, className: styles$4.row, children: [
8043
8257
  /* @__PURE__ */ jsx("span", { children: l.label }),
8044
8258
  /* @__PURE__ */ jsx("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ jsx("path", { d: "M9 6l6 6-6 6", stroke: "currentColor", strokeWidth: "1.8", strokeLinecap: "round", strokeLinejoin: "round" }) })
8045
8259
  ] }) }, l.code)) })
@@ -8051,7 +8265,7 @@ const featured = "_featured_6gy3c_38";
8051
8265
  const gridBlock = "_gridBlock_6gy3c_39";
8052
8266
  const blockTitle = "_blockTitle_6gy3c_46";
8053
8267
  const grid = "_grid_6gy3c_39";
8054
- const styles$2 = {
8268
+ const styles$3 = {
8055
8269
  pcp,
8056
8270
  blocks,
8057
8271
  featured,
@@ -8066,16 +8280,16 @@ function Block({ block }) {
8066
8280
  case "lifestyle_text":
8067
8281
  return /* @__PURE__ */ jsx(LifestyleText, { text: block.text, align: block.align });
8068
8282
  case "featured":
8069
- return /* @__PURE__ */ jsxs("div", { className: styles$2.featured, children: [
8070
- block.title && /* @__PURE__ */ jsx("h2", { className: styles$2.blockTitle, children: block.title }),
8283
+ return /* @__PURE__ */ jsxs("div", { className: styles$3.featured, children: [
8284
+ block.title && /* @__PURE__ */ jsx("h2", { className: styles$3.blockTitle, children: block.title }),
8071
8285
  /* @__PURE__ */ jsx(ProductTile, { product: block.product, priority: true, size: "large" })
8072
8286
  ] });
8073
8287
  case "lifestyle_image":
8074
8288
  return /* @__PURE__ */ jsx(LifestyleImage, { images: block.images });
8075
8289
  case "grid":
8076
- return /* @__PURE__ */ jsxs("div", { className: styles$2.gridBlock, children: [
8077
- /* @__PURE__ */ jsx("h2", { className: styles$2.blockTitle, children: block.title }),
8078
- /* @__PURE__ */ jsx("ul", { className: styles$2.grid, children: block.products.map((p) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(ProductTile, { product: p }) }, p.sku)) })
8290
+ return /* @__PURE__ */ jsxs("div", { className: styles$3.gridBlock, children: [
8291
+ /* @__PURE__ */ jsx("h2", { className: styles$3.blockTitle, children: block.title }),
8292
+ /* @__PURE__ */ jsx("ul", { className: styles$3.grid, children: block.products.map((p) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(ProductTile, { product: p }) }, p.sku)) })
8079
8293
  ] });
8080
8294
  case "review":
8081
8295
  return /* @__PURE__ */ jsx(ReviewCarousel, { quotes: block.quotes, disclaimer: block.disclaimer });
@@ -8088,9 +8302,9 @@ function Block({ block }) {
8088
8302
  }
8089
8303
  }
8090
8304
  function CategoryContent({ page: page2 }) {
8091
- return /* @__PURE__ */ jsxs(ShopSurface, { tone: "dark", fill: true, className: styles$2.pcp, children: [
8305
+ return /* @__PURE__ */ jsxs(ShopSurface, { tone: "dark", fill: true, className: styles$3.pcp, children: [
8092
8306
  /* @__PURE__ */ jsx(PcpHero, { hero: page2.hero }),
8093
- /* @__PURE__ */ jsx("div", { className: styles$2.blocks, children: page2.blocks.map((block, i) => /* @__PURE__ */ jsx(Block, { block }, i)) })
8307
+ /* @__PURE__ */ jsx("div", { className: styles$3.blocks, children: page2.blocks.map((block, i) => /* @__PURE__ */ jsx(Block, { block }, i)) })
8094
8308
  ] });
8095
8309
  }
8096
8310
  function CategoryView({ code, initialData, onNotFound }) {
@@ -8186,13 +8400,13 @@ const heroTitle = "_heroTitle_ems17_107";
8186
8400
  const heroSub = "_heroSub_ems17_115";
8187
8401
  const swipe = "_swipe_ems17_122";
8188
8402
  const swipeLabel = "_swipeLabel_ems17_131";
8189
- const chevron = "_chevron_ems17_137";
8190
- const overlay = "_overlay_ems17_154";
8403
+ const chevron$1 = "_chevron_ems17_137";
8404
+ const overlay$1 = "_overlay_ems17_154";
8191
8405
  const copy = "_copy_ems17_165";
8192
- const title = "_title_ems17_170";
8193
- const subtitle = "_subtitle_ems17_177";
8406
+ const title$1 = "_title_ems17_170";
8407
+ const subtitle$1 = "_subtitle_ems17_177";
8194
8408
  const cta = "_cta_ems17_183";
8195
- const styles$1 = {
8409
+ const styles$2 = {
8196
8410
  showcase,
8197
8411
  panel,
8198
8412
  image,
@@ -8205,11 +8419,11 @@ const styles$1 = {
8205
8419
  heroSub,
8206
8420
  swipe,
8207
8421
  swipeLabel,
8208
- chevron,
8209
- overlay,
8422
+ chevron: chevron$1,
8423
+ overlay: overlay$1,
8210
8424
  copy,
8211
- title,
8212
- subtitle,
8425
+ title: title$1,
8426
+ subtitle: subtitle$1,
8213
8427
  cta
8214
8428
  };
8215
8429
  const FALLBACK_PANELS = [
@@ -8258,7 +8472,7 @@ const FALLBACK_PANELS = [
8258
8472
  }
8259
8473
  ];
8260
8474
  function CategoryPanel({ panel: panel2 }) {
8261
- return /* @__PURE__ */ jsxs("section", { className: styles$1.panel, "aria-label": panel2.title, children: [
8475
+ return /* @__PURE__ */ jsxs("section", { className: styles$2.panel, "aria-label": panel2.title, children: [
8262
8476
  /* @__PURE__ */ jsx(
8263
8477
  ShopImage,
8264
8478
  {
@@ -8266,15 +8480,15 @@ function CategoryPanel({ panel: panel2 }) {
8266
8480
  alt: "",
8267
8481
  fill: true,
8268
8482
  sizes: "(max-width: 480px) 100vw, 480px",
8269
- className: styles$1.image
8483
+ className: styles$2.image
8270
8484
  }
8271
8485
  ),
8272
- /* @__PURE__ */ jsxs("div", { className: styles$1.overlay, children: [
8273
- /* @__PURE__ */ jsxs("div", { className: styles$1.copy, children: [
8274
- /* @__PURE__ */ jsx("h2", { className: styles$1.title, children: panel2.title }),
8275
- /* @__PURE__ */ jsx("p", { className: styles$1.subtitle, children: panel2.subtitle })
8486
+ /* @__PURE__ */ jsxs("div", { className: styles$2.overlay, children: [
8487
+ /* @__PURE__ */ jsxs("div", { className: styles$2.copy, children: [
8488
+ /* @__PURE__ */ jsx("h2", { className: styles$2.title, children: panel2.title }),
8489
+ /* @__PURE__ */ jsx("p", { className: styles$2.subtitle, children: panel2.subtitle })
8276
8490
  ] }),
8277
- /* @__PURE__ */ jsx(ShopLink, { to: panel2.to, className: styles$1.cta, "aria-label": `${panel2.title} — ${panel2.cta}`, children: panel2.cta })
8491
+ /* @__PURE__ */ jsx(ShopLink, { to: panel2.to, className: styles$2.cta, "aria-label": `${panel2.title} — ${panel2.cta}`, children: panel2.cta })
8278
8492
  ] })
8279
8493
  ] });
8280
8494
  }
@@ -8317,9 +8531,9 @@ function HomeShowcase() {
8317
8531
  * showcase paints its own dark ground and now owns its own height, so there is nothing
8318
8532
  * for the surface to fill.
8319
8533
  */
8320
- /* @__PURE__ */ jsx(ShopSurface, { tone: "dark", children: /* @__PURE__ */ jsxs("div", { className: styles$1.showcase, ref: showcaseRef, children: [
8321
- /* @__PURE__ */ jsxs("section", { className: `${styles$1.panel} ${styles$1.hero}`, "aria-label": "DAZN Shop", children: [
8322
- /* @__PURE__ */ jsx("div", { className: styles$1.heroImageBox, children: /* @__PURE__ */ jsx(
8534
+ /* @__PURE__ */ jsx(ShopSurface, { tone: "dark", children: /* @__PURE__ */ jsxs("div", { className: styles$2.showcase, ref: showcaseRef, children: [
8535
+ /* @__PURE__ */ jsxs("section", { className: `${styles$2.panel} ${styles$2.hero}`, "aria-label": "DAZN Shop", children: [
8536
+ /* @__PURE__ */ jsx("div", { className: styles$2.heroImageBox, children: /* @__PURE__ */ jsx(
8323
8537
  ShopImage,
8324
8538
  {
8325
8539
  src: "/figma/home/hero.jpg",
@@ -8327,25 +8541,25 @@ function HomeShowcase() {
8327
8541
  fill: true,
8328
8542
  priority: true,
8329
8543
  sizes: "(max-width: 480px) 100vw, 480px",
8330
- className: styles$1.image
8544
+ className: styles$2.image
8331
8545
  }
8332
8546
  ) }),
8333
- /* @__PURE__ */ jsxs("div", { className: styles$1.heroContent, children: [
8334
- /* @__PURE__ */ jsxs("div", { className: styles$1.heroText, children: [
8547
+ /* @__PURE__ */ jsxs("div", { className: styles$2.heroContent, children: [
8548
+ /* @__PURE__ */ jsxs("div", { className: styles$2.heroText, children: [
8335
8549
  /* @__PURE__ */ jsx(
8336
8550
  "img",
8337
8551
  {
8338
8552
  src: assetUrl("/figma/home/dazn-logo.svg"),
8339
8553
  alt: "DAZN",
8340
- className: styles$1.logo
8554
+ className: styles$2.logo
8341
8555
  }
8342
8556
  ),
8343
- /* @__PURE__ */ jsx("h1", { className: styles$1.heroTitle, children: "DAZN SHOP" }),
8344
- /* @__PURE__ */ jsx("p", { className: styles$1.heroSub, children: "Fresh drops inspired by sport, culture, and everyday movement" })
8557
+ /* @__PURE__ */ jsx("h1", { className: styles$2.heroTitle, children: "DAZN SHOP" }),
8558
+ /* @__PURE__ */ jsx("p", { className: styles$2.heroSub, children: "Fresh drops inspired by sport, culture, and everyday movement" })
8345
8559
  ] }),
8346
- /* @__PURE__ */ jsxs("div", { className: styles$1.swipe, children: [
8347
- /* @__PURE__ */ jsx("p", { className: styles$1.swipeLabel, children: "Swipe down for more" }),
8348
- /* @__PURE__ */ jsx("svg", { className: styles$1.chevron, viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ jsx(
8560
+ /* @__PURE__ */ jsxs("div", { className: styles$2.swipe, children: [
8561
+ /* @__PURE__ */ jsx("p", { className: styles$2.swipeLabel, children: "Swipe down for more" }),
8562
+ /* @__PURE__ */ jsx("svg", { className: styles$2.chevron, viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ jsx(
8349
8563
  "path",
8350
8564
  {
8351
8565
  d: "M6 9l6 6 6-6",
@@ -8405,15 +8619,15 @@ function useCartCount() {
8405
8619
  }, [subscribe]);
8406
8620
  return count2;
8407
8621
  }
8408
- const header = "_header_7rinq_6";
8622
+ const header$1 = "_header_7rinq_6";
8409
8623
  const floating = "_floating_7rinq_26";
8410
8624
  const right = "_right_7rinq_35";
8411
8625
  const spacer = "_spacer_7rinq_48";
8412
8626
  const iconBtn = "_iconBtn_7rinq_53";
8413
8627
  const menuBtn = "_menuBtn_7rinq_80";
8414
8628
  const badge = "_badge_7rinq_104";
8415
- const styles = {
8416
- header,
8629
+ const styles$1 = {
8630
+ header: header$1,
8417
8631
  floating,
8418
8632
  right,
8419
8633
  spacer,
@@ -8466,19 +8680,19 @@ function ShopHeader({
8466
8680
  }) {
8467
8681
  const cartCount = useCartCount();
8468
8682
  const cartLabel = cartCount === null ? "Cart" : cartCount === 0 ? "Cart, empty" : `Cart, ${cartCount} item${cartCount === 1 ? "" : "s"}`;
8469
- const classes = [styles.header, floating2 ? styles.floating : "", className ?? ""].filter(Boolean).join(" ");
8683
+ const classes = [styles$1.header, floating2 ? styles$1.floating : "", className ?? ""].filter(Boolean).join(" ");
8470
8684
  return /* @__PURE__ */ jsxs("header", { className: classes, children: [
8471
- onBack ? /* @__PURE__ */ jsx("button", { type: "button", className: styles.iconBtn, "aria-label": backLabel, onClick: onBack, children: /* @__PURE__ */ jsx(ChevronLeft, {}) }) : /* @__PURE__ */ jsx("span", { className: styles.spacer, "aria-hidden": "true" }),
8472
- /* @__PURE__ */ jsxs("div", { className: styles.right, children: [
8473
- showCart ? /* @__PURE__ */ jsxs(CartTrigger, { className: styles.iconBtn, "aria-label": cartLabel, children: [
8685
+ onBack ? /* @__PURE__ */ jsx("button", { type: "button", className: styles$1.iconBtn, "aria-label": backLabel, onClick: onBack, children: /* @__PURE__ */ jsx(ChevronLeft, {}) }) : /* @__PURE__ */ jsx("span", { className: styles$1.spacer, "aria-hidden": "true" }),
8686
+ /* @__PURE__ */ jsxs("div", { className: styles$1.right, children: [
8687
+ showCart ? /* @__PURE__ */ jsxs(CartTrigger, { className: styles$1.iconBtn, "aria-label": cartLabel, children: [
8474
8688
  /* @__PURE__ */ jsx(CartIcon, {}),
8475
- cartCount === null ? null : /* @__PURE__ */ jsx("span", { className: styles.badge, "aria-hidden": "true", children: cartCount > 99 ? "99+" : cartCount })
8689
+ cartCount === null ? null : /* @__PURE__ */ jsx("span", { className: styles$1.badge, "aria-hidden": "true", children: cartCount > 99 ? "99+" : cartCount })
8476
8690
  ] }) : null,
8477
8691
  onMenu ? /* @__PURE__ */ jsx(
8478
8692
  "button",
8479
8693
  {
8480
8694
  type: "button",
8481
- className: `${styles.iconBtn} ${styles.menuBtn}`,
8695
+ className: `${styles$1.iconBtn} ${styles$1.menuBtn}`,
8482
8696
  "aria-label": menuLabel,
8483
8697
  onClick: onMenu,
8484
8698
  children: /* @__PURE__ */ jsx(MenuIcon, {})
@@ -8487,6 +8701,186 @@ function ShopHeader({
8487
8701
  ] })
8488
8702
  ] });
8489
8703
  }
8704
+ const overlay = "_overlay_lm5qk_5";
8705
+ const scrim = "_scrim_lm5qk_17";
8706
+ const sheet = "_sheet_lm5qk_23";
8707
+ const header = "_header_lm5qk_56";
8708
+ const close = "_close_lm5qk_62";
8709
+ const list = "_list_lm5qk_81";
8710
+ const row = "_row_lm5qk_89";
8711
+ const icon = "_icon_lm5qk_119";
8712
+ const text = "_text_lm5qk_127";
8713
+ const title = "_title_lm5qk_135";
8714
+ const subtitle = "_subtitle_lm5qk_142";
8715
+ const chevron = "_chevron_lm5qk_148";
8716
+ const styles = {
8717
+ overlay,
8718
+ scrim,
8719
+ sheet,
8720
+ header,
8721
+ close,
8722
+ list,
8723
+ row,
8724
+ icon,
8725
+ text,
8726
+ title,
8727
+ subtitle,
8728
+ chevron
8729
+ };
8730
+ function OrderIcon() {
8731
+ return /* @__PURE__ */ jsxs("svg", { width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true", children: [
8732
+ /* @__PURE__ */ jsx("g", { transform: "translate(2.987 2.498)", children: /* @__PURE__ */ jsx(
8733
+ "path",
8734
+ {
8735
+ d: "M1.4 4.467C1.14036 4.81319 1 5.23426 1 5.667L1.01416 15.9991C1.01416 16.5295 1.22487 17.0382 1.59995 17.4133C1.97502 17.7884 2.48373 17.9991 3.01416 17.9991L15.0267 18.0043C15.5571 18.0043 16.0658 17.7935 16.4409 17.4185C16.816 17.0434 17.0267 16.5347 17.0267 16.0043L17.0125 5.67219C17.0125 5.23945 16.8722 4.81838 16.6125 4.47219L14.6125 1.80519C14.4262 1.5568 14.1847 1.35519 13.907 1.21634C13.6292 1.07748 13.323 1.00519 13.0125 1.00519L5 1C4.68951 1 4.38328 1.07229 4.10557 1.21115C3.82786 1.35 3.5863 1.55161 3.4 1.8L1.4 4.467Z",
8736
+ stroke: "currentColor",
8737
+ strokeWidth: "2",
8738
+ strokeLinecap: "round",
8739
+ strokeLinejoin: "round"
8740
+ }
8741
+ ) }),
8742
+ /* @__PURE__ */ jsx("g", { transform: "translate(4.1 6.267)", children: /* @__PURE__ */ jsx(
8743
+ "path",
8744
+ {
8745
+ d: "M0.9 0.9H14.9001",
8746
+ stroke: "currentColor",
8747
+ strokeWidth: "1.8",
8748
+ strokeLinecap: "round",
8749
+ strokeLinejoin: "round"
8750
+ }
8751
+ ) }),
8752
+ /* @__PURE__ */ jsx("g", { transform: "translate(7.36 10.09)", children: /* @__PURE__ */ jsx(
8753
+ "path",
8754
+ {
8755
+ d: "M8.37949 0.9C8.37949 1.89184 7.98548 2.84306 7.28415 3.5444C6.58281 4.24574 5.63159 4.63975 4.63975 4.63975C3.6479 4.63975 2.69668 4.24574 1.99535 3.5444C1.29401 2.84306 0.9 1.89184 0.9 0.9",
8756
+ stroke: "currentColor",
8757
+ strokeWidth: "1.8",
8758
+ strokeLinecap: "round",
8759
+ strokeLinejoin: "round"
8760
+ }
8761
+ ) })
8762
+ ] });
8763
+ }
8764
+ function GiftIcon() {
8765
+ return /* @__PURE__ */ jsx("svg", { width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ jsx("g", { transform: "translate(1.94 2.995)", children: /* @__PURE__ */ jsx(
8766
+ "path",
8767
+ {
8768
+ fillRule: "evenodd",
8769
+ clipRule: "evenodd",
8770
+ d: "M13.751 0.00124025C14.5259 0.00509296 15.2681 0.313462 15.8164 0.861592C16.368 1.41322 16.6786 2.16162 16.6787 2.94167C16.6787 3.33886 16.5962 3.72712 16.4443 4.0862L18.21 4.08425C19.2573 4.08425 20.1182 4.92951 20.1182 5.98464V7.98464C20.118 8.77361 19.6366 9.44353 18.9561 9.73171V15.011C18.9561 15.8024 18.6451 16.5636 18.0889 17.1272C17.6018 17.6207 16.9612 17.9275 16.2773 17.9964L15.9814 18.011L4.14355 18.0051C3.35071 18.005 2.59271 17.6863 2.03613 17.1223C1.47995 16.5588 1.16992 15.7965 1.16992 15.0051V9.76198C0.48514 9.4754 0.000197787 8.80207 0 8.01003V6.01003C3.22233e-05 4.95527 0.859419 4.11117 1.90625 4.11062L3.68457 4.10671C3.52717 3.74203 3.44242 3.34633 3.44238 2.94167C3.4425 2.16158 3.7531 1.41323 4.30469 0.861592C4.85271 0.313663 5.59461 0.00439982 6.36914 0.000263685C6.37301 0.000209284 6.377 0.00129387 6.38086 0.00124025C6.38214 0.00120826 6.38348 0.00124029 6.38477 0.00124025C7.48869 -0.0127605 8.48921 0.527887 9.26953 1.39479C9.56436 1.7224 9.82868 2.09657 10.0605 2.50612C10.2924 2.09651 10.5567 1.72244 10.8516 1.39479C11.6319 0.527865 12.6324 -0.0136996 13.7363 0.000263685L13.7393 0.00124025C13.7435 0.0012842 13.7477 0.000190595 13.752 0.000263685L13.751 0.00124025ZM3.16992 9.90749V15.0051C3.16992 15.2745 3.2759 15.5305 3.45996 15.7171C3.64354 15.9031 3.88967 16.005 4.14355 16.0051L15.9814 16.01C16.2355 16.01 16.4823 15.909 16.666 15.7229C16.8271 15.5597 16.9284 15.3435 16.9512 15.1116L16.9561 15.011V9.88601L3.16992 9.90749ZM1.9082 5.91042C1.84343 5.91045 1.80082 5.96063 1.80078 6.01003V8.01003C1.80105 8.05904 1.84222 8.10813 1.90625 8.10866L18.21 8.08425C18.2746 8.08425 18.3181 8.03392 18.3184 7.98464V5.98464C18.3184 5.9352 18.2758 5.88503 18.2109 5.88503L1.9082 5.91042ZM6.38477 1.80007C6.0819 1.8001 5.79131 1.92087 5.57715 2.13503C5.36332 2.34907 5.24329 2.63912 5.24316 2.94167C5.24323 3.24435 5.3632 3.53519 5.57715 3.74929C5.79129 3.96335 6.08197 4.08422 6.38477 4.08425C6.44761 4.08425 6.50914 4.08955 6.56836 4.10183L8.83203 4.09792C8.58292 3.48766 8.27452 2.97992 7.93164 2.5989C7.4044 2.01319 6.86607 1.79198 6.40039 1.80007C6.39524 1.80016 6.38992 1.80007 6.38477 1.80007ZM13.7207 1.80007C13.255 1.79196 12.7167 2.0131 12.1895 2.5989C11.847 2.9794 11.538 3.48583 11.2891 4.09499L13.6289 4.09108C13.6641 4.08689 13.7 4.08425 13.7363 4.08425C14.0392 4.08423 14.3298 3.9634 14.5439 3.74929C14.758 3.53518 14.8788 3.2444 14.8789 2.94167C14.8788 2.63911 14.7578 2.34907 14.5439 2.13503C14.3298 1.92086 14.0392 1.80009 13.7363 1.80007C13.7312 1.80007 13.7259 1.80016 13.7207 1.80007Z",
8771
+ fill: "currentColor"
8772
+ }
8773
+ ) }) });
8774
+ }
8775
+ function HelpIcon() {
8776
+ return /* @__PURE__ */ jsx("svg", { width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ jsxs("g", { transform: "translate(1.93 1.93)", children: [
8777
+ /* @__PURE__ */ jsx(
8778
+ "path",
8779
+ {
8780
+ d: "M10.0781 14.1543C10.52 14.1543 10.8779 14.5123 10.8779 14.9541C10.8778 15.3958 10.5199 15.7539 10.0781 15.7539H10.0693C9.62757 15.7539 9.26963 15.3958 9.26953 14.9541C9.26953 14.5123 9.62751 14.1543 10.0693 14.1543H10.0781Z",
8781
+ fill: "currentColor"
8782
+ }
8783
+ ),
8784
+ /* @__PURE__ */ jsx(
8785
+ "path",
8786
+ {
8787
+ d: "M8.21777 4.7168C8.93457 4.29562 9.77726 4.14167 10.5967 4.28223C11.4161 4.42286 12.1599 4.84835 12.6953 5.48438C13.2303 6.12005 13.5233 6.92505 13.5225 7.75586L13.5107 8.00098C13.3992 9.19732 12.4886 10.0076 11.8057 10.4629C11.4401 10.7066 11.0785 10.8882 10.8018 11.0137V11.8223C10.8014 12.2637 10.4425 12.622 10.001 12.6221C9.55954 12.6219 9.20156 12.2637 9.20117 11.8223V10.4775C9.20117 10.1332 9.42146 9.82671 9.74805 9.71777C9.75073 9.71685 9.75671 9.71536 9.76367 9.71289C9.77824 9.70771 9.80199 9.69931 9.83301 9.6875C9.89571 9.66361 9.98896 9.62621 10.1016 9.57617C10.3291 9.47505 10.6264 9.32523 10.918 9.13086C11.5496 8.70973 11.9217 8.23795 11.9219 7.75586C11.9225 7.30239 11.7627 6.86161 11.4707 6.51465C11.1787 6.16788 10.773 5.93611 10.3262 5.85938C9.87921 5.78271 9.41933 5.86603 9.02832 6.0957C8.63742 6.32547 8.34003 6.68657 8.18945 7.11426C8.04274 7.53077 7.58557 7.74995 7.16895 7.60352C6.75252 7.45687 6.53351 7.00053 6.67969 6.58398C6.9556 5.79964 7.50096 5.1381 8.21777 4.7168Z",
8788
+ fill: "currentColor"
8789
+ }
8790
+ ),
8791
+ /* @__PURE__ */ jsx(
8792
+ "path",
8793
+ {
8794
+ fillRule: "evenodd",
8795
+ clipRule: "evenodd",
8796
+ d: "M10.0693 0C15.6304 0.000197913 20.1395 4.50828 20.1396 10.0693C20.1395 15.6304 15.6304 20.1395 10.0693 20.1396C4.50828 20.1395 0.000197917 15.6304 0 10.0693C0.00019791 4.50828 4.50828 0.000197906 10.0693 0ZM10.0693 2C5.61285 2.0002 2.0002 5.61285 2 10.0693C2.0002 14.5258 5.61285 18.1395 10.0693 18.1396C14.5258 18.1395 18.1395 14.5258 18.1396 10.0693C18.1395 5.61285 14.5258 2.0002 10.0693 2Z",
8797
+ fill: "currentColor"
8798
+ }
8799
+ )
8800
+ ] }) });
8801
+ }
8802
+ function ChevronRight() {
8803
+ return /* @__PURE__ */ jsx("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ jsx("g", { transform: "translate(4.28 1.957)", children: /* @__PURE__ */ jsx(
8804
+ "path",
8805
+ {
8806
+ d: "M7.42763 6.03763C7.42763 5.83763 7.33763 5.64763 7.18763 5.51763L1.15763 0.177629C0.867628 -0.0823714 0.427629 -0.0523713 0.177629 0.237629C-0.0823713 0.527629 -0.0523714 0.967629 0.237629 1.22763L5.67763 6.04763L0.237629 10.8576C-0.0523709 11.1176 -0.0823709 11.5576 0.177629 11.8476C0.437629 12.1376 0.877629 12.1676 1.16763 11.9076L7.19763 6.56763C7.34763 6.43763 7.43763 6.24763 7.43763 6.04763L7.42763 6.03763Z",
8807
+ fill: "currentColor"
8808
+ }
8809
+ ) }) });
8810
+ }
8811
+ function CloseIcon() {
8812
+ return /* @__PURE__ */ jsx("svg", { width: "20", height: "20", viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ jsx("path", { d: "M6 6l12 12M18 6L6 18", stroke: "currentColor", strokeWidth: "1.8", strokeLinecap: "round" }) });
8813
+ }
8814
+ function ShopMenuSheet({
8815
+ open,
8816
+ onClose,
8817
+ onManageOrders,
8818
+ onRedeemCode,
8819
+ onHelp,
8820
+ closeLabel = "Close",
8821
+ label: label2 = "Shop menu"
8822
+ }) {
8823
+ const sheetRef = useRef(null);
8824
+ useModalDialog(open, onClose, sheetRef);
8825
+ if (!open) return null;
8826
+ const rows = [
8827
+ {
8828
+ key: "orders",
8829
+ icon: /* @__PURE__ */ jsx(OrderIcon, {}),
8830
+ title: "Manage orders",
8831
+ subtitle: "View your order history and track shipments",
8832
+ ...onManageOrders ? { onSelect: onManageOrders } : {}
8833
+ },
8834
+ {
8835
+ key: "redeem",
8836
+ icon: /* @__PURE__ */ jsx(GiftIcon, {}),
8837
+ title: "Redeem a code",
8838
+ subtitle: "Got a code for DAZN shop? Claim it here",
8839
+ ...onRedeemCode ? { onSelect: onRedeemCode } : {}
8840
+ },
8841
+ {
8842
+ key: "help",
8843
+ icon: /* @__PURE__ */ jsx(HelpIcon, {}),
8844
+ title: "Help & Support",
8845
+ ...onHelp ? { onSelect: onHelp } : {}
8846
+ }
8847
+ ];
8848
+ return /* @__PURE__ */ jsxs("div", { className: styles.overlay, children: [
8849
+ /* @__PURE__ */ jsx("div", { className: styles.scrim, onClick: onClose, "aria-hidden": "true" }),
8850
+ /* @__PURE__ */ jsxs(
8851
+ ShopSurface,
8852
+ {
8853
+ tone: "light",
8854
+ className: styles.sheet,
8855
+ role: "dialog",
8856
+ "aria-modal": "true",
8857
+ "aria-label": label2,
8858
+ ref: sheetRef,
8859
+ children: [
8860
+ /* @__PURE__ */ jsx("div", { className: styles.header, children: /* @__PURE__ */ jsx("button", { type: "button", className: styles.close, onClick: onClose, "aria-label": closeLabel, children: /* @__PURE__ */ jsx(CloseIcon, {}) }) }),
8861
+ /* @__PURE__ */ jsx("ul", { className: styles.list, children: rows.map((row2) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsxs(
8862
+ "button",
8863
+ {
8864
+ type: "button",
8865
+ className: styles.row,
8866
+ onClick: row2.onSelect,
8867
+ disabled: !row2.onSelect,
8868
+ "aria-disabled": row2.onSelect ? void 0 : true,
8869
+ children: [
8870
+ /* @__PURE__ */ jsx("span", { className: styles.icon, children: row2.icon }),
8871
+ /* @__PURE__ */ jsxs("span", { className: styles.text, children: [
8872
+ /* @__PURE__ */ jsx("span", { className: styles.title, children: row2.title }),
8873
+ row2.subtitle && /* @__PURE__ */ jsx("span", { className: styles.subtitle, children: row2.subtitle })
8874
+ ] }),
8875
+ /* @__PURE__ */ jsx("span", { className: styles.chevron, children: /* @__PURE__ */ jsx(ChevronRight, {}) })
8876
+ ]
8877
+ }
8878
+ ) }, row2.key)) })
8879
+ ]
8880
+ }
8881
+ )
8882
+ ] });
8883
+ }
8490
8884
  export {
8491
8885
  Badge,
8492
8886
  BottomSheet,
@@ -8509,6 +8903,8 @@ export {
8509
8903
  LifestyleImage,
8510
8904
  LifestyleText,
8511
8905
  MediaGallery,
8906
+ OrderListView,
8907
+ OrderStatusBadge,
8512
8908
  OrderSummary,
8513
8909
  OrderTimeline,
8514
8910
  OrderTrackingView,
@@ -8531,6 +8927,7 @@ export {
8531
8927
  HomeShowcase as ShopHome,
8532
8928
  ShopImage,
8533
8929
  ShopLink,
8930
+ ShopMenuSheet,
8534
8931
  ShopSurface,
8535
8932
  SizeGuideSheet,
8536
8933
  SizeSelector,