@reblu/site-blocks 0.33.0 → 0.34.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/CHANGELOG.md +23 -0
- package/README.md +163 -2
- package/dist/client.cjs +459 -0
- package/dist/client.cjs.map +1 -1
- package/dist/client.d.cts +142 -3
- package/dist/client.d.ts +142 -3
- package/dist/client.js +453 -0
- package/dist/client.js.map +1 -1
- package/dist/index.cjs +611 -483
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +57 -78
- package/dist/index.d.ts +57 -78
- package/dist/index.js +607 -484
- package/dist/index.js.map +1 -1
- package/dist/{full-invoice-fields-DMX0sjPG.d.cts → page-links-C0nXQzAW.d.cts} +105 -2
- package/dist/{full-invoice-fields-DMX0sjPG.d.ts → page-links-C0nXQzAW.d.ts} +105 -2
- package/package.json +3 -3
package/dist/index.js
CHANGED
|
@@ -13966,22 +13966,101 @@ function ProfileCard({
|
|
|
13966
13966
|
);
|
|
13967
13967
|
}
|
|
13968
13968
|
|
|
13969
|
-
// src/components/
|
|
13969
|
+
// src/components/linked-pages.tsx
|
|
13970
13970
|
import { cn as cn8 } from "@reblu/site-ui/utils";
|
|
13971
|
+
|
|
13972
|
+
// src/lib/page-links.ts
|
|
13973
|
+
function linkKey(link) {
|
|
13974
|
+
return `${link.category?.slug ?? ""}/${link.slug}`;
|
|
13975
|
+
}
|
|
13976
|
+
function linkFilterOptions(items) {
|
|
13977
|
+
const seen = /* @__PURE__ */ new Map();
|
|
13978
|
+
for (const item of items) {
|
|
13979
|
+
for (const link of item.links ?? []) {
|
|
13980
|
+
const key2 = linkKey(link);
|
|
13981
|
+
if (!seen.has(key2)) seen.set(key2, { key: key2, label: link.title });
|
|
13982
|
+
}
|
|
13983
|
+
}
|
|
13984
|
+
return [...seen.values()];
|
|
13985
|
+
}
|
|
13986
|
+
function filterByLink(items, key2) {
|
|
13987
|
+
if (key2 === null) return items;
|
|
13988
|
+
return items.filter((item) => (item.links ?? []).some((link) => linkKey(link) === key2));
|
|
13989
|
+
}
|
|
13990
|
+
|
|
13991
|
+
// src/components/linked-pages.tsx
|
|
13971
13992
|
import { jsx as jsx12, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
13993
|
+
function LinkedPagesGrid({
|
|
13994
|
+
pages,
|
|
13995
|
+
pageHref = (page) => `/${page.slug}`,
|
|
13996
|
+
heading,
|
|
13997
|
+
className
|
|
13998
|
+
}) {
|
|
13999
|
+
if (!pages || pages.length === 0) return null;
|
|
14000
|
+
return /* @__PURE__ */ jsxs12("section", { className: cn8("space-y-6", className), "data-slot": "linked-pages", children: [
|
|
14001
|
+
heading && /* @__PURE__ */ jsx12("h2", { className: "text-2xl font-bold", children: heading }),
|
|
14002
|
+
/* @__PURE__ */ jsx12("ul", { className: "grid list-none grid-cols-1 gap-6 p-0 sm:grid-cols-2 lg:grid-cols-3", children: pages.map((page) => /* @__PURE__ */ jsx12("li", { children: /* @__PURE__ */ jsxs12(
|
|
14003
|
+
"a",
|
|
14004
|
+
{
|
|
14005
|
+
href: pageHref(page),
|
|
14006
|
+
className: "group flex h-full flex-col overflow-hidden rounded-lg border bg-card transition-shadow hover:shadow-lg",
|
|
14007
|
+
children: [
|
|
14008
|
+
page.coverImageUrl && /* @__PURE__ */ jsx12("div", { className: "relative aspect-video overflow-hidden bg-muted", children: /* @__PURE__ */ jsx12(
|
|
14009
|
+
"img",
|
|
14010
|
+
{
|
|
14011
|
+
src: page.coverImageUrl,
|
|
14012
|
+
alt: "",
|
|
14013
|
+
loading: "lazy",
|
|
14014
|
+
className: "h-full w-full object-cover transition-transform group-hover:scale-105"
|
|
14015
|
+
}
|
|
14016
|
+
) }),
|
|
14017
|
+
/* @__PURE__ */ jsxs12("div", { className: "flex flex-1 flex-col gap-2 p-4", children: [
|
|
14018
|
+
/* @__PURE__ */ jsx12("h3", { className: "font-semibold leading-tight transition-colors group-hover:text-primary", children: page.title }),
|
|
14019
|
+
page.excerpt && /* @__PURE__ */ jsx12("p", { className: "line-clamp-2 text-sm text-muted-foreground", children: page.excerpt })
|
|
14020
|
+
] })
|
|
14021
|
+
]
|
|
14022
|
+
}
|
|
14023
|
+
) }, linkKey(page))) })
|
|
14024
|
+
] });
|
|
14025
|
+
}
|
|
14026
|
+
function TeamGrid({
|
|
14027
|
+
members,
|
|
14028
|
+
memberHref,
|
|
14029
|
+
heading,
|
|
14030
|
+
className
|
|
14031
|
+
}) {
|
|
14032
|
+
if (!members || members.length === 0) return null;
|
|
14033
|
+
return /* @__PURE__ */ jsxs12("section", { className: cn8("space-y-6", className), "data-slot": "team-grid", children: [
|
|
14034
|
+
heading && /* @__PURE__ */ jsx12("h2", { className: "text-2xl font-bold", children: heading }),
|
|
14035
|
+
/* @__PURE__ */ jsx12("ul", { className: "grid list-none grid-cols-1 gap-6 p-0 sm:grid-cols-2 lg:grid-cols-3", children: members.map((member) => /* @__PURE__ */ jsx12("li", { children: /* @__PURE__ */ jsx12(
|
|
14036
|
+
ProfileCard,
|
|
14037
|
+
{
|
|
14038
|
+
name: member.title,
|
|
14039
|
+
role: member.role ?? void 0,
|
|
14040
|
+
imageUrl: member.coverImageUrl ?? void 0,
|
|
14041
|
+
href: memberHref?.(member),
|
|
14042
|
+
className: "h-full"
|
|
14043
|
+
}
|
|
14044
|
+
) }, linkKey(member))) })
|
|
14045
|
+
] });
|
|
14046
|
+
}
|
|
14047
|
+
|
|
14048
|
+
// src/components/product-card.tsx
|
|
14049
|
+
import { cn as cn9 } from "@reblu/site-ui/utils";
|
|
14050
|
+
import { jsx as jsx13, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
13972
14051
|
function ProductCard({ product, href, currencyCode = "EUR", locale, className }) {
|
|
13973
14052
|
const image = product.images.find((i) => i.isPrimary) ?? product.images[0];
|
|
13974
14053
|
const hasDiscount = product.comparePrice != null && product.comparePrice > product.price;
|
|
13975
|
-
return /* @__PURE__ */
|
|
14054
|
+
return /* @__PURE__ */ jsxs13(
|
|
13976
14055
|
"article",
|
|
13977
14056
|
{
|
|
13978
|
-
className:
|
|
14057
|
+
className: cn9(
|
|
13979
14058
|
"group flex flex-col overflow-hidden rounded-lg border bg-card transition-shadow hover:shadow-lg",
|
|
13980
14059
|
className
|
|
13981
14060
|
),
|
|
13982
14061
|
"data-slot": "product-card",
|
|
13983
14062
|
children: [
|
|
13984
|
-
/* @__PURE__ */
|
|
14063
|
+
/* @__PURE__ */ jsx13("div", { className: "relative aspect-square overflow-hidden bg-muted", children: image ? /* @__PURE__ */ jsx13(
|
|
13985
14064
|
"img",
|
|
13986
14065
|
{
|
|
13987
14066
|
src: image.url,
|
|
@@ -13989,14 +14068,14 @@ function ProductCard({ product, href, currencyCode = "EUR", locale, className })
|
|
|
13989
14068
|
loading: "lazy",
|
|
13990
14069
|
className: "h-full w-full object-cover transition-transform group-hover:scale-105"
|
|
13991
14070
|
}
|
|
13992
|
-
) : /* @__PURE__ */
|
|
13993
|
-
/* @__PURE__ */
|
|
13994
|
-
product.category && /* @__PURE__ */
|
|
13995
|
-
/* @__PURE__ */
|
|
13996
|
-
product.shortDescription && /* @__PURE__ */
|
|
13997
|
-
/* @__PURE__ */
|
|
13998
|
-
/* @__PURE__ */
|
|
13999
|
-
hasDiscount && /* @__PURE__ */
|
|
14071
|
+
) : /* @__PURE__ */ jsx13("div", { className: "flex h-full items-center justify-center text-4xl text-muted-foreground/30", "aria-hidden": "true", children: "\u{1F6CD}\uFE0F" }) }),
|
|
14072
|
+
/* @__PURE__ */ jsxs13("div", { className: "flex flex-1 flex-col gap-2 p-4", children: [
|
|
14073
|
+
product.category && /* @__PURE__ */ jsx13("span", { className: "inline-flex w-fit items-center rounded-full bg-secondary px-2.5 py-0.5 text-xs font-medium text-secondary-foreground", children: product.category.name }),
|
|
14074
|
+
/* @__PURE__ */ jsx13("h3", { className: "text-base font-semibold leading-tight", children: href ? /* @__PURE__ */ jsx13("a", { href, className: "transition-colors hover:text-primary", children: product.name }) : product.name }),
|
|
14075
|
+
product.shortDescription && /* @__PURE__ */ jsx13("p", { className: "line-clamp-2 text-sm text-muted-foreground", children: product.shortDescription }),
|
|
14076
|
+
/* @__PURE__ */ jsxs13("div", { className: "mt-auto flex items-baseline gap-2 pt-2", children: [
|
|
14077
|
+
/* @__PURE__ */ jsx13("span", { className: "text-lg font-bold text-foreground", children: formatPrice(product.price, currencyCode, locale) }),
|
|
14078
|
+
hasDiscount && /* @__PURE__ */ jsx13("span", { className: "text-sm text-muted-foreground line-through", children: formatPrice(product.comparePrice, currencyCode, locale) })
|
|
14000
14079
|
] })
|
|
14001
14080
|
] })
|
|
14002
14081
|
]
|
|
@@ -14198,7 +14277,7 @@ var __iconNode8 = [
|
|
|
14198
14277
|
var Truck = createLucideIcon("truck", __iconNode8);
|
|
14199
14278
|
|
|
14200
14279
|
// src/components/product-trust-items.tsx
|
|
14201
|
-
import { jsx as
|
|
14280
|
+
import { jsx as jsx14, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
14202
14281
|
var DEFAULT_TRUST_ICONS = Object.freeze({
|
|
14203
14282
|
shipping: Truck,
|
|
14204
14283
|
returns: RotateCcw,
|
|
@@ -14232,17 +14311,17 @@ function ProductTrustItems({
|
|
|
14232
14311
|
return [{ key: `${index}-${icon}`, Icon: Icon2, text: text3 }];
|
|
14233
14312
|
});
|
|
14234
14313
|
if (rows.length === 0) return null;
|
|
14235
|
-
return /* @__PURE__ */
|
|
14236
|
-
/* @__PURE__ */
|
|
14237
|
-
/* @__PURE__ */
|
|
14314
|
+
return /* @__PURE__ */ jsx14(List, { "data-slot": "product-trust-items", className: slotClassName("space-y-2.5", "", className), children: rows.map(({ key: key2, Icon: Icon2, text: text3 }) => /* @__PURE__ */ jsxs14("li", { className: slotClassName("flex items-center gap-3", "text-sm text-muted-foreground", itemClassName), children: [
|
|
14315
|
+
/* @__PURE__ */ jsx14(Icon2, { "aria-hidden": "true", className: "h-4 w-4 shrink-0 text-foreground/60" }),
|
|
14316
|
+
/* @__PURE__ */ jsx14("span", { children: text3 })
|
|
14238
14317
|
] }, key2)) });
|
|
14239
14318
|
}
|
|
14240
14319
|
|
|
14241
14320
|
// src/components/faq-accordion.tsx
|
|
14242
|
-
import { cn as
|
|
14321
|
+
import { cn as cn10 } from "@reblu/site-ui/utils";
|
|
14243
14322
|
|
|
14244
14323
|
// src/components/_heading.tsx
|
|
14245
|
-
import { jsx as
|
|
14324
|
+
import { jsx as jsx15 } from "react/jsx-runtime";
|
|
14246
14325
|
function nextHeadingLevel(level) {
|
|
14247
14326
|
return Math.min(level + 1, 6);
|
|
14248
14327
|
}
|
|
@@ -14252,11 +14331,11 @@ function Heading({
|
|
|
14252
14331
|
children: children2
|
|
14253
14332
|
}) {
|
|
14254
14333
|
const Tag = `h${level}`;
|
|
14255
|
-
return /* @__PURE__ */
|
|
14334
|
+
return /* @__PURE__ */ jsx15(Tag, { className, children: children2 });
|
|
14256
14335
|
}
|
|
14257
14336
|
|
|
14258
14337
|
// src/components/faq-accordion.tsx
|
|
14259
|
-
import { jsx as
|
|
14338
|
+
import { jsx as jsx16, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
14260
14339
|
function FaqAccordion({
|
|
14261
14340
|
items,
|
|
14262
14341
|
heading,
|
|
@@ -14267,18 +14346,18 @@ function FaqAccordion({
|
|
|
14267
14346
|
}) {
|
|
14268
14347
|
const visible = items.map((item, index) => ({ item, index })).filter(({ item }) => item.q.trim() !== "");
|
|
14269
14348
|
if (visible.length === 0) return null;
|
|
14270
|
-
return /* @__PURE__ */
|
|
14271
|
-
heading && /* @__PURE__ */
|
|
14272
|
-
/* @__PURE__ */
|
|
14349
|
+
return /* @__PURE__ */ jsxs15("div", { className: cn10("space-y-4", className), "data-slot": "faq-accordion", children: [
|
|
14350
|
+
heading && /* @__PURE__ */ jsx16(Heading, { level: headingLevel, className: "text-2xl font-semibold tracking-tight", children: heading }),
|
|
14351
|
+
/* @__PURE__ */ jsx16("div", { className: "divide-y divide-border rounded-xl border border-border", children: visible.map(({ item, index }) => /* @__PURE__ */ jsxs15(
|
|
14273
14352
|
"details",
|
|
14274
14353
|
{
|
|
14275
14354
|
className: "group px-4",
|
|
14276
14355
|
"data-slot": "faq-item",
|
|
14277
14356
|
...defaultOpen.includes(index) ? { open: true } : {},
|
|
14278
14357
|
children: [
|
|
14279
|
-
/* @__PURE__ */
|
|
14280
|
-
questionHeadingLevel ? /* @__PURE__ */
|
|
14281
|
-
/* @__PURE__ */
|
|
14358
|
+
/* @__PURE__ */ jsxs15("summary", { className: "flex cursor-pointer list-none items-center justify-between gap-4 py-4 font-medium focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ring [&::-webkit-details-marker]:hidden", children: [
|
|
14359
|
+
questionHeadingLevel ? /* @__PURE__ */ jsx16(Heading, { level: questionHeadingLevel, className: "text-base font-medium", children: item.q }) : /* @__PURE__ */ jsx16("span", { children: item.q }),
|
|
14360
|
+
/* @__PURE__ */ jsx16(
|
|
14282
14361
|
"span",
|
|
14283
14362
|
{
|
|
14284
14363
|
"aria-hidden": "true",
|
|
@@ -14287,7 +14366,7 @@ function FaqAccordion({
|
|
|
14287
14366
|
}
|
|
14288
14367
|
)
|
|
14289
14368
|
] }),
|
|
14290
|
-
/* @__PURE__ */
|
|
14369
|
+
/* @__PURE__ */ jsx16("p", { className: "whitespace-pre-line pb-4 text-muted-foreground", children: item.a })
|
|
14291
14370
|
]
|
|
14292
14371
|
},
|
|
14293
14372
|
index
|
|
@@ -14296,7 +14375,7 @@ function FaqAccordion({
|
|
|
14296
14375
|
}
|
|
14297
14376
|
|
|
14298
14377
|
// src/components/trust-badges.tsx
|
|
14299
|
-
import { cn as
|
|
14378
|
+
import { cn as cn11 } from "@reblu/site-ui/utils";
|
|
14300
14379
|
|
|
14301
14380
|
// src/lib/trust-badge-media.ts
|
|
14302
14381
|
var DEFAULT_ADHESION_NUMBER_LABEL = "N.\xBA de adhesi\xF3n";
|
|
@@ -14324,7 +14403,7 @@ function trustBadgeAlt(badge, numberLabel = DEFAULT_ADHESION_NUMBER_LABEL) {
|
|
|
14324
14403
|
}
|
|
14325
14404
|
|
|
14326
14405
|
// src/components/trust-badges.tsx
|
|
14327
|
-
import { jsx as
|
|
14406
|
+
import { jsx as jsx17, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
14328
14407
|
var DEFAULT_TRUST_BADGE_HEADINGS = Object.freeze(
|
|
14329
14408
|
{
|
|
14330
14409
|
PARTNER: "Colaboradores",
|
|
@@ -14353,18 +14432,18 @@ function BadgeContent({ badge, logoClassName }) {
|
|
|
14353
14432
|
if (src) {
|
|
14354
14433
|
return (
|
|
14355
14434
|
// eslint-disable-next-line @next/next/no-img-element -- framework-agnostic SDK; the SITE owns image optimisation
|
|
14356
|
-
/* @__PURE__ */
|
|
14435
|
+
/* @__PURE__ */ jsx17(
|
|
14357
14436
|
"img",
|
|
14358
14437
|
{
|
|
14359
14438
|
src,
|
|
14360
14439
|
alt: trustBadgeAlt(badge),
|
|
14361
14440
|
loading: "lazy",
|
|
14362
|
-
className:
|
|
14441
|
+
className: cn11("h-12 w-auto object-contain", logoClassName)
|
|
14363
14442
|
}
|
|
14364
14443
|
)
|
|
14365
14444
|
);
|
|
14366
14445
|
}
|
|
14367
|
-
return /* @__PURE__ */
|
|
14446
|
+
return /* @__PURE__ */ jsx17("span", { className: "text-sm font-medium", children: badge.name });
|
|
14368
14447
|
}
|
|
14369
14448
|
function TrustBadges({
|
|
14370
14449
|
badges,
|
|
@@ -14392,14 +14471,14 @@ function TrustBadges({
|
|
|
14392
14471
|
if (groups.length === 0) return null;
|
|
14393
14472
|
const hasHeading = heading !== void 0 && heading !== null && heading !== "";
|
|
14394
14473
|
const groupHeadingLevel = hasHeading ? nextHeadingLevel(headingLevel) : headingLevel;
|
|
14395
|
-
const content = groups.map(({ type, groupHeading, items }) => /* @__PURE__ */
|
|
14474
|
+
const content = groups.map(({ type, groupHeading, items }) => /* @__PURE__ */ jsxs16(
|
|
14396
14475
|
"div",
|
|
14397
14476
|
{
|
|
14398
14477
|
"data-slot": "trust-badge-group",
|
|
14399
14478
|
"data-type": type,
|
|
14400
|
-
className:
|
|
14479
|
+
className: cn11("space-y-3", groupClassName),
|
|
14401
14480
|
children: [
|
|
14402
|
-
groupHeading ? /* @__PURE__ */
|
|
14481
|
+
groupHeading ? /* @__PURE__ */ jsx17(
|
|
14403
14482
|
Heading,
|
|
14404
14483
|
{
|
|
14405
14484
|
level: groupHeadingLevel,
|
|
@@ -14411,30 +14490,30 @@ function TrustBadges({
|
|
|
14411
14490
|
children: groupHeading
|
|
14412
14491
|
}
|
|
14413
14492
|
) : null,
|
|
14414
|
-
/* @__PURE__ */
|
|
14493
|
+
/* @__PURE__ */ jsx17("ul", { className: cn11("flex flex-wrap items-center gap-6", listClassName), children: items.map((badge) => {
|
|
14415
14494
|
const href = safeHref(badge.url);
|
|
14416
|
-
return /* @__PURE__ */
|
|
14417
|
-
/* @__PURE__ */
|
|
14495
|
+
return /* @__PURE__ */ jsx17("li", { children: href ? /* @__PURE__ */ jsxs16("a", { href, target: "_blank", rel: "noopener noreferrer", className: "inline-flex", children: [
|
|
14496
|
+
/* @__PURE__ */ jsx17(BadgeContent, { badge, logoClassName }),
|
|
14418
14497
|
" ",
|
|
14419
|
-
/* @__PURE__ */
|
|
14420
|
-
] }) : /* @__PURE__ */
|
|
14498
|
+
/* @__PURE__ */ jsx17("span", { className: "sr-only", children: newWindowLabel })
|
|
14499
|
+
] }) : /* @__PURE__ */ jsx17(BadgeContent, { badge, logoClassName }) }, badge.id);
|
|
14421
14500
|
}) })
|
|
14422
14501
|
]
|
|
14423
14502
|
},
|
|
14424
14503
|
type
|
|
14425
14504
|
));
|
|
14426
14505
|
if (!hasHeading) {
|
|
14427
|
-
return /* @__PURE__ */
|
|
14506
|
+
return /* @__PURE__ */ jsx17("div", { "data-slot": "trust-badges", className: cn11("space-y-6", className), children: content });
|
|
14428
14507
|
}
|
|
14429
14508
|
const Tag = `h${headingLevel}`;
|
|
14430
|
-
return /* @__PURE__ */
|
|
14509
|
+
return /* @__PURE__ */ jsxs16(
|
|
14431
14510
|
"section",
|
|
14432
14511
|
{
|
|
14433
14512
|
"data-slot": "trust-badges",
|
|
14434
14513
|
"aria-labelledby": headingId,
|
|
14435
|
-
className:
|
|
14514
|
+
className: cn11("space-y-6", className),
|
|
14436
14515
|
children: [
|
|
14437
|
-
/* @__PURE__ */
|
|
14516
|
+
/* @__PURE__ */ jsx17(
|
|
14438
14517
|
Tag,
|
|
14439
14518
|
{
|
|
14440
14519
|
id: headingId,
|
|
@@ -14449,8 +14528,8 @@ function TrustBadges({
|
|
|
14449
14528
|
}
|
|
14450
14529
|
|
|
14451
14530
|
// src/components/arbitration-badge.tsx
|
|
14452
|
-
import { cn as
|
|
14453
|
-
import { jsx as
|
|
14531
|
+
import { cn as cn12 } from "@reblu/site-ui/utils";
|
|
14532
|
+
import { jsx as jsx18, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
14454
14533
|
function isArbitrationBadge(value) {
|
|
14455
14534
|
if (typeof value !== "object" || value === null) return false;
|
|
14456
14535
|
const entry = value;
|
|
@@ -14468,35 +14547,35 @@ function ArbitrationBadge({
|
|
|
14468
14547
|
if (!Array.isArray(badges)) return null;
|
|
14469
14548
|
const items = badges.filter(isArbitrationBadge);
|
|
14470
14549
|
if (items.length === 0) return null;
|
|
14471
|
-
return /* @__PURE__ */
|
|
14550
|
+
return /* @__PURE__ */ jsx18(
|
|
14472
14551
|
"ul",
|
|
14473
14552
|
{
|
|
14474
14553
|
"data-slot": "arbitration-badges",
|
|
14475
|
-
className:
|
|
14554
|
+
className: cn12("flex flex-wrap items-start gap-6", className),
|
|
14476
14555
|
children: items.map((badge) => {
|
|
14477
14556
|
const src = safeLogoSrc(badge.logoUrl);
|
|
14478
14557
|
const href = safeHref(badge.url);
|
|
14479
14558
|
const number2 = adhesionNumberOf(badge);
|
|
14480
|
-
const caption = number2 && (showNumber || !src) ? /* @__PURE__ */
|
|
14481
|
-
const content = /* @__PURE__ */
|
|
14559
|
+
const caption = number2 && (showNumber || !src) ? /* @__PURE__ */ jsx18("span", { className: cn12("text-xs", numberClassName), "aria-hidden": src ? "true" : void 0, children: `${numberLabel} ${number2}` }) : null;
|
|
14560
|
+
const content = /* @__PURE__ */ jsxs17("span", { className: "inline-flex flex-col items-center gap-1 text-center", children: [
|
|
14482
14561
|
src ? (
|
|
14483
14562
|
// eslint-disable-next-line @next/next/no-img-element -- framework-agnostic SDK; the SITE owns image optimisation
|
|
14484
|
-
/* @__PURE__ */
|
|
14563
|
+
/* @__PURE__ */ jsx18(
|
|
14485
14564
|
"img",
|
|
14486
14565
|
{
|
|
14487
14566
|
src,
|
|
14488
14567
|
alt: trustBadgeAlt(badge, numberLabel),
|
|
14489
14568
|
loading: "lazy",
|
|
14490
|
-
className:
|
|
14569
|
+
className: cn12("h-16 w-auto object-contain", logoClassName)
|
|
14491
14570
|
}
|
|
14492
14571
|
)
|
|
14493
|
-
) : /* @__PURE__ */
|
|
14572
|
+
) : /* @__PURE__ */ jsx18("span", { className: "text-sm font-medium", children: badge.name }),
|
|
14494
14573
|
caption
|
|
14495
14574
|
] });
|
|
14496
|
-
return /* @__PURE__ */
|
|
14575
|
+
return /* @__PURE__ */ jsx18("li", { "data-slot": "arbitration-badge", children: href ? /* @__PURE__ */ jsxs17("a", { href, target: "_blank", rel: "noopener noreferrer", className: "inline-flex", children: [
|
|
14497
14576
|
content,
|
|
14498
14577
|
" ",
|
|
14499
|
-
/* @__PURE__ */
|
|
14578
|
+
/* @__PURE__ */ jsx18("span", { className: "sr-only", children: newWindowLabel })
|
|
14500
14579
|
] }) : content }, badge.id);
|
|
14501
14580
|
})
|
|
14502
14581
|
}
|
|
@@ -14504,8 +14583,11 @@ function ArbitrationBadge({
|
|
|
14504
14583
|
}
|
|
14505
14584
|
|
|
14506
14585
|
// src/components/reviews.tsx
|
|
14507
|
-
import { cn as
|
|
14508
|
-
|
|
14586
|
+
import { cn as cn14 } from "@reblu/site-ui/utils";
|
|
14587
|
+
|
|
14588
|
+
// src/components/_review-card.tsx
|
|
14589
|
+
import { cn as cn13 } from "@reblu/site-ui/utils";
|
|
14590
|
+
import { jsx as jsx19, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
14509
14591
|
function isHttps(value) {
|
|
14510
14592
|
if (typeof value !== "string") return false;
|
|
14511
14593
|
try {
|
|
@@ -14515,7 +14597,7 @@ function isHttps(value) {
|
|
|
14515
14597
|
return false;
|
|
14516
14598
|
}
|
|
14517
14599
|
}
|
|
14518
|
-
function
|
|
14600
|
+
function isUsableReview(value) {
|
|
14519
14601
|
if (typeof value !== "object" || value === null) return false;
|
|
14520
14602
|
const review = value;
|
|
14521
14603
|
return typeof review.id === "string" && typeof review.authorName === "string" && review.authorName.trim() !== "" && typeof review.rating === "number" && Number.isInteger(review.rating) && review.rating >= 1 && review.rating <= 5 && typeof review.sourceName === "string" && isHttps(review.sourceUrl);
|
|
@@ -14528,7 +14610,7 @@ function formatDay(day, locale) {
|
|
|
14528
14610
|
}
|
|
14529
14611
|
var STAR_PATH = "M12 2.5l2.9 5.9 6.5.9-4.7 4.6 1.1 6.5L12 17.3l-5.8 3.1 1.1-6.5L2.6 9.3l6.5-.9z";
|
|
14530
14612
|
function Stars({ rating }) {
|
|
14531
|
-
return /* @__PURE__ */
|
|
14613
|
+
return /* @__PURE__ */ jsx19("div", { role: "img", "aria-label": `${rating} de 5 estrellas`, className: "flex gap-0.5", children: [1, 2, 3, 4, 5].map((n) => /* @__PURE__ */ jsx19(
|
|
14532
14614
|
"svg",
|
|
14533
14615
|
{
|
|
14534
14616
|
"aria-hidden": "true",
|
|
@@ -14540,11 +14622,56 @@ function Stars({ rating }) {
|
|
|
14540
14622
|
stroke: "currentColor",
|
|
14541
14623
|
strokeWidth: "1.5",
|
|
14542
14624
|
strokeLinejoin: "round",
|
|
14543
|
-
children: /* @__PURE__ */
|
|
14625
|
+
children: /* @__PURE__ */ jsx19("path", { d: STAR_PATH })
|
|
14544
14626
|
},
|
|
14545
14627
|
n
|
|
14546
14628
|
)) });
|
|
14547
14629
|
}
|
|
14630
|
+
function usableReviews(reviews) {
|
|
14631
|
+
return Array.isArray(reviews) ? reviews.filter(isUsableReview) : [];
|
|
14632
|
+
}
|
|
14633
|
+
function ReviewCard({
|
|
14634
|
+
review,
|
|
14635
|
+
linkLabel,
|
|
14636
|
+
newWindowLabel,
|
|
14637
|
+
locale,
|
|
14638
|
+
className
|
|
14639
|
+
}) {
|
|
14640
|
+
const date = formatDay(review.reviewDate, locale);
|
|
14641
|
+
return /* @__PURE__ */ jsxs18(
|
|
14642
|
+
"article",
|
|
14643
|
+
{
|
|
14644
|
+
"data-slot": "review",
|
|
14645
|
+
"data-source": review.source,
|
|
14646
|
+
className: cn13("flex h-full flex-col gap-3 rounded-lg border p-5", className),
|
|
14647
|
+
children: [
|
|
14648
|
+
/* @__PURE__ */ jsx19(Stars, { rating: review.rating }),
|
|
14649
|
+
review.text && review.text.trim() !== "" ? /* @__PURE__ */ jsx19("blockquote", { className: "flex-1", children: /* @__PURE__ */ jsx19("p", { children: review.text }) }) : null,
|
|
14650
|
+
/* @__PURE__ */ jsxs18("footer", { className: "mt-auto space-y-1 text-sm", children: [
|
|
14651
|
+
/* @__PURE__ */ jsx19("p", { className: "font-semibold", children: review.authorName }),
|
|
14652
|
+
date ? /* @__PURE__ */ jsx19("time", { dateTime: review.reviewDate, className: "block text-muted-foreground", children: date }) : null,
|
|
14653
|
+
/* @__PURE__ */ jsxs18(
|
|
14654
|
+
"a",
|
|
14655
|
+
{
|
|
14656
|
+
href: review.sourceUrl,
|
|
14657
|
+
target: "_blank",
|
|
14658
|
+
rel: "noopener nofollow",
|
|
14659
|
+
className: "inline-flex underline underline-offset-4",
|
|
14660
|
+
children: [
|
|
14661
|
+
linkLabel(review.sourceName),
|
|
14662
|
+
" ",
|
|
14663
|
+
/* @__PURE__ */ jsx19("span", { className: "sr-only", children: newWindowLabel })
|
|
14664
|
+
]
|
|
14665
|
+
}
|
|
14666
|
+
)
|
|
14667
|
+
] })
|
|
14668
|
+
]
|
|
14669
|
+
}
|
|
14670
|
+
);
|
|
14671
|
+
}
|
|
14672
|
+
|
|
14673
|
+
// src/components/reviews.tsx
|
|
14674
|
+
import { Fragment as Fragment4, jsx as jsx20, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
14548
14675
|
function Reviews({
|
|
14549
14676
|
reviews,
|
|
14550
14677
|
heading,
|
|
@@ -14561,11 +14688,10 @@ function Reviews({
|
|
|
14561
14688
|
cardClassName,
|
|
14562
14689
|
noticeClassName
|
|
14563
14690
|
}) {
|
|
14564
|
-
|
|
14565
|
-
const usable = reviews.filter(isUsable2);
|
|
14691
|
+
const usable = usableReviews(reviews);
|
|
14566
14692
|
if (usable.length === 0) return null;
|
|
14567
14693
|
const hasNotice = notice !== void 0 && notice !== null && notice !== "";
|
|
14568
|
-
const noticeNode = hasNotice ? /* @__PURE__ */
|
|
14694
|
+
const noticeNode = hasNotice ? /* @__PURE__ */ jsx20(
|
|
14569
14695
|
"p",
|
|
14570
14696
|
{
|
|
14571
14697
|
"data-slot": "reviews-notice",
|
|
@@ -14573,68 +14699,47 @@ function Reviews({
|
|
|
14573
14699
|
children: notice
|
|
14574
14700
|
}
|
|
14575
14701
|
) : null;
|
|
14576
|
-
const grid = /* @__PURE__ */
|
|
14702
|
+
const grid = /* @__PURE__ */ jsx20(
|
|
14577
14703
|
"ul",
|
|
14578
14704
|
{
|
|
14579
14705
|
"data-slot": "reviews-grid",
|
|
14580
14706
|
className: slotClassName("grid gap-6", "sm:grid-cols-2 lg:grid-cols-3", gridClassName),
|
|
14581
14707
|
children: usable.map((review) => {
|
|
14582
|
-
|
|
14583
|
-
|
|
14584
|
-
"article",
|
|
14708
|
+
return /* @__PURE__ */ jsx20("li", { children: /* @__PURE__ */ jsx20(
|
|
14709
|
+
ReviewCard,
|
|
14585
14710
|
{
|
|
14586
|
-
|
|
14587
|
-
|
|
14588
|
-
|
|
14589
|
-
|
|
14590
|
-
|
|
14591
|
-
review.text && review.text.trim() !== "" ? /* @__PURE__ */ jsx18("blockquote", { className: "flex-1", children: /* @__PURE__ */ jsx18("p", { children: review.text }) }) : null,
|
|
14592
|
-
/* @__PURE__ */ jsxs17("footer", { className: "mt-auto space-y-1 text-sm", children: [
|
|
14593
|
-
/* @__PURE__ */ jsx18("p", { className: "font-semibold", children: review.authorName }),
|
|
14594
|
-
date ? /* @__PURE__ */ jsx18("time", { dateTime: review.reviewDate, className: "block text-muted-foreground", children: date }) : null,
|
|
14595
|
-
/* @__PURE__ */ jsxs17(
|
|
14596
|
-
"a",
|
|
14597
|
-
{
|
|
14598
|
-
href: review.sourceUrl,
|
|
14599
|
-
target: "_blank",
|
|
14600
|
-
rel: "noopener nofollow",
|
|
14601
|
-
className: "inline-flex underline underline-offset-4",
|
|
14602
|
-
children: [
|
|
14603
|
-
linkLabel(review.sourceName),
|
|
14604
|
-
" ",
|
|
14605
|
-
/* @__PURE__ */ jsx18("span", { className: "sr-only", children: newWindowLabel })
|
|
14606
|
-
]
|
|
14607
|
-
}
|
|
14608
|
-
)
|
|
14609
|
-
] })
|
|
14610
|
-
]
|
|
14711
|
+
review,
|
|
14712
|
+
linkLabel,
|
|
14713
|
+
newWindowLabel,
|
|
14714
|
+
locale,
|
|
14715
|
+
className: cardClassName
|
|
14611
14716
|
}
|
|
14612
14717
|
) }, review.id);
|
|
14613
14718
|
})
|
|
14614
14719
|
}
|
|
14615
14720
|
);
|
|
14616
|
-
const body3 = /* @__PURE__ */
|
|
14721
|
+
const body3 = /* @__PURE__ */ jsxs19(Fragment4, { children: [
|
|
14617
14722
|
noticePosition === "above" ? noticeNode : null,
|
|
14618
14723
|
grid,
|
|
14619
14724
|
noticePosition === "below" ? noticeNode : null
|
|
14620
14725
|
] });
|
|
14621
14726
|
const hasHeading = heading !== void 0 && heading !== null && heading !== "";
|
|
14622
14727
|
if (!hasHeading) {
|
|
14623
|
-
return /* @__PURE__ */
|
|
14728
|
+
return /* @__PURE__ */ jsx20("div", { "data-slot": "reviews", className: cn14("space-y-4", className), children: body3 });
|
|
14624
14729
|
}
|
|
14625
14730
|
const Tag = `h${headingLevel}`;
|
|
14626
|
-
return /* @__PURE__ */
|
|
14627
|
-
/* @__PURE__ */
|
|
14731
|
+
return /* @__PURE__ */ jsxs19("section", { "data-slot": "reviews", "aria-labelledby": headingId, className: cn14("space-y-4", className), children: [
|
|
14732
|
+
/* @__PURE__ */ jsx20(Tag, { id: headingId, className: slotClassName("", "text-xl font-semibold", headingClassName), children: heading }),
|
|
14628
14733
|
body3
|
|
14629
14734
|
] });
|
|
14630
14735
|
}
|
|
14631
14736
|
|
|
14632
14737
|
// src/components/page-blocks.tsx
|
|
14633
|
-
import { cn as
|
|
14738
|
+
import { cn as cn16 } from "@reblu/site-ui/utils";
|
|
14634
14739
|
import { buttonVariants as buttonVariants2 } from "@reblu/site-ui/button-variants";
|
|
14635
14740
|
|
|
14636
14741
|
// src/components/content-blocks.tsx
|
|
14637
|
-
import { cn as
|
|
14742
|
+
import { cn as cn15 } from "@reblu/site-ui/utils";
|
|
14638
14743
|
|
|
14639
14744
|
// src/components/_card-icons.ts
|
|
14640
14745
|
var CARD_ICON_NODES = {
|
|
@@ -14797,11 +14902,11 @@ var CARD_ICON_NODES = {
|
|
|
14797
14902
|
};
|
|
14798
14903
|
|
|
14799
14904
|
// src/components/content-blocks.tsx
|
|
14800
|
-
import { jsx as
|
|
14905
|
+
import { jsx as jsx21, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
14801
14906
|
var DEFAULT_BEFORE_AFTER_LABELS = Object.freeze({ before: "Antes", after: "Despu\xE9s" });
|
|
14802
14907
|
function PairImage({ url, alt, label }) {
|
|
14803
|
-
return /* @__PURE__ */
|
|
14804
|
-
/* @__PURE__ */
|
|
14908
|
+
return /* @__PURE__ */ jsxs20("figure", { className: "space-y-2", children: [
|
|
14909
|
+
/* @__PURE__ */ jsx21("div", { className: "relative aspect-[4/3] w-full overflow-hidden rounded-lg bg-muted", children: /* @__PURE__ */ jsx21(
|
|
14805
14910
|
"img",
|
|
14806
14911
|
{
|
|
14807
14912
|
src: url,
|
|
@@ -14811,7 +14916,7 @@ function PairImage({ url, alt, label }) {
|
|
|
14811
14916
|
className: "h-full w-full object-cover"
|
|
14812
14917
|
}
|
|
14813
14918
|
) }),
|
|
14814
|
-
/* @__PURE__ */
|
|
14919
|
+
/* @__PURE__ */ jsx21("figcaption", { className: "text-sm font-semibold", children: label })
|
|
14815
14920
|
] });
|
|
14816
14921
|
}
|
|
14817
14922
|
function BeforeAfterPairs({
|
|
@@ -14823,26 +14928,26 @@ function BeforeAfterPairs({
|
|
|
14823
14928
|
}) {
|
|
14824
14929
|
const visibleCaption = showCaption && caption && caption.trim() !== "" ? caption : null;
|
|
14825
14930
|
if (pairs.length === 0 && !visibleCaption) return null;
|
|
14826
|
-
return /* @__PURE__ */
|
|
14827
|
-
pairs.length > 0 && /* @__PURE__ */
|
|
14931
|
+
return /* @__PURE__ */ jsxs20("div", { "data-slot": "before-after", className: cn15("space-y-4", className), children: [
|
|
14932
|
+
pairs.length > 0 && /* @__PURE__ */ jsx21("ul", { className: "grid gap-6 lg:grid-cols-2", children: pairs.map((pair, i) => /* @__PURE__ */ jsxs20(
|
|
14828
14933
|
"li",
|
|
14829
14934
|
{
|
|
14830
14935
|
"data-slot": "before-after-pair",
|
|
14831
14936
|
className: "grid grid-cols-1 gap-3 sm:grid-cols-2",
|
|
14832
14937
|
children: [
|
|
14833
|
-
/* @__PURE__ */
|
|
14834
|
-
/* @__PURE__ */
|
|
14938
|
+
/* @__PURE__ */ jsx21(PairImage, { url: pair.beforeUrl, alt: pair.alt ?? "", label: labels.before }),
|
|
14939
|
+
/* @__PURE__ */ jsx21(PairImage, { url: pair.afterUrl, alt: pair.alt ?? "", label: labels.after })
|
|
14835
14940
|
]
|
|
14836
14941
|
},
|
|
14837
14942
|
`${pair.beforeUrl}-${pair.afterUrl}-${i}`
|
|
14838
14943
|
)) }),
|
|
14839
|
-
visibleCaption && /* @__PURE__ */
|
|
14944
|
+
visibleCaption && /* @__PURE__ */ jsx21("p", { "data-slot": "before-after-caption", className: "whitespace-pre-line text-sm opacity-80", children: visibleCaption })
|
|
14840
14945
|
] });
|
|
14841
14946
|
}
|
|
14842
14947
|
function ChipList({ items, className }) {
|
|
14843
14948
|
const visible = items.filter((item) => item.trim() !== "");
|
|
14844
14949
|
if (visible.length === 0) return null;
|
|
14845
|
-
return /* @__PURE__ */
|
|
14950
|
+
return /* @__PURE__ */ jsx21("ul", { "data-slot": "chip-list", className: cn15("flex flex-wrap gap-3", className), children: visible.map((item, i) => /* @__PURE__ */ jsx21(
|
|
14846
14951
|
"li",
|
|
14847
14952
|
{
|
|
14848
14953
|
"data-slot": "chip",
|
|
@@ -14858,7 +14963,7 @@ function hasCardIcon(icon) {
|
|
|
14858
14963
|
}
|
|
14859
14964
|
function CardIconSvg({ icon, className }) {
|
|
14860
14965
|
if (!hasCardIcon(icon)) return null;
|
|
14861
|
-
return /* @__PURE__ */
|
|
14966
|
+
return /* @__PURE__ */ jsx21(
|
|
14862
14967
|
"svg",
|
|
14863
14968
|
{
|
|
14864
14969
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -14871,30 +14976,30 @@ function CardIconSvg({ icon, className }) {
|
|
|
14871
14976
|
"aria-hidden": "true",
|
|
14872
14977
|
focusable: "false",
|
|
14873
14978
|
"data-icon": icon,
|
|
14874
|
-
className:
|
|
14875
|
-
children: CARD_ICON_NODES[icon].map(([Tag, attrs], i) => /* @__PURE__ */
|
|
14979
|
+
className: cn15("h-5 w-5", className),
|
|
14980
|
+
children: CARD_ICON_NODES[icon].map(([Tag, attrs], i) => /* @__PURE__ */ jsx21(Tag, { ...attrs }, i))
|
|
14876
14981
|
}
|
|
14877
14982
|
);
|
|
14878
14983
|
}
|
|
14879
14984
|
function IconCardGrid({ items, intro, headingLevel = 3, className }) {
|
|
14880
14985
|
const hasIntro = !!intro && intro.trim() !== "";
|
|
14881
14986
|
if (items.length === 0 && !hasIntro) return null;
|
|
14882
|
-
return /* @__PURE__ */
|
|
14883
|
-
hasIntro && /* @__PURE__ */
|
|
14884
|
-
items.length > 0 && /* @__PURE__ */
|
|
14987
|
+
return /* @__PURE__ */ jsxs20("div", { "data-slot": "icon-cards", className: cn15("space-y-6", className), children: [
|
|
14988
|
+
hasIntro && /* @__PURE__ */ jsx21("p", { className: "max-w-prose text-lg opacity-80", children: intro }),
|
|
14989
|
+
items.length > 0 && /* @__PURE__ */ jsx21(
|
|
14885
14990
|
"ul",
|
|
14886
14991
|
{
|
|
14887
14992
|
"data-slot": "icon-card-grid",
|
|
14888
14993
|
className: "grid grid-cols-1 gap-6 sm:grid-cols-2 lg:grid-cols-3",
|
|
14889
|
-
children: items.map((item, i) => /* @__PURE__ */
|
|
14994
|
+
children: items.map((item, i) => /* @__PURE__ */ jsxs20(
|
|
14890
14995
|
"li",
|
|
14891
14996
|
{
|
|
14892
14997
|
"data-slot": "icon-card",
|
|
14893
14998
|
className: "space-y-3 rounded-xl border border-border bg-card p-6 text-card-foreground",
|
|
14894
14999
|
children: [
|
|
14895
|
-
hasCardIcon(item.icon) && /* @__PURE__ */
|
|
14896
|
-
/* @__PURE__ */
|
|
14897
|
-
item.text && /* @__PURE__ */
|
|
15000
|
+
hasCardIcon(item.icon) && /* @__PURE__ */ jsx21("span", { className: "inline-flex h-12 w-12 items-center justify-center rounded-xl bg-primary/10 text-primary", children: /* @__PURE__ */ jsx21(CardIconSvg, { icon: item.icon }) }),
|
|
15001
|
+
/* @__PURE__ */ jsx21(Heading, { level: headingLevel, className: "text-lg font-semibold", children: item.title }),
|
|
15002
|
+
item.text && /* @__PURE__ */ jsx21("p", { className: "text-muted-foreground", children: item.text })
|
|
14898
15003
|
]
|
|
14899
15004
|
},
|
|
14900
15005
|
`${item.title}-${i}`
|
|
@@ -14920,19 +15025,19 @@ function ImageTextSplit({
|
|
|
14920
15025
|
const imageRight = imageSide === "right";
|
|
14921
15026
|
const hasKicker = !!kicker && kicker.trim() !== "";
|
|
14922
15027
|
const bodyOffset = heading ? headingLevel : headingLevel - 1;
|
|
14923
|
-
return /* @__PURE__ */
|
|
15028
|
+
return /* @__PURE__ */ jsxs20(
|
|
14924
15029
|
"div",
|
|
14925
15030
|
{
|
|
14926
15031
|
"data-slot": "image-text",
|
|
14927
15032
|
"data-image-side": imageRight ? "right" : "left",
|
|
14928
|
-
className:
|
|
15033
|
+
className: cn15("grid grid-cols-1 items-center gap-8 md:grid-cols-2", className),
|
|
14929
15034
|
children: [
|
|
14930
|
-
/* @__PURE__ */
|
|
15035
|
+
/* @__PURE__ */ jsx21(
|
|
14931
15036
|
"div",
|
|
14932
15037
|
{
|
|
14933
15038
|
"data-slot": "image-text-media",
|
|
14934
|
-
className:
|
|
14935
|
-
children: /* @__PURE__ */
|
|
15039
|
+
className: cn15(textFirst ? "order-2" : "order-1", imageRight ? "md:order-2" : "md:order-1"),
|
|
15040
|
+
children: /* @__PURE__ */ jsx21("div", { className: "relative aspect-[4/3] w-full overflow-hidden rounded-xl bg-muted", children: /* @__PURE__ */ jsx21(
|
|
14936
15041
|
"img",
|
|
14937
15042
|
{
|
|
14938
15043
|
src: imageUrl,
|
|
@@ -14944,21 +15049,21 @@ function ImageTextSplit({
|
|
|
14944
15049
|
) })
|
|
14945
15050
|
}
|
|
14946
15051
|
),
|
|
14947
|
-
/* @__PURE__ */
|
|
15052
|
+
/* @__PURE__ */ jsxs20(
|
|
14948
15053
|
"div",
|
|
14949
15054
|
{
|
|
14950
15055
|
"data-slot": "image-text-body",
|
|
14951
|
-
className:
|
|
15056
|
+
className: cn15(
|
|
14952
15057
|
"space-y-4",
|
|
14953
15058
|
textFirst ? "order-1" : "order-2",
|
|
14954
15059
|
imageRight ? "md:order-1" : "md:order-2"
|
|
14955
15060
|
),
|
|
14956
15061
|
children: [
|
|
14957
|
-
(hasKicker || heading) && /* @__PURE__ */
|
|
14958
|
-
hasKicker && /* @__PURE__ */
|
|
14959
|
-
heading && /* @__PURE__ */
|
|
15062
|
+
(hasKicker || heading) && /* @__PURE__ */ jsxs20("div", { className: "space-y-2", children: [
|
|
15063
|
+
hasKicker && /* @__PURE__ */ jsx21("p", { "data-slot": "page-block-kicker", className: KICKER_CLASS_NAME, children: kicker }),
|
|
15064
|
+
heading && /* @__PURE__ */ jsx21(Heading, { level: headingLevel, className: "text-2xl font-bold tracking-tight", children: /* @__PURE__ */ jsx21("span", { id: headingId, children: heading }) })
|
|
14960
15065
|
] }),
|
|
14961
|
-
html5 && /* @__PURE__ */
|
|
15066
|
+
html5 && /* @__PURE__ */ jsx21(SafeHtml, { html: sanitizeHtml(html5), headingOffset: bodyOffset })
|
|
14962
15067
|
]
|
|
14963
15068
|
}
|
|
14964
15069
|
)
|
|
@@ -14968,38 +15073,38 @@ function ImageTextSplit({
|
|
|
14968
15073
|
}
|
|
14969
15074
|
|
|
14970
15075
|
// src/components/page-blocks.tsx
|
|
14971
|
-
import { jsx as
|
|
15076
|
+
import { jsx as jsx22, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
14972
15077
|
var ALIASES = {
|
|
14973
15078
|
doctor_embed: "profile_embed",
|
|
14974
15079
|
specialty_embed: "page_embed"
|
|
14975
15080
|
};
|
|
14976
15081
|
function HeroBlock({ block, headingLevel }) {
|
|
14977
15082
|
const { title, subtitle, imageUrl } = block.data;
|
|
14978
|
-
return /* @__PURE__ */
|
|
14979
|
-
/* @__PURE__ */
|
|
14980
|
-
subtitle && /* @__PURE__ */
|
|
14981
|
-
imageUrl && /* @__PURE__ */
|
|
15083
|
+
return /* @__PURE__ */ jsxs21("div", { className: "space-y-4", children: [
|
|
15084
|
+
/* @__PURE__ */ jsx22(Heading, { level: headingLevel, className: "text-3xl font-bold tracking-tight md:text-4xl", children: title }),
|
|
15085
|
+
subtitle && /* @__PURE__ */ jsx22("p", { className: "text-lg opacity-80", children: subtitle }),
|
|
15086
|
+
imageUrl && /* @__PURE__ */ jsx22("div", { className: "relative aspect-[21/9] w-full overflow-hidden rounded-xl bg-muted", children: /* @__PURE__ */ jsx22("img", { src: imageUrl, alt: "", loading: "lazy", className: "h-full w-full object-cover" }) })
|
|
14982
15087
|
] });
|
|
14983
15088
|
}
|
|
14984
15089
|
function RichtextBlock({ block, headingLevel }) {
|
|
14985
|
-
return /* @__PURE__ */
|
|
15090
|
+
return /* @__PURE__ */ jsx22(SafeHtml, { html: sanitizeHtml(block.data.html), headingOffset: headingLevel - 1 });
|
|
14986
15091
|
}
|
|
14987
15092
|
function FaqBlock({ block }) {
|
|
14988
|
-
return /* @__PURE__ */
|
|
15093
|
+
return /* @__PURE__ */ jsx22(FaqAccordion, { items: block.data.items });
|
|
14989
15094
|
}
|
|
14990
15095
|
function StatsBlock({ block }) {
|
|
14991
|
-
return /* @__PURE__ */
|
|
14992
|
-
/* @__PURE__ */
|
|
14993
|
-
/* @__PURE__ */
|
|
15096
|
+
return /* @__PURE__ */ jsx22("dl", { className: "grid gap-6 sm:grid-cols-2 lg:grid-cols-4", children: block.data.items.map((item, i) => /* @__PURE__ */ jsxs21("div", { className: "flex flex-col-reverse gap-1", children: [
|
|
15097
|
+
/* @__PURE__ */ jsx22("dt", { className: "text-sm opacity-80", children: item.label }),
|
|
15098
|
+
/* @__PURE__ */ jsx22("dd", { className: "text-3xl font-bold", children: item.value })
|
|
14994
15099
|
] }, i)) });
|
|
14995
15100
|
}
|
|
14996
15101
|
function TestimonialBlock({ block }) {
|
|
14997
15102
|
const { quote, author, role, avatarUrl } = block.data;
|
|
14998
|
-
return /* @__PURE__ */
|
|
14999
|
-
/* @__PURE__ */
|
|
15000
|
-
/* @__PURE__ */
|
|
15103
|
+
return /* @__PURE__ */ jsxs21("figure", { className: "space-y-4", children: [
|
|
15104
|
+
/* @__PURE__ */ jsx22("blockquote", { className: "text-xl italic", children: /* @__PURE__ */ jsx22("p", { children: quote }) }),
|
|
15105
|
+
/* @__PURE__ */ jsxs21("figcaption", { className: "flex items-center gap-3", children: [
|
|
15001
15106
|
avatarUrl && // eslint-disable-next-line @next/next/no-img-element
|
|
15002
|
-
/* @__PURE__ */
|
|
15107
|
+
/* @__PURE__ */ jsx22(
|
|
15003
15108
|
"img",
|
|
15004
15109
|
{
|
|
15005
15110
|
src: avatarUrl,
|
|
@@ -15008,9 +15113,9 @@ function TestimonialBlock({ block }) {
|
|
|
15008
15113
|
className: "h-10 w-10 rounded-full object-cover"
|
|
15009
15114
|
}
|
|
15010
15115
|
),
|
|
15011
|
-
/* @__PURE__ */
|
|
15012
|
-
/* @__PURE__ */
|
|
15013
|
-
role && /* @__PURE__ */
|
|
15116
|
+
/* @__PURE__ */ jsxs21("span", { children: [
|
|
15117
|
+
/* @__PURE__ */ jsx22("span", { className: "font-semibold", children: author }),
|
|
15118
|
+
role && /* @__PURE__ */ jsx22("span", { className: "block text-sm opacity-80", children: role })
|
|
15014
15119
|
] })
|
|
15015
15120
|
] })
|
|
15016
15121
|
] });
|
|
@@ -15019,19 +15124,19 @@ function CtaSlotBlock(_props) {
|
|
|
15019
15124
|
return null;
|
|
15020
15125
|
}
|
|
15021
15126
|
function FeatureListBlock({ block }) {
|
|
15022
|
-
return /* @__PURE__ */
|
|
15127
|
+
return /* @__PURE__ */ jsx22("ul", { className: "grid list-disc gap-2 pl-5 sm:grid-cols-2", children: block.data.items.map((item, i) => /* @__PURE__ */ jsx22("li", { children: item.text }, i)) });
|
|
15023
15128
|
}
|
|
15024
15129
|
function GalleryBlock({ block }) {
|
|
15025
15130
|
const { images } = block.data;
|
|
15026
|
-
return /* @__PURE__ */
|
|
15131
|
+
return /* @__PURE__ */ jsx22(
|
|
15027
15132
|
"div",
|
|
15028
15133
|
{
|
|
15029
|
-
className:
|
|
15134
|
+
className: cn16(
|
|
15030
15135
|
"grid gap-4",
|
|
15031
15136
|
images.length > 1 ? "sm:grid-cols-2 lg:grid-cols-3" : "grid-cols-1"
|
|
15032
15137
|
),
|
|
15033
|
-
children: images.map((img, i) => /* @__PURE__ */
|
|
15034
|
-
/* @__PURE__ */
|
|
15138
|
+
children: images.map((img, i) => /* @__PURE__ */ jsxs21("figure", { className: "space-y-1", children: [
|
|
15139
|
+
/* @__PURE__ */ jsx22("div", { className: "relative aspect-video w-full overflow-hidden rounded-lg bg-muted", children: /* @__PURE__ */ jsx22(
|
|
15035
15140
|
"img",
|
|
15036
15141
|
{
|
|
15037
15142
|
src: img.url,
|
|
@@ -15040,7 +15145,7 @@ function GalleryBlock({ block }) {
|
|
|
15040
15145
|
className: "h-full w-full object-cover"
|
|
15041
15146
|
}
|
|
15042
15147
|
) }),
|
|
15043
|
-
img.caption && /* @__PURE__ */
|
|
15148
|
+
img.caption && /* @__PURE__ */ jsx22("figcaption", { className: "text-sm opacity-80", children: img.caption })
|
|
15044
15149
|
] }, `${img.url}-${i}`))
|
|
15045
15150
|
}
|
|
15046
15151
|
);
|
|
@@ -15050,13 +15155,13 @@ function EmbedCard({
|
|
|
15050
15155
|
headingLevel,
|
|
15051
15156
|
embedHref
|
|
15052
15157
|
}) {
|
|
15053
|
-
return /* @__PURE__ */
|
|
15158
|
+
return /* @__PURE__ */ jsxs21(
|
|
15054
15159
|
"a",
|
|
15055
15160
|
{
|
|
15056
15161
|
href: embedHref(resolved),
|
|
15057
15162
|
className: "group block overflow-hidden rounded-xl border border-border bg-card text-card-foreground transition-shadow hover:shadow-md focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ring",
|
|
15058
15163
|
children: [
|
|
15059
|
-
resolved.coverImageUrl && /* @__PURE__ */
|
|
15164
|
+
resolved.coverImageUrl && /* @__PURE__ */ jsx22("div", { className: "aspect-video w-full overflow-hidden bg-muted", children: /* @__PURE__ */ jsx22(
|
|
15060
15165
|
"img",
|
|
15061
15166
|
{
|
|
15062
15167
|
src: resolved.coverImageUrl,
|
|
@@ -15065,35 +15170,35 @@ function EmbedCard({
|
|
|
15065
15170
|
className: "h-full w-full object-cover"
|
|
15066
15171
|
}
|
|
15067
15172
|
) }),
|
|
15068
|
-
/* @__PURE__ */
|
|
15069
|
-
/* @__PURE__ */
|
|
15070
|
-
resolved.role && /* @__PURE__ */
|
|
15071
|
-
resolved.excerpt && /* @__PURE__ */
|
|
15173
|
+
/* @__PURE__ */ jsxs21("div", { className: "space-y-1 p-4", children: [
|
|
15174
|
+
/* @__PURE__ */ jsx22(Heading, { level: headingLevel, className: "text-lg font-semibold", children: resolved.title }),
|
|
15175
|
+
resolved.role && /* @__PURE__ */ jsx22("p", { className: "text-sm text-muted-foreground", children: resolved.role }),
|
|
15176
|
+
resolved.excerpt && /* @__PURE__ */ jsx22("p", { className: "text-muted-foreground", children: resolved.excerpt })
|
|
15072
15177
|
] })
|
|
15073
15178
|
]
|
|
15074
15179
|
}
|
|
15075
15180
|
);
|
|
15076
15181
|
}
|
|
15077
15182
|
function PageEmbedBlock({ block, headingLevel, embedHref }) {
|
|
15078
|
-
return /* @__PURE__ */
|
|
15183
|
+
return /* @__PURE__ */ jsx22(EmbedCard, { resolved: block.resolved, headingLevel, embedHref });
|
|
15079
15184
|
}
|
|
15080
15185
|
function ProfileEmbedBlock({
|
|
15081
15186
|
block,
|
|
15082
15187
|
headingLevel,
|
|
15083
15188
|
embedHref
|
|
15084
15189
|
}) {
|
|
15085
|
-
return /* @__PURE__ */
|
|
15190
|
+
return /* @__PURE__ */ jsx22(EmbedCard, { resolved: block.resolved, headingLevel, embedHref });
|
|
15086
15191
|
}
|
|
15087
15192
|
function BeforeAfterBlock({ block }) {
|
|
15088
15193
|
const { pairs, showCaption, caption } = block.data;
|
|
15089
|
-
return /* @__PURE__ */
|
|
15194
|
+
return /* @__PURE__ */ jsx22(BeforeAfterPairs, { pairs, showCaption, caption });
|
|
15090
15195
|
}
|
|
15091
15196
|
function ChipsBlock({ block }) {
|
|
15092
|
-
return /* @__PURE__ */
|
|
15197
|
+
return /* @__PURE__ */ jsx22(ChipList, { items: block.data.items });
|
|
15093
15198
|
}
|
|
15094
15199
|
function ImageTextBlock({ block, headingLevel, headingId }) {
|
|
15095
15200
|
const { kicker, imageUrl, alt, imageSide, mobileOrder, html: html5 } = block.data;
|
|
15096
|
-
return /* @__PURE__ */
|
|
15201
|
+
return /* @__PURE__ */ jsx22(
|
|
15097
15202
|
ImageTextSplit,
|
|
15098
15203
|
{
|
|
15099
15204
|
imageUrl,
|
|
@@ -15109,7 +15214,17 @@ function ImageTextBlock({ block, headingLevel, headingId }) {
|
|
|
15109
15214
|
);
|
|
15110
15215
|
}
|
|
15111
15216
|
function IconCardsBlock({ block, headingLevel }) {
|
|
15112
|
-
return /* @__PURE__ */
|
|
15217
|
+
return /* @__PURE__ */ jsx22(IconCardGrid, { items: block.data.items, intro: block.data.intro, headingLevel });
|
|
15218
|
+
}
|
|
15219
|
+
function ReviewsBlock({ block }) {
|
|
15220
|
+
const { layout, notice } = block.data;
|
|
15221
|
+
return /* @__PURE__ */ jsx22("div", { "data-slot": "reviews-block", "data-reviews-layout": layout ?? "grid", children: /* @__PURE__ */ jsx22(
|
|
15222
|
+
Reviews,
|
|
15223
|
+
{
|
|
15224
|
+
reviews: block.reviews,
|
|
15225
|
+
notice: notice && notice.trim() !== "" ? notice : void 0
|
|
15226
|
+
}
|
|
15227
|
+
) });
|
|
15113
15228
|
}
|
|
15114
15229
|
var DEFAULT_RENDERERS = {
|
|
15115
15230
|
hero: HeroBlock,
|
|
@@ -15125,7 +15240,8 @@ var DEFAULT_RENDERERS = {
|
|
|
15125
15240
|
before_after: BeforeAfterBlock,
|
|
15126
15241
|
chips: ChipsBlock,
|
|
15127
15242
|
icon_cards: IconCardsBlock,
|
|
15128
|
-
image_text: ImageTextBlock
|
|
15243
|
+
image_text: ImageTextBlock,
|
|
15244
|
+
reviews: ReviewsBlock
|
|
15129
15245
|
};
|
|
15130
15246
|
var KICKER_TYPES = /* @__PURE__ */ new Set([
|
|
15131
15247
|
"before_after",
|
|
@@ -15183,14 +15299,14 @@ function toIdFragment(value) {
|
|
|
15183
15299
|
function SectionCta2({ cta }) {
|
|
15184
15300
|
if (!hasUsableCta(cta)) return null;
|
|
15185
15301
|
const variant = toButtonVariant(cta.variant);
|
|
15186
|
-
return /* @__PURE__ */
|
|
15302
|
+
return /* @__PURE__ */ jsx22("div", { className: "pt-2", children: /* @__PURE__ */ jsx22(
|
|
15187
15303
|
"a",
|
|
15188
15304
|
{
|
|
15189
15305
|
href: cta.url,
|
|
15190
15306
|
"data-slot": "button",
|
|
15191
15307
|
"data-variant": variant,
|
|
15192
15308
|
"data-size": "default",
|
|
15193
|
-
className:
|
|
15309
|
+
className: cn16(buttonVariants2({ variant, size: "default" })),
|
|
15194
15310
|
...cta.isExternal ? { target: "_blank", rel: "noopener noreferrer" } : {},
|
|
15195
15311
|
children: cta.label
|
|
15196
15312
|
}
|
|
@@ -15211,6 +15327,8 @@ function PageBlocks({
|
|
|
15211
15327
|
const type = canonicalTypeOf(block.blockType);
|
|
15212
15328
|
if (type === null) return [];
|
|
15213
15329
|
if (EMBED_TYPES.has(type) && !block.resolved) return [];
|
|
15330
|
+
if (type === "reviews" && (!Array.isArray(block.reviews) || block.reviews.length === 0))
|
|
15331
|
+
return [];
|
|
15214
15332
|
if (type === "cta" && !components?.cta && !block.heading && !hasUsableCta(block.cta)) return [];
|
|
15215
15333
|
const Renderer = components?.[type] ?? DEFAULT_RENDERERS[type];
|
|
15216
15334
|
const headingId = block.heading ? `${safePrefix}-${toIdFragment(block.id)}-heading` : void 0;
|
|
@@ -15218,18 +15336,18 @@ function PageBlocks({
|
|
|
15218
15336
|
const kicker = kickerOf(type, block);
|
|
15219
15337
|
const ownsHeading = OWN_HEADING_TYPES.has(type);
|
|
15220
15338
|
return [
|
|
15221
|
-
/* @__PURE__ */
|
|
15339
|
+
/* @__PURE__ */ jsxs21(
|
|
15222
15340
|
"section",
|
|
15223
15341
|
{
|
|
15224
15342
|
"data-slot": "page-block",
|
|
15225
15343
|
"data-block-type": type,
|
|
15226
15344
|
"aria-labelledby": headingId,
|
|
15227
15345
|
style: surfaceStyle(background),
|
|
15228
|
-
className:
|
|
15346
|
+
className: cn16("space-y-6", background && "rounded-xl px-6 py-10", sectionClassName),
|
|
15229
15347
|
children: [
|
|
15230
|
-
kicker && /* @__PURE__ */
|
|
15231
|
-
block.heading && !ownsHeading && /* @__PURE__ */
|
|
15232
|
-
ownsHeading ? /* @__PURE__ */
|
|
15348
|
+
kicker && /* @__PURE__ */ jsx22("p", { "data-slot": "page-block-kicker", className: cn16("-mb-4", KICKER_CLASS_NAME), children: kicker }),
|
|
15349
|
+
block.heading && !ownsHeading && /* @__PURE__ */ jsx22(Heading, { level: headingLevel, className: "text-2xl font-bold tracking-tight", children: /* @__PURE__ */ jsx22("span", { id: headingId, children: block.heading }) }),
|
|
15350
|
+
ownsHeading ? /* @__PURE__ */ jsx22(
|
|
15233
15351
|
Renderer,
|
|
15234
15352
|
{
|
|
15235
15353
|
block,
|
|
@@ -15237,7 +15355,7 @@ function PageBlocks({
|
|
|
15237
15355
|
embedHref,
|
|
15238
15356
|
headingId
|
|
15239
15357
|
}
|
|
15240
|
-
) : /* @__PURE__ */
|
|
15358
|
+
) : /* @__PURE__ */ jsx22(
|
|
15241
15359
|
Renderer,
|
|
15242
15360
|
{
|
|
15243
15361
|
block,
|
|
@@ -15245,7 +15363,7 @@ function PageBlocks({
|
|
|
15245
15363
|
embedHref
|
|
15246
15364
|
}
|
|
15247
15365
|
),
|
|
15248
|
-
/* @__PURE__ */
|
|
15366
|
+
/* @__PURE__ */ jsx22(SectionCta2, { cta: block.cta })
|
|
15249
15367
|
]
|
|
15250
15368
|
},
|
|
15251
15369
|
block.id
|
|
@@ -15253,12 +15371,12 @@ function PageBlocks({
|
|
|
15253
15371
|
];
|
|
15254
15372
|
});
|
|
15255
15373
|
if (sections.length === 0) return null;
|
|
15256
|
-
return /* @__PURE__ */
|
|
15374
|
+
return /* @__PURE__ */ jsx22("div", { className: cn16("space-y-12", className), "data-slot": "page-blocks", children: sections });
|
|
15257
15375
|
}
|
|
15258
15376
|
|
|
15259
15377
|
// src/components/shop-filters.tsx
|
|
15260
|
-
import { cn as
|
|
15261
|
-
import { jsx as
|
|
15378
|
+
import { cn as cn17 } from "@reblu/site-ui/utils";
|
|
15379
|
+
import { jsx as jsx23, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
15262
15380
|
var DEFAULT_SHOP_PRICE_BANDS = [
|
|
15263
15381
|
{ max: 2500 },
|
|
15264
15382
|
{ min: 2500, max: 5e3 },
|
|
@@ -15302,7 +15420,7 @@ function priceBandLabel(band, t, currencyCode, locale) {
|
|
|
15302
15420
|
return "";
|
|
15303
15421
|
}
|
|
15304
15422
|
function OptionLink({ href, active, label, onActivate }) {
|
|
15305
|
-
return /* @__PURE__ */
|
|
15423
|
+
return /* @__PURE__ */ jsx23(
|
|
15306
15424
|
"a",
|
|
15307
15425
|
{
|
|
15308
15426
|
href,
|
|
@@ -15311,7 +15429,7 @@ function OptionLink({ href, active, label, onActivate }) {
|
|
|
15311
15429
|
event.preventDefault();
|
|
15312
15430
|
onActivate();
|
|
15313
15431
|
} : void 0,
|
|
15314
|
-
className:
|
|
15432
|
+
className: cn17(
|
|
15315
15433
|
"inline-flex items-center rounded-full border px-3 py-1 text-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",
|
|
15316
15434
|
active ? "border-transparent bg-primary text-primary-foreground" : "border-border text-muted-foreground hover:bg-muted hover:text-foreground"
|
|
15317
15435
|
),
|
|
@@ -15320,9 +15438,9 @@ function OptionLink({ href, active, label, onActivate }) {
|
|
|
15320
15438
|
);
|
|
15321
15439
|
}
|
|
15322
15440
|
function FilterFieldset({ legend, children: children2 }) {
|
|
15323
|
-
return /* @__PURE__ */
|
|
15324
|
-
/* @__PURE__ */
|
|
15325
|
-
/* @__PURE__ */
|
|
15441
|
+
return /* @__PURE__ */ jsxs22("fieldset", { className: "space-y-2", children: [
|
|
15442
|
+
/* @__PURE__ */ jsx23("legend", { className: "text-sm font-medium text-foreground", children: legend }),
|
|
15443
|
+
/* @__PURE__ */ jsx23("div", { className: "flex flex-wrap gap-2", children: children2 })
|
|
15326
15444
|
] });
|
|
15327
15445
|
}
|
|
15328
15446
|
function ShopFilters({
|
|
@@ -15345,11 +15463,11 @@ function ShopFilters({
|
|
|
15345
15463
|
if (!shouldRenderShopFilters(facets, active)) {
|
|
15346
15464
|
return null;
|
|
15347
15465
|
}
|
|
15348
|
-
return /* @__PURE__ */
|
|
15466
|
+
return /* @__PURE__ */ jsxs22("div", { className: cn17("space-y-6", className), "data-slot": "shop-filters", children: [
|
|
15349
15467
|
visibleTaxonomies.map((axis) => {
|
|
15350
15468
|
const activeSlug = active.taxonomy?.[axis.key];
|
|
15351
|
-
return /* @__PURE__ */
|
|
15352
|
-
/* @__PURE__ */
|
|
15469
|
+
return /* @__PURE__ */ jsxs22(FilterFieldset, { legend: axis.label, children: [
|
|
15470
|
+
/* @__PURE__ */ jsx23(
|
|
15353
15471
|
OptionLink,
|
|
15354
15472
|
{
|
|
15355
15473
|
href: hrefs.taxonomy(axis.key, void 0),
|
|
@@ -15364,7 +15482,7 @@ function ShopFilters({
|
|
|
15364
15482
|
),
|
|
15365
15483
|
axis.terms.map((term) => {
|
|
15366
15484
|
const isActive = activeSlug === term.slug;
|
|
15367
|
-
return /* @__PURE__ */
|
|
15485
|
+
return /* @__PURE__ */ jsx23(
|
|
15368
15486
|
OptionLink,
|
|
15369
15487
|
{
|
|
15370
15488
|
href: hrefs.taxonomy(axis.key, isActive ? void 0 : term.slug),
|
|
@@ -15384,9 +15502,9 @@ function ShopFilters({
|
|
|
15384
15502
|
}),
|
|
15385
15503
|
visibleAttributes.map((attr) => {
|
|
15386
15504
|
const activeValues = toValueArray(active.attr?.[attr.key]);
|
|
15387
|
-
return /* @__PURE__ */
|
|
15505
|
+
return /* @__PURE__ */ jsx23(FilterFieldset, { legend: attr.label, children: attr.options.map((opt) => {
|
|
15388
15506
|
const isActive = activeValues.includes(opt.value);
|
|
15389
|
-
return /* @__PURE__ */
|
|
15507
|
+
return /* @__PURE__ */ jsx23(
|
|
15390
15508
|
OptionLink,
|
|
15391
15509
|
{
|
|
15392
15510
|
href: hrefs.attr(attr.key, opt.value),
|
|
@@ -15404,11 +15522,11 @@ function ShopFilters({
|
|
|
15404
15522
|
);
|
|
15405
15523
|
}) }, attr.key);
|
|
15406
15524
|
}),
|
|
15407
|
-
showPriceGroup && /* @__PURE__ */
|
|
15525
|
+
showPriceGroup && /* @__PURE__ */ jsx23(FilterFieldset, { legend: t.price, children: priceBands.map((band, i) => {
|
|
15408
15526
|
const isActive = active.priceMin === band.min && active.priceMax === band.max;
|
|
15409
15527
|
const nextMin = isActive ? void 0 : band.min;
|
|
15410
15528
|
const nextMax = isActive ? void 0 : band.max;
|
|
15411
|
-
return /* @__PURE__ */
|
|
15529
|
+
return /* @__PURE__ */ jsx23(
|
|
15412
15530
|
OptionLink,
|
|
15413
15531
|
{
|
|
15414
15532
|
href: hrefs.price(nextMin, nextMax),
|
|
@@ -15419,7 +15537,7 @@ function ShopFilters({
|
|
|
15419
15537
|
i
|
|
15420
15538
|
);
|
|
15421
15539
|
}) }),
|
|
15422
|
-
hasOnSale && /* @__PURE__ */
|
|
15540
|
+
hasOnSale && /* @__PURE__ */ jsx23(
|
|
15423
15541
|
OptionLink,
|
|
15424
15542
|
{
|
|
15425
15543
|
href: hrefs.onSale(!active.onSale),
|
|
@@ -15428,7 +15546,7 @@ function ShopFilters({
|
|
|
15428
15546
|
onActivate: onChange ? () => onChange({ onSale: !active.onSale }) : void 0
|
|
15429
15547
|
}
|
|
15430
15548
|
),
|
|
15431
|
-
/* @__PURE__ */
|
|
15549
|
+
/* @__PURE__ */ jsx23(
|
|
15432
15550
|
"a",
|
|
15433
15551
|
{
|
|
15434
15552
|
href: hrefs.clearAll(),
|
|
@@ -15444,8 +15562,8 @@ function ShopFilters({
|
|
|
15444
15562
|
}
|
|
15445
15563
|
|
|
15446
15564
|
// src/components/course-catalog-filters.tsx
|
|
15447
|
-
import { cn as
|
|
15448
|
-
import { jsx as
|
|
15565
|
+
import { cn as cn18 } from "@reblu/site-ui/utils";
|
|
15566
|
+
import { jsx as jsx24, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
15449
15567
|
var DEFAULT_COURSE_PRICE_BANDS = [
|
|
15450
15568
|
{ max: 5e3 },
|
|
15451
15569
|
{ min: 5e3, max: 15e3 },
|
|
@@ -15498,9 +15616,9 @@ function CourseCatalogFilters({
|
|
|
15498
15616
|
const showPrice = enabled.price !== false;
|
|
15499
15617
|
const isFree = Boolean(active.free);
|
|
15500
15618
|
if (!showCategories && !showInstructors && !showPrice) return null;
|
|
15501
|
-
return /* @__PURE__ */
|
|
15502
|
-
showCategories && /* @__PURE__ */
|
|
15503
|
-
/* @__PURE__ */
|
|
15619
|
+
return /* @__PURE__ */ jsxs23("div", { className: cn18("space-y-6", className), "data-slot": "course-catalog-filters", children: [
|
|
15620
|
+
showCategories && /* @__PURE__ */ jsxs23(FilterFieldset, { legend: t.category, children: [
|
|
15621
|
+
/* @__PURE__ */ jsx24(
|
|
15504
15622
|
OptionLink,
|
|
15505
15623
|
{
|
|
15506
15624
|
href: categoryHref(void 0),
|
|
@@ -15512,7 +15630,7 @@ function CourseCatalogFilters({
|
|
|
15512
15630
|
sortedCategories.map((category) => {
|
|
15513
15631
|
const isActive = active.category === category.slug;
|
|
15514
15632
|
const next2 = isActive ? void 0 : category.slug;
|
|
15515
|
-
return /* @__PURE__ */
|
|
15633
|
+
return /* @__PURE__ */ jsx24(
|
|
15516
15634
|
OptionLink,
|
|
15517
15635
|
{
|
|
15518
15636
|
href: categoryHref(next2),
|
|
@@ -15524,8 +15642,8 @@ function CourseCatalogFilters({
|
|
|
15524
15642
|
);
|
|
15525
15643
|
})
|
|
15526
15644
|
] }),
|
|
15527
|
-
showInstructors && /* @__PURE__ */
|
|
15528
|
-
/* @__PURE__ */
|
|
15645
|
+
showInstructors && /* @__PURE__ */ jsxs23(FilterFieldset, { legend: t.instructor, children: [
|
|
15646
|
+
/* @__PURE__ */ jsx24(
|
|
15529
15647
|
OptionLink,
|
|
15530
15648
|
{
|
|
15531
15649
|
href: hrefs.instructor(void 0),
|
|
@@ -15537,7 +15655,7 @@ function CourseCatalogFilters({
|
|
|
15537
15655
|
named.map((instructor) => {
|
|
15538
15656
|
const isActive = active.instructor === instructor.id;
|
|
15539
15657
|
const next2 = isActive ? void 0 : instructor.id;
|
|
15540
|
-
return /* @__PURE__ */
|
|
15658
|
+
return /* @__PURE__ */ jsx24(
|
|
15541
15659
|
OptionLink,
|
|
15542
15660
|
{
|
|
15543
15661
|
href: hrefs.instructor(next2),
|
|
@@ -15549,8 +15667,8 @@ function CourseCatalogFilters({
|
|
|
15549
15667
|
);
|
|
15550
15668
|
})
|
|
15551
15669
|
] }),
|
|
15552
|
-
showPrice && /* @__PURE__ */
|
|
15553
|
-
/* @__PURE__ */
|
|
15670
|
+
showPrice && /* @__PURE__ */ jsxs23(FilterFieldset, { legend: t.price, children: [
|
|
15671
|
+
/* @__PURE__ */ jsx24(
|
|
15554
15672
|
OptionLink,
|
|
15555
15673
|
{
|
|
15556
15674
|
href: hrefs.free(!isFree),
|
|
@@ -15565,7 +15683,7 @@ function CourseCatalogFilters({
|
|
|
15565
15683
|
const isActive = !isFree && active.priceMin === band.min && active.priceMax === band.max;
|
|
15566
15684
|
const nextMin = isActive ? void 0 : band.min;
|
|
15567
15685
|
const nextMax = isActive ? void 0 : band.max;
|
|
15568
|
-
return /* @__PURE__ */
|
|
15686
|
+
return /* @__PURE__ */ jsx24(
|
|
15569
15687
|
OptionLink,
|
|
15570
15688
|
{
|
|
15571
15689
|
href: hrefs.price(nextMin, nextMax),
|
|
@@ -15577,7 +15695,7 @@ function CourseCatalogFilters({
|
|
|
15577
15695
|
);
|
|
15578
15696
|
})
|
|
15579
15697
|
] }),
|
|
15580
|
-
/* @__PURE__ */
|
|
15698
|
+
/* @__PURE__ */ jsx24(
|
|
15581
15699
|
"a",
|
|
15582
15700
|
{
|
|
15583
15701
|
href: hrefs.clearAll(),
|
|
@@ -15599,8 +15717,8 @@ function CourseCatalogFilters({
|
|
|
15599
15717
|
}
|
|
15600
15718
|
|
|
15601
15719
|
// src/components/cart-line-list.tsx
|
|
15602
|
-
import { cn as
|
|
15603
|
-
import { jsx as
|
|
15720
|
+
import { cn as cn19 } from "@reblu/site-ui/utils";
|
|
15721
|
+
import { jsx as jsx25, jsxs as jsxs24 } from "react/jsx-runtime";
|
|
15604
15722
|
var DEFAULT_LABELS2 = {
|
|
15605
15723
|
quantityLabel: "Cantidad",
|
|
15606
15724
|
decrease: "Reducir cantidad",
|
|
@@ -15613,20 +15731,20 @@ var DEFAULT_LABELS2 = {
|
|
|
15613
15731
|
function CartLineIncludes({ entries, note, className }) {
|
|
15614
15732
|
const hasNote = note != null && note !== false && note !== "";
|
|
15615
15733
|
if (entries.length === 0 && !hasNote) return null;
|
|
15616
|
-
return /* @__PURE__ */
|
|
15734
|
+
return /* @__PURE__ */ jsxs24(
|
|
15617
15735
|
"div",
|
|
15618
15736
|
{
|
|
15619
|
-
className:
|
|
15737
|
+
className: cn19("mt-2 space-y-2 rounded-lg bg-muted px-4 py-3 text-sm", className),
|
|
15620
15738
|
"data-slot": "cart-line-includes",
|
|
15621
15739
|
children: [
|
|
15622
|
-
entries.length > 0 && /* @__PURE__ */
|
|
15740
|
+
entries.length > 0 && /* @__PURE__ */ jsx25("dl", { className: "grid grid-cols-[max-content_1fr] gap-x-4 gap-y-1.5", children: entries.map((entry, idx) => (
|
|
15623
15741
|
// eslint-disable-next-line react/no-array-index-key -- entries are positional, SITE-built rows
|
|
15624
|
-
/* @__PURE__ */
|
|
15625
|
-
/* @__PURE__ */
|
|
15626
|
-
/* @__PURE__ */
|
|
15742
|
+
/* @__PURE__ */ jsxs24("div", { className: "contents", children: [
|
|
15743
|
+
/* @__PURE__ */ jsx25("dt", { className: "font-semibold text-muted-foreground", children: entry.label }),
|
|
15744
|
+
/* @__PURE__ */ jsx25("dd", { className: "m-0", children: entry.value })
|
|
15627
15745
|
] }, idx)
|
|
15628
15746
|
)) }),
|
|
15629
|
-
hasNote && /* @__PURE__ */
|
|
15747
|
+
hasNote && /* @__PURE__ */ jsx25("p", { className: "text-muted-foreground", children: note })
|
|
15630
15748
|
]
|
|
15631
15749
|
}
|
|
15632
15750
|
);
|
|
@@ -15655,9 +15773,9 @@ function CartLineList({
|
|
|
15655
15773
|
}) {
|
|
15656
15774
|
const t = { ...DEFAULT_LABELS2, ...labels };
|
|
15657
15775
|
const noticeContent = notice === true ? t.cancelledNotice : notice;
|
|
15658
|
-
return /* @__PURE__ */
|
|
15659
|
-
/* @__PURE__ */
|
|
15660
|
-
noticeContent != null && noticeContent !== false && /* @__PURE__ */
|
|
15776
|
+
return /* @__PURE__ */ jsxs24("div", { className: cn19("space-y-4", className), "data-slot": "cart-line-list", children: [
|
|
15777
|
+
/* @__PURE__ */ jsx25("div", { "aria-live": "polite", className: "sr-only", children: liveMessage }),
|
|
15778
|
+
noticeContent != null && noticeContent !== false && /* @__PURE__ */ jsx25(
|
|
15661
15779
|
"div",
|
|
15662
15780
|
{
|
|
15663
15781
|
role: "status",
|
|
@@ -15666,34 +15784,34 @@ function CartLineList({
|
|
|
15666
15784
|
children: noticeContent
|
|
15667
15785
|
}
|
|
15668
15786
|
),
|
|
15669
|
-
/* @__PURE__ */
|
|
15787
|
+
/* @__PURE__ */ jsx25("ul", { className: "space-y-4", children: items.map((item) => {
|
|
15670
15788
|
const maxQty = item.maxStock ?? Infinity;
|
|
15671
15789
|
const atMax = item.quantity >= maxQty;
|
|
15672
15790
|
const atMin = item.quantity <= 1;
|
|
15673
15791
|
const message = lineMessage?.(item);
|
|
15674
15792
|
const includes = lineIncludes?.(item);
|
|
15675
|
-
return /* @__PURE__ */
|
|
15793
|
+
return /* @__PURE__ */ jsxs24(
|
|
15676
15794
|
"li",
|
|
15677
15795
|
{
|
|
15678
15796
|
className: "flex gap-4 rounded-xl border border-border bg-card p-4",
|
|
15679
15797
|
children: [
|
|
15680
|
-
/* @__PURE__ */
|
|
15681
|
-
/* @__PURE__ */
|
|
15682
|
-
/* @__PURE__ */
|
|
15683
|
-
item.variantName && /* @__PURE__ */
|
|
15684
|
-
/* @__PURE__ */
|
|
15798
|
+
/* @__PURE__ */ jsx25("div", { className: "h-20 w-20 flex-shrink-0 overflow-hidden rounded-lg bg-muted", children: item.imageUrl ? /* @__PURE__ */ jsx25("img", { src: item.imageUrl, alt: item.name, className: "h-full w-full object-cover" }) : null }),
|
|
15799
|
+
/* @__PURE__ */ jsxs24("div", { className: "min-w-0 flex-1", children: [
|
|
15800
|
+
/* @__PURE__ */ jsx25("p", { className: "truncate text-sm font-semibold leading-tight", children: item.name }),
|
|
15801
|
+
item.variantName && /* @__PURE__ */ jsx25("p", { className: "mt-0.5 text-xs text-muted-foreground", children: item.variantName }),
|
|
15802
|
+
/* @__PURE__ */ jsxs24("p", { className: "mt-1 text-sm text-muted-foreground", children: [
|
|
15685
15803
|
formatPrice(item.unitPrice, currencyCode, locale),
|
|
15686
15804
|
" ",
|
|
15687
15805
|
t.unitPriceSuffix
|
|
15688
15806
|
] }),
|
|
15689
|
-
/* @__PURE__ */
|
|
15807
|
+
/* @__PURE__ */ jsxs24(
|
|
15690
15808
|
"div",
|
|
15691
15809
|
{
|
|
15692
15810
|
role: "group",
|
|
15693
15811
|
"aria-label": t.quantityLabel,
|
|
15694
15812
|
className: "mt-3 flex items-center gap-3",
|
|
15695
15813
|
children: [
|
|
15696
|
-
/* @__PURE__ */
|
|
15814
|
+
/* @__PURE__ */ jsx25(
|
|
15697
15815
|
"button",
|
|
15698
15816
|
{
|
|
15699
15817
|
type: "button",
|
|
@@ -15704,8 +15822,8 @@ function CartLineList({
|
|
|
15704
15822
|
children: "\u2212"
|
|
15705
15823
|
}
|
|
15706
15824
|
),
|
|
15707
|
-
/* @__PURE__ */
|
|
15708
|
-
/* @__PURE__ */
|
|
15825
|
+
/* @__PURE__ */ jsx25("span", { className: "w-8 text-center text-sm font-semibold tabular-nums", children: item.quantity }),
|
|
15826
|
+
/* @__PURE__ */ jsx25(
|
|
15709
15827
|
"button",
|
|
15710
15828
|
{
|
|
15711
15829
|
type: "button",
|
|
@@ -15716,7 +15834,7 @@ function CartLineList({
|
|
|
15716
15834
|
children: "+"
|
|
15717
15835
|
}
|
|
15718
15836
|
),
|
|
15719
|
-
onRemove && /* @__PURE__ */
|
|
15837
|
+
onRemove && /* @__PURE__ */ jsx25(
|
|
15720
15838
|
"button",
|
|
15721
15839
|
{
|
|
15722
15840
|
type: "button",
|
|
@@ -15729,7 +15847,7 @@ function CartLineList({
|
|
|
15729
15847
|
]
|
|
15730
15848
|
}
|
|
15731
15849
|
),
|
|
15732
|
-
message != null && message !== false && /* @__PURE__ */
|
|
15850
|
+
message != null && message !== false && /* @__PURE__ */ jsx25(
|
|
15733
15851
|
"p",
|
|
15734
15852
|
{
|
|
15735
15853
|
className: "mt-2 text-sm text-destructive",
|
|
@@ -15737,12 +15855,12 @@ function CartLineList({
|
|
|
15737
15855
|
children: message
|
|
15738
15856
|
}
|
|
15739
15857
|
),
|
|
15740
|
-
includes != null && includes !== false && /* @__PURE__ */
|
|
15741
|
-
/* @__PURE__ */
|
|
15858
|
+
includes != null && includes !== false && /* @__PURE__ */ jsxs24("details", { className: "mt-2", "data-slot": "cart-line-list-includes", children: [
|
|
15859
|
+
/* @__PURE__ */ jsx25("summary", { className: "cursor-pointer text-sm font-semibold text-primary", children: t.includesSummary }),
|
|
15742
15860
|
includes
|
|
15743
15861
|
] })
|
|
15744
15862
|
] }),
|
|
15745
|
-
/* @__PURE__ */
|
|
15863
|
+
/* @__PURE__ */ jsx25("div", { className: "flex-shrink-0 text-right", children: /* @__PURE__ */ jsx25("p", { className: "text-base font-bold", children: formatPrice(item.unitPrice * item.quantity, currencyCode, locale) }) })
|
|
15746
15864
|
]
|
|
15747
15865
|
},
|
|
15748
15866
|
lineKey(item.productId, item.variantId)
|
|
@@ -15752,8 +15870,8 @@ function CartLineList({
|
|
|
15752
15870
|
}
|
|
15753
15871
|
|
|
15754
15872
|
// src/components/cart-summary.tsx
|
|
15755
|
-
import { cn as
|
|
15756
|
-
import { jsx as
|
|
15873
|
+
import { cn as cn20 } from "@reblu/site-ui/utils";
|
|
15874
|
+
import { jsx as jsx26, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
15757
15875
|
var DEFAULT_LABELS3 = {
|
|
15758
15876
|
subtotal: "Subtotal",
|
|
15759
15877
|
discountPrefix: "Descuento",
|
|
@@ -15783,37 +15901,37 @@ function CartSummary({
|
|
|
15783
15901
|
const hasDiscount = Boolean(discountAmount && discountAmount > 0);
|
|
15784
15902
|
const noticeContent = notice === true ? t.cancelledNotice : notice;
|
|
15785
15903
|
const hasNotice = noticeContent != null && noticeContent !== false;
|
|
15786
|
-
const breakdown = /* @__PURE__ */
|
|
15904
|
+
const breakdown = /* @__PURE__ */ jsxs25(
|
|
15787
15905
|
"dl",
|
|
15788
15906
|
{
|
|
15789
|
-
className:
|
|
15907
|
+
className: cn20("space-y-2 text-sm", !hasNotice && className),
|
|
15790
15908
|
"data-slot": "cart-summary",
|
|
15791
15909
|
children: [
|
|
15792
|
-
/* @__PURE__ */
|
|
15793
|
-
/* @__PURE__ */
|
|
15794
|
-
/* @__PURE__ */
|
|
15910
|
+
/* @__PURE__ */ jsxs25("div", { className: "flex justify-between text-muted-foreground", children: [
|
|
15911
|
+
/* @__PURE__ */ jsx26("dt", { children: t.subtotal }),
|
|
15912
|
+
/* @__PURE__ */ jsx26("dd", { children: formatPrice(subtotal, currencyCode, locale) })
|
|
15795
15913
|
] }),
|
|
15796
|
-
hasDiscount && /* @__PURE__ */
|
|
15797
|
-
/* @__PURE__ */
|
|
15798
|
-
/* @__PURE__ */
|
|
15914
|
+
hasDiscount && /* @__PURE__ */ jsxs25("div", { className: "flex justify-between text-green-600 dark:text-green-400", children: [
|
|
15915
|
+
/* @__PURE__ */ jsx26("dt", { children: autoDiscount ? t.staffDiscountApplied : `${t.discountPrefix}${discountCode ? ` (${discountCode})` : ""}` }),
|
|
15916
|
+
/* @__PURE__ */ jsxs25("dd", { children: [
|
|
15799
15917
|
"-",
|
|
15800
15918
|
formatPrice(discountAmount, currencyCode, locale)
|
|
15801
15919
|
] })
|
|
15802
15920
|
] }),
|
|
15803
|
-
shippingEnabled && /* @__PURE__ */
|
|
15804
|
-
/* @__PURE__ */
|
|
15805
|
-
/* @__PURE__ */
|
|
15921
|
+
shippingEnabled && /* @__PURE__ */ jsxs25("div", { className: "flex justify-between text-muted-foreground", children: [
|
|
15922
|
+
/* @__PURE__ */ jsx26("dt", { children: t.shipping }),
|
|
15923
|
+
/* @__PURE__ */ jsx26("dd", { children: shipping == null || !Number.isFinite(shipping) ? t.shippingCalculated : shipping === 0 ? t.freeShipping : formatPrice(shipping, currencyCode, locale) })
|
|
15806
15924
|
] }),
|
|
15807
|
-
/* @__PURE__ */
|
|
15808
|
-
/* @__PURE__ */
|
|
15809
|
-
/* @__PURE__ */
|
|
15925
|
+
/* @__PURE__ */ jsxs25("div", { className: "flex justify-between border-t border-border pt-2 text-base font-bold", children: [
|
|
15926
|
+
/* @__PURE__ */ jsx26("dt", { children: t.total }),
|
|
15927
|
+
/* @__PURE__ */ jsx26("dd", { children: formatPrice(total, currencyCode, locale) })
|
|
15810
15928
|
] })
|
|
15811
15929
|
]
|
|
15812
15930
|
}
|
|
15813
15931
|
);
|
|
15814
15932
|
if (!hasNotice) return breakdown;
|
|
15815
|
-
return /* @__PURE__ */
|
|
15816
|
-
/* @__PURE__ */
|
|
15933
|
+
return /* @__PURE__ */ jsxs25("div", { className: cn20("space-y-3", className), "data-slot": "cart-summary-wrapper", children: [
|
|
15934
|
+
/* @__PURE__ */ jsx26(
|
|
15817
15935
|
"div",
|
|
15818
15936
|
{
|
|
15819
15937
|
role: "status",
|
|
@@ -15827,8 +15945,8 @@ function CartSummary({
|
|
|
15827
15945
|
}
|
|
15828
15946
|
|
|
15829
15947
|
// src/components/cart-adjustments-notice.tsx
|
|
15830
|
-
import { cn as
|
|
15831
|
-
import { jsx as
|
|
15948
|
+
import { cn as cn21 } from "@reblu/site-ui/utils";
|
|
15949
|
+
import { jsx as jsx27 } from "react/jsx-runtime";
|
|
15832
15950
|
var DEFAULT_LABELS4 = {
|
|
15833
15951
|
removed: (names) => names.length === 1 ? `Hemos quitado del carrito: ${names[0]}, ya no est\xE1 disponible.` : `Hemos quitado del carrito: ${names.join(", ")}, ya no est\xE1n disponibles.`,
|
|
15834
15952
|
quantityChanged: (name, quantity) => `Hemos ajustado la cantidad de ${name} a ${quantity} por el stock disponible.`,
|
|
@@ -15862,20 +15980,20 @@ function CartAdjustmentsNotice({
|
|
|
15862
15980
|
);
|
|
15863
15981
|
}
|
|
15864
15982
|
if (messages.length === 0) return null;
|
|
15865
|
-
return /* @__PURE__ */
|
|
15983
|
+
return /* @__PURE__ */ jsx27(
|
|
15866
15984
|
"div",
|
|
15867
15985
|
{
|
|
15868
15986
|
role: "status",
|
|
15869
|
-
className:
|
|
15987
|
+
className: cn21("rounded-lg border border-border bg-muted px-3 py-2 text-sm", className),
|
|
15870
15988
|
"data-slot": "cart-adjustments-notice",
|
|
15871
|
-
children: messages.length === 1 ? /* @__PURE__ */
|
|
15989
|
+
children: messages.length === 1 ? /* @__PURE__ */ jsx27("p", { children: messages[0] }) : /* @__PURE__ */ jsx27("ul", { className: "list-disc space-y-1 pl-4", children: messages.map((message, index) => /* @__PURE__ */ jsx27("li", { children: message }, index)) })
|
|
15872
15990
|
}
|
|
15873
15991
|
);
|
|
15874
15992
|
}
|
|
15875
15993
|
|
|
15876
15994
|
// src/components/added-to-cart-toast.tsx
|
|
15877
|
-
import { cn as
|
|
15878
|
-
import { jsx as
|
|
15995
|
+
import { cn as cn22 } from "@reblu/site-ui/utils";
|
|
15996
|
+
import { jsx as jsx28, jsxs as jsxs26 } from "react/jsx-runtime";
|
|
15879
15997
|
var DEFAULT_LABELS5 = {
|
|
15880
15998
|
success: "A\xF1adido al carrito",
|
|
15881
15999
|
error: "No se pudo a\xF1adir al carrito",
|
|
@@ -15895,12 +16013,12 @@ function AddedToCartToast({
|
|
|
15895
16013
|
const message = status === "error" ? t.error : status === "outOfStock" ? t.outOfStock : t.success;
|
|
15896
16014
|
const hasThumbnail = Boolean(imageUrl && imageUrl.trim().length > 0);
|
|
15897
16015
|
const variant = status === "success" ? "success" : "error";
|
|
15898
|
-
return /* @__PURE__ */
|
|
16016
|
+
return /* @__PURE__ */ jsxs26(
|
|
15899
16017
|
"div",
|
|
15900
16018
|
{
|
|
15901
16019
|
"data-slot": "added-to-cart-toast",
|
|
15902
16020
|
"data-variant": variant,
|
|
15903
|
-
className:
|
|
16021
|
+
className: cn22(
|
|
15904
16022
|
"flex items-center gap-3 rounded-xl border border-border bg-card p-3 text-sm shadow-lg",
|
|
15905
16023
|
variant === "success" && "border-green-600/30 dark:border-green-400/30",
|
|
15906
16024
|
variant === "error" && "border-destructive/30",
|
|
@@ -15908,20 +16026,20 @@ function AddedToCartToast({
|
|
|
15908
16026
|
),
|
|
15909
16027
|
children: [
|
|
15910
16028
|
hasThumbnail && // eslint-disable-next-line @next/next/no-img-element -- toast content, not a Next <Image> layout context
|
|
15911
|
-
/* @__PURE__ */
|
|
15912
|
-
/* @__PURE__ */
|
|
15913
|
-
/* @__PURE__ */
|
|
15914
|
-
/* @__PURE__ */
|
|
16029
|
+
/* @__PURE__ */ jsx28("img", { src: imageUrl, alt: productName, className: "h-10 w-10 flex-shrink-0 rounded-lg object-cover" }),
|
|
16030
|
+
/* @__PURE__ */ jsxs26("div", { className: "min-w-0 flex-1", children: [
|
|
16031
|
+
/* @__PURE__ */ jsx28("p", { className: "truncate font-semibold text-foreground", children: productName }),
|
|
16032
|
+
/* @__PURE__ */ jsx28("p", { className: "truncate text-muted-foreground", children: quantity && quantity > 1 ? `${message} \xB7 x${quantity}` : message })
|
|
15915
16033
|
] }),
|
|
15916
|
-
/* @__PURE__ */
|
|
16034
|
+
/* @__PURE__ */ jsx28("div", { className: "flex-shrink-0", children: /* @__PURE__ */ jsx28("a", { href: cartHref, className: "text-sm font-semibold text-primary underline-offset-2 hover:underline", children: t.viewCart }) })
|
|
15917
16035
|
]
|
|
15918
16036
|
}
|
|
15919
16037
|
);
|
|
15920
16038
|
}
|
|
15921
16039
|
|
|
15922
16040
|
// src/components/checkout-login-prompt.tsx
|
|
15923
|
-
import { cn as
|
|
15924
|
-
import { Fragment as Fragment5, jsx as
|
|
16041
|
+
import { cn as cn23 } from "@reblu/site-ui/utils";
|
|
16042
|
+
import { Fragment as Fragment5, jsx as jsx29, jsxs as jsxs27 } from "react/jsx-runtime";
|
|
15925
16043
|
var DEFAULT_LABELS6 = {
|
|
15926
16044
|
title: "Identificaci\xF3n",
|
|
15927
16045
|
description: "Introduce tu email para agilizar el proceso o contin\xFAa como invitado.",
|
|
@@ -15948,26 +16066,26 @@ function CheckoutLoginPrompt({
|
|
|
15948
16066
|
if (!open) return null;
|
|
15949
16067
|
const t = { ...DEFAULT_LABELS6, ...labels };
|
|
15950
16068
|
const isValidEmail = EMAIL_PATTERN.test(email.trim());
|
|
15951
|
-
return /* @__PURE__ */
|
|
15952
|
-
/* @__PURE__ */
|
|
15953
|
-
/* @__PURE__ */
|
|
16069
|
+
return /* @__PURE__ */ jsxs27(Fragment5, { children: [
|
|
16070
|
+
/* @__PURE__ */ jsx29("div", { className: "fixed inset-0 z-50 bg-black/50", onClick: onClose, "aria-hidden": "true" }),
|
|
16071
|
+
/* @__PURE__ */ jsxs27(
|
|
15954
16072
|
"div",
|
|
15955
16073
|
{
|
|
15956
16074
|
role: "dialog",
|
|
15957
16075
|
"aria-modal": "true",
|
|
15958
16076
|
"aria-labelledby": "checkout-login-prompt-title",
|
|
15959
16077
|
"data-slot": "checkout-login-prompt",
|
|
15960
|
-
className:
|
|
16078
|
+
className: cn23(
|
|
15961
16079
|
"fixed left-1/2 top-1/2 z-50 w-full max-w-md -translate-x-1/2 -translate-y-1/2 space-y-5 rounded-2xl border border-border bg-background p-6 shadow-2xl",
|
|
15962
16080
|
className
|
|
15963
16081
|
),
|
|
15964
16082
|
children: [
|
|
15965
|
-
/* @__PURE__ */
|
|
15966
|
-
/* @__PURE__ */
|
|
15967
|
-
/* @__PURE__ */
|
|
15968
|
-
/* @__PURE__ */
|
|
16083
|
+
/* @__PURE__ */ jsxs27("div", { className: "flex items-start justify-between gap-3", children: [
|
|
16084
|
+
/* @__PURE__ */ jsxs27("div", { children: [
|
|
16085
|
+
/* @__PURE__ */ jsx29("h2", { id: "checkout-login-prompt-title", className: "text-xl font-bold", children: t.title }),
|
|
16086
|
+
/* @__PURE__ */ jsx29("p", { className: "mt-1 text-sm text-muted-foreground", children: t.description })
|
|
15969
16087
|
] }),
|
|
15970
|
-
/* @__PURE__ */
|
|
16088
|
+
/* @__PURE__ */ jsx29(
|
|
15971
16089
|
"button",
|
|
15972
16090
|
{
|
|
15973
16091
|
type: "button",
|
|
@@ -15978,9 +16096,9 @@ function CheckoutLoginPrompt({
|
|
|
15978
16096
|
}
|
|
15979
16097
|
)
|
|
15980
16098
|
] }),
|
|
15981
|
-
/* @__PURE__ */
|
|
15982
|
-
/* @__PURE__ */
|
|
15983
|
-
/* @__PURE__ */
|
|
16099
|
+
/* @__PURE__ */ jsxs27("div", { className: "space-y-2", children: [
|
|
16100
|
+
/* @__PURE__ */ jsx29("label", { htmlFor: "checkout-login-prompt-email", className: "text-sm font-medium", children: t.emailLabel }),
|
|
16101
|
+
/* @__PURE__ */ jsx29(
|
|
15984
16102
|
"input",
|
|
15985
16103
|
{
|
|
15986
16104
|
id: "checkout-login-prompt-email",
|
|
@@ -15989,29 +16107,29 @@ function CheckoutLoginPrompt({
|
|
|
15989
16107
|
value: email,
|
|
15990
16108
|
onChange: (e) => onEmailChange(e.target.value),
|
|
15991
16109
|
placeholder: t.emailPlaceholder,
|
|
15992
|
-
className:
|
|
16110
|
+
className: cn23(
|
|
15993
16111
|
"w-full rounded-lg border bg-background px-3 py-2 text-sm transition focus:outline-none focus:ring-2 focus:ring-primary/20",
|
|
15994
16112
|
error ? "border-destructive" : "border-border focus:border-primary"
|
|
15995
16113
|
)
|
|
15996
16114
|
}
|
|
15997
16115
|
),
|
|
15998
|
-
error && /* @__PURE__ */
|
|
16116
|
+
error && /* @__PURE__ */ jsx29("p", { className: "text-xs text-destructive", children: error })
|
|
15999
16117
|
] }),
|
|
16000
|
-
/* @__PURE__ */
|
|
16001
|
-
/* @__PURE__ */
|
|
16118
|
+
/* @__PURE__ */ jsxs27("div", { className: "space-y-2", children: [
|
|
16119
|
+
/* @__PURE__ */ jsx29(
|
|
16002
16120
|
"button",
|
|
16003
16121
|
{
|
|
16004
16122
|
type: "button",
|
|
16005
16123
|
onClick: onSubmitEmail,
|
|
16006
16124
|
disabled: checking || !isValidEmail,
|
|
16007
|
-
className:
|
|
16125
|
+
className: cn23(
|
|
16008
16126
|
"flex w-full cursor-pointer items-center justify-center gap-2 rounded-xl px-4 py-2.5 text-sm font-semibold transition-all",
|
|
16009
16127
|
checking || !isValidEmail ? "cursor-not-allowed bg-muted text-muted-foreground" : "bg-primary text-primary-foreground hover:bg-primary/90"
|
|
16010
16128
|
),
|
|
16011
16129
|
children: checking ? t.checking : t.continueWithEmail
|
|
16012
16130
|
}
|
|
16013
16131
|
),
|
|
16014
|
-
/* @__PURE__ */
|
|
16132
|
+
/* @__PURE__ */ jsx29(
|
|
16015
16133
|
"button",
|
|
16016
16134
|
{
|
|
16017
16135
|
type: "button",
|
|
@@ -16028,9 +16146,9 @@ function CheckoutLoginPrompt({
|
|
|
16028
16146
|
}
|
|
16029
16147
|
|
|
16030
16148
|
// src/components/checkout-form.tsx
|
|
16031
|
-
import { cn as
|
|
16149
|
+
import { cn as cn24 } from "@reblu/site-ui/utils";
|
|
16032
16150
|
import { PhoneInput } from "@reblu/site-ui/phone-input";
|
|
16033
|
-
import { Fragment as Fragment6, jsx as
|
|
16151
|
+
import { Fragment as Fragment6, jsx as jsx30, jsxs as jsxs28 } from "react/jsx-runtime";
|
|
16034
16152
|
var DEFAULT_LABELS7 = {
|
|
16035
16153
|
contactTitle: "Datos de contacto",
|
|
16036
16154
|
nameLabel: "Nombre completo",
|
|
@@ -16086,22 +16204,22 @@ function CheckoutForm({
|
|
|
16086
16204
|
event.preventDefault();
|
|
16087
16205
|
if (discountCode.trim() && !discountApplying) onApplyDiscount();
|
|
16088
16206
|
}
|
|
16089
|
-
return /* @__PURE__ */
|
|
16207
|
+
return /* @__PURE__ */ jsxs28(Fragment6, { children: [
|
|
16090
16208
|
loginPrompt,
|
|
16091
|
-
/* @__PURE__ */
|
|
16209
|
+
/* @__PURE__ */ jsxs28(
|
|
16092
16210
|
"form",
|
|
16093
16211
|
{
|
|
16094
16212
|
"data-testid": "checkout-form",
|
|
16095
16213
|
onSubmit,
|
|
16096
|
-
className:
|
|
16214
|
+
className: cn24("space-y-8", className),
|
|
16097
16215
|
"data-slot": "checkout-form",
|
|
16098
16216
|
children: [
|
|
16099
|
-
/* @__PURE__ */
|
|
16100
|
-
/* @__PURE__ */
|
|
16101
|
-
/* @__PURE__ */
|
|
16102
|
-
/* @__PURE__ */
|
|
16103
|
-
/* @__PURE__ */
|
|
16104
|
-
/* @__PURE__ */
|
|
16217
|
+
/* @__PURE__ */ jsxs28("section", { className: "space-y-4", children: [
|
|
16218
|
+
/* @__PURE__ */ jsx30("h2", { className: "border-b border-border pb-2 text-lg font-semibold", children: t.contactTitle }),
|
|
16219
|
+
/* @__PURE__ */ jsxs28("div", { className: "grid grid-cols-1 gap-4 sm:grid-cols-2", children: [
|
|
16220
|
+
/* @__PURE__ */ jsxs28("div", { className: "space-y-1", children: [
|
|
16221
|
+
/* @__PURE__ */ jsx30("label", { htmlFor: "checkout-form-name", className: "text-sm font-medium", children: t.nameLabel }),
|
|
16222
|
+
/* @__PURE__ */ jsx30(
|
|
16105
16223
|
"input",
|
|
16106
16224
|
{
|
|
16107
16225
|
id: "checkout-form-name",
|
|
@@ -16110,17 +16228,17 @@ function CheckoutForm({
|
|
|
16110
16228
|
value: contact.name,
|
|
16111
16229
|
onChange: (e) => patchContact({ name: e.target.value }),
|
|
16112
16230
|
placeholder: t.namePlaceholder,
|
|
16113
|
-
className:
|
|
16231
|
+
className: cn24(
|
|
16114
16232
|
"w-full rounded-lg border bg-background px-3 py-2 text-sm transition focus:outline-none focus:ring-2 focus:ring-primary/20",
|
|
16115
16233
|
contactErrors?.name ? "border-destructive" : "border-border focus:border-primary"
|
|
16116
16234
|
)
|
|
16117
16235
|
}
|
|
16118
16236
|
),
|
|
16119
|
-
contactErrors?.name && /* @__PURE__ */
|
|
16237
|
+
contactErrors?.name && /* @__PURE__ */ jsx30("p", { className: "text-xs text-destructive", children: contactErrors.name })
|
|
16120
16238
|
] }),
|
|
16121
|
-
/* @__PURE__ */
|
|
16122
|
-
/* @__PURE__ */
|
|
16123
|
-
/* @__PURE__ */
|
|
16239
|
+
/* @__PURE__ */ jsxs28("div", { className: "space-y-1", children: [
|
|
16240
|
+
/* @__PURE__ */ jsx30("label", { htmlFor: "checkout-form-email", className: "text-sm font-medium", children: t.emailLabel }),
|
|
16241
|
+
/* @__PURE__ */ jsx30(
|
|
16124
16242
|
"input",
|
|
16125
16243
|
{
|
|
16126
16244
|
id: "checkout-form-email",
|
|
@@ -16129,15 +16247,15 @@ function CheckoutForm({
|
|
|
16129
16247
|
value: contact.email,
|
|
16130
16248
|
onChange: (e) => patchContact({ email: e.target.value }),
|
|
16131
16249
|
placeholder: t.emailPlaceholder,
|
|
16132
|
-
className:
|
|
16250
|
+
className: cn24(
|
|
16133
16251
|
"w-full rounded-lg border bg-background px-3 py-2 text-sm transition focus:outline-none focus:ring-2 focus:ring-primary/20",
|
|
16134
16252
|
contactErrors?.email ? "border-destructive" : "border-border focus:border-primary"
|
|
16135
16253
|
)
|
|
16136
16254
|
}
|
|
16137
16255
|
),
|
|
16138
|
-
contactErrors?.email && /* @__PURE__ */
|
|
16256
|
+
contactErrors?.email && /* @__PURE__ */ jsx30("p", { className: "text-xs text-destructive", children: contactErrors.email })
|
|
16139
16257
|
] }),
|
|
16140
|
-
/* @__PURE__ */
|
|
16258
|
+
/* @__PURE__ */ jsx30("div", { className: "space-y-1", children: /* @__PURE__ */ jsx30(
|
|
16141
16259
|
PhoneInput,
|
|
16142
16260
|
{
|
|
16143
16261
|
id: "checkout-form-phone",
|
|
@@ -16151,26 +16269,26 @@ function CheckoutForm({
|
|
|
16151
16269
|
] })
|
|
16152
16270
|
] }),
|
|
16153
16271
|
children2,
|
|
16154
|
-
generalError ? /* @__PURE__ */
|
|
16155
|
-
/* @__PURE__ */
|
|
16156
|
-
/* @__PURE__ */
|
|
16157
|
-
autoDiscount ? /* @__PURE__ */
|
|
16272
|
+
generalError ? /* @__PURE__ */ jsx30("p", { role: "alert", className: "text-sm text-destructive", children: generalError }) : null,
|
|
16273
|
+
/* @__PURE__ */ jsxs28("section", { className: "space-y-3", children: [
|
|
16274
|
+
/* @__PURE__ */ jsx30("h2", { className: "border-b border-border pb-2 text-lg font-semibold", children: t.discountTitle }),
|
|
16275
|
+
autoDiscount ? /* @__PURE__ */ jsxs28(
|
|
16158
16276
|
"div",
|
|
16159
16277
|
{
|
|
16160
16278
|
className: "flex items-center gap-2 rounded-lg border border-green-200 bg-green-50 px-4 py-3 text-sm text-green-700 dark:border-green-800 dark:bg-green-900/20 dark:text-green-400",
|
|
16161
16279
|
"data-slot": "checkout-staff-discount",
|
|
16162
16280
|
children: [
|
|
16163
|
-
/* @__PURE__ */
|
|
16164
|
-
/* @__PURE__ */
|
|
16281
|
+
/* @__PURE__ */ jsx30("span", { className: "font-semibold", children: t.staffDiscountApplied }),
|
|
16282
|
+
/* @__PURE__ */ jsx30("span", { children: t.discountAppliedSuffix(formatPrice(autoDiscount.amount, currencyCode, locale)) })
|
|
16165
16283
|
]
|
|
16166
16284
|
}
|
|
16167
16285
|
) : null,
|
|
16168
|
-
appliedDiscount && !autoDiscount ? /* @__PURE__ */
|
|
16169
|
-
/* @__PURE__ */
|
|
16170
|
-
/* @__PURE__ */
|
|
16171
|
-
/* @__PURE__ */
|
|
16286
|
+
appliedDiscount && !autoDiscount ? /* @__PURE__ */ jsxs28("div", { className: "flex items-center justify-between rounded-lg border border-green-200 bg-green-50 px-4 py-3 dark:border-green-800 dark:bg-green-900/20", children: [
|
|
16287
|
+
/* @__PURE__ */ jsxs28("div", { className: "flex items-center gap-2 text-sm text-green-700 dark:text-green-400", children: [
|
|
16288
|
+
/* @__PURE__ */ jsx30("span", { className: "font-semibold", children: appliedDiscount.code }),
|
|
16289
|
+
/* @__PURE__ */ jsx30("span", { children: t.discountAppliedSuffix(formatPrice(appliedDiscount.amount, currencyCode, locale)) })
|
|
16172
16290
|
] }),
|
|
16173
|
-
/* @__PURE__ */
|
|
16291
|
+
/* @__PURE__ */ jsx30(
|
|
16174
16292
|
"button",
|
|
16175
16293
|
{
|
|
16176
16294
|
type: "button",
|
|
@@ -16180,9 +16298,9 @@ function CheckoutForm({
|
|
|
16180
16298
|
children: t.removeDiscount
|
|
16181
16299
|
}
|
|
16182
16300
|
)
|
|
16183
|
-
] }) : /* @__PURE__ */
|
|
16184
|
-
/* @__PURE__ */
|
|
16185
|
-
/* @__PURE__ */
|
|
16301
|
+
] }) : /* @__PURE__ */ jsxs28("div", { className: "flex gap-2", children: [
|
|
16302
|
+
/* @__PURE__ */ jsx30("label", { htmlFor: "checkout-form-discount-code", className: "sr-only", children: t.discountTitle }),
|
|
16303
|
+
/* @__PURE__ */ jsx30(
|
|
16186
16304
|
"input",
|
|
16187
16305
|
{
|
|
16188
16306
|
id: "checkout-form-discount-code",
|
|
@@ -16194,7 +16312,7 @@ function CheckoutForm({
|
|
|
16194
16312
|
className: "flex-1 rounded-lg border border-border bg-background px-3 py-2 text-sm uppercase transition focus:border-primary focus:outline-none focus:ring-2 focus:ring-primary/20"
|
|
16195
16313
|
}
|
|
16196
16314
|
),
|
|
16197
|
-
/* @__PURE__ */
|
|
16315
|
+
/* @__PURE__ */ jsx30(
|
|
16198
16316
|
"button",
|
|
16199
16317
|
{
|
|
16200
16318
|
type: "button",
|
|
@@ -16205,14 +16323,14 @@ function CheckoutForm({
|
|
|
16205
16323
|
}
|
|
16206
16324
|
)
|
|
16207
16325
|
] }),
|
|
16208
|
-
discountError && /* @__PURE__ */
|
|
16326
|
+
discountError && /* @__PURE__ */ jsx30("p", { className: "text-xs text-destructive", children: discountError })
|
|
16209
16327
|
] }),
|
|
16210
|
-
/* @__PURE__ */
|
|
16328
|
+
/* @__PURE__ */ jsx30(
|
|
16211
16329
|
"button",
|
|
16212
16330
|
{
|
|
16213
16331
|
type: "submit",
|
|
16214
16332
|
disabled: submitting || submitDisabled,
|
|
16215
|
-
className:
|
|
16333
|
+
className: cn24(
|
|
16216
16334
|
"flex w-full cursor-pointer items-center justify-center gap-2 rounded-xl px-4 py-3 font-semibold transition-all",
|
|
16217
16335
|
submitting || submitDisabled ? "cursor-not-allowed bg-muted text-muted-foreground" : "bg-primary text-primary-foreground hover:bg-primary/90"
|
|
16218
16336
|
),
|
|
@@ -16226,11 +16344,11 @@ function CheckoutForm({
|
|
|
16226
16344
|
}
|
|
16227
16345
|
|
|
16228
16346
|
// src/components/order-confirmation.tsx
|
|
16229
|
-
import { cn as
|
|
16347
|
+
import { cn as cn26 } from "@reblu/site-ui/utils";
|
|
16230
16348
|
|
|
16231
16349
|
// src/components/order-invoice-link.tsx
|
|
16232
|
-
import { cn as
|
|
16233
|
-
import { jsx as
|
|
16350
|
+
import { cn as cn25 } from "@reblu/site-ui/utils";
|
|
16351
|
+
import { jsx as jsx31, jsxs as jsxs29 } from "react/jsx-runtime";
|
|
16234
16352
|
var DEFAULT_LABELS8 = {
|
|
16235
16353
|
linkLabel: "Descargar la factura {number}",
|
|
16236
16354
|
signInHint: "Te pediremos que inicies sesi\xF3n para abrirla."
|
|
@@ -16238,8 +16356,8 @@ var DEFAULT_LABELS8 = {
|
|
|
16238
16356
|
function OrderInvoiceLink({ invoice, labels, className }) {
|
|
16239
16357
|
if (!invoice) return null;
|
|
16240
16358
|
const t = { ...DEFAULT_LABELS8, ...labels };
|
|
16241
|
-
return /* @__PURE__ */
|
|
16242
|
-
/* @__PURE__ */
|
|
16359
|
+
return /* @__PURE__ */ jsxs29("div", { className: cn25("space-y-1 text-sm", className), "data-slot": "order-invoice-link", children: [
|
|
16360
|
+
/* @__PURE__ */ jsx31(
|
|
16243
16361
|
"a",
|
|
16244
16362
|
{
|
|
16245
16363
|
href: invoice.url,
|
|
@@ -16247,12 +16365,12 @@ function OrderInvoiceLink({ invoice, labels, className }) {
|
|
|
16247
16365
|
children: t.linkLabel.replace("{number}", invoice.number)
|
|
16248
16366
|
}
|
|
16249
16367
|
),
|
|
16250
|
-
/* @__PURE__ */
|
|
16368
|
+
/* @__PURE__ */ jsx31("p", { className: "text-muted-foreground", children: t.signInHint })
|
|
16251
16369
|
] });
|
|
16252
16370
|
}
|
|
16253
16371
|
|
|
16254
16372
|
// src/components/order-confirmation.tsx
|
|
16255
|
-
import { jsx as
|
|
16373
|
+
import { jsx as jsx32, jsxs as jsxs30 } from "react/jsx-runtime";
|
|
16256
16374
|
var DEFAULT_LABELS9 = {
|
|
16257
16375
|
pollingTitle: "Confirmando tu pedido\u2026",
|
|
16258
16376
|
pollingDescription: "Estamos procesando el pago, un momento\u2026",
|
|
@@ -16327,60 +16445,60 @@ function OrderConfirmation({
|
|
|
16327
16445
|
const showOrderReference = Boolean(order) && !showFullOrderSummary && (status === "refunded" || status === "partially_refunded" || status === "pending_timeout");
|
|
16328
16446
|
const showSessionReference = !order && sessionId && (status === "timeout" || status === "not_found" || status === "pending_timeout");
|
|
16329
16447
|
const showRecheck = (status === "pending_timeout" || status === "error") && onRecheck;
|
|
16330
|
-
return /* @__PURE__ */
|
|
16331
|
-
/* @__PURE__ */
|
|
16332
|
-
/* @__PURE__ */
|
|
16333
|
-
showFullOrderSummary && order && /* @__PURE__ */
|
|
16334
|
-
/* @__PURE__ */
|
|
16335
|
-
/* @__PURE__ */
|
|
16336
|
-
/* @__PURE__ */
|
|
16448
|
+
return /* @__PURE__ */ jsxs30("div", { className: cn26("space-y-6 text-center", className), "data-slot": "order-confirmation", children: [
|
|
16449
|
+
/* @__PURE__ */ jsx32("h1", { className: "text-3xl font-bold", children: title }),
|
|
16450
|
+
/* @__PURE__ */ jsx32("p", { className: "text-lg text-muted-foreground", children: description }),
|
|
16451
|
+
showFullOrderSummary && order && /* @__PURE__ */ jsxs30("div", { className: "space-y-6", children: [
|
|
16452
|
+
/* @__PURE__ */ jsxs30("div", { className: "inline-block rounded-xl bg-muted px-6 py-4", children: [
|
|
16453
|
+
/* @__PURE__ */ jsx32("p", { className: "mb-1 text-xs uppercase tracking-widest text-muted-foreground", children: t.orderNumberLabel }),
|
|
16454
|
+
/* @__PURE__ */ jsx32("p", { className: "font-mono text-lg font-semibold", children: order.orderNumber })
|
|
16337
16455
|
] }),
|
|
16338
|
-
/* @__PURE__ */
|
|
16339
|
-
order.items.map((item, idx) => /* @__PURE__ */
|
|
16456
|
+
/* @__PURE__ */ jsxs30("div", { className: "mx-auto max-w-sm space-y-3 rounded-xl border border-border bg-card p-5 text-left", children: [
|
|
16457
|
+
order.items.map((item, idx) => /* @__PURE__ */ jsxs30(
|
|
16340
16458
|
"div",
|
|
16341
16459
|
{
|
|
16342
16460
|
className: "flex justify-between gap-4 text-sm",
|
|
16343
16461
|
children: [
|
|
16344
|
-
/* @__PURE__ */
|
|
16462
|
+
/* @__PURE__ */ jsxs30("span", { className: "max-w-[60%] truncate text-muted-foreground", children: [
|
|
16345
16463
|
item.product.name,
|
|
16346
16464
|
item.variant ? ` (${item.variant.name})` : "",
|
|
16347
16465
|
" x",
|
|
16348
16466
|
item.quantity
|
|
16349
16467
|
] }),
|
|
16350
|
-
/* @__PURE__ */
|
|
16468
|
+
/* @__PURE__ */ jsx32("span", { children: formatPrice(item.total, currencyCode, locale) })
|
|
16351
16469
|
]
|
|
16352
16470
|
},
|
|
16353
16471
|
idx
|
|
16354
16472
|
)),
|
|
16355
|
-
/* @__PURE__ */
|
|
16356
|
-
/* @__PURE__ */
|
|
16357
|
-
/* @__PURE__ */
|
|
16473
|
+
/* @__PURE__ */ jsx32("div", { className: "space-y-1 border-t border-border pt-3 text-sm", children: /* @__PURE__ */ jsxs30("div", { className: "flex justify-between pt-1 text-base font-bold", children: [
|
|
16474
|
+
/* @__PURE__ */ jsx32("span", { children: t.totalLabel }),
|
|
16475
|
+
/* @__PURE__ */ jsx32("span", { children: formatPrice(order.total, currencyCode, locale) })
|
|
16358
16476
|
] }) })
|
|
16359
16477
|
] }),
|
|
16360
|
-
showPurchaseTexts && order.purchaseTexts?.length ? /* @__PURE__ */
|
|
16478
|
+
showPurchaseTexts && order.purchaseTexts?.length ? /* @__PURE__ */ jsx32("div", { className: "mx-auto max-w-sm space-y-3 text-left", "data-slot": "order-confirmation-purchase-texts", children: order.purchaseTexts.map((entry) => /* @__PURE__ */ jsxs30(
|
|
16361
16479
|
"div",
|
|
16362
16480
|
{
|
|
16363
16481
|
className: "rounded-xl border border-border bg-card p-4",
|
|
16364
16482
|
"data-slot": "order-confirmation-purchase-text",
|
|
16365
16483
|
"data-kind": entry.kind,
|
|
16366
16484
|
children: [
|
|
16367
|
-
/* @__PURE__ */
|
|
16368
|
-
entry.place ? /* @__PURE__ */
|
|
16369
|
-
entry.place.name ? /* @__PURE__ */
|
|
16370
|
-
entry.place.address.map((line) => /* @__PURE__ */
|
|
16485
|
+
/* @__PURE__ */ jsx32("p", { className: "mb-1 text-xs uppercase tracking-widest text-muted-foreground", children: entry.label }),
|
|
16486
|
+
entry.place ? /* @__PURE__ */ jsxs30("address", { className: "mb-2 text-sm not-italic", "data-slot": "order-confirmation-pickup-place", children: [
|
|
16487
|
+
entry.place.name ? /* @__PURE__ */ jsx32("span", { className: "block font-medium", children: entry.place.name }) : null,
|
|
16488
|
+
entry.place.address.map((line) => /* @__PURE__ */ jsx32("span", { className: "block", children: line }, line))
|
|
16371
16489
|
] }) : null,
|
|
16372
|
-
/* @__PURE__ */
|
|
16490
|
+
/* @__PURE__ */ jsx32("p", { className: "whitespace-pre-line text-sm", children: entry.text })
|
|
16373
16491
|
]
|
|
16374
16492
|
},
|
|
16375
16493
|
entry.kind
|
|
16376
16494
|
)) }) : null,
|
|
16377
|
-
t.foundDescription.includes("{email}") ? null : /* @__PURE__ */
|
|
16495
|
+
t.foundDescription.includes("{email}") ? null : /* @__PURE__ */ jsxs30("p", { className: "mx-auto max-w-sm text-sm text-muted-foreground", children: [
|
|
16378
16496
|
t.confirmationEmailPrefix,
|
|
16379
16497
|
" ",
|
|
16380
|
-
/* @__PURE__ */
|
|
16498
|
+
/* @__PURE__ */ jsx32("span", { className: "font-medium text-foreground", children: order.customerEmail }),
|
|
16381
16499
|
"."
|
|
16382
16500
|
] }),
|
|
16383
|
-
/* @__PURE__ */
|
|
16501
|
+
/* @__PURE__ */ jsx32(
|
|
16384
16502
|
OrderInvoiceLink,
|
|
16385
16503
|
{
|
|
16386
16504
|
invoice: order.invoice,
|
|
@@ -16388,11 +16506,11 @@ function OrderConfirmation({
|
|
|
16388
16506
|
}
|
|
16389
16507
|
)
|
|
16390
16508
|
] }),
|
|
16391
|
-
showOrderReference && order && /* @__PURE__ */
|
|
16392
|
-
/* @__PURE__ */
|
|
16393
|
-
/* @__PURE__ */
|
|
16509
|
+
showOrderReference && order && /* @__PURE__ */ jsxs30("div", { className: "inline-block rounded-xl bg-muted px-6 py-4", children: [
|
|
16510
|
+
/* @__PURE__ */ jsx32("p", { className: "mb-1 text-xs uppercase tracking-widest text-muted-foreground", children: t.orderReferenceLabel }),
|
|
16511
|
+
/* @__PURE__ */ jsx32("p", { className: "font-mono text-lg font-semibold", children: order.orderNumber })
|
|
16394
16512
|
] }),
|
|
16395
|
-
status === "failed" && cartHref && /* @__PURE__ */
|
|
16513
|
+
status === "failed" && cartHref && /* @__PURE__ */ jsx32(
|
|
16396
16514
|
"a",
|
|
16397
16515
|
{
|
|
16398
16516
|
href: cartHref,
|
|
@@ -16400,7 +16518,7 @@ function OrderConfirmation({
|
|
|
16400
16518
|
children: t.backToCartLabel
|
|
16401
16519
|
}
|
|
16402
16520
|
),
|
|
16403
|
-
showRecheck && /* @__PURE__ */
|
|
16521
|
+
showRecheck && /* @__PURE__ */ jsx32(
|
|
16404
16522
|
"button",
|
|
16405
16523
|
{
|
|
16406
16524
|
type: "button",
|
|
@@ -16409,16 +16527,16 @@ function OrderConfirmation({
|
|
|
16409
16527
|
children: t.recheckLabel
|
|
16410
16528
|
}
|
|
16411
16529
|
),
|
|
16412
|
-
showSessionReference && /* @__PURE__ */
|
|
16413
|
-
/* @__PURE__ */
|
|
16414
|
-
/* @__PURE__ */
|
|
16530
|
+
showSessionReference && /* @__PURE__ */ jsxs30("div", { className: "inline-block rounded-xl bg-muted px-6 py-4", children: [
|
|
16531
|
+
/* @__PURE__ */ jsx32("p", { className: "mb-1 text-xs uppercase tracking-widest text-muted-foreground", children: t.sessionReferenceLabel }),
|
|
16532
|
+
/* @__PURE__ */ jsx32("p", { className: "break-all font-mono text-sm font-semibold", children: sessionId })
|
|
16415
16533
|
] })
|
|
16416
16534
|
] });
|
|
16417
16535
|
}
|
|
16418
16536
|
|
|
16419
16537
|
// src/components/full-invoice-fields.tsx
|
|
16420
|
-
import { cn as
|
|
16421
|
-
import { jsx as
|
|
16538
|
+
import { cn as cn27 } from "@reblu/site-ui/utils";
|
|
16539
|
+
import { jsx as jsx33, jsxs as jsxs31 } from "react/jsx-runtime";
|
|
16422
16540
|
var EMPTY_FULL_INVOICE_VALUE = {
|
|
16423
16541
|
wantsFullInvoice: false,
|
|
16424
16542
|
billingIdType: "NIF",
|
|
@@ -16535,12 +16653,12 @@ function FullInvoiceFields({
|
|
|
16535
16653
|
const showFields = value.wantsFullInvoice || overCap;
|
|
16536
16654
|
const isSpanishNif = value.billingIdType === "NIF";
|
|
16537
16655
|
const set = (key2, next2) => onChange({ ...value, [key2]: next2 });
|
|
16538
|
-
const error = (key2) => errors[key2] ? /* @__PURE__ */
|
|
16656
|
+
const error = (key2) => errors[key2] ? /* @__PURE__ */ jsx33("p", { id: `full-invoice-${key2}-error`, className: "text-sm text-destructive", children: errors[key2] }) : null;
|
|
16539
16657
|
const invalid2 = (key2) => errors[key2] ? { "aria-invalid": true, "aria-describedby": `full-invoice-${key2}-error` } : {};
|
|
16540
|
-
return /* @__PURE__ */
|
|
16541
|
-
overCap ? /* @__PURE__ */
|
|
16542
|
-
/* @__PURE__ */
|
|
16543
|
-
/* @__PURE__ */
|
|
16658
|
+
return /* @__PURE__ */ jsxs31("section", { className: cn27("space-y-4", className), "data-slot": "full-invoice-fields", children: [
|
|
16659
|
+
overCap ? /* @__PURE__ */ jsx33("p", { role: "note", className: "rounded-lg border border-border p-4 text-sm", children: t.overCapNotice }) : /* @__PURE__ */ jsxs31("div", { className: "space-y-1", children: [
|
|
16660
|
+
/* @__PURE__ */ jsxs31("label", { className: "flex items-center gap-2 text-sm font-medium", children: [
|
|
16661
|
+
/* @__PURE__ */ jsx33(
|
|
16544
16662
|
"input",
|
|
16545
16663
|
{
|
|
16546
16664
|
type: "checkbox",
|
|
@@ -16550,12 +16668,12 @@ function FullInvoiceFields({
|
|
|
16550
16668
|
),
|
|
16551
16669
|
t.toggle
|
|
16552
16670
|
] }),
|
|
16553
|
-
/* @__PURE__ */
|
|
16671
|
+
/* @__PURE__ */ jsx33("p", { className: "text-sm text-muted-foreground", children: t.underCapNotice })
|
|
16554
16672
|
] }),
|
|
16555
|
-
showFields && /* @__PURE__ */
|
|
16556
|
-
/* @__PURE__ */
|
|
16557
|
-
/* @__PURE__ */
|
|
16558
|
-
/* @__PURE__ */
|
|
16673
|
+
showFields && /* @__PURE__ */ jsxs31("div", { className: "grid grid-cols-1 gap-4 sm:grid-cols-2", children: [
|
|
16674
|
+
/* @__PURE__ */ jsxs31("div", { className: "space-y-1", children: [
|
|
16675
|
+
/* @__PURE__ */ jsx33("label", { htmlFor: "full-invoice-id-type", className: "text-sm font-medium", children: t.idType }),
|
|
16676
|
+
/* @__PURE__ */ jsx33(
|
|
16559
16677
|
"select",
|
|
16560
16678
|
{
|
|
16561
16679
|
id: "full-invoice-id-type",
|
|
@@ -16564,14 +16682,14 @@ function FullInvoiceFields({
|
|
|
16564
16682
|
value: value.billingIdType,
|
|
16565
16683
|
onChange: (e) => set("billingIdType", e.target.value),
|
|
16566
16684
|
...invalid2("billingIdType"),
|
|
16567
|
-
children: ID_TYPES.map((type) => /* @__PURE__ */
|
|
16685
|
+
children: ID_TYPES.map((type) => /* @__PURE__ */ jsx33("option", { value: type, children: t.idTypeOptions[type] }, type))
|
|
16568
16686
|
}
|
|
16569
16687
|
),
|
|
16570
16688
|
error("billingIdType")
|
|
16571
16689
|
] }),
|
|
16572
|
-
!isSpanishNif && /* @__PURE__ */
|
|
16573
|
-
/* @__PURE__ */
|
|
16574
|
-
/* @__PURE__ */
|
|
16690
|
+
!isSpanishNif && /* @__PURE__ */ jsxs31("div", { className: "space-y-1", children: [
|
|
16691
|
+
/* @__PURE__ */ jsx33("label", { htmlFor: "full-invoice-id-country", className: "text-sm font-medium", children: t.idCountry }),
|
|
16692
|
+
/* @__PURE__ */ jsxs31(
|
|
16575
16693
|
"select",
|
|
16576
16694
|
{
|
|
16577
16695
|
id: "full-invoice-id-country",
|
|
@@ -16581,16 +16699,16 @@ function FullInvoiceFields({
|
|
|
16581
16699
|
onChange: (e) => set("billingIdCountry", e.target.value),
|
|
16582
16700
|
...invalid2("billingIdCountry"),
|
|
16583
16701
|
children: [
|
|
16584
|
-
/* @__PURE__ */
|
|
16585
|
-
countries.map((c) => /* @__PURE__ */
|
|
16702
|
+
/* @__PURE__ */ jsx33("option", { value: "", disabled: true, children: t.chooseCountry }),
|
|
16703
|
+
countries.map((c) => /* @__PURE__ */ jsx33("option", { value: c.code, children: c.name }, c.code))
|
|
16586
16704
|
]
|
|
16587
16705
|
}
|
|
16588
16706
|
),
|
|
16589
16707
|
error("billingIdCountry")
|
|
16590
16708
|
] }),
|
|
16591
|
-
/* @__PURE__ */
|
|
16592
|
-
/* @__PURE__ */
|
|
16593
|
-
/* @__PURE__ */
|
|
16709
|
+
/* @__PURE__ */ jsxs31("div", { className: "space-y-1", children: [
|
|
16710
|
+
/* @__PURE__ */ jsx33("label", { htmlFor: "full-invoice-nif", className: "text-sm font-medium", children: isSpanishNif ? t.spanishNif : t.documentNumber }),
|
|
16711
|
+
/* @__PURE__ */ jsx33(
|
|
16594
16712
|
"input",
|
|
16595
16713
|
{
|
|
16596
16714
|
id: "full-invoice-nif",
|
|
@@ -16603,9 +16721,9 @@ function FullInvoiceFields({
|
|
|
16603
16721
|
),
|
|
16604
16722
|
error("billingNif")
|
|
16605
16723
|
] }),
|
|
16606
|
-
/* @__PURE__ */
|
|
16607
|
-
/* @__PURE__ */
|
|
16608
|
-
/* @__PURE__ */
|
|
16724
|
+
/* @__PURE__ */ jsxs31("div", { className: "space-y-1", children: [
|
|
16725
|
+
/* @__PURE__ */ jsx33("label", { htmlFor: "full-invoice-name", className: "text-sm font-medium", children: t.name }),
|
|
16726
|
+
/* @__PURE__ */ jsx33(
|
|
16609
16727
|
"input",
|
|
16610
16728
|
{
|
|
16611
16729
|
id: "full-invoice-name",
|
|
@@ -16618,9 +16736,9 @@ function FullInvoiceFields({
|
|
|
16618
16736
|
),
|
|
16619
16737
|
error("billingName")
|
|
16620
16738
|
] }),
|
|
16621
|
-
/* @__PURE__ */
|
|
16622
|
-
/* @__PURE__ */
|
|
16623
|
-
/* @__PURE__ */
|
|
16739
|
+
/* @__PURE__ */ jsxs31("div", { className: "space-y-1 sm:col-span-2", children: [
|
|
16740
|
+
/* @__PURE__ */ jsx33("label", { htmlFor: "full-invoice-street", className: "text-sm font-medium", children: t.street }),
|
|
16741
|
+
/* @__PURE__ */ jsx33(
|
|
16624
16742
|
"input",
|
|
16625
16743
|
{
|
|
16626
16744
|
id: "full-invoice-street",
|
|
@@ -16632,9 +16750,9 @@ function FullInvoiceFields({
|
|
|
16632
16750
|
}
|
|
16633
16751
|
)
|
|
16634
16752
|
] }),
|
|
16635
|
-
/* @__PURE__ */
|
|
16636
|
-
/* @__PURE__ */
|
|
16637
|
-
/* @__PURE__ */
|
|
16753
|
+
/* @__PURE__ */ jsxs31("div", { className: "space-y-1", children: [
|
|
16754
|
+
/* @__PURE__ */ jsx33("label", { htmlFor: "full-invoice-postal-code", className: "text-sm font-medium", children: t.postalCode }),
|
|
16755
|
+
/* @__PURE__ */ jsx33(
|
|
16638
16756
|
"input",
|
|
16639
16757
|
{
|
|
16640
16758
|
id: "full-invoice-postal-code",
|
|
@@ -16645,9 +16763,9 @@ function FullInvoiceFields({
|
|
|
16645
16763
|
}
|
|
16646
16764
|
)
|
|
16647
16765
|
] }),
|
|
16648
|
-
/* @__PURE__ */
|
|
16649
|
-
/* @__PURE__ */
|
|
16650
|
-
/* @__PURE__ */
|
|
16766
|
+
/* @__PURE__ */ jsxs31("div", { className: "space-y-1", children: [
|
|
16767
|
+
/* @__PURE__ */ jsx33("label", { htmlFor: "full-invoice-city", className: "text-sm font-medium", children: t.city }),
|
|
16768
|
+
/* @__PURE__ */ jsx33(
|
|
16651
16769
|
"input",
|
|
16652
16770
|
{
|
|
16653
16771
|
id: "full-invoice-city",
|
|
@@ -16658,9 +16776,9 @@ function FullInvoiceFields({
|
|
|
16658
16776
|
}
|
|
16659
16777
|
)
|
|
16660
16778
|
] }),
|
|
16661
|
-
/* @__PURE__ */
|
|
16662
|
-
/* @__PURE__ */
|
|
16663
|
-
/* @__PURE__ */
|
|
16779
|
+
/* @__PURE__ */ jsxs31("div", { className: "space-y-1", children: [
|
|
16780
|
+
/* @__PURE__ */ jsx33("label", { htmlFor: "full-invoice-country", className: "text-sm font-medium", children: t.country }),
|
|
16781
|
+
/* @__PURE__ */ jsx33(
|
|
16664
16782
|
"select",
|
|
16665
16783
|
{
|
|
16666
16784
|
id: "full-invoice-country",
|
|
@@ -16668,18 +16786,18 @@ function FullInvoiceFields({
|
|
|
16668
16786
|
required: true,
|
|
16669
16787
|
value: value.country,
|
|
16670
16788
|
onChange: (e) => set("country", e.target.value),
|
|
16671
|
-
children: countries.map((c) => /* @__PURE__ */
|
|
16789
|
+
children: countries.map((c) => /* @__PURE__ */ jsx33("option", { value: c.code, children: c.name }, c.code))
|
|
16672
16790
|
}
|
|
16673
16791
|
)
|
|
16674
16792
|
] }),
|
|
16675
|
-
/* @__PURE__ */
|
|
16793
|
+
/* @__PURE__ */ jsx33("div", { className: "sm:col-span-2", children: error("address") })
|
|
16676
16794
|
] })
|
|
16677
16795
|
] });
|
|
16678
16796
|
}
|
|
16679
16797
|
|
|
16680
16798
|
// src/components/checkout-delivery-choice.tsx
|
|
16681
|
-
import { cn as
|
|
16682
|
-
import { jsx as
|
|
16799
|
+
import { cn as cn28 } from "@reblu/site-ui/utils";
|
|
16800
|
+
import { jsx as jsx34, jsxs as jsxs32 } from "react/jsx-runtime";
|
|
16683
16801
|
var EMPTY_CHECKOUT_ADDRESS = {
|
|
16684
16802
|
firstName: "",
|
|
16685
16803
|
lastName: "",
|
|
@@ -16742,17 +16860,17 @@ function CheckoutDeliveryChoice({
|
|
|
16742
16860
|
const isPickup = value?.type === "PICKUP";
|
|
16743
16861
|
const isShipping = value?.type === "SHIPPING";
|
|
16744
16862
|
const errorId = `${uid}-delivery-error`;
|
|
16745
|
-
return /* @__PURE__ */
|
|
16863
|
+
return /* @__PURE__ */ jsxs32(
|
|
16746
16864
|
"fieldset",
|
|
16747
16865
|
{
|
|
16748
16866
|
"data-slot": "checkout-delivery",
|
|
16749
16867
|
"aria-describedby": error ? errorId : void 0,
|
|
16750
|
-
className:
|
|
16868
|
+
className: cn28("space-y-4", className),
|
|
16751
16869
|
children: [
|
|
16752
|
-
/* @__PURE__ */
|
|
16753
|
-
/* @__PURE__ */
|
|
16754
|
-
homeDelivery ? /* @__PURE__ */
|
|
16755
|
-
/* @__PURE__ */
|
|
16870
|
+
/* @__PURE__ */ jsx34("legend", { className: "mb-2 text-lg font-semibold", children: t.legend }),
|
|
16871
|
+
/* @__PURE__ */ jsxs32("div", { className: "grid gap-3 sm:grid-cols-2", children: [
|
|
16872
|
+
homeDelivery ? /* @__PURE__ */ jsxs32("label", { className: "flex cursor-pointer items-start gap-3 rounded-xl border border-border p-4 has-[:checked]:border-primary", children: [
|
|
16873
|
+
/* @__PURE__ */ jsx34(
|
|
16756
16874
|
"input",
|
|
16757
16875
|
{
|
|
16758
16876
|
type: "radio",
|
|
@@ -16762,16 +16880,16 @@ function CheckoutDeliveryChoice({
|
|
|
16762
16880
|
className: "mt-0.5 size-4 accent-primary"
|
|
16763
16881
|
}
|
|
16764
16882
|
),
|
|
16765
|
-
/* @__PURE__ */
|
|
16766
|
-
/* @__PURE__ */
|
|
16767
|
-
/* @__PURE__ */
|
|
16768
|
-
/* @__PURE__ */
|
|
16883
|
+
/* @__PURE__ */ jsxs32("span", { className: "flex-1 space-y-1", children: [
|
|
16884
|
+
/* @__PURE__ */ jsxs32("span", { className: "flex justify-between gap-2 font-medium", children: [
|
|
16885
|
+
/* @__PURE__ */ jsx34("span", { children: copy.shippingOptionLabel }),
|
|
16886
|
+
/* @__PURE__ */ jsx34("span", { className: "tabular-nums", children: homeCost })
|
|
16769
16887
|
] }),
|
|
16770
|
-
delivery.estimatedDeliveryText ? /* @__PURE__ */
|
|
16888
|
+
delivery.estimatedDeliveryText ? /* @__PURE__ */ jsx34("span", { className: "block text-sm text-muted-foreground", children: delivery.estimatedDeliveryText }) : null
|
|
16771
16889
|
] })
|
|
16772
16890
|
] }) : null,
|
|
16773
|
-
pickup ? /* @__PURE__ */
|
|
16774
|
-
/* @__PURE__ */
|
|
16891
|
+
pickup ? /* @__PURE__ */ jsxs32("label", { className: "flex cursor-pointer items-start gap-3 rounded-xl border border-border p-4 has-[:checked]:border-primary", children: [
|
|
16892
|
+
/* @__PURE__ */ jsx34(
|
|
16775
16893
|
"input",
|
|
16776
16894
|
{
|
|
16777
16895
|
type: "radio",
|
|
@@ -16781,23 +16899,23 @@ function CheckoutDeliveryChoice({
|
|
|
16781
16899
|
className: "mt-0.5 size-4 accent-primary"
|
|
16782
16900
|
}
|
|
16783
16901
|
),
|
|
16784
|
-
/* @__PURE__ */
|
|
16785
|
-
/* @__PURE__ */
|
|
16786
|
-
/* @__PURE__ */
|
|
16902
|
+
/* @__PURE__ */ jsxs32("span", { className: "flex flex-1 justify-between gap-2 font-medium", children: [
|
|
16903
|
+
/* @__PURE__ */ jsx34("span", { children: copy.pickupOptionLabel }),
|
|
16904
|
+
/* @__PURE__ */ jsx34("span", { children: t.free })
|
|
16787
16905
|
] })
|
|
16788
16906
|
] }) : null
|
|
16789
16907
|
] }),
|
|
16790
|
-
error ? /* @__PURE__ */
|
|
16791
|
-
isPickup ? /* @__PURE__ */
|
|
16792
|
-
/* @__PURE__ */
|
|
16908
|
+
error ? /* @__PURE__ */ jsx34("p", { id: errorId, role: "alert", className: "text-sm text-destructive", children: error }) : null,
|
|
16909
|
+
isPickup ? /* @__PURE__ */ jsxs32("div", { role: "radiogroup", "aria-labelledby": `${uid}-points`, className: "space-y-2", children: [
|
|
16910
|
+
/* @__PURE__ */ jsx34("p", { id: `${uid}-points`, className: "text-sm font-medium", children: t.pickupPointsLegend }),
|
|
16793
16911
|
delivery.pickupLocations.map((location2) => {
|
|
16794
16912
|
const descId = `${uid}-point-${location2.id}`;
|
|
16795
|
-
return /* @__PURE__ */
|
|
16913
|
+
return /* @__PURE__ */ jsxs32(
|
|
16796
16914
|
"label",
|
|
16797
16915
|
{
|
|
16798
16916
|
className: "flex cursor-pointer items-start gap-3 rounded-lg border border-border p-3 has-[:checked]:border-primary",
|
|
16799
16917
|
children: [
|
|
16800
|
-
/* @__PURE__ */
|
|
16918
|
+
/* @__PURE__ */ jsx34(
|
|
16801
16919
|
"input",
|
|
16802
16920
|
{
|
|
16803
16921
|
type: "radio",
|
|
@@ -16808,9 +16926,9 @@ function CheckoutDeliveryChoice({
|
|
|
16808
16926
|
className: "mt-0.5 size-4 accent-primary"
|
|
16809
16927
|
}
|
|
16810
16928
|
),
|
|
16811
|
-
/* @__PURE__ */
|
|
16812
|
-
/* @__PURE__ */
|
|
16813
|
-
/* @__PURE__ */
|
|
16929
|
+
/* @__PURE__ */ jsxs32("span", { className: "space-y-0.5 text-sm", children: [
|
|
16930
|
+
/* @__PURE__ */ jsx34("span", { className: "block font-medium", children: location2.name }),
|
|
16931
|
+
/* @__PURE__ */ jsx34("span", { id: descId, className: "block text-muted-foreground", children: pickupDescription(location2) })
|
|
16814
16932
|
] })
|
|
16815
16933
|
]
|
|
16816
16934
|
},
|
|
@@ -16818,14 +16936,14 @@ function CheckoutDeliveryChoice({
|
|
|
16818
16936
|
);
|
|
16819
16937
|
})
|
|
16820
16938
|
] }) : null,
|
|
16821
|
-
isShipping ? /* @__PURE__ */
|
|
16822
|
-
/* @__PURE__ */
|
|
16823
|
-
/* @__PURE__ */
|
|
16939
|
+
isShipping ? /* @__PURE__ */ jsxs32("fieldset", { className: "space-y-3", children: [
|
|
16940
|
+
/* @__PURE__ */ jsx34("legend", { className: "mb-2 text-sm font-medium", children: t.addressLegend }),
|
|
16941
|
+
/* @__PURE__ */ jsx34("div", { className: "grid grid-cols-1 gap-4 sm:grid-cols-2", children: ADDRESS_FIELDS.map(({ key: key2, autoComplete, required, wide }) => {
|
|
16824
16942
|
const fieldId = `${uid}-${key2}`;
|
|
16825
16943
|
const fieldError = addressErrors?.[key2];
|
|
16826
|
-
return /* @__PURE__ */
|
|
16827
|
-
/* @__PURE__ */
|
|
16828
|
-
/* @__PURE__ */
|
|
16944
|
+
return /* @__PURE__ */ jsxs32("div", { className: cn28("space-y-1", wide && "sm:col-span-2"), children: [
|
|
16945
|
+
/* @__PURE__ */ jsx34("label", { htmlFor: fieldId, className: "text-sm font-medium", children: t[key2] }),
|
|
16946
|
+
/* @__PURE__ */ jsx34(
|
|
16829
16947
|
"input",
|
|
16830
16948
|
{
|
|
16831
16949
|
id: fieldId,
|
|
@@ -16836,13 +16954,13 @@ function CheckoutDeliveryChoice({
|
|
|
16836
16954
|
onChange: (e) => onAddressChange({ ...address, [key2]: e.target.value }),
|
|
16837
16955
|
"aria-invalid": fieldError ? true : void 0,
|
|
16838
16956
|
"aria-describedby": fieldError ? `${fieldId}-error` : void 0,
|
|
16839
|
-
className:
|
|
16957
|
+
className: cn28(
|
|
16840
16958
|
INPUT_CLASS,
|
|
16841
16959
|
fieldError ? "border-destructive" : "border-border focus:border-primary"
|
|
16842
16960
|
)
|
|
16843
16961
|
}
|
|
16844
16962
|
),
|
|
16845
|
-
fieldError ? /* @__PURE__ */
|
|
16963
|
+
fieldError ? /* @__PURE__ */ jsx34("p", { id: `${fieldId}-error`, className: "text-sm text-destructive", children: fieldError }) : null
|
|
16846
16964
|
] }, key2);
|
|
16847
16965
|
}) })
|
|
16848
16966
|
] }) : null
|
|
@@ -16884,8 +17002,8 @@ function toCheckoutFulfillmentFields(value, address, requiresDelivery = true) {
|
|
|
16884
17002
|
}
|
|
16885
17003
|
|
|
16886
17004
|
// src/components/checkout-quote-summary.tsx
|
|
16887
|
-
import { cn as
|
|
16888
|
-
import { Fragment as Fragment7, jsx as
|
|
17005
|
+
import { cn as cn29 } from "@reblu/site-ui/utils";
|
|
17006
|
+
import { Fragment as Fragment7, jsx as jsx35, jsxs as jsxs33 } from "react/jsx-runtime";
|
|
16889
17007
|
var DEFAULT_CHECKOUT_QUOTE_SUMMARY_LABELS = {
|
|
16890
17008
|
subtotal: "Subtotal",
|
|
16891
17009
|
discount: (codeOrLabel, isAutomatic) => isAutomatic ? codeOrLabel : `Descuento (${codeOrLabel})`,
|
|
@@ -16902,9 +17020,9 @@ function Row({
|
|
|
16902
17020
|
value,
|
|
16903
17021
|
className
|
|
16904
17022
|
}) {
|
|
16905
|
-
return /* @__PURE__ */
|
|
16906
|
-
/* @__PURE__ */
|
|
16907
|
-
/* @__PURE__ */
|
|
17023
|
+
return /* @__PURE__ */ jsxs33("div", { "data-slot": "checkout-quote-row", className: cn29("flex justify-between gap-4", className), children: [
|
|
17024
|
+
/* @__PURE__ */ jsx35("dt", { children: name }),
|
|
17025
|
+
/* @__PURE__ */ jsx35("dd", { className: "shrink-0 tabular-nums", children: value })
|
|
16908
17026
|
] });
|
|
16909
17027
|
}
|
|
16910
17028
|
function CheckoutQuoteSummary({
|
|
@@ -16920,22 +17038,22 @@ function CheckoutQuoteSummary({
|
|
|
16920
17038
|
const price = (cents) => formatPrice(cents, currencyCode, locale);
|
|
16921
17039
|
const { fulfillment, shipping, tax, discount } = quote;
|
|
16922
17040
|
const Tag = `h${headingLevel}`;
|
|
16923
|
-
return /* @__PURE__ */
|
|
16924
|
-
heading ? /* @__PURE__ */
|
|
16925
|
-
/* @__PURE__ */
|
|
16926
|
-
/* @__PURE__ */
|
|
16927
|
-
/* @__PURE__ */
|
|
16928
|
-
line.variantName ? /* @__PURE__ */
|
|
16929
|
-
/* @__PURE__ */
|
|
16930
|
-
line.kindLabel ? /* @__PURE__ */
|
|
16931
|
-
/* @__PURE__ */
|
|
17041
|
+
return /* @__PURE__ */ jsxs33("section", { "data-slot": "checkout-quote-summary", className: slotClassName("space-y-4", "", className), children: [
|
|
17042
|
+
heading ? /* @__PURE__ */ jsx35(Tag, { className: "text-lg font-semibold", children: heading }) : null,
|
|
17043
|
+
/* @__PURE__ */ jsx35("ul", { className: "space-y-3 text-sm", children: quote.lines.map((line) => /* @__PURE__ */ jsxs33("li", { className: "flex justify-between gap-4", children: [
|
|
17044
|
+
/* @__PURE__ */ jsxs33("div", { className: "min-w-0 space-y-0.5", children: [
|
|
17045
|
+
/* @__PURE__ */ jsx35("p", { className: "font-medium", children: line.name }),
|
|
17046
|
+
line.variantName ? /* @__PURE__ */ jsx35("p", { className: "text-muted-foreground", children: line.variantName }) : null,
|
|
17047
|
+
/* @__PURE__ */ jsxs33("p", { className: "flex flex-wrap items-center gap-2 text-muted-foreground", children: [
|
|
17048
|
+
line.kindLabel ? /* @__PURE__ */ jsx35("span", { "data-slot": "checkout-quote-kind", className: "rounded-full border border-border px-2 py-0.5 text-xs font-medium text-foreground", children: line.kindLabel }) : null,
|
|
17049
|
+
/* @__PURE__ */ jsx35("span", { children: t.quantityTimesUnit(line.quantity, price(line.unitPrice)) })
|
|
16932
17050
|
] })
|
|
16933
17051
|
] }),
|
|
16934
|
-
/* @__PURE__ */
|
|
17052
|
+
/* @__PURE__ */ jsx35("span", { className: "shrink-0 tabular-nums", children: price(line.total) })
|
|
16935
17053
|
] }, `${line.productId}-${line.variantId ?? ""}`)) }),
|
|
16936
|
-
/* @__PURE__ */
|
|
16937
|
-
/* @__PURE__ */
|
|
16938
|
-
discount && discount.amount > 0 ? /* @__PURE__ */
|
|
17054
|
+
/* @__PURE__ */ jsxs33("dl", { className: "space-y-2 border-t border-border pt-3 text-sm", children: [
|
|
17055
|
+
/* @__PURE__ */ jsx35(Row, { name: t.subtotal, value: price(quote.subtotal) }),
|
|
17056
|
+
discount && discount.amount > 0 ? /* @__PURE__ */ jsx35(
|
|
16939
17057
|
Row,
|
|
16940
17058
|
{
|
|
16941
17059
|
className: "text-green-700 dark:text-green-400",
|
|
@@ -16943,17 +17061,17 @@ function CheckoutQuoteSummary({
|
|
|
16943
17061
|
value: `\u2212${price(discount.amount)}`
|
|
16944
17062
|
}
|
|
16945
17063
|
) : null,
|
|
16946
|
-
fulfillment.type ? /* @__PURE__ */
|
|
17064
|
+
fulfillment.type ? /* @__PURE__ */ jsx35(
|
|
16947
17065
|
Row,
|
|
16948
17066
|
{
|
|
16949
|
-
name: /* @__PURE__ */
|
|
17067
|
+
name: /* @__PURE__ */ jsxs33(Fragment7, { children: [
|
|
16950
17068
|
fulfillment.label ?? t.delivery,
|
|
16951
|
-
fulfillment.type === "PICKUP" && fulfillment.pickupLocation ? /* @__PURE__ */
|
|
17069
|
+
fulfillment.type === "PICKUP" && fulfillment.pickupLocation ? /* @__PURE__ */ jsx35("span", { className: "block text-muted-foreground", children: fulfillment.pickupLocation.name }) : null
|
|
16952
17070
|
] }),
|
|
16953
17071
|
value: fulfillment.type === "PICKUP" || shipping.isFree ? t.free : price(shipping.cost)
|
|
16954
17072
|
}
|
|
16955
17073
|
) : null,
|
|
16956
|
-
tax.isLineVisible ? tax.breakdown.map((entry) => /* @__PURE__ */
|
|
17074
|
+
tax.isLineVisible ? tax.breakdown.map((entry) => /* @__PURE__ */ jsx35(
|
|
16957
17075
|
Row,
|
|
16958
17076
|
{
|
|
16959
17077
|
className: tax.isIncluded ? "text-muted-foreground" : void 0,
|
|
@@ -16962,13 +17080,13 @@ function CheckoutQuoteSummary({
|
|
|
16962
17080
|
},
|
|
16963
17081
|
entry.label
|
|
16964
17082
|
)) : null,
|
|
16965
|
-
/* @__PURE__ */
|
|
17083
|
+
/* @__PURE__ */ jsx35(Row, { className: "border-t border-border pt-2 text-base font-bold", name: t.total, value: price(quote.total) })
|
|
16966
17084
|
] }),
|
|
16967
|
-
tax.isIncluded ? /* @__PURE__ */
|
|
16968
|
-
fulfillment.type === "SHIPPING" && !shipping.isFree && shipping.remainingForFree ? /* @__PURE__ */
|
|
16969
|
-
fulfillment.type && quote.deliveryEstimateText ? /* @__PURE__ */
|
|
16970
|
-
quote.discountError ? /* @__PURE__ */
|
|
16971
|
-
quote.blockingReason ? /* @__PURE__ */
|
|
17085
|
+
tax.isIncluded ? /* @__PURE__ */ jsx35("p", { className: "text-sm text-muted-foreground", children: t.taxesIncludedNote }) : null,
|
|
17086
|
+
fulfillment.type === "SHIPPING" && !shipping.isFree && shipping.remainingForFree ? /* @__PURE__ */ jsx35("p", { className: "text-sm text-muted-foreground", children: t.remainingForFree(price(shipping.remainingForFree)) }) : null,
|
|
17087
|
+
fulfillment.type && quote.deliveryEstimateText ? /* @__PURE__ */ jsx35("p", { "data-slot": "checkout-quote-estimate", className: "text-sm text-muted-foreground", children: quote.deliveryEstimateText }) : null,
|
|
17088
|
+
quote.discountError ? /* @__PURE__ */ jsx35("p", { role: "status", className: "text-sm text-destructive", children: quote.discountError.message }) : null,
|
|
17089
|
+
quote.blockingReason ? /* @__PURE__ */ jsx35("p", { role: "alert", className: "rounded-lg border border-destructive/50 bg-destructive/10 p-3 text-sm text-destructive", children: quote.blockingReason.message }) : null
|
|
16972
17090
|
] });
|
|
16973
17091
|
}
|
|
16974
17092
|
var DEFAULT_CHECKOUT_QUOTE_NOTICE_LABELS = {
|
|
@@ -16986,7 +17104,7 @@ function checkoutQuoteNotice({
|
|
|
16986
17104
|
function CheckoutQuoteNotice({ reason, labels, className }) {
|
|
16987
17105
|
if (!reason) return null;
|
|
16988
17106
|
const t = { ...DEFAULT_CHECKOUT_QUOTE_NOTICE_LABELS, ...labels };
|
|
16989
|
-
return /* @__PURE__ */
|
|
17107
|
+
return /* @__PURE__ */ jsx35(
|
|
16990
17108
|
"p",
|
|
16991
17109
|
{
|
|
16992
17110
|
role: "status",
|
|
@@ -16998,8 +17116,8 @@ function CheckoutQuoteNotice({ reason, labels, className }) {
|
|
|
16998
17116
|
}
|
|
16999
17117
|
|
|
17000
17118
|
// src/components/checkout-terms-acceptance.tsx
|
|
17001
|
-
import { cn as
|
|
17002
|
-
import { Fragment as Fragment8, jsx as
|
|
17119
|
+
import { cn as cn30 } from "@reblu/site-ui/utils";
|
|
17120
|
+
import { Fragment as Fragment8, jsx as jsx36, jsxs as jsxs34 } from "react/jsx-runtime";
|
|
17003
17121
|
function splitTermsLabel(label) {
|
|
17004
17122
|
const at = label.indexOf("{terms}");
|
|
17005
17123
|
return at === -1 ? [`${label} `, ""] : [label.slice(0, at), label.slice(at + "{terms}".length)];
|
|
@@ -17021,9 +17139,9 @@ function CheckoutTermsAcceptance({
|
|
|
17021
17139
|
(part) => part.replaceAll("{tenant}", copy.tenantName)
|
|
17022
17140
|
);
|
|
17023
17141
|
const newTab = copy.isTermsLinkNewTab;
|
|
17024
|
-
return /* @__PURE__ */
|
|
17025
|
-
/* @__PURE__ */
|
|
17026
|
-
/* @__PURE__ */
|
|
17142
|
+
return /* @__PURE__ */ jsxs34("div", { "data-slot": "checkout-terms", className: cn30("space-y-1", className), children: [
|
|
17143
|
+
/* @__PURE__ */ jsxs34("div", { className: "flex items-start gap-3", children: [
|
|
17144
|
+
/* @__PURE__ */ jsx36(
|
|
17027
17145
|
"input",
|
|
17028
17146
|
{
|
|
17029
17147
|
id: boxId,
|
|
@@ -17036,9 +17154,9 @@ function CheckoutTermsAcceptance({
|
|
|
17036
17154
|
className: "mt-0.5 size-5 shrink-0 cursor-pointer accent-primary"
|
|
17037
17155
|
}
|
|
17038
17156
|
),
|
|
17039
|
-
/* @__PURE__ */
|
|
17157
|
+
/* @__PURE__ */ jsxs34("label", { htmlFor: boxId, className: "text-sm leading-relaxed", children: [
|
|
17040
17158
|
before,
|
|
17041
|
-
/* @__PURE__ */
|
|
17159
|
+
/* @__PURE__ */ jsxs34(
|
|
17042
17160
|
"a",
|
|
17043
17161
|
{
|
|
17044
17162
|
href: copy.termsLinkUrl ?? termsHref,
|
|
@@ -17046,9 +17164,9 @@ function CheckoutTermsAcceptance({
|
|
|
17046
17164
|
className: "font-medium underline underline-offset-2 hover:text-primary",
|
|
17047
17165
|
children: [
|
|
17048
17166
|
copy.termsLinkText,
|
|
17049
|
-
newTab ? /* @__PURE__ */
|
|
17167
|
+
newTab ? /* @__PURE__ */ jsxs34(Fragment8, { children: [
|
|
17050
17168
|
" ",
|
|
17051
|
-
/* @__PURE__ */
|
|
17169
|
+
/* @__PURE__ */ jsx36("span", { className: "sr-only", children: newTabHint })
|
|
17052
17170
|
] }) : null
|
|
17053
17171
|
]
|
|
17054
17172
|
}
|
|
@@ -17056,7 +17174,7 @@ function CheckoutTermsAcceptance({
|
|
|
17056
17174
|
after
|
|
17057
17175
|
] })
|
|
17058
17176
|
] }),
|
|
17059
|
-
error ? /* @__PURE__ */
|
|
17177
|
+
error ? /* @__PURE__ */ jsx36("p", { id: errorId, className: "pl-8 text-sm text-destructive", children: error }) : null
|
|
17060
17178
|
] });
|
|
17061
17179
|
}
|
|
17062
17180
|
function toCheckoutTermsFields(copy, accepted) {
|
|
@@ -17065,8 +17183,8 @@ function toCheckoutTermsFields(copy, accepted) {
|
|
|
17065
17183
|
}
|
|
17066
17184
|
|
|
17067
17185
|
// src/components/checkout-pay-action.tsx
|
|
17068
|
-
import { cn as
|
|
17069
|
-
import { jsx as
|
|
17186
|
+
import { cn as cn31 } from "@reblu/site-ui/utils";
|
|
17187
|
+
import { jsx as jsx37, jsxs as jsxs35 } from "react/jsx-runtime";
|
|
17070
17188
|
function CheckoutPayAction({
|
|
17071
17189
|
label,
|
|
17072
17190
|
notice,
|
|
@@ -17080,22 +17198,22 @@ function CheckoutPayAction({
|
|
|
17080
17198
|
}) {
|
|
17081
17199
|
const noticeId = `${id}-notice`;
|
|
17082
17200
|
const isDisabled = submitting || disabled;
|
|
17083
|
-
return /* @__PURE__ */
|
|
17084
|
-
/* @__PURE__ */
|
|
17201
|
+
return /* @__PURE__ */ jsxs35("div", { "data-slot": "checkout-pay-action", className: cn31("space-y-3", className), children: [
|
|
17202
|
+
/* @__PURE__ */ jsx37(
|
|
17085
17203
|
"button",
|
|
17086
17204
|
{
|
|
17087
17205
|
type: "submit",
|
|
17088
17206
|
disabled: isDisabled,
|
|
17089
17207
|
"aria-busy": submitting || void 0,
|
|
17090
17208
|
"aria-describedby": notice ? noticeId : void 0,
|
|
17091
|
-
className: buttonClassName ??
|
|
17209
|
+
className: buttonClassName ?? cn31(
|
|
17092
17210
|
"flex w-full items-center justify-center gap-2 rounded-xl px-4 py-3 text-base font-semibold transition-all",
|
|
17093
17211
|
isDisabled ? "cursor-not-allowed bg-muted text-muted-foreground" : "cursor-pointer bg-primary text-primary-foreground hover:bg-primary/90"
|
|
17094
17212
|
),
|
|
17095
17213
|
children: submitting ? submittingLabel : label
|
|
17096
17214
|
}
|
|
17097
17215
|
),
|
|
17098
|
-
notice ? /* @__PURE__ */
|
|
17216
|
+
notice ? /* @__PURE__ */ jsx37("p", { id: noticeId, "data-slot": "checkout-pay-notice", className: noticeClassName ?? "text-sm text-muted-foreground", children: notice }) : null
|
|
17099
17217
|
] });
|
|
17100
17218
|
}
|
|
17101
17219
|
|
|
@@ -17122,8 +17240,8 @@ function toAcademyCheckoutInvoiceFields(value, overCap, issuesInvoices = true) {
|
|
|
17122
17240
|
}
|
|
17123
17241
|
|
|
17124
17242
|
// src/components/contact-interest-field.tsx
|
|
17125
|
-
import { cn as
|
|
17126
|
-
import { jsx as
|
|
17243
|
+
import { cn as cn32 } from "@reblu/site-ui/utils";
|
|
17244
|
+
import { jsx as jsx38, jsxs as jsxs36 } from "react/jsx-runtime";
|
|
17127
17245
|
function ContactInterestField({
|
|
17128
17246
|
interest,
|
|
17129
17247
|
value,
|
|
@@ -17140,18 +17258,18 @@ function ContactInterestField({
|
|
|
17140
17258
|
else next2.delete(option2);
|
|
17141
17259
|
onChange(interest.options.filter((candidate) => next2.has(candidate)));
|
|
17142
17260
|
};
|
|
17143
|
-
return /* @__PURE__ */
|
|
17144
|
-
/* @__PURE__ */
|
|
17145
|
-
/* @__PURE__ */
|
|
17261
|
+
return /* @__PURE__ */ jsxs36("fieldset", { "data-slot": "contact-interest", className: cn32("space-y-2", className), children: [
|
|
17262
|
+
/* @__PURE__ */ jsx38("legend", { className: "text-sm font-medium", children: interest.label }),
|
|
17263
|
+
/* @__PURE__ */ jsx38("div", { className: "flex flex-col gap-2", children: interest.options.map((option2, index) => {
|
|
17146
17264
|
const id = `${idPrefix}-${index}`;
|
|
17147
|
-
return /* @__PURE__ */
|
|
17265
|
+
return /* @__PURE__ */ jsxs36(
|
|
17148
17266
|
"label",
|
|
17149
17267
|
{
|
|
17150
17268
|
htmlFor: id,
|
|
17151
17269
|
"data-slot": "contact-interest-option",
|
|
17152
17270
|
className: "flex items-center gap-2 text-sm",
|
|
17153
17271
|
children: [
|
|
17154
|
-
/* @__PURE__ */
|
|
17272
|
+
/* @__PURE__ */ jsx38(
|
|
17155
17273
|
"input",
|
|
17156
17274
|
{
|
|
17157
17275
|
id,
|
|
@@ -17219,6 +17337,7 @@ export {
|
|
|
17219
17337
|
ImageTextSplit,
|
|
17220
17338
|
LegalDocument,
|
|
17221
17339
|
LessonPreview,
|
|
17340
|
+
LinkedPagesGrid,
|
|
17222
17341
|
MarkdownRenderer,
|
|
17223
17342
|
OrderConfirmation,
|
|
17224
17343
|
OrderInvoiceLink,
|
|
@@ -17233,6 +17352,7 @@ export {
|
|
|
17233
17352
|
SafeHtml,
|
|
17234
17353
|
ShopFilters,
|
|
17235
17354
|
Specialty,
|
|
17355
|
+
TeamGrid,
|
|
17236
17356
|
Treatment,
|
|
17237
17357
|
TrustBadges,
|
|
17238
17358
|
buildFaqPageJsonLd,
|
|
@@ -17242,11 +17362,14 @@ export {
|
|
|
17242
17362
|
collectFaqItems,
|
|
17243
17363
|
courseSellsAsGuest,
|
|
17244
17364
|
defaultCheckoutFulfillment,
|
|
17365
|
+
filterByLink,
|
|
17245
17366
|
formatPrice,
|
|
17246
17367
|
getShopErrorMessage,
|
|
17247
17368
|
isAllowedYouTubeHost,
|
|
17248
17369
|
isCheckoutDeliveryComplete,
|
|
17249
17370
|
isOverSimplifiedInvoiceCap,
|
|
17371
|
+
linkFilterOptions,
|
|
17372
|
+
linkKey,
|
|
17250
17373
|
markdownToPlainText,
|
|
17251
17374
|
markdownToSafeHtml,
|
|
17252
17375
|
quoteRequiresDelivery,
|