@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.d.ts +79 -0
- package/dist/index.mjs +875 -478
- package/dist/standalone/storefront.mjs +875 -478
- package/dist/standalone/styles.css +349 -0
- package/dist/styles.css +349 -0
- package/package.json +1 -1
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 =
|
|
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$
|
|
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$
|
|
5364
|
-
badge: badge$
|
|
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$
|
|
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$
|
|
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$
|
|
5409
|
-
styles$
|
|
5410
|
-
fullWidth2 ? styles$
|
|
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$
|
|
5418
|
-
/* @__PURE__ */ jsx("span", { className: loading ? styles$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
5515
|
+
const row$8 = "_row_ney0g_53";
|
|
5498
5516
|
const action$2 = "_action_ney0g_57";
|
|
5499
|
-
const styles$
|
|
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$
|
|
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$
|
|
5512
|
-
/* @__PURE__ */ jsx(Skeleton, { className: styles$
|
|
5513
|
-
/* @__PURE__ */ jsxs("div", { className: styles$
|
|
5514
|
-
/* @__PURE__ */ jsx(Skeleton, { height: 22, className: styles$
|
|
5515
|
-
/* @__PURE__ */ jsx(Skeleton, { height: 16, className: styles$
|
|
5516
|
-
/* @__PURE__ */ jsx(Skeleton, { height: 16, className: styles$
|
|
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$
|
|
5519
|
-
] }) : /* @__PURE__ */ jsx("div", { className: styles$
|
|
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$
|
|
5523
|
-
const title$
|
|
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$
|
|
5544
|
+
const styles$C = {
|
|
5527
5545
|
root: root$5,
|
|
5528
|
-
icon: icon$
|
|
5529
|
-
title: title$
|
|
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$
|
|
5535
|
-
icon2 && /* @__PURE__ */ jsx("div", { className: styles$
|
|
5536
|
-
/* @__PURE__ */ jsx("h2", { className: styles$
|
|
5537
|
-
body2 && /* @__PURE__ */ jsx("p", { className: styles$
|
|
5538
|
-
action2 && /* @__PURE__ */ jsx("div", { className: styles$
|
|
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$
|
|
5685
|
+
const title$g = "_title_1lbpx_10";
|
|
5668
5686
|
const body$4 = "_body_1lbpx_15";
|
|
5669
|
-
const styles$
|
|
5687
|
+
const styles$B = {
|
|
5670
5688
|
root: root$4,
|
|
5671
|
-
title: title$
|
|
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$
|
|
5678
|
-
/* @__PURE__ */ jsx("h2", { className: styles$
|
|
5679
|
-
/* @__PURE__ */ jsx("p", { className: styles$
|
|
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$
|
|
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$
|
|
5734
|
+
const styles$A = {
|
|
5717
5735
|
viewport,
|
|
5718
5736
|
toast,
|
|
5719
|
-
text: text$
|
|
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$
|
|
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$
|
|
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$
|
|
5789
|
-
/* @__PURE__ */ jsxs("span", { className: styles$
|
|
5790
|
-
/* @__PURE__ */ jsx("span", { className: styles$
|
|
5791
|
-
t.description && /* @__PURE__ */ jsx("span", { className: styles$
|
|
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$
|
|
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$
|
|
5859
|
-
const icon$
|
|
5860
|
-
const styles$
|
|
5861
|
-
badge: badge$
|
|
5862
|
-
icon: icon$
|
|
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$
|
|
5866
|
-
/* @__PURE__ */ jsxs("svg", { className: styles$
|
|
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$
|
|
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$
|
|
5915
|
-
/* @__PURE__ */ jsx("span", { className: styles$
|
|
5916
|
-
hasCompare && /* @__PURE__ */ jsxs("span", { className: styles$
|
|
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$
|
|
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$
|
|
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$
|
|
6041
|
+
const date$1 = "_date_1j37h_128";
|
|
6042
|
+
const styles$x = {
|
|
6025
6043
|
timeline,
|
|
6026
|
-
row: row$
|
|
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$
|
|
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 =
|
|
6042
|
-
return /* @__PURE__ */ jsx("ol", { className: styles$
|
|
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$
|
|
6065
|
+
className: styles$x.row,
|
|
6048
6066
|
"aria-current": entry.current ? "step" : void 0,
|
|
6049
6067
|
children: [
|
|
6050
|
-
/* @__PURE__ */ jsxs("div", { className: styles$
|
|
6051
|
-
/* @__PURE__ */ jsx("span", { className: styles$
|
|
6052
|
-
/* @__PURE__ */ jsxs("span", { className: styles$
|
|
6053
|
-
/* @__PURE__ */ jsx("span", { className: [styles$
|
|
6054
|
-
entry.at && /* @__PURE__ */ jsx("time", { className: styles$
|
|
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 <
|
|
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$
|
|
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$
|
|
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$
|
|
6128
|
+
const styles$w = {
|
|
6111
6129
|
summary,
|
|
6112
|
-
row: row$
|
|
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$
|
|
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$
|
|
6147
|
+
return /* @__PURE__ */ jsxs("div", { className: styles$w.row, children: [
|
|
6130
6148
|
/* @__PURE__ */ jsx("dt", { children: label2 }),
|
|
6131
|
-
/* @__PURE__ */ jsx("dd", { className: pending2 ? styles$
|
|
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$
|
|
6155
|
+
return /* @__PURE__ */ jsx("span", { className: styles$w.free, children: "Free" });
|
|
6138
6156
|
}
|
|
6139
6157
|
return format(pricing[key]);
|
|
6140
6158
|
}
|
|
6141
|
-
const page$
|
|
6159
|
+
const page$2 = "_page_1eqkm_1";
|
|
6142
6160
|
const status = "_status_1eqkm_10";
|
|
6143
6161
|
const widget = "_widget_1eqkm_18";
|
|
6144
|
-
const title$
|
|
6162
|
+
const title$f = "_title_1eqkm_24";
|
|
6145
6163
|
const headline = "_headline_1eqkm_30";
|
|
6146
|
-
const subtitle$
|
|
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$
|
|
6158
|
-
const placeholder$
|
|
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$
|
|
6174
|
-
page: page$
|
|
6191
|
+
const styles$v = {
|
|
6192
|
+
page: page$2,
|
|
6175
6193
|
status,
|
|
6176
6194
|
widget,
|
|
6177
|
-
title: title$
|
|
6195
|
+
title: title$f,
|
|
6178
6196
|
headline,
|
|
6179
|
-
subtitle: subtitle$
|
|
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$
|
|
6191
|
-
placeholder: placeholder$
|
|
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$
|
|
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$
|
|
6246
|
-
/* @__PURE__ */ jsxs("section", { className: styles$
|
|
6247
|
-
/* @__PURE__ */ jsxs("div", { className: styles$
|
|
6248
|
-
/* @__PURE__ */ jsx("h1", { className: styles$
|
|
6249
|
-
/* @__PURE__ */ jsxs("p", { className: styles$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
6284
|
-
/* @__PURE__ */ jsxs("div", { className: styles$
|
|
6285
|
-
/* @__PURE__ */ jsx("h2", { className: styles$
|
|
6286
|
-
/* @__PURE__ */ jsx("p", { className: styles$
|
|
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$
|
|
6290
|
-
/* @__PURE__ */ jsxs("div", { className: [styles$
|
|
6291
|
-
/* @__PURE__ */ jsx("h2", { className: styles$
|
|
6292
|
-
/* @__PURE__ */ jsxs("p", { className: styles$
|
|
6293
|
-
/* @__PURE__ */ jsx("span", { className: styles$
|
|
6294
|
-
order.payment.last4 && /* @__PURE__ */ jsxs("span", { className: styles$
|
|
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$
|
|
6303
|
-
/* @__PURE__ */ jsx("h2", { className: styles$
|
|
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$
|
|
6311
|
-
/* @__PURE__ */ jsxs("div", { className: styles$
|
|
6312
|
-
/* @__PURE__ */ jsx("h2", { className: styles$
|
|
6313
|
-
/* @__PURE__ */ jsx("span", { className: styles$
|
|
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$
|
|
6316
|
-
/* @__PURE__ */ jsx("div", { className: styles$
|
|
6317
|
-
/* @__PURE__ */ jsxs("div", { className: styles$
|
|
6318
|
-
/* @__PURE__ */ jsxs("div", { className: styles$
|
|
6319
|
-
/* @__PURE__ */ jsx("span", { className: styles$
|
|
6320
|
-
detailsOf(item2).length > 0 && /* @__PURE__ */ jsx("span", { className: styles$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
6608
|
+
className: [styles$s.tile, size === "large" ? styles$s.large : ""].join(" "),
|
|
6395
6609
|
children: [
|
|
6396
|
-
/* @__PURE__ */ jsxs("div", { className: styles$
|
|
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$
|
|
6618
|
+
className: styles$s.image,
|
|
6405
6619
|
priority
|
|
6406
6620
|
}
|
|
6407
|
-
) : /* @__PURE__ */ jsx("div", { className: styles$
|
|
6408
|
-
anyInStock && topBadge2 && /* @__PURE__ */ jsx("span", { className: styles$
|
|
6409
|
-
anyInStock && pct !== void 0 && /* @__PURE__ */ jsx("span", { className: styles$
|
|
6410
|
-
!anyInStock && /* @__PURE__ */ jsx("span", { className: styles$
|
|
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$
|
|
6413
|
-
/* @__PURE__ */ jsxs("div", { className: styles$
|
|
6414
|
-
/* @__PURE__ */ jsx("span", { className: styles$
|
|
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$
|
|
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$
|
|
6430
|
-
children: /* @__PURE__ */ jsx("span", { className: styles$
|
|
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$
|
|
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$
|
|
6454
|
-
/* @__PURE__ */ jsx("div", { className: styles$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
6536
|
-
loading && /* @__PURE__ */ jsx("div", { className: styles$
|
|
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$
|
|
6542
|
-
const title$
|
|
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$
|
|
6761
|
+
const styles$p = {
|
|
6548
6762
|
rail,
|
|
6549
|
-
header: header$
|
|
6550
|
-
title: title$
|
|
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$
|
|
6559
|
-
/* @__PURE__ */ jsxs("div", { className: styles$
|
|
6560
|
-
/* @__PURE__ */ jsx("h2", { className: styles$
|
|
6561
|
-
seeAllTo && /* @__PURE__ */ jsx(ShopLink, { className: styles$
|
|
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$
|
|
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
|
-
|
|
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
|
|
6623
|
-
if (!
|
|
6624
|
-
const focusables = Array.from(
|
|
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
|
|
6813
|
+
const previouslyFocused = document.activeElement;
|
|
6646
6814
|
document.addEventListener("keydown", handleKeyDown);
|
|
6647
|
-
|
|
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
|
|
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$
|
|
6660
|
-
/* @__PURE__ */ jsx("div", { className: styles$
|
|
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$
|
|
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$
|
|
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$
|
|
6897
|
+
children: /* @__PURE__ */ jsx("div", { className: styles$o.grabber, "aria-hidden": "true" })
|
|
6684
6898
|
}
|
|
6685
6899
|
),
|
|
6686
|
-
/* @__PURE__ */ jsxs("div", { className: styles$
|
|
6687
|
-
/* @__PURE__ */ jsx("h2", { id: titleId, className: styles$
|
|
6688
|
-
/* @__PURE__ */ jsx("button", { type: "button", className: styles$
|
|
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$
|
|
6699
|
-
footer2 && /* @__PURE__ */ jsx("div", { className: styles$
|
|
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$
|
|
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$
|
|
6769
|
-
/* @__PURE__ */ jsxs("div", { className: styles$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
6815
|
-
row: row$
|
|
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$
|
|
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$
|
|
6849
|
-
/* @__PURE__ */ jsxs("div", { className: styles$
|
|
6850
|
-
displayImage ? /* @__PURE__ */ jsx(ShopImage, { src: displayImage, alt: "", fill: true, sizes: "100px", className: styles$
|
|
6851
|
-
soldOut ? /* @__PURE__ */ jsx("span", { className: styles$
|
|
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$
|
|
6854
|
-
/* @__PURE__ */ jsxs("div", { className: styles$
|
|
6855
|
-
/* @__PURE__ */ jsxs("div", { className: styles$
|
|
6856
|
-
/* @__PURE__ */ jsx("span", { className: styles$
|
|
6857
|
-
pairs.length > 0 && /* @__PURE__ */ jsx("div", { className: styles$
|
|
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$
|
|
6864
|
-
/* @__PURE__ */ jsx("span", { className: styles$
|
|
6865
|
-
compareAt2 && /* @__PURE__ */ jsx("span", { className: styles$
|
|
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$
|
|
6883
|
-
const icon$
|
|
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$
|
|
7100
|
+
const styles$l = {
|
|
6887
7101
|
box: box$1,
|
|
6888
|
-
row: row$
|
|
6889
|
-
icon: icon$
|
|
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$
|
|
6895
|
-
/* @__PURE__ */ jsxs("div", { className: styles$
|
|
6896
|
-
/* @__PURE__ */ jsxs("svg", { className: styles$
|
|
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$
|
|
7123
|
+
/* @__PURE__ */ jsx("p", { className: styles$l.label, children: "Standard or express delivery" })
|
|
6910
7124
|
] }),
|
|
6911
|
-
/* @__PURE__ */ jsx("div", { className: styles$
|
|
6912
|
-
/* @__PURE__ */ jsxs("div", { className: styles$
|
|
6913
|
-
/* @__PURE__ */ jsxs("svg", { className: styles$
|
|
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$
|
|
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$
|
|
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$
|
|
6953
|
-
info2 && /* @__PURE__ */ jsx("div", { className: styles$
|
|
6954
|
-
/* @__PURE__ */ jsx("div", { className: styles$
|
|
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$
|
|
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$
|
|
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$
|
|
7116
|
-
/* @__PURE__ */ jsxs("div", { className: styles$
|
|
7117
|
-
/* @__PURE__ */ jsxs("section", { className: styles$
|
|
7118
|
-
/* @__PURE__ */ jsxs("div", { className: styles$
|
|
7119
|
-
/* @__PURE__ */ jsx("h2", { className: styles$
|
|
7120
|
-
/* @__PURE__ */ jsx("span", { className: styles$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
7217
|
-
/* @__PURE__ */ jsx("button", { type: "button", className: styles$
|
|
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$
|
|
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$
|
|
7448
|
+
className: styles$i.image,
|
|
7235
7449
|
priority: i === 0
|
|
7236
7450
|
}
|
|
7237
7451
|
) }, src)) }),
|
|
7238
|
-
media2.length > 1 && /* @__PURE__ */ jsx("div", { className: styles$
|
|
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$
|
|
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$
|
|
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$
|
|
7256
|
-
const title$
|
|
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$
|
|
7262
|
-
scrim: scrim$
|
|
7263
|
-
sheet,
|
|
7475
|
+
const styles$h = {
|
|
7476
|
+
scrim: scrim$3,
|
|
7477
|
+
sheet: sheet$1,
|
|
7264
7478
|
grabber,
|
|
7265
|
-
header: header$
|
|
7266
|
-
title: title$
|
|
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$
|
|
7500
|
+
return /* @__PURE__ */ jsx("div", { className: styles$h.scrim, onClick: onClose, children: /* @__PURE__ */ jsxs(
|
|
7287
7501
|
"div",
|
|
7288
7502
|
{
|
|
7289
|
-
className: styles$
|
|
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$
|
|
7296
|
-
/* @__PURE__ */ jsxs("div", { className: styles$
|
|
7297
|
-
/* @__PURE__ */ jsx("h2", { id: "size-guide-title", className: styles$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
7331
|
-
const title$
|
|
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$
|
|
7339
|
-
const styles$
|
|
7552
|
+
const chevron$2 = "_chevron_9zj90_85";
|
|
7553
|
+
const styles$g = {
|
|
7340
7554
|
root: root$2,
|
|
7341
|
-
header: header$
|
|
7342
|
-
title: title$
|
|
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$
|
|
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$
|
|
7360
|
-
/* @__PURE__ */ jsx("div", { className: styles$
|
|
7361
|
-
/* @__PURE__ */ jsx("div", { className: styles$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
7422
|
-
const title$
|
|
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$
|
|
7644
|
+
const scrim$2 = "_scrim_1j4n8_72";
|
|
7431
7645
|
const stockBadge = "_stockBadge_1j4n8_91";
|
|
7432
|
-
const styles$
|
|
7646
|
+
const styles$f = {
|
|
7433
7647
|
root: root$1,
|
|
7434
|
-
header: header$
|
|
7435
|
-
title: title$
|
|
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$
|
|
7657
|
+
scrim: scrim$2,
|
|
7444
7658
|
stockBadge
|
|
7445
7659
|
};
|
|
7446
7660
|
function ColorSelector({ colours, selected: selected2, onSelect }) {
|
|
7447
|
-
return /* @__PURE__ */ jsxs("section", { className: styles$
|
|
7448
|
-
/* @__PURE__ */ jsxs("p", { className: styles$
|
|
7449
|
-
/* @__PURE__ */ jsx("span", { id: "colour-heading", className: styles$
|
|
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$
|
|
7665
|
+
/* @__PURE__ */ jsx("span", { className: styles$f.value, children: selected2 ?? "Select" })
|
|
7452
7666
|
] }),
|
|
7453
|
-
/* @__PURE__ */ jsx("div", { className: styles$
|
|
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$
|
|
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$
|
|
7468
|
-
c.image ? /* @__PURE__ */ jsx(ShopImage, { src: c.image, alt: "", fill: true, sizes: "79px", className: styles$
|
|
7469
|
-
soldOut && /* @__PURE__ */ jsx("span", { className: styles$
|
|
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$
|
|
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$
|
|
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$
|
|
7510
|
-
/* @__PURE__ */ jsx("legend", { className: styles$
|
|
7511
|
-
/* @__PURE__ */ jsx("div", { className: styles$
|
|
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$
|
|
7524
|
-
selected2 ? styles$
|
|
7525
|
-
disabled2 ? styles$
|
|
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$
|
|
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$
|
|
7759
|
+
const styles$d = {
|
|
7546
7760
|
root,
|
|
7547
7761
|
group,
|
|
7548
|
-
title: title$
|
|
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$
|
|
7562
|
-
/* @__PURE__ */ jsxs("div", { className: styles$
|
|
7563
|
-
/* @__PURE__ */ jsx("h2", { id: "details-heading", className: styles$
|
|
7564
|
-
/* @__PURE__ */ jsx("div", { className: [styles$
|
|
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$
|
|
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$
|
|
7792
|
+
const row$3 = "_row_l4edh_1";
|
|
7579
7793
|
const badge$1 = "_badge_l4edh_11";
|
|
7580
|
-
const styles$
|
|
7581
|
-
row: row$
|
|
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$
|
|
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$
|
|
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$
|
|
7617
|
-
/* @__PURE__ */ jsxs("span", { className: styles$
|
|
7618
|
-
/* @__PURE__ */ jsxs("svg", { className: styles$
|
|
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$
|
|
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$
|
|
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$
|
|
7856
|
+
const styles$a = {
|
|
7643
7857
|
page,
|
|
7644
7858
|
content,
|
|
7645
7859
|
intro,
|
|
7646
7860
|
productInfo,
|
|
7647
7861
|
titlePrice,
|
|
7648
|
-
title: title$
|
|
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$
|
|
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$
|
|
7794
|
-
/* @__PURE__ */ jsxs("div", { className: styles$
|
|
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$
|
|
7797
|
-
/* @__PURE__ */ jsxs("div", { className: styles$
|
|
7798
|
-
/* @__PURE__ */ jsx("h1", { className: styles$
|
|
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$
|
|
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$
|
|
7876
|
-
const title$
|
|
7877
|
-
const subtitle$
|
|
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$
|
|
8093
|
+
const styles$9 = {
|
|
7880
8094
|
hero: hero$1,
|
|
7881
8095
|
image: image$2,
|
|
7882
|
-
scrim,
|
|
7883
|
-
text: text$
|
|
7884
|
-
title: title$
|
|
7885
|
-
subtitle: subtitle$
|
|
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$
|
|
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$
|
|
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$
|
|
8115
|
+
/* @__PURE__ */ jsx("div", { className: styles$9.scrim, "aria-hidden": "true" })
|
|
7902
8116
|
] }),
|
|
7903
|
-
/* @__PURE__ */ jsxs("div", { className: styles$
|
|
7904
|
-
/* @__PURE__ */ jsx("h1", { className: styles$
|
|
7905
|
-
hero2.subtitle && /* @__PURE__ */ jsx("p", { className: styles$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
7950
|
-
/* @__PURE__ */ jsx("ul", { className: styles$
|
|
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$
|
|
8171
|
+
className: styles$7.image,
|
|
7958
8172
|
priority: i === 0
|
|
7959
8173
|
}
|
|
7960
8174
|
) }, src)) }),
|
|
7961
|
-
images.length > 1 && /* @__PURE__ */ jsx("div", { className: styles$
|
|
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$
|
|
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$
|
|
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$
|
|
8001
|
-
/* @__PURE__ */ jsx("ul", { className: styles$
|
|
8002
|
-
/* @__PURE__ */ jsxs("blockquote", { className: styles$
|
|
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$
|
|
8221
|
+
/* @__PURE__ */ jsx("p", { className: styles$6.author, children: q.author })
|
|
8008
8222
|
] }, i)) }),
|
|
8009
|
-
quotes.length > 1 && /* @__PURE__ */ jsx("div", { className: styles$
|
|
8010
|
-
disclaimer2 && /* @__PURE__ */ jsx("p", { className: styles$
|
|
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$
|
|
8015
|
-
const title$
|
|
8228
|
+
const row$2 = "_row_145t0_9";
|
|
8229
|
+
const title$3 = "_title_145t0_21";
|
|
8016
8230
|
const body = "_body_145t0_29";
|
|
8017
|
-
const styles$
|
|
8231
|
+
const styles$5 = {
|
|
8018
8232
|
section: section$1,
|
|
8019
|
-
row: row$
|
|
8020
|
-
title: title$
|
|
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$
|
|
8025
|
-
/* @__PURE__ */ jsx("p", { className: styles$
|
|
8026
|
-
/* @__PURE__ */ jsx("p", { className: styles$
|
|
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$
|
|
8031
|
-
const list = "_list_opjfc_15";
|
|
8032
|
-
const row = "_row_opjfc_26";
|
|
8033
|
-
const styles$
|
|
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$
|
|
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$
|
|
8041
|
-
/* @__PURE__ */ jsx("h2", { className: styles$
|
|
8042
|
-
/* @__PURE__ */ jsx("ul", { className: styles$
|
|
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$
|
|
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$
|
|
8070
|
-
block.title && /* @__PURE__ */ jsx("h2", { className: styles$
|
|
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$
|
|
8077
|
-
/* @__PURE__ */ jsx("h2", { className: styles$
|
|
8078
|
-
/* @__PURE__ */ jsx("ul", { className: styles$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
8483
|
+
className: styles$2.image
|
|
8270
8484
|
}
|
|
8271
8485
|
),
|
|
8272
|
-
/* @__PURE__ */ jsxs("div", { className: styles$
|
|
8273
|
-
/* @__PURE__ */ jsxs("div", { className: styles$
|
|
8274
|
-
/* @__PURE__ */ jsx("h2", { className: styles$
|
|
8275
|
-
/* @__PURE__ */ jsx("p", { className: styles$
|
|
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$
|
|
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$
|
|
8321
|
-
/* @__PURE__ */ jsxs("section", { className: `${styles$
|
|
8322
|
-
/* @__PURE__ */ jsx("div", { className: styles$
|
|
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$
|
|
8544
|
+
className: styles$2.image
|
|
8331
8545
|
}
|
|
8332
8546
|
) }),
|
|
8333
|
-
/* @__PURE__ */ jsxs("div", { className: styles$
|
|
8334
|
-
/* @__PURE__ */ jsxs("div", { className: styles$
|
|
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$
|
|
8554
|
+
className: styles$2.logo
|
|
8341
8555
|
}
|
|
8342
8556
|
),
|
|
8343
|
-
/* @__PURE__ */ jsx("h1", { className: styles$
|
|
8344
|
-
/* @__PURE__ */ jsx("p", { className: styles$
|
|
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$
|
|
8347
|
-
/* @__PURE__ */ jsx("p", { className: styles$
|
|
8348
|
-
/* @__PURE__ */ jsx("svg", { className: styles$
|
|
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,
|