@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/dist/index.js CHANGED
@@ -13523,8 +13523,53 @@ function CoursePurchaseTerms({
13523
13523
  );
13524
13524
  }
13525
13525
 
13526
- // src/components/lesson-preview.tsx
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 isVisiblyEmpty2(html5) {
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 !== "" && !isVisiblyEmpty2(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__ */ jsxs4(
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__ */ jsxs4("header", { className: "space-y-2", children: [
13578
- /* @__PURE__ */ jsx4(
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__ */ jsx4(
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__ */ jsxs4("p", { className: "text-sm text-muted-foreground", children: [
13595
- /* @__PURE__ */ jsxs4("span", { className: "sr-only", children: [
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__ */ jsx4(
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__ */ jsx4(
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__ */ jsx4(
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__ */ jsx4("div", { "data-slot": "lesson-preview-content", children: /* @__PURE__ */ jsx4(
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 jsx5, jsxs as jsxs5 } from "react/jsx-runtime";
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__ */ jsxs5("header", { className: "space-y-4", children: [
13662
- page.category && /* @__PURE__ */ jsx5("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 }),
13663
- /* @__PURE__ */ jsx5("h1", { className: "text-4xl font-bold tracking-tight", children: page.title }),
13664
- page.subtitle && /* @__PURE__ */ jsx5("p", { className: "text-lg text-muted-foreground", children: page.subtitle }),
13665
- page.coverImageUrl && /* @__PURE__ */ jsx5("div", { className: "relative aspect-[21/9] w-full overflow-hidden rounded-xl bg-muted", children: /* @__PURE__ */ jsx5(
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__ */ jsx5("div", { className: "pt-2", children: /* @__PURE__ */ jsx5(
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__ */ jsx5("div", { className: cn2("grid gap-4", section.images.length > 1 ? "sm:grid-cols-2" : "grid-cols-1"), children: section.images.map((img) => /* @__PURE__ */ jsxs5("figure", { className: "space-y-1", children: [
13695
- /* @__PURE__ */ jsx5("div", { className: "relative aspect-video w-full overflow-hidden rounded-lg bg-muted", children: /* @__PURE__ */ jsx5("img", { src: img.url, alt: img.alt, loading: "lazy", className: "h-full w-full object-cover" }) }),
13696
- img.caption && /* @__PURE__ */ jsx5("figcaption", { className: "text-sm text-muted-foreground", children: img.caption })
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__ */ jsxs5("div", { className: "space-y-4", children: [
13704
- section.heading && /* @__PURE__ */ jsx5("h2", { className: "text-2xl font-bold", children: section.heading }),
13705
- /* @__PURE__ */ jsx5(SafeHtml, { html: sanitizeHtml(section.contentHtml), headingOffset: 2 }),
13706
- /* @__PURE__ */ jsx5(SectionCta, { section })
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__ */ jsx5("section", { className: "grid items-center gap-8 md:grid-cols-2", children: imageFirst ? /* @__PURE__ */ jsxs5(Fragment2, { children: [
13710
- /* @__PURE__ */ jsx5(SectionImages, { section }),
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__ */ jsxs5(Fragment2, { children: [
13757
+ ] }) : /* @__PURE__ */ jsxs6(Fragment2, { children: [
13713
13758
  body3,
13714
- /* @__PURE__ */ jsx5(SectionImages, { section })
13759
+ /* @__PURE__ */ jsx6(SectionImages, { section })
13715
13760
  ] }) });
13716
13761
  }
13717
- return /* @__PURE__ */ jsxs5("section", { className: "space-y-4", children: [
13762
+ return /* @__PURE__ */ jsxs6("section", { className: "space-y-4", children: [
13718
13763
  body3,
13719
- /* @__PURE__ */ jsx5(SectionImages, { section })
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__ */ jsx5("div", { className: "space-y-12", children: ordered.map((section) => /* @__PURE__ */ jsx5(PageSectionBlock, { section }, section.id)) });
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 jsx6, jsxs as jsxs6 } from "react/jsx-runtime";
13774
+ import { jsx as jsx7, jsxs as jsxs7 } from "react/jsx-runtime";
13730
13775
  function Treatment({ page, className }) {
13731
- return /* @__PURE__ */ jsxs6("article", { className: cn3("space-y-12", className), "data-slot": "treatment", children: [
13732
- /* @__PURE__ */ jsx6(PageHero, { page }),
13733
- /* @__PURE__ */ jsx6(PageSectionList, { sections: page.sections })
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 jsx7, jsxs as jsxs7 } from "react/jsx-runtime";
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__ */ jsx7(PageCardGridSection, { ...props });
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__ */ jsxs7("section", { className: cn4("space-y-6", className), children: [
13758
- showHeading && /* @__PURE__ */ jsx7("h2", { className: "text-2xl font-bold", children: heading }),
13759
- /* @__PURE__ */ jsx7("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__ */ jsx7("li", { children: /* @__PURE__ */ jsxs7(
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__ */ jsx7("div", { className: "relative aspect-video overflow-hidden bg-muted", children: /* @__PURE__ */ jsx7(
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__ */ jsxs7("div", { className: "flex flex-1 flex-col gap-2 p-4", children: [
13775
- /* @__PURE__ */ jsx7("h3", { className: "font-semibold leading-tight transition-colors group-hover:text-primary", children: page.title }),
13776
- page.excerpt && /* @__PURE__ */ jsx7("p", { className: "line-clamp-2 text-sm text-muted-foreground", children: page.excerpt })
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 jsx8, jsxs as jsxs8 } from "react/jsx-runtime";
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__ */ jsxs8("article", { className: cn5("space-y-12", className), "data-slot": "specialty", children: [
13801
- /* @__PURE__ */ jsx8(PageHero, { page }),
13802
- /* @__PURE__ */ jsx8(PageSectionList, { sections: page.sections }),
13803
- /* @__PURE__ */ jsx8(
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 jsx9, jsxs as jsxs9 } from "react/jsx-runtime";
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__ */ jsx9(
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__ */ jsxs9(
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__ */ jsx9("dt", { className: "text-muted-foreground", children: field.label }),
13847
- /* @__PURE__ */ jsx9("dd", { className: "m-0 font-medium", children: field.value })
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 jsx10, jsxs as jsxs10 } from "react/jsx-runtime";
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__ */ jsxs10(
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__ */ jsx10("div", { className: "relative h-24 w-24 overflow-hidden rounded-full bg-muted", children: imageUrl ? /* @__PURE__ */ jsx10("img", { src: imageUrl, alt: name, loading: "lazy", className: "h-full w-full object-cover" }) : /* @__PURE__ */ jsx10(
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__ */ jsxs10("div", { className: "space-y-1", children: [
13890
- /* @__PURE__ */ jsx10("h3", { className: "text-lg font-semibold leading-tight", children: /* @__PURE__ */ jsx10(NameTag, { ...href ? { href, className: "transition-colors hover:text-primary" } : {}, children: name }) }),
13891
- role && /* @__PURE__ */ jsx10("p", { className: "text-sm text-muted-foreground", children: role })
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__ */ jsx10(ProfessionalFields, { fields, variant: "card" }),
13894
- specialties.length > 0 && /* @__PURE__ */ jsx10("ul", { className: "flex flex-wrap justify-center gap-1.5 p-0", children: specialties.map((s2) => /* @__PURE__ */ jsx10(
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__ */ jsx10("p", { className: "text-sm text-muted-foreground", children: bio })
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 jsx11, jsxs as jsxs11 } from "react/jsx-runtime";
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__ */ jsxs11(
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__ */ jsx11("div", { className: "relative aspect-square overflow-hidden bg-muted", children: image ? /* @__PURE__ */ jsx11(
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__ */ jsx11("div", { className: "flex h-full items-center justify-center text-4xl text-muted-foreground/30", "aria-hidden": "true", children: "\u{1F6CD}\uFE0F" }) }),
13932
- /* @__PURE__ */ jsxs11("div", { className: "flex flex-1 flex-col gap-2 p-4", children: [
13933
- product.category && /* @__PURE__ */ jsx11("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 }),
13934
- /* @__PURE__ */ jsx11("h3", { className: "text-base font-semibold leading-tight", children: href ? /* @__PURE__ */ jsx11("a", { href, className: "transition-colors hover:text-primary", children: product.name }) : product.name }),
13935
- product.shortDescription && /* @__PURE__ */ jsx11("p", { className: "line-clamp-2 text-sm text-muted-foreground", children: product.shortDescription }),
13936
- /* @__PURE__ */ jsxs11("div", { className: "mt-auto flex items-baseline gap-2 pt-2", children: [
13937
- /* @__PURE__ */ jsx11("span", { className: "text-lg font-bold text-foreground", children: formatPrice(product.price, currencyCode, locale) }),
13938
- hasDiscount && /* @__PURE__ */ jsx11("span", { className: "text-sm text-muted-foreground line-through", children: formatPrice(product.comparePrice, currencyCode, locale) })
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 jsx12, jsxs as jsxs12 } from "react/jsx-runtime";
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__ */ jsx12(List, { "data-slot": "product-trust-items", className: slotClassName("space-y-2.5", "", className), children: rows.map(({ key: key2, Icon: Icon2, text: text3 }) => /* @__PURE__ */ jsxs12("li", { className: slotClassName("flex items-center gap-3", "text-sm text-muted-foreground", itemClassName), children: [
14175
- /* @__PURE__ */ jsx12(Icon2, { "aria-hidden": "true", className: "h-4 w-4 shrink-0 text-foreground/60" }),
14176
- /* @__PURE__ */ jsx12("span", { children: text3 })
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 jsx13 } from "react/jsx-runtime";
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__ */ jsx13(Tag, { className, children: children2 });
14239
+ return /* @__PURE__ */ jsx14(Tag, { className, children: children2 });
14195
14240
  }
14196
14241
 
14197
14242
  // src/components/faq-accordion.tsx
14198
- import { jsx as jsx14, jsxs as jsxs13 } from "react/jsx-runtime";
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__ */ jsxs13("div", { className: cn9("space-y-4", className), "data-slot": "faq-accordion", children: [
14210
- heading && /* @__PURE__ */ jsx14(Heading, { level: headingLevel, className: "text-2xl font-semibold tracking-tight", children: heading }),
14211
- /* @__PURE__ */ jsx14("div", { className: "divide-y divide-border rounded-xl border border-border", children: visible.map(({ item, index }) => /* @__PURE__ */ jsxs13(
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__ */ jsxs13("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: [
14219
- questionHeadingLevel ? /* @__PURE__ */ jsx14(Heading, { level: questionHeadingLevel, className: "text-base font-medium", children: item.q }) : /* @__PURE__ */ jsx14("span", { children: item.q }),
14220
- /* @__PURE__ */ jsx14(
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__ */ jsx14("p", { className: "whitespace-pre-line pb-4 text-muted-foreground", children: item.a })
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 jsx15, jsxs as jsxs14 } from "react/jsx-runtime";
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__ */ jsx15(
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__ */ jsx15("span", { className: "text-sm font-medium", children: badge.name });
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__ */ jsxs14(
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__ */ jsx15(
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__ */ jsx15("ul", { className: cn10("flex flex-wrap items-center gap-6", listClassName), children: items.map((badge) => {
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__ */ jsx15("li", { children: href ? /* @__PURE__ */ jsxs14("a", { href, target: "_blank", rel: "noopener noreferrer", className: "inline-flex", children: [
14342
- /* @__PURE__ */ jsx15(BadgeContent, { badge, logoClassName }),
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__ */ jsx15("span", { className: "sr-only", children: newWindowLabel })
14345
- ] }) : /* @__PURE__ */ jsx15(BadgeContent, { badge, logoClassName }) }, badge.id);
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__ */ jsx15("div", { "data-slot": "trust-badges", className: cn10("space-y-6", className), children: content });
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__ */ jsxs14(
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__ */ jsx15(
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 jsx16, jsxs as jsxs15 } from "react/jsx-runtime";
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__ */ jsxs15("div", { className: "space-y-4", children: [
14387
- /* @__PURE__ */ jsx16(Heading, { level: headingLevel, className: "text-3xl font-bold tracking-tight md:text-4xl", children: title }),
14388
- subtitle && /* @__PURE__ */ jsx16("p", { className: "text-lg opacity-80", children: subtitle }),
14389
- imageUrl && /* @__PURE__ */ jsx16("div", { className: "relative aspect-[21/9] w-full overflow-hidden rounded-xl bg-muted", children: /* @__PURE__ */ jsx16("img", { src: imageUrl, alt: "", loading: "lazy", className: "h-full w-full object-cover" }) })
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__ */ jsx16(SafeHtml, { html: sanitizeHtml(block.data.html), headingOffset: headingLevel - 1 });
14438
+ return /* @__PURE__ */ jsx17(SafeHtml, { html: sanitizeHtml(block.data.html), headingOffset: headingLevel - 1 });
14394
14439
  }
14395
14440
  function FaqBlock({ block }) {
14396
- return /* @__PURE__ */ jsx16(FaqAccordion, { items: block.data.items });
14441
+ return /* @__PURE__ */ jsx17(FaqAccordion, { items: block.data.items });
14397
14442
  }
14398
14443
  function StatsBlock({ block }) {
14399
- return /* @__PURE__ */ jsx16("dl", { className: "grid gap-6 sm:grid-cols-2 lg:grid-cols-4", children: block.data.items.map((item, i) => /* @__PURE__ */ jsxs15("div", { className: "flex flex-col-reverse gap-1", children: [
14400
- /* @__PURE__ */ jsx16("dt", { className: "text-sm opacity-80", children: item.label }),
14401
- /* @__PURE__ */ jsx16("dd", { className: "text-3xl font-bold", children: item.value })
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__ */ jsxs15("figure", { className: "space-y-4", children: [
14407
- /* @__PURE__ */ jsx16("blockquote", { className: "text-xl italic", children: /* @__PURE__ */ jsx16("p", { children: quote }) }),
14408
- /* @__PURE__ */ jsxs15("figcaption", { className: "flex items-center gap-3", children: [
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__ */ jsx16(
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__ */ jsxs15("span", { children: [
14420
- /* @__PURE__ */ jsx16("span", { className: "font-semibold", children: author }),
14421
- role && /* @__PURE__ */ jsx16("span", { className: "block text-sm opacity-80", children: role })
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__ */ jsx16("ul", { className: "grid list-disc gap-2 pl-5 sm:grid-cols-2", children: block.data.items.map((item, i) => /* @__PURE__ */ jsx16("li", { children: item.text }, i)) });
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__ */ jsx16(
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__ */ jsxs15("figure", { className: "space-y-1", children: [
14442
- /* @__PURE__ */ jsx16("div", { className: "relative aspect-video w-full overflow-hidden rounded-lg bg-muted", children: /* @__PURE__ */ jsx16(
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__ */ jsx16("figcaption", { className: "text-sm opacity-80", children: img.caption })
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__ */ jsxs15(
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__ */ jsx16("div", { className: "aspect-video w-full overflow-hidden bg-muted", children: /* @__PURE__ */ jsx16(
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__ */ jsxs15("div", { className: "space-y-1 p-4", children: [
14477
- /* @__PURE__ */ jsx16(Heading, { level: headingLevel, className: "text-lg font-semibold", children: resolved.title }),
14478
- resolved.role && /* @__PURE__ */ jsx16("p", { className: "text-sm text-muted-foreground", children: resolved.role }),
14479
- resolved.excerpt && /* @__PURE__ */ jsx16("p", { className: "text-muted-foreground", children: resolved.excerpt })
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__ */ jsx16(EmbedCard, { resolved: block.resolved, headingLevel, embedHref });
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__ */ jsx16(EmbedCard, { resolved: block.resolved, headingLevel, embedHref });
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__ */ jsx16("div", { className: "pt-2", children: /* @__PURE__ */ jsx16(
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__ */ jsxs15(
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__ */ jsx16(Heading, { level: headingLevel, className: "text-2xl font-bold tracking-tight", children: /* @__PURE__ */ jsx16("span", { id: headingId, children: block.heading }) }),
14593
- /* @__PURE__ */ jsx16(
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__ */ jsx16(SectionCta2, { cta: block.cta })
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__ */ jsx16("div", { className: cn11("space-y-12", className), "data-slot": "page-blocks", children: sections });
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 jsx17, jsxs as jsxs16 } from "react/jsx-runtime";
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__ */ jsx17(
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__ */ jsxs16("fieldset", { className: "space-y-2", children: [
14677
- /* @__PURE__ */ jsx17("legend", { className: "text-sm font-medium text-foreground", children: legend }),
14678
- /* @__PURE__ */ jsx17("div", { className: "flex flex-wrap gap-2", children: children2 })
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__ */ jsxs16("div", { className: cn12("space-y-6", className), "data-slot": "shop-filters", children: [
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__ */ jsxs16(FilterFieldset, { legend: axis.label, children: [
14705
- /* @__PURE__ */ jsx17(
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__ */ jsx17(
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__ */ jsx17(FilterFieldset, { legend: attr.label, children: attr.options.map((opt) => {
14785
+ return /* @__PURE__ */ jsx18(FilterFieldset, { legend: attr.label, children: attr.options.map((opt) => {
14741
14786
  const isActive = activeValues.includes(opt.value);
14742
- return /* @__PURE__ */ jsx17(
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__ */ jsx17(FilterFieldset, { legend: t.price, children: priceBands.map((band, i) => {
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__ */ jsx17(
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__ */ jsx17(
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__ */ jsx17(
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 jsx18, jsxs as jsxs17 } from "react/jsx-runtime";
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__ */ jsxs17("div", { className: cn13("space-y-6", className), "data-slot": "course-catalog-filters", children: [
14855
- showCategories && /* @__PURE__ */ jsxs17(FilterFieldset, { legend: t.category, children: [
14856
- /* @__PURE__ */ jsx18(
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__ */ jsx18(
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__ */ jsxs17(FilterFieldset, { legend: t.instructor, children: [
14881
- /* @__PURE__ */ jsx18(
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__ */ jsx18(
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__ */ jsxs17(FilterFieldset, { legend: t.price, children: [
14906
- /* @__PURE__ */ jsx18(
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__ */ jsx18(
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__ */ jsx18(
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 jsx19, jsxs as jsxs18 } from "react/jsx-runtime";
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__ */ jsxs18("div", { className: cn14("space-y-4", className), "data-slot": "cart-line-list", children: [
14983
- /* @__PURE__ */ jsx19("div", { "aria-live": "polite", className: "sr-only", children: liveMessage }),
14984
- noticeContent != null && noticeContent !== false && /* @__PURE__ */ jsx19(
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__ */ jsx19("ul", { className: "space-y-4", children: items.map((item) => {
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__ */ jsxs18(
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__ */ jsx19("div", { className: "h-20 w-20 flex-shrink-0 overflow-hidden rounded-lg bg-muted", children: item.imageUrl ? /* @__PURE__ */ jsx19("img", { src: item.imageUrl, alt: item.name, className: "h-full w-full object-cover" }) : null }),
15004
- /* @__PURE__ */ jsxs18("div", { className: "min-w-0 flex-1", children: [
15005
- /* @__PURE__ */ jsx19("p", { className: "truncate text-sm font-semibold leading-tight", children: item.name }),
15006
- item.variantName && /* @__PURE__ */ jsx19("p", { className: "mt-0.5 text-xs text-muted-foreground", children: item.variantName }),
15007
- /* @__PURE__ */ jsxs18("p", { className: "mt-1 text-sm text-muted-foreground", children: [
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__ */ jsxs18(
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__ */ jsx19(
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__ */ jsx19("span", { className: "w-8 text-center text-sm font-semibold tabular-nums", children: item.quantity }),
15031
- /* @__PURE__ */ jsx19(
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__ */ jsx19(
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__ */ jsx19(
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__ */ jsx19("div", { className: "flex-shrink-0 text-right", children: /* @__PURE__ */ jsx19("p", { className: "text-base font-bold", children: formatPrice(item.unitPrice * item.quantity, currencyCode, locale) }) })
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 jsx20, jsxs as jsxs19 } from "react/jsx-runtime";
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__ */ jsxs19(
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__ */ jsxs19("div", { className: "flex justify-between text-muted-foreground", children: [
15112
- /* @__PURE__ */ jsx20("dt", { children: t.subtotal }),
15113
- /* @__PURE__ */ jsx20("dd", { children: formatPrice(subtotal, currencyCode, locale) })
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__ */ jsxs19("div", { className: "flex justify-between text-green-600 dark:text-green-400", children: [
15116
- /* @__PURE__ */ jsx20("dt", { children: autoDiscount ? t.staffDiscountApplied : `${t.discountPrefix}${discountCode ? ` (${discountCode})` : ""}` }),
15117
- /* @__PURE__ */ jsxs19("dd", { children: [
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__ */ jsxs19("div", { className: "flex justify-between text-muted-foreground", children: [
15123
- /* @__PURE__ */ jsx20("dt", { children: t.shipping }),
15124
- /* @__PURE__ */ jsx20("dd", { children: shipping == null || !Number.isFinite(shipping) ? t.shippingCalculated : shipping === 0 ? t.freeShipping : formatPrice(shipping, currencyCode, locale) })
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__ */ jsxs19("div", { className: "flex justify-between border-t border-border pt-2 text-base font-bold", children: [
15127
- /* @__PURE__ */ jsx20("dt", { children: t.total }),
15128
- /* @__PURE__ */ jsx20("dd", { children: formatPrice(total, currencyCode, locale) })
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__ */ jsxs19("div", { className: cn15("space-y-3", className), "data-slot": "cart-summary-wrapper", children: [
15135
- /* @__PURE__ */ jsx20(
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 jsx21 } from "react/jsx-runtime";
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__ */ jsx21(
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__ */ jsx21("p", { children: messages[0] }) : /* @__PURE__ */ jsx21("ul", { className: "list-disc space-y-1 pl-4", children: messages.map((message, index) => /* @__PURE__ */ jsx21("li", { children: message }, index)) })
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 jsx22, jsxs as jsxs20 } from "react/jsx-runtime";
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__ */ jsxs20(
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__ */ jsx22("img", { src: imageUrl, alt: productName, className: "h-10 w-10 flex-shrink-0 rounded-lg object-cover" }),
15231
- /* @__PURE__ */ jsxs20("div", { className: "min-w-0 flex-1", children: [
15232
- /* @__PURE__ */ jsx22("p", { className: "truncate font-semibold text-foreground", children: productName }),
15233
- /* @__PURE__ */ jsx22("p", { className: "truncate text-muted-foreground", children: quantity && quantity > 1 ? `${message} \xB7 x${quantity}` : message })
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__ */ jsx22("div", { className: "flex-shrink-0", children: /* @__PURE__ */ jsx22("a", { href: cartHref, className: "text-sm font-semibold text-primary underline-offset-2 hover:underline", children: t.viewCart }) })
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 jsx23, jsxs as jsxs21 } from "react/jsx-runtime";
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__ */ jsxs21(Fragment3, { children: [
15271
- /* @__PURE__ */ jsx23("div", { className: "fixed inset-0 z-50 bg-black/50", onClick: onClose, "aria-hidden": "true" }),
15272
- /* @__PURE__ */ jsxs21(
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__ */ jsxs21("div", { className: "flex items-start justify-between gap-3", children: [
15285
- /* @__PURE__ */ jsxs21("div", { children: [
15286
- /* @__PURE__ */ jsx23("h2", { id: "checkout-login-prompt-title", className: "text-xl font-bold", children: t.title }),
15287
- /* @__PURE__ */ jsx23("p", { className: "mt-1 text-sm text-muted-foreground", children: t.description })
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__ */ jsx23(
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__ */ jsxs21("div", { className: "space-y-2", children: [
15301
- /* @__PURE__ */ jsx23("label", { htmlFor: "checkout-login-prompt-email", className: "text-sm font-medium", children: t.emailLabel }),
15302
- /* @__PURE__ */ jsx23(
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__ */ jsx23("p", { className: "text-xs text-destructive", children: error })
15362
+ error && /* @__PURE__ */ jsx24("p", { className: "text-xs text-destructive", children: error })
15318
15363
  ] }),
15319
- /* @__PURE__ */ jsxs21("div", { className: "space-y-2", children: [
15320
- /* @__PURE__ */ jsx23(
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__ */ jsx23(
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 jsx24, jsxs as jsxs22 } from "react/jsx-runtime";
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__ */ jsxs22(Fragment4, { children: [
15453
+ return /* @__PURE__ */ jsxs23(Fragment4, { children: [
15409
15454
  loginPrompt,
15410
- /* @__PURE__ */ jsxs22(
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__ */ jsxs22("section", { className: "space-y-4", children: [
15419
- /* @__PURE__ */ jsx24("h2", { className: "border-b border-border pb-2 text-lg font-semibold", children: t.contactTitle }),
15420
- /* @__PURE__ */ jsxs22("div", { className: "grid grid-cols-1 gap-4 sm:grid-cols-2", children: [
15421
- /* @__PURE__ */ jsxs22("div", { className: "space-y-1", children: [
15422
- /* @__PURE__ */ jsx24("label", { htmlFor: "checkout-form-name", className: "text-sm font-medium", children: t.nameLabel }),
15423
- /* @__PURE__ */ jsx24(
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__ */ jsx24("p", { className: "text-xs text-destructive", children: contactErrors.name })
15483
+ contactErrors?.name && /* @__PURE__ */ jsx25("p", { className: "text-xs text-destructive", children: contactErrors.name })
15439
15484
  ] }),
15440
- /* @__PURE__ */ jsxs22("div", { className: "space-y-1", children: [
15441
- /* @__PURE__ */ jsx24("label", { htmlFor: "checkout-form-email", className: "text-sm font-medium", children: t.emailLabel }),
15442
- /* @__PURE__ */ jsx24(
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__ */ jsx24("p", { className: "text-xs text-destructive", children: contactErrors.email })
15502
+ contactErrors?.email && /* @__PURE__ */ jsx25("p", { className: "text-xs text-destructive", children: contactErrors.email })
15458
15503
  ] }),
15459
- /* @__PURE__ */ jsx24("div", { className: "space-y-1", children: /* @__PURE__ */ jsx24(
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__ */ jsx24("p", { role: "alert", className: "text-sm text-destructive", children: generalError }) : null,
15474
- /* @__PURE__ */ jsxs22("section", { className: "space-y-3", children: [
15475
- /* @__PURE__ */ jsx24("h2", { className: "border-b border-border pb-2 text-lg font-semibold", children: t.discountTitle }),
15476
- autoDiscount ? /* @__PURE__ */ jsxs22(
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__ */ jsx24("span", { className: "font-semibold", children: t.staffDiscountApplied }),
15483
- /* @__PURE__ */ jsx24("span", { children: t.discountAppliedSuffix(formatPrice(autoDiscount.amount, currencyCode, locale)) })
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__ */ jsxs22("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: [
15488
- /* @__PURE__ */ jsxs22("div", { className: "flex items-center gap-2 text-sm text-green-700 dark:text-green-400", children: [
15489
- /* @__PURE__ */ jsx24("span", { className: "font-semibold", children: appliedDiscount.code }),
15490
- /* @__PURE__ */ jsx24("span", { children: t.discountAppliedSuffix(formatPrice(appliedDiscount.amount, currencyCode, locale)) })
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__ */ jsx24(
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__ */ jsxs22("div", { className: "flex gap-2", children: [
15503
- /* @__PURE__ */ jsx24("label", { htmlFor: "checkout-form-discount-code", className: "sr-only", children: t.discountTitle }),
15504
- /* @__PURE__ */ jsx24(
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__ */ jsx24(
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__ */ jsx24("p", { className: "text-xs text-destructive", children: discountError })
15572
+ discountError && /* @__PURE__ */ jsx25("p", { className: "text-xs text-destructive", children: discountError })
15528
15573
  ] }),
15529
- /* @__PURE__ */ jsx24(
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 jsx25, jsxs as jsxs23 } from "react/jsx-runtime";
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__ */ jsxs23("div", { className: cn20("space-y-1 text-sm", className), "data-slot": "order-invoice-link", children: [
15561
- /* @__PURE__ */ jsx25(
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__ */ jsx25("p", { className: "text-muted-foreground", children: t.signInHint })
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 jsx26, jsxs as jsxs24 } from "react/jsx-runtime";
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__ */ jsxs24("div", { className: cn21("space-y-6 text-center", className), "data-slot": "order-confirmation", children: [
15641
- /* @__PURE__ */ jsx26("h1", { className: "text-3xl font-bold", children: title }),
15642
- /* @__PURE__ */ jsx26("p", { className: "text-lg text-muted-foreground", children: description }),
15643
- showFullOrderSummary && order && /* @__PURE__ */ jsxs24("div", { className: "space-y-6", children: [
15644
- /* @__PURE__ */ jsxs24("div", { className: "inline-block rounded-xl bg-muted px-6 py-4", children: [
15645
- /* @__PURE__ */ jsx26("p", { className: "mb-1 text-xs uppercase tracking-widest text-muted-foreground", children: t.orderNumberLabel }),
15646
- /* @__PURE__ */ jsx26("p", { className: "font-mono text-lg font-semibold", children: order.orderNumber })
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__ */ jsxs24("div", { className: "mx-auto max-w-sm space-y-3 rounded-xl border border-border bg-card p-5 text-left", children: [
15649
- order.items.map((item, idx) => /* @__PURE__ */ jsxs24(
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__ */ jsxs24("span", { className: "max-w-[60%] truncate text-muted-foreground", children: [
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__ */ jsx26("span", { children: formatPrice(item.total, currencyCode, locale) })
15705
+ /* @__PURE__ */ jsx27("span", { children: formatPrice(item.total, currencyCode, locale) })
15661
15706
  ]
15662
15707
  },
15663
15708
  idx
15664
15709
  )),
15665
- /* @__PURE__ */ jsx26("div", { className: "space-y-1 border-t border-border pt-3 text-sm", children: /* @__PURE__ */ jsxs24("div", { className: "flex justify-between pt-1 text-base font-bold", children: [
15666
- /* @__PURE__ */ jsx26("span", { children: t.totalLabel }),
15667
- /* @__PURE__ */ jsx26("span", { children: formatPrice(order.total, currencyCode, locale) })
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__ */ jsxs24("p", { className: "mx-auto max-w-sm text-sm text-muted-foreground", children: [
15715
+ /* @__PURE__ */ jsxs25("p", { className: "mx-auto max-w-sm text-sm text-muted-foreground", children: [
15671
15716
  t.confirmationEmailPrefix,
15672
15717
  " ",
15673
- /* @__PURE__ */ jsx26("span", { className: "font-medium text-foreground", children: order.customerEmail }),
15718
+ /* @__PURE__ */ jsx27("span", { className: "font-medium text-foreground", children: order.customerEmail }),
15674
15719
  "."
15675
15720
  ] }),
15676
- /* @__PURE__ */ jsx26(
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__ */ jsxs24("div", { className: "inline-block rounded-xl bg-muted px-6 py-4", children: [
15685
- /* @__PURE__ */ jsx26("p", { className: "mb-1 text-xs uppercase tracking-widest text-muted-foreground", children: t.orderReferenceLabel }),
15686
- /* @__PURE__ */ jsx26("p", { className: "font-mono text-lg font-semibold", children: order.orderNumber })
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__ */ jsx26(
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__ */ jsx26(
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__ */ jsxs24("div", { className: "inline-block rounded-xl bg-muted px-6 py-4", children: [
15706
- /* @__PURE__ */ jsx26("p", { className: "mb-1 text-xs uppercase tracking-widest text-muted-foreground", children: t.sessionReferenceLabel }),
15707
- /* @__PURE__ */ jsx26("p", { className: "break-all font-mono text-sm font-semibold", children: sessionId })
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 jsx27, jsxs as jsxs25 } from "react/jsx-runtime";
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__ */ jsx27("p", { id: `full-invoice-${key2}-error`, className: "text-sm text-destructive", children: errors[key2] }) : null;
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__ */ jsxs25("section", { className: cn22("space-y-4", className), "data-slot": "full-invoice-fields", children: [
15834
- overCap ? /* @__PURE__ */ jsx27("p", { role: "note", className: "rounded-lg border border-border p-4 text-sm", children: t.overCapNotice }) : /* @__PURE__ */ jsxs25("div", { className: "space-y-1", children: [
15835
- /* @__PURE__ */ jsxs25("label", { className: "flex items-center gap-2 text-sm font-medium", children: [
15836
- /* @__PURE__ */ jsx27(
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__ */ jsx27("p", { className: "text-sm text-muted-foreground", children: t.underCapNotice })
15891
+ /* @__PURE__ */ jsx28("p", { className: "text-sm text-muted-foreground", children: t.underCapNotice })
15847
15892
  ] }),
15848
- showFields && /* @__PURE__ */ jsxs25("div", { className: "grid grid-cols-1 gap-4 sm:grid-cols-2", children: [
15849
- /* @__PURE__ */ jsxs25("div", { className: "space-y-1", children: [
15850
- /* @__PURE__ */ jsx27("label", { htmlFor: "full-invoice-id-type", className: "text-sm font-medium", children: t.idType }),
15851
- /* @__PURE__ */ jsx27(
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__ */ jsx27("option", { value: type, children: t.idTypeOptions[type] }, type))
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__ */ jsxs25("div", { className: "space-y-1", children: [
15866
- /* @__PURE__ */ jsx27("label", { htmlFor: "full-invoice-id-country", className: "text-sm font-medium", children: t.idCountry }),
15867
- /* @__PURE__ */ jsxs25(
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__ */ jsx27("option", { value: "", disabled: true, children: t.chooseCountry }),
15878
- countries.map((c) => /* @__PURE__ */ jsx27("option", { value: c.code, children: c.name }, c.code))
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__ */ jsxs25("div", { className: "space-y-1", children: [
15885
- /* @__PURE__ */ jsx27("label", { htmlFor: "full-invoice-nif", className: "text-sm font-medium", children: isSpanishNif ? t.spanishNif : t.documentNumber }),
15886
- /* @__PURE__ */ jsx27(
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__ */ jsxs25("div", { className: "space-y-1", children: [
15900
- /* @__PURE__ */ jsx27("label", { htmlFor: "full-invoice-name", className: "text-sm font-medium", children: t.name }),
15901
- /* @__PURE__ */ jsx27(
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__ */ jsxs25("div", { className: "space-y-1 sm:col-span-2", children: [
15915
- /* @__PURE__ */ jsx27("label", { htmlFor: "full-invoice-street", className: "text-sm font-medium", children: t.street }),
15916
- /* @__PURE__ */ jsx27(
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__ */ jsxs25("div", { className: "space-y-1", children: [
15929
- /* @__PURE__ */ jsx27("label", { htmlFor: "full-invoice-postal-code", className: "text-sm font-medium", children: t.postalCode }),
15930
- /* @__PURE__ */ jsx27(
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__ */ jsxs25("div", { className: "space-y-1", children: [
15942
- /* @__PURE__ */ jsx27("label", { htmlFor: "full-invoice-city", className: "text-sm font-medium", children: t.city }),
15943
- /* @__PURE__ */ jsx27(
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__ */ jsxs25("div", { className: "space-y-1", children: [
15955
- /* @__PURE__ */ jsx27("label", { htmlFor: "full-invoice-country", className: "text-sm font-medium", children: t.country }),
15956
- /* @__PURE__ */ jsx27(
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__ */ jsx27("option", { value: c.code, children: c.name }, c.code))
16009
+ children: countries.map((c) => /* @__PURE__ */ jsx28("option", { value: c.code, children: c.name }, c.code))
15965
16010
  }
15966
16011
  )
15967
16012
  ] }),
15968
- /* @__PURE__ */ jsx27("div", { className: "sm:col-span-2", children: error("address") })
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 jsx28, jsxs as jsxs26 } from "react/jsx-runtime";
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__ */ jsxs26("fieldset", { "data-slot": "contact-interest", className: cn23("space-y-2", className), children: [
15993
- /* @__PURE__ */ jsx28("legend", { className: "text-sm font-medium", children: interest.label }),
15994
- /* @__PURE__ */ jsx28("div", { className: "flex flex-col gap-2", children: interest.options.map((option2, index) => {
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__ */ jsxs26(
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__ */ jsx28(
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,