@nok-integration/storefront-react 0.19.49 → 0.19.51

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.
@@ -4647,7 +4647,7 @@ function requireOrderTracking() {
4647
4647
  Object.defineProperty(exports, "__esModule", {
4648
4648
  value: true
4649
4649
  });
4650
- exports.ReturnDetail = exports.ReturnItem = exports.ReturnProgressEntry = exports.CreateReturnRequest = exports.ReturnRequestItem = exports.FanReturnReason = exports.RequestCancellationRequest = exports.FanCancelReason = exports.OrderDetail = exports.ReturnSummary = exports.OrderList = exports.OrderSummaryItem = exports.ReturnOutcome = exports.ReturnStatus = exports.OrderItem = exports.OrderTracking = exports.OrderProgressEntry = exports.OrderProgressStep = void 0;
4650
+ exports.ReturnDetail = exports.ReturnItem = exports.ReturnProgressEntry = exports.CreateReturnRequest = exports.ReturnRequestItem = exports.FanReturnReason = exports.RequestCancellationRequest = exports.FanCancelReason = exports.OrderDetail = exports.ReturnSummary = exports.OrderList = exports.ReturnSummaryItem = exports.OrderSummaryItem = exports.ReturnOutcome = exports.ReturnStatus = exports.OrderItem = exports.OrderTracking = exports.OrderProgressEntry = exports.OrderProgressStep = void 0;
4651
4651
  const zod_1 = requireZod();
4652
4652
  const money_1 = requireMoney();
4653
4653
  const ids_1 = requireIds();
@@ -4693,8 +4693,20 @@ function requireOrderTracking() {
4693
4693
  images: zod_1.z.array(common_1.Url).max(3).optional(),
4694
4694
  return_status: exports.ReturnStatus.optional()
4695
4695
  });
4696
+ exports.ReturnSummaryItem = zod_1.z.object({
4697
+ return_ref: zod_1.z.string().min(1),
4698
+ order_ref: ids_1.OrderRef,
4699
+ status: exports.ReturnStatus,
4700
+ reported_at: common_1.Timestamp,
4701
+ currency: money_1.Currency,
4702
+ headline: zod_1.z.string().min(1),
4703
+ value: money_1.Money,
4704
+ item_count: zod_1.z.number().int().nonnegative(),
4705
+ images: zod_1.z.array(common_1.Url).max(3).optional()
4706
+ });
4696
4707
  exports.OrderList = zod_1.z.object({
4697
- orders: zod_1.z.array(exports.OrderSummaryItem)
4708
+ orders: zod_1.z.array(exports.OrderSummaryItem),
4709
+ returns: zod_1.z.array(exports.ReturnSummaryItem).optional()
4698
4710
  });
