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