@reblu/site-blocks 0.14.0 → 0.16.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 +29 -0
- package/README.md +169 -2
- package/dist/client.cjs +276 -0
- package/dist/client.cjs.map +1 -1
- package/dist/client.d.cts +83 -1
- package/dist/client.d.ts +83 -1
- package/dist/client.js +274 -0
- package/dist/client.js.map +1 -1
- package/dist/index.cjs +420 -256
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +92 -7
- package/dist/index.d.ts +92 -7
- package/dist/index.js +416 -256
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
package/dist/index.js
CHANGED
|
@@ -13107,12 +13107,28 @@ function markdownToPlainText(markdown, { maxLength } = {}) {
|
|
|
13107
13107
|
}
|
|
13108
13108
|
|
|
13109
13109
|
// src/components/markdown-renderer.tsx
|
|
13110
|
-
import { cn } from "@reblu/site-ui/utils";
|
|
13111
13110
|
import {
|
|
13112
13111
|
domToReact,
|
|
13113
13112
|
Element,
|
|
13114
13113
|
htmlToDOM
|
|
13115
13114
|
} from "html-react-parser";
|
|
13115
|
+
|
|
13116
|
+
// src/lib/slot-class-name.ts
|
|
13117
|
+
import { cn } from "@reblu/site-ui/utils";
|
|
13118
|
+
var MERGE_SAFE_TEXT = /(?:^|:)!?text-(?:left|center|right|justify|start|end|wrap|nowrap|balance|pretty|ellipsis|clip)$/;
|
|
13119
|
+
var TEXT_UTILITY = /(?:^|:)!?-?text-/;
|
|
13120
|
+
function bypassesMerge(token) {
|
|
13121
|
+
return TEXT_UTILITY.test(token) && !MERGE_SAFE_TEXT.test(token);
|
|
13122
|
+
}
|
|
13123
|
+
function slotClassName(structural, defaults, consumer) {
|
|
13124
|
+
if (consumer === void 0 || consumer.trim() === "") return cn(structural, defaults);
|
|
13125
|
+
const tokens = consumer.split(/\s+/).filter(Boolean);
|
|
13126
|
+
const verbatim = tokens.filter(bypassesMerge);
|
|
13127
|
+
const merged = cn(structural, tokens.filter((token) => !bypassesMerge(token)));
|
|
13128
|
+
return [merged, ...verbatim].filter(Boolean).join(" ");
|
|
13129
|
+
}
|
|
13130
|
+
|
|
13131
|
+
// src/components/markdown-renderer.tsx
|
|
13116
13132
|
import { Fragment, jsx } from "react/jsx-runtime";
|
|
13117
13133
|
var HTML_TO_DOM_OPTIONS = { lowerCaseAttributeNames: false };
|
|
13118
13134
|
function parse3(html5, options) {
|
|
@@ -13275,15 +13291,14 @@ function buildOptions(headingOffset) {
|
|
|
13275
13291
|
function MarkdownRenderer({ content, className, headingOffset = 0 }) {
|
|
13276
13292
|
const html5 = markdownToSafeHtml(content);
|
|
13277
13293
|
if (!html5) return null;
|
|
13278
|
-
return /* @__PURE__ */ jsx("div", { className:
|
|
13294
|
+
return /* @__PURE__ */ jsx("div", { className: slotClassName("max-w-none", "", className), "data-slot": "markdown", children: parse3(html5, buildOptions(headingOffset)) });
|
|
13279
13295
|
}
|
|
13280
13296
|
function SafeHtml({ html: html5, className, headingOffset = 0 }) {
|
|
13281
13297
|
if (!html5) return null;
|
|
13282
|
-
return /* @__PURE__ */ jsx("div", { className:
|
|
13298
|
+
return /* @__PURE__ */ jsx("div", { className: slotClassName("max-w-none", "", className), "data-slot": "safe-html", children: parse3(html5, buildOptions(headingOffset)) });
|
|
13283
13299
|
}
|
|
13284
13300
|
|
|
13285
13301
|
// src/components/course-description.tsx
|
|
13286
|
-
import { cn as cn2 } from "@reblu/site-ui/utils";
|
|
13287
13302
|
import { jsx as jsx2, jsxs } from "react/jsx-runtime";
|
|
13288
13303
|
function isVisiblyEmpty(html5) {
|
|
13289
13304
|
if (/<(img|iframe|hr)\b/i.test(html5)) return false;
|
|
@@ -13308,7 +13323,7 @@ function CourseDescription({
|
|
|
13308
13323
|
{
|
|
13309
13324
|
html: html5,
|
|
13310
13325
|
headingOffset: offset,
|
|
13311
|
-
className:
|
|
13326
|
+
className: slotClassName("", "text-muted-foreground", contentClassName)
|
|
13312
13327
|
}
|
|
13313
13328
|
);
|
|
13314
13329
|
if (!hasHeading) {
|
|
@@ -13320,9 +13335,9 @@ function CourseDescription({
|
|
|
13320
13335
|
{
|
|
13321
13336
|
"data-slot": "course-description",
|
|
13322
13337
|
"aria-labelledby": headingId,
|
|
13323
|
-
className:
|
|
13338
|
+
className: slotClassName("space-y-3", "", className),
|
|
13324
13339
|
children: [
|
|
13325
|
-
/* @__PURE__ */ jsx2(Tag, { id: headingId, className:
|
|
13340
|
+
/* @__PURE__ */ jsx2(Tag, { id: headingId, className: slotClassName("", "text-xl font-semibold", headingClassName), children: heading }),
|
|
13326
13341
|
body3
|
|
13327
13342
|
]
|
|
13328
13343
|
}
|
|
@@ -13330,10 +13345,10 @@ function CourseDescription({
|
|
|
13330
13345
|
}
|
|
13331
13346
|
|
|
13332
13347
|
// src/components/treatment.tsx
|
|
13333
|
-
import { cn as
|
|
13348
|
+
import { cn as cn3 } from "@reblu/site-ui/utils";
|
|
13334
13349
|
|
|
13335
13350
|
// src/components/_page-parts.tsx
|
|
13336
|
-
import { cn as
|
|
13351
|
+
import { cn as cn2 } from "@reblu/site-ui/utils";
|
|
13337
13352
|
import { buttonVariants } from "@reblu/site-ui/button-variants";
|
|
13338
13353
|
import { Fragment as Fragment2, jsx as jsx3, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
13339
13354
|
var KNOWN_BUTTON_VARIANTS = /* @__PURE__ */ new Set([
|
|
@@ -13373,7 +13388,7 @@ function SectionCta({ section }) {
|
|
|
13373
13388
|
"data-slot": "button",
|
|
13374
13389
|
"data-variant": variant,
|
|
13375
13390
|
"data-size": "default",
|
|
13376
|
-
className:
|
|
13391
|
+
className: cn2(buttonVariants({ variant, size: "default" })),
|
|
13377
13392
|
...section.ctaIsExternal ? { target: "_blank", rel: "noopener noreferrer" } : {},
|
|
13378
13393
|
children: section.ctaLabel
|
|
13379
13394
|
}
|
|
@@ -13381,7 +13396,7 @@ function SectionCta({ section }) {
|
|
|
13381
13396
|
}
|
|
13382
13397
|
function SectionImages({ section }) {
|
|
13383
13398
|
if (section.images.length === 0) return null;
|
|
13384
|
-
return /* @__PURE__ */ jsx3("div", { className:
|
|
13399
|
+
return /* @__PURE__ */ jsx3("div", { className: cn2("grid gap-4", section.images.length > 1 ? "sm:grid-cols-2" : "grid-cols-1"), children: section.images.map((img) => /* @__PURE__ */ jsxs2("figure", { className: "space-y-1", children: [
|
|
13385
13400
|
/* @__PURE__ */ jsx3("div", { className: "relative aspect-video w-full overflow-hidden rounded-lg bg-muted", children: /* @__PURE__ */ jsx3("img", { src: img.url, alt: img.alt, loading: "lazy", className: "h-full w-full object-cover" }) }),
|
|
13386
13401
|
img.caption && /* @__PURE__ */ jsx3("figcaption", { className: "text-sm text-muted-foreground", children: img.caption })
|
|
13387
13402
|
] }, `${img.url}-${img.order}`)) });
|
|
@@ -13418,17 +13433,17 @@ function PageSectionList({ sections }) {
|
|
|
13418
13433
|
// src/components/treatment.tsx
|
|
13419
13434
|
import { jsx as jsx4, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
13420
13435
|
function Treatment({ page, className }) {
|
|
13421
|
-
return /* @__PURE__ */ jsxs3("article", { className:
|
|
13436
|
+
return /* @__PURE__ */ jsxs3("article", { className: cn3("space-y-12", className), "data-slot": "treatment", children: [
|
|
13422
13437
|
/* @__PURE__ */ jsx4(PageHero, { page }),
|
|
13423
13438
|
/* @__PURE__ */ jsx4(PageSectionList, { sections: page.sections })
|
|
13424
13439
|
] });
|
|
13425
13440
|
}
|
|
13426
13441
|
|
|
13427
13442
|
// src/components/parent-page.tsx
|
|
13428
|
-
import { cn as
|
|
13443
|
+
import { cn as cn5 } from "@reblu/site-ui/utils";
|
|
13429
13444
|
|
|
13430
13445
|
// src/components/page-card-grid.tsx
|
|
13431
|
-
import { cn as
|
|
13446
|
+
import { cn as cn4 } from "@reblu/site-ui/utils";
|
|
13432
13447
|
import { jsx as jsx5, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
13433
13448
|
var defaultPageHref = (page) => `/${page.slug}`;
|
|
13434
13449
|
var pageKey = (page) => `${page.category?.slug ?? ""}/${page.slug}`;
|
|
@@ -13444,7 +13459,7 @@ function PageCardGridSection({
|
|
|
13444
13459
|
}) {
|
|
13445
13460
|
if (pages.length === 0) return null;
|
|
13446
13461
|
const showHeading = keepEmptyHeading ? heading !== void 0 : !!heading;
|
|
13447
|
-
return /* @__PURE__ */ jsxs4("section", { className:
|
|
13462
|
+
return /* @__PURE__ */ jsxs4("section", { className: cn4("space-y-6", className), children: [
|
|
13448
13463
|
showHeading && /* @__PURE__ */ jsx5("h2", { className: "text-2xl font-bold", children: heading }),
|
|
13449
13464
|
/* @__PURE__ */ jsx5("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__ */ jsx5("li", { children: /* @__PURE__ */ jsxs4(
|
|
13450
13465
|
"a",
|
|
@@ -13487,7 +13502,7 @@ function ParentPage({
|
|
|
13487
13502
|
const pages = childPages ?? treatments ?? [];
|
|
13488
13503
|
const hrefFor = childPageHref ?? treatmentHref ?? defaultChildPageHref;
|
|
13489
13504
|
const label = childPagesLabel ?? treatmentsLabel ?? "Treatments";
|
|
13490
|
-
return /* @__PURE__ */ jsxs5("article", { className:
|
|
13505
|
+
return /* @__PURE__ */ jsxs5("article", { className: cn5("space-y-12", className), "data-slot": "specialty", children: [
|
|
13491
13506
|
/* @__PURE__ */ jsx6(PageHero, { page }),
|
|
13492
13507
|
/* @__PURE__ */ jsx6(PageSectionList, { sections: page.sections }),
|
|
13493
13508
|
/* @__PURE__ */ jsx6(
|
|
@@ -13506,7 +13521,7 @@ function ParentPage({
|
|
|
13506
13521
|
var Specialty = ParentPage;
|
|
13507
13522
|
|
|
13508
13523
|
// src/components/profile-card.tsx
|
|
13509
|
-
import { cn as
|
|
13524
|
+
import { cn as cn6 } from "@reblu/site-ui/utils";
|
|
13510
13525
|
import { jsx as jsx7, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
13511
13526
|
function initials(name) {
|
|
13512
13527
|
return name.split(/\s+/).filter(Boolean).slice(0, 2).map((part) => part[0]?.toUpperCase() ?? "").join("");
|
|
@@ -13516,7 +13531,7 @@ function ProfileCard({ name, role, imageUrl, specialties = [], bio, href, classN
|
|
|
13516
13531
|
return /* @__PURE__ */ jsxs6(
|
|
13517
13532
|
"article",
|
|
13518
13533
|
{
|
|
13519
|
-
className:
|
|
13534
|
+
className: cn6(
|
|
13520
13535
|
"flex flex-col items-center gap-3 rounded-lg border bg-card p-6 text-center",
|
|
13521
13536
|
className
|
|
13522
13537
|
),
|
|
@@ -13548,7 +13563,7 @@ function ProfileCard({ name, role, imageUrl, specialties = [], bio, href, classN
|
|
|
13548
13563
|
}
|
|
13549
13564
|
|
|
13550
13565
|
// src/components/product-card.tsx
|
|
13551
|
-
import { cn as
|
|
13566
|
+
import { cn as cn7 } from "@reblu/site-ui/utils";
|
|
13552
13567
|
import { jsx as jsx8, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
13553
13568
|
function ProductCard({ product, href, currencyCode = "EUR", locale, className }) {
|
|
13554
13569
|
const image = product.images.find((i) => i.isPrimary) ?? product.images[0];
|
|
@@ -13556,7 +13571,7 @@ function ProductCard({ product, href, currencyCode = "EUR", locale, className })
|
|
|
13556
13571
|
return /* @__PURE__ */ jsxs7(
|
|
13557
13572
|
"article",
|
|
13558
13573
|
{
|
|
13559
|
-
className:
|
|
13574
|
+
className: cn7(
|
|
13560
13575
|
"group flex flex-col overflow-hidden rounded-lg border bg-card transition-shadow hover:shadow-lg",
|
|
13561
13576
|
className
|
|
13562
13577
|
),
|
|
@@ -13779,7 +13794,6 @@ var __iconNode8 = [
|
|
|
13779
13794
|
var Truck = createLucideIcon("truck", __iconNode8);
|
|
13780
13795
|
|
|
13781
13796
|
// src/components/product-trust-items.tsx
|
|
13782
|
-
import { cn as cn9 } from "@reblu/site-ui/utils";
|
|
13783
13797
|
import { jsx as jsx9, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
13784
13798
|
var DEFAULT_TRUST_ICONS = Object.freeze({
|
|
13785
13799
|
shipping: Truck,
|
|
@@ -13814,14 +13828,14 @@ function ProductTrustItems({
|
|
|
13814
13828
|
return [{ key: `${index}-${icon}`, Icon: Icon2, text: text3 }];
|
|
13815
13829
|
});
|
|
13816
13830
|
if (rows.length === 0) return null;
|
|
13817
|
-
return /* @__PURE__ */ jsx9(List, { "data-slot": "product-trust-items", className:
|
|
13831
|
+
return /* @__PURE__ */ jsx9(List, { "data-slot": "product-trust-items", className: slotClassName("space-y-2.5", "", className), children: rows.map(({ key: key2, Icon: Icon2, text: text3 }) => /* @__PURE__ */ jsxs8("li", { className: slotClassName("flex items-center gap-3", "text-sm text-muted-foreground", itemClassName), children: [
|
|
13818
13832
|
/* @__PURE__ */ jsx9(Icon2, { "aria-hidden": "true", className: "h-4 w-4 shrink-0 text-foreground/60" }),
|
|
13819
13833
|
/* @__PURE__ */ jsx9("span", { children: text3 })
|
|
13820
13834
|
] }, key2)) });
|
|
13821
13835
|
}
|
|
13822
13836
|
|
|
13823
13837
|
// src/components/faq-accordion.tsx
|
|
13824
|
-
import { cn as
|
|
13838
|
+
import { cn as cn8 } from "@reblu/site-ui/utils";
|
|
13825
13839
|
|
|
13826
13840
|
// src/components/_heading.tsx
|
|
13827
13841
|
import { jsx as jsx10 } from "react/jsx-runtime";
|
|
@@ -13849,7 +13863,7 @@ function FaqAccordion({
|
|
|
13849
13863
|
}) {
|
|
13850
13864
|
const visible = items.map((item, index) => ({ item, index })).filter(({ item }) => item.q.trim() !== "");
|
|
13851
13865
|
if (visible.length === 0) return null;
|
|
13852
|
-
return /* @__PURE__ */ jsxs9("div", { className:
|
|
13866
|
+
return /* @__PURE__ */ jsxs9("div", { className: cn8("space-y-4", className), "data-slot": "faq-accordion", children: [
|
|
13853
13867
|
heading && /* @__PURE__ */ jsx11(Heading, { level: headingLevel, className: "text-2xl font-semibold tracking-tight", children: heading }),
|
|
13854
13868
|
/* @__PURE__ */ jsx11("div", { className: "divide-y divide-border rounded-xl border border-border", children: visible.map(({ item, index }) => /* @__PURE__ */ jsxs9(
|
|
13855
13869
|
"details",
|
|
@@ -13877,41 +13891,180 @@ function FaqAccordion({
|
|
|
13877
13891
|
] });
|
|
13878
13892
|
}
|
|
13879
13893
|
|
|
13894
|
+
// src/components/trust-badges.tsx
|
|
13895
|
+
import { cn as cn9 } from "@reblu/site-ui/utils";
|
|
13896
|
+
import { jsx as jsx12, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
13897
|
+
var DEFAULT_TRUST_BADGE_HEADINGS = Object.freeze(
|
|
13898
|
+
{
|
|
13899
|
+
PARTNER: "Colaboradores",
|
|
13900
|
+
INSURANCE: "Aseguradoras",
|
|
13901
|
+
SUBVENTION: "Financiaci\xF3n",
|
|
13902
|
+
CERTIFICATION: "Certificaciones",
|
|
13903
|
+
AWARD: "Premios"
|
|
13904
|
+
}
|
|
13905
|
+
);
|
|
13906
|
+
var DEFAULT_TRUST_BADGE_TYPE_ORDER = Object.freeze([
|
|
13907
|
+
"SUBVENTION",
|
|
13908
|
+
"CERTIFICATION",
|
|
13909
|
+
"AWARD",
|
|
13910
|
+
"PARTNER",
|
|
13911
|
+
"INSURANCE"
|
|
13912
|
+
]);
|
|
13913
|
+
var KNOWN_TYPES = new Set(DEFAULT_TRUST_BADGE_TYPE_ORDER);
|
|
13914
|
+
function isUsable(value) {
|
|
13915
|
+
if (typeof value !== "object" || value === null) return false;
|
|
13916
|
+
const entry = value;
|
|
13917
|
+
return typeof entry.type === "string" && KNOWN_TYPES.has(entry.type) && typeof entry.name === "string" && entry.name.trim() !== "";
|
|
13918
|
+
}
|
|
13919
|
+
function safeHref(url) {
|
|
13920
|
+
if (typeof url !== "string") return null;
|
|
13921
|
+
try {
|
|
13922
|
+
const parsed = new URL(url);
|
|
13923
|
+
return parsed.protocol === "https:" || parsed.protocol === "http:" ? url : null;
|
|
13924
|
+
} catch {
|
|
13925
|
+
return null;
|
|
13926
|
+
}
|
|
13927
|
+
}
|
|
13928
|
+
function safeLogoSrc(url) {
|
|
13929
|
+
if (typeof url !== "string" || url === "") return null;
|
|
13930
|
+
if (url.startsWith("/")) return url.startsWith("//") || url.startsWith("/\\") ? null : url;
|
|
13931
|
+
return safeHref(url);
|
|
13932
|
+
}
|
|
13933
|
+
function BadgeContent({ badge, logoClassName }) {
|
|
13934
|
+
const src = safeLogoSrc(badge.logoUrl);
|
|
13935
|
+
if (src) {
|
|
13936
|
+
return (
|
|
13937
|
+
// eslint-disable-next-line @next/next/no-img-element -- framework-agnostic SDK; the SITE owns image optimisation
|
|
13938
|
+
/* @__PURE__ */ jsx12(
|
|
13939
|
+
"img",
|
|
13940
|
+
{
|
|
13941
|
+
src,
|
|
13942
|
+
alt: badge.name,
|
|
13943
|
+
loading: "lazy",
|
|
13944
|
+
className: cn9("h-12 w-auto object-contain", logoClassName)
|
|
13945
|
+
}
|
|
13946
|
+
)
|
|
13947
|
+
);
|
|
13948
|
+
}
|
|
13949
|
+
return /* @__PURE__ */ jsx12("span", { className: "text-sm font-medium", children: badge.name });
|
|
13950
|
+
}
|
|
13951
|
+
function TrustBadges({
|
|
13952
|
+
badges,
|
|
13953
|
+
headings,
|
|
13954
|
+
types = DEFAULT_TRUST_BADGE_TYPE_ORDER,
|
|
13955
|
+
heading,
|
|
13956
|
+
headingId = "trust-badges-heading",
|
|
13957
|
+
headingLevel = 2,
|
|
13958
|
+
newWindowLabel = "(se abre en una ventana nueva)",
|
|
13959
|
+
className,
|
|
13960
|
+
groupClassName,
|
|
13961
|
+
headingClassName,
|
|
13962
|
+
sectionHeadingClassName,
|
|
13963
|
+
listClassName,
|
|
13964
|
+
logoClassName
|
|
13965
|
+
}) {
|
|
13966
|
+
if (!Array.isArray(badges) || badges.length === 0) return null;
|
|
13967
|
+
const usable = badges.filter(isUsable);
|
|
13968
|
+
const groups = types.flatMap((type) => {
|
|
13969
|
+
const items = usable.filter((b2) => b2.type === type).map((b2, index) => ({ b: b2, index })).sort((x2, y2) => (x2.b.sortOrder ?? 0) - (y2.b.sortOrder ?? 0) || x2.index - y2.index).map(({ b: b2 }) => b2);
|
|
13970
|
+
if (items.length === 0) return [];
|
|
13971
|
+
const groupHeading = headings && Object.prototype.hasOwnProperty.call(headings, type) ? headings[type] : DEFAULT_TRUST_BADGE_HEADINGS[type];
|
|
13972
|
+
return [{ type, groupHeading, items }];
|
|
13973
|
+
});
|
|
13974
|
+
if (groups.length === 0) return null;
|
|
13975
|
+
const hasHeading = heading !== void 0 && heading !== null && heading !== "";
|
|
13976
|
+
const groupHeadingLevel = hasHeading ? nextHeadingLevel(headingLevel) : headingLevel;
|
|
13977
|
+
const content = groups.map(({ type, groupHeading, items }) => /* @__PURE__ */ jsxs10(
|
|
13978
|
+
"div",
|
|
13979
|
+
{
|
|
13980
|
+
"data-slot": "trust-badge-group",
|
|
13981
|
+
"data-type": type,
|
|
13982
|
+
className: cn9("space-y-3", groupClassName),
|
|
13983
|
+
children: [
|
|
13984
|
+
groupHeading ? /* @__PURE__ */ jsx12(
|
|
13985
|
+
Heading,
|
|
13986
|
+
{
|
|
13987
|
+
level: groupHeadingLevel,
|
|
13988
|
+
className: slotClassName(
|
|
13989
|
+
"",
|
|
13990
|
+
"text-sm font-semibold uppercase tracking-widest",
|
|
13991
|
+
headingClassName
|
|
13992
|
+
),
|
|
13993
|
+
children: groupHeading
|
|
13994
|
+
}
|
|
13995
|
+
) : null,
|
|
13996
|
+
/* @__PURE__ */ jsx12("ul", { className: cn9("flex flex-wrap items-center gap-6", listClassName), children: items.map((badge) => {
|
|
13997
|
+
const href = safeHref(badge.url);
|
|
13998
|
+
return /* @__PURE__ */ jsx12("li", { children: href ? /* @__PURE__ */ jsxs10("a", { href, target: "_blank", rel: "noopener noreferrer", className: "inline-flex", children: [
|
|
13999
|
+
/* @__PURE__ */ jsx12(BadgeContent, { badge, logoClassName }),
|
|
14000
|
+
" ",
|
|
14001
|
+
/* @__PURE__ */ jsx12("span", { className: "sr-only", children: newWindowLabel })
|
|
14002
|
+
] }) : /* @__PURE__ */ jsx12(BadgeContent, { badge, logoClassName }) }, badge.id);
|
|
14003
|
+
}) })
|
|
14004
|
+
]
|
|
14005
|
+
},
|
|
14006
|
+
type
|
|
14007
|
+
));
|
|
14008
|
+
if (!hasHeading) {
|
|
14009
|
+
return /* @__PURE__ */ jsx12("div", { "data-slot": "trust-badges", className: cn9("space-y-6", className), children: content });
|
|
14010
|
+
}
|
|
14011
|
+
const Tag = `h${headingLevel}`;
|
|
14012
|
+
return /* @__PURE__ */ jsxs10(
|
|
14013
|
+
"section",
|
|
14014
|
+
{
|
|
14015
|
+
"data-slot": "trust-badges",
|
|
14016
|
+
"aria-labelledby": headingId,
|
|
14017
|
+
className: cn9("space-y-6", className),
|
|
14018
|
+
children: [
|
|
14019
|
+
/* @__PURE__ */ jsx12(
|
|
14020
|
+
Tag,
|
|
14021
|
+
{
|
|
14022
|
+
id: headingId,
|
|
14023
|
+
className: slotClassName("", "text-xl font-semibold", sectionHeadingClassName),
|
|
14024
|
+
children: heading
|
|
14025
|
+
}
|
|
14026
|
+
),
|
|
14027
|
+
content
|
|
14028
|
+
]
|
|
14029
|
+
}
|
|
14030
|
+
);
|
|
14031
|
+
}
|
|
14032
|
+
|
|
13880
14033
|
// src/components/page-blocks.tsx
|
|
13881
|
-
import { cn as
|
|
14034
|
+
import { cn as cn10 } from "@reblu/site-ui/utils";
|
|
13882
14035
|
import { buttonVariants as buttonVariants2 } from "@reblu/site-ui/button-variants";
|
|
13883
|
-
import { jsx as
|
|
14036
|
+
import { jsx as jsx13, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
13884
14037
|
var ALIASES = {
|
|
13885
14038
|
doctor_embed: "profile_embed",
|
|
13886
14039
|
specialty_embed: "page_embed"
|
|
13887
14040
|
};
|
|
13888
14041
|
function HeroBlock({ block, headingLevel }) {
|
|
13889
14042
|
const { title, subtitle, imageUrl } = block.data;
|
|
13890
|
-
return /* @__PURE__ */
|
|
13891
|
-
/* @__PURE__ */
|
|
13892
|
-
subtitle && /* @__PURE__ */
|
|
13893
|
-
imageUrl && /* @__PURE__ */
|
|
14043
|
+
return /* @__PURE__ */ jsxs11("div", { className: "space-y-4", children: [
|
|
14044
|
+
/* @__PURE__ */ jsx13(Heading, { level: headingLevel, className: "text-3xl font-bold tracking-tight md:text-4xl", children: title }),
|
|
14045
|
+
subtitle && /* @__PURE__ */ jsx13("p", { className: "text-lg opacity-80", children: subtitle }),
|
|
14046
|
+
imageUrl && /* @__PURE__ */ jsx13("div", { className: "relative aspect-[21/9] w-full overflow-hidden rounded-xl bg-muted", children: /* @__PURE__ */ jsx13("img", { src: imageUrl, alt: "", loading: "lazy", className: "h-full w-full object-cover" }) })
|
|
13894
14047
|
] });
|
|
13895
14048
|
}
|
|
13896
14049
|
function RichtextBlock({ block, headingLevel }) {
|
|
13897
|
-
return /* @__PURE__ */
|
|
14050
|
+
return /* @__PURE__ */ jsx13(SafeHtml, { html: sanitizeHtml(block.data.html), headingOffset: headingLevel - 1 });
|
|
13898
14051
|
}
|
|
13899
14052
|
function FaqBlock({ block }) {
|
|
13900
|
-
return /* @__PURE__ */
|
|
14053
|
+
return /* @__PURE__ */ jsx13(FaqAccordion, { items: block.data.items });
|
|
13901
14054
|
}
|
|
13902
14055
|
function StatsBlock({ block }) {
|
|
13903
|
-
return /* @__PURE__ */
|
|
13904
|
-
/* @__PURE__ */
|
|
13905
|
-
/* @__PURE__ */
|
|
14056
|
+
return /* @__PURE__ */ jsx13("dl", { className: "grid gap-6 sm:grid-cols-2 lg:grid-cols-4", children: block.data.items.map((item, i) => /* @__PURE__ */ jsxs11("div", { className: "flex flex-col-reverse gap-1", children: [
|
|
14057
|
+
/* @__PURE__ */ jsx13("dt", { className: "text-sm opacity-80", children: item.label }),
|
|
14058
|
+
/* @__PURE__ */ jsx13("dd", { className: "text-3xl font-bold", children: item.value })
|
|
13906
14059
|
] }, i)) });
|
|
13907
14060
|
}
|
|
13908
14061
|
function TestimonialBlock({ block }) {
|
|
13909
14062
|
const { quote, author, role, avatarUrl } = block.data;
|
|
13910
|
-
return /* @__PURE__ */
|
|
13911
|
-
/* @__PURE__ */
|
|
13912
|
-
/* @__PURE__ */
|
|
14063
|
+
return /* @__PURE__ */ jsxs11("figure", { className: "space-y-4", children: [
|
|
14064
|
+
/* @__PURE__ */ jsx13("blockquote", { className: "text-xl italic", children: /* @__PURE__ */ jsx13("p", { children: quote }) }),
|
|
14065
|
+
/* @__PURE__ */ jsxs11("figcaption", { className: "flex items-center gap-3", children: [
|
|
13913
14066
|
avatarUrl && // eslint-disable-next-line @next/next/no-img-element
|
|
13914
|
-
/* @__PURE__ */
|
|
14067
|
+
/* @__PURE__ */ jsx13(
|
|
13915
14068
|
"img",
|
|
13916
14069
|
{
|
|
13917
14070
|
src: avatarUrl,
|
|
@@ -13920,9 +14073,9 @@ function TestimonialBlock({ block }) {
|
|
|
13920
14073
|
className: "h-10 w-10 rounded-full object-cover"
|
|
13921
14074
|
}
|
|
13922
14075
|
),
|
|
13923
|
-
/* @__PURE__ */
|
|
13924
|
-
/* @__PURE__ */
|
|
13925
|
-
role && /* @__PURE__ */
|
|
14076
|
+
/* @__PURE__ */ jsxs11("span", { children: [
|
|
14077
|
+
/* @__PURE__ */ jsx13("span", { className: "font-semibold", children: author }),
|
|
14078
|
+
role && /* @__PURE__ */ jsx13("span", { className: "block text-sm opacity-80", children: role })
|
|
13926
14079
|
] })
|
|
13927
14080
|
] })
|
|
13928
14081
|
] });
|
|
@@ -13931,19 +14084,19 @@ function CtaSlotBlock(_props) {
|
|
|
13931
14084
|
return null;
|
|
13932
14085
|
}
|
|
13933
14086
|
function FeatureListBlock({ block }) {
|
|
13934
|
-
return /* @__PURE__ */
|
|
14087
|
+
return /* @__PURE__ */ jsx13("ul", { className: "grid list-disc gap-2 pl-5 sm:grid-cols-2", children: block.data.items.map((item, i) => /* @__PURE__ */ jsx13("li", { children: item.text }, i)) });
|
|
13935
14088
|
}
|
|
13936
14089
|
function GalleryBlock({ block }) {
|
|
13937
14090
|
const { images } = block.data;
|
|
13938
|
-
return /* @__PURE__ */
|
|
14091
|
+
return /* @__PURE__ */ jsx13(
|
|
13939
14092
|
"div",
|
|
13940
14093
|
{
|
|
13941
|
-
className:
|
|
14094
|
+
className: cn10(
|
|
13942
14095
|
"grid gap-4",
|
|
13943
14096
|
images.length > 1 ? "sm:grid-cols-2 lg:grid-cols-3" : "grid-cols-1"
|
|
13944
14097
|
),
|
|
13945
|
-
children: images.map((img, i) => /* @__PURE__ */
|
|
13946
|
-
/* @__PURE__ */
|
|
14098
|
+
children: images.map((img, i) => /* @__PURE__ */ jsxs11("figure", { className: "space-y-1", children: [
|
|
14099
|
+
/* @__PURE__ */ jsx13("div", { className: "relative aspect-video w-full overflow-hidden rounded-lg bg-muted", children: /* @__PURE__ */ jsx13(
|
|
13947
14100
|
"img",
|
|
13948
14101
|
{
|
|
13949
14102
|
src: img.url,
|
|
@@ -13952,7 +14105,7 @@ function GalleryBlock({ block }) {
|
|
|
13952
14105
|
className: "h-full w-full object-cover"
|
|
13953
14106
|
}
|
|
13954
14107
|
) }),
|
|
13955
|
-
img.caption && /* @__PURE__ */
|
|
14108
|
+
img.caption && /* @__PURE__ */ jsx13("figcaption", { className: "text-sm opacity-80", children: img.caption })
|
|
13956
14109
|
] }, `${img.url}-${i}`))
|
|
13957
14110
|
}
|
|
13958
14111
|
);
|
|
@@ -13962,13 +14115,13 @@ function EmbedCard({
|
|
|
13962
14115
|
headingLevel,
|
|
13963
14116
|
embedHref
|
|
13964
14117
|
}) {
|
|
13965
|
-
return /* @__PURE__ */
|
|
14118
|
+
return /* @__PURE__ */ jsxs11(
|
|
13966
14119
|
"a",
|
|
13967
14120
|
{
|
|
13968
14121
|
href: embedHref(resolved),
|
|
13969
14122
|
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",
|
|
13970
14123
|
children: [
|
|
13971
|
-
resolved.coverImageUrl && /* @__PURE__ */
|
|
14124
|
+
resolved.coverImageUrl && /* @__PURE__ */ jsx13("div", { className: "aspect-video w-full overflow-hidden bg-muted", children: /* @__PURE__ */ jsx13(
|
|
13972
14125
|
"img",
|
|
13973
14126
|
{
|
|
13974
14127
|
src: resolved.coverImageUrl,
|
|
@@ -13977,24 +14130,24 @@ function EmbedCard({
|
|
|
13977
14130
|
className: "h-full w-full object-cover"
|
|
13978
14131
|
}
|
|
13979
14132
|
) }),
|
|
13980
|
-
/* @__PURE__ */
|
|
13981
|
-
/* @__PURE__ */
|
|
13982
|
-
resolved.role && /* @__PURE__ */
|
|
13983
|
-
resolved.excerpt && /* @__PURE__ */
|
|
14133
|
+
/* @__PURE__ */ jsxs11("div", { className: "space-y-1 p-4", children: [
|
|
14134
|
+
/* @__PURE__ */ jsx13(Heading, { level: headingLevel, className: "text-lg font-semibold", children: resolved.title }),
|
|
14135
|
+
resolved.role && /* @__PURE__ */ jsx13("p", { className: "text-sm text-muted-foreground", children: resolved.role }),
|
|
14136
|
+
resolved.excerpt && /* @__PURE__ */ jsx13("p", { className: "text-muted-foreground", children: resolved.excerpt })
|
|
13984
14137
|
] })
|
|
13985
14138
|
]
|
|
13986
14139
|
}
|
|
13987
14140
|
);
|
|
13988
14141
|
}
|
|
13989
14142
|
function PageEmbedBlock({ block, headingLevel, embedHref }) {
|
|
13990
|
-
return /* @__PURE__ */
|
|
14143
|
+
return /* @__PURE__ */ jsx13(EmbedCard, { resolved: block.resolved, headingLevel, embedHref });
|
|
13991
14144
|
}
|
|
13992
14145
|
function ProfileEmbedBlock({
|
|
13993
14146
|
block,
|
|
13994
14147
|
headingLevel,
|
|
13995
14148
|
embedHref
|
|
13996
14149
|
}) {
|
|
13997
|
-
return /* @__PURE__ */
|
|
14150
|
+
return /* @__PURE__ */ jsx13(EmbedCard, { resolved: block.resolved, headingLevel, embedHref });
|
|
13998
14151
|
}
|
|
13999
14152
|
var DEFAULT_RENDERERS = {
|
|
14000
14153
|
hero: HeroBlock,
|
|
@@ -14051,14 +14204,14 @@ function toIdFragment(value) {
|
|
|
14051
14204
|
function SectionCta2({ cta }) {
|
|
14052
14205
|
if (!hasUsableCta(cta)) return null;
|
|
14053
14206
|
const variant = toButtonVariant(cta.variant);
|
|
14054
|
-
return /* @__PURE__ */
|
|
14207
|
+
return /* @__PURE__ */ jsx13("div", { className: "pt-2", children: /* @__PURE__ */ jsx13(
|
|
14055
14208
|
"a",
|
|
14056
14209
|
{
|
|
14057
14210
|
href: cta.url,
|
|
14058
14211
|
"data-slot": "button",
|
|
14059
14212
|
"data-variant": variant,
|
|
14060
14213
|
"data-size": "default",
|
|
14061
|
-
className:
|
|
14214
|
+
className: cn10(buttonVariants2({ variant, size: "default" })),
|
|
14062
14215
|
...cta.isExternal ? { target: "_blank", rel: "noopener noreferrer" } : {},
|
|
14063
14216
|
children: cta.label
|
|
14064
14217
|
}
|
|
@@ -14084,17 +14237,17 @@ function PageBlocks({
|
|
|
14084
14237
|
const headingId = block.heading ? `${safePrefix}-${toIdFragment(block.id)}-heading` : void 0;
|
|
14085
14238
|
const background = block.backgroundColor;
|
|
14086
14239
|
return [
|
|
14087
|
-
/* @__PURE__ */
|
|
14240
|
+
/* @__PURE__ */ jsxs11(
|
|
14088
14241
|
"section",
|
|
14089
14242
|
{
|
|
14090
14243
|
"data-slot": "page-block",
|
|
14091
14244
|
"data-block-type": type,
|
|
14092
14245
|
"aria-labelledby": headingId,
|
|
14093
14246
|
style: surfaceStyle(background),
|
|
14094
|
-
className:
|
|
14247
|
+
className: cn10("space-y-6", background && "rounded-xl px-6 py-10", sectionClassName),
|
|
14095
14248
|
children: [
|
|
14096
|
-
block.heading && /* @__PURE__ */
|
|
14097
|
-
/* @__PURE__ */
|
|
14249
|
+
block.heading && /* @__PURE__ */ jsx13(Heading, { level: headingLevel, className: "text-2xl font-bold tracking-tight", children: /* @__PURE__ */ jsx13("span", { id: headingId, children: block.heading }) }),
|
|
14250
|
+
/* @__PURE__ */ jsx13(
|
|
14098
14251
|
Renderer,
|
|
14099
14252
|
{
|
|
14100
14253
|
block,
|
|
@@ -14102,7 +14255,7 @@ function PageBlocks({
|
|
|
14102
14255
|
embedHref
|
|
14103
14256
|
}
|
|
14104
14257
|
),
|
|
14105
|
-
/* @__PURE__ */
|
|
14258
|
+
/* @__PURE__ */ jsx13(SectionCta2, { cta: block.cta })
|
|
14106
14259
|
]
|
|
14107
14260
|
},
|
|
14108
14261
|
block.id
|
|
@@ -14110,12 +14263,12 @@ function PageBlocks({
|
|
|
14110
14263
|
];
|
|
14111
14264
|
});
|
|
14112
14265
|
if (sections.length === 0) return null;
|
|
14113
|
-
return /* @__PURE__ */
|
|
14266
|
+
return /* @__PURE__ */ jsx13("div", { className: cn10("space-y-12", className), "data-slot": "page-blocks", children: sections });
|
|
14114
14267
|
}
|
|
14115
14268
|
|
|
14116
14269
|
// src/components/shop-filters.tsx
|
|
14117
|
-
import { cn as
|
|
14118
|
-
import { jsx as
|
|
14270
|
+
import { cn as cn11 } from "@reblu/site-ui/utils";
|
|
14271
|
+
import { jsx as jsx14, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
14119
14272
|
var DEFAULT_SHOP_PRICE_BANDS = [
|
|
14120
14273
|
{ max: 2500 },
|
|
14121
14274
|
{ min: 2500, max: 5e3 },
|
|
@@ -14159,7 +14312,7 @@ function priceBandLabel(band, t, currencyCode, locale) {
|
|
|
14159
14312
|
return "";
|
|
14160
14313
|
}
|
|
14161
14314
|
function OptionLink({ href, active, label, onActivate }) {
|
|
14162
|
-
return /* @__PURE__ */
|
|
14315
|
+
return /* @__PURE__ */ jsx14(
|
|
14163
14316
|
"a",
|
|
14164
14317
|
{
|
|
14165
14318
|
href,
|
|
@@ -14168,7 +14321,7 @@ function OptionLink({ href, active, label, onActivate }) {
|
|
|
14168
14321
|
event.preventDefault();
|
|
14169
14322
|
onActivate();
|
|
14170
14323
|
} : void 0,
|
|
14171
|
-
className:
|
|
14324
|
+
className: cn11(
|
|
14172
14325
|
"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",
|
|
14173
14326
|
active ? "border-transparent bg-primary text-primary-foreground" : "border-border text-muted-foreground hover:bg-muted hover:text-foreground"
|
|
14174
14327
|
),
|
|
@@ -14177,9 +14330,9 @@ function OptionLink({ href, active, label, onActivate }) {
|
|
|
14177
14330
|
);
|
|
14178
14331
|
}
|
|
14179
14332
|
function FilterFieldset({ legend, children: children2 }) {
|
|
14180
|
-
return /* @__PURE__ */
|
|
14181
|
-
/* @__PURE__ */
|
|
14182
|
-
/* @__PURE__ */
|
|
14333
|
+
return /* @__PURE__ */ jsxs12("fieldset", { className: "space-y-2", children: [
|
|
14334
|
+
/* @__PURE__ */ jsx14("legend", { className: "text-sm font-medium text-foreground", children: legend }),
|
|
14335
|
+
/* @__PURE__ */ jsx14("div", { className: "flex flex-wrap gap-2", children: children2 })
|
|
14183
14336
|
] });
|
|
14184
14337
|
}
|
|
14185
14338
|
function ShopFilters({
|
|
@@ -14202,11 +14355,11 @@ function ShopFilters({
|
|
|
14202
14355
|
if (!shouldRenderShopFilters(facets, active)) {
|
|
14203
14356
|
return null;
|
|
14204
14357
|
}
|
|
14205
|
-
return /* @__PURE__ */
|
|
14358
|
+
return /* @__PURE__ */ jsxs12("div", { className: cn11("space-y-6", className), "data-slot": "shop-filters", children: [
|
|
14206
14359
|
visibleTaxonomies.map((axis) => {
|
|
14207
14360
|
const activeSlug = active.taxonomy?.[axis.key];
|
|
14208
|
-
return /* @__PURE__ */
|
|
14209
|
-
/* @__PURE__ */
|
|
14361
|
+
return /* @__PURE__ */ jsxs12(FilterFieldset, { legend: axis.label, children: [
|
|
14362
|
+
/* @__PURE__ */ jsx14(
|
|
14210
14363
|
OptionLink,
|
|
14211
14364
|
{
|
|
14212
14365
|
href: hrefs.taxonomy(axis.key, void 0),
|
|
@@ -14221,7 +14374,7 @@ function ShopFilters({
|
|
|
14221
14374
|
),
|
|
14222
14375
|
axis.terms.map((term) => {
|
|
14223
14376
|
const isActive = activeSlug === term.slug;
|
|
14224
|
-
return /* @__PURE__ */
|
|
14377
|
+
return /* @__PURE__ */ jsx14(
|
|
14225
14378
|
OptionLink,
|
|
14226
14379
|
{
|
|
14227
14380
|
href: hrefs.taxonomy(axis.key, isActive ? void 0 : term.slug),
|
|
@@ -14241,9 +14394,9 @@ function ShopFilters({
|
|
|
14241
14394
|
}),
|
|
14242
14395
|
visibleAttributes.map((attr) => {
|
|
14243
14396
|
const activeValues = toValueArray(active.attr?.[attr.key]);
|
|
14244
|
-
return /* @__PURE__ */
|
|
14397
|
+
return /* @__PURE__ */ jsx14(FilterFieldset, { legend: attr.label, children: attr.options.map((opt) => {
|
|
14245
14398
|
const isActive = activeValues.includes(opt.value);
|
|
14246
|
-
return /* @__PURE__ */
|
|
14399
|
+
return /* @__PURE__ */ jsx14(
|
|
14247
14400
|
OptionLink,
|
|
14248
14401
|
{
|
|
14249
14402
|
href: hrefs.attr(attr.key, opt.value),
|
|
@@ -14261,11 +14414,11 @@ function ShopFilters({
|
|
|
14261
14414
|
);
|
|
14262
14415
|
}) }, attr.key);
|
|
14263
14416
|
}),
|
|
14264
|
-
showPriceGroup && /* @__PURE__ */
|
|
14417
|
+
showPriceGroup && /* @__PURE__ */ jsx14(FilterFieldset, { legend: t.price, children: priceBands.map((band, i) => {
|
|
14265
14418
|
const isActive = active.priceMin === band.min && active.priceMax === band.max;
|
|
14266
14419
|
const nextMin = isActive ? void 0 : band.min;
|
|
14267
14420
|
const nextMax = isActive ? void 0 : band.max;
|
|
14268
|
-
return /* @__PURE__ */
|
|
14421
|
+
return /* @__PURE__ */ jsx14(
|
|
14269
14422
|
OptionLink,
|
|
14270
14423
|
{
|
|
14271
14424
|
href: hrefs.price(nextMin, nextMax),
|
|
@@ -14276,7 +14429,7 @@ function ShopFilters({
|
|
|
14276
14429
|
i
|
|
14277
14430
|
);
|
|
14278
14431
|
}) }),
|
|
14279
|
-
hasOnSale && /* @__PURE__ */
|
|
14432
|
+
hasOnSale && /* @__PURE__ */ jsx14(
|
|
14280
14433
|
OptionLink,
|
|
14281
14434
|
{
|
|
14282
14435
|
href: hrefs.onSale(!active.onSale),
|
|
@@ -14285,7 +14438,7 @@ function ShopFilters({
|
|
|
14285
14438
|
onActivate: onChange ? () => onChange({ onSale: !active.onSale }) : void 0
|
|
14286
14439
|
}
|
|
14287
14440
|
),
|
|
14288
|
-
/* @__PURE__ */
|
|
14441
|
+
/* @__PURE__ */ jsx14(
|
|
14289
14442
|
"a",
|
|
14290
14443
|
{
|
|
14291
14444
|
href: hrefs.clearAll(),
|
|
@@ -14301,8 +14454,8 @@ function ShopFilters({
|
|
|
14301
14454
|
}
|
|
14302
14455
|
|
|
14303
14456
|
// src/components/cart-line-list.tsx
|
|
14304
|
-
import { cn as
|
|
14305
|
-
import { jsx as
|
|
14457
|
+
import { cn as cn12 } from "@reblu/site-ui/utils";
|
|
14458
|
+
import { jsx as jsx15, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
14306
14459
|
var DEFAULT_LABELS2 = {
|
|
14307
14460
|
quantityLabel: "Cantidad",
|
|
14308
14461
|
decrease: "Reducir cantidad",
|
|
@@ -14328,9 +14481,9 @@ function CartLineList({
|
|
|
14328
14481
|
}) {
|
|
14329
14482
|
const t = { ...DEFAULT_LABELS2, ...labels };
|
|
14330
14483
|
const noticeContent = notice === true ? t.cancelledNotice : notice;
|
|
14331
|
-
return /* @__PURE__ */
|
|
14332
|
-
/* @__PURE__ */
|
|
14333
|
-
noticeContent != null && noticeContent !== false && /* @__PURE__ */
|
|
14484
|
+
return /* @__PURE__ */ jsxs13("div", { className: cn12("space-y-4", className), "data-slot": "cart-line-list", children: [
|
|
14485
|
+
/* @__PURE__ */ jsx15("div", { "aria-live": "polite", className: "sr-only", children: liveMessage }),
|
|
14486
|
+
noticeContent != null && noticeContent !== false && /* @__PURE__ */ jsx15(
|
|
14334
14487
|
"div",
|
|
14335
14488
|
{
|
|
14336
14489
|
role: "status",
|
|
@@ -14339,33 +14492,33 @@ function CartLineList({
|
|
|
14339
14492
|
children: noticeContent
|
|
14340
14493
|
}
|
|
14341
14494
|
),
|
|
14342
|
-
/* @__PURE__ */
|
|
14495
|
+
/* @__PURE__ */ jsx15("ul", { className: "space-y-4", children: items.map((item) => {
|
|
14343
14496
|
const maxQty = item.maxStock ?? Infinity;
|
|
14344
14497
|
const atMax = item.quantity >= maxQty;
|
|
14345
14498
|
const atMin = item.quantity <= 1;
|
|
14346
14499
|
const message = lineMessage?.(item);
|
|
14347
|
-
return /* @__PURE__ */
|
|
14500
|
+
return /* @__PURE__ */ jsxs13(
|
|
14348
14501
|
"li",
|
|
14349
14502
|
{
|
|
14350
14503
|
className: "flex gap-4 rounded-xl border border-border bg-card p-4",
|
|
14351
14504
|
children: [
|
|
14352
|
-
/* @__PURE__ */
|
|
14353
|
-
/* @__PURE__ */
|
|
14354
|
-
/* @__PURE__ */
|
|
14355
|
-
item.variantName && /* @__PURE__ */
|
|
14356
|
-
/* @__PURE__ */
|
|
14505
|
+
/* @__PURE__ */ jsx15("div", { className: "h-20 w-20 flex-shrink-0 overflow-hidden rounded-lg bg-muted", children: item.imageUrl ? /* @__PURE__ */ jsx15("img", { src: item.imageUrl, alt: item.name, className: "h-full w-full object-cover" }) : null }),
|
|
14506
|
+
/* @__PURE__ */ jsxs13("div", { className: "min-w-0 flex-1", children: [
|
|
14507
|
+
/* @__PURE__ */ jsx15("p", { className: "truncate text-sm font-semibold leading-tight", children: item.name }),
|
|
14508
|
+
item.variantName && /* @__PURE__ */ jsx15("p", { className: "mt-0.5 text-xs text-muted-foreground", children: item.variantName }),
|
|
14509
|
+
/* @__PURE__ */ jsxs13("p", { className: "mt-1 text-sm text-muted-foreground", children: [
|
|
14357
14510
|
formatPrice(item.unitPrice, currencyCode, locale),
|
|
14358
14511
|
" ",
|
|
14359
14512
|
t.unitPriceSuffix
|
|
14360
14513
|
] }),
|
|
14361
|
-
/* @__PURE__ */
|
|
14514
|
+
/* @__PURE__ */ jsxs13(
|
|
14362
14515
|
"div",
|
|
14363
14516
|
{
|
|
14364
14517
|
role: "group",
|
|
14365
14518
|
"aria-label": t.quantityLabel,
|
|
14366
14519
|
className: "mt-3 flex items-center gap-3",
|
|
14367
14520
|
children: [
|
|
14368
|
-
/* @__PURE__ */
|
|
14521
|
+
/* @__PURE__ */ jsx15(
|
|
14369
14522
|
"button",
|
|
14370
14523
|
{
|
|
14371
14524
|
type: "button",
|
|
@@ -14376,8 +14529,8 @@ function CartLineList({
|
|
|
14376
14529
|
children: "\u2212"
|
|
14377
14530
|
}
|
|
14378
14531
|
),
|
|
14379
|
-
/* @__PURE__ */
|
|
14380
|
-
/* @__PURE__ */
|
|
14532
|
+
/* @__PURE__ */ jsx15("span", { className: "w-8 text-center text-sm font-semibold tabular-nums", children: item.quantity }),
|
|
14533
|
+
/* @__PURE__ */ jsx15(
|
|
14381
14534
|
"button",
|
|
14382
14535
|
{
|
|
14383
14536
|
type: "button",
|
|
@@ -14388,7 +14541,7 @@ function CartLineList({
|
|
|
14388
14541
|
children: "+"
|
|
14389
14542
|
}
|
|
14390
14543
|
),
|
|
14391
|
-
onRemove && /* @__PURE__ */
|
|
14544
|
+
onRemove && /* @__PURE__ */ jsx15(
|
|
14392
14545
|
"button",
|
|
14393
14546
|
{
|
|
14394
14547
|
type: "button",
|
|
@@ -14401,7 +14554,7 @@ function CartLineList({
|
|
|
14401
14554
|
]
|
|
14402
14555
|
}
|
|
14403
14556
|
),
|
|
14404
|
-
message != null && message !== false && /* @__PURE__ */
|
|
14557
|
+
message != null && message !== false && /* @__PURE__ */ jsx15(
|
|
14405
14558
|
"p",
|
|
14406
14559
|
{
|
|
14407
14560
|
className: "mt-2 text-sm text-destructive",
|
|
@@ -14410,7 +14563,7 @@ function CartLineList({
|
|
|
14410
14563
|
}
|
|
14411
14564
|
)
|
|
14412
14565
|
] }),
|
|
14413
|
-
/* @__PURE__ */
|
|
14566
|
+
/* @__PURE__ */ jsx15("div", { className: "flex-shrink-0 text-right", children: /* @__PURE__ */ jsx15("p", { className: "text-base font-bold", children: formatPrice(item.unitPrice * item.quantity, currencyCode, locale) }) })
|
|
14414
14567
|
]
|
|
14415
14568
|
},
|
|
14416
14569
|
lineKey(item.productId, item.variantId)
|
|
@@ -14420,8 +14573,8 @@ function CartLineList({
|
|
|
14420
14573
|
}
|
|
14421
14574
|
|
|
14422
14575
|
// src/components/cart-summary.tsx
|
|
14423
|
-
import { cn as
|
|
14424
|
-
import { jsx as
|
|
14576
|
+
import { cn as cn13 } from "@reblu/site-ui/utils";
|
|
14577
|
+
import { jsx as jsx16, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
14425
14578
|
var DEFAULT_LABELS3 = {
|
|
14426
14579
|
subtotal: "Subtotal",
|
|
14427
14580
|
discountPrefix: "Descuento",
|
|
@@ -14448,40 +14601,40 @@ function CartSummary({
|
|
|
14448
14601
|
const hasDiscount = Boolean(discount && discount > 0);
|
|
14449
14602
|
const noticeContent = notice === true ? t.cancelledNotice : notice;
|
|
14450
14603
|
const hasNotice = noticeContent != null && noticeContent !== false;
|
|
14451
|
-
const breakdown = /* @__PURE__ */
|
|
14604
|
+
const breakdown = /* @__PURE__ */ jsxs14(
|
|
14452
14605
|
"dl",
|
|
14453
14606
|
{
|
|
14454
|
-
className:
|
|
14607
|
+
className: cn13("space-y-2 text-sm", !hasNotice && className),
|
|
14455
14608
|
"data-slot": "cart-summary",
|
|
14456
14609
|
children: [
|
|
14457
|
-
/* @__PURE__ */
|
|
14458
|
-
/* @__PURE__ */
|
|
14459
|
-
/* @__PURE__ */
|
|
14610
|
+
/* @__PURE__ */ jsxs14("div", { className: "flex justify-between text-muted-foreground", children: [
|
|
14611
|
+
/* @__PURE__ */ jsx16("dt", { children: t.subtotal }),
|
|
14612
|
+
/* @__PURE__ */ jsx16("dd", { children: formatPrice(subtotal, currencyCode, locale) })
|
|
14460
14613
|
] }),
|
|
14461
|
-
hasDiscount && /* @__PURE__ */
|
|
14462
|
-
/* @__PURE__ */
|
|
14614
|
+
hasDiscount && /* @__PURE__ */ jsxs14("div", { className: "flex justify-between text-green-600 dark:text-green-400", children: [
|
|
14615
|
+
/* @__PURE__ */ jsxs14("dt", { children: [
|
|
14463
14616
|
t.discountPrefix,
|
|
14464
14617
|
discountCode ? ` (${discountCode})` : ""
|
|
14465
14618
|
] }),
|
|
14466
|
-
/* @__PURE__ */
|
|
14619
|
+
/* @__PURE__ */ jsxs14("dd", { children: [
|
|
14467
14620
|
"-",
|
|
14468
14621
|
formatPrice(discount, currencyCode, locale)
|
|
14469
14622
|
] })
|
|
14470
14623
|
] }),
|
|
14471
|
-
shippingEnabled && /* @__PURE__ */
|
|
14472
|
-
/* @__PURE__ */
|
|
14473
|
-
/* @__PURE__ */
|
|
14624
|
+
shippingEnabled && /* @__PURE__ */ jsxs14("div", { className: "flex justify-between text-muted-foreground", children: [
|
|
14625
|
+
/* @__PURE__ */ jsx16("dt", { children: t.shipping }),
|
|
14626
|
+
/* @__PURE__ */ jsx16("dd", { children: shipping == null || !Number.isFinite(shipping) ? t.shippingCalculated : shipping === 0 ? t.freeShipping : formatPrice(shipping, currencyCode, locale) })
|
|
14474
14627
|
] }),
|
|
14475
|
-
/* @__PURE__ */
|
|
14476
|
-
/* @__PURE__ */
|
|
14477
|
-
/* @__PURE__ */
|
|
14628
|
+
/* @__PURE__ */ jsxs14("div", { className: "flex justify-between border-t border-border pt-2 text-base font-bold", children: [
|
|
14629
|
+
/* @__PURE__ */ jsx16("dt", { children: t.total }),
|
|
14630
|
+
/* @__PURE__ */ jsx16("dd", { children: formatPrice(total, currencyCode, locale) })
|
|
14478
14631
|
] })
|
|
14479
14632
|
]
|
|
14480
14633
|
}
|
|
14481
14634
|
);
|
|
14482
14635
|
if (!hasNotice) return breakdown;
|
|
14483
|
-
return /* @__PURE__ */
|
|
14484
|
-
/* @__PURE__ */
|
|
14636
|
+
return /* @__PURE__ */ jsxs14("div", { className: cn13("space-y-3", className), "data-slot": "cart-summary-wrapper", children: [
|
|
14637
|
+
/* @__PURE__ */ jsx16(
|
|
14485
14638
|
"div",
|
|
14486
14639
|
{
|
|
14487
14640
|
role: "status",
|
|
@@ -14495,8 +14648,8 @@ function CartSummary({
|
|
|
14495
14648
|
}
|
|
14496
14649
|
|
|
14497
14650
|
// src/components/cart-adjustments-notice.tsx
|
|
14498
|
-
import { cn as
|
|
14499
|
-
import { jsx as
|
|
14651
|
+
import { cn as cn14 } from "@reblu/site-ui/utils";
|
|
14652
|
+
import { jsx as jsx17 } from "react/jsx-runtime";
|
|
14500
14653
|
var DEFAULT_LABELS4 = {
|
|
14501
14654
|
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.`,
|
|
14502
14655
|
quantityChanged: (name, quantity) => `Hemos ajustado la cantidad de ${name} a ${quantity} por el stock disponible.`,
|
|
@@ -14530,20 +14683,20 @@ function CartAdjustmentsNotice({
|
|
|
14530
14683
|
);
|
|
14531
14684
|
}
|
|
14532
14685
|
if (messages.length === 0) return null;
|
|
14533
|
-
return /* @__PURE__ */
|
|
14686
|
+
return /* @__PURE__ */ jsx17(
|
|
14534
14687
|
"div",
|
|
14535
14688
|
{
|
|
14536
14689
|
role: "status",
|
|
14537
|
-
className:
|
|
14690
|
+
className: cn14("rounded-lg border border-border bg-muted px-3 py-2 text-sm", className),
|
|
14538
14691
|
"data-slot": "cart-adjustments-notice",
|
|
14539
|
-
children: messages.length === 1 ? /* @__PURE__ */
|
|
14692
|
+
children: messages.length === 1 ? /* @__PURE__ */ jsx17("p", { children: messages[0] }) : /* @__PURE__ */ jsx17("ul", { className: "list-disc space-y-1 pl-4", children: messages.map((message, index) => /* @__PURE__ */ jsx17("li", { children: message }, index)) })
|
|
14540
14693
|
}
|
|
14541
14694
|
);
|
|
14542
14695
|
}
|
|
14543
14696
|
|
|
14544
14697
|
// src/components/added-to-cart-toast.tsx
|
|
14545
|
-
import { cn as
|
|
14546
|
-
import { jsx as
|
|
14698
|
+
import { cn as cn15 } from "@reblu/site-ui/utils";
|
|
14699
|
+
import { jsx as jsx18, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
14547
14700
|
var DEFAULT_LABELS5 = {
|
|
14548
14701
|
success: "A\xF1adido al carrito",
|
|
14549
14702
|
error: "No se pudo a\xF1adir al carrito",
|
|
@@ -14563,12 +14716,12 @@ function AddedToCartToast({
|
|
|
14563
14716
|
const message = status === "error" ? t.error : status === "outOfStock" ? t.outOfStock : t.success;
|
|
14564
14717
|
const hasThumbnail = Boolean(imageUrl && imageUrl.trim().length > 0);
|
|
14565
14718
|
const variant = status === "success" ? "success" : "error";
|
|
14566
|
-
return /* @__PURE__ */
|
|
14719
|
+
return /* @__PURE__ */ jsxs15(
|
|
14567
14720
|
"div",
|
|
14568
14721
|
{
|
|
14569
14722
|
"data-slot": "added-to-cart-toast",
|
|
14570
14723
|
"data-variant": variant,
|
|
14571
|
-
className:
|
|
14724
|
+
className: cn15(
|
|
14572
14725
|
"flex items-center gap-3 rounded-xl border border-border bg-card p-3 text-sm shadow-lg",
|
|
14573
14726
|
variant === "success" && "border-green-600/30 dark:border-green-400/30",
|
|
14574
14727
|
variant === "error" && "border-destructive/30",
|
|
@@ -14576,20 +14729,20 @@ function AddedToCartToast({
|
|
|
14576
14729
|
),
|
|
14577
14730
|
children: [
|
|
14578
14731
|
hasThumbnail && // eslint-disable-next-line @next/next/no-img-element -- toast content, not a Next <Image> layout context
|
|
14579
|
-
/* @__PURE__ */
|
|
14580
|
-
/* @__PURE__ */
|
|
14581
|
-
/* @__PURE__ */
|
|
14582
|
-
/* @__PURE__ */
|
|
14732
|
+
/* @__PURE__ */ jsx18("img", { src: imageUrl, alt: productName, className: "h-10 w-10 flex-shrink-0 rounded-lg object-cover" }),
|
|
14733
|
+
/* @__PURE__ */ jsxs15("div", { className: "min-w-0 flex-1", children: [
|
|
14734
|
+
/* @__PURE__ */ jsx18("p", { className: "truncate font-semibold text-foreground", children: productName }),
|
|
14735
|
+
/* @__PURE__ */ jsx18("p", { className: "truncate text-muted-foreground", children: quantity && quantity > 1 ? `${message} \xB7 x${quantity}` : message })
|
|
14583
14736
|
] }),
|
|
14584
|
-
/* @__PURE__ */
|
|
14737
|
+
/* @__PURE__ */ jsx18("div", { className: "flex-shrink-0", children: /* @__PURE__ */ jsx18("a", { href: cartHref, className: "text-sm font-semibold text-primary underline-offset-2 hover:underline", children: t.viewCart }) })
|
|
14585
14738
|
]
|
|
14586
14739
|
}
|
|
14587
14740
|
);
|
|
14588
14741
|
}
|
|
14589
14742
|
|
|
14590
14743
|
// src/components/checkout-login-prompt.tsx
|
|
14591
|
-
import { cn as
|
|
14592
|
-
import { Fragment as Fragment3, jsx as
|
|
14744
|
+
import { cn as cn16 } from "@reblu/site-ui/utils";
|
|
14745
|
+
import { Fragment as Fragment3, jsx as jsx19, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
14593
14746
|
var DEFAULT_LABELS6 = {
|
|
14594
14747
|
title: "Identificaci\xF3n",
|
|
14595
14748
|
description: "Introduce tu email para agilizar el proceso o contin\xFAa como invitado.",
|
|
@@ -14616,26 +14769,26 @@ function CheckoutLoginPrompt({
|
|
|
14616
14769
|
if (!open) return null;
|
|
14617
14770
|
const t = { ...DEFAULT_LABELS6, ...labels };
|
|
14618
14771
|
const isValidEmail = EMAIL_PATTERN.test(email.trim());
|
|
14619
|
-
return /* @__PURE__ */
|
|
14620
|
-
/* @__PURE__ */
|
|
14621
|
-
/* @__PURE__ */
|
|
14772
|
+
return /* @__PURE__ */ jsxs16(Fragment3, { children: [
|
|
14773
|
+
/* @__PURE__ */ jsx19("div", { className: "fixed inset-0 z-50 bg-black/50", onClick: onClose, "aria-hidden": "true" }),
|
|
14774
|
+
/* @__PURE__ */ jsxs16(
|
|
14622
14775
|
"div",
|
|
14623
14776
|
{
|
|
14624
14777
|
role: "dialog",
|
|
14625
14778
|
"aria-modal": "true",
|
|
14626
14779
|
"aria-labelledby": "checkout-login-prompt-title",
|
|
14627
14780
|
"data-slot": "checkout-login-prompt",
|
|
14628
|
-
className:
|
|
14781
|
+
className: cn16(
|
|
14629
14782
|
"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",
|
|
14630
14783
|
className
|
|
14631
14784
|
),
|
|
14632
14785
|
children: [
|
|
14633
|
-
/* @__PURE__ */
|
|
14634
|
-
/* @__PURE__ */
|
|
14635
|
-
/* @__PURE__ */
|
|
14636
|
-
/* @__PURE__ */
|
|
14786
|
+
/* @__PURE__ */ jsxs16("div", { className: "flex items-start justify-between gap-3", children: [
|
|
14787
|
+
/* @__PURE__ */ jsxs16("div", { children: [
|
|
14788
|
+
/* @__PURE__ */ jsx19("h2", { id: "checkout-login-prompt-title", className: "text-xl font-bold", children: t.title }),
|
|
14789
|
+
/* @__PURE__ */ jsx19("p", { className: "mt-1 text-sm text-muted-foreground", children: t.description })
|
|
14637
14790
|
] }),
|
|
14638
|
-
/* @__PURE__ */
|
|
14791
|
+
/* @__PURE__ */ jsx19(
|
|
14639
14792
|
"button",
|
|
14640
14793
|
{
|
|
14641
14794
|
type: "button",
|
|
@@ -14646,9 +14799,9 @@ function CheckoutLoginPrompt({
|
|
|
14646
14799
|
}
|
|
14647
14800
|
)
|
|
14648
14801
|
] }),
|
|
14649
|
-
/* @__PURE__ */
|
|
14650
|
-
/* @__PURE__ */
|
|
14651
|
-
/* @__PURE__ */
|
|
14802
|
+
/* @__PURE__ */ jsxs16("div", { className: "space-y-2", children: [
|
|
14803
|
+
/* @__PURE__ */ jsx19("label", { htmlFor: "checkout-login-prompt-email", className: "text-sm font-medium", children: t.emailLabel }),
|
|
14804
|
+
/* @__PURE__ */ jsx19(
|
|
14652
14805
|
"input",
|
|
14653
14806
|
{
|
|
14654
14807
|
id: "checkout-login-prompt-email",
|
|
@@ -14657,29 +14810,29 @@ function CheckoutLoginPrompt({
|
|
|
14657
14810
|
value: email,
|
|
14658
14811
|
onChange: (e) => onEmailChange(e.target.value),
|
|
14659
14812
|
placeholder: t.emailPlaceholder,
|
|
14660
|
-
className:
|
|
14813
|
+
className: cn16(
|
|
14661
14814
|
"w-full rounded-lg border bg-background px-3 py-2 text-sm transition focus:outline-none focus:ring-2 focus:ring-primary/20",
|
|
14662
14815
|
error ? "border-destructive" : "border-border focus:border-primary"
|
|
14663
14816
|
)
|
|
14664
14817
|
}
|
|
14665
14818
|
),
|
|
14666
|
-
error && /* @__PURE__ */
|
|
14819
|
+
error && /* @__PURE__ */ jsx19("p", { className: "text-xs text-destructive", children: error })
|
|
14667
14820
|
] }),
|
|
14668
|
-
/* @__PURE__ */
|
|
14669
|
-
/* @__PURE__ */
|
|
14821
|
+
/* @__PURE__ */ jsxs16("div", { className: "space-y-2", children: [
|
|
14822
|
+
/* @__PURE__ */ jsx19(
|
|
14670
14823
|
"button",
|
|
14671
14824
|
{
|
|
14672
14825
|
type: "button",
|
|
14673
14826
|
onClick: onSubmitEmail,
|
|
14674
14827
|
disabled: checking || !isValidEmail,
|
|
14675
|
-
className:
|
|
14828
|
+
className: cn16(
|
|
14676
14829
|
"flex w-full items-center justify-center gap-2 rounded-xl px-4 py-2.5 text-sm font-semibold transition-all",
|
|
14677
14830
|
checking || !isValidEmail ? "cursor-not-allowed bg-muted text-muted-foreground" : "bg-primary text-primary-foreground hover:bg-primary/90"
|
|
14678
14831
|
),
|
|
14679
14832
|
children: checking ? t.checking : t.continueWithEmail
|
|
14680
14833
|
}
|
|
14681
14834
|
),
|
|
14682
|
-
/* @__PURE__ */
|
|
14835
|
+
/* @__PURE__ */ jsx19(
|
|
14683
14836
|
"button",
|
|
14684
14837
|
{
|
|
14685
14838
|
type: "button",
|
|
@@ -14696,9 +14849,9 @@ function CheckoutLoginPrompt({
|
|
|
14696
14849
|
}
|
|
14697
14850
|
|
|
14698
14851
|
// src/components/checkout-form.tsx
|
|
14699
|
-
import { cn as
|
|
14852
|
+
import { cn as cn17 } from "@reblu/site-ui/utils";
|
|
14700
14853
|
import { PhoneInput } from "@reblu/site-ui/phone-input";
|
|
14701
|
-
import { Fragment as Fragment4, jsx as
|
|
14854
|
+
import { Fragment as Fragment4, jsx as jsx20, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
14702
14855
|
var DEFAULT_LABELS7 = {
|
|
14703
14856
|
contactTitle: "Datos de contacto",
|
|
14704
14857
|
nameLabel: "Nombre completo",
|
|
@@ -14752,22 +14905,22 @@ function CheckoutForm({
|
|
|
14752
14905
|
event.preventDefault();
|
|
14753
14906
|
if (discountCode.trim() && !discountApplying) onApplyDiscount();
|
|
14754
14907
|
}
|
|
14755
|
-
return /* @__PURE__ */
|
|
14908
|
+
return /* @__PURE__ */ jsxs17(Fragment4, { children: [
|
|
14756
14909
|
loginPrompt,
|
|
14757
|
-
/* @__PURE__ */
|
|
14910
|
+
/* @__PURE__ */ jsxs17(
|
|
14758
14911
|
"form",
|
|
14759
14912
|
{
|
|
14760
14913
|
"data-testid": "checkout-form",
|
|
14761
14914
|
onSubmit,
|
|
14762
|
-
className:
|
|
14915
|
+
className: cn17("space-y-8", className),
|
|
14763
14916
|
"data-slot": "checkout-form",
|
|
14764
14917
|
children: [
|
|
14765
|
-
/* @__PURE__ */
|
|
14766
|
-
/* @__PURE__ */
|
|
14767
|
-
/* @__PURE__ */
|
|
14768
|
-
/* @__PURE__ */
|
|
14769
|
-
/* @__PURE__ */
|
|
14770
|
-
/* @__PURE__ */
|
|
14918
|
+
/* @__PURE__ */ jsxs17("section", { className: "space-y-4", children: [
|
|
14919
|
+
/* @__PURE__ */ jsx20("h2", { className: "border-b border-border pb-2 text-lg font-semibold", children: t.contactTitle }),
|
|
14920
|
+
/* @__PURE__ */ jsxs17("div", { className: "grid grid-cols-1 gap-4 sm:grid-cols-2", children: [
|
|
14921
|
+
/* @__PURE__ */ jsxs17("div", { className: "space-y-1", children: [
|
|
14922
|
+
/* @__PURE__ */ jsx20("label", { htmlFor: "checkout-form-name", className: "text-sm font-medium", children: t.nameLabel }),
|
|
14923
|
+
/* @__PURE__ */ jsx20(
|
|
14771
14924
|
"input",
|
|
14772
14925
|
{
|
|
14773
14926
|
id: "checkout-form-name",
|
|
@@ -14776,17 +14929,17 @@ function CheckoutForm({
|
|
|
14776
14929
|
value: contact.name,
|
|
14777
14930
|
onChange: (e) => patchContact({ name: e.target.value }),
|
|
14778
14931
|
placeholder: t.namePlaceholder,
|
|
14779
|
-
className:
|
|
14932
|
+
className: cn17(
|
|
14780
14933
|
"w-full rounded-lg border bg-background px-3 py-2 text-sm transition focus:outline-none focus:ring-2 focus:ring-primary/20",
|
|
14781
14934
|
contactErrors?.name ? "border-destructive" : "border-border focus:border-primary"
|
|
14782
14935
|
)
|
|
14783
14936
|
}
|
|
14784
14937
|
),
|
|
14785
|
-
contactErrors?.name && /* @__PURE__ */
|
|
14938
|
+
contactErrors?.name && /* @__PURE__ */ jsx20("p", { className: "text-xs text-destructive", children: contactErrors.name })
|
|
14786
14939
|
] }),
|
|
14787
|
-
/* @__PURE__ */
|
|
14788
|
-
/* @__PURE__ */
|
|
14789
|
-
/* @__PURE__ */
|
|
14940
|
+
/* @__PURE__ */ jsxs17("div", { className: "space-y-1", children: [
|
|
14941
|
+
/* @__PURE__ */ jsx20("label", { htmlFor: "checkout-form-email", className: "text-sm font-medium", children: t.emailLabel }),
|
|
14942
|
+
/* @__PURE__ */ jsx20(
|
|
14790
14943
|
"input",
|
|
14791
14944
|
{
|
|
14792
14945
|
id: "checkout-form-email",
|
|
@@ -14795,15 +14948,15 @@ function CheckoutForm({
|
|
|
14795
14948
|
value: contact.email,
|
|
14796
14949
|
onChange: (e) => patchContact({ email: e.target.value }),
|
|
14797
14950
|
placeholder: t.emailPlaceholder,
|
|
14798
|
-
className:
|
|
14951
|
+
className: cn17(
|
|
14799
14952
|
"w-full rounded-lg border bg-background px-3 py-2 text-sm transition focus:outline-none focus:ring-2 focus:ring-primary/20",
|
|
14800
14953
|
contactErrors?.email ? "border-destructive" : "border-border focus:border-primary"
|
|
14801
14954
|
)
|
|
14802
14955
|
}
|
|
14803
14956
|
),
|
|
14804
|
-
contactErrors?.email && /* @__PURE__ */
|
|
14957
|
+
contactErrors?.email && /* @__PURE__ */ jsx20("p", { className: "text-xs text-destructive", children: contactErrors.email })
|
|
14805
14958
|
] }),
|
|
14806
|
-
/* @__PURE__ */
|
|
14959
|
+
/* @__PURE__ */ jsx20("div", { className: "space-y-1", children: /* @__PURE__ */ jsx20(
|
|
14807
14960
|
PhoneInput,
|
|
14808
14961
|
{
|
|
14809
14962
|
id: "checkout-form-phone",
|
|
@@ -14817,15 +14970,15 @@ function CheckoutForm({
|
|
|
14817
14970
|
] })
|
|
14818
14971
|
] }),
|
|
14819
14972
|
children2,
|
|
14820
|
-
generalError ? /* @__PURE__ */
|
|
14821
|
-
/* @__PURE__ */
|
|
14822
|
-
/* @__PURE__ */
|
|
14823
|
-
appliedDiscount ? /* @__PURE__ */
|
|
14824
|
-
/* @__PURE__ */
|
|
14825
|
-
/* @__PURE__ */
|
|
14826
|
-
/* @__PURE__ */
|
|
14973
|
+
generalError ? /* @__PURE__ */ jsx20("p", { role: "alert", className: "text-sm text-destructive", children: generalError }) : null,
|
|
14974
|
+
/* @__PURE__ */ jsxs17("section", { className: "space-y-3", children: [
|
|
14975
|
+
/* @__PURE__ */ jsx20("h2", { className: "border-b border-border pb-2 text-lg font-semibold", children: t.discountTitle }),
|
|
14976
|
+
appliedDiscount ? /* @__PURE__ */ jsxs17("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: [
|
|
14977
|
+
/* @__PURE__ */ jsxs17("div", { className: "flex items-center gap-2 text-sm text-green-700 dark:text-green-400", children: [
|
|
14978
|
+
/* @__PURE__ */ jsx20("span", { className: "font-semibold", children: appliedDiscount.code }),
|
|
14979
|
+
/* @__PURE__ */ jsx20("span", { children: t.discountAppliedSuffix(formatPrice(appliedDiscount.amount, currencyCode, locale)) })
|
|
14827
14980
|
] }),
|
|
14828
|
-
/* @__PURE__ */
|
|
14981
|
+
/* @__PURE__ */ jsx20(
|
|
14829
14982
|
"button",
|
|
14830
14983
|
{
|
|
14831
14984
|
type: "button",
|
|
@@ -14835,9 +14988,9 @@ function CheckoutForm({
|
|
|
14835
14988
|
children: t.removeDiscount
|
|
14836
14989
|
}
|
|
14837
14990
|
)
|
|
14838
|
-
] }) : /* @__PURE__ */
|
|
14839
|
-
/* @__PURE__ */
|
|
14840
|
-
/* @__PURE__ */
|
|
14991
|
+
] }) : /* @__PURE__ */ jsxs17("div", { className: "flex gap-2", children: [
|
|
14992
|
+
/* @__PURE__ */ jsx20("label", { htmlFor: "checkout-form-discount-code", className: "sr-only", children: t.discountTitle }),
|
|
14993
|
+
/* @__PURE__ */ jsx20(
|
|
14841
14994
|
"input",
|
|
14842
14995
|
{
|
|
14843
14996
|
id: "checkout-form-discount-code",
|
|
@@ -14849,7 +15002,7 @@ function CheckoutForm({
|
|
|
14849
15002
|
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"
|
|
14850
15003
|
}
|
|
14851
15004
|
),
|
|
14852
|
-
/* @__PURE__ */
|
|
15005
|
+
/* @__PURE__ */ jsx20(
|
|
14853
15006
|
"button",
|
|
14854
15007
|
{
|
|
14855
15008
|
type: "button",
|
|
@@ -14860,14 +15013,14 @@ function CheckoutForm({
|
|
|
14860
15013
|
}
|
|
14861
15014
|
)
|
|
14862
15015
|
] }),
|
|
14863
|
-
discountError && /* @__PURE__ */
|
|
15016
|
+
discountError && /* @__PURE__ */ jsx20("p", { className: "text-xs text-destructive", children: discountError })
|
|
14864
15017
|
] }),
|
|
14865
|
-
/* @__PURE__ */
|
|
15018
|
+
/* @__PURE__ */ jsx20(
|
|
14866
15019
|
"button",
|
|
14867
15020
|
{
|
|
14868
15021
|
type: "submit",
|
|
14869
15022
|
disabled: submitting || submitDisabled,
|
|
14870
|
-
className:
|
|
15023
|
+
className: cn17(
|
|
14871
15024
|
"flex w-full items-center justify-center gap-2 rounded-xl px-4 py-3 font-semibold transition-all",
|
|
14872
15025
|
submitting || submitDisabled ? "cursor-not-allowed bg-muted text-muted-foreground" : "bg-primary text-primary-foreground hover:bg-primary/90"
|
|
14873
15026
|
),
|
|
@@ -14881,11 +15034,11 @@ function CheckoutForm({
|
|
|
14881
15034
|
}
|
|
14882
15035
|
|
|
14883
15036
|
// src/components/order-confirmation.tsx
|
|
14884
|
-
import { cn as
|
|
15037
|
+
import { cn as cn19 } from "@reblu/site-ui/utils";
|
|
14885
15038
|
|
|
14886
15039
|
// src/components/order-invoice-link.tsx
|
|
14887
|
-
import { cn as
|
|
14888
|
-
import { jsx as
|
|
15040
|
+
import { cn as cn18 } from "@reblu/site-ui/utils";
|
|
15041
|
+
import { jsx as jsx21, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
14889
15042
|
var DEFAULT_LABELS8 = {
|
|
14890
15043
|
linkLabel: "Descargar la factura {number}",
|
|
14891
15044
|
signInHint: "Te pediremos que inicies sesi\xF3n para abrirla."
|
|
@@ -14893,8 +15046,8 @@ var DEFAULT_LABELS8 = {
|
|
|
14893
15046
|
function OrderInvoiceLink({ invoice, labels, className }) {
|
|
14894
15047
|
if (!invoice) return null;
|
|
14895
15048
|
const t = { ...DEFAULT_LABELS8, ...labels };
|
|
14896
|
-
return /* @__PURE__ */
|
|
14897
|
-
/* @__PURE__ */
|
|
15049
|
+
return /* @__PURE__ */ jsxs18("div", { className: cn18("space-y-1 text-sm", className), "data-slot": "order-invoice-link", children: [
|
|
15050
|
+
/* @__PURE__ */ jsx21(
|
|
14898
15051
|
"a",
|
|
14899
15052
|
{
|
|
14900
15053
|
href: invoice.url,
|
|
@@ -14902,12 +15055,12 @@ function OrderInvoiceLink({ invoice, labels, className }) {
|
|
|
14902
15055
|
children: t.linkLabel.replace("{number}", invoice.number)
|
|
14903
15056
|
}
|
|
14904
15057
|
),
|
|
14905
|
-
/* @__PURE__ */
|
|
15058
|
+
/* @__PURE__ */ jsx21("p", { className: "text-muted-foreground", children: t.signInHint })
|
|
14906
15059
|
] });
|
|
14907
15060
|
}
|
|
14908
15061
|
|
|
14909
15062
|
// src/components/order-confirmation.tsx
|
|
14910
|
-
import { jsx as
|
|
15063
|
+
import { jsx as jsx22, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
14911
15064
|
var DEFAULT_LABELS9 = {
|
|
14912
15065
|
pollingTitle: "Confirmando tu pedido\u2026",
|
|
14913
15066
|
pollingDescription: "Estamos procesando el pago, un momento\u2026",
|
|
@@ -14971,43 +15124,43 @@ function OrderConfirmation({
|
|
|
14971
15124
|
const showOrderReference = Boolean(order) && !showFullOrderSummary && (status === "refunded" || status === "partially_refunded" || status === "pending_timeout");
|
|
14972
15125
|
const showSessionReference = !order && sessionId && (status === "timeout" || status === "not_found" || status === "pending_timeout");
|
|
14973
15126
|
const showRecheck = (status === "pending_timeout" || status === "error") && onRecheck;
|
|
14974
|
-
return /* @__PURE__ */
|
|
14975
|
-
/* @__PURE__ */
|
|
14976
|
-
/* @__PURE__ */
|
|
14977
|
-
showFullOrderSummary && order && /* @__PURE__ */
|
|
14978
|
-
/* @__PURE__ */
|
|
14979
|
-
/* @__PURE__ */
|
|
14980
|
-
/* @__PURE__ */
|
|
15127
|
+
return /* @__PURE__ */ jsxs19("div", { className: cn19("space-y-6 text-center", className), "data-slot": "order-confirmation", children: [
|
|
15128
|
+
/* @__PURE__ */ jsx22("h1", { className: "text-3xl font-bold", children: title }),
|
|
15129
|
+
/* @__PURE__ */ jsx22("p", { className: "text-lg text-muted-foreground", children: description }),
|
|
15130
|
+
showFullOrderSummary && order && /* @__PURE__ */ jsxs19("div", { className: "space-y-6", children: [
|
|
15131
|
+
/* @__PURE__ */ jsxs19("div", { className: "inline-block rounded-xl bg-muted px-6 py-4", children: [
|
|
15132
|
+
/* @__PURE__ */ jsx22("p", { className: "mb-1 text-xs uppercase tracking-widest text-muted-foreground", children: t.orderNumberLabel }),
|
|
15133
|
+
/* @__PURE__ */ jsx22("p", { className: "font-mono text-lg font-semibold", children: order.orderNumber })
|
|
14981
15134
|
] }),
|
|
14982
|
-
/* @__PURE__ */
|
|
14983
|
-
order.items.map((item, idx) => /* @__PURE__ */
|
|
15135
|
+
/* @__PURE__ */ jsxs19("div", { className: "mx-auto max-w-sm space-y-3 rounded-xl border border-border bg-card p-5 text-left", children: [
|
|
15136
|
+
order.items.map((item, idx) => /* @__PURE__ */ jsxs19(
|
|
14984
15137
|
"div",
|
|
14985
15138
|
{
|
|
14986
15139
|
className: "flex justify-between gap-4 text-sm",
|
|
14987
15140
|
children: [
|
|
14988
|
-
/* @__PURE__ */
|
|
15141
|
+
/* @__PURE__ */ jsxs19("span", { className: "max-w-[60%] truncate text-muted-foreground", children: [
|
|
14989
15142
|
item.product.name,
|
|
14990
15143
|
item.variant ? ` (${item.variant.name})` : "",
|
|
14991
15144
|
" x",
|
|
14992
15145
|
item.quantity
|
|
14993
15146
|
] }),
|
|
14994
|
-
/* @__PURE__ */
|
|
15147
|
+
/* @__PURE__ */ jsx22("span", { children: formatPrice(item.total, currencyCode, locale) })
|
|
14995
15148
|
]
|
|
14996
15149
|
},
|
|
14997
15150
|
idx
|
|
14998
15151
|
)),
|
|
14999
|
-
/* @__PURE__ */
|
|
15000
|
-
/* @__PURE__ */
|
|
15001
|
-
/* @__PURE__ */
|
|
15152
|
+
/* @__PURE__ */ jsx22("div", { className: "space-y-1 border-t border-border pt-3 text-sm", children: /* @__PURE__ */ jsxs19("div", { className: "flex justify-between pt-1 text-base font-bold", children: [
|
|
15153
|
+
/* @__PURE__ */ jsx22("span", { children: t.totalLabel }),
|
|
15154
|
+
/* @__PURE__ */ jsx22("span", { children: formatPrice(order.total, currencyCode, locale) })
|
|
15002
15155
|
] }) })
|
|
15003
15156
|
] }),
|
|
15004
|
-
/* @__PURE__ */
|
|
15157
|
+
/* @__PURE__ */ jsxs19("p", { className: "mx-auto max-w-sm text-sm text-muted-foreground", children: [
|
|
15005
15158
|
t.confirmationEmailPrefix,
|
|
15006
15159
|
" ",
|
|
15007
|
-
/* @__PURE__ */
|
|
15160
|
+
/* @__PURE__ */ jsx22("span", { className: "font-medium text-foreground", children: order.customerEmail }),
|
|
15008
15161
|
"."
|
|
15009
15162
|
] }),
|
|
15010
|
-
/* @__PURE__ */
|
|
15163
|
+
/* @__PURE__ */ jsx22(
|
|
15011
15164
|
OrderInvoiceLink,
|
|
15012
15165
|
{
|
|
15013
15166
|
invoice: order.invoice,
|
|
@@ -15015,11 +15168,11 @@ function OrderConfirmation({
|
|
|
15015
15168
|
}
|
|
15016
15169
|
)
|
|
15017
15170
|
] }),
|
|
15018
|
-
showOrderReference && order && /* @__PURE__ */
|
|
15019
|
-
/* @__PURE__ */
|
|
15020
|
-
/* @__PURE__ */
|
|
15171
|
+
showOrderReference && order && /* @__PURE__ */ jsxs19("div", { className: "inline-block rounded-xl bg-muted px-6 py-4", children: [
|
|
15172
|
+
/* @__PURE__ */ jsx22("p", { className: "mb-1 text-xs uppercase tracking-widest text-muted-foreground", children: t.orderReferenceLabel }),
|
|
15173
|
+
/* @__PURE__ */ jsx22("p", { className: "font-mono text-lg font-semibold", children: order.orderNumber })
|
|
15021
15174
|
] }),
|
|
15022
|
-
status === "failed" && cartHref && /* @__PURE__ */
|
|
15175
|
+
status === "failed" && cartHref && /* @__PURE__ */ jsx22(
|
|
15023
15176
|
"a",
|
|
15024
15177
|
{
|
|
15025
15178
|
href: cartHref,
|
|
@@ -15027,7 +15180,7 @@ function OrderConfirmation({
|
|
|
15027
15180
|
children: t.backToCartLabel
|
|
15028
15181
|
}
|
|
15029
15182
|
),
|
|
15030
|
-
showRecheck && /* @__PURE__ */
|
|
15183
|
+
showRecheck && /* @__PURE__ */ jsx22(
|
|
15031
15184
|
"button",
|
|
15032
15185
|
{
|
|
15033
15186
|
type: "button",
|
|
@@ -15036,16 +15189,16 @@ function OrderConfirmation({
|
|
|
15036
15189
|
children: t.recheckLabel
|
|
15037
15190
|
}
|
|
15038
15191
|
),
|
|
15039
|
-
showSessionReference && /* @__PURE__ */
|
|
15040
|
-
/* @__PURE__ */
|
|
15041
|
-
/* @__PURE__ */
|
|
15192
|
+
showSessionReference && /* @__PURE__ */ jsxs19("div", { className: "inline-block rounded-xl bg-muted px-6 py-4", children: [
|
|
15193
|
+
/* @__PURE__ */ jsx22("p", { className: "mb-1 text-xs uppercase tracking-widest text-muted-foreground", children: t.sessionReferenceLabel }),
|
|
15194
|
+
/* @__PURE__ */ jsx22("p", { className: "break-all font-mono text-sm font-semibold", children: sessionId })
|
|
15042
15195
|
] })
|
|
15043
15196
|
] });
|
|
15044
15197
|
}
|
|
15045
15198
|
|
|
15046
15199
|
// src/components/full-invoice-fields.tsx
|
|
15047
|
-
import { cn as
|
|
15048
|
-
import { jsx as
|
|
15200
|
+
import { cn as cn20 } from "@reblu/site-ui/utils";
|
|
15201
|
+
import { jsx as jsx23, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
15049
15202
|
var EMPTY_FULL_INVOICE_VALUE = {
|
|
15050
15203
|
wantsFullInvoice: false,
|
|
15051
15204
|
billingIdType: "NIF",
|
|
@@ -15162,12 +15315,12 @@ function FullInvoiceFields({
|
|
|
15162
15315
|
const showFields = value.wantsFullInvoice || overCap;
|
|
15163
15316
|
const isSpanishNif = value.billingIdType === "NIF";
|
|
15164
15317
|
const set = (key2, next2) => onChange({ ...value, [key2]: next2 });
|
|
15165
|
-
const error = (key2) => errors[key2] ? /* @__PURE__ */
|
|
15318
|
+
const error = (key2) => errors[key2] ? /* @__PURE__ */ jsx23("p", { id: `full-invoice-${key2}-error`, className: "text-sm text-destructive", children: errors[key2] }) : null;
|
|
15166
15319
|
const invalid2 = (key2) => errors[key2] ? { "aria-invalid": true, "aria-describedby": `full-invoice-${key2}-error` } : {};
|
|
15167
|
-
return /* @__PURE__ */
|
|
15168
|
-
overCap ? /* @__PURE__ */
|
|
15169
|
-
/* @__PURE__ */
|
|
15170
|
-
/* @__PURE__ */
|
|
15320
|
+
return /* @__PURE__ */ jsxs20("section", { className: cn20("space-y-4", className), "data-slot": "full-invoice-fields", children: [
|
|
15321
|
+
overCap ? /* @__PURE__ */ jsx23("p", { role: "note", className: "rounded-lg border border-border p-4 text-sm", children: t.overCapNotice }) : /* @__PURE__ */ jsxs20("div", { className: "space-y-1", children: [
|
|
15322
|
+
/* @__PURE__ */ jsxs20("label", { className: "flex items-center gap-2 text-sm font-medium", children: [
|
|
15323
|
+
/* @__PURE__ */ jsx23(
|
|
15171
15324
|
"input",
|
|
15172
15325
|
{
|
|
15173
15326
|
type: "checkbox",
|
|
@@ -15177,12 +15330,12 @@ function FullInvoiceFields({
|
|
|
15177
15330
|
),
|
|
15178
15331
|
t.toggle
|
|
15179
15332
|
] }),
|
|
15180
|
-
/* @__PURE__ */
|
|
15333
|
+
/* @__PURE__ */ jsx23("p", { className: "text-sm text-muted-foreground", children: t.underCapNotice })
|
|
15181
15334
|
] }),
|
|
15182
|
-
showFields && /* @__PURE__ */
|
|
15183
|
-
/* @__PURE__ */
|
|
15184
|
-
/* @__PURE__ */
|
|
15185
|
-
/* @__PURE__ */
|
|
15335
|
+
showFields && /* @__PURE__ */ jsxs20("div", { className: "grid grid-cols-1 gap-4 sm:grid-cols-2", children: [
|
|
15336
|
+
/* @__PURE__ */ jsxs20("div", { className: "space-y-1", children: [
|
|
15337
|
+
/* @__PURE__ */ jsx23("label", { htmlFor: "full-invoice-id-type", className: "text-sm font-medium", children: t.idType }),
|
|
15338
|
+
/* @__PURE__ */ jsx23(
|
|
15186
15339
|
"select",
|
|
15187
15340
|
{
|
|
15188
15341
|
id: "full-invoice-id-type",
|
|
@@ -15191,14 +15344,14 @@ function FullInvoiceFields({
|
|
|
15191
15344
|
value: value.billingIdType,
|
|
15192
15345
|
onChange: (e) => set("billingIdType", e.target.value),
|
|
15193
15346
|
...invalid2("billingIdType"),
|
|
15194
|
-
children: ID_TYPES.map((type) => /* @__PURE__ */
|
|
15347
|
+
children: ID_TYPES.map((type) => /* @__PURE__ */ jsx23("option", { value: type, children: t.idTypeOptions[type] }, type))
|
|
15195
15348
|
}
|
|
15196
15349
|
),
|
|
15197
15350
|
error("billingIdType")
|
|
15198
15351
|
] }),
|
|
15199
|
-
!isSpanishNif && /* @__PURE__ */
|
|
15200
|
-
/* @__PURE__ */
|
|
15201
|
-
/* @__PURE__ */
|
|
15352
|
+
!isSpanishNif && /* @__PURE__ */ jsxs20("div", { className: "space-y-1", children: [
|
|
15353
|
+
/* @__PURE__ */ jsx23("label", { htmlFor: "full-invoice-id-country", className: "text-sm font-medium", children: t.idCountry }),
|
|
15354
|
+
/* @__PURE__ */ jsxs20(
|
|
15202
15355
|
"select",
|
|
15203
15356
|
{
|
|
15204
15357
|
id: "full-invoice-id-country",
|
|
@@ -15208,16 +15361,16 @@ function FullInvoiceFields({
|
|
|
15208
15361
|
onChange: (e) => set("billingIdCountry", e.target.value),
|
|
15209
15362
|
...invalid2("billingIdCountry"),
|
|
15210
15363
|
children: [
|
|
15211
|
-
/* @__PURE__ */
|
|
15212
|
-
countries.map((c) => /* @__PURE__ */
|
|
15364
|
+
/* @__PURE__ */ jsx23("option", { value: "", disabled: true, children: t.chooseCountry }),
|
|
15365
|
+
countries.map((c) => /* @__PURE__ */ jsx23("option", { value: c.code, children: c.name }, c.code))
|
|
15213
15366
|
]
|
|
15214
15367
|
}
|
|
15215
15368
|
),
|
|
15216
15369
|
error("billingIdCountry")
|
|
15217
15370
|
] }),
|
|
15218
|
-
/* @__PURE__ */
|
|
15219
|
-
/* @__PURE__ */
|
|
15220
|
-
/* @__PURE__ */
|
|
15371
|
+
/* @__PURE__ */ jsxs20("div", { className: "space-y-1", children: [
|
|
15372
|
+
/* @__PURE__ */ jsx23("label", { htmlFor: "full-invoice-nif", className: "text-sm font-medium", children: isSpanishNif ? t.spanishNif : t.documentNumber }),
|
|
15373
|
+
/* @__PURE__ */ jsx23(
|
|
15221
15374
|
"input",
|
|
15222
15375
|
{
|
|
15223
15376
|
id: "full-invoice-nif",
|
|
@@ -15230,9 +15383,9 @@ function FullInvoiceFields({
|
|
|
15230
15383
|
),
|
|
15231
15384
|
error("billingNif")
|
|
15232
15385
|
] }),
|
|
15233
|
-
/* @__PURE__ */
|
|
15234
|
-
/* @__PURE__ */
|
|
15235
|
-
/* @__PURE__ */
|
|
15386
|
+
/* @__PURE__ */ jsxs20("div", { className: "space-y-1", children: [
|
|
15387
|
+
/* @__PURE__ */ jsx23("label", { htmlFor: "full-invoice-name", className: "text-sm font-medium", children: t.name }),
|
|
15388
|
+
/* @__PURE__ */ jsx23(
|
|
15236
15389
|
"input",
|
|
15237
15390
|
{
|
|
15238
15391
|
id: "full-invoice-name",
|
|
@@ -15245,9 +15398,9 @@ function FullInvoiceFields({
|
|
|
15245
15398
|
),
|
|
15246
15399
|
error("billingName")
|
|
15247
15400
|
] }),
|
|
15248
|
-
/* @__PURE__ */
|
|
15249
|
-
/* @__PURE__ */
|
|
15250
|
-
/* @__PURE__ */
|
|
15401
|
+
/* @__PURE__ */ jsxs20("div", { className: "space-y-1 sm:col-span-2", children: [
|
|
15402
|
+
/* @__PURE__ */ jsx23("label", { htmlFor: "full-invoice-street", className: "text-sm font-medium", children: t.street }),
|
|
15403
|
+
/* @__PURE__ */ jsx23(
|
|
15251
15404
|
"input",
|
|
15252
15405
|
{
|
|
15253
15406
|
id: "full-invoice-street",
|
|
@@ -15259,9 +15412,9 @@ function FullInvoiceFields({
|
|
|
15259
15412
|
}
|
|
15260
15413
|
)
|
|
15261
15414
|
] }),
|
|
15262
|
-
/* @__PURE__ */
|
|
15263
|
-
/* @__PURE__ */
|
|
15264
|
-
/* @__PURE__ */
|
|
15415
|
+
/* @__PURE__ */ jsxs20("div", { className: "space-y-1", children: [
|
|
15416
|
+
/* @__PURE__ */ jsx23("label", { htmlFor: "full-invoice-postal-code", className: "text-sm font-medium", children: t.postalCode }),
|
|
15417
|
+
/* @__PURE__ */ jsx23(
|
|
15265
15418
|
"input",
|
|
15266
15419
|
{
|
|
15267
15420
|
id: "full-invoice-postal-code",
|
|
@@ -15272,9 +15425,9 @@ function FullInvoiceFields({
|
|
|
15272
15425
|
}
|
|
15273
15426
|
)
|
|
15274
15427
|
] }),
|
|
15275
|
-
/* @__PURE__ */
|
|
15276
|
-
/* @__PURE__ */
|
|
15277
|
-
/* @__PURE__ */
|
|
15428
|
+
/* @__PURE__ */ jsxs20("div", { className: "space-y-1", children: [
|
|
15429
|
+
/* @__PURE__ */ jsx23("label", { htmlFor: "full-invoice-city", className: "text-sm font-medium", children: t.city }),
|
|
15430
|
+
/* @__PURE__ */ jsx23(
|
|
15278
15431
|
"input",
|
|
15279
15432
|
{
|
|
15280
15433
|
id: "full-invoice-city",
|
|
@@ -15285,9 +15438,9 @@ function FullInvoiceFields({
|
|
|
15285
15438
|
}
|
|
15286
15439
|
)
|
|
15287
15440
|
] }),
|
|
15288
|
-
/* @__PURE__ */
|
|
15289
|
-
/* @__PURE__ */
|
|
15290
|
-
/* @__PURE__ */
|
|
15441
|
+
/* @__PURE__ */ jsxs20("div", { className: "space-y-1", children: [
|
|
15442
|
+
/* @__PURE__ */ jsx23("label", { htmlFor: "full-invoice-country", className: "text-sm font-medium", children: t.country }),
|
|
15443
|
+
/* @__PURE__ */ jsx23(
|
|
15291
15444
|
"select",
|
|
15292
15445
|
{
|
|
15293
15446
|
id: "full-invoice-country",
|
|
@@ -15295,14 +15448,17 @@ function FullInvoiceFields({
|
|
|
15295
15448
|
required: true,
|
|
15296
15449
|
value: value.country,
|
|
15297
15450
|
onChange: (e) => set("country", e.target.value),
|
|
15298
|
-
children: countries.map((c) => /* @__PURE__ */
|
|
15451
|
+
children: countries.map((c) => /* @__PURE__ */ jsx23("option", { value: c.code, children: c.name }, c.code))
|
|
15299
15452
|
}
|
|
15300
15453
|
)
|
|
15301
15454
|
] }),
|
|
15302
|
-
/* @__PURE__ */
|
|
15455
|
+
/* @__PURE__ */ jsx23("div", { className: "sm:col-span-2", children: error("address") })
|
|
15303
15456
|
] })
|
|
15304
15457
|
] });
|
|
15305
15458
|
}
|
|
15459
|
+
|
|
15460
|
+
// src/index.ts
|
|
15461
|
+
import { DATA_REQUEST_TYPES } from "@reblu/site-contracts";
|
|
15306
15462
|
export {
|
|
15307
15463
|
ALLOWED_YOUTUBE_HOSTS,
|
|
15308
15464
|
AddedToCartToast,
|
|
@@ -15312,10 +15468,13 @@ export {
|
|
|
15312
15468
|
CheckoutForm,
|
|
15313
15469
|
CheckoutLoginPrompt,
|
|
15314
15470
|
CourseDescription,
|
|
15471
|
+
DATA_REQUEST_TYPES,
|
|
15315
15472
|
DEFAULT_INVOICE_COUNTRIES,
|
|
15316
15473
|
DEFAULT_SHOP_ERROR_FALLBACK_MESSAGE,
|
|
15317
15474
|
DEFAULT_SHOP_ERROR_MESSAGES,
|
|
15318
15475
|
DEFAULT_SHOP_PRICE_BANDS,
|
|
15476
|
+
DEFAULT_TRUST_BADGE_HEADINGS,
|
|
15477
|
+
DEFAULT_TRUST_BADGE_TYPE_ORDER,
|
|
15319
15478
|
DEFAULT_TRUST_ICONS,
|
|
15320
15479
|
EMPTY_FULL_INVOICE_VALUE,
|
|
15321
15480
|
FaqAccordion,
|
|
@@ -15333,6 +15492,7 @@ export {
|
|
|
15333
15492
|
ShopFilters,
|
|
15334
15493
|
Specialty,
|
|
15335
15494
|
Treatment,
|
|
15495
|
+
TrustBadges,
|
|
15336
15496
|
buildFaqPageJsonLd,
|
|
15337
15497
|
buildShareUrls,
|
|
15338
15498
|
collectFaqItems,
|