4699
4711
  exports.ReturnSummary = zod_1.z.object({
4700
4712
  return_ref: zod_1.z.string().min(1),
@@ -5830,7 +5842,13 @@ const ES = {
5830
5842
  Delivered: "Entregado",
5831
5843
  Cancelled: "Cancelado",
5832
5844
  Refunded: "Reembolsado",
5833
- "In progress": "En curso"
5845
+ "In progress": "En curso",
5846
+ Return: "Devolución",
5847
+ Initiated: "Iniciada",
5848
+ Received: "Recibida",
5849
+ Completed: "Completada",
5850
+ item: "artículo",
5851
+ items: "artículos"
5834
5852
  };
5835
5853
  const CATALOGUES = {
5836
5854
  es: ES
@@ -7040,7 +7058,7 @@ const line$1 = "_line_1pjby_6";
7040
7058
  const thumb$1 = "_thumb_1pjby_12";
7041
7059
  const img$1 = "_img_1pjby_22";
7042
7060
  const placeholder$7 = "_placeholder_1pjby_29";
7043
- const meta$2 = "_meta_1pjby_34";
7061
+ const meta$3 = "_meta_1pjby_34";
7044
7062
  const name$2 = "_name_1pjby_43";
7045
7063
  const attrs$1 = "_attrs_1pjby_55";
7046
7064
  const price$3 = "_price_1pjby_63";
@@ -7051,7 +7069,7 @@ const styles$C = {
7051
7069
  thumb: thumb$1,
7052
7070
  img: img$1,
7053
7071
  placeholder: placeholder$7,
7054
- meta: meta$2,
7072
+ meta: meta$3,
7055
7073
  name: name$2,
7056
7074
  attrs: attrs$1,
7057
7075
  price: price$3,
@@ -7423,7 +7441,7 @@ const item$1 = "_item_1l21t_38";
7423
7441
  const thumb = "_thumb_1l21t_53";
7424
7442
  const img = "_img_1l21t_63";
7425
7443
  const placeholder$6 = "_placeholder_1l21t_70";
7426
- const meta$1 = "_meta_1l21t_75";
7444
+ const meta$2 = "_meta_1l21t_75";
7427
7445
  const name$1 = "_name_1l21t_83";
7428
7446
  const attrs = "_attrs_1l21t_103";
7429
7447
  const price$2 = "_price_1l21t_118";
@@ -7439,7 +7457,7 @@ const styles$z = {
7439
7457
  thumb,
7440
7458
  img,
7441
7459
  placeholder: placeholder$6,
7442
- meta: meta$1,
7460
+ meta: meta$2,
7443
7461
  name: name$1,
7444
7462
  attrs,
7445
7463
  price: price$2,
@@ -8131,14 +8149,8 @@ const TONE = {
8131
8149
  delivered: "delivered",
8132
8150
  cancelled: "critical"
8133
8151
  };
8134
- function OrderStatusBadge({ status, returnStatus }) {
8152
+ function OrderStatusBadge({ status }) {
8135
8153
  const t = useT();
8136
- if (returnStatus) {
8137
- return jsx("span", {
8138
- className: [styles$w.badge, styles$w.critical].join(" "),
8139
- children: t("Return started")
8140
- });
8141
- }
8142
8154
  const label2 = LABEL[status] ?? status.replace(/_/g, " ");
8143
8155
  const tone = TONE[status] ?? "progress";
8144
8156
  return jsx("span", {
@@ -8146,22 +8158,42 @@ function OrderStatusBadge({ status, returnStatus }) {
8146
8158
  children: t(label2)
8147
8159
  });
8148
8160
  }
8149
- const page$1 = "_page_1bhfq_2";
8150
- const empty = "_empty_1bhfq_22";
8151
- const cta$1 = "_cta_1bhfq_32";
8152
- const card$1 = "_card_1bhfq_55";
8153
- const tappable = "_tappable_1bhfq_70";
8154
- const head$1 = "_head_1bhfq_79";
8155
- const heading = "_heading_1bhfq_87";
8156
- const title$g = "_title_1bhfq_96";
8157
- const date = "_date_1bhfq_115";
8158
- const bottom$1 = "_bottom_1bhfq_120";
8159
- const strip = "_strip_1bhfq_128";
8160
- const tile$2 = "_tile_1bhfq_133";
8161
- const image$8 = "_image_1bhfq_143";
8162
- const placeholder$5 = "_placeholder_1bhfq_150";
8163
- const more = "_more_1bhfq_157";
8164
- const chevron$2 = "_chevron_1bhfq_170";
8161
+ const RETURN_LABEL = {
8162
+ reported: "Initiated",
8163
+ package_received: "Received",
8164
+ completed: "Completed"
8165
+ };
8166
+ const RETURN_TONE = {
8167
+ reported: "progress",
8168
+ package_received: "progress",
8169
+ completed: "delivered"
8170
+ };
8171
+ function ReturnStatusBadge({ status }) {
8172
+ const t = useT();
8173
+ const label2 = RETURN_LABEL[status] ?? status.replace(/_/g, " ");
8174
+ const tone = RETURN_TONE[status] ?? "progress";
8175
+ return jsx("span", {
8176
+ className: [styles$w.badge, styles$w[tone]].join(" "),
8177
+ children: t(label2)
8178
+ });
8179
+ }
8180
+ const page$1 = "_page_qj11j_2";
8181
+ const empty = "_empty_qj11j_22";
8182
+ const cta$1 = "_cta_qj11j_32";
8183
+ const card$1 = "_card_qj11j_55";
8184
+ const tappable = "_tappable_qj11j_70";
8185
+ const head$1 = "_head_qj11j_79";
8186
+ const heading = "_heading_qj11j_87";
8187
+ const title$g = "_title_qj11j_96";
8188
+ const date = "_date_qj11j_115";
8189
+ const bottom$1 = "_bottom_qj11j_120";
8190
+ const strip = "_strip_qj11j_128";
8191
+ const meta$1 = "_meta_qj11j_141";
8192
+ const tile$2 = "_tile_qj11j_150";
8193
+ const image$8 = "_image_qj11j_160";
8194
+ const placeholder$5 = "_placeholder_qj11j_167";
8195
+ const more = "_more_qj11j_174";
8196
+ const chevron$2 = "_chevron_qj11j_187";
8165
8197
  const styles$v = {
8166
8198
  page: page$1,
8167
8199
  empty,
@@ -8174,6 +8206,7 @@ const styles$v = {
8174
8206
  date,
8175
8207
  bottom: bottom$1,
8176
8208
  strip,
8209
+ meta: meta$1,
8177
8210
  tile: tile$2,
8178
8211
  image: image$8,
8179
8212
  placeholder: placeholder$5,
@@ -8206,18 +8239,20 @@ function OrderListView(props) {
8206
8239
  })
8207
8240
  });
8208
8241
  }
8209
- function OrderListContent({ onOpenOrder, onStartShopping, locale: localeProp }) {
8242
+ function OrderListContent({ onOpenOrder, onOpenReturn, onStartShopping, locale: localeProp }) {
8210
8243
  const t = useT();
8211
8244
  const { api } = useShop();
8212
8245
  const locale = useLocale(localeProp);
8213
8246
  const [orders2, setOrders] = useState([]);
8247
+ const [returns, setReturns] = useState([]);
8214
8248
  const [state, setState] = useState("loading");
8215
8249
  const [errorCode, setErrorCode] = useState(void 0);
8216
8250
  const load = useCallback(async () => {
8217
8251
  setState("loading");
8218
8252
  try {
8219
- const { orders: rows } = await api.orders.list();
8220
- setOrders(rows);
8253
+ const { orders: rows2, returns: returned } = await api.orders.list();
8254
+ setOrders(rows2);
8255
+ setReturns(returned ?? []);
8221
8256
  setState("ready");
8222
8257
  } catch (err) {
8223
8258
  setErrorCode(codeOf(err));
@@ -8248,7 +8283,7 @@ function OrderListContent({ onOpenOrder, onStartShopping, locale: localeProp })
8248
8283
  onRetry: () => void load()
8249
8284
  });
8250
8285
  }
8251
- if (orders2.length === 0) {
8286
+ if (orders2.length === 0 && returns.length === 0) {
8252
8287
  return jsx("div", {
8253
8288
  className: styles$v.empty,
8254
8289
  children: jsx(EmptyState, {
@@ -8265,17 +8300,115 @@ function OrderListContent({ onOpenOrder, onStartShopping, locale: localeProp })
8265
8300
  })
8266
8301
  });
8267
8302
  }
8303
+ const rows = [...orders2.map((order) => ({
8304
+ at: order.placed_at,
8305
+ key: `o:${order.order_ref}`,
8306
+ order
8307
+ })), ...returns.map((ret) => ({
8308
+ at: ret.reported_at,
8309
+ key: `r:${ret.return_ref}`,
8310
+ ret
8311
+ }))].sort((a, b) => Date.parse(b.at) - Date.parse(a.at));
8268
8312
  return jsx("ul", {
8269
8313
  className: styles$v.page,
8270
- children: orders2.map((order) => jsx("li", {
8271
- children: jsx(OrderCard, {
8272
- order,
8314
+ children: rows.map((row2) => jsx("li", {
8315
+ children: "order" in row2 ? jsx(OrderCard, {
8316
+ order: row2.order,
8273
8317
  locale,
8274
8318
  ...onOpenOrder ? {
8275
- onOpen: () => onOpenOrder(order.order_ref)
8319
+ onOpen: () => onOpenOrder(row2.order.order_ref)
8320
+ } : {}
8321
+ }) : jsx(ReturnCard, {
8322
+ ret: row2.ret,
8323
+ locale,
8324
+ ...onOpenReturn ? {
8325
+ onOpen: () => onOpenReturn(row2.ret.return_ref)
8276
8326
  } : {}
8277
8327
  })
8278
- }, order.order_ref))
8328
+ }, row2.key))
8329
+ });
8330
+ }
8331
+ function ReturnCard({ ret, locale, onOpen }) {
8332
+ const t = useT();
8333
+ const { format: money2 } = useMoney(locale);
8334
+ const items2 = `${ret.item_count} ${ret.item_count === 1 ? t("item") : t("items")}`;
8335
+ const body3 = jsxs(Fragment, {
8336
+ children: [jsxs("div", {
8337
+ className: styles$v.head,
8338
+ children: [jsxs("div", {
8339
+ className: styles$v.heading,
8340
+ children: [jsx("span", {
8341
+ className: styles$v.title,
8342
+ children: `${t("Return")} #${shortRef(ret.return_ref)}`
8343
+ }), jsx("span", {
8344
+ className: styles$v.date,
8345
+ children: formatPlaced(ret.reported_at, locale)
8346
+ })]
8347
+ }), jsx(ReturnStatusBadge, {
8348
+ status: ret.status
8349
+ })]
8350
+ }), jsxs("div", {
8351
+ className: styles$v.bottom,
8352
+ children: [jsx(ReturnThumbnails, {
8353
+ ret
8354
+ }), jsx("span", {
8355
+ className: styles$v.meta,
8356
+ children: `${items2} · ${money2(ret.value)}`
8357
+ }), onOpen && jsx("span", {
8358
+ className: styles$v.chevron,
8359
+ children: jsx(Chevron, {})
8360
+ })]
8361
+ })]
8362
+ });
8363
+ if (!onOpen) return jsx("div", {
8364
+ className: styles$v.card,
8365
+ children: body3
8366
+ });
8367
+ return jsx("button", {
8368
+ type: "button",
8369
+ className: [styles$v.card, styles$v.tappable].join(" "),
8370
+ onClick: onOpen,
8371
+ "aria-label": `${t("Return")} ${shortRef(ret.return_ref)}, ${ret.headline}`,
8372
+ children: body3
8373
+ });
8374
+ }
8375
+ function ReturnThumbnails({ ret }) {
8376
+ const images = ret.images ?? [];
8377
+ const hidden = ret.item_count - TILES + 1;
8378
+ const overflow = images.length >= TILES && hidden > 1 ? hidden : 0;
8379
+ if (images.length === 0) {
8380
+ return jsx("div", {
8381
+ className: styles$v.strip,
8382
+ children: jsx("div", {
8383
+ className: [styles$v.tile, styles$v.placeholder].join(" "),
8384
+ "aria-hidden": "true"
8385
+ })
8386
+ });
8387
+ }
8388
+ return jsx("div", {
8389
+ className: styles$v.strip,
8390
+ children: images.map((src, i) => {
8391
+ const last = i === images.length - 1;
8392
+ return jsxs("div", {
8393
+ className: styles$v.tile,
8394
+ children: [jsx(ShopImage, {
8395
+ src,
8396
+ alt: "",
8397
+ fill: true,
8398
+ sizes: "56px",
8399
+ className: styles$v.image
8400
+ }), overflow > 0 && last && jsxs("span", {
8401
+ className: styles$v.more,
8402
+ children: [jsxs("span", {
8403
+ "aria-hidden": "true",
8404
+ children: ["+", overflow]
8405
+ }), jsx("span", {
8406
+ className: "visually-hidden",
8407
+ children: `and ${overflow} more items`
8408
+ })]
8409
+ })]
8410
+ }, `${src}-${i}`);
8411
+ })
8279
8412
  });
8280
8413
  }
8281
8414
  function OrderCard({ order, locale, onOpen }) {
@@ -8292,8 +8425,7 @@ function OrderCard({ order, locale, onOpen }) {
8292
8425
  children: formatPlaced(order.placed_at, locale)
8293
8426
  })]
8294
8427
  }), jsx(OrderStatusBadge, {
8295
- status: order.status,
8296
- returnStatus: order.return_status
8428
+ status: order.status
8297
8429
  })]
8298
8430
  }), jsxs("div", {
8299
8431
  className: styles$v.bottom,
@@ -10969,24 +11101,24 @@ function ProductView({ sku, initialData, showRecommendations = true, onNotFound
10969
11101
  })
10970
11102
  });
10971
11103
  }
10972
- const showcase = "_showcase_jukpz_14";
10973
- const panel = "_panel_jukpz_19";
10974
- const image = "_image_jukpz_80";
10975
- const hero = "_hero_jukpz_120";
10976
- const heroContent = "_heroContent_jukpz_205";
10977
- const heroText = "_heroText_jukpz_229";
10978
- const logo = "_logo_jukpz_238";
10979
- const heroTitle = "_heroTitle_jukpz_258";
10980
- const heroSub = "_heroSub_jukpz_282";
10981
- const swipe = "_swipe_jukpz_301";
10982
- const swipeLabel = "_swipeLabel_jukpz_308";
10983
- const chevron$1 = "_chevron_jukpz_314";
10984
- const overlay$1 = "_overlay_jukpz_11";
10985
- const copy = "_copy_jukpz_349";
10986
- const title$2 = "_title_jukpz_354";
10987
- const subtitle$1 = "_subtitle_jukpz_361";
10988
- const cta = "_cta_jukpz_367";
10989
- const mosaic = "_mosaic_jukpz_411";
11104
+ const showcase = "_showcase_15pba_14";
11105
+ const panel = "_panel_15pba_57";
11106
+ const image = "_image_15pba_122";
11107
+ const hero = "_hero_15pba_162";
11108
+ const heroContent = "_heroContent_15pba_254";
11109
+ const heroText = "_heroText_15pba_278";
11110
+ const logo = "_logo_15pba_287";
11111
+ const heroTitle = "_heroTitle_15pba_307";
11112
+ const heroSub = "_heroSub_15pba_331";
11113
+ const swipe = "_swipe_15pba_350";
11114
+ const swipeLabel = "_swipeLabel_15pba_357";
11115
+ const chevron$1 = "_chevron_15pba_363";
11116
+ const overlay$1 = "_overlay_15pba_11";
11117
+ const copy = "_copy_15pba_398";
11118
+ const title$2 = "_title_15pba_403";
11119
+ const subtitle$1 = "_subtitle_15pba_410";
11120
+ const cta = "_cta_15pba_416";
11121
+ const mosaic = "_mosaic_15pba_460";
10990
11122
  const styles$2 = {
10991
11123
  showcase,
10992
11124
  panel,
@@ -11710,6 +11842,7 @@ export {
11710
11842
  ReturnFlowView,
11711
11843
  ReturnItemsView,
11712
11844
  ReturnLabelView,
11845
+ ReturnStatusBadge,
11713
11846
  ReturnTrackingView,
11714
11847
  ReviewCarousel,
11715
11848
  SaleBadge,
@@ -1645,7 +1645,7 @@
1645
1645
  background: var(--color-state-surface-critical-soft);
1646
1646
  color: var(--color-state-text-critical);
1647
1647
  }
1648
- ._page_1bhfq_2 {
1648
+ ._page_qj11j_2 {
1649
1649
  list-style: none;
1650
1650
  margin: 0;
1651
1651
  display: flex;
@@ -1653,14 +1653,14 @@
1653
1653
  gap: var(--space-12);
1654
1654
  padding: var(--space-16) var(--space-16) var(--space-24);
1655
1655
  }
1656
- ._empty_1bhfq_22 {
1656
+ ._empty_qj11j_22 {
1657
1657
  display: flex;
1658
1658
  align-items: center;
1659
1659
  justify-content: center;
1660
1660
  min-height: calc(100dvh - var(--header-height) - var(--space-32));
1661
1661
  padding-bottom: var(--space-32);
1662
1662
  }
1663
- ._cta_1bhfq_32 {
1663
+ ._cta_qj11j_32 {
1664
1664
  display: inline-flex;
1665
1665
  align-items: center;
1666
1666
  justify-content: center;
@@ -1677,11 +1677,11 @@
1677
1677
  line-height: 1;
1678
1678
  cursor: pointer;
1679
1679
  }
1680
- ._cta_1bhfq_32:focus-visible {
1680
+ ._cta_qj11j_32:focus-visible {
1681
1681
  outline: none;
1682
1682
  box-shadow: var(--focus-ring);
1683
1683
  }
1684
- ._card_1bhfq_55 {
1684
+ ._card_qj11j_55 {
1685
1685
  display: flex;
1686
1686
  flex-direction: column;
1687
1687
  gap: var(--space-24);
@@ -1695,21 +1695,21 @@
1695
1695
  text-align: left;
1696
1696
  overflow: hidden;
1697
1697
  }
1698
- ._tappable_1bhfq_70 {
1698
+ ._tappable_qj11j_70 {
1699
1699
  cursor: pointer;
1700
1700
  }
1701
- ._tappable_1bhfq_70:focus-visible {
1701
+ ._tappable_qj11j_70:focus-visible {
1702
1702
  outline: none;
1703
1703
  box-shadow: var(--focus-ring);
1704
1704
  }
1705
- ._head_1bhfq_79 {
1705
+ ._head_qj11j_79 {
1706
1706
  display: flex;
1707
1707
  align-items: flex-start;
1708
1708
  justify-content: space-between;
1709
1709
  gap: var(--space-8);
1710
1710
  width: 100%;
1711
1711
  }
1712
- ._heading_1bhfq_87 {
1712
+ ._heading_qj11j_87 {
1713
1713
  display: flex;
1714
1714
  flex: 1 1 auto;
1715
1715
  flex-direction: column;
@@ -1717,7 +1717,7 @@
1717
1717
  min-width: 0;
1718
1718
  color: var(--color-text-default);
1719
1719
  }
1720
- ._title_1bhfq_96 {
1720
+ ._title_qj11j_96 {
1721
1721
  font-size: var(--type-heading-md-size);
1722
1722
  font-weight: var(--font-weight-bold);
1723
1723
  line-height: 1.32;
@@ -1725,22 +1725,30 @@
1725
1725
  text-overflow: ellipsis;
1726
1726
  white-space: nowrap;
1727
1727
  }
1728
- ._date_1bhfq_115 {
1728
+ ._date_qj11j_115 {
1729
1729
  font-size: var(--type-trimmed-sm-size);
1730
1730
  line-height: 10px;
1731
1731
  }
1732
- ._bottom_1bhfq_120 {
1732
+ ._bottom_qj11j_120 {
1733
1733
  display: flex;
1734
1734
  align-items: center;
1735
1735
  justify-content: space-between;
1736
1736
  gap: var(--space-8);
1737
1737
  width: 100%;
1738
1738
  }
1739
- ._strip_1bhfq_128 {
1739
+ ._strip_qj11j_128 {
1740
1740
  display: flex;
1741
1741
  gap: var(--space-6);
1742
1742
  }
1743
- ._tile_1bhfq_133 {
1743
+ ._meta_qj11j_141 {
1744
+ flex: 1 1 auto;
1745
+ text-align: right;
1746
+ font-size: var(--type-trimmed-sm-size);
1747
+ color: var(--color-text-subtle);
1748
+ font-variant-numeric: tabular-nums;
1749
+ white-space: nowrap;
1750
+ }
1751
+ ._tile_qj11j_150 {
1744
1752
  position: relative;
1745
1753
  flex: 0 0 56px;
1746
1754
  width: 56px;
@@ -1749,14 +1757,14 @@
1749
1757
  overflow: hidden;
1750
1758
  background: var(--color-surface-subtle);
1751
1759
  }
1752
- ._image_1bhfq_143 {
1760
+ ._image_qj11j_160 {
1753
1761
  object-fit: cover;
1754
1762
  object-position: top;
1755
1763
  }
1756
- ._placeholder_1bhfq_150 {
1764
+ ._placeholder_qj11j_167 {
1757
1765
  background: var(--color-surface-subtle);
1758
1766
  }
1759
- ._more_1bhfq_157 {
1767
+ ._more_qj11j_174 {
1760
1768
  position: absolute;
1761
1769
  inset: 0;
1762
1770
  display: flex;
@@ -1768,7 +1776,7 @@
1768
1776
  font-weight: var(--font-weight-bold);
1769
1777
  line-height: 1;
1770
1778
  }
1771
- ._chevron_1bhfq_170 {
1779
+ ._chevron_qj11j_187 {
1772
1780
  display: inline-flex;
1773
1781
  flex: 0 0 24px;
1774
1782
  width: 24px;
@@ -3487,11 +3495,19 @@
3487
3495
  column-gap: var(--space-12);
3488
3496
  row-gap: var(--space-12);
3489
3497
  }
3490
- ._showcase_jukpz_14 {
3491
- --chrome-bleed: calc(3 * (100lvh - 100svh));
3498
+ ._showcase_15pba_14 {
3499
+ --chrome-bleed: 0px;
3492
3500
  background: #080e12;
3501
+ display: flow-root;
3502
+ overflow: clip;
3503
+ overflow-clip-margin: var(--chrome-bleed, 0px);
3504
+ }
3505
+ @supports (-webkit-touch-callout: none) {
3506
+ ._showcase_15pba_14 {
3507
+ --chrome-bleed: calc(3 * (100lvh - 100svh));
3508
+ }
3493
3509
  }
3494
- ._panel_jukpz_19 {
3510
+ ._panel_15pba_57 {
3495
3511
  position: relative;
3496
3512
  height: 100lvh;
3497
3513
  height: calc(100lvh + var(--chrome-bleed, 0px));
@@ -3501,15 +3517,14 @@
3501
3517
  overflow: hidden;
3502
3518
  background: #080e12;
3503
3519
  }
3504
- ._panel_jukpz_19:last-child {
3505
- height: 100dvh;
3506
- scroll-margin-bottom: 0;
3520
+ ._panel_15pba_57:last-child {
3521
+ margin-bottom: calc(100dvh - 100lvh - var(--chrome-bleed, 0px));
3507
3522
  }
3508
- ._image_jukpz_80 {
3523
+ ._image_15pba_122 {
3509
3524
  object-fit: cover;
3510
3525
  object-position: 50% var(--slide-focal-y, 50%);
3511
3526
  }
3512
- ._hero_jukpz_120::after {
3527
+ ._hero_15pba_162::after {
3513
3528
  content: "";
3514
3529
  position: absolute;
3515
3530
  inset: 0;
@@ -3524,10 +3539,10 @@
3524
3539
  rgba(8, 14, 18, 0) calc(520px + var(--chrome-bleed, 0px)));
3525
3540
  pointer-events: none;
3526
3541
  }
3527
- ._hero_jukpz_120 ._heroContent_jukpz_205 {
3542
+ ._hero_15pba_162 ._heroContent_15pba_254 {
3528
3543
  position: absolute;
3529
3544
  bottom: 32px;
3530
- bottom: calc(32px + var(--chrome-bleed, 0px) + 100lvh - 100dvh);
3545
+ bottom: calc(32px + var(--chrome-bleed, 0px) + 100lvh - 100svh);
3531
3546
  left: 0;
3532
3547
  right: 0;
3533
3548
  z-index: 1;
@@ -3536,7 +3551,7 @@
3536
3551
  gap: 24px;
3537
3552
  align-items: stretch;
3538
3553
  }
3539
- ._heroText_jukpz_229 {
3554
+ ._heroText_15pba_278 {
3540
3555
  display: flex;
3541
3556
  flex-direction: column;
3542
3557
  gap: 8px;
@@ -3544,11 +3559,11 @@
3544
3559
  padding: 0 24px;
3545
3560
  text-align: center;
3546
3561
  }
3547
- ._heroText_jukpz_229 ._logo_jukpz_238 {
3562
+ ._heroText_15pba_278 ._logo_15pba_287 {
3548
3563
  width: 48px;
3549
3564
  height: 48px;
3550
3565
  }
3551
- ._heroTitle_jukpz_258 {
3566
+ ._heroTitle_15pba_307 {
3552
3567
  width: 100%;
3553
3568
  margin: 0;
3554
3569
  font-family:
@@ -3563,33 +3578,33 @@
3563
3578
  letter-spacing: -1.12px;
3564
3579
  color: #f9fafa;
3565
3580
  }
3566
- ._heroSub_jukpz_282 {
3581
+ ._heroSub_15pba_331 {
3567
3582
  margin: 0;
3568
3583
  font-size: 16px;
3569
3584
  line-height: 1.55;
3570
3585
  color: #f9fafa;
3571
3586
  max-width: 327px;
3572
3587
  }
3573
- ._swipe_jukpz_301 {
3588
+ ._swipe_15pba_350 {
3574
3589
  display: flex;
3575
3590
  flex-direction: column;
3576
3591
  align-items: center;
3577
3592
  gap: 6px;
3578
3593
  padding: 8px 0;
3579
3594
  }
3580
- ._swipeLabel_jukpz_308 {
3595
+ ._swipeLabel_15pba_357 {
3581
3596
  margin: 0;
3582
3597
  font-size: 14px;
3583
3598
  line-height: 1;
3584
3599
  color: rgba(255, 255, 255, 0.54);
3585
3600
  }
3586
- ._chevron_jukpz_314 {
3601
+ ._chevron_15pba_363 {
3587
3602
  width: 24px;
3588
3603
  height: 24px;
3589
3604
  color: rgba(255, 255, 255, 0.54);
3590
- animation: _bob_jukpz_1 1.8s ease-in-out infinite;
3605
+ animation: _bob_15pba_1 1.8s ease-in-out infinite;
3591
3606
  }
3592
- @keyframes _bob_jukpz_1 {
3607
+ @keyframes _bob_15pba_1 {
3593
3608
  0%, 100% {
3594
3609
  transform: translateY(0);
3595
3610
  }
@@ -3597,7 +3612,7 @@
3597
3612
  transform: translateY(4px);
3598
3613
  }
3599
3614
  }
3600
- ._overlay_jukpz_11 {
3615
+ ._overlay_15pba_11 {
3601
3616
  position: absolute;
3602
3617
  inset: 0;
3603
3618
  z-index: 1;
@@ -3612,27 +3627,27 @@
3612
3627
  gap: 16px;
3613
3628
  align-items: flex-start;
3614
3629
  padding: 0 24px 24px;
3615
- padding-bottom: calc(24px + var(--chrome-bleed, 0px) + 100lvh - 100dvh);
3630
+ padding-bottom: calc(24px + var(--chrome-bleed, 0px) + 100lvh - 100svh);
3616
3631
  }
3617
- ._copy_jukpz_349 {
3632
+ ._copy_15pba_398 {
3618
3633
  display: flex;
3619
3634
  flex-direction: column;
3620
3635
  gap: 8px;
3621
3636
  }
3622
- ._title_jukpz_354 {
3637
+ ._title_15pba_403 {
3623
3638
  margin: 0;
3624
3639
  font-size: 32px;
3625
3640
  line-height: 1.2;
3626
3641
  font-weight: 700;
3627
3642
  color: #f9fafa;
3628
3643
  }
3629
- ._subtitle_jukpz_361 {
3644
+ ._subtitle_15pba_410 {
3630
3645
  margin: 0;
3631
3646
  font-size: 16px;
3632
3647
  line-height: 1.55;
3633
3648
  color: #f9fafa;
3634
3649
  }
3635
- ._cta_jukpz_367 {
3650
+ ._cta_15pba_416 {
3636
3651
  display: inline-flex;
3637
3652
  align-items: center;
3638
3653
  justify-content: center;
@@ -3646,19 +3661,19 @@
3646
3661
  font-weight: 700;
3647
3662
  text-decoration: none;
3648
3663
  }
3649
- ._cta_jukpz_367::after {
3664
+ ._cta_15pba_416::after {
3650
3665
  content: "";
3651
3666
  position: absolute;
3652
3667
  inset: 0;
3653
3668
  }
3654
- ._cta_jukpz_367:active {
3669
+ ._cta_15pba_416:active {
3655
3670
  background: rgba(249, 250, 250, 0.12);
3656
3671
  }
3657
- ._cta_jukpz_367:focus-visible {
3672
+ ._cta_15pba_416:focus-visible {
3658
3673
  outline: none;
3659
3674
  box-shadow: var(--focus-ring);
3660
3675
  }
3661
- ._mosaic_jukpz_411 {
3676
+ ._mosaic_15pba_460 {
3662
3677
  background: #080e12;
3663
3678
  }
3664
3679
  ._header_r9jjq_14 {