@reblu/site-blocks 0.25.0 → 0.27.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 +38 -0
- package/README.md +111 -3
- package/dist/client.cjs +277 -0
- package/dist/client.cjs.map +1 -1
- package/dist/client.d.cts +86 -2
- package/dist/client.d.ts +86 -2
- package/dist/client.js +274 -0
- package/dist/client.js.map +1 -1
- package/dist/index.cjs +397 -334
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +48 -5
- package/dist/index.d.ts +48 -5
- package/dist/index.js +397 -335
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
package/dist/index.js
CHANGED
|
@@ -13473,9 +13473,11 @@ function CourseDescription({
|
|
|
13473
13473
|
}
|
|
13474
13474
|
|
|
13475
13475
|
// src/components/course-purchase-terms.tsx
|
|
13476
|
-
import { jsx as jsx3, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
13476
|
+
import { Fragment as Fragment2, jsx as jsx3, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
13477
13477
|
var DEFAULT_COURSE_PURCHASE_TERMS_LABELS = {
|
|
13478
13478
|
withdrawalWaiver: "El acceso empieza al comprar: al pagar pides el acceso inmediato y renuncias al derecho de desistimiento de 14 d\xEDas.",
|
|
13479
|
+
serviceStartRequest: "Al pagar pides expresamente que la formaci\xF3n empiece dentro del plazo de desistimiento de 14 d\xEDas.",
|
|
13480
|
+
consentText: (text3) => ` Texto de la casilla: \xAB${text3}\xBB`,
|
|
13479
13481
|
accessDuration: (months) => `Acceso durante ${months} ${months === 1 ? "mes" : "meses"} desde la inscripci\xF3n.`,
|
|
13480
13482
|
refundGuarantee: ({ basis, thresholdPercent, windowDays }) => {
|
|
13481
13483
|
const period = windowDays != null ? ` durante ${windowDays} d\xEDas desde el pago` : "";
|
|
@@ -13496,7 +13498,21 @@ function CoursePurchaseTerms({
|
|
|
13496
13498
|
}) {
|
|
13497
13499
|
const text3 = { ...DEFAULT_COURSE_PURCHASE_TERMS_LABELS, ...labels };
|
|
13498
13500
|
const items = [];
|
|
13499
|
-
if (course.
|
|
13501
|
+
if (course.withdrawalConsent !== void 0) {
|
|
13502
|
+
const consent = course.withdrawalConsent;
|
|
13503
|
+
if (consent) {
|
|
13504
|
+
const line = consent.kind === "SERVICE_START_REQUEST" ? text3.serviceStartRequest : text3.withdrawalWaiver;
|
|
13505
|
+
items.push({
|
|
13506
|
+
// The waiver keeps its REB-1199 slot (existing SITE styles target it).
|
|
13507
|
+
key: consent.kind === "SERVICE_START_REQUEST" ? "service-start-request" : "withdrawal-waiver",
|
|
13508
|
+
kind: consent.kind,
|
|
13509
|
+
node: /* @__PURE__ */ jsxs3(Fragment2, { children: [
|
|
13510
|
+
line,
|
|
13511
|
+
text3.consentText(consent.text)
|
|
13512
|
+
] })
|
|
13513
|
+
});
|
|
13514
|
+
}
|
|
13515
|
+
} else if (course.withdrawalWaiverRequired === true) {
|
|
13500
13516
|
items.push({ key: "withdrawal-waiver", node: text3.withdrawalWaiver });
|
|
13501
13517
|
}
|
|
13502
13518
|
if (typeof course.accessDurationMonths === "number") {
|
|
@@ -13507,7 +13523,7 @@ function CoursePurchaseTerms({
|
|
|
13507
13523
|
}
|
|
13508
13524
|
if (items.length === 0) return null;
|
|
13509
13525
|
const hasHeading = heading !== void 0 && heading !== null && heading !== "";
|
|
13510
|
-
const list = /* @__PURE__ */ jsx3("ul", { className: slotClassName("list-disc space-y-1 pl-5", "text-sm text-muted-foreground", listClassName), children: items.map((item) => /* @__PURE__ */ jsx3("li", { "data-slot": `course-purchase-terms-${item.key}`, children: item.node }, item.key)) });
|
|
13526
|
+
const list = /* @__PURE__ */ jsx3("ul", { className: slotClassName("list-disc space-y-1 pl-5", "text-sm text-muted-foreground", listClassName), children: items.map((item) => /* @__PURE__ */ jsx3("li", { "data-slot": `course-purchase-terms-${item.key}`, "data-kind": item.kind, children: item.node }, item.key)) });
|
|
13511
13527
|
const Tag = `h${headingLevel}`;
|
|
13512
13528
|
return /* @__PURE__ */ jsxs3(
|
|
13513
13529
|
"section",
|
|
@@ -13523,8 +13539,53 @@ function CoursePurchaseTerms({
|
|
|
13523
13539
|
);
|
|
13524
13540
|
}
|
|
13525
13541
|
|
|
13526
|
-
// src/components/
|
|
13542
|
+
// src/components/legal-document.tsx
|
|
13527
13543
|
import { jsx as jsx4, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
13544
|
+
function isVisiblyEmpty2(html5) {
|
|
13545
|
+
if (/<(img|iframe|hr)\b/i.test(html5)) return false;
|
|
13546
|
+
return html5.replace(/<[^>]*>/g, "").trim() === "";
|
|
13547
|
+
}
|
|
13548
|
+
function LegalDocument({
|
|
13549
|
+
content,
|
|
13550
|
+
title,
|
|
13551
|
+
fallback,
|
|
13552
|
+
titleId = "legal-document-title",
|
|
13553
|
+
className,
|
|
13554
|
+
titleClassName,
|
|
13555
|
+
contentClassName
|
|
13556
|
+
}) {
|
|
13557
|
+
const html5 = markdownToSafeHtml(typeof content === "string" ? content : null);
|
|
13558
|
+
const isEmpty = !html5 || isVisiblyEmpty2(html5);
|
|
13559
|
+
const hasFallback = fallback !== void 0 && fallback !== null && fallback !== false;
|
|
13560
|
+
if (isEmpty && !hasFallback) return null;
|
|
13561
|
+
const hasTitle = title !== void 0 && title !== null && title !== "";
|
|
13562
|
+
return /* @__PURE__ */ jsxs4(
|
|
13563
|
+
"article",
|
|
13564
|
+
{
|
|
13565
|
+
"data-slot": "legal-document",
|
|
13566
|
+
"aria-labelledby": hasTitle ? titleId : void 0,
|
|
13567
|
+
className: slotClassName("space-y-6", "", className),
|
|
13568
|
+
children: [
|
|
13569
|
+
hasTitle && /* @__PURE__ */ jsx4("h1", { id: titleId, className: slotClassName("", "text-3xl font-bold", titleClassName), children: title }),
|
|
13570
|
+
isEmpty ? fallback : (
|
|
13571
|
+
// `html` is already sanitised by `markdownToSafeHtml` — SafeHtml only maps it.
|
|
13572
|
+
/* @__PURE__ */ jsx4(
|
|
13573
|
+
SafeHtml,
|
|
13574
|
+
{
|
|
13575
|
+
html: html5,
|
|
13576
|
+
headingOffset: hasTitle ? 1 : 0,
|
|
13577
|
+
normalizeHeadings: hasTitle,
|
|
13578
|
+
className: contentClassName
|
|
13579
|
+
}
|
|
13580
|
+
)
|
|
13581
|
+
)
|
|
13582
|
+
]
|
|
13583
|
+
}
|
|
13584
|
+
);
|
|
13585
|
+
}
|
|
13586
|
+
|
|
13587
|
+
// src/components/lesson-preview.tsx
|
|
13588
|
+
import { jsx as jsx5, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
13528
13589
|
var DEFAULT_LESSON_PREVIEW_LABELS = {
|
|
13529
13590
|
badge: "Vista previa gratuita",
|
|
13530
13591
|
player: "V\xEDdeo",
|
|
@@ -13548,7 +13609,7 @@ function clock(seconds) {
|
|
|
13548
13609
|
iso: `PT${h2 > 0 ? `${h2}H` : ""}${m2}M${s2}S`
|
|
13549
13610
|
};
|
|
13550
13611
|
}
|
|
13551
|
-
function
|
|
13612
|
+
function isVisiblyEmpty3(html5) {
|
|
13552
13613
|
if (/<(img|iframe|hr)\b/i.test(html5)) return false;
|
|
13553
13614
|
return html5.replace(/<[^>]*>/g, "").trim() === "";
|
|
13554
13615
|
}
|
|
@@ -13565,17 +13626,17 @@ function LessonPreview({
|
|
|
13565
13626
|
const Tag = `h${headingLevel}`;
|
|
13566
13627
|
const video = lesson.video && isEmbeddable(lesson.video.embedUrl) ? lesson.video : null;
|
|
13567
13628
|
const html5 = markdownToSafeHtml(lesson.content);
|
|
13568
|
-
const hasBody = html5 !== null && html5 !== "" && !
|
|
13629
|
+
const hasBody = html5 !== null && html5 !== "" && !isVisiblyEmpty3(html5);
|
|
13569
13630
|
const duration = typeof lesson.durationSeconds === "number" && lesson.durationSeconds > 0 ? clock(lesson.durationSeconds) : null;
|
|
13570
|
-
return /* @__PURE__ */
|
|
13631
|
+
return /* @__PURE__ */ jsxs5(
|
|
13571
13632
|
"article",
|
|
13572
13633
|
{
|
|
13573
13634
|
"data-slot": "lesson-preview",
|
|
13574
13635
|
"aria-labelledby": headingId,
|
|
13575
13636
|
className: slotClassName("space-y-6", "", className),
|
|
13576
13637
|
children: [
|
|
13577
|
-
/* @__PURE__ */
|
|
13578
|
-
/* @__PURE__ */
|
|
13638
|
+
/* @__PURE__ */ jsxs5("header", { className: "space-y-2", children: [
|
|
13639
|
+
/* @__PURE__ */ jsx5(
|
|
13579
13640
|
"span",
|
|
13580
13641
|
{
|
|
13581
13642
|
"data-slot": "lesson-preview-badge",
|
|
@@ -13583,7 +13644,7 @@ function LessonPreview({
|
|
|
13583
13644
|
children: labels.badge
|
|
13584
13645
|
}
|
|
13585
13646
|
),
|
|
13586
|
-
/* @__PURE__ */
|
|
13647
|
+
/* @__PURE__ */ jsx5(
|
|
13587
13648
|
Tag,
|
|
13588
13649
|
{
|
|
13589
13650
|
id: headingId,
|
|
@@ -13591,12 +13652,12 @@ function LessonPreview({
|
|
|
13591
13652
|
children: lesson.title
|
|
13592
13653
|
}
|
|
13593
13654
|
),
|
|
13594
|
-
duration && /* @__PURE__ */
|
|
13595
|
-
/* @__PURE__ */
|
|
13655
|
+
duration && /* @__PURE__ */ jsxs5("p", { className: "text-sm text-muted-foreground", children: [
|
|
13656
|
+
/* @__PURE__ */ jsxs5("span", { className: "sr-only", children: [
|
|
13596
13657
|
labels.duration,
|
|
13597
13658
|
": "
|
|
13598
13659
|
] }),
|
|
13599
|
-
/* @__PURE__ */
|
|
13660
|
+
/* @__PURE__ */ jsx5(
|
|
13600
13661
|
"time",
|
|
13601
13662
|
{
|
|
13602
13663
|
"data-slot": "lesson-preview-duration",
|
|
@@ -13607,12 +13668,12 @@ function LessonPreview({
|
|
|
13607
13668
|
)
|
|
13608
13669
|
] })
|
|
13609
13670
|
] }),
|
|
13610
|
-
video && /* @__PURE__ */
|
|
13671
|
+
video && /* @__PURE__ */ jsx5(
|
|
13611
13672
|
"div",
|
|
13612
13673
|
{
|
|
13613
13674
|
"data-slot": "lesson-preview-player",
|
|
13614
13675
|
className: "aspect-video w-full overflow-hidden rounded-xl border border-border bg-black",
|
|
13615
|
-
children: /* @__PURE__ */
|
|
13676
|
+
children: /* @__PURE__ */ jsx5(
|
|
13616
13677
|
"iframe",
|
|
13617
13678
|
{
|
|
13618
13679
|
src: video.embedUrl,
|
|
@@ -13626,7 +13687,7 @@ function LessonPreview({
|
|
|
13626
13687
|
)
|
|
13627
13688
|
}
|
|
13628
13689
|
),
|
|
13629
|
-
hasBody && /* @__PURE__ */
|
|
13690
|
+
hasBody && /* @__PURE__ */ jsx5("div", { "data-slot": "lesson-preview-content", children: /* @__PURE__ */ jsx5(
|
|
13630
13691
|
SafeHtml,
|
|
13631
13692
|
{
|
|
13632
13693
|
html: html5,
|
|
@@ -13645,7 +13706,7 @@ import { cn as cn3 } from "@reblu/site-ui/utils";
|
|
|
13645
13706
|
// src/components/_page-parts.tsx
|
|
13646
13707
|
import { cn as cn2 } from "@reblu/site-ui/utils";
|
|
13647
13708
|
import { buttonVariants } from "@reblu/site-ui/button-variants";
|
|
13648
|
-
import { Fragment as
|
|
13709
|
+
import { Fragment as Fragment3, jsx as jsx6, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
13649
13710
|
var KNOWN_BUTTON_VARIANTS = /* @__PURE__ */ new Set([
|
|
13650
13711
|
"default",
|
|
13651
13712
|
"destructive",
|
|
@@ -13658,11 +13719,11 @@ function toButtonVariant(variant) {
|
|
|
13658
13719
|
return variant && KNOWN_BUTTON_VARIANTS.has(variant) ? variant : "default";
|
|
13659
13720
|
}
|
|
13660
13721
|
function PageHero({ page }) {
|
|
13661
|
-
return /* @__PURE__ */
|
|
13662
|
-
page.category && /* @__PURE__ */
|
|
13663
|
-
/* @__PURE__ */
|
|
13664
|
-
page.subtitle && /* @__PURE__ */
|
|
13665
|
-
page.coverImageUrl && /* @__PURE__ */
|
|
13722
|
+
return /* @__PURE__ */ jsxs6("header", { className: "space-y-4", children: [
|
|
13723
|
+
page.category && /* @__PURE__ */ jsx6("span", { className: "inline-flex items-center rounded-full bg-secondary px-3 py-1 text-sm font-medium text-secondary-foreground", children: page.category.name }),
|
|
13724
|
+
/* @__PURE__ */ jsx6("h1", { className: "text-4xl font-bold tracking-tight", children: page.title }),
|
|
13725
|
+
page.subtitle && /* @__PURE__ */ jsx6("p", { className: "text-lg text-muted-foreground", children: page.subtitle }),
|
|
13726
|
+
page.coverImageUrl && /* @__PURE__ */ jsx6("div", { className: "relative aspect-[21/9] w-full overflow-hidden rounded-xl bg-muted", children: /* @__PURE__ */ jsx6(
|
|
13666
13727
|
"img",
|
|
13667
13728
|
{
|
|
13668
13729
|
src: page.coverImageUrl,
|
|
@@ -13676,7 +13737,7 @@ function PageHero({ page }) {
|
|
|
13676
13737
|
function SectionCta({ section }) {
|
|
13677
13738
|
if (!section.ctaLabel || !section.ctaUrl) return null;
|
|
13678
13739
|
const variant = toButtonVariant(section.ctaVariant);
|
|
13679
|
-
return /* @__PURE__ */
|
|
13740
|
+
return /* @__PURE__ */ jsx6("div", { className: "pt-2", children: /* @__PURE__ */ jsx6(
|
|
13680
13741
|
"a",
|
|
13681
13742
|
{
|
|
13682
13743
|
href: section.ctaUrl,
|
|
@@ -13691,46 +13752,46 @@ function SectionCta({ section }) {
|
|
|
13691
13752
|
}
|
|
13692
13753
|
function SectionImages({ section }) {
|
|
13693
13754
|
if (section.images.length === 0) return null;
|
|
13694
|
-
return /* @__PURE__ */
|
|
13695
|
-
/* @__PURE__ */
|
|
13696
|
-
img.caption && /* @__PURE__ */
|
|
13755
|
+
return /* @__PURE__ */ jsx6("div", { className: cn2("grid gap-4", section.images.length > 1 ? "sm:grid-cols-2" : "grid-cols-1"), children: section.images.map((img) => /* @__PURE__ */ jsxs6("figure", { className: "space-y-1", children: [
|
|
13756
|
+
/* @__PURE__ */ jsx6("div", { className: "relative aspect-video w-full overflow-hidden rounded-lg bg-muted", children: /* @__PURE__ */ jsx6("img", { src: img.url, alt: img.alt, loading: "lazy", className: "h-full w-full object-cover" }) }),
|
|
13757
|
+
img.caption && /* @__PURE__ */ jsx6("figcaption", { className: "text-sm text-muted-foreground", children: img.caption })
|
|
13697
13758
|
] }, `${img.url}-${img.order}`)) });
|
|
13698
13759
|
}
|
|
13699
13760
|
function PageSectionBlock({ section }) {
|
|
13700
13761
|
const imageFirst = section.layout === "IMAGE_TEXT";
|
|
13701
13762
|
const sideBySide = section.layout === "TEXT_IMAGE" || section.layout === "IMAGE_TEXT";
|
|
13702
13763
|
const hasImages = section.images.length > 0;
|
|
13703
|
-
const body3 = /* @__PURE__ */
|
|
13704
|
-
section.heading && /* @__PURE__ */
|
|
13705
|
-
/* @__PURE__ */
|
|
13706
|
-
/* @__PURE__ */
|
|
13764
|
+
const body3 = /* @__PURE__ */ jsxs6("div", { className: "space-y-4", children: [
|
|
13765
|
+
section.heading && /* @__PURE__ */ jsx6("h2", { className: "text-2xl font-bold", children: section.heading }),
|
|
13766
|
+
/* @__PURE__ */ jsx6(SafeHtml, { html: sanitizeHtml(section.contentHtml), headingOffset: 2 }),
|
|
13767
|
+
/* @__PURE__ */ jsx6(SectionCta, { section })
|
|
13707
13768
|
] });
|
|
13708
13769
|
if (sideBySide && hasImages) {
|
|
13709
|
-
return /* @__PURE__ */
|
|
13710
|
-
/* @__PURE__ */
|
|
13770
|
+
return /* @__PURE__ */ jsx6("section", { className: "grid items-center gap-8 md:grid-cols-2", children: imageFirst ? /* @__PURE__ */ jsxs6(Fragment3, { children: [
|
|
13771
|
+
/* @__PURE__ */ jsx6(SectionImages, { section }),
|
|
13711
13772
|
body3
|
|
13712
|
-
] }) : /* @__PURE__ */
|
|
13773
|
+
] }) : /* @__PURE__ */ jsxs6(Fragment3, { children: [
|
|
13713
13774
|
body3,
|
|
13714
|
-
/* @__PURE__ */
|
|
13775
|
+
/* @__PURE__ */ jsx6(SectionImages, { section })
|
|
13715
13776
|
] }) });
|
|
13716
13777
|
}
|
|
13717
|
-
return /* @__PURE__ */
|
|
13778
|
+
return /* @__PURE__ */ jsxs6("section", { className: "space-y-4", children: [
|
|
13718
13779
|
body3,
|
|
13719
|
-
/* @__PURE__ */
|
|
13780
|
+
/* @__PURE__ */ jsx6(SectionImages, { section })
|
|
13720
13781
|
] });
|
|
13721
13782
|
}
|
|
13722
13783
|
function PageSectionList({ sections }) {
|
|
13723
13784
|
if (sections.length === 0) return null;
|
|
13724
13785
|
const ordered = sections.slice().sort((a, b2) => a.order - b2.order);
|
|
13725
|
-
return /* @__PURE__ */
|
|
13786
|
+
return /* @__PURE__ */ jsx6("div", { className: "space-y-12", children: ordered.map((section) => /* @__PURE__ */ jsx6(PageSectionBlock, { section }, section.id)) });
|
|
13726
13787
|
}
|
|
13727
13788
|
|
|
13728
13789
|
// src/components/treatment.tsx
|
|
13729
|
-
import { jsx as
|
|
13790
|
+
import { jsx as jsx7, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
13730
13791
|
function Treatment({ page, className }) {
|
|
13731
|
-
return /* @__PURE__ */
|
|
13732
|
-
/* @__PURE__ */
|
|
13733
|
-
/* @__PURE__ */
|
|
13792
|
+
return /* @__PURE__ */ jsxs7("article", { className: cn3("space-y-12", className), "data-slot": "treatment", children: [
|
|
13793
|
+
/* @__PURE__ */ jsx7(PageHero, { page }),
|
|
13794
|
+
/* @__PURE__ */ jsx7(PageSectionList, { sections: page.sections })
|
|
13734
13795
|
] });
|
|
13735
13796
|
}
|
|
13736
13797
|
|
|
@@ -13739,11 +13800,11 @@ import { cn as cn5 } from "@reblu/site-ui/utils";
|
|
|
13739
13800
|
|
|
13740
13801
|
// src/components/page-card-grid.tsx
|
|
13741
13802
|
import { cn as cn4 } from "@reblu/site-ui/utils";
|
|
13742
|
-
import { jsx as
|
|
13803
|
+
import { jsx as jsx8, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
13743
13804
|
var defaultPageHref = (page) => `/${page.slug}`;
|
|
13744
13805
|
var pageKey = (page) => `${page.category?.slug ?? ""}/${page.slug}`;
|
|
13745
13806
|
function PageCardGrid(props) {
|
|
13746
|
-
return /* @__PURE__ */
|
|
13807
|
+
return /* @__PURE__ */ jsx8(PageCardGridSection, { ...props });
|
|
13747
13808
|
}
|
|
13748
13809
|
function PageCardGridSection({
|
|
13749
13810
|
pages,
|
|
@@ -13754,15 +13815,15 @@ function PageCardGridSection({
|
|
|
13754
13815
|
}) {
|
|
13755
13816
|
if (pages.length === 0) return null;
|
|
13756
13817
|
const showHeading = keepEmptyHeading ? heading !== void 0 : !!heading;
|
|
13757
|
-
return /* @__PURE__ */
|
|
13758
|
-
showHeading && /* @__PURE__ */
|
|
13759
|
-
/* @__PURE__ */
|
|
13818
|
+
return /* @__PURE__ */ jsxs8("section", { className: cn4("space-y-6", className), children: [
|
|
13819
|
+
showHeading && /* @__PURE__ */ jsx8("h2", { className: "text-2xl font-bold", children: heading }),
|
|
13820
|
+
/* @__PURE__ */ jsx8("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__ */ jsx8("li", { children: /* @__PURE__ */ jsxs8(
|
|
13760
13821
|
"a",
|
|
13761
13822
|
{
|
|
13762
13823
|
href: pageHref(page),
|
|
13763
13824
|
className: "group flex h-full flex-col overflow-hidden rounded-lg border bg-card transition-shadow hover:shadow-lg",
|
|
13764
13825
|
children: [
|
|
13765
|
-
page.coverImageUrl && /* @__PURE__ */
|
|
13826
|
+
page.coverImageUrl && /* @__PURE__ */ jsx8("div", { className: "relative aspect-video overflow-hidden bg-muted", children: /* @__PURE__ */ jsx8(
|
|
13766
13827
|
"img",
|
|
13767
13828
|
{
|
|
13768
13829
|
src: page.coverImageUrl,
|
|
@@ -13771,9 +13832,9 @@ function PageCardGridSection({
|
|
|
13771
13832
|
className: "h-full w-full object-cover transition-transform group-hover:scale-105"
|
|
13772
13833
|
}
|
|
13773
13834
|
) }),
|
|
13774
|
-
/* @__PURE__ */
|
|
13775
|
-
/* @__PURE__ */
|
|
13776
|
-
page.excerpt && /* @__PURE__ */
|
|
13835
|
+
/* @__PURE__ */ jsxs8("div", { className: "flex flex-1 flex-col gap-2 p-4", children: [
|
|
13836
|
+
/* @__PURE__ */ jsx8("h3", { className: "font-semibold leading-tight transition-colors group-hover:text-primary", children: page.title }),
|
|
13837
|
+
page.excerpt && /* @__PURE__ */ jsx8("p", { className: "line-clamp-2 text-sm text-muted-foreground", children: page.excerpt })
|
|
13777
13838
|
] })
|
|
13778
13839
|
]
|
|
13779
13840
|
}
|
|
@@ -13782,7 +13843,7 @@ function PageCardGridSection({
|
|
|
13782
13843
|
}
|
|
13783
13844
|
|
|
13784
13845
|
// src/components/parent-page.tsx
|
|
13785
|
-
import { jsx as
|
|
13846
|
+
import { jsx as jsx9, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
13786
13847
|
var defaultChildPageHref = (slug) => `/${slug}`;
|
|
13787
13848
|
function ParentPage({
|
|
13788
13849
|
page,
|
|
@@ -13797,10 +13858,10 @@ function ParentPage({
|
|
|
13797
13858
|
const pages = childPages ?? treatments ?? [];
|
|
13798
13859
|
const hrefFor = childPageHref ?? treatmentHref ?? defaultChildPageHref;
|
|
13799
13860
|
const label = childPagesLabel ?? treatmentsLabel ?? "Treatments";
|
|
13800
|
-
return /* @__PURE__ */
|
|
13801
|
-
/* @__PURE__ */
|
|
13802
|
-
/* @__PURE__ */
|
|
13803
|
-
/* @__PURE__ */
|
|
13861
|
+
return /* @__PURE__ */ jsxs9("article", { className: cn5("space-y-12", className), "data-slot": "specialty", children: [
|
|
13862
|
+
/* @__PURE__ */ jsx9(PageHero, { page }),
|
|
13863
|
+
/* @__PURE__ */ jsx9(PageSectionList, { sections: page.sections }),
|
|
13864
|
+
/* @__PURE__ */ jsx9(
|
|
13804
13865
|
PageCardGridSection,
|
|
13805
13866
|
{
|
|
13806
13867
|
pages,
|
|
@@ -13820,7 +13881,7 @@ import { cn as cn7 } from "@reblu/site-ui/utils";
|
|
|
13820
13881
|
|
|
13821
13882
|
// src/components/professional-fields.tsx
|
|
13822
13883
|
import { cn as cn6 } from "@reblu/site-ui/utils";
|
|
13823
|
-
import { jsx as
|
|
13884
|
+
import { jsx as jsx10, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
13824
13885
|
function ProfessionalFields({
|
|
13825
13886
|
fields,
|
|
13826
13887
|
variant = "profile",
|
|
@@ -13828,7 +13889,7 @@ function ProfessionalFields({
|
|
|
13828
13889
|
}) {
|
|
13829
13890
|
const shown = (fields ?? []).filter((f) => variant !== "card" || f.showOnCard);
|
|
13830
13891
|
if (shown.length === 0) return null;
|
|
13831
|
-
return /* @__PURE__ */
|
|
13892
|
+
return /* @__PURE__ */ jsx10(
|
|
13832
13893
|
"dl",
|
|
13833
13894
|
{
|
|
13834
13895
|
className: cn6(
|
|
@@ -13838,13 +13899,13 @@ function ProfessionalFields({
|
|
|
13838
13899
|
),
|
|
13839
13900
|
"data-slot": "professional-fields",
|
|
13840
13901
|
"data-variant": variant,
|
|
13841
|
-
children: shown.map((field, index) => /* @__PURE__ */
|
|
13902
|
+
children: shown.map((field, index) => /* @__PURE__ */ jsxs10(
|
|
13842
13903
|
"div",
|
|
13843
13904
|
{
|
|
13844
13905
|
className: variant === "card" ? "flex justify-center gap-1" : "contents",
|
|
13845
13906
|
children: [
|
|
13846
|
-
/* @__PURE__ */
|
|
13847
|
-
/* @__PURE__ */
|
|
13907
|
+
/* @__PURE__ */ jsx10("dt", { className: "text-muted-foreground", children: field.label }),
|
|
13908
|
+
/* @__PURE__ */ jsx10("dd", { className: "m-0 font-medium", children: field.value })
|
|
13848
13909
|
]
|
|
13849
13910
|
},
|
|
13850
13911
|
`${field.label}-${index}`
|
|
@@ -13854,7 +13915,7 @@ function ProfessionalFields({
|
|
|
13854
13915
|
}
|
|
13855
13916
|
|
|
13856
13917
|
// src/components/profile-card.tsx
|
|
13857
|
-
import { jsx as
|
|
13918
|
+
import { jsx as jsx11, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
13858
13919
|
function initials(name) {
|
|
13859
13920
|
return name.split(/\s+/).filter(Boolean).slice(0, 2).map((part) => part[0]?.toUpperCase() ?? "").join("");
|
|
13860
13921
|
}
|
|
@@ -13869,7 +13930,7 @@ function ProfileCard({
|
|
|
13869
13930
|
className
|
|
13870
13931
|
}) {
|
|
13871
13932
|
const NameTag = href ? "a" : "span";
|
|
13872
|
-
return /* @__PURE__ */
|
|
13933
|
+
return /* @__PURE__ */ jsxs11(
|
|
13873
13934
|
"article",
|
|
13874
13935
|
{
|
|
13875
13936
|
className: cn7(
|
|
@@ -13878,7 +13939,7 @@ function ProfileCard({
|
|
|
13878
13939
|
),
|
|
13879
13940
|
"data-slot": "profile-card",
|
|
13880
13941
|
children: [
|
|
13881
|
-
/* @__PURE__ */
|
|
13942
|
+
/* @__PURE__ */ jsx11("div", { className: "relative h-24 w-24 overflow-hidden rounded-full bg-muted", children: imageUrl ? /* @__PURE__ */ jsx11("img", { src: imageUrl, alt: name, loading: "lazy", className: "h-full w-full object-cover" }) : /* @__PURE__ */ jsx11(
|
|
13882
13943
|
"span",
|
|
13883
13944
|
{
|
|
13884
13945
|
className: "flex h-full w-full items-center justify-center text-2xl font-semibold text-muted-foreground",
|
|
@@ -13886,12 +13947,12 @@ function ProfileCard({
|
|
|
13886
13947
|
children: initials(name)
|
|
13887
13948
|
}
|
|
13888
13949
|
) }),
|
|
13889
|
-
/* @__PURE__ */
|
|
13890
|
-
/* @__PURE__ */
|
|
13891
|
-
role && /* @__PURE__ */
|
|
13950
|
+
/* @__PURE__ */ jsxs11("div", { className: "space-y-1", children: [
|
|
13951
|
+
/* @__PURE__ */ jsx11("h3", { className: "text-lg font-semibold leading-tight", children: /* @__PURE__ */ jsx11(NameTag, { ...href ? { href, className: "transition-colors hover:text-primary" } : {}, children: name }) }),
|
|
13952
|
+
role && /* @__PURE__ */ jsx11("p", { className: "text-sm text-muted-foreground", children: role })
|
|
13892
13953
|
] }),
|
|
13893
|
-
/* @__PURE__ */
|
|
13894
|
-
specialties.length > 0 && /* @__PURE__ */
|
|
13954
|
+
/* @__PURE__ */ jsx11(ProfessionalFields, { fields, variant: "card" }),
|
|
13955
|
+
specialties.length > 0 && /* @__PURE__ */ jsx11("ul", { className: "flex flex-wrap justify-center gap-1.5 p-0", children: specialties.map((s2) => /* @__PURE__ */ jsx11(
|
|
13895
13956
|
"li",
|
|
13896
13957
|
{
|
|
13897
13958
|
className: "inline-flex items-center rounded-full bg-secondary px-2.5 py-0.5 text-xs font-medium text-secondary-foreground",
|
|
@@ -13899,7 +13960,7 @@ function ProfileCard({
|
|
|
13899
13960
|
},
|
|
13900
13961
|
s2
|
|
13901
13962
|
)) }),
|
|
13902
|
-
bio && /* @__PURE__ */
|
|
13963
|
+
bio && /* @__PURE__ */ jsx11("p", { className: "text-sm text-muted-foreground", children: bio })
|
|
13903
13964
|
]
|
|
13904
13965
|
}
|
|
13905
13966
|
);
|
|
@@ -13907,11 +13968,11 @@ function ProfileCard({
|
|
|
13907
13968
|
|
|
13908
13969
|
// src/components/product-card.tsx
|
|
13909
13970
|
import { cn as cn8 } from "@reblu/site-ui/utils";
|
|
13910
|
-
import { jsx as
|
|
13971
|
+
import { jsx as jsx12, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
13911
13972
|
function ProductCard({ product, href, currencyCode = "EUR", locale, className }) {
|
|
13912
13973
|
const image = product.images.find((i) => i.isPrimary) ?? product.images[0];
|
|
13913
13974
|
const hasDiscount = product.comparePrice != null && product.comparePrice > product.price;
|
|
13914
|
-
return /* @__PURE__ */
|
|
13975
|
+
return /* @__PURE__ */ jsxs12(
|
|
13915
13976
|
"article",
|
|
13916
13977
|
{
|
|
13917
13978
|
className: cn8(
|
|
@@ -13920,7 +13981,7 @@ function ProductCard({ product, href, currencyCode = "EUR", locale, className })
|
|
|
13920
13981
|
),
|
|
13921
13982
|
"data-slot": "product-card",
|
|
13922
13983
|
children: [
|
|
13923
|
-
/* @__PURE__ */
|
|
13984
|
+
/* @__PURE__ */ jsx12("div", { className: "relative aspect-square overflow-hidden bg-muted", children: image ? /* @__PURE__ */ jsx12(
|
|
13924
13985
|
"img",
|
|
13925
13986
|
{
|
|
13926
13987
|
src: image.url,
|
|
@@ -13928,14 +13989,14 @@ function ProductCard({ product, href, currencyCode = "EUR", locale, className })
|
|
|
13928
13989
|
loading: "lazy",
|
|
13929
13990
|
className: "h-full w-full object-cover transition-transform group-hover:scale-105"
|
|
13930
13991
|
}
|
|
13931
|
-
) : /* @__PURE__ */
|
|
13932
|
-
/* @__PURE__ */
|
|
13933
|
-
product.category && /* @__PURE__ */
|
|
13934
|
-
/* @__PURE__ */
|
|
13935
|
-
product.shortDescription && /* @__PURE__ */
|
|
13936
|
-
/* @__PURE__ */
|
|
13937
|
-
/* @__PURE__ */
|
|
13938
|
-
hasDiscount && /* @__PURE__ */
|
|
13992
|
+
) : /* @__PURE__ */ jsx12("div", { className: "flex h-full items-center justify-center text-4xl text-muted-foreground/30", "aria-hidden": "true", children: "\u{1F6CD}\uFE0F" }) }),
|
|
13993
|
+
/* @__PURE__ */ jsxs12("div", { className: "flex flex-1 flex-col gap-2 p-4", children: [
|
|
13994
|
+
product.category && /* @__PURE__ */ jsx12("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 }),
|
|
13995
|
+
/* @__PURE__ */ jsx12("h3", { className: "text-base font-semibold leading-tight", children: href ? /* @__PURE__ */ jsx12("a", { href, className: "transition-colors hover:text-primary", children: product.name }) : product.name }),
|
|
13996
|
+
product.shortDescription && /* @__PURE__ */ jsx12("p", { className: "line-clamp-2 text-sm text-muted-foreground", children: product.shortDescription }),
|
|
13997
|
+
/* @__PURE__ */ jsxs12("div", { className: "mt-auto flex items-baseline gap-2 pt-2", children: [
|
|
13998
|
+
/* @__PURE__ */ jsx12("span", { className: "text-lg font-bold text-foreground", children: formatPrice(product.price, currencyCode, locale) }),
|
|
13999
|
+
hasDiscount && /* @__PURE__ */ jsx12("span", { className: "text-sm text-muted-foreground line-through", children: formatPrice(product.comparePrice, currencyCode, locale) })
|
|
13939
14000
|
] })
|
|
13940
14001
|
] })
|
|
13941
14002
|
]
|
|
@@ -14137,7 +14198,7 @@ var __iconNode8 = [
|
|
|
14137
14198
|
var Truck = createLucideIcon("truck", __iconNode8);
|
|
14138
14199
|
|
|
14139
14200
|
// src/components/product-trust-items.tsx
|
|
14140
|
-
import { jsx as
|
|
14201
|
+
import { jsx as jsx13, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
14141
14202
|
var DEFAULT_TRUST_ICONS = Object.freeze({
|
|
14142
14203
|
shipping: Truck,
|
|
14143
14204
|
returns: RotateCcw,
|
|
@@ -14171,9 +14232,9 @@ function ProductTrustItems({
|
|
|
14171
14232
|
return [{ key: `${index}-${icon}`, Icon: Icon2, text: text3 }];
|
|
14172
14233
|
});
|
|
14173
14234
|
if (rows.length === 0) return null;
|
|
14174
|
-
return /* @__PURE__ */
|
|
14175
|
-
/* @__PURE__ */
|
|
14176
|
-
/* @__PURE__ */
|
|
14235
|
+
return /* @__PURE__ */ jsx13(List, { "data-slot": "product-trust-items", className: slotClassName("space-y-2.5", "", className), children: rows.map(({ key: key2, Icon: Icon2, text: text3 }) => /* @__PURE__ */ jsxs13("li", { className: slotClassName("flex items-center gap-3", "text-sm text-muted-foreground", itemClassName), children: [
|
|
14236
|
+
/* @__PURE__ */ jsx13(Icon2, { "aria-hidden": "true", className: "h-4 w-4 shrink-0 text-foreground/60" }),
|
|
14237
|
+
/* @__PURE__ */ jsx13("span", { children: text3 })
|
|
14177
14238
|
] }, key2)) });
|
|
14178
14239
|
}
|
|
14179
14240
|
|
|
@@ -14181,7 +14242,7 @@ function ProductTrustItems({
|
|
|
14181
14242
|
import { cn as cn9 } from "@reblu/site-ui/utils";
|
|
14182
14243
|
|
|
14183
14244
|
// src/components/_heading.tsx
|
|
14184
|
-
import { jsx as
|
|
14245
|
+
import { jsx as jsx14 } from "react/jsx-runtime";
|
|
14185
14246
|
function nextHeadingLevel(level) {
|
|
14186
14247
|
return Math.min(level + 1, 6);
|
|
14187
14248
|
}
|
|
@@ -14191,11 +14252,11 @@ function Heading({
|
|
|
14191
14252
|
children: children2
|
|
14192
14253
|
}) {
|
|
14193
14254
|
const Tag = `h${level}`;
|
|
14194
|
-
return /* @__PURE__ */
|
|
14255
|
+
return /* @__PURE__ */ jsx14(Tag, { className, children: children2 });
|
|
14195
14256
|
}
|
|
14196
14257
|
|
|
14197
14258
|
// src/components/faq-accordion.tsx
|
|
14198
|
-
import { jsx as
|
|
14259
|
+
import { jsx as jsx15, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
14199
14260
|
function FaqAccordion({
|
|
14200
14261
|
items,
|
|
14201
14262
|
heading,
|
|
@@ -14206,18 +14267,18 @@ function FaqAccordion({
|
|
|
14206
14267
|
}) {
|
|
14207
14268
|
const visible = items.map((item, index) => ({ item, index })).filter(({ item }) => item.q.trim() !== "");
|
|
14208
14269
|
if (visible.length === 0) return null;
|
|
14209
|
-
return /* @__PURE__ */
|
|
14210
|
-
heading && /* @__PURE__ */
|
|
14211
|
-
/* @__PURE__ */
|
|
14270
|
+
return /* @__PURE__ */ jsxs14("div", { className: cn9("space-y-4", className), "data-slot": "faq-accordion", children: [
|
|
14271
|
+
heading && /* @__PURE__ */ jsx15(Heading, { level: headingLevel, className: "text-2xl font-semibold tracking-tight", children: heading }),
|
|
14272
|
+
/* @__PURE__ */ jsx15("div", { className: "divide-y divide-border rounded-xl border border-border", children: visible.map(({ item, index }) => /* @__PURE__ */ jsxs14(
|
|
14212
14273
|
"details",
|
|
14213
14274
|
{
|
|
14214
14275
|
className: "group px-4",
|
|
14215
14276
|
"data-slot": "faq-item",
|
|
14216
14277
|
...defaultOpen.includes(index) ? { open: true } : {},
|
|
14217
14278
|
children: [
|
|
14218
|
-
/* @__PURE__ */
|
|
14219
|
-
questionHeadingLevel ? /* @__PURE__ */
|
|
14220
|
-
/* @__PURE__ */
|
|
14279
|
+
/* @__PURE__ */ jsxs14("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: [
|
|
14280
|
+
questionHeadingLevel ? /* @__PURE__ */ jsx15(Heading, { level: questionHeadingLevel, className: "text-base font-medium", children: item.q }) : /* @__PURE__ */ jsx15("span", { children: item.q }),
|
|
14281
|
+
/* @__PURE__ */ jsx15(
|
|
14221
14282
|
"span",
|
|
14222
14283
|
{
|
|
14223
14284
|
"aria-hidden": "true",
|
|
@@ -14226,7 +14287,7 @@ function FaqAccordion({
|
|
|
14226
14287
|
}
|
|
14227
14288
|
)
|
|
14228
14289
|
] }),
|
|
14229
|
-
/* @__PURE__ */
|
|
14290
|
+
/* @__PURE__ */ jsx15("p", { className: "whitespace-pre-line pb-4 text-muted-foreground", children: item.a })
|
|
14230
14291
|
]
|
|
14231
14292
|
},
|
|
14232
14293
|
index
|
|
@@ -14236,7 +14297,7 @@ function FaqAccordion({
|
|
|
14236
14297
|
|
|
14237
14298
|
// src/components/trust-badges.tsx
|
|
14238
14299
|
import { cn as cn10 } from "@reblu/site-ui/utils";
|
|
14239
|
-
import { jsx as
|
|
14300
|
+
import { jsx as jsx16, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
14240
14301
|
var DEFAULT_TRUST_BADGE_HEADINGS = Object.freeze(
|
|
14241
14302
|
{
|
|
14242
14303
|
PARTNER: "Colaboradores",
|
|
@@ -14278,7 +14339,7 @@ function BadgeContent({ badge, logoClassName }) {
|
|
|
14278
14339
|
if (src) {
|
|
14279
14340
|
return (
|
|
14280
14341
|
// eslint-disable-next-line @next/next/no-img-element -- framework-agnostic SDK; the SITE owns image optimisation
|
|
14281
|
-
/* @__PURE__ */
|
|
14342
|
+
/* @__PURE__ */ jsx16(
|
|
14282
14343
|
"img",
|
|
14283
14344
|
{
|
|
14284
14345
|
src,
|
|
@@ -14289,7 +14350,7 @@ function BadgeContent({ badge, logoClassName }) {
|
|
|
14289
14350
|
)
|
|
14290
14351
|
);
|
|
14291
14352
|
}
|
|
14292
|
-
return /* @__PURE__ */
|
|
14353
|
+
return /* @__PURE__ */ jsx16("span", { className: "text-sm font-medium", children: badge.name });
|
|
14293
14354
|
}
|
|
14294
14355
|
function TrustBadges({
|
|
14295
14356
|
badges,
|
|
@@ -14317,14 +14378,14 @@ function TrustBadges({
|
|
|
14317
14378
|
if (groups.length === 0) return null;
|
|
14318
14379
|
const hasHeading = heading !== void 0 && heading !== null && heading !== "";
|
|
14319
14380
|
const groupHeadingLevel = hasHeading ? nextHeadingLevel(headingLevel) : headingLevel;
|
|
14320
|
-
const content = groups.map(({ type, groupHeading, items }) => /* @__PURE__ */
|
|
14381
|
+
const content = groups.map(({ type, groupHeading, items }) => /* @__PURE__ */ jsxs15(
|
|
14321
14382
|
"div",
|
|
14322
14383
|
{
|
|
14323
14384
|
"data-slot": "trust-badge-group",
|
|
14324
14385
|
"data-type": type,
|
|
14325
14386
|
className: cn10("space-y-3", groupClassName),
|
|
14326
14387
|
children: [
|
|
14327
|
-
groupHeading ? /* @__PURE__ */
|
|
14388
|
+
groupHeading ? /* @__PURE__ */ jsx16(
|
|
14328
14389
|
Heading,
|
|
14329
14390
|
{
|
|
14330
14391
|
level: groupHeadingLevel,
|
|
@@ -14336,30 +14397,30 @@ function TrustBadges({
|
|
|
14336
14397
|
children: groupHeading
|
|
14337
14398
|
}
|
|
14338
14399
|
) : null,
|
|
14339
|
-
/* @__PURE__ */
|
|
14400
|
+
/* @__PURE__ */ jsx16("ul", { className: cn10("flex flex-wrap items-center gap-6", listClassName), children: items.map((badge) => {
|
|
14340
14401
|
const href = safeHref(badge.url);
|
|
14341
|
-
return /* @__PURE__ */
|
|
14342
|
-
/* @__PURE__ */
|
|
14402
|
+
return /* @__PURE__ */ jsx16("li", { children: href ? /* @__PURE__ */ jsxs15("a", { href, target: "_blank", rel: "noopener noreferrer", className: "inline-flex", children: [
|
|
14403
|
+
/* @__PURE__ */ jsx16(BadgeContent, { badge, logoClassName }),
|
|
14343
14404
|
" ",
|
|
14344
|
-
/* @__PURE__ */
|
|
14345
|
-
] }) : /* @__PURE__ */
|
|
14405
|
+
/* @__PURE__ */ jsx16("span", { className: "sr-only", children: newWindowLabel })
|
|
14406
|
+
] }) : /* @__PURE__ */ jsx16(BadgeContent, { badge, logoClassName }) }, badge.id);
|
|
14346
14407
|
}) })
|
|
14347
14408
|
]
|
|
14348
14409
|
},
|
|
14349
14410
|
type
|
|
14350
14411
|
));
|
|
14351
14412
|
if (!hasHeading) {
|
|
14352
|
-
return /* @__PURE__ */
|
|
14413
|
+
return /* @__PURE__ */ jsx16("div", { "data-slot": "trust-badges", className: cn10("space-y-6", className), children: content });
|
|
14353
14414
|
}
|
|
14354
14415
|
const Tag = `h${headingLevel}`;
|
|
14355
|
-
return /* @__PURE__ */
|
|
14416
|
+
return /* @__PURE__ */ jsxs15(
|
|
14356
14417
|
"section",
|
|
14357
14418
|
{
|
|
14358
14419
|
"data-slot": "trust-badges",
|
|
14359
14420
|
"aria-labelledby": headingId,
|
|
14360
14421
|
className: cn10("space-y-6", className),
|
|
14361
14422
|
children: [
|
|
14362
|
-
/* @__PURE__ */
|
|
14423
|
+
/* @__PURE__ */ jsx16(
|
|
14363
14424
|
Tag,
|
|
14364
14425
|
{
|
|
14365
14426
|
id: headingId,
|
|
@@ -14376,38 +14437,38 @@ function TrustBadges({
|
|
|
14376
14437
|
// src/components/page-blocks.tsx
|
|
14377
14438
|
import { cn as cn11 } from "@reblu/site-ui/utils";
|
|
14378
14439
|
import { buttonVariants as buttonVariants2 } from "@reblu/site-ui/button-variants";
|
|
14379
|
-
import { jsx as
|
|
14440
|
+
import { jsx as jsx17, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
14380
14441
|
var ALIASES = {
|
|
14381
14442
|
doctor_embed: "profile_embed",
|
|
14382
14443
|
specialty_embed: "page_embed"
|
|
14383
14444
|
};
|
|
14384
14445
|
function HeroBlock({ block, headingLevel }) {
|
|
14385
14446
|
const { title, subtitle, imageUrl } = block.data;
|
|
14386
|
-
return /* @__PURE__ */
|
|
14387
|
-
/* @__PURE__ */
|
|
14388
|
-
subtitle && /* @__PURE__ */
|
|
14389
|
-
imageUrl && /* @__PURE__ */
|
|
14447
|
+
return /* @__PURE__ */ jsxs16("div", { className: "space-y-4", children: [
|
|
14448
|
+
/* @__PURE__ */ jsx17(Heading, { level: headingLevel, className: "text-3xl font-bold tracking-tight md:text-4xl", children: title }),
|
|
14449
|
+
subtitle && /* @__PURE__ */ jsx17("p", { className: "text-lg opacity-80", children: subtitle }),
|
|
14450
|
+
imageUrl && /* @__PURE__ */ jsx17("div", { className: "relative aspect-[21/9] w-full overflow-hidden rounded-xl bg-muted", children: /* @__PURE__ */ jsx17("img", { src: imageUrl, alt: "", loading: "lazy", className: "h-full w-full object-cover" }) })
|
|
14390
14451
|
] });
|
|
14391
14452
|
}
|
|
14392
14453
|
function RichtextBlock({ block, headingLevel }) {
|
|
14393
|
-
return /* @__PURE__ */
|
|
14454
|
+
return /* @__PURE__ */ jsx17(SafeHtml, { html: sanitizeHtml(block.data.html), headingOffset: headingLevel - 1 });
|
|
14394
14455
|
}
|
|
14395
14456
|
function FaqBlock({ block }) {
|
|
14396
|
-
return /* @__PURE__ */
|
|
14457
|
+
return /* @__PURE__ */ jsx17(FaqAccordion, { items: block.data.items });
|
|
14397
14458
|
}
|
|
14398
14459
|
function StatsBlock({ block }) {
|
|
14399
|
-
return /* @__PURE__ */
|
|
14400
|
-
/* @__PURE__ */
|
|
14401
|
-
/* @__PURE__ */
|
|
14460
|
+
return /* @__PURE__ */ jsx17("dl", { className: "grid gap-6 sm:grid-cols-2 lg:grid-cols-4", children: block.data.items.map((item, i) => /* @__PURE__ */ jsxs16("div", { className: "flex flex-col-reverse gap-1", children: [
|
|
14461
|
+
/* @__PURE__ */ jsx17("dt", { className: "text-sm opacity-80", children: item.label }),
|
|
14462
|
+
/* @__PURE__ */ jsx17("dd", { className: "text-3xl font-bold", children: item.value })
|
|
14402
14463
|
] }, i)) });
|
|
14403
14464
|
}
|
|
14404
14465
|
function TestimonialBlock({ block }) {
|
|
14405
14466
|
const { quote, author, role, avatarUrl } = block.data;
|
|
14406
|
-
return /* @__PURE__ */
|
|
14407
|
-
/* @__PURE__ */
|
|
14408
|
-
/* @__PURE__ */
|
|
14467
|
+
return /* @__PURE__ */ jsxs16("figure", { className: "space-y-4", children: [
|
|
14468
|
+
/* @__PURE__ */ jsx17("blockquote", { className: "text-xl italic", children: /* @__PURE__ */ jsx17("p", { children: quote }) }),
|
|
14469
|
+
/* @__PURE__ */ jsxs16("figcaption", { className: "flex items-center gap-3", children: [
|
|
14409
14470
|
avatarUrl && // eslint-disable-next-line @next/next/no-img-element
|
|
14410
|
-
/* @__PURE__ */
|
|
14471
|
+
/* @__PURE__ */ jsx17(
|
|
14411
14472
|
"img",
|
|
14412
14473
|
{
|
|
14413
14474
|
src: avatarUrl,
|
|
@@ -14416,9 +14477,9 @@ function TestimonialBlock({ block }) {
|
|
|
14416
14477
|
className: "h-10 w-10 rounded-full object-cover"
|
|
14417
14478
|
}
|
|
14418
14479
|
),
|
|
14419
|
-
/* @__PURE__ */
|
|
14420
|
-
/* @__PURE__ */
|
|
14421
|
-
role && /* @__PURE__ */
|
|
14480
|
+
/* @__PURE__ */ jsxs16("span", { children: [
|
|
14481
|
+
/* @__PURE__ */ jsx17("span", { className: "font-semibold", children: author }),
|
|
14482
|
+
role && /* @__PURE__ */ jsx17("span", { className: "block text-sm opacity-80", children: role })
|
|
14422
14483
|
] })
|
|
14423
14484
|
] })
|
|
14424
14485
|
] });
|
|
@@ -14427,19 +14488,19 @@ function CtaSlotBlock(_props) {
|
|
|
14427
14488
|
return null;
|
|
14428
14489
|
}
|
|
14429
14490
|
function FeatureListBlock({ block }) {
|
|
14430
|
-
return /* @__PURE__ */
|
|
14491
|
+
return /* @__PURE__ */ jsx17("ul", { className: "grid list-disc gap-2 pl-5 sm:grid-cols-2", children: block.data.items.map((item, i) => /* @__PURE__ */ jsx17("li", { children: item.text }, i)) });
|
|
14431
14492
|
}
|
|
14432
14493
|
function GalleryBlock({ block }) {
|
|
14433
14494
|
const { images } = block.data;
|
|
14434
|
-
return /* @__PURE__ */
|
|
14495
|
+
return /* @__PURE__ */ jsx17(
|
|
14435
14496
|
"div",
|
|
14436
14497
|
{
|
|
14437
14498
|
className: cn11(
|
|
14438
14499
|
"grid gap-4",
|
|
14439
14500
|
images.length > 1 ? "sm:grid-cols-2 lg:grid-cols-3" : "grid-cols-1"
|
|
14440
14501
|
),
|
|
14441
|
-
children: images.map((img, i) => /* @__PURE__ */
|
|
14442
|
-
/* @__PURE__ */
|
|
14502
|
+
children: images.map((img, i) => /* @__PURE__ */ jsxs16("figure", { className: "space-y-1", children: [
|
|
14503
|
+
/* @__PURE__ */ jsx17("div", { className: "relative aspect-video w-full overflow-hidden rounded-lg bg-muted", children: /* @__PURE__ */ jsx17(
|
|
14443
14504
|
"img",
|
|
14444
14505
|
{
|
|
14445
14506
|
src: img.url,
|
|
@@ -14448,7 +14509,7 @@ function GalleryBlock({ block }) {
|
|
|
14448
14509
|
className: "h-full w-full object-cover"
|
|
14449
14510
|
}
|
|
14450
14511
|
) }),
|
|
14451
|
-
img.caption && /* @__PURE__ */
|
|
14512
|
+
img.caption && /* @__PURE__ */ jsx17("figcaption", { className: "text-sm opacity-80", children: img.caption })
|
|
14452
14513
|
] }, `${img.url}-${i}`))
|
|
14453
14514
|
}
|
|
14454
14515
|
);
|
|
@@ -14458,13 +14519,13 @@ function EmbedCard({
|
|
|
14458
14519
|
headingLevel,
|
|
14459
14520
|
embedHref
|
|
14460
14521
|
}) {
|
|
14461
|
-
return /* @__PURE__ */
|
|
14522
|
+
return /* @__PURE__ */ jsxs16(
|
|
14462
14523
|
"a",
|
|
14463
14524
|
{
|
|
14464
14525
|
href: embedHref(resolved),
|
|
14465
14526
|
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",
|
|
14466
14527
|
children: [
|
|
14467
|
-
resolved.coverImageUrl && /* @__PURE__ */
|
|
14528
|
+
resolved.coverImageUrl && /* @__PURE__ */ jsx17("div", { className: "aspect-video w-full overflow-hidden bg-muted", children: /* @__PURE__ */ jsx17(
|
|
14468
14529
|
"img",
|
|
14469
14530
|
{
|
|
14470
14531
|
src: resolved.coverImageUrl,
|
|
@@ -14473,24 +14534,24 @@ function EmbedCard({
|
|
|
14473
14534
|
className: "h-full w-full object-cover"
|
|
14474
14535
|
}
|
|
14475
14536
|
) }),
|
|
14476
|
-
/* @__PURE__ */
|
|
14477
|
-
/* @__PURE__ */
|
|
14478
|
-
resolved.role && /* @__PURE__ */
|
|
14479
|
-
resolved.excerpt && /* @__PURE__ */
|
|
14537
|
+
/* @__PURE__ */ jsxs16("div", { className: "space-y-1 p-4", children: [
|
|
14538
|
+
/* @__PURE__ */ jsx17(Heading, { level: headingLevel, className: "text-lg font-semibold", children: resolved.title }),
|
|
14539
|
+
resolved.role && /* @__PURE__ */ jsx17("p", { className: "text-sm text-muted-foreground", children: resolved.role }),
|
|
14540
|
+
resolved.excerpt && /* @__PURE__ */ jsx17("p", { className: "text-muted-foreground", children: resolved.excerpt })
|
|
14480
14541
|
] })
|
|
14481
14542
|
]
|
|
14482
14543
|
}
|
|
14483
14544
|
);
|
|
14484
14545
|
}
|
|
14485
14546
|
function PageEmbedBlock({ block, headingLevel, embedHref }) {
|
|
14486
|
-
return /* @__PURE__ */
|
|
14547
|
+
return /* @__PURE__ */ jsx17(EmbedCard, { resolved: block.resolved, headingLevel, embedHref });
|
|
14487
14548
|
}
|
|
14488
14549
|
function ProfileEmbedBlock({
|
|
14489
14550
|
block,
|
|
14490
14551
|
headingLevel,
|
|
14491
14552
|
embedHref
|
|
14492
14553
|
}) {
|
|
14493
|
-
return /* @__PURE__ */
|
|
14554
|
+
return /* @__PURE__ */ jsx17(EmbedCard, { resolved: block.resolved, headingLevel, embedHref });
|
|
14494
14555
|
}
|
|
14495
14556
|
var DEFAULT_RENDERERS = {
|
|
14496
14557
|
hero: HeroBlock,
|
|
@@ -14547,7 +14608,7 @@ function toIdFragment(value) {
|
|
|
14547
14608
|
function SectionCta2({ cta }) {
|
|
14548
14609
|
if (!hasUsableCta(cta)) return null;
|
|
14549
14610
|
const variant = toButtonVariant(cta.variant);
|
|
14550
|
-
return /* @__PURE__ */
|
|
14611
|
+
return /* @__PURE__ */ jsx17("div", { className: "pt-2", children: /* @__PURE__ */ jsx17(
|
|
14551
14612
|
"a",
|
|
14552
14613
|
{
|
|
14553
14614
|
href: cta.url,
|
|
@@ -14580,7 +14641,7 @@ function PageBlocks({
|
|
|
14580
14641
|
const headingId = block.heading ? `${safePrefix}-${toIdFragment(block.id)}-heading` : void 0;
|
|
14581
14642
|
const background = block.backgroundColor;
|
|
14582
14643
|
return [
|
|
14583
|
-
/* @__PURE__ */
|
|
14644
|
+
/* @__PURE__ */ jsxs16(
|
|
14584
14645
|
"section",
|
|
14585
14646
|
{
|
|
14586
14647
|
"data-slot": "page-block",
|
|
@@ -14589,8 +14650,8 @@ function PageBlocks({
|
|
|
14589
14650
|
style: surfaceStyle(background),
|
|
14590
14651
|
className: cn11("space-y-6", background && "rounded-xl px-6 py-10", sectionClassName),
|
|
14591
14652
|
children: [
|
|
14592
|
-
block.heading && /* @__PURE__ */
|
|
14593
|
-
/* @__PURE__ */
|
|
14653
|
+
block.heading && /* @__PURE__ */ jsx17(Heading, { level: headingLevel, className: "text-2xl font-bold tracking-tight", children: /* @__PURE__ */ jsx17("span", { id: headingId, children: block.heading }) }),
|
|
14654
|
+
/* @__PURE__ */ jsx17(
|
|
14594
14655
|
Renderer,
|
|
14595
14656
|
{
|
|
14596
14657
|
block,
|
|
@@ -14598,7 +14659,7 @@ function PageBlocks({
|
|
|
14598
14659
|
embedHref
|
|
14599
14660
|
}
|
|
14600
14661
|
),
|
|
14601
|
-
/* @__PURE__ */
|
|
14662
|
+
/* @__PURE__ */ jsx17(SectionCta2, { cta: block.cta })
|
|
14602
14663
|
]
|
|
14603
14664
|
},
|
|
14604
14665
|
block.id
|
|
@@ -14606,12 +14667,12 @@ function PageBlocks({
|
|
|
14606
14667
|
];
|
|
14607
14668
|
});
|
|
14608
14669
|
if (sections.length === 0) return null;
|
|
14609
|
-
return /* @__PURE__ */
|
|
14670
|
+
return /* @__PURE__ */ jsx17("div", { className: cn11("space-y-12", className), "data-slot": "page-blocks", children: sections });
|
|
14610
14671
|
}
|
|
14611
14672
|
|
|
14612
14673
|
// src/components/shop-filters.tsx
|
|
14613
14674
|
import { cn as cn12 } from "@reblu/site-ui/utils";
|
|
14614
|
-
import { jsx as
|
|
14675
|
+
import { jsx as jsx18, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
14615
14676
|
var DEFAULT_SHOP_PRICE_BANDS = [
|
|
14616
14677
|
{ max: 2500 },
|
|
14617
14678
|
{ min: 2500, max: 5e3 },
|
|
@@ -14655,7 +14716,7 @@ function priceBandLabel(band, t, currencyCode, locale) {
|
|
|
14655
14716
|
return "";
|
|
14656
14717
|
}
|
|
14657
14718
|
function OptionLink({ href, active, label, onActivate }) {
|
|
14658
|
-
return /* @__PURE__ */
|
|
14719
|
+
return /* @__PURE__ */ jsx18(
|
|
14659
14720
|
"a",
|
|
14660
14721
|
{
|
|
14661
14722
|
href,
|
|
@@ -14673,9 +14734,9 @@ function OptionLink({ href, active, label, onActivate }) {
|
|
|
14673
14734
|
);
|
|
14674
14735
|
}
|
|
14675
14736
|
function FilterFieldset({ legend, children: children2 }) {
|
|
14676
|
-
return /* @__PURE__ */
|
|
14677
|
-
/* @__PURE__ */
|
|
14678
|
-
/* @__PURE__ */
|
|
14737
|
+
return /* @__PURE__ */ jsxs17("fieldset", { className: "space-y-2", children: [
|
|
14738
|
+
/* @__PURE__ */ jsx18("legend", { className: "text-sm font-medium text-foreground", children: legend }),
|
|
14739
|
+
/* @__PURE__ */ jsx18("div", { className: "flex flex-wrap gap-2", children: children2 })
|
|
14679
14740
|
] });
|
|
14680
14741
|
}
|
|
14681
14742
|
function ShopFilters({
|
|
@@ -14698,11 +14759,11 @@ function ShopFilters({
|
|
|
14698
14759
|
if (!shouldRenderShopFilters(facets, active)) {
|
|
14699
14760
|
return null;
|
|
14700
14761
|
}
|
|
14701
|
-
return /* @__PURE__ */
|
|
14762
|
+
return /* @__PURE__ */ jsxs17("div", { className: cn12("space-y-6", className), "data-slot": "shop-filters", children: [
|
|
14702
14763
|
visibleTaxonomies.map((axis) => {
|
|
14703
14764
|
const activeSlug = active.taxonomy?.[axis.key];
|
|
14704
|
-
return /* @__PURE__ */
|
|
14705
|
-
/* @__PURE__ */
|
|
14765
|
+
return /* @__PURE__ */ jsxs17(FilterFieldset, { legend: axis.label, children: [
|
|
14766
|
+
/* @__PURE__ */ jsx18(
|
|
14706
14767
|
OptionLink,
|
|
14707
14768
|
{
|
|
14708
14769
|
href: hrefs.taxonomy(axis.key, void 0),
|
|
@@ -14717,7 +14778,7 @@ function ShopFilters({
|
|
|
14717
14778
|
),
|
|
14718
14779
|
axis.terms.map((term) => {
|
|
14719
14780
|
const isActive = activeSlug === term.slug;
|
|
14720
|
-
return /* @__PURE__ */
|
|
14781
|
+
return /* @__PURE__ */ jsx18(
|
|
14721
14782
|
OptionLink,
|
|
14722
14783
|
{
|
|
14723
14784
|
href: hrefs.taxonomy(axis.key, isActive ? void 0 : term.slug),
|
|
@@ -14737,9 +14798,9 @@ function ShopFilters({
|
|
|
14737
14798
|
}),
|
|
14738
14799
|
visibleAttributes.map((attr) => {
|
|
14739
14800
|
const activeValues = toValueArray(active.attr?.[attr.key]);
|
|
14740
|
-
return /* @__PURE__ */
|
|
14801
|
+
return /* @__PURE__ */ jsx18(FilterFieldset, { legend: attr.label, children: attr.options.map((opt) => {
|
|
14741
14802
|
const isActive = activeValues.includes(opt.value);
|
|
14742
|
-
return /* @__PURE__ */
|
|
14803
|
+
return /* @__PURE__ */ jsx18(
|
|
14743
14804
|
OptionLink,
|
|
14744
14805
|
{
|
|
14745
14806
|
href: hrefs.attr(attr.key, opt.value),
|
|
@@ -14757,11 +14818,11 @@ function ShopFilters({
|
|
|
14757
14818
|
);
|
|
14758
14819
|
}) }, attr.key);
|
|
14759
14820
|
}),
|
|
14760
|
-
showPriceGroup && /* @__PURE__ */
|
|
14821
|
+
showPriceGroup && /* @__PURE__ */ jsx18(FilterFieldset, { legend: t.price, children: priceBands.map((band, i) => {
|
|
14761
14822
|
const isActive = active.priceMin === band.min && active.priceMax === band.max;
|
|
14762
14823
|
const nextMin = isActive ? void 0 : band.min;
|
|
14763
14824
|
const nextMax = isActive ? void 0 : band.max;
|
|
14764
|
-
return /* @__PURE__ */
|
|
14825
|
+
return /* @__PURE__ */ jsx18(
|
|
14765
14826
|
OptionLink,
|
|
14766
14827
|
{
|
|
14767
14828
|
href: hrefs.price(nextMin, nextMax),
|
|
@@ -14772,7 +14833,7 @@ function ShopFilters({
|
|
|
14772
14833
|
i
|
|
14773
14834
|
);
|
|
14774
14835
|
}) }),
|
|
14775
|
-
hasOnSale && /* @__PURE__ */
|
|
14836
|
+
hasOnSale && /* @__PURE__ */ jsx18(
|
|
14776
14837
|
OptionLink,
|
|
14777
14838
|
{
|
|
14778
14839
|
href: hrefs.onSale(!active.onSale),
|
|
@@ -14781,7 +14842,7 @@ function ShopFilters({
|
|
|
14781
14842
|
onActivate: onChange ? () => onChange({ onSale: !active.onSale }) : void 0
|
|
14782
14843
|
}
|
|
14783
14844
|
),
|
|
14784
|
-
/* @__PURE__ */
|
|
14845
|
+
/* @__PURE__ */ jsx18(
|
|
14785
14846
|
"a",
|
|
14786
14847
|
{
|
|
14787
14848
|
href: hrefs.clearAll(),
|
|
@@ -14798,7 +14859,7 @@ function ShopFilters({
|
|
|
14798
14859
|
|
|
14799
14860
|
// src/components/course-catalog-filters.tsx
|
|
14800
14861
|
import { cn as cn13 } from "@reblu/site-ui/utils";
|
|
14801
|
-
import { jsx as
|
|
14862
|
+
import { jsx as jsx19, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
14802
14863
|
var DEFAULT_COURSE_PRICE_BANDS = [
|
|
14803
14864
|
{ max: 5e3 },
|
|
14804
14865
|
{ min: 5e3, max: 15e3 },
|
|
@@ -14851,9 +14912,9 @@ function CourseCatalogFilters({
|
|
|
14851
14912
|
const showPrice = enabled.price !== false;
|
|
14852
14913
|
const isFree = Boolean(active.free);
|
|
14853
14914
|
if (!showCategories && !showInstructors && !showPrice) return null;
|
|
14854
|
-
return /* @__PURE__ */
|
|
14855
|
-
showCategories && /* @__PURE__ */
|
|
14856
|
-
/* @__PURE__ */
|
|
14915
|
+
return /* @__PURE__ */ jsxs18("div", { className: cn13("space-y-6", className), "data-slot": "course-catalog-filters", children: [
|
|
14916
|
+
showCategories && /* @__PURE__ */ jsxs18(FilterFieldset, { legend: t.category, children: [
|
|
14917
|
+
/* @__PURE__ */ jsx19(
|
|
14857
14918
|
OptionLink,
|
|
14858
14919
|
{
|
|
14859
14920
|
href: categoryHref(void 0),
|
|
@@ -14865,7 +14926,7 @@ function CourseCatalogFilters({
|
|
|
14865
14926
|
sortedCategories.map((category) => {
|
|
14866
14927
|
const isActive = active.category === category.slug;
|
|
14867
14928
|
const next2 = isActive ? void 0 : category.slug;
|
|
14868
|
-
return /* @__PURE__ */
|
|
14929
|
+
return /* @__PURE__ */ jsx19(
|
|
14869
14930
|
OptionLink,
|
|
14870
14931
|
{
|
|
14871
14932
|
href: categoryHref(next2),
|
|
@@ -14877,8 +14938,8 @@ function CourseCatalogFilters({
|
|
|
14877
14938
|
);
|
|
14878
14939
|
})
|
|
14879
14940
|
] }),
|
|
14880
|
-
showInstructors && /* @__PURE__ */
|
|
14881
|
-
/* @__PURE__ */
|
|
14941
|
+
showInstructors && /* @__PURE__ */ jsxs18(FilterFieldset, { legend: t.instructor, children: [
|
|
14942
|
+
/* @__PURE__ */ jsx19(
|
|
14882
14943
|
OptionLink,
|
|
14883
14944
|
{
|
|
14884
14945
|
href: hrefs.instructor(void 0),
|
|
@@ -14890,7 +14951,7 @@ function CourseCatalogFilters({
|
|
|
14890
14951
|
named.map((instructor) => {
|
|
14891
14952
|
const isActive = active.instructor === instructor.id;
|
|
14892
14953
|
const next2 = isActive ? void 0 : instructor.id;
|
|
14893
|
-
return /* @__PURE__ */
|
|
14954
|
+
return /* @__PURE__ */ jsx19(
|
|
14894
14955
|
OptionLink,
|
|
14895
14956
|
{
|
|
14896
14957
|
href: hrefs.instructor(next2),
|
|
@@ -14902,8 +14963,8 @@ function CourseCatalogFilters({
|
|
|
14902
14963
|
);
|
|
14903
14964
|
})
|
|
14904
14965
|
] }),
|
|
14905
|
-
showPrice && /* @__PURE__ */
|
|
14906
|
-
/* @__PURE__ */
|
|
14966
|
+
showPrice && /* @__PURE__ */ jsxs18(FilterFieldset, { legend: t.price, children: [
|
|
14967
|
+
/* @__PURE__ */ jsx19(
|
|
14907
14968
|
OptionLink,
|
|
14908
14969
|
{
|
|
14909
14970
|
href: hrefs.free(!isFree),
|
|
@@ -14918,7 +14979,7 @@ function CourseCatalogFilters({
|
|
|
14918
14979
|
const isActive = !isFree && active.priceMin === band.min && active.priceMax === band.max;
|
|
14919
14980
|
const nextMin = isActive ? void 0 : band.min;
|
|
14920
14981
|
const nextMax = isActive ? void 0 : band.max;
|
|
14921
|
-
return /* @__PURE__ */
|
|
14982
|
+
return /* @__PURE__ */ jsx19(
|
|
14922
14983
|
OptionLink,
|
|
14923
14984
|
{
|
|
14924
14985
|
href: hrefs.price(nextMin, nextMax),
|
|
@@ -14930,7 +14991,7 @@ function CourseCatalogFilters({
|
|
|
14930
14991
|
);
|
|
14931
14992
|
})
|
|
14932
14993
|
] }),
|
|
14933
|
-
/* @__PURE__ */
|
|
14994
|
+
/* @__PURE__ */ jsx19(
|
|
14934
14995
|
"a",
|
|
14935
14996
|
{
|
|
14936
14997
|
href: hrefs.clearAll(),
|
|
@@ -14953,7 +15014,7 @@ function CourseCatalogFilters({
|
|
|
14953
15014
|
|
|
14954
15015
|
// src/components/cart-line-list.tsx
|
|
14955
15016
|
import { cn as cn14 } from "@reblu/site-ui/utils";
|
|
14956
|
-
import { jsx as
|
|
15017
|
+
import { jsx as jsx20, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
14957
15018
|
var DEFAULT_LABELS2 = {
|
|
14958
15019
|
quantityLabel: "Cantidad",
|
|
14959
15020
|
decrease: "Reducir cantidad",
|
|
@@ -14979,9 +15040,9 @@ function CartLineList({
|
|
|
14979
15040
|
}) {
|
|
14980
15041
|
const t = { ...DEFAULT_LABELS2, ...labels };
|
|
14981
15042
|
const noticeContent = notice === true ? t.cancelledNotice : notice;
|
|
14982
|
-
return /* @__PURE__ */
|
|
14983
|
-
/* @__PURE__ */
|
|
14984
|
-
noticeContent != null && noticeContent !== false && /* @__PURE__ */
|
|
15043
|
+
return /* @__PURE__ */ jsxs19("div", { className: cn14("space-y-4", className), "data-slot": "cart-line-list", children: [
|
|
15044
|
+
/* @__PURE__ */ jsx20("div", { "aria-live": "polite", className: "sr-only", children: liveMessage }),
|
|
15045
|
+
noticeContent != null && noticeContent !== false && /* @__PURE__ */ jsx20(
|
|
14985
15046
|
"div",
|
|
14986
15047
|
{
|
|
14987
15048
|
role: "status",
|
|
@@ -14990,33 +15051,33 @@ function CartLineList({
|
|
|
14990
15051
|
children: noticeContent
|
|
14991
15052
|
}
|
|
14992
15053
|
),
|
|
14993
|
-
/* @__PURE__ */
|
|
15054
|
+
/* @__PURE__ */ jsx20("ul", { className: "space-y-4", children: items.map((item) => {
|
|
14994
15055
|
const maxQty = item.maxStock ?? Infinity;
|
|
14995
15056
|
const atMax = item.quantity >= maxQty;
|
|
14996
15057
|
const atMin = item.quantity <= 1;
|
|
14997
15058
|
const message = lineMessage?.(item);
|
|
14998
|
-
return /* @__PURE__ */
|
|
15059
|
+
return /* @__PURE__ */ jsxs19(
|
|
14999
15060
|
"li",
|
|
15000
15061
|
{
|
|
15001
15062
|
className: "flex gap-4 rounded-xl border border-border bg-card p-4",
|
|
15002
15063
|
children: [
|
|
15003
|
-
/* @__PURE__ */
|
|
15004
|
-
/* @__PURE__ */
|
|
15005
|
-
/* @__PURE__ */
|
|
15006
|
-
item.variantName && /* @__PURE__ */
|
|
15007
|
-
/* @__PURE__ */
|
|
15064
|
+
/* @__PURE__ */ jsx20("div", { className: "h-20 w-20 flex-shrink-0 overflow-hidden rounded-lg bg-muted", children: item.imageUrl ? /* @__PURE__ */ jsx20("img", { src: item.imageUrl, alt: item.name, className: "h-full w-full object-cover" }) : null }),
|
|
15065
|
+
/* @__PURE__ */ jsxs19("div", { className: "min-w-0 flex-1", children: [
|
|
15066
|
+
/* @__PURE__ */ jsx20("p", { className: "truncate text-sm font-semibold leading-tight", children: item.name }),
|
|
15067
|
+
item.variantName && /* @__PURE__ */ jsx20("p", { className: "mt-0.5 text-xs text-muted-foreground", children: item.variantName }),
|
|
15068
|
+
/* @__PURE__ */ jsxs19("p", { className: "mt-1 text-sm text-muted-foreground", children: [
|
|
15008
15069
|
formatPrice(item.unitPrice, currencyCode, locale),
|
|
15009
15070
|
" ",
|
|
15010
15071
|
t.unitPriceSuffix
|
|
15011
15072
|
] }),
|
|
15012
|
-
/* @__PURE__ */
|
|
15073
|
+
/* @__PURE__ */ jsxs19(
|
|
15013
15074
|
"div",
|
|
15014
15075
|
{
|
|
15015
15076
|
role: "group",
|
|
15016
15077
|
"aria-label": t.quantityLabel,
|
|
15017
15078
|
className: "mt-3 flex items-center gap-3",
|
|
15018
15079
|
children: [
|
|
15019
|
-
/* @__PURE__ */
|
|
15080
|
+
/* @__PURE__ */ jsx20(
|
|
15020
15081
|
"button",
|
|
15021
15082
|
{
|
|
15022
15083
|
type: "button",
|
|
@@ -15027,8 +15088,8 @@ function CartLineList({
|
|
|
15027
15088
|
children: "\u2212"
|
|
15028
15089
|
}
|
|
15029
15090
|
),
|
|
15030
|
-
/* @__PURE__ */
|
|
15031
|
-
/* @__PURE__ */
|
|
15091
|
+
/* @__PURE__ */ jsx20("span", { className: "w-8 text-center text-sm font-semibold tabular-nums", children: item.quantity }),
|
|
15092
|
+
/* @__PURE__ */ jsx20(
|
|
15032
15093
|
"button",
|
|
15033
15094
|
{
|
|
15034
15095
|
type: "button",
|
|
@@ -15039,7 +15100,7 @@ function CartLineList({
|
|
|
15039
15100
|
children: "+"
|
|
15040
15101
|
}
|
|
15041
15102
|
),
|
|
15042
|
-
onRemove && /* @__PURE__ */
|
|
15103
|
+
onRemove && /* @__PURE__ */ jsx20(
|
|
15043
15104
|
"button",
|
|
15044
15105
|
{
|
|
15045
15106
|
type: "button",
|
|
@@ -15052,7 +15113,7 @@ function CartLineList({
|
|
|
15052
15113
|
]
|
|
15053
15114
|
}
|
|
15054
15115
|
),
|
|
15055
|
-
message != null && message !== false && /* @__PURE__ */
|
|
15116
|
+
message != null && message !== false && /* @__PURE__ */ jsx20(
|
|
15056
15117
|
"p",
|
|
15057
15118
|
{
|
|
15058
15119
|
className: "mt-2 text-sm text-destructive",
|
|
@@ -15061,7 +15122,7 @@ function CartLineList({
|
|
|
15061
15122
|
}
|
|
15062
15123
|
)
|
|
15063
15124
|
] }),
|
|
15064
|
-
/* @__PURE__ */
|
|
15125
|
+
/* @__PURE__ */ jsx20("div", { className: "flex-shrink-0 text-right", children: /* @__PURE__ */ jsx20("p", { className: "text-base font-bold", children: formatPrice(item.unitPrice * item.quantity, currencyCode, locale) }) })
|
|
15065
15126
|
]
|
|
15066
15127
|
},
|
|
15067
15128
|
lineKey(item.productId, item.variantId)
|
|
@@ -15072,7 +15133,7 @@ function CartLineList({
|
|
|
15072
15133
|
|
|
15073
15134
|
// src/components/cart-summary.tsx
|
|
15074
15135
|
import { cn as cn15 } from "@reblu/site-ui/utils";
|
|
15075
|
-
import { jsx as
|
|
15136
|
+
import { jsx as jsx21, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
15076
15137
|
var DEFAULT_LABELS3 = {
|
|
15077
15138
|
subtotal: "Subtotal",
|
|
15078
15139
|
discountPrefix: "Descuento",
|
|
@@ -15102,37 +15163,37 @@ function CartSummary({
|
|
|
15102
15163
|
const hasDiscount = Boolean(discountAmount && discountAmount > 0);
|
|
15103
15164
|
const noticeContent = notice === true ? t.cancelledNotice : notice;
|
|
15104
15165
|
const hasNotice = noticeContent != null && noticeContent !== false;
|
|
15105
|
-
const breakdown = /* @__PURE__ */
|
|
15166
|
+
const breakdown = /* @__PURE__ */ jsxs20(
|
|
15106
15167
|
"dl",
|
|
15107
15168
|
{
|
|
15108
15169
|
className: cn15("space-y-2 text-sm", !hasNotice && className),
|
|
15109
15170
|
"data-slot": "cart-summary",
|
|
15110
15171
|
children: [
|
|
15111
|
-
/* @__PURE__ */
|
|
15112
|
-
/* @__PURE__ */
|
|
15113
|
-
/* @__PURE__ */
|
|
15172
|
+
/* @__PURE__ */ jsxs20("div", { className: "flex justify-between text-muted-foreground", children: [
|
|
15173
|
+
/* @__PURE__ */ jsx21("dt", { children: t.subtotal }),
|
|
15174
|
+
/* @__PURE__ */ jsx21("dd", { children: formatPrice(subtotal, currencyCode, locale) })
|
|
15114
15175
|
] }),
|
|
15115
|
-
hasDiscount && /* @__PURE__ */
|
|
15116
|
-
/* @__PURE__ */
|
|
15117
|
-
/* @__PURE__ */
|
|
15176
|
+
hasDiscount && /* @__PURE__ */ jsxs20("div", { className: "flex justify-between text-green-600 dark:text-green-400", children: [
|
|
15177
|
+
/* @__PURE__ */ jsx21("dt", { children: autoDiscount ? t.staffDiscountApplied : `${t.discountPrefix}${discountCode ? ` (${discountCode})` : ""}` }),
|
|
15178
|
+
/* @__PURE__ */ jsxs20("dd", { children: [
|
|
15118
15179
|
"-",
|
|
15119
15180
|
formatPrice(discountAmount, currencyCode, locale)
|
|
15120
15181
|
] })
|
|
15121
15182
|
] }),
|
|
15122
|
-
shippingEnabled && /* @__PURE__ */
|
|
15123
|
-
/* @__PURE__ */
|
|
15124
|
-
/* @__PURE__ */
|
|
15183
|
+
shippingEnabled && /* @__PURE__ */ jsxs20("div", { className: "flex justify-between text-muted-foreground", children: [
|
|
15184
|
+
/* @__PURE__ */ jsx21("dt", { children: t.shipping }),
|
|
15185
|
+
/* @__PURE__ */ jsx21("dd", { children: shipping == null || !Number.isFinite(shipping) ? t.shippingCalculated : shipping === 0 ? t.freeShipping : formatPrice(shipping, currencyCode, locale) })
|
|
15125
15186
|
] }),
|
|
15126
|
-
/* @__PURE__ */
|
|
15127
|
-
/* @__PURE__ */
|
|
15128
|
-
/* @__PURE__ */
|
|
15187
|
+
/* @__PURE__ */ jsxs20("div", { className: "flex justify-between border-t border-border pt-2 text-base font-bold", children: [
|
|
15188
|
+
/* @__PURE__ */ jsx21("dt", { children: t.total }),
|
|
15189
|
+
/* @__PURE__ */ jsx21("dd", { children: formatPrice(total, currencyCode, locale) })
|
|
15129
15190
|
] })
|
|
15130
15191
|
]
|
|
15131
15192
|
}
|
|
15132
15193
|
);
|
|
15133
15194
|
if (!hasNotice) return breakdown;
|
|
15134
|
-
return /* @__PURE__ */
|
|
15135
|
-
/* @__PURE__ */
|
|
15195
|
+
return /* @__PURE__ */ jsxs20("div", { className: cn15("space-y-3", className), "data-slot": "cart-summary-wrapper", children: [
|
|
15196
|
+
/* @__PURE__ */ jsx21(
|
|
15136
15197
|
"div",
|
|
15137
15198
|
{
|
|
15138
15199
|
role: "status",
|
|
@@ -15147,7 +15208,7 @@ function CartSummary({
|
|
|
15147
15208
|
|
|
15148
15209
|
// src/components/cart-adjustments-notice.tsx
|
|
15149
15210
|
import { cn as cn16 } from "@reblu/site-ui/utils";
|
|
15150
|
-
import { jsx as
|
|
15211
|
+
import { jsx as jsx22 } from "react/jsx-runtime";
|
|
15151
15212
|
var DEFAULT_LABELS4 = {
|
|
15152
15213
|
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.`,
|
|
15153
15214
|
quantityChanged: (name, quantity) => `Hemos ajustado la cantidad de ${name} a ${quantity} por el stock disponible.`,
|
|
@@ -15181,20 +15242,20 @@ function CartAdjustmentsNotice({
|
|
|
15181
15242
|
);
|
|
15182
15243
|
}
|
|
15183
15244
|
if (messages.length === 0) return null;
|
|
15184
|
-
return /* @__PURE__ */
|
|
15245
|
+
return /* @__PURE__ */ jsx22(
|
|
15185
15246
|
"div",
|
|
15186
15247
|
{
|
|
15187
15248
|
role: "status",
|
|
15188
15249
|
className: cn16("rounded-lg border border-border bg-muted px-3 py-2 text-sm", className),
|
|
15189
15250
|
"data-slot": "cart-adjustments-notice",
|
|
15190
|
-
children: messages.length === 1 ? /* @__PURE__ */
|
|
15251
|
+
children: messages.length === 1 ? /* @__PURE__ */ jsx22("p", { children: messages[0] }) : /* @__PURE__ */ jsx22("ul", { className: "list-disc space-y-1 pl-4", children: messages.map((message, index) => /* @__PURE__ */ jsx22("li", { children: message }, index)) })
|
|
15191
15252
|
}
|
|
15192
15253
|
);
|
|
15193
15254
|
}
|
|
15194
15255
|
|
|
15195
15256
|
// src/components/added-to-cart-toast.tsx
|
|
15196
15257
|
import { cn as cn17 } from "@reblu/site-ui/utils";
|
|
15197
|
-
import { jsx as
|
|
15258
|
+
import { jsx as jsx23, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
15198
15259
|
var DEFAULT_LABELS5 = {
|
|
15199
15260
|
success: "A\xF1adido al carrito",
|
|
15200
15261
|
error: "No se pudo a\xF1adir al carrito",
|
|
@@ -15214,7 +15275,7 @@ function AddedToCartToast({
|
|
|
15214
15275
|
const message = status === "error" ? t.error : status === "outOfStock" ? t.outOfStock : t.success;
|
|
15215
15276
|
const hasThumbnail = Boolean(imageUrl && imageUrl.trim().length > 0);
|
|
15216
15277
|
const variant = status === "success" ? "success" : "error";
|
|
15217
|
-
return /* @__PURE__ */
|
|
15278
|
+
return /* @__PURE__ */ jsxs21(
|
|
15218
15279
|
"div",
|
|
15219
15280
|
{
|
|
15220
15281
|
"data-slot": "added-to-cart-toast",
|
|
@@ -15227,12 +15288,12 @@ function AddedToCartToast({
|
|
|
15227
15288
|
),
|
|
15228
15289
|
children: [
|
|
15229
15290
|
hasThumbnail && // eslint-disable-next-line @next/next/no-img-element -- toast content, not a Next <Image> layout context
|
|
15230
|
-
/* @__PURE__ */
|
|
15231
|
-
/* @__PURE__ */
|
|
15232
|
-
/* @__PURE__ */
|
|
15233
|
-
/* @__PURE__ */
|
|
15291
|
+
/* @__PURE__ */ jsx23("img", { src: imageUrl, alt: productName, className: "h-10 w-10 flex-shrink-0 rounded-lg object-cover" }),
|
|
15292
|
+
/* @__PURE__ */ jsxs21("div", { className: "min-w-0 flex-1", children: [
|
|
15293
|
+
/* @__PURE__ */ jsx23("p", { className: "truncate font-semibold text-foreground", children: productName }),
|
|
15294
|
+
/* @__PURE__ */ jsx23("p", { className: "truncate text-muted-foreground", children: quantity && quantity > 1 ? `${message} \xB7 x${quantity}` : message })
|
|
15234
15295
|
] }),
|
|
15235
|
-
/* @__PURE__ */
|
|
15296
|
+
/* @__PURE__ */ jsx23("div", { className: "flex-shrink-0", children: /* @__PURE__ */ jsx23("a", { href: cartHref, className: "text-sm font-semibold text-primary underline-offset-2 hover:underline", children: t.viewCart }) })
|
|
15236
15297
|
]
|
|
15237
15298
|
}
|
|
15238
15299
|
);
|
|
@@ -15240,7 +15301,7 @@ function AddedToCartToast({
|
|
|
15240
15301
|
|
|
15241
15302
|
// src/components/checkout-login-prompt.tsx
|
|
15242
15303
|
import { cn as cn18 } from "@reblu/site-ui/utils";
|
|
15243
|
-
import { Fragment as
|
|
15304
|
+
import { Fragment as Fragment4, jsx as jsx24, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
15244
15305
|
var DEFAULT_LABELS6 = {
|
|
15245
15306
|
title: "Identificaci\xF3n",
|
|
15246
15307
|
description: "Introduce tu email para agilizar el proceso o contin\xFAa como invitado.",
|
|
@@ -15267,9 +15328,9 @@ function CheckoutLoginPrompt({
|
|
|
15267
15328
|
if (!open) return null;
|
|
15268
15329
|
const t = { ...DEFAULT_LABELS6, ...labels };
|
|
15269
15330
|
const isValidEmail = EMAIL_PATTERN.test(email.trim());
|
|
15270
|
-
return /* @__PURE__ */
|
|
15271
|
-
/* @__PURE__ */
|
|
15272
|
-
/* @__PURE__ */
|
|
15331
|
+
return /* @__PURE__ */ jsxs22(Fragment4, { children: [
|
|
15332
|
+
/* @__PURE__ */ jsx24("div", { className: "fixed inset-0 z-50 bg-black/50", onClick: onClose, "aria-hidden": "true" }),
|
|
15333
|
+
/* @__PURE__ */ jsxs22(
|
|
15273
15334
|
"div",
|
|
15274
15335
|
{
|
|
15275
15336
|
role: "dialog",
|
|
@@ -15281,12 +15342,12 @@ function CheckoutLoginPrompt({
|
|
|
15281
15342
|
className
|
|
15282
15343
|
),
|
|
15283
15344
|
children: [
|
|
15284
|
-
/* @__PURE__ */
|
|
15285
|
-
/* @__PURE__ */
|
|
15286
|
-
/* @__PURE__ */
|
|
15287
|
-
/* @__PURE__ */
|
|
15345
|
+
/* @__PURE__ */ jsxs22("div", { className: "flex items-start justify-between gap-3", children: [
|
|
15346
|
+
/* @__PURE__ */ jsxs22("div", { children: [
|
|
15347
|
+
/* @__PURE__ */ jsx24("h2", { id: "checkout-login-prompt-title", className: "text-xl font-bold", children: t.title }),
|
|
15348
|
+
/* @__PURE__ */ jsx24("p", { className: "mt-1 text-sm text-muted-foreground", children: t.description })
|
|
15288
15349
|
] }),
|
|
15289
|
-
/* @__PURE__ */
|
|
15350
|
+
/* @__PURE__ */ jsx24(
|
|
15290
15351
|
"button",
|
|
15291
15352
|
{
|
|
15292
15353
|
type: "button",
|
|
@@ -15297,9 +15358,9 @@ function CheckoutLoginPrompt({
|
|
|
15297
15358
|
}
|
|
15298
15359
|
)
|
|
15299
15360
|
] }),
|
|
15300
|
-
/* @__PURE__ */
|
|
15301
|
-
/* @__PURE__ */
|
|
15302
|
-
/* @__PURE__ */
|
|
15361
|
+
/* @__PURE__ */ jsxs22("div", { className: "space-y-2", children: [
|
|
15362
|
+
/* @__PURE__ */ jsx24("label", { htmlFor: "checkout-login-prompt-email", className: "text-sm font-medium", children: t.emailLabel }),
|
|
15363
|
+
/* @__PURE__ */ jsx24(
|
|
15303
15364
|
"input",
|
|
15304
15365
|
{
|
|
15305
15366
|
id: "checkout-login-prompt-email",
|
|
@@ -15314,10 +15375,10 @@ function CheckoutLoginPrompt({
|
|
|
15314
15375
|
)
|
|
15315
15376
|
}
|
|
15316
15377
|
),
|
|
15317
|
-
error && /* @__PURE__ */
|
|
15378
|
+
error && /* @__PURE__ */ jsx24("p", { className: "text-xs text-destructive", children: error })
|
|
15318
15379
|
] }),
|
|
15319
|
-
/* @__PURE__ */
|
|
15320
|
-
/* @__PURE__ */
|
|
15380
|
+
/* @__PURE__ */ jsxs22("div", { className: "space-y-2", children: [
|
|
15381
|
+
/* @__PURE__ */ jsx24(
|
|
15321
15382
|
"button",
|
|
15322
15383
|
{
|
|
15323
15384
|
type: "button",
|
|
@@ -15330,7 +15391,7 @@ function CheckoutLoginPrompt({
|
|
|
15330
15391
|
children: checking ? t.checking : t.continueWithEmail
|
|
15331
15392
|
}
|
|
15332
15393
|
),
|
|
15333
|
-
/* @__PURE__ */
|
|
15394
|
+
/* @__PURE__ */ jsx24(
|
|
15334
15395
|
"button",
|
|
15335
15396
|
{
|
|
15336
15397
|
type: "button",
|
|
@@ -15349,7 +15410,7 @@ function CheckoutLoginPrompt({
|
|
|
15349
15410
|
// src/components/checkout-form.tsx
|
|
15350
15411
|
import { cn as cn19 } from "@reblu/site-ui/utils";
|
|
15351
15412
|
import { PhoneInput } from "@reblu/site-ui/phone-input";
|
|
15352
|
-
import { Fragment as
|
|
15413
|
+
import { Fragment as Fragment5, jsx as jsx25, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
15353
15414
|
var DEFAULT_LABELS7 = {
|
|
15354
15415
|
contactTitle: "Datos de contacto",
|
|
15355
15416
|
nameLabel: "Nombre completo",
|
|
@@ -15405,9 +15466,9 @@ function CheckoutForm({
|
|
|
15405
15466
|
event.preventDefault();
|
|
15406
15467
|
if (discountCode.trim() && !discountApplying) onApplyDiscount();
|
|
15407
15468
|
}
|
|
15408
|
-
return /* @__PURE__ */
|
|
15469
|
+
return /* @__PURE__ */ jsxs23(Fragment5, { children: [
|
|
15409
15470
|
loginPrompt,
|
|
15410
|
-
/* @__PURE__ */
|
|
15471
|
+
/* @__PURE__ */ jsxs23(
|
|
15411
15472
|
"form",
|
|
15412
15473
|
{
|
|
15413
15474
|
"data-testid": "checkout-form",
|
|
@@ -15415,12 +15476,12 @@ function CheckoutForm({
|
|
|
15415
15476
|
className: cn19("space-y-8", className),
|
|
15416
15477
|
"data-slot": "checkout-form",
|
|
15417
15478
|
children: [
|
|
15418
|
-
/* @__PURE__ */
|
|
15419
|
-
/* @__PURE__ */
|
|
15420
|
-
/* @__PURE__ */
|
|
15421
|
-
/* @__PURE__ */
|
|
15422
|
-
/* @__PURE__ */
|
|
15423
|
-
/* @__PURE__ */
|
|
15479
|
+
/* @__PURE__ */ jsxs23("section", { className: "space-y-4", children: [
|
|
15480
|
+
/* @__PURE__ */ jsx25("h2", { className: "border-b border-border pb-2 text-lg font-semibold", children: t.contactTitle }),
|
|
15481
|
+
/* @__PURE__ */ jsxs23("div", { className: "grid grid-cols-1 gap-4 sm:grid-cols-2", children: [
|
|
15482
|
+
/* @__PURE__ */ jsxs23("div", { className: "space-y-1", children: [
|
|
15483
|
+
/* @__PURE__ */ jsx25("label", { htmlFor: "checkout-form-name", className: "text-sm font-medium", children: t.nameLabel }),
|
|
15484
|
+
/* @__PURE__ */ jsx25(
|
|
15424
15485
|
"input",
|
|
15425
15486
|
{
|
|
15426
15487
|
id: "checkout-form-name",
|
|
@@ -15435,11 +15496,11 @@ function CheckoutForm({
|
|
|
15435
15496
|
)
|
|
15436
15497
|
}
|
|
15437
15498
|
),
|
|
15438
|
-
contactErrors?.name && /* @__PURE__ */
|
|
15499
|
+
contactErrors?.name && /* @__PURE__ */ jsx25("p", { className: "text-xs text-destructive", children: contactErrors.name })
|
|
15439
15500
|
] }),
|
|
15440
|
-
/* @__PURE__ */
|
|
15441
|
-
/* @__PURE__ */
|
|
15442
|
-
/* @__PURE__ */
|
|
15501
|
+
/* @__PURE__ */ jsxs23("div", { className: "space-y-1", children: [
|
|
15502
|
+
/* @__PURE__ */ jsx25("label", { htmlFor: "checkout-form-email", className: "text-sm font-medium", children: t.emailLabel }),
|
|
15503
|
+
/* @__PURE__ */ jsx25(
|
|
15443
15504
|
"input",
|
|
15444
15505
|
{
|
|
15445
15506
|
id: "checkout-form-email",
|
|
@@ -15454,9 +15515,9 @@ function CheckoutForm({
|
|
|
15454
15515
|
)
|
|
15455
15516
|
}
|
|
15456
15517
|
),
|
|
15457
|
-
contactErrors?.email && /* @__PURE__ */
|
|
15518
|
+
contactErrors?.email && /* @__PURE__ */ jsx25("p", { className: "text-xs text-destructive", children: contactErrors.email })
|
|
15458
15519
|
] }),
|
|
15459
|
-
/* @__PURE__ */
|
|
15520
|
+
/* @__PURE__ */ jsx25("div", { className: "space-y-1", children: /* @__PURE__ */ jsx25(
|
|
15460
15521
|
PhoneInput,
|
|
15461
15522
|
{
|
|
15462
15523
|
id: "checkout-form-phone",
|
|
@@ -15470,26 +15531,26 @@ function CheckoutForm({
|
|
|
15470
15531
|
] })
|
|
15471
15532
|
] }),
|
|
15472
15533
|
children2,
|
|
15473
|
-
generalError ? /* @__PURE__ */
|
|
15474
|
-
/* @__PURE__ */
|
|
15475
|
-
/* @__PURE__ */
|
|
15476
|
-
autoDiscount ? /* @__PURE__ */
|
|
15534
|
+
generalError ? /* @__PURE__ */ jsx25("p", { role: "alert", className: "text-sm text-destructive", children: generalError }) : null,
|
|
15535
|
+
/* @__PURE__ */ jsxs23("section", { className: "space-y-3", children: [
|
|
15536
|
+
/* @__PURE__ */ jsx25("h2", { className: "border-b border-border pb-2 text-lg font-semibold", children: t.discountTitle }),
|
|
15537
|
+
autoDiscount ? /* @__PURE__ */ jsxs23(
|
|
15477
15538
|
"div",
|
|
15478
15539
|
{
|
|
15479
15540
|
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",
|
|
15480
15541
|
"data-slot": "checkout-staff-discount",
|
|
15481
15542
|
children: [
|
|
15482
|
-
/* @__PURE__ */
|
|
15483
|
-
/* @__PURE__ */
|
|
15543
|
+
/* @__PURE__ */ jsx25("span", { className: "font-semibold", children: t.staffDiscountApplied }),
|
|
15544
|
+
/* @__PURE__ */ jsx25("span", { children: t.discountAppliedSuffix(formatPrice(autoDiscount.amount, currencyCode, locale)) })
|
|
15484
15545
|
]
|
|
15485
15546
|
}
|
|
15486
15547
|
) : null,
|
|
15487
|
-
appliedDiscount && !autoDiscount ? /* @__PURE__ */
|
|
15488
|
-
/* @__PURE__ */
|
|
15489
|
-
/* @__PURE__ */
|
|
15490
|
-
/* @__PURE__ */
|
|
15548
|
+
appliedDiscount && !autoDiscount ? /* @__PURE__ */ jsxs23("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: [
|
|
15549
|
+
/* @__PURE__ */ jsxs23("div", { className: "flex items-center gap-2 text-sm text-green-700 dark:text-green-400", children: [
|
|
15550
|
+
/* @__PURE__ */ jsx25("span", { className: "font-semibold", children: appliedDiscount.code }),
|
|
15551
|
+
/* @__PURE__ */ jsx25("span", { children: t.discountAppliedSuffix(formatPrice(appliedDiscount.amount, currencyCode, locale)) })
|
|
15491
15552
|
] }),
|
|
15492
|
-
/* @__PURE__ */
|
|
15553
|
+
/* @__PURE__ */ jsx25(
|
|
15493
15554
|
"button",
|
|
15494
15555
|
{
|
|
15495
15556
|
type: "button",
|
|
@@ -15499,9 +15560,9 @@ function CheckoutForm({
|
|
|
15499
15560
|
children: t.removeDiscount
|
|
15500
15561
|
}
|
|
15501
15562
|
)
|
|
15502
|
-
] }) : /* @__PURE__ */
|
|
15503
|
-
/* @__PURE__ */
|
|
15504
|
-
/* @__PURE__ */
|
|
15563
|
+
] }) : /* @__PURE__ */ jsxs23("div", { className: "flex gap-2", children: [
|
|
15564
|
+
/* @__PURE__ */ jsx25("label", { htmlFor: "checkout-form-discount-code", className: "sr-only", children: t.discountTitle }),
|
|
15565
|
+
/* @__PURE__ */ jsx25(
|
|
15505
15566
|
"input",
|
|
15506
15567
|
{
|
|
15507
15568
|
id: "checkout-form-discount-code",
|
|
@@ -15513,7 +15574,7 @@ function CheckoutForm({
|
|
|
15513
15574
|
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"
|
|
15514
15575
|
}
|
|
15515
15576
|
),
|
|
15516
|
-
/* @__PURE__ */
|
|
15577
|
+
/* @__PURE__ */ jsx25(
|
|
15517
15578
|
"button",
|
|
15518
15579
|
{
|
|
15519
15580
|
type: "button",
|
|
@@ -15524,9 +15585,9 @@ function CheckoutForm({
|
|
|
15524
15585
|
}
|
|
15525
15586
|
)
|
|
15526
15587
|
] }),
|
|
15527
|
-
discountError && /* @__PURE__ */
|
|
15588
|
+
discountError && /* @__PURE__ */ jsx25("p", { className: "text-xs text-destructive", children: discountError })
|
|
15528
15589
|
] }),
|
|
15529
|
-
/* @__PURE__ */
|
|
15590
|
+
/* @__PURE__ */ jsx25(
|
|
15530
15591
|
"button",
|
|
15531
15592
|
{
|
|
15532
15593
|
type: "submit",
|
|
@@ -15549,7 +15610,7 @@ import { cn as cn21 } from "@reblu/site-ui/utils";
|
|
|
15549
15610
|
|
|
15550
15611
|
// src/components/order-invoice-link.tsx
|
|
15551
15612
|
import { cn as cn20 } from "@reblu/site-ui/utils";
|
|
15552
|
-
import { jsx as
|
|
15613
|
+
import { jsx as jsx26, jsxs as jsxs24 } from "react/jsx-runtime";
|
|
15553
15614
|
var DEFAULT_LABELS8 = {
|
|
15554
15615
|
linkLabel: "Descargar la factura {number}",
|
|
15555
15616
|
signInHint: "Te pediremos que inicies sesi\xF3n para abrirla."
|
|
@@ -15557,8 +15618,8 @@ var DEFAULT_LABELS8 = {
|
|
|
15557
15618
|
function OrderInvoiceLink({ invoice, labels, className }) {
|
|
15558
15619
|
if (!invoice) return null;
|
|
15559
15620
|
const t = { ...DEFAULT_LABELS8, ...labels };
|
|
15560
|
-
return /* @__PURE__ */
|
|
15561
|
-
/* @__PURE__ */
|
|
15621
|
+
return /* @__PURE__ */ jsxs24("div", { className: cn20("space-y-1 text-sm", className), "data-slot": "order-invoice-link", children: [
|
|
15622
|
+
/* @__PURE__ */ jsx26(
|
|
15562
15623
|
"a",
|
|
15563
15624
|
{
|
|
15564
15625
|
href: invoice.url,
|
|
@@ -15566,12 +15627,12 @@ function OrderInvoiceLink({ invoice, labels, className }) {
|
|
|
15566
15627
|
children: t.linkLabel.replace("{number}", invoice.number)
|
|
15567
15628
|
}
|
|
15568
15629
|
),
|
|
15569
|
-
/* @__PURE__ */
|
|
15630
|
+
/* @__PURE__ */ jsx26("p", { className: "text-muted-foreground", children: t.signInHint })
|
|
15570
15631
|
] });
|
|
15571
15632
|
}
|
|
15572
15633
|
|
|
15573
15634
|
// src/components/order-confirmation.tsx
|
|
15574
|
-
import { jsx as
|
|
15635
|
+
import { jsx as jsx27, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
15575
15636
|
var DEFAULT_LABELS9 = {
|
|
15576
15637
|
pollingTitle: "Confirmando tu pedido\u2026",
|
|
15577
15638
|
pollingDescription: "Estamos procesando el pago, un momento\u2026",
|
|
@@ -15637,43 +15698,43 @@ function OrderConfirmation({
|
|
|
15637
15698
|
const showOrderReference = Boolean(order) && !showFullOrderSummary && (status === "refunded" || status === "partially_refunded" || status === "pending_timeout");
|
|
15638
15699
|
const showSessionReference = !order && sessionId && (status === "timeout" || status === "not_found" || status === "pending_timeout");
|
|
15639
15700
|
const showRecheck = (status === "pending_timeout" || status === "error") && onRecheck;
|
|
15640
|
-
return /* @__PURE__ */
|
|
15641
|
-
/* @__PURE__ */
|
|
15642
|
-
/* @__PURE__ */
|
|
15643
|
-
showFullOrderSummary && order && /* @__PURE__ */
|
|
15644
|
-
/* @__PURE__ */
|
|
15645
|
-
/* @__PURE__ */
|
|
15646
|
-
/* @__PURE__ */
|
|
15701
|
+
return /* @__PURE__ */ jsxs25("div", { className: cn21("space-y-6 text-center", className), "data-slot": "order-confirmation", children: [
|
|
15702
|
+
/* @__PURE__ */ jsx27("h1", { className: "text-3xl font-bold", children: title }),
|
|
15703
|
+
/* @__PURE__ */ jsx27("p", { className: "text-lg text-muted-foreground", children: description }),
|
|
15704
|
+
showFullOrderSummary && order && /* @__PURE__ */ jsxs25("div", { className: "space-y-6", children: [
|
|
15705
|
+
/* @__PURE__ */ jsxs25("div", { className: "inline-block rounded-xl bg-muted px-6 py-4", children: [
|
|
15706
|
+
/* @__PURE__ */ jsx27("p", { className: "mb-1 text-xs uppercase tracking-widest text-muted-foreground", children: t.orderNumberLabel }),
|
|
15707
|
+
/* @__PURE__ */ jsx27("p", { className: "font-mono text-lg font-semibold", children: order.orderNumber })
|
|
15647
15708
|
] }),
|
|
15648
|
-
/* @__PURE__ */
|
|
15649
|
-
order.items.map((item, idx) => /* @__PURE__ */
|
|
15709
|
+
/* @__PURE__ */ jsxs25("div", { className: "mx-auto max-w-sm space-y-3 rounded-xl border border-border bg-card p-5 text-left", children: [
|
|
15710
|
+
order.items.map((item, idx) => /* @__PURE__ */ jsxs25(
|
|
15650
15711
|
"div",
|
|
15651
15712
|
{
|
|
15652
15713
|
className: "flex justify-between gap-4 text-sm",
|
|
15653
15714
|
children: [
|
|
15654
|
-
/* @__PURE__ */
|
|
15715
|
+
/* @__PURE__ */ jsxs25("span", { className: "max-w-[60%] truncate text-muted-foreground", children: [
|
|
15655
15716
|
item.product.name,
|
|
15656
15717
|
item.variant ? ` (${item.variant.name})` : "",
|
|
15657
15718
|
" x",
|
|
15658
15719
|
item.quantity
|
|
15659
15720
|
] }),
|
|
15660
|
-
/* @__PURE__ */
|
|
15721
|
+
/* @__PURE__ */ jsx27("span", { children: formatPrice(item.total, currencyCode, locale) })
|
|
15661
15722
|
]
|
|
15662
15723
|
},
|
|
15663
15724
|
idx
|
|
15664
15725
|
)),
|
|
15665
|
-
/* @__PURE__ */
|
|
15666
|
-
/* @__PURE__ */
|
|
15667
|
-
/* @__PURE__ */
|
|
15726
|
+
/* @__PURE__ */ jsx27("div", { className: "space-y-1 border-t border-border pt-3 text-sm", children: /* @__PURE__ */ jsxs25("div", { className: "flex justify-between pt-1 text-base font-bold", children: [
|
|
15727
|
+
/* @__PURE__ */ jsx27("span", { children: t.totalLabel }),
|
|
15728
|
+
/* @__PURE__ */ jsx27("span", { children: formatPrice(order.total, currencyCode, locale) })
|
|
15668
15729
|
] }) })
|
|
15669
15730
|
] }),
|
|
15670
|
-
/* @__PURE__ */
|
|
15731
|
+
/* @__PURE__ */ jsxs25("p", { className: "mx-auto max-w-sm text-sm text-muted-foreground", children: [
|
|
15671
15732
|
t.confirmationEmailPrefix,
|
|
15672
15733
|
" ",
|
|
15673
|
-
/* @__PURE__ */
|
|
15734
|
+
/* @__PURE__ */ jsx27("span", { className: "font-medium text-foreground", children: order.customerEmail }),
|
|
15674
15735
|
"."
|
|
15675
15736
|
] }),
|
|
15676
|
-
/* @__PURE__ */
|
|
15737
|
+
/* @__PURE__ */ jsx27(
|
|
15677
15738
|
OrderInvoiceLink,
|
|
15678
15739
|
{
|
|
15679
15740
|
invoice: order.invoice,
|
|
@@ -15681,11 +15742,11 @@ function OrderConfirmation({
|
|
|
15681
15742
|
}
|
|
15682
15743
|
)
|
|
15683
15744
|
] }),
|
|
15684
|
-
showOrderReference && order && /* @__PURE__ */
|
|
15685
|
-
/* @__PURE__ */
|
|
15686
|
-
/* @__PURE__ */
|
|
15745
|
+
showOrderReference && order && /* @__PURE__ */ jsxs25("div", { className: "inline-block rounded-xl bg-muted px-6 py-4", children: [
|
|
15746
|
+
/* @__PURE__ */ jsx27("p", { className: "mb-1 text-xs uppercase tracking-widest text-muted-foreground", children: t.orderReferenceLabel }),
|
|
15747
|
+
/* @__PURE__ */ jsx27("p", { className: "font-mono text-lg font-semibold", children: order.orderNumber })
|
|
15687
15748
|
] }),
|
|
15688
|
-
status === "failed" && cartHref && /* @__PURE__ */
|
|
15749
|
+
status === "failed" && cartHref && /* @__PURE__ */ jsx27(
|
|
15689
15750
|
"a",
|
|
15690
15751
|
{
|
|
15691
15752
|
href: cartHref,
|
|
@@ -15693,7 +15754,7 @@ function OrderConfirmation({
|
|
|
15693
15754
|
children: t.backToCartLabel
|
|
15694
15755
|
}
|
|
15695
15756
|
),
|
|
15696
|
-
showRecheck && /* @__PURE__ */
|
|
15757
|
+
showRecheck && /* @__PURE__ */ jsx27(
|
|
15697
15758
|
"button",
|
|
15698
15759
|
{
|
|
15699
15760
|
type: "button",
|
|
@@ -15702,16 +15763,16 @@ function OrderConfirmation({
|
|
|
15702
15763
|
children: t.recheckLabel
|
|
15703
15764
|
}
|
|
15704
15765
|
),
|
|
15705
|
-
showSessionReference && /* @__PURE__ */
|
|
15706
|
-
/* @__PURE__ */
|
|
15707
|
-
/* @__PURE__ */
|
|
15766
|
+
showSessionReference && /* @__PURE__ */ jsxs25("div", { className: "inline-block rounded-xl bg-muted px-6 py-4", children: [
|
|
15767
|
+
/* @__PURE__ */ jsx27("p", { className: "mb-1 text-xs uppercase tracking-widest text-muted-foreground", children: t.sessionReferenceLabel }),
|
|
15768
|
+
/* @__PURE__ */ jsx27("p", { className: "break-all font-mono text-sm font-semibold", children: sessionId })
|
|
15708
15769
|
] })
|
|
15709
15770
|
] });
|
|
15710
15771
|
}
|
|
15711
15772
|
|
|
15712
15773
|
// src/components/full-invoice-fields.tsx
|
|
15713
15774
|
import { cn as cn22 } from "@reblu/site-ui/utils";
|
|
15714
|
-
import { jsx as
|
|
15775
|
+
import { jsx as jsx28, jsxs as jsxs26 } from "react/jsx-runtime";
|
|
15715
15776
|
var EMPTY_FULL_INVOICE_VALUE = {
|
|
15716
15777
|
wantsFullInvoice: false,
|
|
15717
15778
|
billingIdType: "NIF",
|
|
@@ -15828,12 +15889,12 @@ function FullInvoiceFields({
|
|
|
15828
15889
|
const showFields = value.wantsFullInvoice || overCap;
|
|
15829
15890
|
const isSpanishNif = value.billingIdType === "NIF";
|
|
15830
15891
|
const set = (key2, next2) => onChange({ ...value, [key2]: next2 });
|
|
15831
|
-
const error = (key2) => errors[key2] ? /* @__PURE__ */
|
|
15892
|
+
const error = (key2) => errors[key2] ? /* @__PURE__ */ jsx28("p", { id: `full-invoice-${key2}-error`, className: "text-sm text-destructive", children: errors[key2] }) : null;
|
|
15832
15893
|
const invalid2 = (key2) => errors[key2] ? { "aria-invalid": true, "aria-describedby": `full-invoice-${key2}-error` } : {};
|
|
15833
|
-
return /* @__PURE__ */
|
|
15834
|
-
overCap ? /* @__PURE__ */
|
|
15835
|
-
/* @__PURE__ */
|
|
15836
|
-
/* @__PURE__ */
|
|
15894
|
+
return /* @__PURE__ */ jsxs26("section", { className: cn22("space-y-4", className), "data-slot": "full-invoice-fields", children: [
|
|
15895
|
+
overCap ? /* @__PURE__ */ jsx28("p", { role: "note", className: "rounded-lg border border-border p-4 text-sm", children: t.overCapNotice }) : /* @__PURE__ */ jsxs26("div", { className: "space-y-1", children: [
|
|
15896
|
+
/* @__PURE__ */ jsxs26("label", { className: "flex items-center gap-2 text-sm font-medium", children: [
|
|
15897
|
+
/* @__PURE__ */ jsx28(
|
|
15837
15898
|
"input",
|
|
15838
15899
|
{
|
|
15839
15900
|
type: "checkbox",
|
|
@@ -15843,12 +15904,12 @@ function FullInvoiceFields({
|
|
|
15843
15904
|
),
|
|
15844
15905
|
t.toggle
|
|
15845
15906
|
] }),
|
|
15846
|
-
/* @__PURE__ */
|
|
15907
|
+
/* @__PURE__ */ jsx28("p", { className: "text-sm text-muted-foreground", children: t.underCapNotice })
|
|
15847
15908
|
] }),
|
|
15848
|
-
showFields && /* @__PURE__ */
|
|
15849
|
-
/* @__PURE__ */
|
|
15850
|
-
/* @__PURE__ */
|
|
15851
|
-
/* @__PURE__ */
|
|
15909
|
+
showFields && /* @__PURE__ */ jsxs26("div", { className: "grid grid-cols-1 gap-4 sm:grid-cols-2", children: [
|
|
15910
|
+
/* @__PURE__ */ jsxs26("div", { className: "space-y-1", children: [
|
|
15911
|
+
/* @__PURE__ */ jsx28("label", { htmlFor: "full-invoice-id-type", className: "text-sm font-medium", children: t.idType }),
|
|
15912
|
+
/* @__PURE__ */ jsx28(
|
|
15852
15913
|
"select",
|
|
15853
15914
|
{
|
|
15854
15915
|
id: "full-invoice-id-type",
|
|
@@ -15857,14 +15918,14 @@ function FullInvoiceFields({
|
|
|
15857
15918
|
value: value.billingIdType,
|
|
15858
15919
|
onChange: (e) => set("billingIdType", e.target.value),
|
|
15859
15920
|
...invalid2("billingIdType"),
|
|
15860
|
-
children: ID_TYPES.map((type) => /* @__PURE__ */
|
|
15921
|
+
children: ID_TYPES.map((type) => /* @__PURE__ */ jsx28("option", { value: type, children: t.idTypeOptions[type] }, type))
|
|
15861
15922
|
}
|
|
15862
15923
|
),
|
|
15863
15924
|
error("billingIdType")
|
|
15864
15925
|
] }),
|
|
15865
|
-
!isSpanishNif && /* @__PURE__ */
|
|
15866
|
-
/* @__PURE__ */
|
|
15867
|
-
/* @__PURE__ */
|
|
15926
|
+
!isSpanishNif && /* @__PURE__ */ jsxs26("div", { className: "space-y-1", children: [
|
|
15927
|
+
/* @__PURE__ */ jsx28("label", { htmlFor: "full-invoice-id-country", className: "text-sm font-medium", children: t.idCountry }),
|
|
15928
|
+
/* @__PURE__ */ jsxs26(
|
|
15868
15929
|
"select",
|
|
15869
15930
|
{
|
|
15870
15931
|
id: "full-invoice-id-country",
|
|
@@ -15874,16 +15935,16 @@ function FullInvoiceFields({
|
|
|
15874
15935
|
onChange: (e) => set("billingIdCountry", e.target.value),
|
|
15875
15936
|
...invalid2("billingIdCountry"),
|
|
15876
15937
|
children: [
|
|
15877
|
-
/* @__PURE__ */
|
|
15878
|
-
countries.map((c) => /* @__PURE__ */
|
|
15938
|
+
/* @__PURE__ */ jsx28("option", { value: "", disabled: true, children: t.chooseCountry }),
|
|
15939
|
+
countries.map((c) => /* @__PURE__ */ jsx28("option", { value: c.code, children: c.name }, c.code))
|
|
15879
15940
|
]
|
|
15880
15941
|
}
|
|
15881
15942
|
),
|
|
15882
15943
|
error("billingIdCountry")
|
|
15883
15944
|
] }),
|
|
15884
|
-
/* @__PURE__ */
|
|
15885
|
-
/* @__PURE__ */
|
|
15886
|
-
/* @__PURE__ */
|
|
15945
|
+
/* @__PURE__ */ jsxs26("div", { className: "space-y-1", children: [
|
|
15946
|
+
/* @__PURE__ */ jsx28("label", { htmlFor: "full-invoice-nif", className: "text-sm font-medium", children: isSpanishNif ? t.spanishNif : t.documentNumber }),
|
|
15947
|
+
/* @__PURE__ */ jsx28(
|
|
15887
15948
|
"input",
|
|
15888
15949
|
{
|
|
15889
15950
|
id: "full-invoice-nif",
|
|
@@ -15896,9 +15957,9 @@ function FullInvoiceFields({
|
|
|
15896
15957
|
),
|
|
15897
15958
|
error("billingNif")
|
|
15898
15959
|
] }),
|
|
15899
|
-
/* @__PURE__ */
|
|
15900
|
-
/* @__PURE__ */
|
|
15901
|
-
/* @__PURE__ */
|
|
15960
|
+
/* @__PURE__ */ jsxs26("div", { className: "space-y-1", children: [
|
|
15961
|
+
/* @__PURE__ */ jsx28("label", { htmlFor: "full-invoice-name", className: "text-sm font-medium", children: t.name }),
|
|
15962
|
+
/* @__PURE__ */ jsx28(
|
|
15902
15963
|
"input",
|
|
15903
15964
|
{
|
|
15904
15965
|
id: "full-invoice-name",
|
|
@@ -15911,9 +15972,9 @@ function FullInvoiceFields({
|
|
|
15911
15972
|
),
|
|
15912
15973
|
error("billingName")
|
|
15913
15974
|
] }),
|
|
15914
|
-
/* @__PURE__ */
|
|
15915
|
-
/* @__PURE__ */
|
|
15916
|
-
/* @__PURE__ */
|
|
15975
|
+
/* @__PURE__ */ jsxs26("div", { className: "space-y-1 sm:col-span-2", children: [
|
|
15976
|
+
/* @__PURE__ */ jsx28("label", { htmlFor: "full-invoice-street", className: "text-sm font-medium", children: t.street }),
|
|
15977
|
+
/* @__PURE__ */ jsx28(
|
|
15917
15978
|
"input",
|
|
15918
15979
|
{
|
|
15919
15980
|
id: "full-invoice-street",
|
|
@@ -15925,9 +15986,9 @@ function FullInvoiceFields({
|
|
|
15925
15986
|
}
|
|
15926
15987
|
)
|
|
15927
15988
|
] }),
|
|
15928
|
-
/* @__PURE__ */
|
|
15929
|
-
/* @__PURE__ */
|
|
15930
|
-
/* @__PURE__ */
|
|
15989
|
+
/* @__PURE__ */ jsxs26("div", { className: "space-y-1", children: [
|
|
15990
|
+
/* @__PURE__ */ jsx28("label", { htmlFor: "full-invoice-postal-code", className: "text-sm font-medium", children: t.postalCode }),
|
|
15991
|
+
/* @__PURE__ */ jsx28(
|
|
15931
15992
|
"input",
|
|
15932
15993
|
{
|
|
15933
15994
|
id: "full-invoice-postal-code",
|
|
@@ -15938,9 +15999,9 @@ function FullInvoiceFields({
|
|
|
15938
15999
|
}
|
|
15939
16000
|
)
|
|
15940
16001
|
] }),
|
|
15941
|
-
/* @__PURE__ */
|
|
15942
|
-
/* @__PURE__ */
|
|
15943
|
-
/* @__PURE__ */
|
|
16002
|
+
/* @__PURE__ */ jsxs26("div", { className: "space-y-1", children: [
|
|
16003
|
+
/* @__PURE__ */ jsx28("label", { htmlFor: "full-invoice-city", className: "text-sm font-medium", children: t.city }),
|
|
16004
|
+
/* @__PURE__ */ jsx28(
|
|
15944
16005
|
"input",
|
|
15945
16006
|
{
|
|
15946
16007
|
id: "full-invoice-city",
|
|
@@ -15951,9 +16012,9 @@ function FullInvoiceFields({
|
|
|
15951
16012
|
}
|
|
15952
16013
|
)
|
|
15953
16014
|
] }),
|
|
15954
|
-
/* @__PURE__ */
|
|
15955
|
-
/* @__PURE__ */
|
|
15956
|
-
/* @__PURE__ */
|
|
16015
|
+
/* @__PURE__ */ jsxs26("div", { className: "space-y-1", children: [
|
|
16016
|
+
/* @__PURE__ */ jsx28("label", { htmlFor: "full-invoice-country", className: "text-sm font-medium", children: t.country }),
|
|
16017
|
+
/* @__PURE__ */ jsx28(
|
|
15957
16018
|
"select",
|
|
15958
16019
|
{
|
|
15959
16020
|
id: "full-invoice-country",
|
|
@@ -15961,18 +16022,18 @@ function FullInvoiceFields({
|
|
|
15961
16022
|
required: true,
|
|
15962
16023
|
value: value.country,
|
|
15963
16024
|
onChange: (e) => set("country", e.target.value),
|
|
15964
|
-
children: countries.map((c) => /* @__PURE__ */
|
|
16025
|
+
children: countries.map((c) => /* @__PURE__ */ jsx28("option", { value: c.code, children: c.name }, c.code))
|
|
15965
16026
|
}
|
|
15966
16027
|
)
|
|
15967
16028
|
] }),
|
|
15968
|
-
/* @__PURE__ */
|
|
16029
|
+
/* @__PURE__ */ jsx28("div", { className: "sm:col-span-2", children: error("address") })
|
|
15969
16030
|
] })
|
|
15970
16031
|
] });
|
|
15971
16032
|
}
|
|
15972
16033
|
|
|
15973
16034
|
// src/components/contact-interest-field.tsx
|
|
15974
16035
|
import { cn as cn23 } from "@reblu/site-ui/utils";
|
|
15975
|
-
import { jsx as
|
|
16036
|
+
import { jsx as jsx29, jsxs as jsxs27 } from "react/jsx-runtime";
|
|
15976
16037
|
function ContactInterestField({
|
|
15977
16038
|
interest,
|
|
15978
16039
|
value,
|
|
@@ -15989,18 +16050,18 @@ function ContactInterestField({
|
|
|
15989
16050
|
else next2.delete(option2);
|
|
15990
16051
|
onChange(interest.options.filter((candidate) => next2.has(candidate)));
|
|
15991
16052
|
};
|
|
15992
|
-
return /* @__PURE__ */
|
|
15993
|
-
/* @__PURE__ */
|
|
15994
|
-
/* @__PURE__ */
|
|
16053
|
+
return /* @__PURE__ */ jsxs27("fieldset", { "data-slot": "contact-interest", className: cn23("space-y-2", className), children: [
|
|
16054
|
+
/* @__PURE__ */ jsx29("legend", { className: "text-sm font-medium", children: interest.label }),
|
|
16055
|
+
/* @__PURE__ */ jsx29("div", { className: "flex flex-col gap-2", children: interest.options.map((option2, index) => {
|
|
15995
16056
|
const id = `${idPrefix}-${index}`;
|
|
15996
|
-
return /* @__PURE__ */
|
|
16057
|
+
return /* @__PURE__ */ jsxs27(
|
|
15997
16058
|
"label",
|
|
15998
16059
|
{
|
|
15999
16060
|
htmlFor: id,
|
|
16000
16061
|
"data-slot": "contact-interest-option",
|
|
16001
16062
|
className: "flex items-center gap-2 text-sm",
|
|
16002
16063
|
children: [
|
|
16003
|
-
/* @__PURE__ */
|
|
16064
|
+
/* @__PURE__ */ jsx29(
|
|
16004
16065
|
"input",
|
|
16005
16066
|
{
|
|
16006
16067
|
id,
|
|
@@ -16048,6 +16109,7 @@ export {
|
|
|
16048
16109
|
EMPTY_FULL_INVOICE_VALUE,
|
|
16049
16110
|
FaqAccordion,
|
|
16050
16111
|
FullInvoiceFields,
|
|
16112
|
+
LegalDocument,
|
|
16051
16113
|
LessonPreview,
|
|
16052
16114
|
MarkdownRenderer,
|
|
16053
16115
|
OrderConfirmation,
|