keystone-design-bootstrap 1.0.47 → 1.0.49

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.
Files changed (38) hide show
  1. package/dist/{blog-post-CvRhU9ss.d.ts → blog-post-D7HFCDp1.d.ts} +2 -2
  2. package/dist/design_system/elements/index.d.ts +25 -1
  3. package/dist/design_system/elements/index.js +103 -3
  4. package/dist/design_system/elements/index.js.map +1 -1
  5. package/dist/design_system/sections/index.d.ts +64 -3
  6. package/dist/design_system/sections/index.js +1305 -458
  7. package/dist/design_system/sections/index.js.map +1 -1
  8. package/dist/form-BLZuTGkr.d.ts +137 -0
  9. package/dist/index.d.ts +6 -5
  10. package/dist/index.js +1335 -487
  11. package/dist/index.js.map +1 -1
  12. package/dist/lib/server-api.d.ts +49 -4
  13. package/dist/lib/server-api.js +17 -0
  14. package/dist/lib/server-api.js.map +1 -1
  15. package/dist/photos-8jMeetqV.d.ts +47 -0
  16. package/dist/types/index.d.ts +6 -5
  17. package/dist/utils/photo-helpers.d.ts +6 -15
  18. package/dist/utils/photo-helpers.js +10 -1
  19. package/dist/utils/photo-helpers.js.map +1 -1
  20. package/package.json +1 -1
  21. package/src/design_system/elements/index.tsx +4 -0
  22. package/src/design_system/elements/modal/modal.tsx +129 -0
  23. package/src/design_system/sections/header-navigation.aman.tsx +3 -3
  24. package/src/design_system/sections/header-navigation.balance.tsx +2 -2
  25. package/src/design_system/sections/header-navigation.barelux.tsx +2 -2
  26. package/src/design_system/sections/index.tsx +20 -2
  27. package/src/design_system/sections/offer-detail.tsx +46 -0
  28. package/src/design_system/sections/offers-gallery.tsx +40 -0
  29. package/src/design_system/sections/offers-grid.tsx +108 -0
  30. package/src/design_system/sections/offers-section.tsx +90 -0
  31. package/src/design_system/sections/service-menu-section.tsx +813 -0
  32. package/src/lib/server-api.ts +63 -0
  33. package/src/types/api/photos.ts +11 -10
  34. package/src/types/api/service.ts +21 -0
  35. package/src/utils/photo-helpers.ts +3 -14
  36. package/dist/company-information-C_k_sLSB.d.ts +0 -46
  37. package/dist/form-CWXC-IHT.d.ts +0 -88
  38. package/dist/website-photos-_n2g24IM.d.ts +0 -20
@@ -38,7 +38,7 @@ var __objRest = (source, exclude) => {
38
38
  };
39
39
 
40
40
  // src/design_system/sections/index.tsx
41
- import React59 from "react";
41
+ import React64 from "react";
42
42
 
43
43
  // src/lib/component-registry.ts
44
44
  var registry = /* @__PURE__ */ new Map();
@@ -71,10 +71,10 @@ function useTheme() {
71
71
 
72
72
  // src/design_system/sections/hero-home.tsx
73
73
  import { Fragment, useMemo as useMemo3, useState as useState5 } from "react";
74
- import React14 from "react";
74
+ import React15 from "react";
75
75
 
76
76
  // src/design_system/elements/index.tsx
77
- import React13 from "react";
77
+ import React14 from "react";
78
78
 
79
79
  // src/design_system/elements/buttons/button.tsx
80
80
  import React2, { isValidElement } from "react";
@@ -3696,15 +3696,114 @@ function VideoPlayButton({ onClick, className = "" }) {
3696
3696
  );
3697
3697
  }
3698
3698
 
3699
+ // src/design_system/elements/modal/modal.tsx
3700
+ import React13, { useEffect as useEffect6, useRef as useRef4 } from "react";
3701
+ var MAX_WIDTH_CLASSES = {
3702
+ sm: "max-w-sm",
3703
+ md: "max-w-md",
3704
+ lg: "max-w-lg",
3705
+ xl: "max-w-xl",
3706
+ "2xl": "max-w-2xl",
3707
+ "3xl": "max-w-3xl",
3708
+ "4xl": "max-w-4xl",
3709
+ "5xl": "max-w-5xl"
3710
+ };
3711
+ function Modal({
3712
+ isOpen,
3713
+ onClose,
3714
+ title,
3715
+ titleId = "modal-title",
3716
+ children,
3717
+ overlayClassName,
3718
+ panelClassName,
3719
+ maxWidth = "md"
3720
+ }) {
3721
+ const overlayRef = useRef4(null);
3722
+ const closeButtonRef = useRef4(null);
3723
+ useEffect6(() => {
3724
+ var _a;
3725
+ if (!isOpen) return;
3726
+ const previouslyFocused = document.activeElement;
3727
+ (_a = closeButtonRef.current) == null ? void 0 : _a.focus();
3728
+ const handleEscape = (e) => {
3729
+ if (e.key === "Escape") onClose();
3730
+ };
3731
+ document.addEventListener("keydown", handleEscape);
3732
+ document.body.style.overflow = "hidden";
3733
+ return () => {
3734
+ document.removeEventListener("keydown", handleEscape);
3735
+ document.body.style.overflow = "";
3736
+ previouslyFocused == null ? void 0 : previouslyFocused.focus();
3737
+ };
3738
+ }, [isOpen, onClose]);
3739
+ if (!isOpen) return null;
3740
+ const maxWidthClass = MAX_WIDTH_CLASSES[maxWidth];
3741
+ return /* @__PURE__ */ React13.createElement(
3742
+ "div",
3743
+ {
3744
+ ref: overlayRef,
3745
+ className: overlayClassName != null ? overlayClassName : "fixed inset-0 z-[200] flex items-center justify-center p-4 bg-black/50",
3746
+ role: "dialog",
3747
+ "aria-modal": "true",
3748
+ "aria-labelledby": title ? titleId : void 0,
3749
+ onClick: (e) => e.target === overlayRef.current && onClose()
3750
+ },
3751
+ /* @__PURE__ */ React13.createElement(
3752
+ "div",
3753
+ {
3754
+ className: panelClassName != null ? panelClassName : `bg-primary border border-secondary rounded-lg shadow-xl w-full overflow-hidden ${maxWidthClass} max-h-[90vh] flex flex-col`,
3755
+ onClick: (e) => e.stopPropagation()
3756
+ },
3757
+ /* @__PURE__ */ React13.createElement("div", { className: "flex items-start justify-between gap-4 p-4 md:p-6 border-b border-secondary flex-shrink-0" }, title ? /* @__PURE__ */ React13.createElement(
3758
+ "h2",
3759
+ {
3760
+ id: titleId,
3761
+ className: "font-display text-lg font-normal text-fg-primary md:text-xl flex-1 min-w-0"
3762
+ },
3763
+ title
3764
+ ) : /* @__PURE__ */ React13.createElement("span", { className: "flex-1", "aria-hidden": true }), /* @__PURE__ */ React13.createElement(
3765
+ "button",
3766
+ {
3767
+ ref: closeButtonRef,
3768
+ type: "button",
3769
+ onClick: onClose,
3770
+ className: "shrink-0 p-1 text-fg-primary hover:text-brand-accent rounded focus:outline-none focus:ring-2 focus:ring-brand-accent",
3771
+ "aria-label": "Close"
3772
+ },
3773
+ /* @__PURE__ */ React13.createElement(
3774
+ "svg",
3775
+ {
3776
+ className: "w-5 h-5",
3777
+ fill: "none",
3778
+ stroke: "currentColor",
3779
+ viewBox: "0 0 24 24",
3780
+ "aria-hidden": true
3781
+ },
3782
+ /* @__PURE__ */ React13.createElement(
3783
+ "path",
3784
+ {
3785
+ strokeLinecap: "round",
3786
+ strokeLinejoin: "round",
3787
+ strokeWidth: 2,
3788
+ d: "M6 18L18 6M6 6l12 12"
3789
+ }
3790
+ )
3791
+ )
3792
+ )),
3793
+ /* @__PURE__ */ React13.createElement("div", { className: "overflow-y-auto flex-1 p-4 md:p-6" }, children)
3794
+ )
3795
+ );
3796
+ }
3797
+
3699
3798
  // src/design_system/elements/index.tsx
3700
3799
  function createThemedExport(componentName, BaseComponent) {
3701
3800
  return function ThemedComponent(props) {
3702
3801
  const { theme } = useTheme();
3703
3802
  try {
3704
3803
  const Component2 = getThemedComponent(componentName, theme);
3705
- return React13.createElement(Component2, props);
3804
+ return React14.createElement(Component2, props);
3706
3805
  } catch (e) {
3707
- return React13.createElement(BaseComponent, props);
3806
+ return React14.createElement(BaseComponent, props);
3708
3807
  }
3709
3808
  };
3710
3809
  }
@@ -3779,13 +3878,13 @@ var AvatarsWithReview = ({
3779
3878
  };
3780
3879
  });
3781
3880
  }, [stockPhotos]);
3782
- return /* @__PURE__ */ React14.createElement("div", { className: cx("flex items-center gap-4", className) }, /* @__PURE__ */ React14.createElement("div", { className: "inline-flex -space-x-3 overflow-hidden" }, avatarPhotos.map((avatar, index) => /* @__PURE__ */ React14.createElement(
3881
+ return /* @__PURE__ */ React15.createElement("div", { className: cx("flex items-center gap-4", className) }, /* @__PURE__ */ React15.createElement("div", { className: "inline-flex -space-x-3 overflow-hidden" }, avatarPhotos.map((avatar, index) => /* @__PURE__ */ React15.createElement(
3783
3882
  "div",
3784
3883
  {
3785
3884
  key: index,
3786
3885
  className: "inline-block size-10 rounded-full ring-[1.5px] ring-bg-primary outline-1 -outline-offset-1 outline-avatar-contrast-border overflow-hidden"
3787
3886
  },
3788
- /* @__PURE__ */ React14.createElement(
3887
+ /* @__PURE__ */ React15.createElement(
3789
3888
  PhotoWithFallback2,
3790
3889
  {
3791
3890
  photoUrl: avatar.url,
@@ -3794,10 +3893,10 @@ var AvatarsWithReview = ({
3794
3893
  className: "size-full object-cover"
3795
3894
  }
3796
3895
  )
3797
- ))), /* @__PURE__ */ React14.createElement("div", { className: "flex flex-col gap-0.5" }, /* @__PURE__ */ React14.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ React14.createElement("div", { className: "flex items-center gap-1" }, Array(5).fill(null).map((_, index) => {
3896
+ ))), /* @__PURE__ */ React15.createElement("div", { className: "flex flex-col gap-0.5" }, /* @__PURE__ */ React15.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ React15.createElement("div", { className: "flex items-center gap-1" }, Array(5).fill(null).map((_, index) => {
3798
3897
  const clipId0 = `clip0_star_${index}`;
3799
3898
  const clipId1 = `clip1_star_${index}`;
3800
- return /* @__PURE__ */ React14.createElement(
3899
+ return /* @__PURE__ */ React15.createElement(
3801
3900
  "svg",
3802
3901
  {
3803
3902
  key: index,
@@ -3808,22 +3907,22 @@ var AvatarsWithReview = ({
3808
3907
  className: "relative size-5 shrink-0 grow-0",
3809
3908
  preserveAspectRatio: "none"
3810
3909
  },
3811
- /* @__PURE__ */ React14.createElement("g", { clipPath: `url(#${clipId0})` }, /* @__PURE__ */ React14.createElement(
3910
+ /* @__PURE__ */ React15.createElement("g", { clipPath: `url(#${clipId0})` }, /* @__PURE__ */ React15.createElement(
3812
3911
  "path",
3813
3912
  {
3814
3913
  d: "M9.53834 1.60996C9.70914 1.19932 10.2909 1.19932 10.4617 1.60996L12.5278 6.57744C12.5998 6.75056 12.7626 6.86885 12.9495 6.88383L18.3123 7.31376C18.7556 7.3493 18.9354 7.90256 18.5976 8.19189L14.5117 11.6919C14.3693 11.8139 14.3071 12.0053 14.3506 12.1876L15.5989 17.4208C15.7021 17.8534 15.2315 18.1954 14.8519 17.9635L10.2606 15.1592C10.1006 15.0615 9.89938 15.0615 9.73937 15.1592L5.14806 17.9635C4.76851 18.1954 4.29788 17.8534 4.40108 17.4208L5.64939 12.1876C5.69289 12.0053 5.6307 11.8139 5.48831 11.6919L1.40241 8.19189C1.06464 7.90256 1.24441 7.3493 1.68773 7.31376L7.05054 6.88383C7.23744 6.86885 7.40024 6.75056 7.47225 6.57744L9.53834 1.60996Z",
3815
3914
  className: "fill-bg-tertiary"
3816
3915
  }
3817
- ), /* @__PURE__ */ React14.createElement("g", { clipPath: `url(#${clipId1})` }, /* @__PURE__ */ React14.createElement(
3916
+ ), /* @__PURE__ */ React15.createElement("g", { clipPath: `url(#${clipId1})` }, /* @__PURE__ */ React15.createElement(
3818
3917
  "path",
3819
3918
  {
3820
3919
  d: "M9.53834 1.60996C9.70914 1.19932 10.2909 1.19932 10.4617 1.60996L12.5278 6.57744C12.5998 6.75056 12.7626 6.86885 12.9495 6.88383L18.3123 7.31376C18.7556 7.3493 18.9354 7.90256 18.5976 8.19189L14.5117 11.6919C14.3693 11.8139 14.3071 12.0053 14.3506 12.1876L15.5989 17.4208C15.7021 17.8534 15.2315 18.1954 14.8519 17.9635L10.2606 15.1592C10.1006 15.0615 9.89938 15.0615 9.73937 15.1592L5.14806 17.9635C4.76851 18.1954 4.29788 17.8534 4.40108 17.4208L5.64939 12.1876C5.69289 12.0053 5.6307 11.8139 5.48831 11.6919L1.40241 8.19189C1.06464 7.90256 1.24441 7.3493 1.68773 7.31376L7.05054 6.88383C7.23744 6.86885 7.40024 6.75056 7.47225 6.57744L9.53834 1.60996Z",
3821
3920
  className: "fill-warning-300"
3822
3921
  }
3823
3922
  ))),
3824
- /* @__PURE__ */ React14.createElement("defs", null, /* @__PURE__ */ React14.createElement("clipPath", { id: clipId0 }, /* @__PURE__ */ React14.createElement("rect", { width: 20, height: 20, fill: "white" })), /* @__PURE__ */ React14.createElement("clipPath", { id: clipId1 }, /* @__PURE__ */ React14.createElement("rect", { width: 20, height: 20, fill: "white" })))
3923
+ /* @__PURE__ */ React15.createElement("defs", null, /* @__PURE__ */ React15.createElement("clipPath", { id: clipId0 }, /* @__PURE__ */ React15.createElement("rect", { width: 20, height: 20, fill: "white" })), /* @__PURE__ */ React15.createElement("clipPath", { id: clipId1 }, /* @__PURE__ */ React15.createElement("rect", { width: 20, height: 20, fill: "white" })))
3825
3924
  );
3826
- }))), /* @__PURE__ */ React14.createElement("p", { className: "text-md font-medium text-tertiary" }, "from ", count, "+ reviews")));
3925
+ }))), /* @__PURE__ */ React15.createElement("p", { className: "text-md font-medium text-tertiary" }, "from ", count, "+ reviews")));
3827
3926
  };
3828
3927
  var HeroHome = ({
3829
3928
  websitePhotos,
@@ -3842,7 +3941,7 @@ var HeroHome = ({
3842
3941
  alt: ((_b = websitePhotos == null ? void 0 : websitePhotos.hero) == null ? void 0 : _b.alt) || "Hero image"
3843
3942
  };
3844
3943
  const stockPhotos = (websitePhotos == null ? void 0 : websitePhotos.stock_photos) || [];
3845
- return /* @__PURE__ */ React14.createElement(Fragment, null, /* @__PURE__ */ React14.createElement("section", { className: "bg-primary py-16 md:pb-24" }, /* @__PURE__ */ React14.createElement("div", { className: "mx-auto grid max-w-container grid-cols-1 items-center gap-16 px-4 md:px-8 lg:grid-cols-2 lg:gap-8" }, /* @__PURE__ */ React14.createElement("div", { className: "flex max-w-3xl flex-col items-start lg:pr-8" }, /* @__PURE__ */ React14.createElement("h1", { className: "text-display-md font-semibold text-primary md:text-display-lg lg:text-display-xl" }, headline || "Welcome"), /* @__PURE__ */ React14.createElement("p", { className: "mt-4 max-w-lg text-lg text-balance text-tertiary md:mt-6 md:text-xl" }, subhead || ""), email_signup && /* @__PURE__ */ React14.createElement(
3944
+ return /* @__PURE__ */ React15.createElement(Fragment, null, /* @__PURE__ */ React15.createElement("section", { className: "bg-primary py-16 md:pb-24" }, /* @__PURE__ */ React15.createElement("div", { className: "mx-auto grid max-w-container grid-cols-1 items-center gap-16 px-4 md:px-8 lg:grid-cols-2 lg:gap-8" }, /* @__PURE__ */ React15.createElement("div", { className: "flex max-w-3xl flex-col items-start lg:pr-8" }, /* @__PURE__ */ React15.createElement("h1", { className: "text-display-md font-semibold text-primary md:text-display-lg lg:text-display-xl" }, headline || "Welcome"), /* @__PURE__ */ React15.createElement("p", { className: "mt-4 max-w-lg text-lg text-balance text-tertiary md:mt-6 md:text-xl" }, subhead || ""), email_signup && /* @__PURE__ */ React15.createElement(
3846
3945
  Form2,
3847
3946
  {
3848
3947
  onSubmit: (e) => {
@@ -3855,7 +3954,7 @@ var HeroHome = ({
3855
3954
  },
3856
3955
  className: "mt-8 flex w-full flex-col items-stretch gap-4 md:mt-12 md:max-w-120 md:flex-row md:items-start"
3857
3956
  },
3858
- /* @__PURE__ */ React14.createElement(
3957
+ /* @__PURE__ */ React15.createElement(
3859
3958
  Input3,
3860
3959
  {
3861
3960
  isRequired: true,
@@ -3864,7 +3963,7 @@ var HeroHome = ({
3864
3963
  type: "email",
3865
3964
  placeholder: email_signup.placeholder,
3866
3965
  wrapperClassName: "py-0.5",
3867
- hint: /* @__PURE__ */ React14.createElement("span", null, "We care about your data in our", " ", /* @__PURE__ */ React14.createElement(
3966
+ hint: /* @__PURE__ */ React15.createElement("span", null, "We care about your data in our", " ", /* @__PURE__ */ React15.createElement(
3868
3967
  "a",
3869
3968
  {
3870
3969
  href: email_signup.privacy_policy_link,
@@ -3874,8 +3973,8 @@ var HeroHome = ({
3874
3973
  ), ".")
3875
3974
  }
3876
3975
  ),
3877
- /* @__PURE__ */ React14.createElement(Button2, { type: "submit", color: "primary", size: "xl" }, email_signup.button_text)
3878
- ), /* @__PURE__ */ React14.createElement(
3976
+ /* @__PURE__ */ React15.createElement(Button2, { type: "submit", color: "primary", size: "xl" }, email_signup.button_text)
3977
+ ), /* @__PURE__ */ React15.createElement(
3879
3978
  AvatarsWithReview,
3880
3979
  {
3881
3980
  count: reviews == null ? void 0 : reviews.count,
@@ -3884,11 +3983,11 @@ var HeroHome = ({
3884
3983
  }
3885
3984
  ), (() => {
3886
3985
  const statsToShow = statistics && statistics.length > 0 ? statistics.slice(0, 4) : [];
3887
- return statsToShow.length > 0 && /* @__PURE__ */ React14.createElement("dl", { className: "mt-8 grid grid-cols-2 gap-x-6 gap-y-4 md:mt-12" }, statsToShow.map((stat, index) => {
3986
+ return statsToShow.length > 0 && /* @__PURE__ */ React15.createElement("dl", { className: "mt-8 grid grid-cols-2 gap-x-6 gap-y-4 md:mt-12" }, statsToShow.map((stat, index) => {
3888
3987
  const IconComponent2 = mapIcon(stat.icon);
3889
- return /* @__PURE__ */ React14.createElement("div", { key: index, className: "flex flex-col gap-2" }, /* @__PURE__ */ React14.createElement("div", { className: "flex items-center gap-2" }, IconComponent2 && /* @__PURE__ */ React14.createElement("div", { className: "size-5 shrink-0" }, /* @__PURE__ */ React14.createElement(IconComponent2, { className: "w-full h-full" })), /* @__PURE__ */ React14.createElement("dd", { className: "text-lg font-semibold text-primary md:text-xl" }, stat.number)), /* @__PURE__ */ React14.createElement("dt", { className: "text-sm font-medium text-tertiary md:text-md" }, stat.label));
3988
+ return /* @__PURE__ */ React15.createElement("div", { key: index, className: "flex flex-col gap-2" }, /* @__PURE__ */ React15.createElement("div", { className: "flex items-center gap-2" }, IconComponent2 && /* @__PURE__ */ React15.createElement("div", { className: "size-5 shrink-0" }, /* @__PURE__ */ React15.createElement(IconComponent2, { className: "w-full h-full" })), /* @__PURE__ */ React15.createElement("dd", { className: "text-lg font-semibold text-primary md:text-xl" }, stat.number)), /* @__PURE__ */ React15.createElement("dt", { className: "text-sm font-medium text-tertiary md:text-md" }, stat.label));
3890
3989
  }));
3891
- })()), /* @__PURE__ */ React14.createElement("div", { className: "relative lg:h-full lg:min-h-160" }, /* @__PURE__ */ React14.createElement(
3990
+ })()), /* @__PURE__ */ React15.createElement("div", { className: "relative lg:h-full lg:min-h-160" }, /* @__PURE__ */ React15.createElement(
3892
3991
  PhotoWithFallback2,
3893
3992
  {
3894
3993
  photoUrl: heroImage.url,
@@ -3896,7 +3995,7 @@ var HeroHome = ({
3896
3995
  fallbackId: "hero-home-image",
3897
3996
  className: "inset-0 h-70 w-full object-cover md:h-110 lg:absolute lg:h-full"
3898
3997
  }
3899
- ), videoUrl && /* @__PURE__ */ React14.createElement("div", { className: "absolute inset-0 flex items-center justify-center" }, /* @__PURE__ */ React14.createElement(VideoPlayButton, { onClick: () => setShowVideo(true) }))))), videoUrl && /* @__PURE__ */ React14.createElement(
3998
+ ), videoUrl && /* @__PURE__ */ React15.createElement("div", { className: "absolute inset-0 flex items-center justify-center" }, /* @__PURE__ */ React15.createElement(VideoPlayButton, { onClick: () => setShowVideo(true) }))))), videoUrl && /* @__PURE__ */ React15.createElement(
3900
3999
  VideoModal,
3901
4000
  {
3902
4001
  isOpen: showVideo,
@@ -4049,6 +4148,14 @@ var AboutHome = ({
4049
4148
  };
4050
4149
 
4051
4150
  // src/utils/photo-helpers.ts
4151
+ var VIDEO_EXTENSIONS = [".mp4", ".mov", ".webm", ".m4v", ".avi", ".mkv", ".flv", ".wmv"];
4152
+ function isVideoUrl(url) {
4153
+ var _a;
4154
+ if (!url || typeof url !== "string") return false;
4155
+ const path = (_a = url.split("?")[0]) != null ? _a : "";
4156
+ const ext = path.slice(path.lastIndexOf(".")).toLowerCase();
4157
+ return VIDEO_EXTENSIONS.includes(ext);
4158
+ }
4052
4159
  function getPhotoUrl(photos) {
4053
4160
  if (photos && photos.length > 0) {
4054
4161
  const featuredPhoto = photos.find((pa) => pa.featured);
@@ -4108,21 +4215,21 @@ var TestimonialsHome = ({
4108
4215
  };
4109
4216
 
4110
4217
  // src/design_system/sections/testimonials-grid.tsx
4111
- import React15 from "react";
4218
+ import React16 from "react";
4112
4219
  var TestimonialsGrid = ({
4113
4220
  testimonials: testimonialsData,
4114
4221
  title = "",
4115
4222
  subtitle = ""
4116
4223
  }) => {
4117
4224
  const testimonials = Array.isArray(testimonialsData) ? testimonialsData : [];
4118
- return /* @__PURE__ */ React15.createElement("section", { className: "py-16 md:py-24" }, /* @__PURE__ */ React15.createElement("div", { className: "mx-auto w-full max-w-container px-4 md:px-8" }, (title || subtitle) && /* @__PURE__ */ React15.createElement("div", { className: "mx-auto mb-12 flex w-full max-w-3xl flex-col items-center text-center" }, title && /* @__PURE__ */ React15.createElement("h2", { className: "text-display-sm font-semibold text-primary md:text-display-md" }, title), subtitle && /* @__PURE__ */ React15.createElement("p", { className: "mt-4 text-lg text-tertiary md:mt-5 md:text-xl" }, subtitle)), testimonials.length > 0 ? /* @__PURE__ */ React15.createElement("div", { className: "grid max-w-container grid-cols-1 gap-5 lg:grid-cols-3 lg:gap-6" }, testimonials.map((testimonial, index) => {
4225
+ return /* @__PURE__ */ React16.createElement("section", { className: "py-16 md:py-24" }, /* @__PURE__ */ React16.createElement("div", { className: "mx-auto w-full max-w-container px-4 md:px-8" }, (title || subtitle) && /* @__PURE__ */ React16.createElement("div", { className: "mx-auto mb-12 flex w-full max-w-3xl flex-col items-center text-center" }, title && /* @__PURE__ */ React16.createElement("h2", { className: "text-display-sm font-semibold text-primary md:text-display-md" }, title), subtitle && /* @__PURE__ */ React16.createElement("p", { className: "mt-4 text-lg text-tertiary md:mt-5 md:text-xl" }, subtitle)), testimonials.length > 0 ? /* @__PURE__ */ React16.createElement("div", { className: "grid max-w-container grid-cols-1 gap-5 lg:grid-cols-3 lg:gap-6" }, testimonials.map((testimonial, index) => {
4119
4226
  var _a;
4120
4227
  const reviewerName = testimonial.reviewer_name || "Customer";
4121
4228
  const quote = ((_a = testimonial.content_markdown) == null ? void 0 : _a.replace(/[#*\[\]()]/g, "").trim()) || "";
4122
4229
  const username = `@${reviewerName.toLowerCase().replace(/\s+/g, "")}`;
4123
4230
  const avatarUrl = getAvatarUrl(testimonial.photo_attachments, testimonial.id, reviewerName);
4124
4231
  const rating = testimonial.rating || 5;
4125
- return /* @__PURE__ */ React15.createElement("div", { key: testimonial.id || index, className: "flex flex-col gap-6 rounded-2xl bg-secondary p-6 md:p-8" }, /* @__PURE__ */ React15.createElement("div", { className: "flex gap-0.5" }, Array.from({ length: 5 }).map((_, i) => /* @__PURE__ */ React15.createElement(
4232
+ return /* @__PURE__ */ React16.createElement("div", { key: testimonial.id || index, className: "flex flex-col gap-6 rounded-2xl bg-secondary p-6 md:p-8" }, /* @__PURE__ */ React16.createElement("div", { className: "flex gap-0.5" }, Array.from({ length: 5 }).map((_, i) => /* @__PURE__ */ React16.createElement(
4126
4233
  "svg",
4127
4234
  {
4128
4235
  key: i,
@@ -4132,8 +4239,8 @@ var TestimonialsGrid = ({
4132
4239
  strokeWidth: 2,
4133
4240
  viewBox: "0 0 24 24"
4134
4241
  },
4135
- /* @__PURE__ */ React15.createElement("path", { d: "M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z" })
4136
- ))), /* @__PURE__ */ React15.createElement("p", { className: "text-md text-primary" }, quote), /* @__PURE__ */ React15.createElement("div", { className: "flex items-center gap-3 mt-auto" }, /* @__PURE__ */ React15.createElement("div", { className: "size-12 shrink-0 overflow-hidden rounded-full" }, /* @__PURE__ */ React15.createElement(
4242
+ /* @__PURE__ */ React16.createElement("path", { d: "M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z" })
4243
+ ))), /* @__PURE__ */ React16.createElement("p", { className: "text-md text-primary" }, quote), /* @__PURE__ */ React16.createElement("div", { className: "flex items-center gap-3 mt-auto" }, /* @__PURE__ */ React16.createElement("div", { className: "size-12 shrink-0 overflow-hidden rounded-full" }, /* @__PURE__ */ React16.createElement(
4137
4244
  PhotoWithFallback2,
4138
4245
  {
4139
4246
  photoUrl: avatarUrl,
@@ -4141,8 +4248,8 @@ var TestimonialsGrid = ({
4141
4248
  fallbackId: `testimonial-${testimonial.id || index}`,
4142
4249
  className: "size-full object-cover"
4143
4250
  }
4144
- )), /* @__PURE__ */ React15.createElement("div", null, /* @__PURE__ */ React15.createElement("p", { className: "text-sm font-semibold text-primary" }, reviewerName), /* @__PURE__ */ React15.createElement("p", { className: "text-sm text-tertiary" }, username))));
4145
- })) : /* @__PURE__ */ React15.createElement("div", { className: "text-center py-12" }, /* @__PURE__ */ React15.createElement("p", { className: "text-gray-500" }, "No testimonials available"))));
4251
+ )), /* @__PURE__ */ React16.createElement("div", null, /* @__PURE__ */ React16.createElement("p", { className: "text-sm font-semibold text-primary" }, reviewerName), /* @__PURE__ */ React16.createElement("p", { className: "text-sm text-tertiary" }, username))));
4252
+ })) : /* @__PURE__ */ React16.createElement("div", { className: "text-center py-12" }, /* @__PURE__ */ React16.createElement("p", { className: "text-gray-500" }, "No testimonials available"))));
4146
4253
  };
4147
4254
 
4148
4255
  // src/design_system/sections/faq-home.tsx
@@ -4233,12 +4340,12 @@ var FAQHome = ({
4233
4340
  };
4234
4341
 
4235
4342
  // src/design_system/sections/blog-section.tsx
4236
- import React16 from "react";
4343
+ import React17 from "react";
4237
4344
  import Link from "next/link";
4238
4345
  import { ArrowLeft as ArrowLeft2, ArrowRight as ArrowRight5, ArrowUpRight } from "@untitledui/icons";
4239
4346
 
4240
4347
  // src/design_system/elements/carousel/carousel-base.tsx
4241
- import { cloneElement as cloneElement3, createContext as createContext8, isValidElement as isValidElement12, useCallback as useCallback4, useContext as useContext9, useEffect as useEffect6, useRef as useRef4, useSyncExternalStore as useSyncExternalStore3 } from "react";
4348
+ import { cloneElement as cloneElement3, createContext as createContext8, isValidElement as isValidElement12, useCallback as useCallback4, useContext as useContext9, useEffect as useEffect7, useRef as useRef5, useSyncExternalStore as useSyncExternalStore3 } from "react";
4242
4349
  import useEmblaCarousel2 from "embla-carousel-react";
4243
4350
  var CarouselContext2 = createContext8(null);
4244
4351
  var useCarousel2 = () => {
@@ -4262,7 +4369,7 @@ var CarouselRoot2 = (_a) => {
4262
4369
  }),
4263
4370
  plugins
4264
4371
  );
4265
- const snapshotRef = useRef4(DEFAULT_SNAPSHOT2);
4372
+ const snapshotRef = useRef5(DEFAULT_SNAPSHOT2);
4266
4373
  const getSnapshot = useCallback4(() => {
4267
4374
  if (!api) {
4268
4375
  return DEFAULT_SNAPSHOT2;
@@ -4314,7 +4421,7 @@ var CarouselRoot2 = (_a) => {
4314
4421
  },
4315
4422
  [scrollPrev, scrollNext]
4316
4423
  );
4317
- useEffect6(() => {
4424
+ useEffect7(() => {
4318
4425
  if (!api || !setApi) return;
4319
4426
  setApi(api);
4320
4427
  }, [api, setApi]);
@@ -4439,7 +4546,7 @@ var BlogSection = ({
4439
4546
  return "Recent";
4440
4547
  }
4441
4548
  };
4442
- return /* @__PURE__ */ React16.createElement("section", { className: `overflow-hidden ${backgroundColor} py-16 md:py-24` }, /* @__PURE__ */ React16.createElement("div", { className: "mx-auto max-w-container px-4 md:px-8" }, /* @__PURE__ */ React16.createElement("div", { className: "flex flex-col items-start justify-between lg:flex-row" }, /* @__PURE__ */ React16.createElement("div", { className: "max-w-3xl" }, /* @__PURE__ */ React16.createElement("p", { className: "text-sm font-semibold text-brand-secondary md:text-md" }, "Latest posts"), /* @__PURE__ */ React16.createElement("h2", { className: "mt-3 text-display-sm font-semibold text-primary md:text-display-md" }, title), /* @__PURE__ */ React16.createElement("p", { className: "mt-4 text-lg text-tertiary md:mt-5 md:text-xl" }, subtitle)), showViewAll && /* @__PURE__ */ React16.createElement("div", { className: "hidden gap-3 lg:flex" }, /* @__PURE__ */ React16.createElement(Button2, { size: "xl", href: "/blog" }, "View all posts"))), postsArray.length > 0 ? /* @__PURE__ */ React16.createElement(React16.Fragment, null, /* @__PURE__ */ React16.createElement(
4549
+ return /* @__PURE__ */ React17.createElement("section", { className: `overflow-hidden ${backgroundColor} py-16 md:py-24` }, /* @__PURE__ */ React17.createElement("div", { className: "mx-auto max-w-container px-4 md:px-8" }, /* @__PURE__ */ React17.createElement("div", { className: "flex flex-col items-start justify-between lg:flex-row" }, /* @__PURE__ */ React17.createElement("div", { className: "max-w-3xl" }, /* @__PURE__ */ React17.createElement("p", { className: "text-sm font-semibold text-brand-secondary md:text-md" }, "Latest posts"), /* @__PURE__ */ React17.createElement("h2", { className: "mt-3 text-display-sm font-semibold text-primary md:text-display-md" }, title), /* @__PURE__ */ React17.createElement("p", { className: "mt-4 text-lg text-tertiary md:mt-5 md:text-xl" }, subtitle)), showViewAll && /* @__PURE__ */ React17.createElement("div", { className: "hidden gap-3 lg:flex" }, /* @__PURE__ */ React17.createElement(Button2, { size: "xl", href: "/blog" }, "View all posts"))), postsArray.length > 0 ? /* @__PURE__ */ React17.createElement(React17.Fragment, null, /* @__PURE__ */ React17.createElement(
4443
4550
  Carousel2.Root,
4444
4551
  {
4445
4552
  className: "mt-12 md:mt-16",
@@ -4447,11 +4554,11 @@ var BlogSection = ({
4447
4554
  align: "start"
4448
4555
  }
4449
4556
  },
4450
- /* @__PURE__ */ React16.createElement(Carousel2.Content, { overflowHidden: false, className: "gap-6 pr-4 md:gap-8 md:pr-8" }, postsArray.map((post, index) => {
4557
+ /* @__PURE__ */ React17.createElement(Carousel2.Content, { overflowHidden: false, className: "gap-6 pr-4 md:gap-8 md:pr-8" }, postsArray.map((post, index) => {
4451
4558
  var _a;
4452
4559
  const author = Array.isArray(post.blog_post_authors) && post.blog_post_authors.length > 0 ? post.blog_post_authors[0] : null;
4453
4560
  const excerpt = ((_a = post.excerpt_markdown) == null ? void 0 : _a.replace(/[#*\[\]()]/g, "").trim()) || "";
4454
- return /* @__PURE__ */ React16.createElement(Carousel2.Item, { key: post.id || index, className: "max-w-xs md:max-w-96" }, /* @__PURE__ */ React16.createElement("article", { className: cx("flex flex-col gap-4") }, /* @__PURE__ */ React16.createElement("div", { className: "relative" }, /* @__PURE__ */ React16.createElement("a", { href: `/blog/${post.slug || post.id}`, className: "w-full", tabIndex: -1 }, /* @__PURE__ */ React16.createElement(
4561
+ return /* @__PURE__ */ React17.createElement(Carousel2.Item, { key: post.id || index, className: "max-w-xs md:max-w-96" }, /* @__PURE__ */ React17.createElement("article", { className: cx("flex flex-col gap-4") }, /* @__PURE__ */ React17.createElement("div", { className: "relative" }, /* @__PURE__ */ React17.createElement("a", { href: `/blog/${post.slug || post.id}`, className: "w-full", tabIndex: -1 }, /* @__PURE__ */ React17.createElement(
4455
4562
  PhotoWithFallback2,
4456
4563
  {
4457
4564
  item: post,
@@ -4459,48 +4566,50 @@ var BlogSection = ({
4459
4566
  alt: post.title || "Blog post",
4460
4567
  className: cx("aspect-[1.5] w-full object-cover")
4461
4568
  }
4462
- )), /* @__PURE__ */ React16.createElement("div", { className: "absolute inset-x-0 bottom-0 overflow-hidden bg-linear-to-b from-transparent to-black/40" }, /* @__PURE__ */ React16.createElement("div", { className: "relative flex items-start justify-between bg-alpha-white/30 p-4 backdrop-blur-md before:absolute before:inset-x-0 before:top-0 before:h-px before:bg-alpha-white/30 md:p-5" }, /* @__PURE__ */ React16.createElement("div", null, /* @__PURE__ */ React16.createElement(
4569
+ )), /* @__PURE__ */ React17.createElement("div", { className: "absolute inset-x-0 bottom-0 overflow-hidden bg-linear-to-b from-transparent to-black/40" }, /* @__PURE__ */ React17.createElement("div", { className: "relative flex items-start justify-between bg-alpha-white/30 p-4 backdrop-blur-md before:absolute before:inset-x-0 before:top-0 before:h-px before:bg-alpha-white/30 md:p-5" }, /* @__PURE__ */ React17.createElement("div", null, /* @__PURE__ */ React17.createElement(
4463
4570
  "a",
4464
4571
  {
4465
4572
  href: (author == null ? void 0 : author.slug) ? `/blog/author/${author.slug}` : "/blog",
4466
4573
  className: "block rounded-xs text-sm font-semibold text-white outline-focus-ring focus-visible:outline-2 focus-visible:outline-offset-2"
4467
4574
  },
4468
4575
  (author == null ? void 0 : author.name) || "Author"
4469
- ), /* @__PURE__ */ React16.createElement("time", { className: "block text-sm text-white" }, formatDate4(post.published_at || ""))), /* @__PURE__ */ React16.createElement(
4576
+ ), /* @__PURE__ */ React17.createElement("time", { className: "block text-sm text-white" }, formatDate4(post.published_at || ""))), /* @__PURE__ */ React17.createElement(
4470
4577
  Link,
4471
4578
  {
4472
4579
  href: "/blog",
4473
4580
  className: "rounded-xs text-sm font-semibold text-white outline-focus-ring focus-visible:outline-2 focus-visible:outline-offset-2"
4474
4581
  },
4475
4582
  "Blog"
4476
- )))), /* @__PURE__ */ React16.createElement("div", { className: "flex flex-col gap-2" }, /* @__PURE__ */ React16.createElement(
4583
+ )))), /* @__PURE__ */ React17.createElement("div", { className: "flex flex-col gap-2" }, /* @__PURE__ */ React17.createElement(
4477
4584
  "a",
4478
4585
  {
4479
4586
  href: `/blog/${post.slug || post.id}`,
4480
4587
  className: "group/title flex justify-between gap-x-4 rounded-md text-lg font-semibold text-primary outline-focus-ring focus-visible:outline-2 focus-visible:outline-offset-2"
4481
4588
  },
4482
4589
  post.title || "Untitled Post",
4483
- /* @__PURE__ */ React16.createElement(
4590
+ /* @__PURE__ */ React17.createElement(
4484
4591
  ArrowUpRight,
4485
4592
  {
4486
4593
  className: "mt-0.5 size-6 shrink-0 text-fg-quaternary transition duration-100 ease-linear group-hover/title:text-fg-quaternary_hover",
4487
4594
  "aria-hidden": "true"
4488
4595
  }
4489
4596
  )
4490
- ), excerpt && /* @__PURE__ */ React16.createElement("p", { className: "line-clamp-2 text-md text-tertiary" }, excerpt))));
4597
+ ), excerpt && /* @__PURE__ */ React17.createElement("p", { className: "line-clamp-2 text-md text-tertiary" }, excerpt))));
4491
4598
  })),
4492
- /* @__PURE__ */ React16.createElement("div", { className: "mt-8 flex gap-4 md:gap-8" }, /* @__PURE__ */ React16.createElement(Carousel2.PrevTrigger, { asChild: true }, /* @__PURE__ */ React16.createElement(RoundButton2, { icon: ArrowLeft2 })), /* @__PURE__ */ React16.createElement(Carousel2.NextTrigger, { asChild: true }, /* @__PURE__ */ React16.createElement(RoundButton2, { icon: ArrowRight5 })))
4493
- ), showViewAll && /* @__PURE__ */ React16.createElement("div", { className: "mt-12 flex flex-col gap-3 lg:hidden" }, /* @__PURE__ */ React16.createElement(Button2, { size: "xl", href: "/blog" }, "View all posts"))) : /* @__PURE__ */ React16.createElement("div", { className: "mt-12 text-center md:mt-16" }, /* @__PURE__ */ React16.createElement("p", { className: "text-gray-500" }, "No blog posts available"))));
4599
+ /* @__PURE__ */ React17.createElement("div", { className: "mt-8 flex gap-4 md:gap-8" }, /* @__PURE__ */ React17.createElement(Carousel2.PrevTrigger, { asChild: true }, /* @__PURE__ */ React17.createElement(RoundButton2, { icon: ArrowLeft2 })), /* @__PURE__ */ React17.createElement(Carousel2.NextTrigger, { asChild: true }, /* @__PURE__ */ React17.createElement(RoundButton2, { icon: ArrowRight5 })))
4600
+ ), showViewAll && /* @__PURE__ */ React17.createElement("div", { className: "mt-12 flex flex-col gap-3 lg:hidden" }, /* @__PURE__ */ React17.createElement(Button2, { size: "xl", href: "/blog" }, "View all posts"))) : /* @__PURE__ */ React17.createElement("div", { className: "mt-12 text-center md:mt-16" }, /* @__PURE__ */ React17.createElement("p", { className: "text-gray-500" }, "No blog posts available"))));
4494
4601
  };
4495
4602
 
4496
4603
  // src/design_system/sections/contact-section.tsx
4497
- import React20 from "react";
4604
+ import React21 from "react";
4498
4605
 
4499
4606
  // src/design_system/sections/contact-section-form.tsx
4500
- import React19, { useRef as useRef5, useState as useState9 } from "react";
4607
+ import React20, { useRef as useRef6, useState as useState9 } from "react";
4501
4608
 
4502
4609
  // src/design_system/components/DynamicFormFields.tsx
4503
- import React17, { useState as useState8 } from "react";
4610
+ import React18, { useState as useState8 } from "react";
4611
+ import ReactMarkdown2 from "react-markdown";
4612
+ import remarkGfm2 from "remark-gfm";
4504
4613
 
4505
4614
  // src/utils/countries.tsx
4506
4615
  import Image6 from "next/image";
@@ -5872,12 +5981,53 @@ function allFieldsFlat(fields) {
5872
5981
  }
5873
5982
  return out;
5874
5983
  }
5875
- function renderField(field, index, showCountryCode, selectedCountryPhone, onCountryChange, phoneValues, setPhoneValues) {
5876
- var _a, _b, _c, _d;
5984
+ function renderField(field, index, showCountryCode, selectedCountryPhone, onCountryChange, phoneValues, setPhoneValues, companyName, privacyPolicyUrl, termsOfServiceUrl) {
5985
+ var _a, _b, _c, _d, _e, _f;
5877
5986
  const name = (_a = field.name) != null ? _a : `field-${index}`;
5987
+ const type = ((_b = field.type) != null ? _b : "text").toString().toLowerCase();
5878
5988
  if (field.type === "hidden") {
5879
- const val = (_b = field.value) != null ? _b : "";
5880
- return /* @__PURE__ */ React17.createElement("input", { key: name, type: "hidden", name, value: val });
5989
+ const val = (_c = field.value) != null ? _c : "";
5990
+ return /* @__PURE__ */ React18.createElement("input", { key: name, type: "hidden", name, value: val });
5991
+ }
5992
+ if (type === "checkbox") {
5993
+ const labelRaw = (_d = field.label) != null ? _d : "";
5994
+ const companyNameClean = companyName.replace(/\*\*/g, "").trim();
5995
+ let labelWithCompany = companyNameClean ? labelRaw.replace(/\{\{company_name\}\}/gi, companyNameClean) : labelRaw;
5996
+ if (name === "tos_privacy_consent" && privacyPolicyUrl && termsOfServiceUrl) {
5997
+ labelWithCompany = labelWithCompany.replace(/\*\*Terms of Service\*\*/gi, `**[Terms of Service](${termsOfServiceUrl})**`).replace(/\*\*Privacy Policy\*\*/gi, `**[Privacy Policy](${privacyPolicyUrl})**`);
5998
+ }
5999
+ const id3 = `checkbox-${name}-${index}`;
6000
+ return /* @__PURE__ */ React18.createElement("div", { key: name, className: "flex items-start gap-3" }, /* @__PURE__ */ React18.createElement(
6001
+ "input",
6002
+ {
6003
+ type: "checkbox",
6004
+ id: id3,
6005
+ name,
6006
+ value: "on",
6007
+ required: Boolean(field.required),
6008
+ "aria-describedby": id3 ? `${id3}-desc` : void 0,
6009
+ className: "mt-1 h-4 w-4 shrink-0 rounded border-secondary focus:ring-focus-ring"
6010
+ }
6011
+ ), /* @__PURE__ */ React18.createElement(
6012
+ "label",
6013
+ {
6014
+ id: id3 ? `${id3}-desc` : void 0,
6015
+ htmlFor: id3,
6016
+ className: "font-body text-sm text-tertiary [&_a]:underline [&_a]:outline-focus-ring [&_strong]:font-semibold"
6017
+ },
6018
+ /* @__PURE__ */ React18.createElement(
6019
+ ReactMarkdown2,
6020
+ {
6021
+ remarkPlugins: [remarkGfm2],
6022
+ components: {
6023
+ p: ({ children }) => /* @__PURE__ */ React18.createElement("span", null, children),
6024
+ strong: (props) => /* @__PURE__ */ React18.createElement("strong", __spreadValues({ className: "font-semibold" }, props)),
6025
+ a: (props) => /* @__PURE__ */ React18.createElement("a", __spreadProps(__spreadValues({}, props), { className: "underline outline-focus-ring focus-visible:outline-2 focus-visible:outline-offset-2" }))
6026
+ }
6027
+ },
6028
+ labelWithCompany
6029
+ )
6030
+ ));
5881
6031
  }
5882
6032
  if (field.type === "tel" && showCountryCode) {
5883
6033
  const countryOptions = countries_default.map((c) => ({
@@ -5886,22 +6036,22 @@ function renderField(field, index, showCountryCode, selectedCountryPhone, onCoun
5886
6036
  }));
5887
6037
  const country = countries_default.find((c) => c.code === selectedCountryPhone);
5888
6038
  const nationalMask = getNationalMask(country);
5889
- const value = (_c = phoneValues[name]) != null ? _c : "";
5890
- const placeholder = nationalMask ? nationalMask.replace(/#/g, "0") : (_d = field.placeholder) != null ? _d : "";
6039
+ const value = (_e = phoneValues[name]) != null ? _e : "";
6040
+ const placeholder = nationalMask ? nationalMask.replace(/#/g, "0") : (_f = field.placeholder) != null ? _f : "";
5891
6041
  const handlePhoneChange = (valueOrEvent) => {
5892
6042
  const raw = typeof valueOrEvent === "string" ? valueOrEvent : valueOrEvent && typeof valueOrEvent === "object" && "target" in valueOrEvent && valueOrEvent.target && typeof valueOrEvent.target.value === "string" ? valueOrEvent.target.value : "";
5893
6043
  const digits = raw.replace(/\D/g, "");
5894
6044
  const formatted = nationalMask ? formatDigitsToMask(digits, nationalMask) : digits;
5895
6045
  setPhoneValues((prev) => __spreadProps(__spreadValues({}, prev), { [name]: formatted }));
5896
6046
  };
5897
- return /* @__PURE__ */ React17.createElement(
6047
+ return /* @__PURE__ */ React18.createElement(
5898
6048
  InputGroup2,
5899
6049
  {
5900
6050
  key: name,
5901
6051
  label: field.label,
5902
6052
  isRequired: Boolean(field.required),
5903
6053
  size: "md",
5904
- leadingAddon: /* @__PURE__ */ React17.createElement(
6054
+ leadingAddon: /* @__PURE__ */ React18.createElement(
5905
6055
  NativeSelect2,
5906
6056
  {
5907
6057
  "aria-label": "Country code",
@@ -5911,7 +6061,7 @@ function renderField(field, index, showCountryCode, selectedCountryPhone, onCoun
5911
6061
  }
5912
6062
  )
5913
6063
  },
5914
- /* @__PURE__ */ React17.createElement(
6064
+ /* @__PURE__ */ React18.createElement(
5915
6065
  InputBase3,
5916
6066
  {
5917
6067
  type: "tel",
@@ -5925,7 +6075,7 @@ function renderField(field, index, showCountryCode, selectedCountryPhone, onCoun
5925
6075
  );
5926
6076
  }
5927
6077
  if (field.type === "textarea") {
5928
- return /* @__PURE__ */ React17.createElement(
6078
+ return /* @__PURE__ */ React18.createElement(
5929
6079
  Textarea,
5930
6080
  {
5931
6081
  key: name,
@@ -5938,7 +6088,7 @@ function renderField(field, index, showCountryCode, selectedCountryPhone, onCoun
5938
6088
  );
5939
6089
  }
5940
6090
  const inputType = INPUT_TYPES.includes(field.type) ? field.type : "text";
5941
- return /* @__PURE__ */ React17.createElement(
6091
+ return /* @__PURE__ */ React18.createElement(
5942
6092
  Input3,
5943
6093
  {
5944
6094
  key: name,
@@ -5951,11 +6101,13 @@ function renderField(field, index, showCountryCode, selectedCountryPhone, onCoun
5951
6101
  }
5952
6102
  );
5953
6103
  }
5954
- function DynamicFormFields({ form, jobSlug }) {
6104
+ function DynamicFormFields({ form, jobSlug, privacyPolicyUrl, termsOfServiceUrl }) {
6105
+ var _a;
5955
6106
  const [selectedCountryPhone, setSelectedCountryPhone] = useState8("US");
5956
6107
  const [phoneValues, setPhoneValues] = useState8({});
5957
6108
  const { settings } = form;
5958
6109
  const fields = Array.isArray(form.fields) ? form.fields : [];
6110
+ const companyName = (_a = form.company_name) != null ? _a : "";
5959
6111
  const handleCountryChange = (newCode) => {
5960
6112
  setSelectedCountryPhone(newCode);
5961
6113
  const country = countries_default.find((c) => c.code === newCode);
@@ -5976,24 +6128,40 @@ function DynamicFormFields({ form, jobSlug }) {
5976
6128
  });
5977
6129
  };
5978
6130
  const showCountryCode = (settings == null ? void 0 : settings.show_country_code) !== false;
5979
- const showPrivacyCheckbox = (settings == null ? void 0 : settings.show_privacy_checkbox) !== false;
5980
6131
  const flat = allFieldsFlat(fields);
5981
6132
  const hasPhoneField = flat.some((f) => f.type === "tel");
5982
- return /* @__PURE__ */ React17.createElement("div", { className: "flex flex-col gap-6" }, fields.map((item, index) => {
5983
- var _a;
6133
+ const hasCheckboxFields = flat.some((f) => {
6134
+ var _a2;
6135
+ return ((_a2 = f.type) != null ? _a2 : "").toString().toLowerCase() === "checkbox";
6136
+ });
6137
+ const showPrivacyCheckbox = (settings == null ? void 0 : settings.show_privacy_checkbox) !== false && hasPhoneField && !hasCheckboxFields;
6138
+ const renderFieldWithProps = (item, i) => renderField(
6139
+ item,
6140
+ i,
6141
+ showCountryCode,
6142
+ selectedCountryPhone,
6143
+ handleCountryChange,
6144
+ phoneValues,
6145
+ setPhoneValues,
6146
+ companyName,
6147
+ privacyPolicyUrl,
6148
+ termsOfServiceUrl
6149
+ );
6150
+ return /* @__PURE__ */ React18.createElement("div", { className: "flex flex-col gap-6" }, fields.map((item, index) => {
6151
+ var _a2;
5984
6152
  if (Array.isArray(item)) {
5985
6153
  if (item.length === 0) return null;
5986
- return /* @__PURE__ */ React17.createElement(
6154
+ return /* @__PURE__ */ React18.createElement(
5987
6155
  "div",
5988
6156
  {
5989
6157
  key: `row-${index}`,
5990
6158
  className: "flex flex-col gap-x-8 gap-y-6 md:flex-row"
5991
6159
  },
5992
- item.map((f, i) => /* @__PURE__ */ React17.createElement("div", { key: f.name, className: "flex-1" }, renderField(f, i, showCountryCode, selectedCountryPhone, handleCountryChange, phoneValues, setPhoneValues)))
6160
+ item.map((f, i) => /* @__PURE__ */ React18.createElement("div", { key: f.name, className: "flex-1" }, renderFieldWithProps(f, i)))
5993
6161
  );
5994
6162
  }
5995
- return /* @__PURE__ */ React17.createElement("div", { key: (_a = item.name) != null ? _a : `field-${index}` }, renderField(item, index, showCountryCode, selectedCountryPhone, handleCountryChange, phoneValues, setPhoneValues));
5996
- }), jobSlug ? /* @__PURE__ */ React17.createElement("input", { type: "hidden", name: "jobSlug", value: jobSlug }) : null, showPrivacyCheckbox && hasPhoneField && /* @__PURE__ */ React17.createElement(PrivacyCheckbox2, null));
6163
+ return /* @__PURE__ */ React18.createElement("div", { key: (_a2 = item.name) != null ? _a2 : `field-${index}` }, renderFieldWithProps(item, index));
6164
+ }), jobSlug ? /* @__PURE__ */ React18.createElement("input", { type: "hidden", name: "jobSlug", value: jobSlug }) : null, showPrivacyCheckbox && /* @__PURE__ */ React18.createElement(PrivacyCheckbox2, null));
5997
6165
  }
5998
6166
 
5999
6167
  // src/tracking/trackMetaLead.ts
@@ -6004,7 +6172,7 @@ function trackMetaLead(eventId) {
6004
6172
  }
6005
6173
 
6006
6174
  // src/next/contexts/form-definitions.tsx
6007
- import React18, { createContext as createContext9, useContext as useContext10 } from "react";
6175
+ import React19, { createContext as createContext9, useContext as useContext10 } from "react";
6008
6176
  var FormDefinitionsContext = createContext9({
6009
6177
  leadFormDefinition: null,
6010
6178
  jobApplicationFormDefinition: null
@@ -6019,14 +6187,16 @@ var ContactSectionForm = ({
6019
6187
  submitButtonText = "Send message",
6020
6188
  successMessage = "Thank you for contacting us! We'll get back to you soon.",
6021
6189
  thankYouMessage,
6022
- onSuccess
6190
+ onSuccess,
6191
+ privacyPolicyUrl,
6192
+ termsOfServiceUrl
6023
6193
  }) => {
6024
6194
  const { leadFormDefinition } = useFormDefinitions();
6025
6195
  const resolvedFormDefinition = formDefinition != null ? formDefinition : leadFormDefinition;
6026
6196
  const [isSubmitting, setIsSubmitting] = useState9(false);
6027
6197
  const [submitStatus, setSubmitStatus] = useState9("idle");
6028
6198
  const [statusMessage, setStatusMessage] = useState9("");
6029
- const formRef = useRef5(null);
6199
+ const formRef = useRef6(null);
6030
6200
  if (!resolvedFormDefinition || !Array.isArray(resolvedFormDefinition.fields) || resolvedFormDefinition.fields.length === 0) {
6031
6201
  return null;
6032
6202
  }
@@ -6039,7 +6209,8 @@ var ContactSectionForm = ({
6039
6209
  const formData = new FormData(e.currentTarget);
6040
6210
  const data = { formType: "lead" };
6041
6211
  formData.forEach((value, key) => {
6042
- if (key !== "privacy" && typeof value === "string") data[key] = value;
6212
+ if (key.endsWith("_prefix")) return;
6213
+ if (typeof value === "string") data[key] = value;
6043
6214
  });
6044
6215
  try {
6045
6216
  const response = await fetch("/api/form/", {
@@ -6065,7 +6236,14 @@ var ContactSectionForm = ({
6065
6236
  }
6066
6237
  setIsSubmitting(false);
6067
6238
  };
6068
- return /* @__PURE__ */ React19.createElement(Form2, { ref: formRef, onSubmit: handleSubmit, className: "flex flex-col gap-8" }, /* @__PURE__ */ React19.createElement("div", { className: "flex flex-col gap-6" }, /* @__PURE__ */ React19.createElement(DynamicFormFields, { form: resolvedFormDefinition })), submitStatus === "success" && /* @__PURE__ */ React19.createElement("div", { className: "rounded-lg bg-success-50 p-4 text-success-700" }, thankYouMessage != null ? thankYouMessage : statusMessage), submitStatus === "error" && /* @__PURE__ */ React19.createElement("div", { className: "rounded-lg bg-error-50 p-4 text-error-700" }, statusMessage), /* @__PURE__ */ React19.createElement(
6239
+ return /* @__PURE__ */ React20.createElement(Form2, { ref: formRef, onSubmit: handleSubmit, className: "flex flex-col gap-8" }, /* @__PURE__ */ React20.createElement("div", { className: "flex flex-col gap-6" }, /* @__PURE__ */ React20.createElement(
6240
+ DynamicFormFields,
6241
+ {
6242
+ form: resolvedFormDefinition,
6243
+ privacyPolicyUrl,
6244
+ termsOfServiceUrl
6245
+ }
6246
+ )), submitStatus === "success" && /* @__PURE__ */ React20.createElement("div", { className: "rounded-lg bg-success-50 p-4 text-success-700" }, thankYouMessage != null ? thankYouMessage : statusMessage), submitStatus === "error" && /* @__PURE__ */ React20.createElement("div", { className: "rounded-lg bg-error-50 p-4 text-error-700" }, statusMessage), /* @__PURE__ */ React20.createElement(
6069
6247
  Button2,
6070
6248
  {
6071
6249
  type: "submit",
@@ -6078,17 +6256,34 @@ var ContactSectionForm = ({
6078
6256
  };
6079
6257
 
6080
6258
  // src/design_system/sections/contact-section.tsx
6259
+ function getLegalUrlsFromConfig(config) {
6260
+ var _a, _b, _c;
6261
+ if (!((_a = config == null ? void 0 : config.navigation) == null ? void 0 : _a.footer)) return {};
6262
+ const flat = config.navigation.footer.flat();
6263
+ const privacy = (_b = flat.find((l) => l.label === "Privacy Policy")) == null ? void 0 : _b.href;
6264
+ const terms = (_c = flat.find((l) => l.label === "Terms of Service")) == null ? void 0 : _c.href;
6265
+ return { privacyPolicyUrl: privacy, termsOfServiceUrl: terms };
6266
+ }
6081
6267
  var ContactSection = ({
6082
6268
  websitePhotos,
6083
6269
  title = "",
6084
6270
  subtitle = "",
6085
- formDefinition
6271
+ formDefinition,
6272
+ config
6086
6273
  }) => {
6274
+ const { privacyPolicyUrl, termsOfServiceUrl } = getLegalUrlsFromConfig(config);
6087
6275
  const contactPhoto = websitePhotos == null ? void 0 : websitePhotos.contact;
6088
6276
  const contactImageUrl = contactPhoto == null ? void 0 : contactPhoto.url;
6089
6277
  const finalContactImage = contactImageUrl && contactImageUrl.trim() !== "" ? contactImageUrl : void 0;
6090
6278
  const finalContactImageAlt = (contactPhoto == null ? void 0 : contactPhoto.alt) || "Contact image";
6091
- return /* @__PURE__ */ React20.createElement("section", { className: "bg-primary py-16 md:pt-16 md:pb-24" }, /* @__PURE__ */ React20.createElement("div", { className: "mx-auto w-full max-w-container px-4 md:px-8" }, /* @__PURE__ */ React20.createElement("div", { className: "grid grid-cols-1 gap-12 md:gap-16 lg:grid-cols-2" }, /* @__PURE__ */ React20.createElement("div", { className: "flex w-full flex-col gap-12" }, /* @__PURE__ */ React20.createElement("div", { className: "flex flex-col" }, /* @__PURE__ */ React20.createElement("h2", { className: "text-display-md font-semibold text-primary" }, title), subtitle && /* @__PURE__ */ React20.createElement("p", { className: "mt-4 text-lg text-tertiary md:mt-5 md:text-xl" }, subtitle)), /* @__PURE__ */ React20.createElement(ContactSectionForm, { formDefinition })), /* @__PURE__ */ React20.createElement("div", { className: "max-lg:hidden h-full min-h-0" }, /* @__PURE__ */ React20.createElement(
6279
+ return /* @__PURE__ */ React21.createElement("section", { className: "bg-primary py-16 md:pt-16 md:pb-24" }, /* @__PURE__ */ React21.createElement("div", { className: "mx-auto w-full max-w-container px-4 md:px-8" }, /* @__PURE__ */ React21.createElement("div", { className: "grid grid-cols-1 gap-12 md:gap-16 lg:grid-cols-2" }, /* @__PURE__ */ React21.createElement("div", { className: "flex w-full flex-col gap-12" }, /* @__PURE__ */ React21.createElement("div", { className: "flex flex-col" }, /* @__PURE__ */ React21.createElement("h2", { className: "text-display-md font-semibold text-primary" }, title), subtitle && /* @__PURE__ */ React21.createElement("p", { className: "mt-4 text-lg text-tertiary md:mt-5 md:text-xl" }, subtitle)), /* @__PURE__ */ React21.createElement(
6280
+ ContactSectionForm,
6281
+ {
6282
+ formDefinition,
6283
+ privacyPolicyUrl,
6284
+ termsOfServiceUrl
6285
+ }
6286
+ )), /* @__PURE__ */ React21.createElement("div", { className: "max-lg:hidden h-full min-h-0" }, /* @__PURE__ */ React21.createElement(
6092
6287
  PhotoWithFallback2,
6093
6288
  {
6094
6289
  photoUrl: finalContactImage,
@@ -6193,7 +6388,7 @@ var FooterHome = ({
6193
6388
  };
6194
6389
 
6195
6390
  // src/design_system/sections/header-navigation.tsx
6196
- import React21, { useRef as useRef6, useState as useState10 } from "react";
6391
+ import React22, { useRef as useRef7, useState as useState10 } from "react";
6197
6392
  import Link4 from "next/link";
6198
6393
  import Image8 from "next/image";
6199
6394
  import { ChevronDown as ChevronDown4 } from "@untitledui/icons";
@@ -6263,7 +6458,7 @@ function resolveCtaUrls(companyInformation, _ctaButton, overrides) {
6263
6458
  var MobileNavItem = ({ label, href, children, onClose }) => {
6264
6459
  const [isOpen, setIsOpen] = useState10(false);
6265
6460
  if (href) {
6266
- return /* @__PURE__ */ React21.createElement("li", null, /* @__PURE__ */ React21.createElement(
6461
+ return /* @__PURE__ */ React22.createElement("li", null, /* @__PURE__ */ React22.createElement(
6267
6462
  Link4,
6268
6463
  {
6269
6464
  href,
@@ -6273,7 +6468,7 @@ var MobileNavItem = ({ label, href, children, onClose }) => {
6273
6468
  label
6274
6469
  ));
6275
6470
  }
6276
- return /* @__PURE__ */ React21.createElement("li", { className: "flex flex-col gap-0.5" }, /* @__PURE__ */ React21.createElement(
6471
+ return /* @__PURE__ */ React22.createElement("li", { className: "flex flex-col gap-0.5" }, /* @__PURE__ */ React22.createElement(
6277
6472
  "button",
6278
6473
  {
6279
6474
  "aria-expanded": isOpen,
@@ -6281,13 +6476,13 @@ var MobileNavItem = ({ label, href, children, onClose }) => {
6281
6476
  className: "flex w-full items-center justify-between px-4 py-3 text-sm font-medium text-primary hover:bg-primary_hover"
6282
6477
  },
6283
6478
  label,
6284
- /* @__PURE__ */ React21.createElement(
6479
+ /* @__PURE__ */ React22.createElement(
6285
6480
  ChevronDown4,
6286
6481
  {
6287
6482
  className: cx("size-4 stroke-[2.625px] text-fg-quaternary transition duration-100 ease-linear", isOpen ? "-rotate-180" : "rotate-0")
6288
6483
  }
6289
6484
  )
6290
- ), isOpen && /* @__PURE__ */ React21.createElement("div", null, children));
6485
+ ), isOpen && /* @__PURE__ */ React22.createElement("div", null, children));
6291
6486
  };
6292
6487
  function HeaderNavigation({
6293
6488
  variant = "standard",
@@ -6300,7 +6495,7 @@ function HeaderNavigation({
6300
6495
  websitePhotos
6301
6496
  }) {
6302
6497
  var _a, _b, _c, _d, _e, _f, _g, _h;
6303
- const headerRef = useRef6(null);
6498
+ const headerRef = useRef7(null);
6304
6499
  const navigation = navigationOverride || ((_a = config == null ? void 0 : config.navigation) == null ? void 0 : _a.header) || [];
6305
6500
  const logoImage = logoImageOverride || getLogoUrl(websitePhotos) || ((_b = props == null ? void 0 : props.logo) == null ? void 0 : _b.image);
6306
6501
  const logoText = logoTextOverride || (companyInformation == null ? void 0 : companyInformation.company_name) || ((_c = props == null ? void 0 : props.logo) == null ? void 0 : _c.text) || "";
@@ -6328,7 +6523,7 @@ function HeaderNavigation({
6328
6523
  };
6329
6524
  const HoverDropdown = ({ label, href, children }) => {
6330
6525
  const [isOpen, setIsOpen] = useState10(false);
6331
- const timeoutRef = React21.useRef(null);
6526
+ const timeoutRef = React22.useRef(null);
6332
6527
  const handleMouseEnter = () => {
6333
6528
  if (timeoutRef.current) {
6334
6529
  clearTimeout(timeoutRef.current);
@@ -6342,37 +6537,37 @@ function HeaderNavigation({
6342
6537
  }, 100);
6343
6538
  timeoutRef.current = id3;
6344
6539
  };
6345
- React21.useEffect(() => {
6540
+ React22.useEffect(() => {
6346
6541
  return () => {
6347
6542
  if (timeoutRef.current) {
6348
6543
  clearTimeout(timeoutRef.current);
6349
6544
  }
6350
6545
  };
6351
6546
  }, []);
6352
- return /* @__PURE__ */ React21.createElement(
6547
+ return /* @__PURE__ */ React22.createElement(
6353
6548
  "div",
6354
6549
  {
6355
6550
  className: "relative",
6356
6551
  onMouseEnter: handleMouseEnter,
6357
6552
  onMouseLeave: handleMouseLeave
6358
6553
  },
6359
- /* @__PURE__ */ React21.createElement(
6554
+ /* @__PURE__ */ React22.createElement(
6360
6555
  Link4,
6361
6556
  {
6362
6557
  href: href || "#",
6363
6558
  className: "flex cursor-pointer items-center gap-0.5 rounded-lg px-1.5 py-1 text-sm font-medium text-secondary outline-focus-ring transition duration-100 ease-linear hover:text-secondary_hover focus-visible:outline-2 focus-visible:outline-offset-2"
6364
6559
  },
6365
- /* @__PURE__ */ React21.createElement("span", { className: "px-0.5" }, label),
6366
- /* @__PURE__ */ React21.createElement(ChevronDown4, { className: cx("size-4 stroke-[2.625px] text-fg-quaternary transition duration-100 ease-linear", isOpen ? "-rotate-180" : "rotate-0") })
6560
+ /* @__PURE__ */ React22.createElement("span", { className: "px-0.5" }, label),
6561
+ /* @__PURE__ */ React22.createElement(ChevronDown4, { className: cx("size-4 stroke-[2.625px] text-fg-quaternary transition duration-100 ease-linear", isOpen ? "-rotate-180" : "rotate-0") })
6367
6562
  ),
6368
- isOpen && /* @__PURE__ */ React21.createElement(
6563
+ isOpen && /* @__PURE__ */ React22.createElement(
6369
6564
  "div",
6370
6565
  {
6371
6566
  className: "absolute top-full left-0 z-50 mt-1 origin-top animate-in fade-in slide-in-from-top-1 duration-75 ease-out",
6372
6567
  onMouseEnter: handleMouseEnter,
6373
6568
  onMouseLeave: handleMouseLeave
6374
6569
  },
6375
- /* @__PURE__ */ React21.createElement("div", { className: "w-max max-w-sm" }, children)
6570
+ /* @__PURE__ */ React22.createElement("div", { className: "w-max max-w-sm" }, children)
6376
6571
  )
6377
6572
  );
6378
6573
  };
@@ -6381,7 +6576,7 @@ function HeaderNavigation({
6381
6576
  return {
6382
6577
  label: navItem.label,
6383
6578
  href: navItem.href,
6384
- menu: /* @__PURE__ */ React21.createElement(
6579
+ menu: /* @__PURE__ */ React22.createElement(
6385
6580
  GenericHeaderComponent,
6386
6581
  {
6387
6582
  items: navItem.children.map((child) => ({
@@ -6398,7 +6593,7 @@ function HeaderNavigation({
6398
6593
  href: navItem.href
6399
6594
  };
6400
6595
  });
6401
- return /* @__PURE__ */ React21.createElement(React21.Fragment, null, /* @__PURE__ */ React21.createElement(
6596
+ return /* @__PURE__ */ React22.createElement(React22.Fragment, null, /* @__PURE__ */ React22.createElement(
6402
6597
  "header",
6403
6598
  {
6404
6599
  ref: headerRef,
@@ -6407,7 +6602,7 @@ function HeaderNavigation({
6407
6602
  getVariantClasses()
6408
6603
  )
6409
6604
  },
6410
- /* @__PURE__ */ React21.createElement("div", { className: "flex size-full max-w-container flex-1 items-center pr-3 pl-4 md:px-8" }, /* @__PURE__ */ React21.createElement("div", { className: "flex w-full justify-between gap-4" }, /* @__PURE__ */ React21.createElement("div", { className: "flex flex-1 items-center gap-5" }, /* @__PURE__ */ React21.createElement(Link4, { href: (logo == null ? void 0 : logo.href) || "/", className: "flex items-center space-x-2" }, logoImage ? /* @__PURE__ */ React21.createElement(
6605
+ /* @__PURE__ */ React22.createElement("div", { className: "flex size-full max-w-container flex-1 items-center pr-3 pl-4 md:px-8" }, /* @__PURE__ */ React22.createElement("div", { className: "flex w-full justify-between gap-4" }, /* @__PURE__ */ React22.createElement("div", { className: "flex flex-1 items-center gap-5" }, /* @__PURE__ */ React22.createElement(Link4, { href: (logo == null ? void 0 : logo.href) || "/", className: "flex items-center space-x-2" }, logoImage ? /* @__PURE__ */ React22.createElement(
6411
6606
  Image8,
6412
6607
  {
6413
6608
  src: logoImage,
@@ -6416,14 +6611,14 @@ function HeaderNavigation({
6416
6611
  width: 32,
6417
6612
  height: 32
6418
6613
  }
6419
- ) : /* @__PURE__ */ React21.createElement("div", { className: "h-8 w-8 bg-blue-600 rounded-lg flex items-center justify-center" }, /* @__PURE__ */ React21.createElement("span", { className: "text-white font-bold text-lg" }, ((_e = logoText == null ? void 0 : logoText.charAt(0)) == null ? void 0 : _e.toUpperCase()) || "")), /* @__PURE__ */ React21.createElement("span", { className: "text-xl font-bold text-primary hidden md:block" }, logoText)), /* @__PURE__ */ React21.createElement("nav", { className: "max-md:hidden" }, /* @__PURE__ */ React21.createElement("ul", { className: "flex items-center gap-0.5" }, headerNavItems.map((navItem) => /* @__PURE__ */ React21.createElement("li", { key: navItem.label }, navItem.menu ? /* @__PURE__ */ React21.createElement(HoverDropdown, { label: navItem.label, href: navItem.href }, navItem.menu) : /* @__PURE__ */ React21.createElement(
6614
+ ) : /* @__PURE__ */ React22.createElement("div", { className: "h-8 w-8 bg-blue-600 rounded-lg flex items-center justify-center" }, /* @__PURE__ */ React22.createElement("span", { className: "text-white font-bold text-lg" }, ((_e = logoText == null ? void 0 : logoText.charAt(0)) == null ? void 0 : _e.toUpperCase()) || "")), /* @__PURE__ */ React22.createElement("span", { className: "text-xl font-bold text-primary hidden md:block" }, logoText)), /* @__PURE__ */ React22.createElement("nav", { className: "max-md:hidden" }, /* @__PURE__ */ React22.createElement("ul", { className: "flex items-center gap-0.5" }, headerNavItems.map((navItem) => /* @__PURE__ */ React22.createElement("li", { key: navItem.label }, navItem.menu ? /* @__PURE__ */ React22.createElement(HoverDropdown, { label: navItem.label, href: navItem.href }, navItem.menu) : /* @__PURE__ */ React22.createElement(
6420
6615
  Link4,
6421
6616
  {
6422
6617
  href: navItem.href || "#",
6423
6618
  className: "flex cursor-pointer items-center gap-0.5 rounded-lg px-1.5 py-1 text-sm font-medium text-secondary outline-focus-ring transition duration-100 ease-linear hover:text-secondary_hover focus:outline-offset-2 focus-visible:outline-2"
6424
6619
  },
6425
- /* @__PURE__ */ React21.createElement("span", { className: "px-0.5" }, navItem.label)
6426
- )))))), /* @__PURE__ */ React21.createElement("div", { className: "hidden items-center gap-3 md:flex" }, (cta_button == null ? void 0 : cta_button.secondary_label) && ctaUrls.hasSecondary && /* @__PURE__ */ React21.createElement(
6620
+ /* @__PURE__ */ React22.createElement("span", { className: "px-0.5" }, navItem.label)
6621
+ )))))), /* @__PURE__ */ React22.createElement("div", { className: "hidden items-center gap-3 md:flex" }, (cta_button == null ? void 0 : cta_button.secondary_label) && ctaUrls.hasSecondary && /* @__PURE__ */ React22.createElement(
6427
6622
  Button2,
6428
6623
  {
6429
6624
  href: ctaUrls.secondaryHref,
@@ -6433,7 +6628,7 @@ function HeaderNavigation({
6433
6628
  size: "lg"
6434
6629
  },
6435
6630
  cta_button.label
6436
- ), /* @__PURE__ */ React21.createElement(
6631
+ ), /* @__PURE__ */ React22.createElement(
6437
6632
  Button2,
6438
6633
  {
6439
6634
  href: ctaUrls.primaryHref,
@@ -6443,7 +6638,7 @@ function HeaderNavigation({
6443
6638
  size: "lg"
6444
6639
  },
6445
6640
  (cta_button == null ? void 0 : cta_button.secondary_label) && ctaUrls.hasSecondary ? cta_button.secondary_label : (cta_button == null ? void 0 : cta_button.label) || "Get Started"
6446
- )), /* @__PURE__ */ React21.createElement(AriaDialogTrigger, null, /* @__PURE__ */ React21.createElement(
6641
+ )), /* @__PURE__ */ React22.createElement(AriaDialogTrigger, null, /* @__PURE__ */ React22.createElement(
6447
6642
  AriaButton8,
6448
6643
  {
6449
6644
  "aria-label": "Toggle navigation menu",
@@ -6453,7 +6648,7 @@ function HeaderNavigation({
6453
6648
  isFocusVisible && "outline-2 outline-offset-2 outline-focus-ring"
6454
6649
  )
6455
6650
  },
6456
- /* @__PURE__ */ React21.createElement("svg", { "aria-hidden": "true", width: "24", height: "24", viewBox: "0 0 24 24", fill: "none" }, /* @__PURE__ */ React21.createElement(
6651
+ /* @__PURE__ */ React22.createElement("svg", { "aria-hidden": "true", width: "24", height: "24", viewBox: "0 0 24 24", fill: "none" }, /* @__PURE__ */ React22.createElement(
6457
6652
  "path",
6458
6653
  {
6459
6654
  className: "hidden text-secondary group-aria-expanded:block",
@@ -6463,7 +6658,7 @@ function HeaderNavigation({
6463
6658
  strokeLinecap: "round",
6464
6659
  strokeLinejoin: "round"
6465
6660
  }
6466
- ), /* @__PURE__ */ React21.createElement(
6661
+ ), /* @__PURE__ */ React22.createElement(
6467
6662
  "path",
6468
6663
  {
6469
6664
  className: "text-secondary group-aria-expanded:hidden",
@@ -6474,7 +6669,7 @@ function HeaderNavigation({
6474
6669
  strokeLinejoin: "round"
6475
6670
  }
6476
6671
  ))
6477
- ), /* @__PURE__ */ React21.createElement(
6672
+ ), /* @__PURE__ */ React22.createElement(
6478
6673
  AriaPopover3,
6479
6674
  {
6480
6675
  triggerRef: headerRef,
@@ -6484,15 +6679,15 @@ function HeaderNavigation({
6484
6679
  containerPadding: 0,
6485
6680
  placement: "bottom left"
6486
6681
  },
6487
- /* @__PURE__ */ React21.createElement(AriaDialog, { className: "outline-hidden" }, /* @__PURE__ */ React21.createElement("nav", { className: "w-full bg-primary shadow-lg" }, /* @__PURE__ */ React21.createElement("ul", { className: "flex flex-col gap-0.5 py-5" }, headerNavItems.map(
6488
- (navItem) => navItem.menu ? /* @__PURE__ */ React21.createElement(
6682
+ /* @__PURE__ */ React22.createElement(AriaDialog, { className: "outline-hidden" }, /* @__PURE__ */ React22.createElement("nav", { className: "w-full bg-primary shadow-lg" }, /* @__PURE__ */ React22.createElement("ul", { className: "flex flex-col gap-0.5 py-5" }, headerNavItems.map(
6683
+ (navItem) => navItem.menu ? /* @__PURE__ */ React22.createElement(
6489
6684
  MobileNavItem,
6490
6685
  {
6491
6686
  key: navItem.label,
6492
6687
  label: navItem.label
6493
6688
  },
6494
6689
  navItem.menu
6495
- ) : /* @__PURE__ */ React21.createElement(
6690
+ ) : /* @__PURE__ */ React22.createElement(
6496
6691
  MobileNavItem,
6497
6692
  {
6498
6693
  key: navItem.label,
@@ -6500,7 +6695,7 @@ function HeaderNavigation({
6500
6695
  href: navItem.href
6501
6696
  }
6502
6697
  )
6503
- )), /* @__PURE__ */ React21.createElement("div", { className: "flex flex-col gap-3 border-t border-secondary px-4 py-6" }, (cta_button == null ? void 0 : cta_button.secondary_label) && ctaUrls.hasSecondary && /* @__PURE__ */ React21.createElement(
6698
+ )), /* @__PURE__ */ React22.createElement("div", { className: "flex flex-col gap-3 border-t border-secondary px-4 py-6" }, (cta_button == null ? void 0 : cta_button.secondary_label) && ctaUrls.hasSecondary && /* @__PURE__ */ React22.createElement(
6504
6699
  Button2,
6505
6700
  {
6506
6701
  href: ctaUrls.secondaryHref,
@@ -6510,7 +6705,7 @@ function HeaderNavigation({
6510
6705
  size: "lg"
6511
6706
  },
6512
6707
  cta_button.label
6513
- ), /* @__PURE__ */ React21.createElement(
6708
+ ), /* @__PURE__ */ React22.createElement(
6514
6709
  Button2,
6515
6710
  {
6516
6711
  href: ctaUrls.primaryHref,
@@ -6522,7 +6717,7 @@ function HeaderNavigation({
6522
6717
  (cta_button == null ? void 0 : cta_button.secondary_label) && ctaUrls.hasSecondary ? cta_button.secondary_label : (cta_button == null ? void 0 : cta_button.label) || "Get Started"
6523
6718
  ))))
6524
6719
  ))))
6525
- ), /* @__PURE__ */ React21.createElement("div", { className: "fixed bottom-0 left-0 right-0 z-40 md:hidden bg-fg-primary" }, /* @__PURE__ */ React21.createElement("div", { className: "flex gap-0" }, (cta_button == null ? void 0 : cta_button.secondary_label) && ctaUrls.hasSecondary && /* @__PURE__ */ React21.createElement(
6720
+ ), /* @__PURE__ */ React22.createElement("div", { className: "fixed bottom-0 left-0 right-0 z-40 md:hidden bg-fg-primary" }, /* @__PURE__ */ React22.createElement("div", { className: "flex gap-0" }, (cta_button == null ? void 0 : cta_button.secondary_label) && ctaUrls.hasSecondary && /* @__PURE__ */ React22.createElement(
6526
6721
  Button2,
6527
6722
  {
6528
6723
  href: ctaUrls.secondaryHref,
@@ -6532,7 +6727,7 @@ function HeaderNavigation({
6532
6727
  className: "flex-1 font-body text-sm uppercase tracking-wide py-4 rounded-none border-r border-white/20"
6533
6728
  },
6534
6729
  cta_button.label
6535
- ), /* @__PURE__ */ React21.createElement(
6730
+ ), /* @__PURE__ */ React22.createElement(
6536
6731
  Button2,
6537
6732
  {
6538
6733
  href: ctaUrls.primaryHref,
@@ -6565,7 +6760,7 @@ var StatisticsSection = ({
6565
6760
  };
6566
6761
 
6567
6762
  // src/design_system/sections/values-section.tsx
6568
- import React22 from "react";
6763
+ import React23 from "react";
6569
6764
  var ValuesSection = ({
6570
6765
  values = [],
6571
6766
  label = "",
@@ -6576,16 +6771,16 @@ var ValuesSection = ({
6576
6771
  className = ""
6577
6772
  }) => {
6578
6773
  const hasValues = values.length > 0;
6579
- return /* @__PURE__ */ React22.createElement("section", { className: `${backgroundColor} py-16 md:py-24 ${className}` }, /* @__PURE__ */ React22.createElement("div", { className: "mx-auto w-full max-w-container px-4 md:px-8" }, /* @__PURE__ */ React22.createElement("div", { className: "mx-auto flex w-full max-w-3xl flex-col items-center text-center" }, label && /* @__PURE__ */ React22.createElement("span", { className: "text-sm font-semibold text-brand-secondary md:text-md" }, label), title && /* @__PURE__ */ React22.createElement("h2", { className: `${label ? "mt-3" : ""} text-display-sm font-semibold text-primary md:text-display-md` }, title), subtitle && /* @__PURE__ */ React22.createElement("p", { className: "mt-4 text-lg text-tertiary md:mt-5 md:text-xl" }, subtitle), description && !hasValues && /* @__PURE__ */ React22.createElement("p", { className: "mt-4 text-md text-tertiary md:mt-6 md:text-lg" }, description)), values.length > 0 ? /* @__PURE__ */ React22.createElement("div", { className: "mt-12 md:mt-16" }, (() => {
6774
+ return /* @__PURE__ */ React23.createElement("section", { className: `${backgroundColor} py-16 md:py-24 ${className}` }, /* @__PURE__ */ React23.createElement("div", { className: "mx-auto w-full max-w-container px-4 md:px-8" }, /* @__PURE__ */ React23.createElement("div", { className: "mx-auto flex w-full max-w-3xl flex-col items-center text-center" }, label && /* @__PURE__ */ React23.createElement("span", { className: "text-sm font-semibold text-brand-secondary md:text-md" }, label), title && /* @__PURE__ */ React23.createElement("h2", { className: `${label ? "mt-3" : ""} text-display-sm font-semibold text-primary md:text-display-md` }, title), subtitle && /* @__PURE__ */ React23.createElement("p", { className: "mt-4 text-lg text-tertiary md:mt-5 md:text-xl" }, subtitle), description && !hasValues && /* @__PURE__ */ React23.createElement("p", { className: "mt-4 text-md text-tertiary md:mt-6 md:text-lg" }, description)), values.length > 0 ? /* @__PURE__ */ React23.createElement("div", { className: "mt-12 md:mt-16" }, (() => {
6580
6775
  const anyIconMissing = values.some(
6581
6776
  (value) => typeof value.icon === "string" && value.icon && !mapIcon(value.icon)
6582
6777
  );
6583
6778
  const useStarForAll = anyIconMissing;
6584
- return /* @__PURE__ */ React22.createElement("ul", { className: "grid w-full grid-cols-1 justify-items-center gap-x-8 gap-y-10 sm:grid-cols-2 md:gap-y-16 lg:grid-cols-3" }, values.map((value, index) => {
6779
+ return /* @__PURE__ */ React23.createElement("ul", { className: "grid w-full grid-cols-1 justify-items-center gap-x-8 gap-y-10 sm:grid-cols-2 md:gap-y-16 lg:grid-cols-3" }, values.map((value, index) => {
6585
6780
  const IconComponent2 = useStarForAll ? mapIcon("star") : mapIcon(value.icon) || mapIcon("star");
6586
6781
  if (!IconComponent2) return null;
6587
- const IconWrapper = ({ className: className2 }) => /* @__PURE__ */ React22.createElement("div", { className: className2 }, /* @__PURE__ */ React22.createElement(IconComponent2, { className: "w-full h-full" }));
6588
- return /* @__PURE__ */ React22.createElement("li", { key: index }, /* @__PURE__ */ React22.createElement("div", { className: "flex max-w-sm flex-col items-center gap-4 text-center" }, /* @__PURE__ */ React22.createElement(
6782
+ const IconWrapper = ({ className: className2 }) => /* @__PURE__ */ React23.createElement("div", { className: className2 }, /* @__PURE__ */ React23.createElement(IconComponent2, { className: "w-full h-full" }));
6783
+ return /* @__PURE__ */ React23.createElement("li", { key: index }, /* @__PURE__ */ React23.createElement("div", { className: "flex max-w-sm flex-col items-center gap-4 text-center" }, /* @__PURE__ */ React23.createElement(
6589
6784
  FeaturedIcon2,
6590
6785
  {
6591
6786
  icon: IconWrapper,
@@ -6594,7 +6789,7 @@ var ValuesSection = ({
6594
6789
  theme: "modern",
6595
6790
  className: "hidden md:inline-flex"
6596
6791
  }
6597
- ), /* @__PURE__ */ React22.createElement(
6792
+ ), /* @__PURE__ */ React23.createElement(
6598
6793
  FeaturedIcon2,
6599
6794
  {
6600
6795
  icon: IconWrapper,
@@ -6603,13 +6798,13 @@ var ValuesSection = ({
6603
6798
  theme: "modern",
6604
6799
  className: "inline-flex md:hidden"
6605
6800
  }
6606
- ), /* @__PURE__ */ React22.createElement("div", null, /* @__PURE__ */ React22.createElement("h3", { className: "text-lg font-semibold text-primary" }, value.title), /* @__PURE__ */ React22.createElement("p", { className: "mt-1 text-md text-tertiary" }, value.description))));
6801
+ ), /* @__PURE__ */ React23.createElement("div", null, /* @__PURE__ */ React23.createElement("h3", { className: "text-lg font-semibold text-primary" }, value.title), /* @__PURE__ */ React23.createElement("p", { className: "mt-1 text-md text-tertiary" }, value.description))));
6607
6802
  }));
6608
6803
  })()) : null));
6609
6804
  };
6610
6805
 
6611
6806
  // src/design_system/sections/team-grid.tsx
6612
- import React23 from "react";
6807
+ import React24 from "react";
6613
6808
  var TeamGrid = ({
6614
6809
  teamMembers: membersData,
6615
6810
  title = "",
@@ -6620,10 +6815,10 @@ var TeamGrid = ({
6620
6815
  }) => {
6621
6816
  const members = Array.isArray(membersData) ? membersData : [];
6622
6817
  const displayMembers = members.slice(0, maxMembers);
6623
- return /* @__PURE__ */ React23.createElement("section", { className: `${backgroundColor} py-16 md:py-24 ${className}` }, /* @__PURE__ */ React23.createElement("div", { className: "mx-auto w-full max-w-container px-4 md:px-8" }, (title || subtitle) && /* @__PURE__ */ React23.createElement("div", { className: "mx-auto mb-12 flex w-full max-w-3xl flex-col items-center text-center" }, title && /* @__PURE__ */ React23.createElement("h2", { className: "text-display-sm font-semibold text-primary md:text-display-md" }, title), subtitle && /* @__PURE__ */ React23.createElement("p", { className: "mt-4 text-lg text-tertiary md:mt-5 md:text-xl" }, subtitle)), displayMembers.length > 0 ? /* @__PURE__ */ React23.createElement("div", { className: "mt-12 md:mt-16" }, /* @__PURE__ */ React23.createElement("ul", { className: "grid w-full grid-cols-1 gap-x-8 gap-y-10 sm:grid-cols-2 md:gap-y-12 lg:grid-cols-3 xl:grid-cols-4" }, displayMembers.map((member, index) => {
6818
+ return /* @__PURE__ */ React24.createElement("section", { className: `${backgroundColor} py-16 md:py-24 ${className}` }, /* @__PURE__ */ React24.createElement("div", { className: "mx-auto w-full max-w-container px-4 md:px-8" }, (title || subtitle) && /* @__PURE__ */ React24.createElement("div", { className: "mx-auto mb-12 flex w-full max-w-3xl flex-col items-center text-center" }, title && /* @__PURE__ */ React24.createElement("h2", { className: "text-display-sm font-semibold text-primary md:text-display-md" }, title), subtitle && /* @__PURE__ */ React24.createElement("p", { className: "mt-4 text-lg text-tertiary md:mt-5 md:text-xl" }, subtitle)), displayMembers.length > 0 ? /* @__PURE__ */ React24.createElement("div", { className: "mt-12 md:mt-16" }, /* @__PURE__ */ React24.createElement("ul", { className: "grid w-full grid-cols-1 gap-x-8 gap-y-10 sm:grid-cols-2 md:gap-y-12 lg:grid-cols-3 xl:grid-cols-4" }, displayMembers.map((member, index) => {
6624
6819
  var _a;
6625
6820
  const bio = ((_a = member.bio_markdown) == null ? void 0 : _a.replace(/[#*\[\]()]/g, "").trim()) || "";
6626
- return /* @__PURE__ */ React23.createElement("li", { key: member.id || index, className: "flex flex-col gap-5 md:gap-6" }, /* @__PURE__ */ React23.createElement(
6821
+ return /* @__PURE__ */ React24.createElement("li", { key: member.id || index, className: "flex flex-col gap-5 md:gap-6" }, /* @__PURE__ */ React24.createElement(
6627
6822
  PhotoWithFallback2,
6628
6823
  {
6629
6824
  item: member,
@@ -6631,15 +6826,15 @@ var TeamGrid = ({
6631
6826
  alt: member.name || "Team member",
6632
6827
  className: "h-78 w-full object-cover md:h-74 rounded-2xl"
6633
6828
  }
6634
- ), /* @__PURE__ */ React23.createElement("div", null, /* @__PURE__ */ React23.createElement("h3", { className: "text-lg font-semibold text-primary md:text-xl" }, member.name), /* @__PURE__ */ React23.createElement("p", { className: "text-md text-brand-secondary md:mt-0.5 md:text-lg" }, member.position), bio && /* @__PURE__ */ React23.createElement("p", { className: "mt-4 text-md text-tertiary leading-relaxed" }, bio)));
6635
- }))) : /* @__PURE__ */ React23.createElement("div", { className: "text-center mt-12" }, /* @__PURE__ */ React23.createElement("p", { className: "text-gray-500" }, "No team members available"))));
6829
+ ), /* @__PURE__ */ React24.createElement("div", null, /* @__PURE__ */ React24.createElement("h3", { className: "text-lg font-semibold text-primary md:text-xl" }, member.name), /* @__PURE__ */ React24.createElement("p", { className: "text-md text-brand-secondary md:mt-0.5 md:text-lg" }, member.position), bio && /* @__PURE__ */ React24.createElement("p", { className: "mt-4 text-md text-tertiary leading-relaxed" }, bio)));
6830
+ }))) : /* @__PURE__ */ React24.createElement("div", { className: "text-center mt-12" }, /* @__PURE__ */ React24.createElement("p", { className: "text-gray-500" }, "No team members available"))));
6636
6831
  };
6637
6832
 
6638
6833
  // src/design_system/sections/location-grid.tsx
6639
- import React24 from "react";
6834
+ import React25 from "react";
6640
6835
  import { ArrowRight as ArrowRight6 } from "@untitledui/icons";
6641
- var LocationIcon = ({ className }) => /* @__PURE__ */ React24.createElement("svg", { className, fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React24.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M17.657 16.657L13.414 20.9a1.998 1.998 0 01-2.827 0l-4.244-4.243a8 8 0 1111.314 0z" }), /* @__PURE__ */ React24.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M15 11a3 3 0 11-6 0 3 3 0 016 0z" }));
6642
- var PhoneIcon = ({ className }) => /* @__PURE__ */ React24.createElement("svg", { className, fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React24.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M3 5a2 2 0 012-2h3.28a1 1 0 01.948.684l1.498 4.493a1 1 0 01-.502 1.21l-2.257 1.13a11.042 11.042 0 005.516 5.516l1.13-2.257a1 1 0 011.21-.502l4.493 1.498a1 1 0 01.684.949V19a2 2 0 01-2 2h-1C9.716 21 3 14.284 3 6V5z" }));
6836
+ var LocationIcon = ({ className }) => /* @__PURE__ */ React25.createElement("svg", { className, fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React25.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M17.657 16.657L13.414 20.9a1.998 1.998 0 01-2.827 0l-4.244-4.243a8 8 0 1111.314 0z" }), /* @__PURE__ */ React25.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M15 11a3 3 0 11-6 0 3 3 0 016 0z" }));
6837
+ var PhoneIcon = ({ className }) => /* @__PURE__ */ React25.createElement("svg", { className, fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React25.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M3 5a2 2 0 012-2h3.28a1 1 0 01.948.684l1.498 4.493a1 1 0 01-.502 1.21l-2.257 1.13a11.042 11.042 0 005.516 5.516l1.13-2.257a1 1 0 011.21-.502l4.493 1.498a1 1 0 01.684.949V19a2 2 0 01-2 2h-1C9.716 21 3 14.284 3 6V5z" }));
6643
6838
  var LocationGrid = ({
6644
6839
  locations: locationsData,
6645
6840
  companyInformation,
@@ -6653,16 +6848,16 @@ var LocationGrid = ({
6653
6848
  const locations = Array.isArray(locationsData) ? locationsData : [];
6654
6849
  const resolved = companyInformation ? resolveCtaUrls(companyInformation) : null;
6655
6850
  const primaryCtaHref = (_a = primaryCtaHrefOverride != null ? primaryCtaHrefOverride : resolved == null ? void 0 : resolved.primaryHref) != null ? _a : "/contact";
6656
- return /* @__PURE__ */ React24.createElement("section", { className: `${backgroundColor} py-16 md:py-24 ${className}` }, /* @__PURE__ */ React24.createElement("div", { className: "mx-auto w-full max-w-container px-4 md:px-8" }, (title || subtitle) && /* @__PURE__ */ React24.createElement("div", { className: "mx-auto mb-12 flex w-full max-w-3xl flex-col items-center text-center" }, title && /* @__PURE__ */ React24.createElement("h2", { className: "text-display-sm font-semibold text-primary md:text-display-md" }, title), subtitle && /* @__PURE__ */ React24.createElement("p", { className: "mt-4 text-lg text-tertiary md:mt-5 md:text-xl" }, subtitle)), locations.length > 0 ? /* @__PURE__ */ React24.createElement("ul", { className: "grid grid-cols-1 gap-x-8 gap-y-10 sm:grid-cols-2 md:gap-y-12 lg:grid-cols-3" }, locations.map((location, index) => {
6851
+ return /* @__PURE__ */ React25.createElement("section", { className: `${backgroundColor} py-16 md:py-24 ${className}` }, /* @__PURE__ */ React25.createElement("div", { className: "mx-auto w-full max-w-container px-4 md:px-8" }, (title || subtitle) && /* @__PURE__ */ React25.createElement("div", { className: "mx-auto mb-12 flex w-full max-w-3xl flex-col items-center text-center" }, title && /* @__PURE__ */ React25.createElement("h2", { className: "text-display-sm font-semibold text-primary md:text-display-md" }, title), subtitle && /* @__PURE__ */ React25.createElement("p", { className: "mt-4 text-lg text-tertiary md:mt-5 md:text-xl" }, subtitle)), locations.length > 0 ? /* @__PURE__ */ React25.createElement("ul", { className: "grid grid-cols-1 gap-x-8 gap-y-10 sm:grid-cols-2 md:gap-y-12 lg:grid-cols-3" }, locations.map((location, index) => {
6657
6852
  const fullAddress = `${location.address_line_1}${location.address_line_2 ? `, ${location.address_line_2}` : ""}, ${location.city}, ${location.state} ${location.zip_code}`.trim();
6658
- return /* @__PURE__ */ React24.createElement("li", { key: location.id || index, className: "flex flex-col gap-6 rounded-2xl bg-secondary p-6 ring-1 ring-secondary_alt md:p-8" }, /* @__PURE__ */ React24.createElement("div", { className: "flex flex-col gap-4" }, /* @__PURE__ */ React24.createElement("h3", { className: "text-lg font-semibold text-primary md:text-xl" }, location.name), fullAddress && /* @__PURE__ */ React24.createElement("div", { className: "flex items-start gap-3" }, /* @__PURE__ */ React24.createElement("div", { className: "size-5 shrink-0 mt-0.5 text-fg-quaternary" }, /* @__PURE__ */ React24.createElement(LocationIcon, { className: "w-full h-full" })), /* @__PURE__ */ React24.createElement("span", { className: "text-md text-tertiary" }, fullAddress)), location.phone && /* @__PURE__ */ React24.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ React24.createElement("div", { className: "size-5 shrink-0 text-fg-quaternary" }, /* @__PURE__ */ React24.createElement(PhoneIcon, { className: "w-full h-full" })), /* @__PURE__ */ React24.createElement(
6853
+ return /* @__PURE__ */ React25.createElement("li", { key: location.id || index, className: "flex flex-col gap-6 rounded-2xl bg-secondary p-6 ring-1 ring-secondary_alt md:p-8" }, /* @__PURE__ */ React25.createElement("div", { className: "flex flex-col gap-4" }, /* @__PURE__ */ React25.createElement("h3", { className: "text-lg font-semibold text-primary md:text-xl" }, location.name), fullAddress && /* @__PURE__ */ React25.createElement("div", { className: "flex items-start gap-3" }, /* @__PURE__ */ React25.createElement("div", { className: "size-5 shrink-0 mt-0.5 text-fg-quaternary" }, /* @__PURE__ */ React25.createElement(LocationIcon, { className: "w-full h-full" })), /* @__PURE__ */ React25.createElement("span", { className: "text-md text-tertiary" }, fullAddress)), location.phone && /* @__PURE__ */ React25.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ React25.createElement("div", { className: "size-5 shrink-0 text-fg-quaternary" }, /* @__PURE__ */ React25.createElement(PhoneIcon, { className: "w-full h-full" })), /* @__PURE__ */ React25.createElement(
6659
6854
  "a",
6660
6855
  {
6661
6856
  href: `tel:${location.phone}`,
6662
6857
  className: "text-md text-tertiary hover:text-primary transition-colors"
6663
6858
  },
6664
6859
  location.phone
6665
- ))), /* @__PURE__ */ React24.createElement("div", { className: "flex flex-col gap-3 mt-auto" }, /* @__PURE__ */ React24.createElement(
6860
+ ))), /* @__PURE__ */ React25.createElement("div", { className: "flex flex-col gap-3 mt-auto" }, /* @__PURE__ */ React25.createElement(
6666
6861
  Button2,
6667
6862
  {
6668
6863
  size: "lg",
@@ -6671,11 +6866,11 @@ var LocationGrid = ({
6671
6866
  },
6672
6867
  "View details"
6673
6868
  )));
6674
- })) : /* @__PURE__ */ React24.createElement("div", { className: "text-center py-12" }, /* @__PURE__ */ React24.createElement("div", { className: "text-gray-400 text-6xl mb-4" }, "\u{1F4CD}"), /* @__PURE__ */ React24.createElement("h3", { className: "text-xl font-semibold text-primary mb-2" }, "No Locations Available"), /* @__PURE__ */ React24.createElement("p", { className: "text-gray-600 mb-4" }, "We're working on adding our service locations."), /* @__PURE__ */ React24.createElement(Button2, { href: primaryCtaHref, target: isExternalCtaUrl(primaryCtaHref) ? "_blank" : void 0, rel: isExternalCtaUrl(primaryCtaHref) ? "noopener noreferrer" : void 0 }, "Contact Us"))));
6869
+ })) : /* @__PURE__ */ React25.createElement("div", { className: "text-center py-12" }, /* @__PURE__ */ React25.createElement("div", { className: "text-gray-400 text-6xl mb-4" }, "\u{1F4CD}"), /* @__PURE__ */ React25.createElement("h3", { className: "text-xl font-semibold text-primary mb-2" }, "No Locations Available"), /* @__PURE__ */ React25.createElement("p", { className: "text-gray-600 mb-4" }, "We're working on adding our service locations."), /* @__PURE__ */ React25.createElement(Button2, { href: primaryCtaHref, target: isExternalCtaUrl(primaryCtaHref) ? "_blank" : void 0, rel: isExternalCtaUrl(primaryCtaHref) ? "noopener noreferrer" : void 0 }, "Contact Us"))));
6675
6870
  };
6676
6871
 
6677
6872
  // src/design_system/sections/location-details-section.tsx
6678
- import React25 from "react";
6873
+ import React26 from "react";
6679
6874
  import { Mail01, MarkerPin02, Phone, Clock as Clock2 } from "@untitledui/icons";
6680
6875
  var parseBusinessHours = (hours) => {
6681
6876
  if (!hours) return [];
@@ -6725,7 +6920,7 @@ var LocationDetailsSection = ({
6725
6920
  const showMap = true;
6726
6921
  const fullAddress = `${location.address_line_1}${location.address_line_2 ? `, ${location.address_line_2}` : ""}, ${location.city}, ${location.state} ${location.zip_code}`.trim();
6727
6922
  const businessHours = location.business_hours ? parseBusinessHours(location.business_hours) : [];
6728
- return /* @__PURE__ */ React25.createElement("section", { className: `${backgroundColor} py-16 md:py-24 ${className}` }, /* @__PURE__ */ React25.createElement("div", { className: "mx-auto w-full max-w-container px-4 md:px-8" }, /* @__PURE__ */ React25.createElement("div", { className: "flex w-full max-w-3xl flex-col" }, label && /* @__PURE__ */ React25.createElement("span", { className: "text-sm font-semibold text-brand-secondary md:text-md" }, label), title && /* @__PURE__ */ React25.createElement("h2", { className: "mt-3 text-display-sm font-semibold text-primary md:text-display-md" }, title), subtitle && /* @__PURE__ */ React25.createElement("p", { className: "mt-4 text-lg text-tertiary md:mt-5 md:text-xl" }, subtitle)), /* @__PURE__ */ React25.createElement("div", { className: "mt-12 grid grid-cols-1 items-start gap-12 md:mt-16 md:gap-16 lg:grid-cols-3" }, /* @__PURE__ */ React25.createElement("ul", { className: "col-span-1 grid w-full grid-cols-1 gap-x-8 gap-y-10 md:grid-cols-2 lg:grid-cols-1 lg:gap-y-12" }, location.address_line_1 && /* @__PURE__ */ React25.createElement("li", { className: "flex max-w-sm flex-col items-start gap-4 lg:flex-row" }, /* @__PURE__ */ React25.createElement(FeaturedIcon2, { className: "hidden md:flex", size: "lg", icon: MarkerPin02, color: "brand", theme: "light" }), /* @__PURE__ */ React25.createElement(FeaturedIcon2, { className: "md:hidden", size: "md", icon: MarkerPin02, color: "brand", theme: "light" }), /* @__PURE__ */ React25.createElement("div", { className: "lg:pt-2.5" }, /* @__PURE__ */ React25.createElement("h3", { className: "text-lg font-semibold text-primary" }, officeLabel), /* @__PURE__ */ React25.createElement("p", { className: "mt-1 text-md text-tertiary" }, officeDescription), /* @__PURE__ */ React25.createElement(
6923
+ return /* @__PURE__ */ React26.createElement("section", { className: `${backgroundColor} py-16 md:py-24 ${className}` }, /* @__PURE__ */ React26.createElement("div", { className: "mx-auto w-full max-w-container px-4 md:px-8" }, /* @__PURE__ */ React26.createElement("div", { className: "flex w-full max-w-3xl flex-col" }, label && /* @__PURE__ */ React26.createElement("span", { className: "text-sm font-semibold text-brand-secondary md:text-md" }, label), title && /* @__PURE__ */ React26.createElement("h2", { className: "mt-3 text-display-sm font-semibold text-primary md:text-display-md" }, title), subtitle && /* @__PURE__ */ React26.createElement("p", { className: "mt-4 text-lg text-tertiary md:mt-5 md:text-xl" }, subtitle)), /* @__PURE__ */ React26.createElement("div", { className: "mt-12 grid grid-cols-1 items-start gap-12 md:mt-16 md:gap-16 lg:grid-cols-3" }, /* @__PURE__ */ React26.createElement("ul", { className: "col-span-1 grid w-full grid-cols-1 gap-x-8 gap-y-10 md:grid-cols-2 lg:grid-cols-1 lg:gap-y-12" }, location.address_line_1 && /* @__PURE__ */ React26.createElement("li", { className: "flex max-w-sm flex-col items-start gap-4 lg:flex-row" }, /* @__PURE__ */ React26.createElement(FeaturedIcon2, { className: "hidden md:flex", size: "lg", icon: MarkerPin02, color: "brand", theme: "light" }), /* @__PURE__ */ React26.createElement(FeaturedIcon2, { className: "md:hidden", size: "md", icon: MarkerPin02, color: "brand", theme: "light" }), /* @__PURE__ */ React26.createElement("div", { className: "lg:pt-2.5" }, /* @__PURE__ */ React26.createElement("h3", { className: "text-lg font-semibold text-primary" }, officeLabel), /* @__PURE__ */ React26.createElement("p", { className: "mt-1 text-md text-tertiary" }, officeDescription), /* @__PURE__ */ React26.createElement(
6729
6924
  Button2,
6730
6925
  {
6731
6926
  href: `https://maps.google.com/?q=${encodeURIComponent(fullAddress)}`,
@@ -6738,7 +6933,7 @@ var LocationDetailsSection = ({
6738
6933
  ${location.address_line_2}` : "",
6739
6934
  `
6740
6935
  ${location.city}, ${location.state} ${location.zip_code}`
6741
- ))), location.phone && /* @__PURE__ */ React25.createElement("li", { className: "flex max-w-sm flex-col items-start gap-4 lg:flex-row" }, /* @__PURE__ */ React25.createElement(FeaturedIcon2, { className: "hidden md:flex", size: "lg", icon: Phone, color: "brand", theme: "light" }), /* @__PURE__ */ React25.createElement(FeaturedIcon2, { className: "md:hidden", size: "md", icon: Phone, color: "brand", theme: "light" }), /* @__PURE__ */ React25.createElement("div", { className: "lg:pt-2.5" }, /* @__PURE__ */ React25.createElement("h3", { className: "text-lg font-semibold text-primary" }, phoneLabel), /* @__PURE__ */ React25.createElement("p", { className: "mt-1 text-md text-tertiary" }, phoneDescription), /* @__PURE__ */ React25.createElement(Button2, { href: `tel:${location.phone}`, color: "link-color", size: "lg", className: "mt-4 lg:mt-5" }, location.phone))), location.email && /* @__PURE__ */ React25.createElement("li", { className: "flex max-w-sm flex-col items-start gap-4 lg:flex-row" }, /* @__PURE__ */ React25.createElement(FeaturedIcon2, { className: "hidden md:flex", size: "lg", icon: Mail01, color: "brand", theme: "light" }), /* @__PURE__ */ React25.createElement(FeaturedIcon2, { className: "md:hidden", size: "md", icon: Mail01, color: "brand", theme: "light" }), /* @__PURE__ */ React25.createElement("div", { className: "lg:pt-2.5" }, /* @__PURE__ */ React25.createElement("h3", { className: "text-lg font-semibold text-primary" }, emailLabel), /* @__PURE__ */ React25.createElement("p", { className: "mt-1 text-md text-tertiary" }, emailDescription), /* @__PURE__ */ React25.createElement(Button2, { href: `mailto:${location.email}`, color: "link-color", size: "lg", className: "mt-4 lg:mt-5" }, location.email))), businessHours.length > 0 && /* @__PURE__ */ React25.createElement("li", { className: "flex max-w-sm flex-col items-start gap-4 lg:flex-row" }, /* @__PURE__ */ React25.createElement(FeaturedIcon2, { className: "hidden md:flex", size: "lg", icon: Clock2, color: "brand", theme: "light" }), /* @__PURE__ */ React25.createElement(FeaturedIcon2, { className: "md:hidden", size: "md", icon: Clock2, color: "brand", theme: "light" }), /* @__PURE__ */ React25.createElement("div", { className: "lg:pt-2.5" }, /* @__PURE__ */ React25.createElement("h3", { className: "text-lg font-semibold text-primary" }, "Business Hours"), /* @__PURE__ */ React25.createElement("div", { className: "mt-1 flex flex-col gap-2 text-md text-tertiary" }, businessHours.map(({ day, hours }) => /* @__PURE__ */ React25.createElement("div", { key: day, className: "flex justify-between gap-4" }, /* @__PURE__ */ React25.createElement("span", { className: "font-medium capitalize" }, day, ":"), /* @__PURE__ */ React25.createElement("span", null, hours))))))), showMap && fullAddress && /* @__PURE__ */ React25.createElement("div", { className: "col-span-2 h-60 w-full border-none lg:h-full" }, /* @__PURE__ */ React25.createElement(
6936
+ ))), location.phone && /* @__PURE__ */ React26.createElement("li", { className: "flex max-w-sm flex-col items-start gap-4 lg:flex-row" }, /* @__PURE__ */ React26.createElement(FeaturedIcon2, { className: "hidden md:flex", size: "lg", icon: Phone, color: "brand", theme: "light" }), /* @__PURE__ */ React26.createElement(FeaturedIcon2, { className: "md:hidden", size: "md", icon: Phone, color: "brand", theme: "light" }), /* @__PURE__ */ React26.createElement("div", { className: "lg:pt-2.5" }, /* @__PURE__ */ React26.createElement("h3", { className: "text-lg font-semibold text-primary" }, phoneLabel), /* @__PURE__ */ React26.createElement("p", { className: "mt-1 text-md text-tertiary" }, phoneDescription), /* @__PURE__ */ React26.createElement(Button2, { href: `tel:${location.phone}`, color: "link-color", size: "lg", className: "mt-4 lg:mt-5" }, location.phone))), location.email && /* @__PURE__ */ React26.createElement("li", { className: "flex max-w-sm flex-col items-start gap-4 lg:flex-row" }, /* @__PURE__ */ React26.createElement(FeaturedIcon2, { className: "hidden md:flex", size: "lg", icon: Mail01, color: "brand", theme: "light" }), /* @__PURE__ */ React26.createElement(FeaturedIcon2, { className: "md:hidden", size: "md", icon: Mail01, color: "brand", theme: "light" }), /* @__PURE__ */ React26.createElement("div", { className: "lg:pt-2.5" }, /* @__PURE__ */ React26.createElement("h3", { className: "text-lg font-semibold text-primary" }, emailLabel), /* @__PURE__ */ React26.createElement("p", { className: "mt-1 text-md text-tertiary" }, emailDescription), /* @__PURE__ */ React26.createElement(Button2, { href: `mailto:${location.email}`, color: "link-color", size: "lg", className: "mt-4 lg:mt-5" }, location.email))), businessHours.length > 0 && /* @__PURE__ */ React26.createElement("li", { className: "flex max-w-sm flex-col items-start gap-4 lg:flex-row" }, /* @__PURE__ */ React26.createElement(FeaturedIcon2, { className: "hidden md:flex", size: "lg", icon: Clock2, color: "brand", theme: "light" }), /* @__PURE__ */ React26.createElement(FeaturedIcon2, { className: "md:hidden", size: "md", icon: Clock2, color: "brand", theme: "light" }), /* @__PURE__ */ React26.createElement("div", { className: "lg:pt-2.5" }, /* @__PURE__ */ React26.createElement("h3", { className: "text-lg font-semibold text-primary" }, "Business Hours"), /* @__PURE__ */ React26.createElement("div", { className: "mt-1 flex flex-col gap-2 text-md text-tertiary" }, businessHours.map(({ day, hours }) => /* @__PURE__ */ React26.createElement("div", { key: day, className: "flex justify-between gap-4" }, /* @__PURE__ */ React26.createElement("span", { className: "font-medium capitalize" }, day, ":"), /* @__PURE__ */ React26.createElement("span", null, hours))))))), showMap && fullAddress && /* @__PURE__ */ React26.createElement("div", { className: "col-span-2 h-60 w-full border-none lg:h-full" }, /* @__PURE__ */ React26.createElement(
6742
6937
  GoogleMap2,
6743
6938
  {
6744
6939
  address: fullAddress,
@@ -6749,7 +6944,7 @@ ${location.city}, ${location.state} ${location.zip_code}`
6749
6944
  };
6750
6945
 
6751
6946
  // src/design_system/sections/services-grid.tsx
6752
- import React26 from "react";
6947
+ import React27 from "react";
6753
6948
  import { ArrowRight as ArrowRight7 } from "@untitledui/icons";
6754
6949
  var ServicesGrid = ({
6755
6950
  services: servicesData,
@@ -6759,12 +6954,12 @@ var ServicesGrid = ({
6759
6954
  className = ""
6760
6955
  }) => {
6761
6956
  const services = Array.isArray(servicesData) ? servicesData : [];
6762
- return /* @__PURE__ */ React26.createElement("section", { className: `${backgroundColor} py-16 md:py-24 ${className}` }, /* @__PURE__ */ React26.createElement("div", { className: "mx-auto w-full max-w-container px-4 md:px-8" }, (title || subtitle) && /* @__PURE__ */ React26.createElement("div", { className: "mx-auto mb-12 flex w-full max-w-3xl flex-col items-center text-center" }, title && /* @__PURE__ */ React26.createElement("h2", { className: "text-display-sm font-semibold text-primary md:text-display-md" }, title), subtitle && /* @__PURE__ */ React26.createElement("p", { className: "mt-4 text-lg text-tertiary md:mt-5 md:text-xl" }, subtitle)), services.length > 0 ? /* @__PURE__ */ React26.createElement("ul", { className: "grid grid-cols-1 gap-x-8 gap-y-10 sm:grid-cols-2 md:gap-y-12 lg:grid-cols-3" }, services.map((service, index) => {
6957
+ return /* @__PURE__ */ React27.createElement("section", { className: `${backgroundColor} py-16 md:py-24 ${className}` }, /* @__PURE__ */ React27.createElement("div", { className: "mx-auto w-full max-w-container px-4 md:px-8" }, (title || subtitle) && /* @__PURE__ */ React27.createElement("div", { className: "mx-auto mb-12 flex w-full max-w-3xl flex-col items-center text-center" }, title && /* @__PURE__ */ React27.createElement("h2", { className: "text-display-sm font-semibold text-primary md:text-display-md" }, title), subtitle && /* @__PURE__ */ React27.createElement("p", { className: "mt-4 text-lg text-tertiary md:mt-5 md:text-xl" }, subtitle)), services.length > 0 ? /* @__PURE__ */ React27.createElement("ul", { className: "grid grid-cols-1 gap-x-8 gap-y-10 sm:grid-cols-2 md:gap-y-12 lg:grid-cols-3" }, services.map((service, index) => {
6763
6958
  var _a, _b, _c, _d;
6764
6959
  const description = service.summary || (service.description_markdown ? service.description_markdown.replace(/[#*\[\]()]/g, "").trim().substring(0, 120) + "..." : "");
6765
6960
  const photo = ((_b = (_a = service.photo_attachments) == null ? void 0 : _a.find((pa) => pa.featured)) == null ? void 0 : _b.photo) || ((_d = (_c = service.photo_attachments) == null ? void 0 : _c[0]) == null ? void 0 : _d.photo);
6766
6961
  const imageAlt = (photo == null ? void 0 : photo.title) || service.name;
6767
- return /* @__PURE__ */ React26.createElement("li", { key: service.id || index }, /* @__PURE__ */ React26.createElement("div", { className: "flex flex-col gap-12 bg-secondary p-5 md:inline-flex md:gap-16 md:p-6" }, /* @__PURE__ */ React26.createElement("div", { className: "h-48 w-full overflow-hidden rounded-lg md:h-64" }, /* @__PURE__ */ React26.createElement(
6962
+ return /* @__PURE__ */ React27.createElement("li", { key: service.id || index }, /* @__PURE__ */ React27.createElement("div", { className: "flex flex-col gap-12 bg-secondary p-5 md:inline-flex md:gap-16 md:p-6" }, /* @__PURE__ */ React27.createElement("div", { className: "h-48 w-full overflow-hidden rounded-lg md:h-64" }, /* @__PURE__ */ React27.createElement(
6768
6963
  PhotoWithFallback2,
6769
6964
  {
6770
6965
  item: service,
@@ -6772,7 +6967,7 @@ var ServicesGrid = ({
6772
6967
  alt: imageAlt || "Service image",
6773
6968
  className: "size-full object-cover"
6774
6969
  }
6775
- )), /* @__PURE__ */ React26.createElement("div", { className: "flex flex-col gap-4" }, /* @__PURE__ */ React26.createElement("div", null, /* @__PURE__ */ React26.createElement("h3", { className: "text-lg font-semibold text-primary" }, service.name), description && /* @__PURE__ */ React26.createElement("p", { className: "mt-1 text-md text-tertiary" }, description)), /* @__PURE__ */ React26.createElement(
6970
+ )), /* @__PURE__ */ React27.createElement("div", { className: "flex flex-col gap-4" }, /* @__PURE__ */ React27.createElement("div", null, /* @__PURE__ */ React27.createElement("h3", { className: "text-lg font-semibold text-primary" }, service.name), description && /* @__PURE__ */ React27.createElement("p", { className: "mt-1 text-md text-tertiary" }, description)), /* @__PURE__ */ React27.createElement(
6776
6971
  Button2,
6777
6972
  {
6778
6973
  color: "link-color",
@@ -6782,25 +6977,29 @@ var ServicesGrid = ({
6782
6977
  },
6783
6978
  "Learn more"
6784
6979
  ))));
6785
- })) : /* @__PURE__ */ React26.createElement("div", { className: "text-center py-12" }, /* @__PURE__ */ React26.createElement("p", { className: "text-gray-500" }, "No services available"))));
6980
+ })) : /* @__PURE__ */ React27.createElement("div", { className: "text-center py-12" }, /* @__PURE__ */ React27.createElement("p", { className: "text-gray-500" }, "No services available"))));
6786
6981
  };
6787
6982
 
6788
6983
  // src/design_system/sections/social-media-grid.tsx
6789
- import React27, { useState as useState11 } from "react";
6984
+ import React28, { useState as useState11 } from "react";
6790
6985
  import Image9 from "next/image";
6791
6986
  import { ArrowLeft as ArrowLeft3, ArrowRight as ArrowRight8 } from "@untitledui/icons";
6792
6987
  function getPostImageUrls(post) {
6793
- var _a;
6794
- if ((_a = post.image_urls) == null ? void 0 : _a.length) return post.image_urls;
6988
+ var _a, _b;
6989
+ const videoSet = ((_a = post.video_urls) == null ? void 0 : _a.length) ? new Set(post.video_urls) : null;
6990
+ const isVideo = (url) => isVideoUrl(url) || videoSet !== null && videoSet.has(url);
6991
+ if ((_b = post.image_urls) == null ? void 0 : _b.length) {
6992
+ return post.image_urls.filter((url) => !isVideo(url));
6993
+ }
6795
6994
  const attachments = post.photo_attachments || [];
6796
6995
  const sorted = [...attachments].sort((a, b) => {
6797
- var _a2, _b;
6798
- return ((_a2 = a.sort_order) != null ? _a2 : 0) - ((_b = b.sort_order) != null ? _b : 0);
6996
+ var _a2, _b2;
6997
+ return ((_a2 = a.sort_order) != null ? _a2 : 0) - ((_b2 = b.sort_order) != null ? _b2 : 0);
6799
6998
  });
6800
6999
  return sorted.map((pa) => {
6801
- var _a2, _b, _c, _d;
6802
- return ((_a2 = pa.photo) == null ? void 0 : _a2.large_url) || ((_b = pa.photo) == null ? void 0 : _b.original_url) || ((_c = pa.photo) == null ? void 0 : _c.medium_url) || ((_d = pa.photo) == null ? void 0 : _d.thumbnail_url);
6803
- }).filter((url) => Boolean(url));
7000
+ var _a2, _b2, _c, _d;
7001
+ return ((_a2 = pa.photo) == null ? void 0 : _a2.large_url) || ((_b2 = pa.photo) == null ? void 0 : _b2.original_url) || ((_c = pa.photo) == null ? void 0 : _c.medium_url) || ((_d = pa.photo) == null ? void 0 : _d.thumbnail_url);
7002
+ }).filter((url) => Boolean(url)).filter((url) => !isVideo(url));
6804
7003
  }
6805
7004
  var getPlatformBadge = (platform) => {
6806
7005
  const platformLower = (platform == null ? void 0 : platform.toLowerCase()) || "social";
@@ -6839,19 +7038,19 @@ var SocialMediaGrid = ({
6839
7038
  const startIndex = (currentPage - 1) * postsPerPage;
6840
7039
  const endIndex = startIndex + postsPerPage;
6841
7040
  const paginatedPosts = posts.slice(startIndex, endIndex);
6842
- return /* @__PURE__ */ React27.createElement("section", { className: `${backgroundColor} py-16 md:py-24 ${className}` }, /* @__PURE__ */ React27.createElement("div", { className: "mx-auto w-full max-w-container px-4 md:px-8" }, (title || subtitle) && /* @__PURE__ */ React27.createElement("div", { className: "mx-auto mb-12 flex w-full max-w-3xl flex-col items-center text-center" }, title && /* @__PURE__ */ React27.createElement("h2", { className: "text-display-sm font-semibold text-primary md:text-display-md" }, title), subtitle && /* @__PURE__ */ React27.createElement("p", { className: "mt-4 text-lg text-tertiary md:mt-5 md:text-xl" }, subtitle)), paginatedPosts.length > 0 ? /* @__PURE__ */ React27.createElement(React27.Fragment, null, /* @__PURE__ */ React27.createElement("ul", { className: "grid grid-cols-1 gap-x-8 gap-y-10 sm:grid-cols-2 md:gap-y-12 lg:grid-cols-3 xl:grid-cols-4" }, paginatedPosts.map((post, index) => {
7041
+ return /* @__PURE__ */ React28.createElement("section", { className: `${backgroundColor} py-16 md:py-24 ${className}` }, /* @__PURE__ */ React28.createElement("div", { className: "mx-auto w-full max-w-container px-4 md:px-8" }, (title || subtitle) && /* @__PURE__ */ React28.createElement("div", { className: "mx-auto mb-12 flex w-full max-w-3xl flex-col items-center text-center" }, title && /* @__PURE__ */ React28.createElement("h2", { className: "text-display-sm font-semibold text-primary md:text-display-md" }, title), subtitle && /* @__PURE__ */ React28.createElement("p", { className: "mt-4 text-lg text-tertiary md:mt-5 md:text-xl" }, subtitle)), paginatedPosts.length > 0 ? /* @__PURE__ */ React28.createElement(React28.Fragment, null, /* @__PURE__ */ React28.createElement("ul", { className: "grid grid-cols-1 gap-x-8 gap-y-10 sm:grid-cols-2 md:gap-y-12 lg:grid-cols-3 xl:grid-cols-4" }, paginatedPosts.map((post, index) => {
6843
7042
  var _a;
6844
7043
  const images = getPostImageUrls(post);
6845
7044
  const hasMultipleImages = images.length > 1;
6846
7045
  const firstImage = images[0];
6847
7046
  const content = ((_a = post.content_markdown) == null ? void 0 : _a.replace(/[#*\[\]()]/g, "").trim()) || "";
6848
- return /* @__PURE__ */ React27.createElement("li", { key: post.id || index, className: "flex flex-col gap-5 md:gap-6" }, /* @__PURE__ */ React27.createElement("div", { className: "relative h-78 w-full overflow-hidden md:h-74" }, firstImage ? hasMultipleImages ? /* @__PURE__ */ React27.createElement(
7047
+ return /* @__PURE__ */ React28.createElement("li", { key: post.id || index, className: "flex flex-col gap-5 md:gap-6" }, /* @__PURE__ */ React28.createElement("div", { className: "relative h-78 w-full overflow-hidden md:h-74" }, firstImage ? hasMultipleImages ? /* @__PURE__ */ React28.createElement(
6849
7048
  Carousel2.Root,
6850
7049
  {
6851
7050
  opts: { align: "start" },
6852
7051
  className: "h-full w-full"
6853
7052
  },
6854
- /* @__PURE__ */ React27.createElement(Carousel2.Content, { className: "h-full" }, images.map((imgUrl, imgIndex) => /* @__PURE__ */ React27.createElement(Carousel2.Item, { key: imgIndex, className: "h-full" }, /* @__PURE__ */ React27.createElement(
7053
+ /* @__PURE__ */ React28.createElement(Carousel2.Content, { className: "h-full" }, images.map((imgUrl, imgIndex) => /* @__PURE__ */ React28.createElement(Carousel2.Item, { key: imgIndex, className: "h-full" }, /* @__PURE__ */ React28.createElement(
6855
7054
  Image9,
6856
7055
  {
6857
7056
  src: imgUrl,
@@ -6861,8 +7060,8 @@ var SocialMediaGrid = ({
6861
7060
  height: 600
6862
7061
  }
6863
7062
  )))),
6864
- /* @__PURE__ */ React27.createElement("div", { className: "absolute bottom-4 left-1/2 flex -translate-x-1/2 gap-2" }, /* @__PURE__ */ React27.createElement(Carousel2.PrevTrigger, { asChild: true }, /* @__PURE__ */ React27.createElement(RoundButton2, { icon: ArrowLeft3 })), /* @__PURE__ */ React27.createElement(Carousel2.NextTrigger, { asChild: true }, /* @__PURE__ */ React27.createElement(RoundButton2, { icon: ArrowRight8 })))
6865
- ) : /* @__PURE__ */ React27.createElement(
7063
+ /* @__PURE__ */ React28.createElement("div", { className: "absolute bottom-4 left-1/2 flex -translate-x-1/2 gap-2" }, /* @__PURE__ */ React28.createElement(Carousel2.PrevTrigger, { asChild: true }, /* @__PURE__ */ React28.createElement(RoundButton2, { icon: ArrowLeft3 })), /* @__PURE__ */ React28.createElement(Carousel2.NextTrigger, { asChild: true }, /* @__PURE__ */ React28.createElement(RoundButton2, { icon: ArrowRight8 })))
7064
+ ) : /* @__PURE__ */ React28.createElement(
6866
7065
  PhotoWithFallback2,
6867
7066
  {
6868
7067
  item: post,
@@ -6871,7 +7070,7 @@ var SocialMediaGrid = ({
6871
7070
  fallbackId: `social-post-${post.id || index}`,
6872
7071
  className: "size-full object-cover"
6873
7072
  }
6874
- ) : /* @__PURE__ */ React27.createElement(
7073
+ ) : /* @__PURE__ */ React28.createElement(
6875
7074
  PhotoWithFallback2,
6876
7075
  {
6877
7076
  item: post,
@@ -6880,10 +7079,10 @@ var SocialMediaGrid = ({
6880
7079
  fallbackId: `social-post-${post.id || index}`,
6881
7080
  className: "size-full object-cover"
6882
7081
  }
6883
- ), post.platform && /* @__PURE__ */ React27.createElement("div", { className: cx(
7082
+ ), post.platform && /* @__PURE__ */ React28.createElement("div", { className: cx(
6884
7083
  "absolute top-4 right-4 rounded-full px-3 py-1.5 text-sm font-semibold text-white",
6885
7084
  getPlatformBadge(post.platform)
6886
- ) }, post.platform.charAt(0).toUpperCase() + post.platform.slice(1))), /* @__PURE__ */ React27.createElement("div", { className: "flex flex-col gap-4" }, /* @__PURE__ */ React27.createElement("div", { className: "flex items-center justify-between" }, /* @__PURE__ */ React27.createElement("span", { className: "text-sm text-tertiary" }, formatDate(post.posted_at))), content && /* @__PURE__ */ React27.createElement("p", { className: "text-md text-tertiary line-clamp-4" }, content), /* @__PURE__ */ React27.createElement(
7085
+ ) }, post.platform.charAt(0).toUpperCase() + post.platform.slice(1))), /* @__PURE__ */ React28.createElement("div", { className: "flex flex-col gap-4" }, /* @__PURE__ */ React28.createElement("div", { className: "flex items-center justify-between" }, /* @__PURE__ */ React28.createElement("span", { className: "text-sm text-tertiary" }, formatDate(post.posted_at))), content && /* @__PURE__ */ React28.createElement("p", { className: "text-md text-tertiary line-clamp-4" }, content), /* @__PURE__ */ React28.createElement(
6887
7086
  Button2,
6888
7087
  {
6889
7088
  href: post.external_post_url || `https://${post.platform.toLowerCase()}.com`,
@@ -6895,18 +7094,18 @@ var SocialMediaGrid = ({
6895
7094
  "View on ",
6896
7095
  post.platform
6897
7096
  )));
6898
- })), totalPages > 1 && /* @__PURE__ */ React27.createElement("div", { className: "mt-12" }, /* @__PURE__ */ React27.createElement(
7097
+ })), totalPages > 1 && /* @__PURE__ */ React28.createElement("div", { className: "mt-12" }, /* @__PURE__ */ React28.createElement(
6899
7098
  PaginationPageMinimalCenter2,
6900
7099
  {
6901
7100
  page: currentPage,
6902
7101
  total: totalPages,
6903
7102
  onPageChange: setCurrentPage
6904
7103
  }
6905
- ))) : /* @__PURE__ */ React27.createElement("div", { className: "text-center py-12" }, /* @__PURE__ */ React27.createElement("p", { className: "text-gray-500" }, "No social media posts available"))));
7104
+ ))) : /* @__PURE__ */ React28.createElement("div", { className: "text-center py-12" }, /* @__PURE__ */ React28.createElement("p", { className: "text-gray-500" }, "No social media posts available"))));
6906
7105
  };
6907
7106
 
6908
7107
  // src/design_system/sections/job-gallery.tsx
6909
- import React28 from "react";
7108
+ import React29 from "react";
6910
7109
  import { Clock as Clock3, CurrencyDollarCircle } from "@untitledui/icons";
6911
7110
  var JobGallery = ({
6912
7111
  jobs: jobsData,
@@ -6925,7 +7124,7 @@ var JobGallery = ({
6925
7124
  const careersPhoto = websitePhotos == null ? void 0 : websitePhotos.careers;
6926
7125
  const finalHeaderImage = careersPhoto == null ? void 0 : careersPhoto.url;
6927
7126
  const finalHeaderImageAlt = (careersPhoto == null ? void 0 : careersPhoto.alt) || "Team collaboration";
6928
- const groupedJobs = React28.useMemo(() => {
7127
+ const groupedJobs = React29.useMemo(() => {
6929
7128
  const jobs = Array.isArray(jobsData) ? jobsData : [];
6930
7129
  if (!jobs.length) return [];
6931
7130
  const groups = {};
@@ -6938,7 +7137,7 @@ var JobGallery = ({
6938
7137
  });
6939
7138
  return Object.entries(groups);
6940
7139
  }, [jobsData]);
6941
- return /* @__PURE__ */ React28.createElement("div", { className: `${backgroundColor} ${className}` }, /* @__PURE__ */ React28.createElement("section", { className: `${backgroundColor} py-16 md:py-24` }, /* @__PURE__ */ React28.createElement("div", { className: "mx-auto w-full max-w-container px-4 md:px-8" }, /* @__PURE__ */ React28.createElement("div", { className: "mx-auto flex w-full max-w-3xl flex-col items-center text-center" }, label && /* @__PURE__ */ React28.createElement("span", { className: "text-sm font-semibold text-brand-secondary md:text-md" }, label), /* @__PURE__ */ React28.createElement("h1", { className: "mt-3 text-display-md font-semibold text-primary md:text-display-lg" }, title), /* @__PURE__ */ React28.createElement("p", { className: "mt-4 text-lg text-tertiary md:mt-6 md:text-xl" }, subtitle)))), /* @__PURE__ */ React28.createElement("section", { className: `${backgroundColor} py-16 md:py-24` }, /* @__PURE__ */ React28.createElement("div", { className: "mx-auto w-full max-w-container px-4 md:px-8" }, /* @__PURE__ */ React28.createElement("div", { className: "mx-auto flex w-full max-w-3xl flex-col items-center text-center" }, /* @__PURE__ */ React28.createElement(Badge2, { className: "hidden md:flex", size: "lg", color: "brand", type: "pill-color" }, "Careers"), /* @__PURE__ */ React28.createElement(Badge2, { className: "md:hidden", size: "md", color: "brand", type: "pill-color" }, "Careers"), /* @__PURE__ */ React28.createElement("h2", { className: "mt-4 text-display-sm font-semibold text-primary md:text-display-md" }, title), /* @__PURE__ */ React28.createElement("p", { className: "mt-4 text-lg text-tertiary md:mt-5 md:text-xl" }, subtitle)), /* @__PURE__ */ React28.createElement("div", { className: "mt-12 h-60 w-full md:mt-16 md:h-140 rounded-xl overflow-hidden" }, /* @__PURE__ */ React28.createElement(
7140
+ return /* @__PURE__ */ React29.createElement("div", { className: `${backgroundColor} ${className}` }, /* @__PURE__ */ React29.createElement("section", { className: `${backgroundColor} py-16 md:py-24` }, /* @__PURE__ */ React29.createElement("div", { className: "mx-auto w-full max-w-container px-4 md:px-8" }, /* @__PURE__ */ React29.createElement("div", { className: "mx-auto flex w-full max-w-3xl flex-col items-center text-center" }, label && /* @__PURE__ */ React29.createElement("span", { className: "text-sm font-semibold text-brand-secondary md:text-md" }, label), /* @__PURE__ */ React29.createElement("h1", { className: "mt-3 text-display-md font-semibold text-primary md:text-display-lg" }, title), /* @__PURE__ */ React29.createElement("p", { className: "mt-4 text-lg text-tertiary md:mt-6 md:text-xl" }, subtitle)))), /* @__PURE__ */ React29.createElement("section", { className: `${backgroundColor} py-16 md:py-24` }, /* @__PURE__ */ React29.createElement("div", { className: "mx-auto w-full max-w-container px-4 md:px-8" }, /* @__PURE__ */ React29.createElement("div", { className: "mx-auto flex w-full max-w-3xl flex-col items-center text-center" }, /* @__PURE__ */ React29.createElement(Badge2, { className: "hidden md:flex", size: "lg", color: "brand", type: "pill-color" }, "Careers"), /* @__PURE__ */ React29.createElement(Badge2, { className: "md:hidden", size: "md", color: "brand", type: "pill-color" }, "Careers"), /* @__PURE__ */ React29.createElement("h2", { className: "mt-4 text-display-sm font-semibold text-primary md:text-display-md" }, title), /* @__PURE__ */ React29.createElement("p", { className: "mt-4 text-lg text-tertiary md:mt-5 md:text-xl" }, subtitle)), /* @__PURE__ */ React29.createElement("div", { className: "mt-12 h-60 w-full md:mt-16 md:h-140 rounded-xl overflow-hidden" }, /* @__PURE__ */ React29.createElement(
6942
7141
  PhotoWithFallback2,
6943
7142
  {
6944
7143
  photoUrl: finalHeaderImage,
@@ -6946,20 +7145,20 @@ var JobGallery = ({
6946
7145
  fallbackId: "careers-header",
6947
7146
  className: "size-full object-cover"
6948
7147
  }
6949
- )), groupedJobs.length > 0 ? /* @__PURE__ */ React28.createElement("div", { className: "mx-auto mt-12 max-w-3xl md:mt-16" }, /* @__PURE__ */ React28.createElement("ul", { className: "flex flex-col gap-8 md:gap-16" }, groupedJobs.map(([category, categoryJobs]) => /* @__PURE__ */ React28.createElement("li", { key: category }, /* @__PURE__ */ React28.createElement("h2", { className: "text-lg font-semibold text-primary md:text-xl" }, category), /* @__PURE__ */ React28.createElement("ul", { className: "mt-5 flex flex-col gap-4 md:mt-8 md:gap-6" }, categoryJobs.map((job, index) => {
7148
+ )), groupedJobs.length > 0 ? /* @__PURE__ */ React29.createElement("div", { className: "mx-auto mt-12 max-w-3xl md:mt-16" }, /* @__PURE__ */ React29.createElement("ul", { className: "flex flex-col gap-8 md:gap-16" }, groupedJobs.map(([category, categoryJobs]) => /* @__PURE__ */ React29.createElement("li", { key: category }, /* @__PURE__ */ React29.createElement("h2", { className: "text-lg font-semibold text-primary md:text-xl" }, category), /* @__PURE__ */ React29.createElement("ul", { className: "mt-5 flex flex-col gap-4 md:mt-8 md:gap-6" }, categoryJobs.map((job, index) => {
6950
7149
  var _a2;
6951
7150
  const description = ((_a2 = job.description_markdown) == null ? void 0 : _a2.replace(/[#*\[\]()]/g, "").trim()) || "";
6952
- return /* @__PURE__ */ React28.createElement("li", { key: job.id || index }, /* @__PURE__ */ React28.createElement(
7151
+ return /* @__PURE__ */ React29.createElement("li", { key: job.id || index }, /* @__PURE__ */ React29.createElement(
6953
7152
  "a",
6954
7153
  {
6955
7154
  href: `/careers/${job.slug}`,
6956
7155
  className: "flex flex-col rounded-2xl bg-primary p-6 ring-1 ring-secondary ring-inset hover:ring-2 hover:ring-brand-secondary transition-all"
6957
7156
  },
6958
- /* @__PURE__ */ React28.createElement("div", { className: "flex flex-col items-start gap-2 md:flex-row" }, /* @__PURE__ */ React28.createElement("h3", { className: "text-md font-semibold text-primary" }, job.title), /* @__PURE__ */ React28.createElement("div", { className: "flex flex-1 gap-2 md:flex-row-reverse md:justify-between" }, job.location && /* @__PURE__ */ React28.createElement(Badge2, { color: "gray", size: "md", type: "modern" }, job.location), job.employment_type && /* @__PURE__ */ React28.createElement(BadgeWithDot2, { color: "brand", size: "md", type: "modern" }, job.employment_type))),
6959
- /* @__PURE__ */ React28.createElement("p", { className: "mt-2 text-md text-tertiary line-clamp-2" }, description),
6960
- /* @__PURE__ */ React28.createElement("div", { className: "mt-5 flex gap-4" }, job.employment_type && /* @__PURE__ */ React28.createElement("div", { className: "flex items-center gap-1.5" }, /* @__PURE__ */ React28.createElement(Clock3, { size: 20, className: "text-fg-quaternary" }), /* @__PURE__ */ React28.createElement("span", { className: "text-sm font-medium text-tertiary" }, job.employment_type)), job.salary_range && /* @__PURE__ */ React28.createElement("div", { className: "flex items-center gap-1.5" }, /* @__PURE__ */ React28.createElement(CurrencyDollarCircle, { size: 20, className: "text-fg-quaternary" }), /* @__PURE__ */ React28.createElement("span", { className: "text-sm font-medium text-tertiary" }, job.salary_range)))
7157
+ /* @__PURE__ */ React29.createElement("div", { className: "flex flex-col items-start gap-2 md:flex-row" }, /* @__PURE__ */ React29.createElement("h3", { className: "text-md font-semibold text-primary" }, job.title), /* @__PURE__ */ React29.createElement("div", { className: "flex flex-1 gap-2 md:flex-row-reverse md:justify-between" }, job.location && /* @__PURE__ */ React29.createElement(Badge2, { color: "gray", size: "md", type: "modern" }, job.location), job.employment_type && /* @__PURE__ */ React29.createElement(BadgeWithDot2, { color: "brand", size: "md", type: "modern" }, job.employment_type))),
7158
+ /* @__PURE__ */ React29.createElement("p", { className: "mt-2 text-md text-tertiary line-clamp-2" }, description),
7159
+ /* @__PURE__ */ React29.createElement("div", { className: "mt-5 flex gap-4" }, job.employment_type && /* @__PURE__ */ React29.createElement("div", { className: "flex items-center gap-1.5" }, /* @__PURE__ */ React29.createElement(Clock3, { size: 20, className: "text-fg-quaternary" }), /* @__PURE__ */ React29.createElement("span", { className: "text-sm font-medium text-tertiary" }, job.employment_type)), job.salary_range && /* @__PURE__ */ React29.createElement("div", { className: "flex items-center gap-1.5" }, /* @__PURE__ */ React29.createElement(CurrencyDollarCircle, { size: 20, className: "text-fg-quaternary" }), /* @__PURE__ */ React29.createElement("span", { className: "text-sm font-medium text-tertiary" }, job.salary_range)))
6961
7160
  ));
6962
- })))))) : /* @__PURE__ */ React28.createElement("div", { className: "text-center mt-12" }, /* @__PURE__ */ React28.createElement("p", { className: "text-gray-500 mb-4" }, "No open positions at the moment."), /* @__PURE__ */ React28.createElement("p", { className: "text-gray-600 mb-6" }, "We're always looking for talented individuals to join our team."), /* @__PURE__ */ React28.createElement(Button2, { href: primaryCtaHref, target: isExternalCtaUrl(primaryCtaHref) ? "_blank" : void 0, rel: isExternalCtaUrl(primaryCtaHref) ? "noopener noreferrer" : void 0 }, "Send Us Your Resume")))));
7161
+ })))))) : /* @__PURE__ */ React29.createElement("div", { className: "text-center mt-12" }, /* @__PURE__ */ React29.createElement("p", { className: "text-gray-500 mb-4" }, "No open positions at the moment."), /* @__PURE__ */ React29.createElement("p", { className: "text-gray-600 mb-6" }, "We're always looking for talented individuals to join our team."), /* @__PURE__ */ React29.createElement(Button2, { href: primaryCtaHref, target: isExternalCtaUrl(primaryCtaHref) ? "_blank" : void 0, rel: isExternalCtaUrl(primaryCtaHref) ? "noopener noreferrer" : void 0 }, "Send Us Your Resume")))));
6963
7162
  };
6964
7163
 
6965
7164
  // src/design_system/sections/blog-home.tsx
@@ -7042,7 +7241,7 @@ var BlogHome = ({
7042
7241
  };
7043
7242
 
7044
7243
  // src/design_system/sections/blog-gallery.tsx
7045
- import React29, { useState as useState12 } from "react";
7244
+ import React30, { useState as useState12 } from "react";
7046
7245
  import { ArrowUpRight as ArrowUpRight4 } from "@untitledui/icons";
7047
7246
 
7048
7247
  // src/design_system/sections/blog-cards.tsx
@@ -7476,16 +7675,16 @@ var BlogGallery = ({
7476
7675
  const startIndex = (currentPage - 1) * postsPerPage;
7477
7676
  const endIndex = startIndex + postsPerPage;
7478
7677
  const paginatedNonFeaturedPosts = nonFeaturedPosts.slice(startIndex, endIndex);
7479
- React29.useEffect(() => {
7678
+ React30.useEffect(() => {
7480
7679
  setCurrentPage(1);
7481
7680
  }, [sortBy]);
7482
- return /* @__PURE__ */ React29.createElement("section", { className }, /* @__PURE__ */ React29.createElement("div", { className: "mx-auto flex w-full max-w-container flex-col gap-12 px-4 md:gap-16 md:px-8" }, posts.length > 0 ? /* @__PURE__ */ React29.createElement(React29.Fragment, null, featuredPost && /* @__PURE__ */ React29.createElement(
7681
+ return /* @__PURE__ */ React30.createElement("section", { className }, /* @__PURE__ */ React30.createElement("div", { className: "mx-auto flex w-full max-w-container flex-col gap-12 px-4 md:gap-16 md:px-8" }, posts.length > 0 ? /* @__PURE__ */ React30.createElement(React30.Fragment, null, featuredPost && /* @__PURE__ */ React30.createElement(
7483
7682
  "a",
7484
7683
  {
7485
7684
  href: `/blog/${featuredPost.slug}`,
7486
7685
  className: "group hidden w-full overflow-hidden rounded-2xl outline-focus-ring select-none focus:outline-2 focus:outline-offset-4 md:flex md:flex-col"
7487
7686
  },
7488
- /* @__PURE__ */ React29.createElement("div", { className: "relative w-full overflow-hidden rounded-t-2xl md:h-145 lg:h-180" }, /* @__PURE__ */ React29.createElement(
7687
+ /* @__PURE__ */ React30.createElement("div", { className: "relative w-full overflow-hidden rounded-t-2xl md:h-145 lg:h-180" }, /* @__PURE__ */ React30.createElement(
7489
7688
  PhotoWithFallback2,
7490
7689
  {
7491
7690
  item: featuredPost,
@@ -7496,9 +7695,9 @@ var BlogGallery = ({
7496
7695
  )),
7497
7696
  (() => {
7498
7697
  const { title, summary, publishedAt, authorName, authorAvatarUrl } = getBlogPostData(featuredPost);
7499
- return /* @__PURE__ */ React29.createElement("div", { className: "flex flex-col gap-4 rounded-b-2xl border border-t-0 border-secondary bg-primary p-6" }, /* @__PURE__ */ React29.createElement("div", { className: "flex flex-col gap-2" }, /* @__PURE__ */ React29.createElement("div", { className: "flex items-start gap-2" }, /* @__PURE__ */ React29.createElement("p", { className: "flex-1 text-display-xs font-semibold text-primary" }, title), /* @__PURE__ */ React29.createElement(ArrowUpRight4, { className: "size-5 shrink-0 text-tertiary group-hover:text-brand-secondary" })), summary && /* @__PURE__ */ React29.createElement("p", { className: "line-clamp-2 text-md text-tertiary" }, summary)), /* @__PURE__ */ React29.createElement("div", { className: "flex flex-wrap items-center gap-4 text-sm text-tertiary" }, /* @__PURE__ */ React29.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ React29.createElement(Avatar2, { focusable: true, size: "sm", src: authorAvatarUrl, alt: authorName }), /* @__PURE__ */ React29.createElement("span", { className: "font-medium" }, authorName)), /* @__PURE__ */ React29.createElement("span", null, publishedAt)));
7698
+ return /* @__PURE__ */ React30.createElement("div", { className: "flex flex-col gap-4 rounded-b-2xl border border-t-0 border-secondary bg-primary p-6" }, /* @__PURE__ */ React30.createElement("div", { className: "flex flex-col gap-2" }, /* @__PURE__ */ React30.createElement("div", { className: "flex items-start gap-2" }, /* @__PURE__ */ React30.createElement("p", { className: "flex-1 text-display-xs font-semibold text-primary" }, title), /* @__PURE__ */ React30.createElement(ArrowUpRight4, { className: "size-5 shrink-0 text-tertiary group-hover:text-brand-secondary" })), summary && /* @__PURE__ */ React30.createElement("p", { className: "line-clamp-2 text-md text-tertiary" }, summary)), /* @__PURE__ */ React30.createElement("div", { className: "flex flex-wrap items-center gap-4 text-sm text-tertiary" }, /* @__PURE__ */ React30.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ React30.createElement(Avatar2, { focusable: true, size: "sm", src: authorAvatarUrl, alt: authorName }), /* @__PURE__ */ React30.createElement("span", { className: "font-medium" }, authorName)), /* @__PURE__ */ React30.createElement("span", null, publishedAt)));
7500
7699
  })()
7501
- ), featuredPost && /* @__PURE__ */ React29.createElement("div", { className: "md:hidden" }, /* @__PURE__ */ React29.createElement(BlogCardVertical, { article: featuredPost })), /* @__PURE__ */ React29.createElement("div", { className: "flex flex-col items-end gap-8 md:flex-row" }, /* @__PURE__ */ React29.createElement("div", { className: "relative w-full md:w-auto md:min-w-36 md:max-w-40" }, /* @__PURE__ */ React29.createElement(
7700
+ ), featuredPost && /* @__PURE__ */ React30.createElement("div", { className: "md:hidden" }, /* @__PURE__ */ React30.createElement(BlogCardVertical, { article: featuredPost })), /* @__PURE__ */ React30.createElement("div", { className: "flex flex-col items-end gap-8 md:flex-row" }, /* @__PURE__ */ React30.createElement("div", { className: "relative w-full md:w-auto md:min-w-36 md:max-w-40" }, /* @__PURE__ */ React30.createElement(
7502
7701
  Select3,
7503
7702
  {
7504
7703
  "aria-label": "Sort by",
@@ -7507,8 +7706,8 @@ var BlogGallery = ({
7507
7706
  onSelectionChange: (value) => setSortBy(value),
7508
7707
  items: defaultSortByOptions
7509
7708
  },
7510
- (item) => /* @__PURE__ */ React29.createElement(SelectItem2, { id: item.id }, item.label)
7511
- ))), paginatedNonFeaturedPosts.length > 0 && /* @__PURE__ */ React29.createElement("ul", { className: "grid grid-cols-1 gap-x-8 gap-y-12 md:grid-cols-2 md:gap-y-12 lg:grid-cols-3" }, paginatedNonFeaturedPosts.map((post) => /* @__PURE__ */ React29.createElement("li", { key: post.id, className: cx(!isDesktop && "nth-[n+7]:hidden") }, /* @__PURE__ */ React29.createElement(BlogCardVertical, { article: post })))), totalPages > 1 && /* @__PURE__ */ React29.createElement(
7709
+ (item) => /* @__PURE__ */ React30.createElement(SelectItem2, { id: item.id }, item.label)
7710
+ ))), paginatedNonFeaturedPosts.length > 0 && /* @__PURE__ */ React30.createElement("ul", { className: "grid grid-cols-1 gap-x-8 gap-y-12 md:grid-cols-2 md:gap-y-12 lg:grid-cols-3" }, paginatedNonFeaturedPosts.map((post) => /* @__PURE__ */ React30.createElement("li", { key: post.id, className: cx(!isDesktop && "nth-[n+7]:hidden") }, /* @__PURE__ */ React30.createElement(BlogCardVertical, { article: post })))), totalPages > 1 && /* @__PURE__ */ React30.createElement(
7512
7711
  PaginationPageDefault2,
7513
7712
  {
7514
7713
  rounded: true,
@@ -7516,11 +7715,11 @@ var BlogGallery = ({
7516
7715
  total: totalPages,
7517
7716
  onPageChange: setCurrentPage
7518
7717
  }
7519
- )) : /* @__PURE__ */ React29.createElement("div", { className: "text-center py-12" }, /* @__PURE__ */ React29.createElement("p", { className: "text-gray-500" }, "No blog posts available"))));
7718
+ )) : /* @__PURE__ */ React30.createElement("div", { className: "text-center py-12" }, /* @__PURE__ */ React30.createElement("p", { className: "text-gray-500" }, "No blog posts available"))));
7520
7719
  };
7521
7720
 
7522
7721
  // src/design_system/sections/blog-post.tsx
7523
- import React30, { useState as useState13 } from "react";
7722
+ import React31, { useState as useState13 } from "react";
7524
7723
  import { Link01, Copy01 } from "@untitledui/icons";
7525
7724
 
7526
7725
  // src/utils/markdown-toc.ts
@@ -7590,16 +7789,16 @@ var BlogPostSection = ({
7590
7789
  }
7591
7790
  };
7592
7791
  if (!blogPost) {
7593
- return /* @__PURE__ */ React30.createElement("div", { className: "text-center py-12" }, /* @__PURE__ */ React30.createElement("div", { className: "text-gray-600 text-6xl mb-4" }, "\u{1F4DD}"), /* @__PURE__ */ React30.createElement("h3", { className: "text-xl font-semibold text-gray-900 mb-2" }, "Blog Post Not Found"), /* @__PURE__ */ React30.createElement("p", { className: "text-gray-600 mb-4" }, "The blog post you're looking for doesn't exist."), /* @__PURE__ */ React30.createElement(Button2, { href: "/blog" }, "View All Blog Posts"));
7792
+ return /* @__PURE__ */ React31.createElement("div", { className: "text-center py-12" }, /* @__PURE__ */ React31.createElement("div", { className: "text-gray-600 text-6xl mb-4" }, "\u{1F4DD}"), /* @__PURE__ */ React31.createElement("h3", { className: "text-xl font-semibold text-gray-900 mb-2" }, "Blog Post Not Found"), /* @__PURE__ */ React31.createElement("p", { className: "text-gray-600 mb-4" }, "The blog post you're looking for doesn't exist."), /* @__PURE__ */ React31.createElement(Button2, { href: "/blog" }, "View All Blog Posts"));
7594
7793
  }
7595
- return /* @__PURE__ */ React30.createElement(React30.Fragment, null, /* @__PURE__ */ React30.createElement("section", { className: "bg-primary py-2 md:py-2" }, /* @__PURE__ */ React30.createElement("div", { className: "mx-auto max-w-container px-4 md:px-8" }, /* @__PURE__ */ React30.createElement(
7794
+ return /* @__PURE__ */ React31.createElement(React31.Fragment, null, /* @__PURE__ */ React31.createElement("section", { className: "bg-primary py-2 md:py-2" }, /* @__PURE__ */ React31.createElement("div", { className: "mx-auto max-w-container px-4 md:px-8" }, /* @__PURE__ */ React31.createElement(
7596
7795
  Breadcrumb2,
7597
7796
  {
7598
7797
  backHref: "/blog",
7599
7798
  backLabel: "Blog",
7600
7799
  currentLabel: blogPost.title
7601
7800
  }
7602
- ))), /* @__PURE__ */ React30.createElement("section", { className: "bg-primary py-4 md:py-6" }, /* @__PURE__ */ React30.createElement("div", { className: "relative mx-auto max-w-container gap-16 px-4 pb-16 md:gap-8 md:px-8 md:pt-16 md:pb-24 grid grid-cols-1 items-center md:grid-cols-2" }, /* @__PURE__ */ React30.createElement("div", { className: "flex max-w-180 flex-col items-start" }, /* @__PURE__ */ React30.createElement(
7801
+ ))), /* @__PURE__ */ React31.createElement("section", { className: "bg-primary py-4 md:py-6" }, /* @__PURE__ */ React31.createElement("div", { className: "relative mx-auto max-w-container gap-16 px-4 pb-16 md:gap-8 md:px-8 md:pt-16 md:pb-24 grid grid-cols-1 items-center md:grid-cols-2" }, /* @__PURE__ */ React31.createElement("div", { className: "flex max-w-180 flex-col items-start" }, /* @__PURE__ */ React31.createElement(
7603
7802
  BadgeGroup2,
7604
7803
  {
7605
7804
  size: "md",
@@ -7610,7 +7809,7 @@ var BlogPostSection = ({
7610
7809
  iconTrailing: null
7611
7810
  },
7612
7811
  blogPost.reading_time_minutes ? `${blogPost.reading_time_minutes} min read` : blogPost.published_at ? formatDate4(blogPost.published_at) : "Recent"
7613
- ), /* @__PURE__ */ React30.createElement("h1", { className: "mt-4 text-display-md font-semibold text-primary md:text-display-lg" }, blogPost.title), blogPost.excerpt && /* @__PURE__ */ React30.createElement("p", { className: "mt-4 text-lg text-tertiary md:mt-6 md:max-w-120 md:text-xl" }, (blogPost.excerpt || ((_b = blogPost.excerpt_markdown) == null ? void 0 : _b.replace(/[#*\[\]()]/g, "").trim()) || "").replace(/[#*\[\]()]/g, "").trim())), /* @__PURE__ */ React30.createElement(
7812
+ ), /* @__PURE__ */ React31.createElement("h1", { className: "mt-4 text-display-md font-semibold text-primary md:text-display-lg" }, blogPost.title), blogPost.excerpt && /* @__PURE__ */ React31.createElement("p", { className: "mt-4 text-lg text-tertiary md:mt-6 md:max-w-120 md:text-xl" }, (blogPost.excerpt || ((_b = blogPost.excerpt_markdown) == null ? void 0 : _b.replace(/[#*\[\]()]/g, "").trim()) || "").replace(/[#*\[\]()]/g, "").trim())), /* @__PURE__ */ React31.createElement(
7614
7813
  PhotoWithFallback2,
7615
7814
  {
7616
7815
  item: blogPost,
@@ -7618,7 +7817,7 @@ var BlogPostSection = ({
7618
7817
  alt: blogPost.title,
7619
7818
  className: "order-first -ml-4 h-36 w-screen max-w-none object-cover md:order-1 md:ml-0 md:h-96 md:w-full md:max-w-full rounded-2xl"
7620
7819
  }
7621
- )), blogPost.content_markdown && /* @__PURE__ */ React30.createElement("div", { className: "mx-auto max-w-container px-4 pb-16 md:px-8 md:pb-24" }, /* @__PURE__ */ React30.createElement("div", { className: "mx-auto flex justify-center gap-16" }, /* @__PURE__ */ React30.createElement("div", { className: "hidden w-70 flex-col gap-8 lg:flex" }, tableOfContents.length > 0 && /* @__PURE__ */ React30.createElement(React30.Fragment, null, /* @__PURE__ */ React30.createElement("div", { className: "w-full border-t border-secondary" }), /* @__PURE__ */ React30.createElement("div", { className: "flex flex-col gap-4" }, /* @__PURE__ */ React30.createElement("p", { className: "text-md font-semibold text-brand-secondary" }, "Table of contents"), /* @__PURE__ */ React30.createElement("ul", { className: "flex flex-col gap-3" }, tableOfContents.map((item) => /* @__PURE__ */ React30.createElement("li", { key: item.id }, /* @__PURE__ */ React30.createElement(
7820
+ )), blogPost.content_markdown && /* @__PURE__ */ React31.createElement("div", { className: "mx-auto max-w-container px-4 pb-16 md:px-8 md:pb-24" }, /* @__PURE__ */ React31.createElement("div", { className: "mx-auto flex justify-center gap-16" }, /* @__PURE__ */ React31.createElement("div", { className: "hidden w-70 flex-col gap-8 lg:flex" }, tableOfContents.length > 0 && /* @__PURE__ */ React31.createElement(React31.Fragment, null, /* @__PURE__ */ React31.createElement("div", { className: "w-full border-t border-secondary" }), /* @__PURE__ */ React31.createElement("div", { className: "flex flex-col gap-4" }, /* @__PURE__ */ React31.createElement("p", { className: "text-md font-semibold text-brand-secondary" }, "Table of contents"), /* @__PURE__ */ React31.createElement("ul", { className: "flex flex-col gap-3" }, tableOfContents.map((item) => /* @__PURE__ */ React31.createElement("li", { key: item.id }, /* @__PURE__ */ React31.createElement(
7622
7821
  Button2,
7623
7822
  {
7624
7823
  size: "lg",
@@ -7626,12 +7825,12 @@ var BlogPostSection = ({
7626
7825
  href: `#${item.id}`,
7627
7826
  className: `${item.level === 3 ? "pl-4" : ""} w-full text-left whitespace-normal justify-start`
7628
7827
  },
7629
- /* @__PURE__ */ React30.createElement("span", { className: "break-words block w-full" }, item.title)
7630
- ))))), /* @__PURE__ */ React30.createElement("div", { className: "w-full border-t border-secondary" })), blogPost.blog_post_authors && Array.isArray(blogPost.blog_post_authors) && blogPost.blog_post_authors.length > 0 && /* @__PURE__ */ React30.createElement("div", { className: "flex flex-col gap-6" }, /* @__PURE__ */ React30.createElement("p", { className: "text-md font-semibold text-brand-secondary" }, "Author"), /* @__PURE__ */ React30.createElement("div", { className: "flex items-center gap-3" }, (() => {
7828
+ /* @__PURE__ */ React31.createElement("span", { className: "break-words block w-full" }, item.title)
7829
+ ))))), /* @__PURE__ */ React31.createElement("div", { className: "w-full border-t border-secondary" })), blogPost.blog_post_authors && Array.isArray(blogPost.blog_post_authors) && blogPost.blog_post_authors.length > 0 && /* @__PURE__ */ React31.createElement("div", { className: "flex flex-col gap-6" }, /* @__PURE__ */ React31.createElement("p", { className: "text-md font-semibold text-brand-secondary" }, "Author"), /* @__PURE__ */ React31.createElement("div", { className: "flex items-center gap-3" }, (() => {
7631
7830
  const author = blogPost.blog_post_authors[0];
7632
7831
  const authorName = (author == null ? void 0 : author.name) || "Author";
7633
7832
  const authorAvatarUrl = getAvatarUrl(author == null ? void 0 : author.photo_attachments, author == null ? void 0 : author.id, authorName);
7634
- return /* @__PURE__ */ React30.createElement(React30.Fragment, null, /* @__PURE__ */ React30.createElement(
7833
+ return /* @__PURE__ */ React31.createElement(React31.Fragment, null, /* @__PURE__ */ React31.createElement(
7635
7834
  Avatar2,
7636
7835
  {
7637
7836
  src: authorAvatarUrl != null ? authorAvatarUrl : void 0,
@@ -7639,8 +7838,8 @@ var BlogPostSection = ({
7639
7838
  initials: authorName.trim().charAt(0).toUpperCase() || "?",
7640
7839
  size: "md"
7641
7840
  }
7642
- ), /* @__PURE__ */ React30.createElement("div", null, /* @__PURE__ */ React30.createElement("p", { className: "text-md font-semibold text-primary" }, authorName), (author == null ? void 0 : author.bio_markdown) && /* @__PURE__ */ React30.createElement("p", { className: "text-md text-tertiary" }, author.bio_markdown.replace(/[#*\[\]()]/g, "").trim().substring(0, 100))));
7643
- })())), /* @__PURE__ */ React30.createElement("div", { className: "w-full border-t border-secondary" }), /* @__PURE__ */ React30.createElement(
7841
+ ), /* @__PURE__ */ React31.createElement("div", null, /* @__PURE__ */ React31.createElement("p", { className: "text-md font-semibold text-primary" }, authorName), (author == null ? void 0 : author.bio_markdown) && /* @__PURE__ */ React31.createElement("p", { className: "text-md text-tertiary" }, author.bio_markdown.replace(/[#*\[\]()]/g, "").trim().substring(0, 100))));
7842
+ })())), /* @__PURE__ */ React31.createElement("div", { className: "w-full border-t border-secondary" }), /* @__PURE__ */ React31.createElement(
7644
7843
  Form2,
7645
7844
  {
7646
7845
  onSubmit: (e) => {
@@ -7650,30 +7849,30 @@ var BlogPostSection = ({
7650
7849
  },
7651
7850
  className: "flex flex-col gap-4"
7652
7851
  },
7653
- /* @__PURE__ */ React30.createElement("label", { htmlFor: "blog-email-input", className: "text-md font-semibold text-brand-secondary" }, "Subscribe to our newsletter"),
7654
- /* @__PURE__ */ React30.createElement(Input3, { isRequired: true, id: "blog-email-input", name: "email", type: "email", placeholder: "Enter your email", size: "md" }),
7655
- /* @__PURE__ */ React30.createElement(Button2, { type: "submit", size: "xl" }, "Subscribe")
7656
- ), /* @__PURE__ */ React30.createElement("div", { className: "w-full border-t border-secondary" }), /* @__PURE__ */ React30.createElement("div", { className: "flex gap-3" }, /* @__PURE__ */ React30.createElement(
7852
+ /* @__PURE__ */ React31.createElement("label", { htmlFor: "blog-email-input", className: "text-md font-semibold text-brand-secondary" }, "Subscribe to our newsletter"),
7853
+ /* @__PURE__ */ React31.createElement(Input3, { isRequired: true, id: "blog-email-input", name: "email", type: "email", placeholder: "Enter your email", size: "md" }),
7854
+ /* @__PURE__ */ React31.createElement(Button2, { type: "submit", size: "xl" }, "Subscribe")
7855
+ ), /* @__PURE__ */ React31.createElement("div", { className: "w-full border-t border-secondary" }), /* @__PURE__ */ React31.createElement("div", { className: "flex gap-3" }, /* @__PURE__ */ React31.createElement(
7657
7856
  "button",
7658
7857
  {
7659
7858
  onClick: handleShareLink,
7660
7859
  title: "Share link",
7661
7860
  className: "inline-flex h-max cursor-pointer items-center justify-center gap-1.5 rounded-lg px-3.5 py-2.5 text-sm font-semibold outline-brand transition duration-100 ease-linear focus-visible:outline-2 focus-visible:outline-offset-2 bg-secondary text-primary hover:bg-secondary_hover"
7662
7861
  },
7663
- /* @__PURE__ */ React30.createElement(Link01, { className: "size-5 shrink-0" })
7664
- ), /* @__PURE__ */ React30.createElement(
7862
+ /* @__PURE__ */ React31.createElement(Link01, { className: "size-5 shrink-0" })
7863
+ ), /* @__PURE__ */ React31.createElement(
7665
7864
  "button",
7666
7865
  {
7667
7866
  onClick: handleCopyLink,
7668
7867
  title: copied ? "Copied!" : "Copy link",
7669
7868
  className: "inline-flex h-max cursor-pointer items-center justify-center gap-1.5 rounded-lg px-3.5 py-2.5 text-sm font-semibold outline-brand transition duration-100 ease-linear focus-visible:outline-2 focus-visible:outline-offset-2 bg-secondary text-fg-quaternary hover:bg-secondary_hover"
7670
7869
  },
7671
- /* @__PURE__ */ React30.createElement(Copy01, { className: "size-5 shrink-0" })
7672
- ))), /* @__PURE__ */ React30.createElement("div", { className: "max-w-prose lg:max-w-180" }, /* @__PURE__ */ React30.createElement("div", { className: "prose-centered-quote mx-auto prose md:prose-lg", id: "content" }, /* @__PURE__ */ React30.createElement(MarkdownRenderer2, { content: blogPost.content_markdown || "" })), /* @__PURE__ */ React30.createElement("div", { className: "flex flex-col items-start justify-between gap-y-8 lg:hidden lg:flex-row mt-8" }, blogPost.blog_post_authors && Array.isArray(blogPost.blog_post_authors) && blogPost.blog_post_authors.length > 0 && /* @__PURE__ */ React30.createElement("div", { className: "flex flex-col gap-6" }, /* @__PURE__ */ React30.createElement("p", { className: "text-md font-semibold text-brand-secondary" }, "Author"), /* @__PURE__ */ React30.createElement("div", { className: "flex items-center gap-3" }, (() => {
7870
+ /* @__PURE__ */ React31.createElement(Copy01, { className: "size-5 shrink-0" })
7871
+ ))), /* @__PURE__ */ React31.createElement("div", { className: "max-w-prose lg:max-w-180" }, /* @__PURE__ */ React31.createElement("div", { className: "prose-centered-quote mx-auto prose md:prose-lg", id: "content" }, /* @__PURE__ */ React31.createElement(MarkdownRenderer2, { content: blogPost.content_markdown || "" })), /* @__PURE__ */ React31.createElement("div", { className: "flex flex-col items-start justify-between gap-y-8 lg:hidden lg:flex-row mt-8" }, blogPost.blog_post_authors && Array.isArray(blogPost.blog_post_authors) && blogPost.blog_post_authors.length > 0 && /* @__PURE__ */ React31.createElement("div", { className: "flex flex-col gap-6" }, /* @__PURE__ */ React31.createElement("p", { className: "text-md font-semibold text-brand-secondary" }, "Author"), /* @__PURE__ */ React31.createElement("div", { className: "flex items-center gap-3" }, (() => {
7673
7872
  const author = blogPost.blog_post_authors[0];
7674
7873
  const authorName = (author == null ? void 0 : author.name) || "Author";
7675
7874
  const authorAvatarUrl = getAvatarUrl(author == null ? void 0 : author.photo_attachments, author == null ? void 0 : author.id, authorName);
7676
- return /* @__PURE__ */ React30.createElement(React30.Fragment, null, /* @__PURE__ */ React30.createElement(
7875
+ return /* @__PURE__ */ React31.createElement(React31.Fragment, null, /* @__PURE__ */ React31.createElement(
7677
7876
  Avatar2,
7678
7877
  {
7679
7878
  src: authorAvatarUrl != null ? authorAvatarUrl : void 0,
@@ -7681,24 +7880,24 @@ var BlogPostSection = ({
7681
7880
  initials: authorName.trim().charAt(0).toUpperCase() || "?",
7682
7881
  size: "md"
7683
7882
  }
7684
- ), /* @__PURE__ */ React30.createElement("div", null, /* @__PURE__ */ React30.createElement("p", { className: "text-md font-semibold text-primary" }, authorName), (author == null ? void 0 : author.bio_markdown) && /* @__PURE__ */ React30.createElement("p", { className: "text-md text-tertiary" }, author.bio_markdown.replace(/[#*\[\]()]/g, "").trim().substring(0, 100))));
7685
- })())), /* @__PURE__ */ React30.createElement("div", { className: "flex gap-3" }, /* @__PURE__ */ React30.createElement(
7883
+ ), /* @__PURE__ */ React31.createElement("div", null, /* @__PURE__ */ React31.createElement("p", { className: "text-md font-semibold text-primary" }, authorName), (author == null ? void 0 : author.bio_markdown) && /* @__PURE__ */ React31.createElement("p", { className: "text-md text-tertiary" }, author.bio_markdown.replace(/[#*\[\]()]/g, "").trim().substring(0, 100))));
7884
+ })())), /* @__PURE__ */ React31.createElement("div", { className: "flex gap-3" }, /* @__PURE__ */ React31.createElement(
7686
7885
  "button",
7687
7886
  {
7688
7887
  onClick: handleShareLink,
7689
7888
  title: "Share link",
7690
7889
  className: "inline-flex h-max cursor-pointer items-center justify-center gap-1.5 rounded-lg px-3.5 py-2.5 text-sm font-semibold outline-brand transition duration-100 ease-linear focus-visible:outline-2 focus-visible:outline-offset-2 bg-secondary text-primary hover:bg-secondary_hover"
7691
7890
  },
7692
- /* @__PURE__ */ React30.createElement(Link01, { className: "size-5 shrink-0" })
7693
- ), /* @__PURE__ */ React30.createElement(
7891
+ /* @__PURE__ */ React31.createElement(Link01, { className: "size-5 shrink-0" })
7892
+ ), /* @__PURE__ */ React31.createElement(
7694
7893
  "button",
7695
7894
  {
7696
7895
  onClick: handleCopyLink,
7697
7896
  title: copied ? "Copied!" : "Copy link",
7698
7897
  className: "inline-flex h-max cursor-pointer items-center justify-center gap-1.5 rounded-lg px-3.5 py-2.5 text-sm font-semibold outline-brand transition duration-100 ease-linear focus-visible:outline-2 focus-visible:outline-offset-2 bg-secondary text-fg-quaternary hover:bg-secondary_hover"
7699
7898
  },
7700
- /* @__PURE__ */ React30.createElement(Copy01, { className: "size-5 shrink-0" })
7701
- ))))))), /* @__PURE__ */ React30.createElement("section", { className: "bg-primary pb-16 md:pb-24" }, /* @__PURE__ */ React30.createElement("div", { className: "mx-auto max-w-container px-4 md:px-8" }, /* @__PURE__ */ React30.createElement("div", { className: "mx-auto max-w-prose md:max-w-180" }, /* @__PURE__ */ React30.createElement("div", { className: "flex flex-col gap-4 sm:flex-row sm:items-center sm:justify-end border-t border-secondary pt-8" }, blogPost.tags && Array.isArray(blogPost.tags) && blogPost.tags.length > 0 && /* @__PURE__ */ React30.createElement("div", { className: "flex flex-wrap gap-2" }, blogPost.tags.map((tag, index) => /* @__PURE__ */ React30.createElement(Badge2, { key: index, color: "gray", size: "md", type: "modern" }, typeof tag === "string" ? tag : tag.name))))))));
7899
+ /* @__PURE__ */ React31.createElement(Copy01, { className: "size-5 shrink-0" })
7900
+ ))))))), /* @__PURE__ */ React31.createElement("section", { className: "bg-primary pb-16 md:pb-24" }, /* @__PURE__ */ React31.createElement("div", { className: "mx-auto max-w-container px-4 md:px-8" }, /* @__PURE__ */ React31.createElement("div", { className: "mx-auto max-w-prose md:max-w-180" }, /* @__PURE__ */ React31.createElement("div", { className: "flex flex-col gap-4 sm:flex-row sm:items-center sm:justify-end border-t border-secondary pt-8" }, blogPost.tags && Array.isArray(blogPost.tags) && blogPost.tags.length > 0 && /* @__PURE__ */ React31.createElement("div", { className: "flex flex-wrap gap-2" }, blogPost.tags.map((tag, index) => /* @__PURE__ */ React31.createElement(Badge2, { key: index, color: "gray", size: "md", type: "modern" }, typeof tag === "string" ? tag : tag.name))))))));
7702
7901
  };
7703
7902
 
7704
7903
  // src/design_system/sections/contact-home.tsx
@@ -7718,7 +7917,7 @@ var ContactHome = ({
7718
7917
  };
7719
7918
 
7720
7919
  // src/design_system/sections/faq-grid.tsx
7721
- import React31 from "react";
7920
+ import React32 from "react";
7722
7921
  var renderMarkdown = (content) => {
7723
7922
  let html = content.replace(/\[([^\]]+)\]\(([^)]+)\)/g, '<a href="$2" class="text-brand-secondary underline">$1</a>');
7724
7923
  html = html.replace(/\*\*([^*]+)\*\*/g, "<strong>$1</strong>");
@@ -7744,17 +7943,17 @@ var FAQGrid = ({
7744
7943
  const faqs = Array.isArray(faqsData) ? faqsData : [];
7745
7944
  const resolved = companyInformation ? resolveCtaUrls(companyInformation) : null;
7746
7945
  const effectiveCtaButtonHref = (_a = ctaButtonHref != null ? ctaButtonHref : resolved == null ? void 0 : resolved.primaryHref) != null ? _a : "/contact";
7747
- return /* @__PURE__ */ React31.createElement("section", { className: `${backgroundColor} py-16 md:py-24 ${className}`, id: "faq" }, /* @__PURE__ */ React31.createElement("div", { className: "mx-auto w-full max-w-container px-4 md:px-8" }, /* @__PURE__ */ React31.createElement("div", { className: "flex w-full max-w-3xl flex-col" }, /* @__PURE__ */ React31.createElement("h2", { className: "text-display-sm font-semibold text-primary md:text-display-md" }, title), subtitle && /* @__PURE__ */ React31.createElement("p", { className: "mt-4 text-lg text-tertiary md:mt-5 md:text-xl" }, subtitle)), faqs.length > 0 && /* @__PURE__ */ React31.createElement("div", { className: "mt-12 md:mt-16" }, /* @__PURE__ */ React31.createElement("dl", { className: "grid w-full grid-cols-1 gap-x-8 gap-y-10 sm:grid-cols-2 md:gap-y-16 lg:grid-cols-3" }, faqs.map((faq, index) => {
7946
+ return /* @__PURE__ */ React32.createElement("section", { className: `${backgroundColor} py-16 md:py-24 ${className}`, id: "faq" }, /* @__PURE__ */ React32.createElement("div", { className: "mx-auto w-full max-w-container px-4 md:px-8" }, /* @__PURE__ */ React32.createElement("div", { className: "flex w-full max-w-3xl flex-col" }, /* @__PURE__ */ React32.createElement("h2", { className: "text-display-sm font-semibold text-primary md:text-display-md" }, title), subtitle && /* @__PURE__ */ React32.createElement("p", { className: "mt-4 text-lg text-tertiary md:mt-5 md:text-xl" }, subtitle)), faqs.length > 0 && /* @__PURE__ */ React32.createElement("div", { className: "mt-12 md:mt-16" }, /* @__PURE__ */ React32.createElement("dl", { className: "grid w-full grid-cols-1 gap-x-8 gap-y-10 sm:grid-cols-2 md:gap-y-16 lg:grid-cols-3" }, faqs.map((faq, index) => {
7748
7947
  const answerContent = faq.answer_markdown || "";
7749
7948
  const answerHtml = renderMarkdown(answerContent);
7750
- return /* @__PURE__ */ React31.createElement("div", { key: faq.id || index }, /* @__PURE__ */ React31.createElement("div", { className: "flex max-w-sm flex-col" }, /* @__PURE__ */ React31.createElement("dt", { className: "text-md font-semibold text-primary" }, faq.question), /* @__PURE__ */ React31.createElement(
7949
+ return /* @__PURE__ */ React32.createElement("div", { key: faq.id || index }, /* @__PURE__ */ React32.createElement("div", { className: "flex max-w-sm flex-col" }, /* @__PURE__ */ React32.createElement("dt", { className: "text-md font-semibold text-primary" }, faq.question), /* @__PURE__ */ React32.createElement(
7751
7950
  "dd",
7752
7951
  {
7753
7952
  className: "mt-1 text-md text-tertiary",
7754
7953
  dangerouslySetInnerHTML: { __html: answerHtml }
7755
7954
  }
7756
7955
  )));
7757
- }))), (ctaTitle || ctaSubtitle || ctaButtonText) && /* @__PURE__ */ React31.createElement("div", { className: "mt-12 flex flex-col items-start justify-between gap-6 rounded-2xl bg-secondary px-5 py-8 md:mt-16 md:flex-row md:gap-8 md:p-8" }, /* @__PURE__ */ React31.createElement("div", { className: "w-full max-w-3xl" }, ctaTitle && /* @__PURE__ */ React31.createElement("h4", { className: "text-xl font-semibold text-primary" }, ctaTitle), ctaSubtitle && /* @__PURE__ */ React31.createElement("p", { className: "mt-2 text-md text-tertiary md:text-lg" }, ctaSubtitle)), ctaButtonText && /* @__PURE__ */ React31.createElement(
7956
+ }))), (ctaTitle || ctaSubtitle || ctaButtonText) && /* @__PURE__ */ React32.createElement("div", { className: "mt-12 flex flex-col items-start justify-between gap-6 rounded-2xl bg-secondary px-5 py-8 md:mt-16 md:flex-row md:gap-8 md:p-8" }, /* @__PURE__ */ React32.createElement("div", { className: "w-full max-w-3xl" }, ctaTitle && /* @__PURE__ */ React32.createElement("h4", { className: "text-xl font-semibold text-primary" }, ctaTitle), ctaSubtitle && /* @__PURE__ */ React32.createElement("p", { className: "mt-2 text-md text-tertiary md:text-lg" }, ctaSubtitle)), ctaButtonText && /* @__PURE__ */ React32.createElement(
7758
7957
  Button2,
7759
7958
  {
7760
7959
  size: "xl",
@@ -7935,7 +8134,7 @@ import { Fragment as Fragment2 } from "react";
7935
8134
  import Image10 from "next/image";
7936
8135
 
7937
8136
  // src/design_system/elements/IconComponent.tsx
7938
- import React32 from "react";
8137
+ import React33 from "react";
7939
8138
  var IconComponent = ({ icon, color: color2 = "blue", className = "" }) => {
7940
8139
  const getIconColor = (colorName) => {
7941
8140
  switch (colorName) {
@@ -7960,26 +8159,26 @@ var IconComponent = ({ icon, color: color2 = "blue", className = "" }) => {
7960
8159
  const renderIcon = () => {
7961
8160
  switch (icon) {
7962
8161
  case "star":
7963
- return /* @__PURE__ */ React32.createElement("svg", { className: `w-full h-full ${getIconColor(color2)}`, fill: "currentColor", viewBox: "0 0 20 20" }, /* @__PURE__ */ React32.createElement("path", { d: "M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z" }));
8162
+ return /* @__PURE__ */ React33.createElement("svg", { className: `w-full h-full ${getIconColor(color2)}`, fill: "currentColor", viewBox: "0 0 20 20" }, /* @__PURE__ */ React33.createElement("path", { d: "M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z" }));
7964
8163
  case "heart":
7965
- return /* @__PURE__ */ React32.createElement("svg", { className: `w-full h-full ${getIconColor(color2)}`, fill: "currentColor", viewBox: "0 0 20 20" }, /* @__PURE__ */ React32.createElement("path", { fillRule: "evenodd", d: "M3.172 5.172a4 4 0 015.656 0L10 6.343l1.172-1.171a4 4 0 115.656 5.656L10 17.657l-6.828-6.829a4 4 0 010-5.656z", clipRule: "evenodd" }));
8164
+ return /* @__PURE__ */ React33.createElement("svg", { className: `w-full h-full ${getIconColor(color2)}`, fill: "currentColor", viewBox: "0 0 20 20" }, /* @__PURE__ */ React33.createElement("path", { fillRule: "evenodd", d: "M3.172 5.172a4 4 0 015.656 0L10 6.343l1.172-1.171a4 4 0 115.656 5.656L10 17.657l-6.828-6.829a4 4 0 010-5.656z", clipRule: "evenodd" }));
7966
8165
  case "home":
7967
- return /* @__PURE__ */ React32.createElement("svg", { className: `w-full h-full ${getIconColor(color2)}`, fill: "currentColor", viewBox: "0 0 20 20" }, /* @__PURE__ */ React32.createElement("path", { d: "M10.707 2.293a1 1 0 00-1.414 0l-7 7a1 1 0 001.414 1.414L4 10.414V17a1 1 0 001 1h2a1 1 0 001-1v-2a1 1 0 011-1h2a1 1 0 011 1v2a1 1 0 001 1h2a1 1 0 001-1v-6.586l.293.293a1 1 0 001.414-1.414l-7-7z" }));
8166
+ return /* @__PURE__ */ React33.createElement("svg", { className: `w-full h-full ${getIconColor(color2)}`, fill: "currentColor", viewBox: "0 0 20 20" }, /* @__PURE__ */ React33.createElement("path", { d: "M10.707 2.293a1 1 0 00-1.414 0l-7 7a1 1 0 001.414 1.414L4 10.414V17a1 1 0 001 1h2a1 1 0 001-1v-2a1 1 0 011-1h2a1 1 0 011 1v2a1 1 0 001 1h2a1 1 0 001-1v-6.586l.293.293a1 1 0 001.414-1.414l-7-7z" }));
7968
8167
  case "person":
7969
- return /* @__PURE__ */ React32.createElement("svg", { className: `w-full h-full ${getIconColor(color2)}`, fill: "currentColor", viewBox: "0 0 20 20" }, /* @__PURE__ */ React32.createElement("path", { fillRule: "evenodd", d: "M10 9a3 3 0 100-6 3 3 0 000 6zm-7 9a7 7 0 1114 0H3z", clipRule: "evenodd" }));
8168
+ return /* @__PURE__ */ React33.createElement("svg", { className: `w-full h-full ${getIconColor(color2)}`, fill: "currentColor", viewBox: "0 0 20 20" }, /* @__PURE__ */ React33.createElement("path", { fillRule: "evenodd", d: "M10 9a3 3 0 100-6 3 3 0 000 6zm-7 9a7 7 0 1114 0H3z", clipRule: "evenodd" }));
7970
8169
  case "phone":
7971
- return /* @__PURE__ */ React32.createElement("svg", { className: `w-full h-full ${getIconColor(color2)}`, fill: "currentColor", viewBox: "0 0 20 20" }, /* @__PURE__ */ React32.createElement("path", { d: "M2 3a1 1 0 011-1h2.153a1 1 0 01.986.836l.74 4.435a1 1 0 01-.01 1.01l-.804 1.646a1 1 0 00.01 1.01l.74 4.435a1 1 0 01-.986.836H3a1 1 0 01-1-1V3z" }));
8170
+ return /* @__PURE__ */ React33.createElement("svg", { className: `w-full h-full ${getIconColor(color2)}`, fill: "currentColor", viewBox: "0 0 20 20" }, /* @__PURE__ */ React33.createElement("path", { d: "M2 3a1 1 0 011-1h2.153a1 1 0 01.986.836l.74 4.435a1 1 0 01-.01 1.01l-.804 1.646a1 1 0 00.01 1.01l.74 4.435a1 1 0 01-.986.836H3a1 1 0 01-1-1V3z" }));
7972
8171
  case "email":
7973
- return /* @__PURE__ */ React32.createElement("svg", { className: `w-full h-full ${getIconColor(color2)}`, fill: "currentColor", viewBox: "0 0 20 20" }, /* @__PURE__ */ React32.createElement("path", { d: "M2.003 5.884L10 9.882l7.997-3.998A2 2 0 0016 4H4a2 2 0 00-1.997 1.884z" }), /* @__PURE__ */ React32.createElement("path", { d: "M18 8.118l-8 4-8-4V14a2 2 0 002 2h12a2 2 0 002-2V8.118z" }));
8172
+ return /* @__PURE__ */ React33.createElement("svg", { className: `w-full h-full ${getIconColor(color2)}`, fill: "currentColor", viewBox: "0 0 20 20" }, /* @__PURE__ */ React33.createElement("path", { d: "M2.003 5.884L10 9.882l7.997-3.998A2 2 0 0016 4H4a2 2 0 00-1.997 1.884z" }), /* @__PURE__ */ React33.createElement("path", { d: "M18 8.118l-8 4-8-4V14a2 2 0 002 2h12a2 2 0 002-2V8.118z" }));
7974
8173
  case "location":
7975
- return /* @__PURE__ */ React32.createElement("svg", { className: `w-full h-full ${getIconColor(color2)}`, fill: "currentColor", viewBox: "0 0 20 20" }, /* @__PURE__ */ React32.createElement("path", { fillRule: "evenodd", d: "M5.05 4.05a7 7 0 119.9 9.9L10 18.9l-4.95-4.95a7 7 0 010-9.9zM10 11a2 2 0 100-4 2 2 0 000 4z", clipRule: "evenodd" }));
8174
+ return /* @__PURE__ */ React33.createElement("svg", { className: `w-full h-full ${getIconColor(color2)}`, fill: "currentColor", viewBox: "0 0 20 20" }, /* @__PURE__ */ React33.createElement("path", { fillRule: "evenodd", d: "M5.05 4.05a7 7 0 119.9 9.9L10 18.9l-4.95-4.95a7 7 0 010-9.9zM10 11a2 2 0 100-4 2 2 0 000 4z", clipRule: "evenodd" }));
7976
8175
  case "clock":
7977
- return /* @__PURE__ */ React32.createElement("svg", { className: `w-full h-full ${getIconColor(color2)}`, fill: "currentColor", viewBox: "0 0 20 20" }, /* @__PURE__ */ React32.createElement("path", { fillRule: "evenodd", d: "M10 18a8 8 0 100-16 8 8 0 000 16zm1-12a1 1 0 10-2 0v4a1 1 0 00.293.707l2.828 2.829a1 1 0 101.415-1.415L11 9.586V6z", clipRule: "evenodd" }));
8176
+ return /* @__PURE__ */ React33.createElement("svg", { className: `w-full h-full ${getIconColor(color2)}`, fill: "currentColor", viewBox: "0 0 20 20" }, /* @__PURE__ */ React33.createElement("path", { fillRule: "evenodd", d: "M10 18a8 8 0 100-16 8 8 0 000 16zm1-12a1 1 0 10-2 0v4a1 1 0 00.293.707l2.828 2.829a1 1 0 101.415-1.415L11 9.586V6z", clipRule: "evenodd" }));
7978
8177
  default:
7979
- return /* @__PURE__ */ React32.createElement("svg", { className: `w-full h-full ${getIconColor(color2)}`, fill: "currentColor", viewBox: "0 0 20 20" }, /* @__PURE__ */ React32.createElement("path", { fillRule: "evenodd", d: "M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z", clipRule: "evenodd" }));
8178
+ return /* @__PURE__ */ React33.createElement("svg", { className: `w-full h-full ${getIconColor(color2)}`, fill: "currentColor", viewBox: "0 0 20 20" }, /* @__PURE__ */ React33.createElement("path", { fillRule: "evenodd", d: "M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z", clipRule: "evenodd" }));
7980
8179
  }
7981
8180
  };
7982
- return /* @__PURE__ */ React32.createElement("div", { className }, renderIcon());
8181
+ return /* @__PURE__ */ React33.createElement("div", { className }, renderIcon());
7983
8182
  };
7984
8183
  var IconComponent_default = IconComponent;
7985
8184
 
@@ -8147,14 +8346,14 @@ var JobDetailHero = ({
8147
8346
  };
8148
8347
 
8149
8348
  // src/design_system/sections/job-application-form.tsx
8150
- import React33, { useRef as useRef7, useState as useState14 } from "react";
8349
+ import React34, { useRef as useRef8, useState as useState14 } from "react";
8151
8350
  var JobApplicationForm = ({ jobSlug, formDefinition, inline = false }) => {
8152
8351
  const { jobApplicationFormDefinition } = useFormDefinitions();
8153
8352
  const resolvedFormDefinition = formDefinition != null ? formDefinition : jobApplicationFormDefinition;
8154
8353
  const [isSubmitting, setIsSubmitting] = useState14(false);
8155
8354
  const [submitStatus, setSubmitStatus] = useState14("idle");
8156
8355
  const [statusMessage, setStatusMessage] = useState14("");
8157
- const formRef = useRef7(null);
8356
+ const formRef = useRef8(null);
8158
8357
  const hasFields = resolvedFormDefinition != null && Array.isArray(resolvedFormDefinition.fields) && resolvedFormDefinition.fields.length > 0;
8159
8358
  const handleSubmit = async (e) => {
8160
8359
  var _a;
@@ -8190,7 +8389,7 @@ var JobApplicationForm = ({ jobSlug, formDefinition, inline = false }) => {
8190
8389
  setIsSubmitting(false);
8191
8390
  };
8192
8391
  if (!hasFields) return null;
8193
- const formContent = /* @__PURE__ */ React33.createElement(Form2, { ref: formRef, onSubmit: handleSubmit, className: "flex flex-col gap-6" }, /* @__PURE__ */ React33.createElement(DynamicFormFields, { form: resolvedFormDefinition, jobSlug }), submitStatus === "success" && /* @__PURE__ */ React33.createElement("div", { className: "rounded-lg bg-success-50 p-4 text-success-700" }, statusMessage), submitStatus === "error" && /* @__PURE__ */ React33.createElement("div", { className: "rounded-lg bg-error-50 p-4 text-error-700" }, statusMessage), /* @__PURE__ */ React33.createElement(
8392
+ const formContent = /* @__PURE__ */ React34.createElement(Form2, { ref: formRef, onSubmit: handleSubmit, className: "flex flex-col gap-6" }, /* @__PURE__ */ React34.createElement(DynamicFormFields, { form: resolvedFormDefinition, jobSlug }), submitStatus === "success" && /* @__PURE__ */ React34.createElement("div", { className: "rounded-lg bg-success-50 p-4 text-success-700" }, statusMessage), submitStatus === "error" && /* @__PURE__ */ React34.createElement("div", { className: "rounded-lg bg-error-50 p-4 text-error-700" }, statusMessage), /* @__PURE__ */ React34.createElement(
8194
8393
  Button2,
8195
8394
  {
8196
8395
  type: "submit",
@@ -8203,7 +8402,7 @@ var JobApplicationForm = ({ jobSlug, formDefinition, inline = false }) => {
8203
8402
  isSubmitting ? "Submitting..." : "Submit Application"
8204
8403
  ));
8205
8404
  if (inline) return formContent;
8206
- return /* @__PURE__ */ React33.createElement("section", { id: "application-form", className: "bg-primary py-16 md:py-20" }, /* @__PURE__ */ React33.createElement("div", { className: "mx-auto max-w-container px-4 md:px-8" }, /* @__PURE__ */ React33.createElement("div", { className: "mx-auto max-w-2xl" }, /* @__PURE__ */ React33.createElement("div", { className: "mb-8 text-center" }, /* @__PURE__ */ React33.createElement("h2", { className: "text-display-sm font-semibold text-primary md:text-display-md" }, "Apply for this Position"), /* @__PURE__ */ React33.createElement("p", { className: "mt-4 text-lg text-tertiary" }, "Fill out the form below to submit your application")), formContent)));
8405
+ return /* @__PURE__ */ React34.createElement("section", { id: "application-form", className: "bg-primary py-16 md:py-20" }, /* @__PURE__ */ React34.createElement("div", { className: "mx-auto max-w-container px-4 md:px-8" }, /* @__PURE__ */ React34.createElement("div", { className: "mx-auto max-w-2xl" }, /* @__PURE__ */ React34.createElement("div", { className: "mb-8 text-center" }, /* @__PURE__ */ React34.createElement("h2", { className: "text-display-sm font-semibold text-primary md:text-display-md" }, "Apply for this Position"), /* @__PURE__ */ React34.createElement("p", { className: "mt-4 text-lg text-tertiary" }, "Fill out the form below to submit your application")), formContent)));
8207
8406
  };
8208
8407
 
8209
8408
  // src/design_system/sections/job-detail-section.tsx
@@ -8239,9 +8438,116 @@ var PolicyDocumentSection = ({
8239
8438
  return /* @__PURE__ */ React.createElement("section", { className: `py-12 md:py-16 ${className}` }, /* @__PURE__ */ React.createElement("div", { className: "mx-auto max-w-3xl px-4 md:px-8" }, /* @__PURE__ */ React.createElement("header", { className: "mb-10 border-b border-gray-200 pb-8" }, /* @__PURE__ */ React.createElement("h1", { className: "font-display text-4xl font-semibold text-gray-900 md:text-5xl" }, title), effectiveDate && /* @__PURE__ */ React.createElement("p", { className: "mt-3 text-sm text-gray-500" }, "Effective Date: ", effectiveDate)), /* @__PURE__ */ React.createElement("div", { className: "prose prose-gray max-w-none text-gray-700" }, /* @__PURE__ */ React.createElement(MarkdownRenderer, { content }))));
8240
8439
  };
8241
8440
 
8441
+ // src/design_system/sections/offers-section.tsx
8442
+ function OffersSection({
8443
+ offers,
8444
+ title = "Offers",
8445
+ subtitle = "See our current offers.",
8446
+ maxOffers = 6,
8447
+ backgroundColor = "bg-primary",
8448
+ showViewAll = true
8449
+ }) {
8450
+ const list = Array.isArray(offers) ? offers : [];
8451
+ const displayList = list.filter((o) => !o.expired).slice(0, maxOffers);
8452
+ if (list.length === 0) {
8453
+ return null;
8454
+ }
8455
+ return /* @__PURE__ */ React.createElement("section", { className: `${backgroundColor} py-16 md:py-24` }, /* @__PURE__ */ React.createElement("div", { className: "mx-auto max-w-container px-4 md:px-8" }, /* @__PURE__ */ React.createElement("div", { className: "flex flex-col items-start justify-between lg:flex-row" }, /* @__PURE__ */ React.createElement("div", { className: "max-w-3xl" }, /* @__PURE__ */ React.createElement("p", { className: "text-sm font-semibold text-brand-secondary md:text-md" }, "Current offers"), /* @__PURE__ */ React.createElement("h2", { className: "mt-3 text-display-sm font-semibold text-primary md:text-display-md" }, title), /* @__PURE__ */ React.createElement("p", { className: "mt-4 text-lg text-tertiary md:mt-5 md:text-xl" }, subtitle)), showViewAll && /* @__PURE__ */ React.createElement("div", { className: "hidden gap-3 lg:flex" }, /* @__PURE__ */ React.createElement(Button2, { size: "xl", href: "/offers" }, "View all offers"))), /* @__PURE__ */ React.createElement("div", { className: "mx-auto mt-12 max-w-2xl space-y-6" }, displayList.map((offer) => /* @__PURE__ */ React.createElement(OfferCard, { key: offer.id, offer }))), showViewAll && /* @__PURE__ */ React.createElement("div", { className: "mt-12 flex flex-col gap-3 lg:hidden" }, /* @__PURE__ */ React.createElement(Button2, { size: "xl", href: "/offers" }, "View all offers"))));
8456
+ }
8457
+ function OfferCard({ offer }) {
8458
+ return /* @__PURE__ */ React.createElement("div", { className: "rounded-2xl border border-secondary bg-secondary/30 p-5 md:p-6" }, /* @__PURE__ */ React.createElement("div", { className: "flex flex-col gap-3" }, /* @__PURE__ */ React.createElement("h3", { className: "text-lg font-semibold text-primary" }, offer.name), offer.description && /* @__PURE__ */ React.createElement("p", { className: "text-tertiary" }, offer.description), offer.value_terms && /* @__PURE__ */ React.createElement("p", { className: "text-sm font-medium text-primary" }, offer.value_terms), offer.expires_at && (() => {
8459
+ const d = new Date(offer.expires_at);
8460
+ if (Number.isNaN(d.getTime())) return null;
8461
+ return /* @__PURE__ */ React.createElement("p", { className: "text-xs text-tertiary" }, "Expires ", d.toLocaleDateString());
8462
+ })()));
8463
+ }
8464
+
8465
+ // src/design_system/sections/offers-gallery.tsx
8466
+ import React36 from "react";
8467
+
8468
+ // src/design_system/sections/offers-grid.tsx
8469
+ import React35 from "react";
8470
+ function OffersGrid({
8471
+ offers,
8472
+ title = "Offers",
8473
+ subtitle = "See our current offers.",
8474
+ websitePhotos,
8475
+ companyInformation,
8476
+ backgroundColor = "bg-primary"
8477
+ }) {
8478
+ const list = Array.isArray(offers) ? offers : [];
8479
+ const displayList = list.filter((o) => !o.expired);
8480
+ return /* @__PURE__ */ React35.createElement("section", { className: `${backgroundColor} py-16 md:py-24` }, /* @__PURE__ */ React35.createElement("div", { className: "mx-auto max-w-container px-4 md:px-8" }, /* @__PURE__ */ React35.createElement("div", { className: "mx-auto max-w-3xl text-center" }, /* @__PURE__ */ React35.createElement("h1", { className: "text-display-sm font-semibold text-primary md:text-display-md" }, title), subtitle && /* @__PURE__ */ React35.createElement("p", { className: "mt-4 text-lg text-tertiary md:mt-5 md:text-xl" }, subtitle)), displayList.length > 0 ? /* @__PURE__ */ React35.createElement("ul", { className: "mx-auto mt-12 grid grid-cols-1 gap-8 sm:grid-cols-2 lg:grid-cols-3" }, displayList.map((offer, index) => /* @__PURE__ */ React35.createElement("li", { key: offer.id }, /* @__PURE__ */ React35.createElement(
8481
+ OffersGridCard,
8482
+ {
8483
+ offer,
8484
+ index,
8485
+ websitePhotos,
8486
+ companyInformation
8487
+ }
8488
+ )))) : /* @__PURE__ */ React35.createElement("div", { className: "mx-auto mt-12 max-w-md text-center" }, /* @__PURE__ */ React35.createElement("p", { className: "text-tertiary" }, "No offers available at the moment. Check back later."))));
8489
+ }
8490
+ function OffersGridCard({
8491
+ offer,
8492
+ index,
8493
+ websitePhotos,
8494
+ companyInformation
8495
+ }) {
8496
+ var _a;
8497
+ return /* @__PURE__ */ React35.createElement("article", { className: "flex flex-col overflow-hidden rounded-2xl border border-secondary bg-secondary/30" }, /* @__PURE__ */ React35.createElement("div", { className: "aspect-[4/3] w-full overflow-hidden" }, /* @__PURE__ */ React35.createElement(
8498
+ PhotoWithFallback2,
8499
+ {
8500
+ item: void 0,
8501
+ fallbackId: (_a = offer.id) != null ? _a : index,
8502
+ alt: offer.name,
8503
+ className: "size-full object-cover",
8504
+ websitePhotos,
8505
+ companyInformation
8506
+ }
8507
+ )), /* @__PURE__ */ React35.createElement("div", { className: "flex flex-1 flex-col gap-3 p-5 md:p-6" }, /* @__PURE__ */ React35.createElement("h2", { className: "text-lg font-semibold text-primary" }, offer.name), offer.description && /* @__PURE__ */ React35.createElement("p", { className: "text-tertiary line-clamp-2" }, offer.description), offer.value_terms && /* @__PURE__ */ React35.createElement("p", { className: "text-sm font-medium text-primary" }, offer.value_terms), offer.expires_at && (() => {
8508
+ const d = new Date(offer.expires_at);
8509
+ if (Number.isNaN(d.getTime())) return null;
8510
+ return /* @__PURE__ */ React35.createElement("p", { className: "text-xs text-tertiary" }, "Expires ", d.toLocaleDateString());
8511
+ })()));
8512
+ }
8513
+
8514
+ // src/design_system/sections/offers-gallery.tsx
8515
+ var OffersGallery = ({
8516
+ offers,
8517
+ title = "Offers",
8518
+ subtitle = "See our current offers.",
8519
+ websitePhotos,
8520
+ companyInformation,
8521
+ className = ""
8522
+ }) => /* @__PURE__ */ React36.createElement("section", { className }, /* @__PURE__ */ React36.createElement(
8523
+ OffersGrid,
8524
+ {
8525
+ offers,
8526
+ title,
8527
+ subtitle,
8528
+ websitePhotos,
8529
+ companyInformation
8530
+ }
8531
+ ));
8532
+ registerThemeVariant("offers-gallery", "classic", OffersGallery);
8533
+
8534
+ // src/design_system/sections/offer-detail.tsx
8535
+ import React37 from "react";
8536
+ var OfferDetailSection = ({ offer }) => {
8537
+ if (!offer) {
8538
+ return /* @__PURE__ */ React37.createElement("div", { className: "text-center py-12" }, /* @__PURE__ */ React37.createElement("div", { className: "text-6xl mb-4" }, "\u{1F381}"), /* @__PURE__ */ React37.createElement("h3", { className: "text-xl font-semibold text-gray-900 mb-2" }, "Offer Not Found"), /* @__PURE__ */ React37.createElement("p", { className: "text-gray-600 mb-4" }, "The offer you're looking for doesn't exist or has expired."), /* @__PURE__ */ React37.createElement(Button2, { href: "/offers" }, "View All Offers"));
8539
+ }
8540
+ return /* @__PURE__ */ React37.createElement("div", { className: "mx-auto max-w-3xl px-4 py-12" }, /* @__PURE__ */ React37.createElement("h1", { className: "text-2xl font-semibold text-gray-900 mb-4" }, offer.name), offer.value_terms && /* @__PURE__ */ React37.createElement("p", { className: "text-gray-600 mb-2" }, offer.value_terms), offer.description && /* @__PURE__ */ React37.createElement("p", { className: "text-gray-600 mb-4" }, offer.description), offer.expires_at && (() => {
8541
+ const d = new Date(offer.expires_at);
8542
+ if (Number.isNaN(d.getTime())) return null;
8543
+ return /* @__PURE__ */ React37.createElement("p", { className: "text-sm text-gray-500 mb-6" }, "Expires ", d.toLocaleDateString());
8544
+ })(), /* @__PURE__ */ React37.createElement(Button2, { href: "/offers" }, "Back to Offers"));
8545
+ };
8546
+ registerThemeVariant("offer-detail", "classic", OfferDetailSection);
8547
+
8242
8548
  // src/design_system/sections/hero-home.aman.tsx
8243
8549
  import { Fragment as Fragment3, useState as useState15 } from "react";
8244
- import React34 from "react";
8550
+ import React38 from "react";
8245
8551
  var HeroHome2 = ({
8246
8552
  websitePhotos,
8247
8553
  companyInformation,
@@ -8259,7 +8565,7 @@ var HeroHome2 = ({
8259
8565
  url: ((_b = websitePhotos == null ? void 0 : websitePhotos.hero) == null ? void 0 : _b.url) || "",
8260
8566
  alt: ((_c = websitePhotos == null ? void 0 : websitePhotos.hero) == null ? void 0 : _c.alt) || "Hero image"
8261
8567
  };
8262
- return /* @__PURE__ */ React34.createElement(Fragment3, null, /* @__PURE__ */ React34.createElement("section", { className: "py-24 md:py-32" }, /* @__PURE__ */ React34.createElement("div", { className: "mx-auto max-w-4xl px-4 text-center md:px-8" }, /* @__PURE__ */ React34.createElement("h1", { className: "font-display text-5xl font-normal leading-tight text-fg-primary md:text-6xl lg:text-7xl" }, headline), /* @__PURE__ */ React34.createElement("p", { className: "mt-6 font-body text-lg leading-relaxed text-tertiary md:text-xl max-w-3xl mx-auto" }, subhead), ctaText && /* @__PURE__ */ React34.createElement(
8568
+ return /* @__PURE__ */ React38.createElement(Fragment3, null, /* @__PURE__ */ React38.createElement("section", { className: "py-24 md:py-32" }, /* @__PURE__ */ React38.createElement("div", { className: "mx-auto max-w-4xl px-4 text-center md:px-8" }, /* @__PURE__ */ React38.createElement("h1", { className: "font-display text-5xl font-normal leading-tight text-fg-primary md:text-6xl lg:text-7xl" }, headline), /* @__PURE__ */ React38.createElement("p", { className: "mt-6 font-body text-lg leading-relaxed text-tertiary md:text-xl max-w-3xl mx-auto" }, subhead), ctaText && /* @__PURE__ */ React38.createElement(
8263
8569
  "a",
8264
8570
  {
8265
8571
  href: effectiveCtaHref,
@@ -8269,7 +8575,7 @@ var HeroHome2 = ({
8269
8575
  style: { color: "var(--color-text-brand-accent)" }
8270
8576
  },
8271
8577
  ctaText
8272
- ))), /* @__PURE__ */ React34.createElement("section", null, /* @__PURE__ */ React34.createElement("div", { className: "mx-auto max-w-container px-4 md:px-8" }, /* @__PURE__ */ React34.createElement("div", { className: "relative w-full h-[400px] md:h-[500px] lg:h-[600px]" }, /* @__PURE__ */ React34.createElement(
8578
+ ))), /* @__PURE__ */ React38.createElement("section", null, /* @__PURE__ */ React38.createElement("div", { className: "mx-auto max-w-container px-4 md:px-8" }, /* @__PURE__ */ React38.createElement("div", { className: "relative w-full h-[400px] md:h-[500px] lg:h-[600px]" }, /* @__PURE__ */ React38.createElement(
8273
8579
  PhotoWithFallback2,
8274
8580
  {
8275
8581
  photoUrl: heroImage.url,
@@ -8277,7 +8583,7 @@ var HeroHome2 = ({
8277
8583
  fallbackId: "hero-home-brand",
8278
8584
  className: "w-full h-full object-cover"
8279
8585
  }
8280
- ), videoUrl && /* @__PURE__ */ React34.createElement("div", { className: "absolute inset-0 flex items-center justify-center" }, /* @__PURE__ */ React34.createElement(VideoPlayButton, { onClick: () => setShowVideo(true) }))))), videoUrl && /* @__PURE__ */ React34.createElement(
8586
+ ), videoUrl && /* @__PURE__ */ React38.createElement("div", { className: "absolute inset-0 flex items-center justify-center" }, /* @__PURE__ */ React38.createElement(VideoPlayButton, { onClick: () => setShowVideo(true) }))))), videoUrl && /* @__PURE__ */ React38.createElement(
8281
8587
  VideoModal,
8282
8588
  {
8283
8589
  isOpen: showVideo,
@@ -8289,7 +8595,7 @@ var HeroHome2 = ({
8289
8595
  registerThemeVariant("hero-home", "aman", HeroHome2);
8290
8596
 
8291
8597
  // src/design_system/sections/header-navigation.aman.tsx
8292
- import React35, { useState as useState16, useRef as useRef8, useCallback as useCallback5 } from "react";
8598
+ import React39, { useState as useState16, useRef as useRef9, useCallback as useCallback5 } from "react";
8293
8599
  import Link6 from "next/link";
8294
8600
  import Image11 from "next/image";
8295
8601
  var MAX_DROPDOWN_ITEMS = 3;
@@ -8302,20 +8608,20 @@ function HeaderNavigation2({
8302
8608
  companyInformation,
8303
8609
  websitePhotos
8304
8610
  }) {
8305
- var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v;
8611
+ var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y;
8306
8612
  const [activeDropdown, setActiveDropdown] = useState16(null);
8307
8613
  const [isMobileMenuOpen, setIsMobileMenuOpen] = useState16(false);
8308
8614
  const [dropdownTop, setDropdownTop] = useState16(0);
8309
8615
  const [isScrolled, setIsScrolled] = useState16(false);
8310
- const closeTimeoutRef = useRef8(null);
8311
- React35.useEffect(() => {
8616
+ const closeTimeoutRef = useRef9(null);
8617
+ React39.useEffect(() => {
8312
8618
  const handleScroll = () => {
8313
8619
  setIsScrolled(window.scrollY > 10);
8314
8620
  };
8315
8621
  window.addEventListener("scroll", handleScroll);
8316
8622
  return () => window.removeEventListener("scroll", handleScroll);
8317
8623
  }, []);
8318
- React35.useEffect(() => {
8624
+ React39.useEffect(() => {
8319
8625
  return () => {
8320
8626
  if (closeTimeoutRef.current) {
8321
8627
  clearTimeout(closeTimeoutRef.current);
@@ -8378,10 +8684,10 @@ function HeaderNavigation2({
8378
8684
  viewAllLabel: ""
8379
8685
  };
8380
8686
  };
8381
- return /* @__PURE__ */ React35.createElement(React35.Fragment, null, /* @__PURE__ */ React35.createElement("header", { className: "hidden md:block sticky top-0 z-50 bg-primary border-b border-secondary transition-all duration-300" }, /* @__PURE__ */ React35.createElement("div", { className: "mx-auto max-w-container px-4 md:px-8" }, /* @__PURE__ */ React35.createElement("div", { className: cx(
8687
+ return /* @__PURE__ */ React39.createElement(React39.Fragment, null, /* @__PURE__ */ React39.createElement("header", { className: "hidden md:block sticky top-0 z-50 bg-primary border-b border-secondary transition-all duration-300" }, /* @__PURE__ */ React39.createElement("div", { className: "mx-auto max-w-container px-4 md:px-8" }, /* @__PURE__ */ React39.createElement("div", { className: cx(
8382
8688
  "relative flex items-center justify-between transition-all duration-300",
8383
8689
  isScrolled ? "py-2" : "py-8"
8384
- ) }, /* @__PURE__ */ React35.createElement(Link6, { href: "/", className: "flex items-center" }, logoUrl && /* @__PURE__ */ React35.createElement(
8690
+ ) }, /* @__PURE__ */ React39.createElement(Link6, { href: ((_d = props == null ? void 0 : props.logo) == null ? void 0 : _d.href) || "/", className: "flex items-center" }, logoUrl && /* @__PURE__ */ React39.createElement(
8385
8691
  Image11,
8386
8692
  {
8387
8693
  src: logoUrl,
@@ -8390,7 +8696,7 @@ function HeaderNavigation2({
8390
8696
  width: 120,
8391
8697
  height: 40
8392
8698
  }
8393
- )), /* @__PURE__ */ React35.createElement(Link6, { href: "/", className: "absolute left-1/2 transform -translate-x-1/2 font-display text-2xl md:text-3xl font-normal uppercase tracking-widest text-fg-primary", suppressHydrationWarning: true }, companyName), /* @__PURE__ */ React35.createElement("div", { className: "flex items-center gap-3" }, ((_d = props == null ? void 0 : props.cta_button) == null ? void 0 : _d.secondary_label) && ctaUrls.hasSecondary && /* @__PURE__ */ React35.createElement(
8699
+ )), /* @__PURE__ */ React39.createElement(Link6, { href: ((_e = props == null ? void 0 : props.logo) == null ? void 0 : _e.href) || "/", className: "absolute left-1/2 transform -translate-x-1/2 font-display text-2xl md:text-3xl font-normal uppercase tracking-widest text-fg-primary", suppressHydrationWarning: true }, companyName), /* @__PURE__ */ React39.createElement("div", { className: "flex items-center gap-3" }, ((_f = props == null ? void 0 : props.cta_button) == null ? void 0 : _f.secondary_label) && ctaUrls.hasSecondary && /* @__PURE__ */ React39.createElement(
8394
8700
  Button2,
8395
8701
  {
8396
8702
  href: ctaUrls.secondaryHref,
@@ -8401,18 +8707,18 @@ function HeaderNavigation2({
8401
8707
  className: "font-body text-sm uppercase tracking-wide px-6 py-2 rounded-sm"
8402
8708
  },
8403
8709
  props.cta_button.label
8404
- ), /* @__PURE__ */ React35.createElement(
8710
+ ), /* @__PURE__ */ React39.createElement(
8405
8711
  Button2,
8406
8712
  {
8407
8713
  href: ctaUrls.primaryHref,
8408
- target: (_f = (_e = props == null ? void 0 : props.cta_button) == null ? void 0 : _e.target) != null ? _f : isExternalCtaUrl(ctaUrls.primaryHref) ? "_blank" : void 0,
8409
- rel: ((_g = props == null ? void 0 : props.cta_button) == null ? void 0 : _g.target) === "_blank" || isExternalCtaUrl(ctaUrls.primaryHref) ? "noopener noreferrer" : void 0,
8714
+ target: (_h = (_g = props == null ? void 0 : props.cta_button) == null ? void 0 : _g.target) != null ? _h : isExternalCtaUrl(ctaUrls.primaryHref) ? "_blank" : void 0,
8715
+ rel: ((_i = props == null ? void 0 : props.cta_button) == null ? void 0 : _i.target) === "_blank" || isExternalCtaUrl(ctaUrls.primaryHref) ? "noopener noreferrer" : void 0,
8410
8716
  size: "sm",
8411
8717
  color: "primary",
8412
8718
  className: "font-body text-sm uppercase tracking-wide px-6 py-2 rounded-sm"
8413
8719
  },
8414
- ((_h = props == null ? void 0 : props.cta_button) == null ? void 0 : _h.secondary_label) && ctaUrls.hasSecondary ? props.cta_button.secondary_label : ((_i = props == null ? void 0 : props.cta_button) == null ? void 0 : _i.label) || "Contact"
8415
- ))), /* @__PURE__ */ React35.createElement("nav", { className: "border-b border-secondary" }, /* @__PURE__ */ React35.createElement("div", { className: "flex items-center justify-center gap-8 py-4" }, navigation.map((item, i) => /* @__PURE__ */ React35.createElement(
8720
+ ((_j = props == null ? void 0 : props.cta_button) == null ? void 0 : _j.secondary_label) && ctaUrls.hasSecondary ? props.cta_button.secondary_label : ((_k = props == null ? void 0 : props.cta_button) == null ? void 0 : _k.label) || "Contact"
8721
+ ))), /* @__PURE__ */ React39.createElement("nav", { className: "border-b border-secondary" }, /* @__PURE__ */ React39.createElement("div", { className: "flex items-center justify-center gap-8 py-4" }, navigation.map((item, i) => /* @__PURE__ */ React39.createElement(
8416
8722
  "div",
8417
8723
  {
8418
8724
  key: i,
@@ -8420,7 +8726,7 @@ function HeaderNavigation2({
8420
8726
  onMouseEnter: (e) => handleMouseEnter(item, e),
8421
8727
  onMouseLeave: handleMouseLeave
8422
8728
  },
8423
- /* @__PURE__ */ React35.createElement(
8729
+ /* @__PURE__ */ React39.createElement(
8424
8730
  Link6,
8425
8731
  {
8426
8732
  href: item.href,
@@ -8431,7 +8737,7 @@ function HeaderNavigation2({
8431
8737
  },
8432
8738
  item.label
8433
8739
  ),
8434
- item.children && item.children.length > 0 && activeDropdown === item.label && /* @__PURE__ */ React35.createElement(
8740
+ item.children && item.children.length > 0 && activeDropdown === item.label && /* @__PURE__ */ React39.createElement(
8435
8741
  "div",
8436
8742
  {
8437
8743
  className: "fixed left-0 right-0 w-full pt-6 pb-6 border-b border-secondary bg-primary z-50",
@@ -8439,9 +8745,9 @@ function HeaderNavigation2({
8439
8745
  onMouseEnter: handleDropdownMouseEnter,
8440
8746
  onMouseLeave: handleDropdownMouseLeave
8441
8747
  },
8442
- /* @__PURE__ */ React35.createElement("div", { className: "mx-auto max-w-container px-4 md:px-8" }, /* @__PURE__ */ React35.createElement("div", { className: "flex items-center justify-center gap-8" }, (() => {
8748
+ /* @__PURE__ */ React39.createElement("div", { className: "mx-auto max-w-container px-4 md:px-8" }, /* @__PURE__ */ React39.createElement("div", { className: "flex items-center justify-center gap-8" }, (() => {
8443
8749
  const { items, showViewAll, viewAllHref, viewAllLabel } = getDropdownItems(item);
8444
- return /* @__PURE__ */ React35.createElement(React35.Fragment, null, items.map((link, j) => /* @__PURE__ */ React35.createElement(
8750
+ return /* @__PURE__ */ React39.createElement(React39.Fragment, null, items.map((link, j) => /* @__PURE__ */ React39.createElement(
8445
8751
  Link6,
8446
8752
  {
8447
8753
  key: j,
@@ -8449,7 +8755,7 @@ function HeaderNavigation2({
8449
8755
  className: "font-body text-sm text-fg-primary hover:underline whitespace-nowrap"
8450
8756
  },
8451
8757
  link.label
8452
- )), showViewAll && /* @__PURE__ */ React35.createElement(
8758
+ )), showViewAll && /* @__PURE__ */ React39.createElement(
8453
8759
  Link6,
8454
8760
  {
8455
8761
  href: viewAllHref,
@@ -8460,15 +8766,15 @@ function HeaderNavigation2({
8460
8766
  ));
8461
8767
  })()))
8462
8768
  )
8463
- )))))), /* @__PURE__ */ React35.createElement("header", { className: "md:hidden sticky top-0 z-50 bg-primary border-b border-secondary" }, /* @__PURE__ */ React35.createElement("div", { className: "flex items-center justify-between px-4 py-4" }, /* @__PURE__ */ React35.createElement(
8769
+ )))))), /* @__PURE__ */ React39.createElement("header", { className: "md:hidden sticky top-0 z-50 bg-primary border-b border-secondary" }, /* @__PURE__ */ React39.createElement("div", { className: "flex items-center justify-between px-4 py-4" }, /* @__PURE__ */ React39.createElement(
8464
8770
  "button",
8465
8771
  {
8466
8772
  onClick: () => setIsMobileMenuOpen(true),
8467
8773
  className: "text-fg-primary",
8468
8774
  "aria-label": "Open menu"
8469
8775
  },
8470
- /* @__PURE__ */ React35.createElement("svg", { className: "w-6 h-6", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React35.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M4 6h16M4 12h16M4 18h16" }))
8471
- ), /* @__PURE__ */ React35.createElement(Link6, { href: "/", className: "flex items-center" }, logoUrl ? /* @__PURE__ */ React35.createElement(
8776
+ /* @__PURE__ */ React39.createElement("svg", { className: "w-6 h-6", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React39.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M4 6h16M4 12h16M4 18h16" }))
8777
+ ), /* @__PURE__ */ React39.createElement(Link6, { href: ((_l = props == null ? void 0 : props.logo) == null ? void 0 : _l.href) || "/", className: "flex items-center" }, logoUrl ? /* @__PURE__ */ React39.createElement(
8472
8778
  Image11,
8473
8779
  {
8474
8780
  src: logoUrl,
@@ -8477,15 +8783,15 @@ function HeaderNavigation2({
8477
8783
  width: 120,
8478
8784
  height: 32
8479
8785
  }
8480
- ) : /* @__PURE__ */ React35.createElement("span", { className: "font-display text-xl font-normal uppercase tracking-widest text-fg-primary" }, companyName)), /* @__PURE__ */ React35.createElement("div", { className: "w-6" }))), isMobileMenuOpen && /* @__PURE__ */ React35.createElement("div", { className: "fixed inset-0 bg-white z-50 md:hidden" }, /* @__PURE__ */ React35.createElement("div", { className: "flex flex-col h-full" }, /* @__PURE__ */ React35.createElement("div", { className: "flex items-center justify-between px-4 py-4 border-b border-secondary" }, /* @__PURE__ */ React35.createElement(
8786
+ ) : /* @__PURE__ */ React39.createElement("span", { className: "font-display text-xl font-normal uppercase tracking-widest text-fg-primary" }, companyName)), /* @__PURE__ */ React39.createElement("div", { className: "w-6" }))), isMobileMenuOpen && /* @__PURE__ */ React39.createElement("div", { className: "fixed inset-0 bg-white z-50 md:hidden" }, /* @__PURE__ */ React39.createElement("div", { className: "flex flex-col h-full" }, /* @__PURE__ */ React39.createElement("div", { className: "flex items-center justify-between px-4 py-4 border-b border-secondary" }, /* @__PURE__ */ React39.createElement(
8481
8787
  "button",
8482
8788
  {
8483
8789
  onClick: () => setIsMobileMenuOpen(false),
8484
8790
  className: "text-fg-primary",
8485
8791
  "aria-label": "Close menu"
8486
8792
  },
8487
- /* @__PURE__ */ React35.createElement("svg", { className: "w-6 h-6", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React35.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M6 18L18 6M6 6l12 12" }))
8488
- ), /* @__PURE__ */ React35.createElement("div", { className: "flex items-center" }, logoUrl ? /* @__PURE__ */ React35.createElement(
8793
+ /* @__PURE__ */ React39.createElement("svg", { className: "w-6 h-6", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React39.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M6 18L18 6M6 6l12 12" }))
8794
+ ), /* @__PURE__ */ React39.createElement("div", { className: "flex items-center" }, logoUrl ? /* @__PURE__ */ React39.createElement(
8489
8795
  Image11,
8490
8796
  {
8491
8797
  src: logoUrl,
@@ -8494,9 +8800,9 @@ function HeaderNavigation2({
8494
8800
  width: 120,
8495
8801
  height: 32
8496
8802
  }
8497
- ) : /* @__PURE__ */ React35.createElement("span", { className: "font-display text-xl font-normal uppercase tracking-widest text-fg-primary" }, companyName)), /* @__PURE__ */ React35.createElement("div", { className: "w-6" })), /* @__PURE__ */ React35.createElement("nav", { className: "flex-1 overflow-y-auto px-4 py-8" }, /* @__PURE__ */ React35.createElement("ul", { className: "space-y-4" }, navigation.map((item, i) => {
8803
+ ) : /* @__PURE__ */ React39.createElement("span", { className: "font-display text-xl font-normal uppercase tracking-widest text-fg-primary" }, companyName)), /* @__PURE__ */ React39.createElement("div", { className: "w-6" })), /* @__PURE__ */ React39.createElement("nav", { className: "flex-1 overflow-y-auto px-4 py-8" }, /* @__PURE__ */ React39.createElement("ul", { className: "space-y-4" }, navigation.map((item, i) => {
8498
8804
  const { items, showViewAll, viewAllHref, viewAllLabel } = getDropdownItems(item);
8499
- return /* @__PURE__ */ React35.createElement("li", { key: i }, /* @__PURE__ */ React35.createElement(
8805
+ return /* @__PURE__ */ React39.createElement("li", { key: i }, /* @__PURE__ */ React39.createElement(
8500
8806
  Link6,
8501
8807
  {
8502
8808
  href: item.href,
@@ -8504,7 +8810,7 @@ function HeaderNavigation2({
8504
8810
  onClick: () => setIsMobileMenuOpen(false)
8505
8811
  },
8506
8812
  item.label
8507
- ), items.length > 0 && /* @__PURE__ */ React35.createElement("ul", { className: "ml-4 mt-2 space-y-2" }, items.map((link, j) => /* @__PURE__ */ React35.createElement("li", { key: j }, /* @__PURE__ */ React35.createElement(
8813
+ ), items.length > 0 && /* @__PURE__ */ React39.createElement("ul", { className: "ml-4 mt-2 space-y-2" }, items.map((link, j) => /* @__PURE__ */ React39.createElement("li", { key: j }, /* @__PURE__ */ React39.createElement(
8508
8814
  Link6,
8509
8815
  {
8510
8816
  href: link.href,
@@ -8512,7 +8818,7 @@ function HeaderNavigation2({
8512
8818
  onClick: () => setIsMobileMenuOpen(false)
8513
8819
  },
8514
8820
  link.label
8515
- ))), showViewAll && /* @__PURE__ */ React35.createElement("li", null, /* @__PURE__ */ React35.createElement(
8821
+ ))), showViewAll && /* @__PURE__ */ React39.createElement("li", null, /* @__PURE__ */ React39.createElement(
8516
8822
  Link6,
8517
8823
  {
8518
8824
  href: viewAllHref,
@@ -8522,7 +8828,7 @@ function HeaderNavigation2({
8522
8828
  viewAllLabel,
8523
8829
  " \u2192"
8524
8830
  ))));
8525
- }))), /* @__PURE__ */ React35.createElement("div", { className: "border-t border-secondary px-4 py-6" }, /* @__PURE__ */ React35.createElement("div", { className: "flex flex-col gap-3" }, ((_j = props == null ? void 0 : props.cta_button) == null ? void 0 : _j.secondary_label) && ctaUrls.hasSecondary && /* @__PURE__ */ React35.createElement(
8831
+ }))), /* @__PURE__ */ React39.createElement("div", { className: "border-t border-secondary px-4 py-6" }, /* @__PURE__ */ React39.createElement("div", { className: "flex flex-col gap-3" }, ((_m = props == null ? void 0 : props.cta_button) == null ? void 0 : _m.secondary_label) && ctaUrls.hasSecondary && /* @__PURE__ */ React39.createElement(
8526
8832
  Button2,
8527
8833
  {
8528
8834
  href: ctaUrls.secondaryHref,
@@ -8533,18 +8839,18 @@ function HeaderNavigation2({
8533
8839
  onClick: () => setIsMobileMenuOpen(false)
8534
8840
  },
8535
8841
  props.cta_button.label
8536
- ), /* @__PURE__ */ React35.createElement(
8842
+ ), /* @__PURE__ */ React39.createElement(
8537
8843
  Button2,
8538
8844
  {
8539
8845
  href: ctaUrls.primaryHref,
8540
- target: (_l = (_k = props == null ? void 0 : props.cta_button) == null ? void 0 : _k.target) != null ? _l : isExternalCtaUrl(ctaUrls.primaryHref) ? "_blank" : void 0,
8541
- rel: ((_m = props == null ? void 0 : props.cta_button) == null ? void 0 : _m.target) === "_blank" || isExternalCtaUrl(ctaUrls.primaryHref) ? "noopener noreferrer" : void 0,
8846
+ target: (_o = (_n = props == null ? void 0 : props.cta_button) == null ? void 0 : _n.target) != null ? _o : isExternalCtaUrl(ctaUrls.primaryHref) ? "_blank" : void 0,
8847
+ rel: ((_p = props == null ? void 0 : props.cta_button) == null ? void 0 : _p.target) === "_blank" || isExternalCtaUrl(ctaUrls.primaryHref) ? "noopener noreferrer" : void 0,
8542
8848
  color: "primary",
8543
8849
  className: "w-full font-body text-sm uppercase tracking-wide py-3 rounded-sm",
8544
8850
  onClick: () => setIsMobileMenuOpen(false)
8545
8851
  },
8546
- ((_n = props == null ? void 0 : props.cta_button) == null ? void 0 : _n.secondary_label) && ctaUrls.hasSecondary ? props.cta_button.secondary_label : ((_o = props == null ? void 0 : props.cta_button) == null ? void 0 : _o.label) || "Contact"
8547
- ))))), /* @__PURE__ */ React35.createElement("div", { className: "fixed bottom-0 left-0 right-0 z-40 md:hidden bg-fg-primary" }, /* @__PURE__ */ React35.createElement("div", { className: "flex gap-0" }, ((_p = props == null ? void 0 : props.cta_button) == null ? void 0 : _p.secondary_label) && ctaUrls.hasSecondary && /* @__PURE__ */ React35.createElement(
8852
+ ((_q = props == null ? void 0 : props.cta_button) == null ? void 0 : _q.secondary_label) && ctaUrls.hasSecondary ? props.cta_button.secondary_label : ((_r = props == null ? void 0 : props.cta_button) == null ? void 0 : _r.label) || "Contact"
8853
+ ))))), /* @__PURE__ */ React39.createElement("div", { className: "fixed bottom-0 left-0 right-0 z-40 md:hidden bg-fg-primary" }, /* @__PURE__ */ React39.createElement("div", { className: "flex gap-0" }, ((_s = props == null ? void 0 : props.cta_button) == null ? void 0 : _s.secondary_label) && ctaUrls.hasSecondary && /* @__PURE__ */ React39.createElement(
8548
8854
  Button2,
8549
8855
  {
8550
8856
  href: ctaUrls.secondaryHref,
@@ -8554,16 +8860,16 @@ function HeaderNavigation2({
8554
8860
  className: "flex-1 font-body text-sm uppercase tracking-wide py-4 rounded-none border-r border-gray-700"
8555
8861
  },
8556
8862
  props.cta_button.label
8557
- ), /* @__PURE__ */ React35.createElement(
8863
+ ), /* @__PURE__ */ React39.createElement(
8558
8864
  Button2,
8559
8865
  {
8560
8866
  href: ctaUrls.primaryHref,
8561
- target: (_r = (_q = props == null ? void 0 : props.cta_button) == null ? void 0 : _q.target) != null ? _r : isExternalCtaUrl(ctaUrls.primaryHref) ? "_blank" : void 0,
8562
- rel: ((_s = props == null ? void 0 : props.cta_button) == null ? void 0 : _s.target) === "_blank" || isExternalCtaUrl(ctaUrls.primaryHref) ? "noopener noreferrer" : void 0,
8867
+ target: (_u = (_t = props == null ? void 0 : props.cta_button) == null ? void 0 : _t.target) != null ? _u : isExternalCtaUrl(ctaUrls.primaryHref) ? "_blank" : void 0,
8868
+ rel: ((_v = props == null ? void 0 : props.cta_button) == null ? void 0 : _v.target) === "_blank" || isExternalCtaUrl(ctaUrls.primaryHref) ? "noopener noreferrer" : void 0,
8563
8869
  color: "primary",
8564
- className: `${((_t = props == null ? void 0 : props.cta_button) == null ? void 0 : _t.secondary_label) && ctaUrls.hasSecondary ? "flex-1" : "w-full"} font-body text-sm uppercase tracking-wide py-4 rounded-none`
8870
+ className: `${((_w = props == null ? void 0 : props.cta_button) == null ? void 0 : _w.secondary_label) && ctaUrls.hasSecondary ? "flex-1" : "w-full"} font-body text-sm uppercase tracking-wide py-4 rounded-none`
8565
8871
  },
8566
- ((_u = props == null ? void 0 : props.cta_button) == null ? void 0 : _u.secondary_label) && ctaUrls.hasSecondary ? props.cta_button.secondary_label : ((_v = props == null ? void 0 : props.cta_button) == null ? void 0 : _v.label) || "Contact"
8872
+ ((_x = props == null ? void 0 : props.cta_button) == null ? void 0 : _x.secondary_label) && ctaUrls.hasSecondary ? props.cta_button.secondary_label : ((_y = props == null ? void 0 : props.cta_button) == null ? void 0 : _y.label) || "Contact"
8567
8873
  ))));
8568
8874
  }
8569
8875
  registerThemeVariant("header-navigation", "aman", HeaderNavigation2);
@@ -8655,7 +8961,7 @@ var ServicesGrid2 = ({
8655
8961
  registerThemeVariant("services-grid", "aman", ServicesGrid2);
8656
8962
 
8657
8963
  // src/design_system/sections/testimonials-home.aman.tsx
8658
- import React36 from "react";
8964
+ import React40 from "react";
8659
8965
  var TestimonialsHome2 = ({
8660
8966
  testimonials: testimonialsData,
8661
8967
  title = "",
@@ -8663,7 +8969,7 @@ var TestimonialsHome2 = ({
8663
8969
  }) => {
8664
8970
  const testimonials = Array.isArray(testimonialsData) ? testimonialsData : [];
8665
8971
  const displayTestimonials = perPage ? testimonials.slice(0, perPage) : testimonials;
8666
- return /* @__PURE__ */ React36.createElement("section", null, /* @__PURE__ */ React36.createElement("div", { className: "mx-auto max-w-container px-4 md:px-8" }, /* @__PURE__ */ React36.createElement(
8972
+ return /* @__PURE__ */ React40.createElement("section", null, /* @__PURE__ */ React40.createElement("div", { className: "mx-auto max-w-container px-4 md:px-8" }, /* @__PURE__ */ React40.createElement(
8667
8973
  CarouselSectionWrapper,
8668
8974
  {
8669
8975
  title,
@@ -8678,7 +8984,7 @@ var TestimonialsHome2 = ({
8678
8984
  const avatarUrl = getAvatarUrl(testimonial.photo_attachments, testimonial.id, reviewerName);
8679
8985
  const rating = testimonial.rating || 5;
8680
8986
  const isVerified = true;
8681
- return /* @__PURE__ */ React36.createElement(Carousel.Item, { key: testimonial.id || i, className: "pl-4 md:basis-1/2 lg:basis-1/3" }, /* @__PURE__ */ React36.createElement("div", { className: "bg-white p-8 flex flex-col h-full" }, /* @__PURE__ */ React36.createElement("div", { className: "flex gap-1 mb-6" }, Array.from({ length: 5 }).map((_, starIdx) => /* @__PURE__ */ React36.createElement(
8987
+ return /* @__PURE__ */ React40.createElement(Carousel.Item, { key: testimonial.id || i, className: "pl-4 md:basis-1/2 lg:basis-1/3" }, /* @__PURE__ */ React40.createElement("div", { className: "bg-white p-8 flex flex-col h-full" }, /* @__PURE__ */ React40.createElement("div", { className: "flex gap-1 mb-6" }, Array.from({ length: 5 }).map((_, starIdx) => /* @__PURE__ */ React40.createElement(
8682
8988
  "svg",
8683
8989
  {
8684
8990
  key: starIdx,
@@ -8690,8 +8996,8 @@ var TestimonialsHome2 = ({
8690
8996
  strokeWidth: "2",
8691
8997
  viewBox: "0 0 24 24"
8692
8998
  },
8693
- /* @__PURE__ */ React36.createElement("path", { d: "M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z" })
8694
- ))), /* @__PURE__ */ React36.createElement("p", { className: "font-display text-lg leading-relaxed text-tertiary mb-6 flex-grow" }, '"', quote, '"'), /* @__PURE__ */ React36.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ React36.createElement("div", { className: "w-12 h-12 rounded-full overflow-hidden flex-shrink-0" }, /* @__PURE__ */ React36.createElement(
8999
+ /* @__PURE__ */ React40.createElement("path", { d: "M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z" })
9000
+ ))), /* @__PURE__ */ React40.createElement("p", { className: "font-display text-lg leading-relaxed text-tertiary mb-6 flex-grow" }, '"', quote, '"'), /* @__PURE__ */ React40.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ React40.createElement("div", { className: "w-12 h-12 rounded-full overflow-hidden flex-shrink-0" }, /* @__PURE__ */ React40.createElement(
8695
9001
  PhotoWithFallback2,
8696
9002
  {
8697
9003
  photoUrl: avatarUrl,
@@ -8699,21 +9005,21 @@ var TestimonialsHome2 = ({
8699
9005
  fallbackId: testimonial.id || i,
8700
9006
  className: "w-full h-full object-cover"
8701
9007
  }
8702
- )), /* @__PURE__ */ React36.createElement("div", { className: "flex-1" }, /* @__PURE__ */ React36.createElement("div", { className: "flex items-center gap-1.5" }, /* @__PURE__ */ React36.createElement("p", { className: "font-body text-sm font-medium text-fg-primary" }, reviewerName), isVerified && /* @__PURE__ */ React36.createElement("svg", { className: "w-4 h-4 text-fg-primary", viewBox: "0 0 20 20", fill: "currentColor" }, /* @__PURE__ */ React36.createElement("path", { fillRule: "evenodd", d: "M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z", clipRule: "evenodd" }))), /* @__PURE__ */ React36.createElement("p", { className: "font-body text-xs", style: { color: "var(--color-text-brand-secondary)" } }, username)))));
9008
+ )), /* @__PURE__ */ React40.createElement("div", { className: "flex-1" }, /* @__PURE__ */ React40.createElement("div", { className: "flex items-center gap-1.5" }, /* @__PURE__ */ React40.createElement("p", { className: "font-body text-sm font-medium text-fg-primary" }, reviewerName), isVerified && /* @__PURE__ */ React40.createElement("svg", { className: "w-4 h-4 text-fg-primary", viewBox: "0 0 20 20", fill: "currentColor" }, /* @__PURE__ */ React40.createElement("path", { fillRule: "evenodd", d: "M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z", clipRule: "evenodd" }))), /* @__PURE__ */ React40.createElement("p", { className: "font-body text-xs", style: { color: "var(--color-text-brand-secondary)" } }, username)))));
8703
9009
  })
8704
9010
  )));
8705
9011
  };
8706
9012
  registerThemeVariant("testimonials-home", "aman", TestimonialsHome2);
8707
9013
 
8708
9014
  // src/design_system/sections/testimonials-grid.aman.tsx
8709
- import React37 from "react";
9015
+ import React41 from "react";
8710
9016
  var TestimonialsGrid2 = ({
8711
9017
  testimonials: testimonialsData,
8712
9018
  title = "",
8713
9019
  subtitle = ""
8714
9020
  }) => {
8715
9021
  const testimonials = Array.isArray(testimonialsData) ? testimonialsData : [];
8716
- return /* @__PURE__ */ React37.createElement("section", null, /* @__PURE__ */ React37.createElement("div", { className: "mx-auto max-w-container px-4 md:px-8" }, (title || subtitle) && /* @__PURE__ */ React37.createElement("div", { className: "mb-12 text-center" }, title && /* @__PURE__ */ React37.createElement("h2", { className: "font-display text-4xl font-normal text-fg-primary md:text-5xl" }, title), subtitle && /* @__PURE__ */ React37.createElement("p", { className: "mt-4 font-display text-lg leading-relaxed text-tertiary md:text-xl max-w-3xl mx-auto" }, subtitle)), testimonials.length > 0 ? /* @__PURE__ */ React37.createElement("div", { className: "grid grid-cols-1 gap-8 md:grid-cols-2 lg:grid-cols-3" }, testimonials.map((testimonial, i) => {
9022
+ return /* @__PURE__ */ React41.createElement("section", null, /* @__PURE__ */ React41.createElement("div", { className: "mx-auto max-w-container px-4 md:px-8" }, (title || subtitle) && /* @__PURE__ */ React41.createElement("div", { className: "mb-12 text-center" }, title && /* @__PURE__ */ React41.createElement("h2", { className: "font-display text-4xl font-normal text-fg-primary md:text-5xl" }, title), subtitle && /* @__PURE__ */ React41.createElement("p", { className: "mt-4 font-display text-lg leading-relaxed text-tertiary md:text-xl max-w-3xl mx-auto" }, subtitle)), testimonials.length > 0 ? /* @__PURE__ */ React41.createElement("div", { className: "grid grid-cols-1 gap-8 md:grid-cols-2 lg:grid-cols-3" }, testimonials.map((testimonial, i) => {
8717
9023
  var _a;
8718
9024
  const quote = ((_a = testimonial.content_markdown) == null ? void 0 : _a.replace(/[#*\[\]()]/g, "").trim()) || "";
8719
9025
  const reviewerName = testimonial.reviewer_name || "Customer";
@@ -8721,7 +9027,7 @@ var TestimonialsGrid2 = ({
8721
9027
  const avatarUrl = getAvatarUrl(testimonial.photo_attachments, testimonial.id, reviewerName);
8722
9028
  const rating = testimonial.rating || 5;
8723
9029
  const isVerified = true;
8724
- return /* @__PURE__ */ React37.createElement("div", { key: testimonial.id || i, className: "bg-white p-8 flex flex-col h-full" }, /* @__PURE__ */ React37.createElement("div", { className: "flex gap-1 mb-6" }, Array.from({ length: 5 }).map((_, starIdx) => /* @__PURE__ */ React37.createElement(
9030
+ return /* @__PURE__ */ React41.createElement("div", { key: testimonial.id || i, className: "bg-white p-8 flex flex-col h-full" }, /* @__PURE__ */ React41.createElement("div", { className: "flex gap-1 mb-6" }, Array.from({ length: 5 }).map((_, starIdx) => /* @__PURE__ */ React41.createElement(
8725
9031
  "svg",
8726
9032
  {
8727
9033
  key: starIdx,
@@ -8733,8 +9039,8 @@ var TestimonialsGrid2 = ({
8733
9039
  strokeWidth: "2",
8734
9040
  viewBox: "0 0 24 24"
8735
9041
  },
8736
- /* @__PURE__ */ React37.createElement("path", { d: "M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z" })
8737
- ))), /* @__PURE__ */ React37.createElement("p", { className: "font-display text-lg leading-relaxed text-tertiary mb-6 flex-grow" }, '"', quote, '"'), /* @__PURE__ */ React37.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ React37.createElement("div", { className: "w-12 h-12 rounded-full overflow-hidden flex-shrink-0" }, /* @__PURE__ */ React37.createElement(
9042
+ /* @__PURE__ */ React41.createElement("path", { d: "M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z" })
9043
+ ))), /* @__PURE__ */ React41.createElement("p", { className: "font-display text-lg leading-relaxed text-tertiary mb-6 flex-grow" }, '"', quote, '"'), /* @__PURE__ */ React41.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ React41.createElement("div", { className: "w-12 h-12 rounded-full overflow-hidden flex-shrink-0" }, /* @__PURE__ */ React41.createElement(
8738
9044
  PhotoWithFallback2,
8739
9045
  {
8740
9046
  photoUrl: avatarUrl,
@@ -8742,29 +9048,31 @@ var TestimonialsGrid2 = ({
8742
9048
  fallbackId: testimonial.id || i,
8743
9049
  className: "w-full h-full object-cover"
8744
9050
  }
8745
- )), /* @__PURE__ */ React37.createElement("div", { className: "flex-1" }, /* @__PURE__ */ React37.createElement("div", { className: "flex items-center gap-1.5" }, /* @__PURE__ */ React37.createElement("p", { className: "font-body text-sm font-medium text-fg-primary" }, reviewerName), isVerified && /* @__PURE__ */ React37.createElement("svg", { className: "w-4 h-4 text-fg-primary", viewBox: "0 0 20 20", fill: "currentColor" }, /* @__PURE__ */ React37.createElement("path", { fillRule: "evenodd", d: "M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z", clipRule: "evenodd" }))), /* @__PURE__ */ React37.createElement("p", { className: "font-body text-xs", style: { color: "var(--color-text-brand-secondary)" } }, username))));
8746
- })) : /* @__PURE__ */ React37.createElement("div", { className: "text-center py-12" }, /* @__PURE__ */ React37.createElement("p", { className: "font-body text-base text-tertiary" }, "No testimonials available"))));
9051
+ )), /* @__PURE__ */ React41.createElement("div", { className: "flex-1" }, /* @__PURE__ */ React41.createElement("div", { className: "flex items-center gap-1.5" }, /* @__PURE__ */ React41.createElement("p", { className: "font-body text-sm font-medium text-fg-primary" }, reviewerName), isVerified && /* @__PURE__ */ React41.createElement("svg", { className: "w-4 h-4 text-fg-primary", viewBox: "0 0 20 20", fill: "currentColor" }, /* @__PURE__ */ React41.createElement("path", { fillRule: "evenodd", d: "M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z", clipRule: "evenodd" }))), /* @__PURE__ */ React41.createElement("p", { className: "font-body text-xs", style: { color: "var(--color-text-brand-secondary)" } }, username))));
9052
+ })) : /* @__PURE__ */ React41.createElement("div", { className: "text-center py-12" }, /* @__PURE__ */ React41.createElement("p", { className: "font-body text-base text-tertiary" }, "No testimonials available"))));
8747
9053
  };
8748
9054
  registerThemeVariant("testimonials-grid", "aman", TestimonialsGrid2);
8749
9055
 
8750
9056
  // src/design_system/sections/contact-section.aman.tsx
8751
- import React39 from "react";
9057
+ import React43 from "react";
8752
9058
 
8753
9059
  // src/design_system/sections/contact-section-form.aman.tsx
8754
- import React38, { useRef as useRef9, useState as useState17 } from "react";
9060
+ import React42, { useRef as useRef10, useState as useState17 } from "react";
8755
9061
  var ContactSectionForm2 = ({
8756
9062
  formDefinition,
8757
9063
  submitButtonText = "Send message",
8758
9064
  successMessage = "Thank you for contacting us! We'll get back to you soon.",
8759
9065
  thankYouMessage,
8760
- onSuccess
9066
+ onSuccess,
9067
+ privacyPolicyUrl,
9068
+ termsOfServiceUrl
8761
9069
  }) => {
8762
9070
  const { leadFormDefinition } = useFormDefinitions();
8763
9071
  const resolvedFormDefinition = formDefinition != null ? formDefinition : leadFormDefinition;
8764
9072
  const [isSubmitting, setIsSubmitting] = useState17(false);
8765
9073
  const [submitStatus, setSubmitStatus] = useState17("idle");
8766
9074
  const [statusMessage, setStatusMessage] = useState17("");
8767
- const formRef = useRef9(null);
9075
+ const formRef = useRef10(null);
8768
9076
  const hasFields = resolvedFormDefinition != null && Array.isArray(resolvedFormDefinition.fields) && resolvedFormDefinition.fields.length > 0;
8769
9077
  const handleSubmit = async (e) => {
8770
9078
  var _a;
@@ -8775,7 +9083,8 @@ var ContactSectionForm2 = ({
8775
9083
  const formData = new FormData(e.currentTarget);
8776
9084
  const data = { formType: "lead" };
8777
9085
  formData.forEach((value, key) => {
8778
- if (key !== "privacy" && typeof value === "string") data[key] = value;
9086
+ if (key.endsWith("_prefix")) return;
9087
+ if (typeof value === "string") data[key] = value;
8779
9088
  });
8780
9089
  try {
8781
9090
  const response = await fetch("/api/form/", {
@@ -8802,7 +9111,14 @@ var ContactSectionForm2 = ({
8802
9111
  setIsSubmitting(false);
8803
9112
  };
8804
9113
  if (!hasFields) return null;
8805
- return /* @__PURE__ */ React38.createElement(Form2, { ref: formRef, onSubmit: handleSubmit, className: "flex flex-col gap-6" }, /* @__PURE__ */ React38.createElement(DynamicFormFields, { form: resolvedFormDefinition }), /* @__PURE__ */ React38.createElement(
9114
+ return /* @__PURE__ */ React42.createElement(Form2, { ref: formRef, onSubmit: handleSubmit, className: "flex flex-col gap-6" }, /* @__PURE__ */ React42.createElement(
9115
+ DynamicFormFields,
9116
+ {
9117
+ form: resolvedFormDefinition,
9118
+ privacyPolicyUrl,
9119
+ termsOfServiceUrl
9120
+ }
9121
+ ), /* @__PURE__ */ React42.createElement(
8806
9122
  Button2,
8807
9123
  {
8808
9124
  type: "submit",
@@ -8813,21 +9129,38 @@ var ContactSectionForm2 = ({
8813
9129
  isLoading: isSubmitting
8814
9130
  },
8815
9131
  isSubmitting ? "Sending..." : submitButtonText
8816
- ), submitStatus === "success" && /* @__PURE__ */ React38.createElement("div", { className: "rounded-sm bg-success-50 p-4 text-success-700 font-body" }, thankYouMessage != null ? thankYouMessage : statusMessage), submitStatus === "error" && /* @__PURE__ */ React38.createElement("div", { className: "rounded-sm bg-error-50 p-4 text-error-700 font-body text-sm" }, statusMessage));
9132
+ ), submitStatus === "success" && /* @__PURE__ */ React42.createElement("div", { className: "rounded-sm bg-success-50 p-4 text-success-700 font-body" }, thankYouMessage != null ? thankYouMessage : statusMessage), submitStatus === "error" && /* @__PURE__ */ React42.createElement("div", { className: "rounded-sm bg-error-50 p-4 text-error-700 font-body text-sm" }, statusMessage));
8817
9133
  };
8818
9134
 
8819
9135
  // src/design_system/sections/contact-section.aman.tsx
9136
+ function getLegalUrlsFromConfig2(config) {
9137
+ var _a, _b, _c;
9138
+ if (!((_a = config == null ? void 0 : config.navigation) == null ? void 0 : _a.footer)) return {};
9139
+ const flat = config.navigation.footer.flat();
9140
+ const privacy = (_b = flat.find((l) => l.label === "Privacy Policy")) == null ? void 0 : _b.href;
9141
+ const terms = (_c = flat.find((l) => l.label === "Terms of Service")) == null ? void 0 : _c.href;
9142
+ return { privacyPolicyUrl: privacy, termsOfServiceUrl: terms };
9143
+ }
8820
9144
  var ContactSection2 = ({
8821
9145
  websitePhotos,
8822
9146
  title = "",
8823
9147
  subtitle = "",
8824
- formDefinition
9148
+ formDefinition,
9149
+ config
8825
9150
  }) => {
9151
+ const { privacyPolicyUrl, termsOfServiceUrl } = getLegalUrlsFromConfig2(config);
8826
9152
  const contactPhoto = websitePhotos == null ? void 0 : websitePhotos.contact;
8827
9153
  const contactImageUrl = contactPhoto == null ? void 0 : contactPhoto.url;
8828
9154
  const finalContactImage = contactImageUrl && contactImageUrl.trim() !== "" ? contactImageUrl : void 0;
8829
9155
  const finalContactImageAlt = (contactPhoto == null ? void 0 : contactPhoto.alt) || "Contact image";
8830
- return /* @__PURE__ */ React39.createElement("section", null, /* @__PURE__ */ React39.createElement("div", { className: "mx-auto max-w-container px-4 md:px-8" }, /* @__PURE__ */ React39.createElement("div", { className: "grid grid-cols-1 gap-12 md:gap-16 lg:grid-cols-2" }, /* @__PURE__ */ React39.createElement("div", { className: "flex w-full flex-col" }, /* @__PURE__ */ React39.createElement("div", { className: "mb-8" }, /* @__PURE__ */ React39.createElement("h2", { className: "font-display text-4xl font-normal leading-tight text-fg-primary md:text-5xl" }, title), /* @__PURE__ */ React39.createElement("p", { className: "mt-4 font-body text-lg leading-relaxed text-tertiary" }, subtitle)), /* @__PURE__ */ React39.createElement(ContactSectionForm2, { formDefinition })), /* @__PURE__ */ React39.createElement("div", { className: "max-lg:hidden h-full min-h-0 overflow-hidden" }, /* @__PURE__ */ React39.createElement(
9156
+ return /* @__PURE__ */ React43.createElement("section", null, /* @__PURE__ */ React43.createElement("div", { className: "mx-auto max-w-container px-4 md:px-8" }, /* @__PURE__ */ React43.createElement("div", { className: "grid grid-cols-1 gap-12 md:gap-16 lg:grid-cols-2" }, /* @__PURE__ */ React43.createElement("div", { className: "flex w-full flex-col" }, /* @__PURE__ */ React43.createElement("div", { className: "mb-8" }, /* @__PURE__ */ React43.createElement("h2", { className: "font-display text-4xl font-normal leading-tight text-fg-primary md:text-5xl" }, title), /* @__PURE__ */ React43.createElement("p", { className: "mt-4 font-body text-lg leading-relaxed text-tertiary" }, subtitle)), /* @__PURE__ */ React43.createElement(
9157
+ ContactSectionForm2,
9158
+ {
9159
+ formDefinition,
9160
+ privacyPolicyUrl,
9161
+ termsOfServiceUrl
9162
+ }
9163
+ )), /* @__PURE__ */ React43.createElement("div", { className: "max-lg:hidden h-full min-h-0 overflow-hidden" }, /* @__PURE__ */ React43.createElement(
8831
9164
  PhotoWithFallback2,
8832
9165
  {
8833
9166
  photoUrl: finalContactImage || "",
@@ -9067,17 +9400,21 @@ registerThemeVariant("location-details-section", "aman", LocationDetailsSection2
9067
9400
 
9068
9401
  // src/design_system/sections/social-media-grid.aman.tsx
9069
9402
  function getPostImageUrls2(post) {
9070
- var _a;
9071
- if ((_a = post.image_urls) == null ? void 0 : _a.length) return post.image_urls;
9403
+ var _a, _b;
9404
+ const videoSet = ((_a = post.video_urls) == null ? void 0 : _a.length) ? new Set(post.video_urls) : null;
9405
+ const isVideo = (url) => isVideoUrl(url) || videoSet !== null && videoSet.has(url);
9406
+ if ((_b = post.image_urls) == null ? void 0 : _b.length) {
9407
+ return post.image_urls.filter((url) => !isVideo(url));
9408
+ }
9072
9409
  const attachments = post.photo_attachments || [];
9073
9410
  const sorted = [...attachments].sort((a, b) => {
9074
- var _a2, _b;
9075
- return ((_a2 = a.sort_order) != null ? _a2 : 0) - ((_b = b.sort_order) != null ? _b : 0);
9411
+ var _a2, _b2;
9412
+ return ((_a2 = a.sort_order) != null ? _a2 : 0) - ((_b2 = b.sort_order) != null ? _b2 : 0);
9076
9413
  });
9077
9414
  return sorted.map((pa) => {
9078
- var _a2, _b, _c, _d;
9079
- return ((_a2 = pa.photo) == null ? void 0 : _a2.large_url) || ((_b = pa.photo) == null ? void 0 : _b.original_url) || ((_c = pa.photo) == null ? void 0 : _c.medium_url) || ((_d = pa.photo) == null ? void 0 : _d.thumbnail_url);
9080
- }).filter((url) => Boolean(url));
9415
+ var _a2, _b2, _c, _d;
9416
+ return ((_a2 = pa.photo) == null ? void 0 : _a2.large_url) || ((_b2 = pa.photo) == null ? void 0 : _b2.original_url) || ((_c = pa.photo) == null ? void 0 : _c.medium_url) || ((_d = pa.photo) == null ? void 0 : _d.thumbnail_url);
9417
+ }).filter((url) => Boolean(url)).filter((url) => !isVideo(url));
9081
9418
  }
9082
9419
  var formatDate2 = (dateString) => {
9083
9420
  if (!dateString) return "Recent";
@@ -9177,7 +9514,7 @@ var BlogHome2 = ({
9177
9514
  registerThemeVariant("blog-home", "aman", BlogHome2);
9178
9515
 
9179
9516
  // src/design_system/sections/blog-gallery.aman.tsx
9180
- import React40, { useState as useState18 } from "react";
9517
+ import React44, { useState as useState18 } from "react";
9181
9518
  var BlogGallery2 = ({
9182
9519
  blogPosts: postsData,
9183
9520
  postsPerPage = 12,
@@ -9191,13 +9528,13 @@ var BlogGallery2 = ({
9191
9528
  const startIndex = (currentPage - 1) * postsPerPage;
9192
9529
  const endIndex = startIndex + postsPerPage;
9193
9530
  const paginatedNonFeaturedPosts = nonFeaturedPosts.slice(startIndex, endIndex);
9194
- return /* @__PURE__ */ React40.createElement("section", { className }, /* @__PURE__ */ React40.createElement("div", { className: "mx-auto max-w-container px-4 md:px-8" }, posts.length > 0 ? /* @__PURE__ */ React40.createElement(React40.Fragment, null, featuredPost && /* @__PURE__ */ React40.createElement(
9531
+ return /* @__PURE__ */ React44.createElement("section", { className }, /* @__PURE__ */ React44.createElement("div", { className: "mx-auto max-w-container px-4 md:px-8" }, posts.length > 0 ? /* @__PURE__ */ React44.createElement(React44.Fragment, null, featuredPost && /* @__PURE__ */ React44.createElement(
9195
9532
  "a",
9196
9533
  {
9197
9534
  href: `/blog/${featuredPost.slug}`,
9198
9535
  className: "block mb-16 group"
9199
9536
  },
9200
- /* @__PURE__ */ React40.createElement("div", { className: "w-full h-96 md:h-[500px] mb-8 overflow-hidden" }, /* @__PURE__ */ React40.createElement(
9537
+ /* @__PURE__ */ React44.createElement("div", { className: "w-full h-96 md:h-[500px] mb-8 overflow-hidden" }, /* @__PURE__ */ React44.createElement(
9201
9538
  PhotoWithFallback2,
9202
9539
  {
9203
9540
  item: featuredPost,
@@ -9205,19 +9542,19 @@ var BlogGallery2 = ({
9205
9542
  className: "w-full h-full object-cover transition-transform duration-300 group-hover:scale-105"
9206
9543
  }
9207
9544
  )),
9208
- /* @__PURE__ */ React40.createElement("div", { className: "max-w-3xl" }, /* @__PURE__ */ React40.createElement("p", { className: "text-xs font-body font-normal uppercase tracking-widest mb-4", style: { color: "var(--color-text-brand-secondary)" } }, featuredPost.published_at ? new Date(featuredPost.published_at).toLocaleDateString("en-US", { month: "long", day: "numeric", year: "numeric" }) : "Recent"), /* @__PURE__ */ React40.createElement("h2", { className: "font-display text-3xl md:text-4xl font-normal text-fg-primary mb-6 group-hover:underline" }, featuredPost.title), featuredPost.excerpt_markdown && /* @__PURE__ */ React40.createElement("p", { className: "font-display text-lg leading-relaxed text-tertiary" }, featuredPost.excerpt_markdown.replace(/[#*\[\]()]/g, "").trim()))
9209
- ), paginatedNonFeaturedPosts.length > 0 && /* @__PURE__ */ React40.createElement("div", { className: "grid grid-cols-1 gap-12 md:grid-cols-2 lg:grid-cols-3 mb-16" }, paginatedNonFeaturedPosts.map((post) => {
9545
+ /* @__PURE__ */ React44.createElement("div", { className: "max-w-3xl" }, /* @__PURE__ */ React44.createElement("p", { className: "text-xs font-body font-normal uppercase tracking-widest mb-4", style: { color: "var(--color-text-brand-secondary)" } }, featuredPost.published_at ? new Date(featuredPost.published_at).toLocaleDateString("en-US", { month: "long", day: "numeric", year: "numeric" }) : "Recent"), /* @__PURE__ */ React44.createElement("h2", { className: "font-display text-3xl md:text-4xl font-normal text-fg-primary mb-6 group-hover:underline" }, featuredPost.title), featuredPost.excerpt_markdown && /* @__PURE__ */ React44.createElement("p", { className: "font-display text-lg leading-relaxed text-tertiary" }, featuredPost.excerpt_markdown.replace(/[#*\[\]()]/g, "").trim()))
9546
+ ), paginatedNonFeaturedPosts.length > 0 && /* @__PURE__ */ React44.createElement("div", { className: "grid grid-cols-1 gap-12 md:grid-cols-2 lg:grid-cols-3 mb-16" }, paginatedNonFeaturedPosts.map((post) => {
9210
9547
  var _a;
9211
9548
  const excerpt = post.excerpt_markdown || ((_a = post.content_markdown) == null ? void 0 : _a.replace(/[#*\[\]()]/g, "").trim().substring(0, 150)) || "";
9212
- return /* @__PURE__ */ React40.createElement("a", { key: post.id, href: `/blog/${post.slug}`, className: "flex flex-col group" }, /* @__PURE__ */ React40.createElement("div", { className: "w-full h-64 mb-6 overflow-hidden" }, /* @__PURE__ */ React40.createElement(
9549
+ return /* @__PURE__ */ React44.createElement("a", { key: post.id, href: `/blog/${post.slug}`, className: "flex flex-col group" }, /* @__PURE__ */ React44.createElement("div", { className: "w-full h-64 mb-6 overflow-hidden" }, /* @__PURE__ */ React44.createElement(
9213
9550
  PhotoWithFallback2,
9214
9551
  {
9215
9552
  item: post,
9216
9553
  fallbackId: post.id,
9217
9554
  className: "w-full h-full object-cover transition-transform duration-300 group-hover:scale-105"
9218
9555
  }
9219
- )), /* @__PURE__ */ React40.createElement("p", { className: "text-xs font-body font-normal uppercase tracking-widest mb-2", style: { color: "var(--color-text-brand-secondary)" } }, post.published_at ? new Date(post.published_at).toLocaleDateString("en-US", { month: "long", day: "numeric", year: "numeric" }) : "Recent"), /* @__PURE__ */ React40.createElement("h3", { className: "font-display text-2xl font-normal text-fg-primary mb-4 group-hover:underline" }, post.title), excerpt && /* @__PURE__ */ React40.createElement("p", { className: "font-body text-base leading-relaxed text-tertiary mb-4 flex-grow line-clamp-3" }, excerpt));
9220
- })), totalPages > 1 && /* @__PURE__ */ React40.createElement("div", { className: "flex justify-center" }, /* @__PURE__ */ React40.createElement(
9556
+ )), /* @__PURE__ */ React44.createElement("p", { className: "text-xs font-body font-normal uppercase tracking-widest mb-2", style: { color: "var(--color-text-brand-secondary)" } }, post.published_at ? new Date(post.published_at).toLocaleDateString("en-US", { month: "long", day: "numeric", year: "numeric" }) : "Recent"), /* @__PURE__ */ React44.createElement("h3", { className: "font-display text-2xl font-normal text-fg-primary mb-4 group-hover:underline" }, post.title), excerpt && /* @__PURE__ */ React44.createElement("p", { className: "font-body text-base leading-relaxed text-tertiary mb-4 flex-grow line-clamp-3" }, excerpt));
9557
+ })), totalPages > 1 && /* @__PURE__ */ React44.createElement("div", { className: "flex justify-center" }, /* @__PURE__ */ React44.createElement(
9221
9558
  PaginationPageDefault2,
9222
9559
  {
9223
9560
  rounded: true,
@@ -9225,7 +9562,7 @@ var BlogGallery2 = ({
9225
9562
  total: totalPages,
9226
9563
  onPageChange: setCurrentPage
9227
9564
  }
9228
- ))) : /* @__PURE__ */ React40.createElement("div", { className: "text-center py-12" }, /* @__PURE__ */ React40.createElement("p", { className: "font-body text-base text-tertiary" }, "No posts available"))));
9565
+ ))) : /* @__PURE__ */ React44.createElement("div", { className: "text-center py-12" }, /* @__PURE__ */ React44.createElement("p", { className: "font-body text-base text-tertiary" }, "No posts available"))));
9229
9566
  };
9230
9567
  registerThemeVariant("blog-gallery", "aman", BlogGallery2);
9231
9568
 
@@ -9256,7 +9593,7 @@ var BlogPostSection2 = ({
9256
9593
  registerThemeVariant("blog-post", "aman", BlogPostSection2);
9257
9594
 
9258
9595
  // src/design_system/sections/blog-section.aman.tsx
9259
- import React41 from "react";
9596
+ import React45 from "react";
9260
9597
  var BlogSection2 = ({
9261
9598
  blogPosts: postsData,
9262
9599
  title = "",
@@ -9275,7 +9612,7 @@ var BlogSection2 = ({
9275
9612
  return "Recent";
9276
9613
  }
9277
9614
  };
9278
- return /* @__PURE__ */ React41.createElement("section", null, /* @__PURE__ */ React41.createElement("div", { className: "mx-auto max-w-container px-4 md:px-8" }, /* @__PURE__ */ React41.createElement(
9615
+ return /* @__PURE__ */ React45.createElement("section", null, /* @__PURE__ */ React45.createElement("div", { className: "mx-auto max-w-container px-4 md:px-8" }, /* @__PURE__ */ React45.createElement(
9279
9616
  CarouselSectionWrapper,
9280
9617
  {
9281
9618
  title,
@@ -9285,14 +9622,14 @@ var BlogSection2 = ({
9285
9622
  postsArray.map((post) => {
9286
9623
  var _a;
9287
9624
  const excerpt = ((_a = post.content_markdown) == null ? void 0 : _a.replace(/[#*\[\]()]/g, "").trim().substring(0, 150)) || "";
9288
- return /* @__PURE__ */ React41.createElement(Carousel.Item, { key: post.id, className: "pl-4 md:basis-1/2 lg:basis-1/3" }, /* @__PURE__ */ React41.createElement("a", { href: `/blog/${post.slug}`, className: "flex flex-col h-full group" }, /* @__PURE__ */ React41.createElement("div", { className: "w-full h-64 mb-6 overflow-hidden" }, /* @__PURE__ */ React41.createElement(
9625
+ return /* @__PURE__ */ React45.createElement(Carousel.Item, { key: post.id, className: "pl-4 md:basis-1/2 lg:basis-1/3" }, /* @__PURE__ */ React45.createElement("a", { href: `/blog/${post.slug}`, className: "flex flex-col h-full group" }, /* @__PURE__ */ React45.createElement("div", { className: "w-full h-64 mb-6 overflow-hidden" }, /* @__PURE__ */ React45.createElement(
9289
9626
  PhotoWithFallback2,
9290
9627
  {
9291
9628
  item: post,
9292
9629
  fallbackId: post.id,
9293
9630
  className: "w-full h-full object-cover transition-transform duration-300 group-hover:scale-105"
9294
9631
  }
9295
- )), /* @__PURE__ */ React41.createElement("p", { className: "text-xs font-body font-normal uppercase tracking-widest mb-2", style: { color: "var(--color-text-brand-secondary)" } }, formatDate4(post.published_at)), /* @__PURE__ */ React41.createElement("h3", { className: "font-display text-2xl font-normal text-fg-primary mb-4 group-hover:underline line-clamp-1" }, post.title), excerpt && /* @__PURE__ */ React41.createElement("p", { className: "font-body text-base leading-relaxed text-tertiary mb-4 flex-grow line-clamp-3" }, excerpt)));
9632
+ )), /* @__PURE__ */ React45.createElement("p", { className: "text-xs font-body font-normal uppercase tracking-widest mb-2", style: { color: "var(--color-text-brand-secondary)" } }, formatDate4(post.published_at)), /* @__PURE__ */ React45.createElement("h3", { className: "font-display text-2xl font-normal text-fg-primary mb-4 group-hover:underline line-clamp-1" }, post.title), excerpt && /* @__PURE__ */ React45.createElement("p", { className: "font-body text-base leading-relaxed text-tertiary mb-4 flex-grow line-clamp-3" }, excerpt)));
9296
9633
  })
9297
9634
  )));
9298
9635
  };
@@ -9306,9 +9643,9 @@ import { createContext as createContext10 } from "react";
9306
9643
  var LayoutGroupContext = createContext10({});
9307
9644
 
9308
9645
  // node_modules/framer-motion/dist/es/utils/use-constant.mjs
9309
- import { useRef as useRef10 } from "react";
9646
+ import { useRef as useRef11 } from "react";
9310
9647
  function useConstant(init) {
9311
- const ref = useRef10(null);
9648
+ const ref = useRef11(null);
9312
9649
  if (ref.current === null) {
9313
9650
  ref.current = init();
9314
9651
  }
@@ -9316,13 +9653,13 @@ function useConstant(init) {
9316
9653
  }
9317
9654
 
9318
9655
  // node_modules/framer-motion/dist/es/utils/use-isomorphic-effect.mjs
9319
- import { useLayoutEffect, useEffect as useEffect7 } from "react";
9656
+ import { useLayoutEffect, useEffect as useEffect8 } from "react";
9320
9657
 
9321
9658
  // node_modules/framer-motion/dist/es/utils/is-browser.mjs
9322
9659
  var isBrowser = typeof window !== "undefined";
9323
9660
 
9324
9661
  // node_modules/framer-motion/dist/es/utils/use-isomorphic-effect.mjs
9325
- var useIsomorphicLayoutEffect = isBrowser ? useLayoutEffect : useEffect7;
9662
+ var useIsomorphicLayoutEffect = isBrowser ? useLayoutEffect : useEffect8;
9326
9663
 
9327
9664
  // node_modules/framer-motion/dist/es/context/PresenceContext.mjs
9328
9665
  import { createContext as createContext11 } from "react";
@@ -12466,14 +12803,14 @@ var MotionConfigContext = createContext12({
12466
12803
  });
12467
12804
 
12468
12805
  // node_modules/framer-motion/dist/es/components/AnimatePresence/use-presence.mjs
12469
- import { useContext as useContext11, useId as useId4, useEffect as useEffect8, useCallback as useCallback6 } from "react";
12806
+ import { useContext as useContext11, useId as useId4, useEffect as useEffect9, useCallback as useCallback6 } from "react";
12470
12807
  function usePresence(subscribe = true) {
12471
12808
  const context = useContext11(PresenceContext);
12472
12809
  if (context === null)
12473
12810
  return [true, null];
12474
12811
  const { isPresent, onExitComplete, register } = context;
12475
12812
  const id3 = useId4();
12476
- useEffect8(() => {
12813
+ useEffect9(() => {
12477
12814
  if (subscribe) {
12478
12815
  return register(id3);
12479
12816
  }
@@ -13175,7 +13512,7 @@ function useMotionRef(visualState, visualElement, externalRef) {
13175
13512
  }
13176
13513
 
13177
13514
  // node_modules/framer-motion/dist/es/motion/utils/use-visual-element.mjs
13178
- import { useContext as useContext14, useRef as useRef11, useInsertionEffect, useEffect as useEffect9 } from "react";
13515
+ import { useContext as useContext14, useRef as useRef12, useInsertionEffect, useEffect as useEffect10 } from "react";
13179
13516
 
13180
13517
  // node_modules/framer-motion/dist/es/render/dom/utils/camel-to-dash.mjs
13181
13518
  var camelToDash = (str) => str.replace(/([a-z])([A-Z])/gu, "$1-$2").toLowerCase();
@@ -13195,7 +13532,7 @@ function useVisualElement(Component2, visualState, props, createVisualElement, P
13195
13532
  const lazyContext = useContext14(LazyContext);
13196
13533
  const presenceContext = useContext14(PresenceContext);
13197
13534
  const reducedMotionConfig = useContext14(MotionConfigContext).reducedMotion;
13198
- const visualElementRef = useRef11(null);
13535
+ const visualElementRef = useRef12(null);
13199
13536
  createVisualElement = createVisualElement || lazyContext.renderer;
13200
13537
  if (!visualElementRef.current && createVisualElement) {
13201
13538
  visualElementRef.current = createVisualElement(Component2, {
@@ -13212,14 +13549,14 @@ function useVisualElement(Component2, visualState, props, createVisualElement, P
13212
13549
  if (visualElement && !visualElement.projection && ProjectionNodeConstructor && (visualElement.type === "html" || visualElement.type === "svg")) {
13213
13550
  createProjectionNode(visualElementRef.current, props, ProjectionNodeConstructor, initialLayoutGroupConfig);
13214
13551
  }
13215
- const isMounted = useRef11(false);
13552
+ const isMounted = useRef12(false);
13216
13553
  useInsertionEffect(() => {
13217
13554
  if (visualElement && isMounted.current) {
13218
13555
  visualElement.update(props, presenceContext);
13219
13556
  }
13220
13557
  });
13221
13558
  const optimisedAppearId = props[optimizedAppearDataAttribute];
13222
- const wantsHandoff = useRef11(Boolean(optimisedAppearId) && !((_a = window.MotionHandoffIsComplete) == null ? void 0 : _a.call(window, optimisedAppearId)) && ((_b = window.MotionHasOptimisedAnimation) == null ? void 0 : _b.call(window, optimisedAppearId)));
13559
+ const wantsHandoff = useRef12(Boolean(optimisedAppearId) && !((_a = window.MotionHandoffIsComplete) == null ? void 0 : _a.call(window, optimisedAppearId)) && ((_b = window.MotionHasOptimisedAnimation) == null ? void 0 : _b.call(window, optimisedAppearId)));
13223
13560
  useIsomorphicLayoutEffect(() => {
13224
13561
  if (!visualElement)
13225
13562
  return;
@@ -13231,7 +13568,7 @@ function useVisualElement(Component2, visualState, props, createVisualElement, P
13231
13568
  visualElement.animationState.animateChanges();
13232
13569
  }
13233
13570
  });
13234
- useEffect9(() => {
13571
+ useEffect10(() => {
13235
13572
  if (!visualElement)
13236
13573
  return;
13237
13574
  if (!wantsHandoff.current && visualElement.animationState) {
@@ -17296,11 +17633,11 @@ var JobDetailHero2 = ({
17296
17633
  registerThemeVariant("hero-job-detail", "aman", JobDetailHero2);
17297
17634
 
17298
17635
  // src/design_system/sections/job-application-form.aman.tsx
17299
- import React42, { useRef as useRef12, useState as useState21 } from "react";
17636
+ import React46, { useRef as useRef13, useState as useState21 } from "react";
17300
17637
 
17301
17638
  // src/design_system/sections/hero-home.barelux.tsx
17302
17639
  import { Fragment as Fragment6, useState as useState22 } from "react";
17303
- import React43 from "react";
17640
+ import React47 from "react";
17304
17641
  var HeroHome3 = ({
17305
17642
  websitePhotos,
17306
17643
  companyInformation,
@@ -17319,7 +17656,7 @@ var HeroHome3 = ({
17319
17656
  url: ((_b = websitePhotos == null ? void 0 : websitePhotos.hero) == null ? void 0 : _b.url) || "",
17320
17657
  alt: ((_c = websitePhotos == null ? void 0 : websitePhotos.hero) == null ? void 0 : _c.alt) || ""
17321
17658
  };
17322
- return /* @__PURE__ */ React43.createElement(Fragment6, null, /* @__PURE__ */ React43.createElement("section", { className: "relative w-full h-[60vh] min-h-[500px] max-h-[550px]" }, /* @__PURE__ */ React43.createElement("div", { className: "absolute inset-0" }, /* @__PURE__ */ React43.createElement(
17659
+ return /* @__PURE__ */ React47.createElement(Fragment6, null, /* @__PURE__ */ React47.createElement("section", { className: "relative w-full h-[60vh] min-h-[500px] max-h-[550px]" }, /* @__PURE__ */ React47.createElement("div", { className: "absolute inset-0" }, /* @__PURE__ */ React47.createElement(
17323
17660
  PhotoWithFallback2,
17324
17661
  {
17325
17662
  photoUrl: heroImage.url,
@@ -17327,7 +17664,7 @@ var HeroHome3 = ({
17327
17664
  fallbackId: "hero-home-barelux",
17328
17665
  className: "w-full h-full object-cover"
17329
17666
  }
17330
- )), /* @__PURE__ */ React43.createElement("div", { className: "absolute inset-0 bg-black/50" }), /* @__PURE__ */ React43.createElement("div", { className: "relative h-full flex items-center" }, /* @__PURE__ */ React43.createElement("div", { className: "mx-auto max-w-7xl px-4 md:px-8 w-full" }, /* @__PURE__ */ React43.createElement("div", { className: "max-w-2xl" }, tagline && /* @__PURE__ */ React43.createElement("p", { className: "font-body text-sm font-semibold uppercase tracking-widest text-white mb-5" }, tagline), /* @__PURE__ */ React43.createElement("h1", { className: "font-display text-display-xl font-normal leading-none text-white mb-4" }, headline), /* @__PURE__ */ React43.createElement("p", { className: "font-body text-base md:text-lg leading-normal text-white mb-6 max-w-xl" }, subhead), ctaText && /* @__PURE__ */ React43.createElement(
17667
+ )), /* @__PURE__ */ React47.createElement("div", { className: "absolute inset-0 bg-black/50" }), /* @__PURE__ */ React47.createElement("div", { className: "relative h-full flex items-center" }, /* @__PURE__ */ React47.createElement("div", { className: "mx-auto max-w-7xl px-4 md:px-8 w-full" }, /* @__PURE__ */ React47.createElement("div", { className: "max-w-2xl" }, tagline && /* @__PURE__ */ React47.createElement("p", { className: "font-body text-sm font-semibold uppercase tracking-widest text-white mb-5" }, tagline), /* @__PURE__ */ React47.createElement("h1", { className: "font-display text-display-xl font-normal leading-none text-white mb-4" }, headline), /* @__PURE__ */ React47.createElement("p", { className: "font-body text-base md:text-lg leading-normal text-white mb-6 max-w-xl" }, subhead), ctaText && /* @__PURE__ */ React47.createElement(
17331
17668
  Button2,
17332
17669
  {
17333
17670
  href: effectiveCtaHref,
@@ -17337,7 +17674,7 @@ var HeroHome3 = ({
17337
17674
  size: "md"
17338
17675
  },
17339
17676
  ctaText
17340
- )))), videoUrl && /* @__PURE__ */ React43.createElement("div", { className: "absolute inset-0 flex items-center justify-center" }, /* @__PURE__ */ React43.createElement(VideoPlayButton, { onClick: () => setShowVideo(true) }))), videoUrl && /* @__PURE__ */ React43.createElement(
17677
+ )))), videoUrl && /* @__PURE__ */ React47.createElement("div", { className: "absolute inset-0 flex items-center justify-center" }, /* @__PURE__ */ React47.createElement(VideoPlayButton, { onClick: () => setShowVideo(true) }))), videoUrl && /* @__PURE__ */ React47.createElement(
17341
17678
  VideoModal,
17342
17679
  {
17343
17680
  isOpen: showVideo,
@@ -17349,7 +17686,7 @@ var HeroHome3 = ({
17349
17686
  registerThemeVariant("hero-home", "barelux", HeroHome3);
17350
17687
 
17351
17688
  // src/design_system/sections/header-navigation.barelux.tsx
17352
- import React44, { useState as useState23, useRef as useRef13, useCallback as useCallback8 } from "react";
17689
+ import React48, { useState as useState23, useRef as useRef14, useCallback as useCallback8 } from "react";
17353
17690
  import Link8 from "next/link";
17354
17691
  import Image12 from "next/image";
17355
17692
  var MAX_DROPDOWN_ITEMS2 = 6;
@@ -17362,11 +17699,11 @@ function HeaderNavigation3({
17362
17699
  companyInformation,
17363
17700
  websitePhotos
17364
17701
  }) {
17365
- var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r;
17702
+ var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t;
17366
17703
  const [activeDropdown, setActiveDropdown] = useState23(null);
17367
17704
  const [isMobileMenuOpen, setIsMobileMenuOpen] = useState23(false);
17368
- const closeTimeoutRef = useRef13(null);
17369
- React44.useEffect(() => {
17705
+ const closeTimeoutRef = useRef14(null);
17706
+ React48.useEffect(() => {
17370
17707
  return () => {
17371
17708
  if (closeTimeoutRef.current) {
17372
17709
  clearTimeout(closeTimeoutRef.current);
@@ -17422,7 +17759,7 @@ function HeaderNavigation3({
17422
17759
  viewAllLabel: ""
17423
17760
  };
17424
17761
  };
17425
- return /* @__PURE__ */ React44.createElement(React44.Fragment, null, /* @__PURE__ */ React44.createElement("header", { className: "hidden md:block sticky top-0 z-50 bg-primary border-b border-primary" }, /* @__PURE__ */ React44.createElement("div", { className: "mx-auto max-w-7xl px-4 md:px-8" }, /* @__PURE__ */ React44.createElement("div", { className: "flex items-center justify-between py-4" }, /* @__PURE__ */ React44.createElement(Link8, { href: "/", className: "flex items-center flex-shrink-0" }, logoUrl ? /* @__PURE__ */ React44.createElement(
17762
+ return /* @__PURE__ */ React48.createElement(React48.Fragment, null, /* @__PURE__ */ React48.createElement("header", { className: "hidden md:block sticky top-0 z-50 bg-primary border-b border-primary" }, /* @__PURE__ */ React48.createElement("div", { className: "mx-auto max-w-7xl px-4 md:px-8" }, /* @__PURE__ */ React48.createElement("div", { className: "flex items-center justify-between py-4" }, /* @__PURE__ */ React48.createElement(Link8, { href: ((_d = props == null ? void 0 : props.logo) == null ? void 0 : _d.href) || "/", className: "flex items-center flex-shrink-0" }, logoUrl ? /* @__PURE__ */ React48.createElement(
17426
17763
  Image12,
17427
17764
  {
17428
17765
  src: logoUrl,
@@ -17431,7 +17768,7 @@ function HeaderNavigation3({
17431
17768
  width: 120,
17432
17769
  height: 40
17433
17770
  }
17434
- ) : /* @__PURE__ */ React44.createElement("span", { className: "font-display text-xl font-normal text-fg-primary" }, companyName)), /* @__PURE__ */ React44.createElement("nav", { className: "flex items-center gap-8 flex-1 ml-12" }, navigation.map((item, i) => /* @__PURE__ */ React44.createElement(
17771
+ ) : /* @__PURE__ */ React48.createElement("span", { className: "font-display text-xl font-normal text-fg-primary" }, companyName)), /* @__PURE__ */ React48.createElement("nav", { className: "flex items-center gap-8 flex-1 ml-12" }, navigation.map((item, i) => /* @__PURE__ */ React48.createElement(
17435
17772
  "div",
17436
17773
  {
17437
17774
  key: i,
@@ -17439,16 +17776,16 @@ function HeaderNavigation3({
17439
17776
  onMouseEnter: () => handleMouseEnter(item),
17440
17777
  onMouseLeave: handleMouseLeave
17441
17778
  },
17442
- /* @__PURE__ */ React44.createElement(
17779
+ /* @__PURE__ */ React48.createElement(
17443
17780
  Link8,
17444
17781
  {
17445
17782
  href: item.href,
17446
17783
  className: "font-body text-md font-normal text-fg-primary hover:text-brand-accent transition-colors duration-200 flex items-center gap-1 whitespace-nowrap"
17447
17784
  },
17448
17785
  item.label,
17449
- item.children && item.children.length > 0 && /* @__PURE__ */ React44.createElement("svg", { className: "w-4 h-4", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor" }, /* @__PURE__ */ React44.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M19 9l-7 7-7-7" }))
17786
+ item.children && item.children.length > 0 && /* @__PURE__ */ React48.createElement("svg", { className: "w-4 h-4", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor" }, /* @__PURE__ */ React48.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M19 9l-7 7-7-7" }))
17450
17787
  ),
17451
- item.children && item.children.length > 0 && activeDropdown === item.label && /* @__PURE__ */ React44.createElement(
17788
+ item.children && item.children.length > 0 && activeDropdown === item.label && /* @__PURE__ */ React48.createElement(
17452
17789
  "div",
17453
17790
  {
17454
17791
  className: "absolute left-0 top-full mt-2 w-64 py-3 bg-white border border-secondary rounded-lg shadow-lg z-50",
@@ -17457,7 +17794,7 @@ function HeaderNavigation3({
17457
17794
  },
17458
17795
  (() => {
17459
17796
  const { items, showViewAll, viewAllHref, viewAllLabel } = getDropdownItems(item);
17460
- return /* @__PURE__ */ React44.createElement(React44.Fragment, null, items.map((link, j) => /* @__PURE__ */ React44.createElement(
17797
+ return /* @__PURE__ */ React48.createElement(React48.Fragment, null, items.map((link, j) => /* @__PURE__ */ React48.createElement(
17461
17798
  Link8,
17462
17799
  {
17463
17800
  key: j,
@@ -17465,7 +17802,7 @@ function HeaderNavigation3({
17465
17802
  className: "block font-body text-md text-fg-primary hover:text-brand-accent hover:bg-secondary transition-colors px-4 py-2"
17466
17803
  },
17467
17804
  link.label
17468
- )), showViewAll && /* @__PURE__ */ React44.createElement(
17805
+ )), showViewAll && /* @__PURE__ */ React48.createElement(
17469
17806
  Link8,
17470
17807
  {
17471
17808
  href: viewAllHref,
@@ -17476,7 +17813,7 @@ function HeaderNavigation3({
17476
17813
  ));
17477
17814
  })()
17478
17815
  )
17479
- ))), /* @__PURE__ */ React44.createElement("div", { className: "flex items-center gap-3 flex-shrink-0 ml-4" }, ((_d = props == null ? void 0 : props.cta_button) == null ? void 0 : _d.secondary_label) && ctaUrls.hasSecondary && /* @__PURE__ */ React44.createElement(
17816
+ ))), /* @__PURE__ */ React48.createElement("div", { className: "flex items-center gap-3 flex-shrink-0 ml-4" }, ((_e = props == null ? void 0 : props.cta_button) == null ? void 0 : _e.secondary_label) && ctaUrls.hasSecondary && /* @__PURE__ */ React48.createElement(
17480
17817
  Button2,
17481
17818
  {
17482
17819
  href: ctaUrls.secondaryHref,
@@ -17486,25 +17823,25 @@ function HeaderNavigation3({
17486
17823
  size: "sm"
17487
17824
  },
17488
17825
  props.cta_button.label
17489
- ), /* @__PURE__ */ React44.createElement(
17826
+ ), /* @__PURE__ */ React48.createElement(
17490
17827
  Button2,
17491
17828
  {
17492
17829
  href: ctaUrls.primaryHref,
17493
- target: (_f = (_e = props == null ? void 0 : props.cta_button) == null ? void 0 : _e.target) != null ? _f : isExternalCtaUrl(ctaUrls.primaryHref) ? "_blank" : void 0,
17494
- rel: ((_g = props == null ? void 0 : props.cta_button) == null ? void 0 : _g.target) === "_blank" || isExternalCtaUrl(ctaUrls.primaryHref) ? "noopener noreferrer" : void 0,
17830
+ target: (_g = (_f = props == null ? void 0 : props.cta_button) == null ? void 0 : _f.target) != null ? _g : isExternalCtaUrl(ctaUrls.primaryHref) ? "_blank" : void 0,
17831
+ rel: ((_h = props == null ? void 0 : props.cta_button) == null ? void 0 : _h.target) === "_blank" || isExternalCtaUrl(ctaUrls.primaryHref) ? "noopener noreferrer" : void 0,
17495
17832
  color: "primary",
17496
17833
  size: "sm"
17497
17834
  },
17498
- ((_h = props == null ? void 0 : props.cta_button) == null ? void 0 : _h.secondary_label) && ctaUrls.hasSecondary ? props.cta_button.secondary_label : ((_i = props == null ? void 0 : props.cta_button) == null ? void 0 : _i.label) || ""
17499
- ))))), /* @__PURE__ */ React44.createElement("header", { className: "md:hidden sticky top-0 z-50 bg-primary border-b border-secondary" }, /* @__PURE__ */ React44.createElement("div", { className: "flex items-center justify-between px-4 py-4" }, /* @__PURE__ */ React44.createElement(
17835
+ ((_i = props == null ? void 0 : props.cta_button) == null ? void 0 : _i.secondary_label) && ctaUrls.hasSecondary ? props.cta_button.secondary_label : ((_j = props == null ? void 0 : props.cta_button) == null ? void 0 : _j.label) || ""
17836
+ ))))), /* @__PURE__ */ React48.createElement("header", { className: "md:hidden sticky top-0 z-50 bg-primary border-b border-secondary" }, /* @__PURE__ */ React48.createElement("div", { className: "flex items-center justify-between px-4 py-4" }, /* @__PURE__ */ React48.createElement(
17500
17837
  "button",
17501
17838
  {
17502
17839
  onClick: () => setIsMobileMenuOpen(true),
17503
17840
  className: "text-fg-primary",
17504
17841
  "aria-label": "Open menu"
17505
17842
  },
17506
- /* @__PURE__ */ React44.createElement("svg", { className: "w-6 h-6", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React44.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M4 6h16M4 12h16M4 18h16" }))
17507
- ), /* @__PURE__ */ React44.createElement(Link8, { href: "/", className: "flex items-center" }, logoUrl ? /* @__PURE__ */ React44.createElement(
17843
+ /* @__PURE__ */ React48.createElement("svg", { className: "w-6 h-6", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React48.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M4 6h16M4 12h16M4 18h16" }))
17844
+ ), /* @__PURE__ */ React48.createElement(Link8, { href: ((_k = props == null ? void 0 : props.logo) == null ? void 0 : _k.href) || "/", className: "flex items-center" }, logoUrl ? /* @__PURE__ */ React48.createElement(
17508
17845
  Image12,
17509
17846
  {
17510
17847
  src: logoUrl,
@@ -17513,15 +17850,15 @@ function HeaderNavigation3({
17513
17850
  width: 120,
17514
17851
  height: 32
17515
17852
  }
17516
- ) : /* @__PURE__ */ React44.createElement("span", { className: "font-display text-lg font-normal text-fg-primary" }, companyName)), /* @__PURE__ */ React44.createElement("div", { className: "w-6" }))), isMobileMenuOpen && /* @__PURE__ */ React44.createElement("div", { className: "fixed inset-0 bg-white z-50 md:hidden" }, /* @__PURE__ */ React44.createElement("div", { className: "flex flex-col h-full" }, /* @__PURE__ */ React44.createElement("div", { className: "flex items-center justify-between px-4 py-4 border-b border-secondary" }, /* @__PURE__ */ React44.createElement(
17853
+ ) : /* @__PURE__ */ React48.createElement("span", { className: "font-display text-lg font-normal text-fg-primary" }, companyName)), /* @__PURE__ */ React48.createElement("div", { className: "w-6" }))), isMobileMenuOpen && /* @__PURE__ */ React48.createElement("div", { className: "fixed inset-0 bg-white z-50 md:hidden" }, /* @__PURE__ */ React48.createElement("div", { className: "flex flex-col h-full" }, /* @__PURE__ */ React48.createElement("div", { className: "flex items-center justify-between px-4 py-4 border-b border-secondary" }, /* @__PURE__ */ React48.createElement(
17517
17854
  "button",
17518
17855
  {
17519
17856
  onClick: () => setIsMobileMenuOpen(false),
17520
17857
  className: "text-fg-primary",
17521
17858
  "aria-label": "Close menu"
17522
17859
  },
17523
- /* @__PURE__ */ React44.createElement("svg", { className: "w-6 h-6", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React44.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M6 18L18 6M6 6l12 12" }))
17524
- ), /* @__PURE__ */ React44.createElement("div", { className: "flex items-center" }, logoUrl ? /* @__PURE__ */ React44.createElement(
17860
+ /* @__PURE__ */ React48.createElement("svg", { className: "w-6 h-6", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React48.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M6 18L18 6M6 6l12 12" }))
17861
+ ), /* @__PURE__ */ React48.createElement("div", { className: "flex items-center" }, logoUrl ? /* @__PURE__ */ React48.createElement(
17525
17862
  Image12,
17526
17863
  {
17527
17864
  src: logoUrl,
@@ -17530,9 +17867,9 @@ function HeaderNavigation3({
17530
17867
  width: 120,
17531
17868
  height: 32
17532
17869
  }
17533
- ) : /* @__PURE__ */ React44.createElement("span", { className: "font-display text-lg font-normal text-fg-primary" }, companyName)), /* @__PURE__ */ React44.createElement("div", { className: "w-6" })), /* @__PURE__ */ React44.createElement("nav", { className: "flex-1 overflow-y-auto px-4 py-8" }, /* @__PURE__ */ React44.createElement("ul", { className: "space-y-4" }, navigation.map((item, i) => {
17870
+ ) : /* @__PURE__ */ React48.createElement("span", { className: "font-display text-lg font-normal text-fg-primary" }, companyName)), /* @__PURE__ */ React48.createElement("div", { className: "w-6" })), /* @__PURE__ */ React48.createElement("nav", { className: "flex-1 overflow-y-auto px-4 py-8" }, /* @__PURE__ */ React48.createElement("ul", { className: "space-y-4" }, navigation.map((item, i) => {
17534
17871
  const { items } = getDropdownItems(item);
17535
- return /* @__PURE__ */ React44.createElement("li", { key: i }, /* @__PURE__ */ React44.createElement(
17872
+ return /* @__PURE__ */ React48.createElement("li", { key: i }, /* @__PURE__ */ React48.createElement(
17536
17873
  Link8,
17537
17874
  {
17538
17875
  href: item.href,
@@ -17540,7 +17877,7 @@ function HeaderNavigation3({
17540
17877
  onClick: () => setIsMobileMenuOpen(false)
17541
17878
  },
17542
17879
  item.label
17543
- ), items.length > 0 && /* @__PURE__ */ React44.createElement("ul", { className: "ml-4 mt-2 space-y-2" }, items.map((link, j) => /* @__PURE__ */ React44.createElement("li", { key: j }, /* @__PURE__ */ React44.createElement(
17880
+ ), items.length > 0 && /* @__PURE__ */ React48.createElement("ul", { className: "ml-4 mt-2 space-y-2" }, items.map((link, j) => /* @__PURE__ */ React48.createElement("li", { key: j }, /* @__PURE__ */ React48.createElement(
17544
17881
  Link8,
17545
17882
  {
17546
17883
  href: link.href,
@@ -17549,7 +17886,7 @@ function HeaderNavigation3({
17549
17886
  },
17550
17887
  link.label
17551
17888
  )))));
17552
- }))), /* @__PURE__ */ React44.createElement("div", { className: "border-t border-secondary px-4 py-6" }, /* @__PURE__ */ React44.createElement("div", { className: "flex flex-col gap-3" }, ((_j = props == null ? void 0 : props.cta_button) == null ? void 0 : _j.secondary_label) && ctaUrls.hasSecondary && /* @__PURE__ */ React44.createElement(
17889
+ }))), /* @__PURE__ */ React48.createElement("div", { className: "border-t border-secondary px-4 py-6" }, /* @__PURE__ */ React48.createElement("div", { className: "flex flex-col gap-3" }, ((_l = props == null ? void 0 : props.cta_button) == null ? void 0 : _l.secondary_label) && ctaUrls.hasSecondary && /* @__PURE__ */ React48.createElement(
17553
17890
  Button2,
17554
17891
  {
17555
17892
  href: ctaUrls.secondaryHref,
@@ -17559,7 +17896,7 @@ function HeaderNavigation3({
17559
17896
  onClick: () => setIsMobileMenuOpen(false)
17560
17897
  },
17561
17898
  props.cta_button.secondary_label
17562
- ), /* @__PURE__ */ React44.createElement(
17899
+ ), /* @__PURE__ */ React48.createElement(
17563
17900
  Button2,
17564
17901
  {
17565
17902
  href: ctaUrls.primaryHref,
@@ -17568,8 +17905,8 @@ function HeaderNavigation3({
17568
17905
  className: "w-full",
17569
17906
  onClick: () => setIsMobileMenuOpen(false)
17570
17907
  },
17571
- ((_k = props == null ? void 0 : props.cta_button) == null ? void 0 : _k.label) || ""
17572
- ))))), /* @__PURE__ */ React44.createElement("div", { className: "fixed bottom-0 left-0 right-0 z-40 md:hidden bg-fg-primary" }, /* @__PURE__ */ React44.createElement("div", { className: "flex gap-0" }, ((_l = props == null ? void 0 : props.cta_button) == null ? void 0 : _l.secondary_label) && ctaUrls.hasSecondary && /* @__PURE__ */ React44.createElement(
17908
+ ((_m = props == null ? void 0 : props.cta_button) == null ? void 0 : _m.label) || ""
17909
+ ))))), /* @__PURE__ */ React48.createElement("div", { className: "fixed bottom-0 left-0 right-0 z-40 md:hidden bg-fg-primary" }, /* @__PURE__ */ React48.createElement("div", { className: "flex gap-0" }, ((_n = props == null ? void 0 : props.cta_button) == null ? void 0 : _n.secondary_label) && ctaUrls.hasSecondary && /* @__PURE__ */ React48.createElement(
17573
17910
  Button2,
17574
17911
  {
17575
17912
  href: ctaUrls.secondaryHref,
@@ -17579,38 +17916,38 @@ function HeaderNavigation3({
17579
17916
  className: "flex-1 font-body text-sm uppercase tracking-wide py-4 rounded-none border-r border-white/20"
17580
17917
  },
17581
17918
  props.cta_button.label
17582
- ), /* @__PURE__ */ React44.createElement(
17919
+ ), /* @__PURE__ */ React48.createElement(
17583
17920
  Button2,
17584
17921
  {
17585
17922
  href: ctaUrls.primaryHref,
17586
- target: (_n = (_m = props == null ? void 0 : props.cta_button) == null ? void 0 : _m.target) != null ? _n : isExternalCtaUrl(ctaUrls.primaryHref) ? "_blank" : void 0,
17587
- rel: ((_o = props == null ? void 0 : props.cta_button) == null ? void 0 : _o.target) === "_blank" || isExternalCtaUrl(ctaUrls.primaryHref) ? "noopener noreferrer" : void 0,
17923
+ target: (_p = (_o = props == null ? void 0 : props.cta_button) == null ? void 0 : _o.target) != null ? _p : isExternalCtaUrl(ctaUrls.primaryHref) ? "_blank" : void 0,
17924
+ rel: ((_q = props == null ? void 0 : props.cta_button) == null ? void 0 : _q.target) === "_blank" || isExternalCtaUrl(ctaUrls.primaryHref) ? "noopener noreferrer" : void 0,
17588
17925
  color: "primary",
17589
- className: `${((_p = props == null ? void 0 : props.cta_button) == null ? void 0 : _p.secondary_label) && ctaUrls.hasSecondary ? "flex-1" : "w-full"} font-body text-sm uppercase tracking-wide py-4 rounded-none`
17926
+ className: `${((_r = props == null ? void 0 : props.cta_button) == null ? void 0 : _r.secondary_label) && ctaUrls.hasSecondary ? "flex-1" : "w-full"} font-body text-sm uppercase tracking-wide py-4 rounded-none`
17590
17927
  },
17591
- ((_q = props == null ? void 0 : props.cta_button) == null ? void 0 : _q.secondary_label) && ctaUrls.hasSecondary ? props.cta_button.secondary_label : ((_r = props == null ? void 0 : props.cta_button) == null ? void 0 : _r.label) || "Contact"
17928
+ ((_s = props == null ? void 0 : props.cta_button) == null ? void 0 : _s.secondary_label) && ctaUrls.hasSecondary ? props.cta_button.secondary_label : ((_t = props == null ? void 0 : props.cta_button) == null ? void 0 : _t.label) || "Contact"
17592
17929
  ))));
17593
17930
  }
17594
17931
  registerThemeVariant("header-navigation", "barelux", HeaderNavigation3);
17595
17932
 
17596
17933
  // src/design_system/sections/services-home.barelux.tsx
17597
- import React45 from "react";
17934
+ import React49 from "react";
17598
17935
  var ServicesHome3 = ({
17599
17936
  services = [],
17600
17937
  title = "",
17601
17938
  subtitle = ""
17602
17939
  }) => {
17603
17940
  const displayServices = services;
17604
- return /* @__PURE__ */ React45.createElement("section", { className: "py-16 md:py-20 lg:py-24 bg-secondary" }, /* @__PURE__ */ React45.createElement("div", { className: "mx-auto max-w-7xl px-4 md:px-8" }, /* @__PURE__ */ React45.createElement("div", { className: "mx-auto max-w-3xl text-center mb-12" }, /* @__PURE__ */ React45.createElement("h2", { className: "font-display text-display-md font-normal text-fg-primary mb-4" }, title), /* @__PURE__ */ React45.createElement("p", { className: "font-body text-base text-secondary leading-normal" }, subtitle)), /* @__PURE__ */ React45.createElement("div", { className: "flex flex-wrap justify-center gap-6" }, displayServices.map((service) => {
17941
+ return /* @__PURE__ */ React49.createElement("section", { className: "py-16 md:py-20 lg:py-24 bg-secondary" }, /* @__PURE__ */ React49.createElement("div", { className: "mx-auto max-w-7xl px-4 md:px-8" }, /* @__PURE__ */ React49.createElement("div", { className: "mx-auto max-w-3xl text-center mb-12" }, /* @__PURE__ */ React49.createElement("h2", { className: "font-display text-display-md font-normal text-fg-primary mb-4" }, title), /* @__PURE__ */ React49.createElement("p", { className: "font-body text-base text-secondary leading-normal" }, subtitle)), /* @__PURE__ */ React49.createElement("div", { className: "flex flex-wrap justify-center gap-6" }, displayServices.map((service) => {
17605
17942
  var _a, _b, _c, _d, _e, _f, _g, _h, _i;
17606
- return /* @__PURE__ */ React45.createElement(
17943
+ return /* @__PURE__ */ React49.createElement(
17607
17944
  "a",
17608
17945
  {
17609
17946
  key: service.id,
17610
17947
  href: `/services/${service.slug}`,
17611
17948
  className: "group block bg-white rounded-2xl overflow-hidden shadow-sm hover:shadow-md transition-shadow duration-300 w-full md:w-[calc(50%-0.75rem)] lg:w-[calc(25%-1.125rem)] flex flex-col"
17612
17949
  },
17613
- /* @__PURE__ */ React45.createElement("div", { className: "relative w-full h-56 overflow-hidden flex-shrink-0" }, /* @__PURE__ */ React45.createElement(
17950
+ /* @__PURE__ */ React49.createElement("div", { className: "relative w-full h-56 overflow-hidden flex-shrink-0" }, /* @__PURE__ */ React49.createElement(
17614
17951
  PhotoWithFallback2,
17615
17952
  {
17616
17953
  photoUrl: ((_c = (_b = (_a = service.photo_attachments) == null ? void 0 : _a[0]) == null ? void 0 : _b.photo) == null ? void 0 : _c.large_url) || ((_f = (_e = (_d = service.photo_attachments) == null ? void 0 : _d[0]) == null ? void 0 : _e.photo) == null ? void 0 : _f.medium_url) || "",
@@ -17619,7 +17956,7 @@ var ServicesHome3 = ({
17619
17956
  className: "w-full h-full object-cover transition-transform duration-300 group-hover:scale-105"
17620
17957
  }
17621
17958
  )),
17622
- /* @__PURE__ */ React45.createElement("div", { className: "p-6" }, /* @__PURE__ */ React45.createElement("h3", { className: "font-body text-base font-semibold uppercase tracking-wide text-fg-primary mb-3 leading-tight" }, service.name), service.summary && /* @__PURE__ */ React45.createElement("p", { className: "font-body text-sm text-tertiary leading-relaxed" }, service.summary))
17959
+ /* @__PURE__ */ React49.createElement("div", { className: "p-6" }, /* @__PURE__ */ React49.createElement("h3", { className: "font-body text-base font-semibold uppercase tracking-wide text-fg-primary mb-3 leading-tight" }, service.name), service.summary && /* @__PURE__ */ React49.createElement("p", { className: "font-body text-sm text-tertiary leading-relaxed" }, service.summary))
17623
17960
  );
17624
17961
  }))));
17625
17962
  };
@@ -17669,7 +18006,7 @@ var AboutHome3 = ({
17669
18006
  registerThemeVariant("about-home", "barelux", AboutHome3);
17670
18007
 
17671
18008
  // src/design_system/sections/testimonials-home.barelux.tsx
17672
- import React46 from "react";
18009
+ import React50 from "react";
17673
18010
  import { ChevronLeft as ChevronLeft7, ChevronRight as ChevronRight2 } from "@untitledui/icons";
17674
18011
  var TestimonialsHome3 = ({
17675
18012
  testimonials: testimonialsData,
@@ -17680,7 +18017,7 @@ var TestimonialsHome3 = ({
17680
18017
  emptyMessage = "No testimonials available"
17681
18018
  }) => {
17682
18019
  const testimonials = Array.isArray(testimonialsData) ? testimonialsData : [];
17683
- return /* @__PURE__ */ React46.createElement("section", { className: "py-16 md:py-20 lg:py-24 bg-secondary" }, /* @__PURE__ */ React46.createElement("div", { className: "mx-auto max-w-7xl px-4 md:px-8" }, /* @__PURE__ */ React46.createElement("div", { className: "mx-auto max-w-3xl text-center mb-12 md:mb-16" }, /* @__PURE__ */ React46.createElement("h2", { className: "font-display text-4xl font-medium text-fg-primary md:text-5xl mb-4" }, title), /* @__PURE__ */ React46.createElement("p", { className: "font-body text-lg text-secondary leading-normal" }, subtitle)), testimonials.length > 0 ? /* @__PURE__ */ React46.createElement(Carousel.Root, { opts: { align: "start", loop: true } }, /* @__PURE__ */ React46.createElement("div", { className: "flex items-center justify-end mb-8" }, /* @__PURE__ */ React46.createElement("div", { className: "flex gap-2" }, /* @__PURE__ */ React46.createElement(Carousel.PrevTrigger, { className: "rounded-full p-2 border border-secondary hover:bg-primary_hover transition-colors disabled:opacity-30 disabled:cursor-not-allowed" }, /* @__PURE__ */ React46.createElement(ChevronLeft7, { className: "w-6 h-6 text-fg-primary" })), /* @__PURE__ */ React46.createElement(Carousel.NextTrigger, { className: "rounded-full p-2 border border-secondary hover:bg-primary_hover transition-colors disabled:opacity-30 disabled:cursor-not-allowed" }, /* @__PURE__ */ React46.createElement(ChevronRight2, { className: "w-6 h-6 text-fg-primary" })))), /* @__PURE__ */ React46.createElement(Carousel.Content, { className: "-ml-4" }, testimonials.map((testimonial, i) => {
18020
+ return /* @__PURE__ */ React50.createElement("section", { className: "py-16 md:py-20 lg:py-24 bg-secondary" }, /* @__PURE__ */ React50.createElement("div", { className: "mx-auto max-w-7xl px-4 md:px-8" }, /* @__PURE__ */ React50.createElement("div", { className: "mx-auto max-w-3xl text-center mb-12 md:mb-16" }, /* @__PURE__ */ React50.createElement("h2", { className: "font-display text-4xl font-medium text-fg-primary md:text-5xl mb-4" }, title), /* @__PURE__ */ React50.createElement("p", { className: "font-body text-lg text-secondary leading-normal" }, subtitle)), testimonials.length > 0 ? /* @__PURE__ */ React50.createElement(Carousel.Root, { opts: { align: "start", loop: true } }, /* @__PURE__ */ React50.createElement("div", { className: "flex items-center justify-end mb-8" }, /* @__PURE__ */ React50.createElement("div", { className: "flex gap-2" }, /* @__PURE__ */ React50.createElement(Carousel.PrevTrigger, { className: "rounded-full p-2 border border-secondary hover:bg-primary_hover transition-colors disabled:opacity-30 disabled:cursor-not-allowed" }, /* @__PURE__ */ React50.createElement(ChevronLeft7, { className: "w-6 h-6 text-fg-primary" })), /* @__PURE__ */ React50.createElement(Carousel.NextTrigger, { className: "rounded-full p-2 border border-secondary hover:bg-primary_hover transition-colors disabled:opacity-30 disabled:cursor-not-allowed" }, /* @__PURE__ */ React50.createElement(ChevronRight2, { className: "w-6 h-6 text-fg-primary" })))), /* @__PURE__ */ React50.createElement(Carousel.Content, { className: "-ml-4" }, testimonials.map((testimonial, i) => {
17684
18021
  var _a;
17685
18022
  const quote = ((_a = testimonial.content_markdown) == null ? void 0 : _a.replace(/[#*\[\]()]/g, "").trim()) || "";
17686
18023
  const reviewerName = testimonial.reviewer_name || "";
@@ -17688,7 +18025,7 @@ var TestimonialsHome3 = ({
17688
18025
  const avatarUrl = getAvatarUrl(testimonial.photo_attachments, testimonial.id, reviewerName);
17689
18026
  const rating = testimonial.rating || 5;
17690
18027
  const isVerified = true;
17691
- return /* @__PURE__ */ React46.createElement(Carousel.Item, { key: testimonial.id || i, className: "pl-4 md:basis-1/2 lg:basis-1/3" }, /* @__PURE__ */ React46.createElement("div", { className: "bg-white rounded-2xl p-8 flex flex-col shadow-sm", style: { minHeight: "400px" } }, /* @__PURE__ */ React46.createElement("div", { className: "flex gap-1 mb-6" }, Array.from({ length: 5 }).map((_, starIdx) => /* @__PURE__ */ React46.createElement(
18028
+ return /* @__PURE__ */ React50.createElement(Carousel.Item, { key: testimonial.id || i, className: "pl-4 md:basis-1/2 lg:basis-1/3" }, /* @__PURE__ */ React50.createElement("div", { className: "bg-white rounded-2xl p-8 flex flex-col shadow-sm", style: { minHeight: "400px" } }, /* @__PURE__ */ React50.createElement("div", { className: "flex gap-1 mb-6" }, Array.from({ length: 5 }).map((_, starIdx) => /* @__PURE__ */ React50.createElement(
17692
18029
  "svg",
17693
18030
  {
17694
18031
  key: starIdx,
@@ -17700,8 +18037,8 @@ var TestimonialsHome3 = ({
17700
18037
  strokeWidth: "2",
17701
18038
  viewBox: "0 0 24 24"
17702
18039
  },
17703
- /* @__PURE__ */ React46.createElement("path", { d: "M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z" })
17704
- ))), /* @__PURE__ */ React46.createElement("p", { className: "font-body text-base leading-relaxed text-tertiary mb-6 flex-grow" }, '"', quote, '"'), /* @__PURE__ */ React46.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ React46.createElement("div", { className: "w-12 h-12 rounded-full overflow-hidden flex-shrink-0" }, /* @__PURE__ */ React46.createElement(
18040
+ /* @__PURE__ */ React50.createElement("path", { d: "M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z" })
18041
+ ))), /* @__PURE__ */ React50.createElement("p", { className: "font-body text-base leading-relaxed text-tertiary mb-6 flex-grow" }, '"', quote, '"'), /* @__PURE__ */ React50.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ React50.createElement("div", { className: "w-12 h-12 rounded-full overflow-hidden flex-shrink-0" }, /* @__PURE__ */ React50.createElement(
17705
18042
  PhotoWithFallback2,
17706
18043
  {
17707
18044
  photoUrl: avatarUrl,
@@ -17709,8 +18046,8 @@ var TestimonialsHome3 = ({
17709
18046
  fallbackId: testimonial.id || i,
17710
18047
  className: "w-full h-full object-cover"
17711
18048
  }
17712
- )), /* @__PURE__ */ React46.createElement("div", { className: "flex-1" }, /* @__PURE__ */ React46.createElement("div", { className: "flex items-center gap-1.5" }, /* @__PURE__ */ React46.createElement("p", { className: "font-body text-sm font-medium text-fg-primary" }, reviewerName), isVerified && /* @__PURE__ */ React46.createElement("svg", { className: "w-4 h-4 text-fg-primary", viewBox: "0 0 20 20", fill: "currentColor" }, /* @__PURE__ */ React46.createElement("path", { fillRule: "evenodd", d: "M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z", clipRule: "evenodd" }))), /* @__PURE__ */ React46.createElement("p", { className: "font-body text-xs", style: { color: "var(--color-text-brand-secondary)" } }, username)))));
17713
- }))) : /* @__PURE__ */ React46.createElement("div", { className: "text-center py-12" }, /* @__PURE__ */ React46.createElement("p", { className: "font-body text-base text-tertiary" }, emptyMessage)), testimonials.length > 0 && viewAllText && /* @__PURE__ */ React46.createElement("div", { className: "mt-12 text-center" }, /* @__PURE__ */ React46.createElement(
18049
+ )), /* @__PURE__ */ React50.createElement("div", { className: "flex-1" }, /* @__PURE__ */ React50.createElement("div", { className: "flex items-center gap-1.5" }, /* @__PURE__ */ React50.createElement("p", { className: "font-body text-sm font-medium text-fg-primary" }, reviewerName), isVerified && /* @__PURE__ */ React50.createElement("svg", { className: "w-4 h-4 text-fg-primary", viewBox: "0 0 20 20", fill: "currentColor" }, /* @__PURE__ */ React50.createElement("path", { fillRule: "evenodd", d: "M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z", clipRule: "evenodd" }))), /* @__PURE__ */ React50.createElement("p", { className: "font-body text-xs", style: { color: "var(--color-text-brand-secondary)" } }, username)))));
18050
+ }))) : /* @__PURE__ */ React50.createElement("div", { className: "text-center py-12" }, /* @__PURE__ */ React50.createElement("p", { className: "font-body text-base text-tertiary" }, emptyMessage)), testimonials.length > 0 && viewAllText && /* @__PURE__ */ React50.createElement("div", { className: "mt-12 text-center" }, /* @__PURE__ */ React50.createElement(
17714
18051
  Button2,
17715
18052
  {
17716
18053
  href: viewAllHref,
@@ -17723,7 +18060,7 @@ var TestimonialsHome3 = ({
17723
18060
  registerThemeVariant("testimonials-home", "barelux", TestimonialsHome3);
17724
18061
 
17725
18062
  // src/design_system/sections/blog-section.barelux.tsx
17726
- import React47 from "react";
18063
+ import React51 from "react";
17727
18064
  import { ChevronLeft as ChevronLeft8, ChevronRight as ChevronRight3 } from "@untitledui/icons";
17728
18065
  var BlogSection3 = ({
17729
18066
  blogPosts: postsData,
@@ -17748,18 +18085,18 @@ var BlogSection3 = ({
17748
18085
  return recentLabel;
17749
18086
  }
17750
18087
  };
17751
- return /* @__PURE__ */ React47.createElement("section", { className: "py-16 md:py-20 lg:py-24 bg-primary" }, /* @__PURE__ */ React47.createElement("div", { className: "mx-auto max-w-7xl px-4 md:px-8" }, /* @__PURE__ */ React47.createElement("div", { className: "mx-auto max-w-3xl text-center mb-12 md:mb-16" }, /* @__PURE__ */ React47.createElement("h2", { className: "font-display text-4xl font-medium text-fg-primary md:text-5xl mb-4" }, title), /* @__PURE__ */ React47.createElement("p", { className: "font-body text-lg text-secondary leading-normal" }, subtitle)), postsArray.length > 0 ? /* @__PURE__ */ React47.createElement(Carousel.Root, { opts: { align: "start", loop: true } }, /* @__PURE__ */ React47.createElement("div", { className: "flex items-center justify-end mb-8" }, /* @__PURE__ */ React47.createElement("div", { className: "flex gap-2" }, /* @__PURE__ */ React47.createElement(Carousel.PrevTrigger, { className: "rounded-full p-2 border border-secondary hover:bg-primary_hover transition-colors disabled:opacity-30 disabled:cursor-not-allowed" }, /* @__PURE__ */ React47.createElement(ChevronLeft8, { className: "w-6 h-6 text-fg-primary" })), /* @__PURE__ */ React47.createElement(Carousel.NextTrigger, { className: "rounded-full p-2 border border-secondary hover:bg-primary_hover transition-colors disabled:opacity-30 disabled:cursor-not-allowed" }, /* @__PURE__ */ React47.createElement(ChevronRight3, { className: "w-6 h-6 text-fg-primary" })))), /* @__PURE__ */ React47.createElement(Carousel.Content, { className: "-ml-4" }, postsArray.map((post) => {
18088
+ return /* @__PURE__ */ React51.createElement("section", { className: "py-16 md:py-20 lg:py-24 bg-primary" }, /* @__PURE__ */ React51.createElement("div", { className: "mx-auto max-w-7xl px-4 md:px-8" }, /* @__PURE__ */ React51.createElement("div", { className: "mx-auto max-w-3xl text-center mb-12 md:mb-16" }, /* @__PURE__ */ React51.createElement("h2", { className: "font-display text-4xl font-medium text-fg-primary md:text-5xl mb-4" }, title), /* @__PURE__ */ React51.createElement("p", { className: "font-body text-lg text-secondary leading-normal" }, subtitle)), postsArray.length > 0 ? /* @__PURE__ */ React51.createElement(Carousel.Root, { opts: { align: "start", loop: true } }, /* @__PURE__ */ React51.createElement("div", { className: "flex items-center justify-end mb-8" }, /* @__PURE__ */ React51.createElement("div", { className: "flex gap-2" }, /* @__PURE__ */ React51.createElement(Carousel.PrevTrigger, { className: "rounded-full p-2 border border-secondary hover:bg-primary_hover transition-colors disabled:opacity-30 disabled:cursor-not-allowed" }, /* @__PURE__ */ React51.createElement(ChevronLeft8, { className: "w-6 h-6 text-fg-primary" })), /* @__PURE__ */ React51.createElement(Carousel.NextTrigger, { className: "rounded-full p-2 border border-secondary hover:bg-primary_hover transition-colors disabled:opacity-30 disabled:cursor-not-allowed" }, /* @__PURE__ */ React51.createElement(ChevronRight3, { className: "w-6 h-6 text-fg-primary" })))), /* @__PURE__ */ React51.createElement(Carousel.Content, { className: "-ml-4" }, postsArray.map((post) => {
17752
18089
  var _a;
17753
18090
  const excerpt = ((_a = post.content_markdown) == null ? void 0 : _a.replace(/[#*\[\]()]/g, "").trim().substring(0, 150)) || "";
17754
- return /* @__PURE__ */ React47.createElement(Carousel.Item, { key: post.id, className: "pl-4 md:basis-1/2 lg:basis-1/3" }, /* @__PURE__ */ React47.createElement("a", { href: `/blog/${post.slug}`, className: "flex flex-col group" }, /* @__PURE__ */ React47.createElement("div", { className: "w-full h-64 mb-6 overflow-hidden rounded-2xl" }, /* @__PURE__ */ React47.createElement(
18091
+ return /* @__PURE__ */ React51.createElement(Carousel.Item, { key: post.id, className: "pl-4 md:basis-1/2 lg:basis-1/3" }, /* @__PURE__ */ React51.createElement("a", { href: `/blog/${post.slug}`, className: "flex flex-col group" }, /* @__PURE__ */ React51.createElement("div", { className: "w-full h-64 mb-6 overflow-hidden rounded-2xl" }, /* @__PURE__ */ React51.createElement(
17755
18092
  PhotoWithFallback2,
17756
18093
  {
17757
18094
  item: post,
17758
18095
  fallbackId: post.id,
17759
18096
  className: "w-full h-full object-cover transition-transform duration-300 group-hover:scale-105"
17760
18097
  }
17761
- )), /* @__PURE__ */ React47.createElement("p", { className: "text-xs font-body font-normal uppercase tracking-widest mb-2", style: { color: "var(--color-text-brand-secondary)" } }, formatDate4(post.published_at)), /* @__PURE__ */ React47.createElement("h3", { className: "font-display text-2xl font-normal text-fg-primary mb-4 group-hover:underline line-clamp-2" }, post.title), excerpt && /* @__PURE__ */ React47.createElement("p", { className: "font-body text-base leading-relaxed text-tertiary mb-4 line-clamp-3" }, excerpt)));
17762
- }))) : /* @__PURE__ */ React47.createElement("div", { className: "text-center py-12" }, /* @__PURE__ */ React47.createElement("p", { className: "font-body text-base text-tertiary" }, emptyMessage)), postsArray.length > 0 && viewAllText && /* @__PURE__ */ React47.createElement("div", { className: "mt-12 text-center" }, /* @__PURE__ */ React47.createElement(
18098
+ )), /* @__PURE__ */ React51.createElement("p", { className: "text-xs font-body font-normal uppercase tracking-widest mb-2", style: { color: "var(--color-text-brand-secondary)" } }, formatDate4(post.published_at)), /* @__PURE__ */ React51.createElement("h3", { className: "font-display text-2xl font-normal text-fg-primary mb-4 group-hover:underline line-clamp-2" }, post.title), excerpt && /* @__PURE__ */ React51.createElement("p", { className: "font-body text-base leading-relaxed text-tertiary mb-4 line-clamp-3" }, excerpt)));
18099
+ }))) : /* @__PURE__ */ React51.createElement("div", { className: "text-center py-12" }, /* @__PURE__ */ React51.createElement("p", { className: "font-body text-base text-tertiary" }, emptyMessage)), postsArray.length > 0 && viewAllText && /* @__PURE__ */ React51.createElement("div", { className: "mt-12 text-center" }, /* @__PURE__ */ React51.createElement(
17763
18100
  Button2,
17764
18101
  {
17765
18102
  href: viewAllHref,
@@ -17772,7 +18109,7 @@ var BlogSection3 = ({
17772
18109
  registerThemeVariant("blog-section", "barelux", BlogSection3);
17773
18110
 
17774
18111
  // src/design_system/sections/blog-gallery.barelux.tsx
17775
- import React48, { useState as useState24 } from "react";
18112
+ import React52, { useState as useState24 } from "react";
17776
18113
  var BlogGallery3 = ({
17777
18114
  blogPosts: postsData,
17778
18115
  postsPerPage = 12,
@@ -17790,13 +18127,13 @@ var BlogGallery3 = ({
17790
18127
  const startIndex = (currentPage - 1) * postsPerPage;
17791
18128
  const endIndex = startIndex + postsPerPage;
17792
18129
  const paginatedNonFeaturedPosts = nonFeaturedPosts.slice(startIndex, endIndex);
17793
- return /* @__PURE__ */ React48.createElement("section", { className: `py-16 md:py-20 lg:py-24 bg-primary ${className}` }, /* @__PURE__ */ React48.createElement("div", { className: "mx-auto max-w-7xl px-4 md:px-8" }, /* @__PURE__ */ React48.createElement("div", { className: "mx-auto max-w-3xl text-center mb-12 md:mb-16" }, /* @__PURE__ */ React48.createElement("h1", { className: "font-display text-4xl font-medium text-fg-primary md:text-5xl mb-4" }, title), /* @__PURE__ */ React48.createElement("p", { className: "font-body text-lg text-secondary leading-normal" }, subtitle)), posts.length > 0 ? /* @__PURE__ */ React48.createElement(React48.Fragment, null, featuredPost && /* @__PURE__ */ React48.createElement(
18130
+ return /* @__PURE__ */ React52.createElement("section", { className: `py-16 md:py-20 lg:py-24 bg-primary ${className}` }, /* @__PURE__ */ React52.createElement("div", { className: "mx-auto max-w-7xl px-4 md:px-8" }, /* @__PURE__ */ React52.createElement("div", { className: "mx-auto max-w-3xl text-center mb-12 md:mb-16" }, /* @__PURE__ */ React52.createElement("h1", { className: "font-display text-4xl font-medium text-fg-primary md:text-5xl mb-4" }, title), /* @__PURE__ */ React52.createElement("p", { className: "font-body text-lg text-secondary leading-normal" }, subtitle)), posts.length > 0 ? /* @__PURE__ */ React52.createElement(React52.Fragment, null, featuredPost && /* @__PURE__ */ React52.createElement(
17794
18131
  "a",
17795
18132
  {
17796
18133
  href: `/blog/${featuredPost.slug}`,
17797
18134
  className: "block mb-16 group"
17798
18135
  },
17799
- /* @__PURE__ */ React48.createElement("div", { className: "w-full h-96 md:h-[500px] mb-8 overflow-hidden rounded-2xl" }, /* @__PURE__ */ React48.createElement(
18136
+ /* @__PURE__ */ React52.createElement("div", { className: "w-full h-96 md:h-[500px] mb-8 overflow-hidden rounded-2xl" }, /* @__PURE__ */ React52.createElement(
17800
18137
  PhotoWithFallback2,
17801
18138
  {
17802
18139
  item: featuredPost,
@@ -17804,19 +18141,19 @@ var BlogGallery3 = ({
17804
18141
  className: "w-full h-full object-cover transition-transform duration-300 group-hover:scale-105"
17805
18142
  }
17806
18143
  )),
17807
- /* @__PURE__ */ React48.createElement("div", { className: "max-w-3xl" }, /* @__PURE__ */ React48.createElement("p", { className: "text-xs font-body font-normal uppercase tracking-widest mb-4", style: { color: "var(--color-text-brand-secondary)" } }, featuredPost.published_at ? new Date(featuredPost.published_at).toLocaleDateString("en-US", { month: "long", day: "numeric", year: "numeric" }) : recentLabel), /* @__PURE__ */ React48.createElement("h2", { className: "font-display text-3xl md:text-4xl font-normal text-fg-primary mb-6 group-hover:underline" }, featuredPost.title), featuredPost.excerpt_markdown && /* @__PURE__ */ React48.createElement("p", { className: "font-body text-lg leading-relaxed text-tertiary" }, featuredPost.excerpt_markdown.replace(/[#*\[\]()]/g, "").trim()))
17808
- ), paginatedNonFeaturedPosts.length > 0 && /* @__PURE__ */ React48.createElement("div", { className: "grid grid-cols-1 gap-12 md:grid-cols-2 lg:grid-cols-3 mb-16" }, paginatedNonFeaturedPosts.map((post) => {
18144
+ /* @__PURE__ */ React52.createElement("div", { className: "max-w-3xl" }, /* @__PURE__ */ React52.createElement("p", { className: "text-xs font-body font-normal uppercase tracking-widest mb-4", style: { color: "var(--color-text-brand-secondary)" } }, featuredPost.published_at ? new Date(featuredPost.published_at).toLocaleDateString("en-US", { month: "long", day: "numeric", year: "numeric" }) : recentLabel), /* @__PURE__ */ React52.createElement("h2", { className: "font-display text-3xl md:text-4xl font-normal text-fg-primary mb-6 group-hover:underline" }, featuredPost.title), featuredPost.excerpt_markdown && /* @__PURE__ */ React52.createElement("p", { className: "font-body text-lg leading-relaxed text-tertiary" }, featuredPost.excerpt_markdown.replace(/[#*\[\]()]/g, "").trim()))
18145
+ ), paginatedNonFeaturedPosts.length > 0 && /* @__PURE__ */ React52.createElement("div", { className: "grid grid-cols-1 gap-12 md:grid-cols-2 lg:grid-cols-3 mb-16" }, paginatedNonFeaturedPosts.map((post) => {
17809
18146
  var _a;
17810
18147
  const excerpt = post.excerpt_markdown || ((_a = post.content_markdown) == null ? void 0 : _a.replace(/[#*\[\]()]/g, "").trim().substring(0, 150)) || "";
17811
- return /* @__PURE__ */ React48.createElement("a", { key: post.id, href: `/blog/${post.slug}`, className: "flex flex-col group" }, /* @__PURE__ */ React48.createElement("div", { className: "w-full h-64 mb-6 overflow-hidden rounded-2xl" }, /* @__PURE__ */ React48.createElement(
18148
+ return /* @__PURE__ */ React52.createElement("a", { key: post.id, href: `/blog/${post.slug}`, className: "flex flex-col group" }, /* @__PURE__ */ React52.createElement("div", { className: "w-full h-64 mb-6 overflow-hidden rounded-2xl" }, /* @__PURE__ */ React52.createElement(
17812
18149
  PhotoWithFallback2,
17813
18150
  {
17814
18151
  item: post,
17815
18152
  fallbackId: post.id,
17816
18153
  className: "w-full h-full object-cover transition-transform duration-300 group-hover:scale-105"
17817
18154
  }
17818
- )), /* @__PURE__ */ React48.createElement("p", { className: "text-xs font-body font-normal uppercase tracking-widest mb-2", style: { color: "var(--color-text-brand-secondary)" } }, post.published_at ? new Date(post.published_at).toLocaleDateString("en-US", { month: "long", day: "numeric", year: "numeric" }) : recentLabel), /* @__PURE__ */ React48.createElement("h3", { className: "font-display text-2xl font-normal text-fg-primary mb-4 group-hover:underline line-clamp-2" }, post.title), excerpt && /* @__PURE__ */ React48.createElement("p", { className: "font-body text-base leading-relaxed text-tertiary mb-4 flex-grow line-clamp-3" }, excerpt));
17819
- })), totalPages > 1 && /* @__PURE__ */ React48.createElement("div", { className: "flex justify-center" }, /* @__PURE__ */ React48.createElement(
18155
+ )), /* @__PURE__ */ React52.createElement("p", { className: "text-xs font-body font-normal uppercase tracking-widest mb-2", style: { color: "var(--color-text-brand-secondary)" } }, post.published_at ? new Date(post.published_at).toLocaleDateString("en-US", { month: "long", day: "numeric", year: "numeric" }) : recentLabel), /* @__PURE__ */ React52.createElement("h3", { className: "font-display text-2xl font-normal text-fg-primary mb-4 group-hover:underline line-clamp-2" }, post.title), excerpt && /* @__PURE__ */ React52.createElement("p", { className: "font-body text-base leading-relaxed text-tertiary mb-4 flex-grow line-clamp-3" }, excerpt));
18156
+ })), totalPages > 1 && /* @__PURE__ */ React52.createElement("div", { className: "flex justify-center" }, /* @__PURE__ */ React52.createElement(
17820
18157
  PaginationPageDefault2,
17821
18158
  {
17822
18159
  rounded: true,
@@ -17824,23 +18161,27 @@ var BlogGallery3 = ({
17824
18161
  total: totalPages,
17825
18162
  onPageChange: setCurrentPage
17826
18163
  }
17827
- ))) : /* @__PURE__ */ React48.createElement("div", { className: "text-center py-12" }, /* @__PURE__ */ React48.createElement("p", { className: "font-body text-base text-tertiary" }, emptyMessage))));
18164
+ ))) : /* @__PURE__ */ React52.createElement("div", { className: "text-center py-12" }, /* @__PURE__ */ React52.createElement("p", { className: "font-body text-base text-tertiary" }, emptyMessage))));
17828
18165
  };
17829
18166
  registerThemeVariant("blog-gallery", "barelux", BlogGallery3);
17830
18167
 
17831
18168
  // src/design_system/sections/social-media-grid.barelux.tsx
17832
18169
  function getPostImageUrls3(post) {
17833
- var _a;
17834
- if ((_a = post.image_urls) == null ? void 0 : _a.length) return post.image_urls;
18170
+ var _a, _b;
18171
+ const videoSet = ((_a = post.video_urls) == null ? void 0 : _a.length) ? new Set(post.video_urls) : null;
18172
+ const isVideo = (url) => isVideoUrl(url) || videoSet !== null && videoSet.has(url);
18173
+ if ((_b = post.image_urls) == null ? void 0 : _b.length) {
18174
+ return post.image_urls.filter((url) => !isVideo(url));
18175
+ }
17835
18176
  const attachments = post.photo_attachments || [];
17836
18177
  const sorted = [...attachments].sort((a, b) => {
17837
- var _a2, _b;
17838
- return ((_a2 = a.sort_order) != null ? _a2 : 0) - ((_b = b.sort_order) != null ? _b : 0);
18178
+ var _a2, _b2;
18179
+ return ((_a2 = a.sort_order) != null ? _a2 : 0) - ((_b2 = b.sort_order) != null ? _b2 : 0);
17839
18180
  });
17840
18181
  return sorted.map((pa) => {
17841
- var _a2, _b, _c, _d;
17842
- return ((_a2 = pa.photo) == null ? void 0 : _a2.large_url) || ((_b = pa.photo) == null ? void 0 : _b.original_url) || ((_c = pa.photo) == null ? void 0 : _c.medium_url) || ((_d = pa.photo) == null ? void 0 : _d.thumbnail_url);
17843
- }).filter((url) => Boolean(url));
18182
+ var _a2, _b2, _c, _d;
18183
+ return ((_a2 = pa.photo) == null ? void 0 : _a2.large_url) || ((_b2 = pa.photo) == null ? void 0 : _b2.original_url) || ((_c = pa.photo) == null ? void 0 : _c.medium_url) || ((_d = pa.photo) == null ? void 0 : _d.thumbnail_url);
18184
+ }).filter((url) => Boolean(url)).filter((url) => !isVideo(url));
17844
18185
  }
17845
18186
  var formatDate3 = (dateString, recentLabel = "Recent") => {
17846
18187
  if (!dateString) return recentLabel;
@@ -17915,23 +18256,25 @@ var SocialMediaGrid3 = ({
17915
18256
  registerThemeVariant("social-media-grid", "barelux", SocialMediaGrid3);
17916
18257
 
17917
18258
  // src/design_system/sections/contact-section.barelux.tsx
17918
- import React50 from "react";
18259
+ import React54 from "react";
17919
18260
 
17920
18261
  // src/design_system/sections/contact-section-form.barelux.tsx
17921
- import React49, { useRef as useRef14, useState as useState25 } from "react";
18262
+ import React53, { useRef as useRef15, useState as useState25 } from "react";
17922
18263
  var ContactSectionForm3 = ({
17923
18264
  formDefinition,
17924
18265
  submitButtonText = "Send message",
17925
18266
  successMessage = "Thank you for contacting us! We'll get back to you soon.",
17926
18267
  thankYouMessage,
17927
- onSuccess
18268
+ onSuccess,
18269
+ privacyPolicyUrl,
18270
+ termsOfServiceUrl
17928
18271
  }) => {
17929
18272
  const { leadFormDefinition } = useFormDefinitions();
17930
18273
  const resolvedFormDefinition = formDefinition != null ? formDefinition : leadFormDefinition;
17931
18274
  const [isSubmitting, setIsSubmitting] = useState25(false);
17932
18275
  const [submitStatus, setSubmitStatus] = useState25("idle");
17933
18276
  const [statusMessage, setStatusMessage] = useState25("");
17934
- const formRef = useRef14(null);
18277
+ const formRef = useRef15(null);
17935
18278
  const hasFields = resolvedFormDefinition != null && Array.isArray(resolvedFormDefinition.fields) && resolvedFormDefinition.fields.length > 0;
17936
18279
  const handleSubmit = async (e) => {
17937
18280
  var _a;
@@ -17942,7 +18285,8 @@ var ContactSectionForm3 = ({
17942
18285
  const formData = new FormData(e.currentTarget);
17943
18286
  const data = { formType: "lead" };
17944
18287
  formData.forEach((value, key) => {
17945
- if (key !== "privacy" && typeof value === "string") data[key] = value;
18288
+ if (key.endsWith("_prefix")) return;
18289
+ if (typeof value === "string") data[key] = value;
17946
18290
  });
17947
18291
  try {
17948
18292
  const response = await fetch("/api/form/", {
@@ -17969,7 +18313,14 @@ var ContactSectionForm3 = ({
17969
18313
  setIsSubmitting(false);
17970
18314
  };
17971
18315
  if (!hasFields) return null;
17972
- return /* @__PURE__ */ React49.createElement(Form2, { ref: formRef, onSubmit: handleSubmit, className: "flex flex-col gap-6" }, /* @__PURE__ */ React49.createElement(DynamicFormFields, { form: resolvedFormDefinition }), /* @__PURE__ */ React49.createElement(
18316
+ return /* @__PURE__ */ React53.createElement(Form2, { ref: formRef, onSubmit: handleSubmit, className: "flex flex-col gap-6" }, /* @__PURE__ */ React53.createElement(
18317
+ DynamicFormFields,
18318
+ {
18319
+ form: resolvedFormDefinition,
18320
+ privacyPolicyUrl,
18321
+ termsOfServiceUrl
18322
+ }
18323
+ ), /* @__PURE__ */ React53.createElement(
17973
18324
  Button2,
17974
18325
  {
17975
18326
  type: "submit",
@@ -17980,21 +18331,38 @@ var ContactSectionForm3 = ({
17980
18331
  isLoading: isSubmitting
17981
18332
  },
17982
18333
  submitStatus === "success" ? successMessage.split("!")[0] + "!" : isSubmitting ? "Sending..." : submitButtonText
17983
- ), submitStatus === "success" && /* @__PURE__ */ React49.createElement("div", { className: "font-body text-sm text-center", style: { color: "var(--color-text-brand-accent)" } }, thankYouMessage != null ? thankYouMessage : statusMessage), submitStatus === "error" && /* @__PURE__ */ React49.createElement("div", { className: "rounded-lg bg-error-50 p-4 text-error-700 font-body text-sm text-center" }, statusMessage));
18334
+ ), submitStatus === "success" && /* @__PURE__ */ React53.createElement("div", { className: "font-body text-sm text-center", style: { color: "var(--color-text-brand-accent)" } }, thankYouMessage != null ? thankYouMessage : statusMessage), submitStatus === "error" && /* @__PURE__ */ React53.createElement("div", { className: "rounded-lg bg-error-50 p-4 text-error-700 font-body text-sm text-center" }, statusMessage));
17984
18335
  };
17985
18336
 
17986
18337
  // src/design_system/sections/contact-section.barelux.tsx
18338
+ function getLegalUrlsFromConfig3(config) {
18339
+ var _a, _b, _c;
18340
+ if (!((_a = config == null ? void 0 : config.navigation) == null ? void 0 : _a.footer)) return {};
18341
+ const flat = config.navigation.footer.flat();
18342
+ const privacy = (_b = flat.find((l) => l.label === "Privacy Policy")) == null ? void 0 : _b.href;
18343
+ const terms = (_c = flat.find((l) => l.label === "Terms of Service")) == null ? void 0 : _c.href;
18344
+ return { privacyPolicyUrl: privacy, termsOfServiceUrl: terms };
18345
+ }
17987
18346
  var ContactSection3 = ({
17988
18347
  websitePhotos,
17989
18348
  title = "",
17990
18349
  subtitle = "",
17991
- formDefinition
18350
+ formDefinition,
18351
+ config
17992
18352
  }) => {
18353
+ const { privacyPolicyUrl, termsOfServiceUrl } = getLegalUrlsFromConfig3(config);
17993
18354
  const contactPhoto = websitePhotos == null ? void 0 : websitePhotos.contact;
17994
18355
  const contactImageUrl = contactPhoto == null ? void 0 : contactPhoto.url;
17995
18356
  const finalContactImage = contactImageUrl && contactImageUrl.trim() !== "" ? contactImageUrl : void 0;
17996
18357
  const finalContactImageAlt = (contactPhoto == null ? void 0 : contactPhoto.alt) || "Contact image";
17997
- return /* @__PURE__ */ React50.createElement("section", { className: "py-16 md:py-20 lg:py-24 bg-primary" }, /* @__PURE__ */ React50.createElement("div", { className: "mx-auto max-w-7xl px-4 md:px-8" }, /* @__PURE__ */ React50.createElement("div", { className: "grid grid-cols-1 lg:grid-cols-2 gap-12 lg:gap-16" }, /* @__PURE__ */ React50.createElement("div", null, /* @__PURE__ */ React50.createElement("h2", { className: "font-display text-4xl font-medium text-fg-primary md:text-5xl mb-6" }, title), /* @__PURE__ */ React50.createElement("p", { className: "font-body text-lg text-secondary leading-relaxed mb-8" }, subtitle), /* @__PURE__ */ React50.createElement(ContactSectionForm3, { formDefinition })), finalContactImage && /* @__PURE__ */ React50.createElement("div", { className: "max-lg:hidden relative h-full min-h-0 overflow-hidden rounded-lg" }, /* @__PURE__ */ React50.createElement(
18358
+ return /* @__PURE__ */ React54.createElement("section", { className: "py-16 md:py-20 lg:py-24 bg-primary" }, /* @__PURE__ */ React54.createElement("div", { className: "mx-auto max-w-7xl px-4 md:px-8" }, /* @__PURE__ */ React54.createElement("div", { className: "grid grid-cols-1 lg:grid-cols-2 gap-12 lg:gap-16" }, /* @__PURE__ */ React54.createElement("div", null, /* @__PURE__ */ React54.createElement("h2", { className: "font-display text-4xl font-medium text-fg-primary md:text-5xl mb-6" }, title), /* @__PURE__ */ React54.createElement("p", { className: "font-body text-lg text-secondary leading-relaxed mb-8" }, subtitle), /* @__PURE__ */ React54.createElement(
18359
+ ContactSectionForm3,
18360
+ {
18361
+ formDefinition,
18362
+ privacyPolicyUrl,
18363
+ termsOfServiceUrl
18364
+ }
18365
+ )), finalContactImage && /* @__PURE__ */ React54.createElement("div", { className: "max-lg:hidden relative h-full min-h-0 overflow-hidden rounded-lg" }, /* @__PURE__ */ React54.createElement(
17998
18366
  PhotoWithFallback2,
17999
18367
  {
18000
18368
  photoUrl: finalContactImage,
@@ -18059,7 +18427,7 @@ registerThemeVariant("footer-home", "barelux", FooterHome3);
18059
18427
 
18060
18428
  // src/design_system/sections/hero-home.balance.tsx
18061
18429
  import { Fragment as Fragment7, useState as useState26 } from "react";
18062
- import React51 from "react";
18430
+ import React55 from "react";
18063
18431
  var HeroHome4 = ({
18064
18432
  websitePhotos,
18065
18433
  companyInformation,
@@ -18077,7 +18445,7 @@ var HeroHome4 = ({
18077
18445
  url: ((_b = websitePhotos == null ? void 0 : websitePhotos.hero) == null ? void 0 : _b.url) || "",
18078
18446
  alt: ((_c = websitePhotos == null ? void 0 : websitePhotos.hero) == null ? void 0 : _c.alt) || "Hero image"
18079
18447
  };
18080
- return /* @__PURE__ */ React51.createElement(Fragment7, null, /* @__PURE__ */ React51.createElement("section", { className: "bg-primary py-20 md:py-28" }, /* @__PURE__ */ React51.createElement("div", { className: "mx-auto max-w-4xl px-4 text-center md:px-8" }, /* @__PURE__ */ React51.createElement("h1", { className: "font-display text-5xl font-normal leading-tight text-fg-primary md:text-6xl lg:text-7xl" }, headline), /* @__PURE__ */ React51.createElement("p", { className: "mt-6 font-body text-lg leading-relaxed text-secondary md:text-xl max-w-3xl mx-auto" }, subhead), ctaText && /* @__PURE__ */ React51.createElement("div", { className: "mt-10" }, /* @__PURE__ */ React51.createElement(
18448
+ return /* @__PURE__ */ React55.createElement(Fragment7, null, /* @__PURE__ */ React55.createElement("section", { className: "bg-primary py-20 md:py-28" }, /* @__PURE__ */ React55.createElement("div", { className: "mx-auto max-w-4xl px-4 text-center md:px-8" }, /* @__PURE__ */ React55.createElement("h1", { className: "font-display text-5xl font-normal leading-tight text-fg-primary md:text-6xl lg:text-7xl" }, headline), /* @__PURE__ */ React55.createElement("p", { className: "mt-6 font-body text-lg leading-relaxed text-secondary md:text-xl max-w-3xl mx-auto" }, subhead), ctaText && /* @__PURE__ */ React55.createElement("div", { className: "mt-10" }, /* @__PURE__ */ React55.createElement(
18081
18449
  Button2,
18082
18450
  {
18083
18451
  as: "a",
@@ -18089,7 +18457,7 @@ var HeroHome4 = ({
18089
18457
  className: "font-body font-medium"
18090
18458
  },
18091
18459
  ctaText
18092
- )))), /* @__PURE__ */ React51.createElement("section", { className: "bg-primary" }, /* @__PURE__ */ React51.createElement("div", { className: "mx-auto max-w-container px-4 md:px-8 pb-16 md:pb-24" }, /* @__PURE__ */ React51.createElement("div", { className: "relative w-full h-[450px] md:h-[550px] lg:h-[650px] overflow-hidden" }, /* @__PURE__ */ React51.createElement(
18460
+ )))), /* @__PURE__ */ React55.createElement("section", { className: "bg-primary" }, /* @__PURE__ */ React55.createElement("div", { className: "mx-auto max-w-container px-4 md:px-8 pb-16 md:pb-24" }, /* @__PURE__ */ React55.createElement("div", { className: "relative w-full h-[450px] md:h-[550px] lg:h-[650px] overflow-hidden" }, /* @__PURE__ */ React55.createElement(
18093
18461
  PhotoWithFallback2,
18094
18462
  {
18095
18463
  photoUrl: heroImage.url,
@@ -18097,7 +18465,7 @@ var HeroHome4 = ({
18097
18465
  fallbackId: "hero-home-balance",
18098
18466
  className: "w-full h-full object-cover"
18099
18467
  }
18100
- ), videoUrl && /* @__PURE__ */ React51.createElement("div", { className: "absolute inset-0 flex items-center justify-center" }, /* @__PURE__ */ React51.createElement(VideoPlayButton, { onClick: () => setShowVideo(true) }))))), videoUrl && /* @__PURE__ */ React51.createElement(
18468
+ ), videoUrl && /* @__PURE__ */ React55.createElement("div", { className: "absolute inset-0 flex items-center justify-center" }, /* @__PURE__ */ React55.createElement(VideoPlayButton, { onClick: () => setShowVideo(true) }))))), videoUrl && /* @__PURE__ */ React55.createElement(
18101
18469
  VideoModal,
18102
18470
  {
18103
18471
  isOpen: showVideo,
@@ -18109,7 +18477,7 @@ var HeroHome4 = ({
18109
18477
  registerThemeVariant("hero-home", "balance", HeroHome4);
18110
18478
 
18111
18479
  // src/design_system/sections/header-navigation.balance.tsx
18112
- import React52, { useState as useState27, useRef as useRef15, useCallback as useCallback9 } from "react";
18480
+ import React56, { useState as useState27, useRef as useRef16, useCallback as useCallback9 } from "react";
18113
18481
  import Link10 from "next/link";
18114
18482
  import Image13 from "next/image";
18115
18483
  function HeaderNavigation4({
@@ -18121,11 +18489,11 @@ function HeaderNavigation4({
18121
18489
  companyInformation,
18122
18490
  websitePhotos
18123
18491
  }) {
18124
- var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r;
18492
+ var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t;
18125
18493
  const [activeDropdown, setActiveDropdown] = useState27(null);
18126
18494
  const [isMobileMenuOpen, setIsMobileMenuOpen] = useState27(false);
18127
- const closeTimeoutRef = useRef15(null);
18128
- React52.useEffect(() => {
18495
+ const closeTimeoutRef = useRef16(null);
18496
+ React56.useEffect(() => {
18129
18497
  return () => {
18130
18498
  if (closeTimeoutRef.current) {
18131
18499
  clearTimeout(closeTimeoutRef.current);
@@ -18163,7 +18531,7 @@ function HeaderNavigation4({
18163
18531
  const handleDropdownMouseLeave = useCallback9(() => {
18164
18532
  handleMouseLeave();
18165
18533
  }, [handleMouseLeave]);
18166
- return /* @__PURE__ */ React52.createElement(React52.Fragment, null, /* @__PURE__ */ React52.createElement("header", { className: "hidden md:block sticky top-0 z-50 bg-primary", style: { borderBottom: "3px solid rgb(217, 191, 168)" } }, /* @__PURE__ */ React52.createElement("div", { className: "mx-auto max-w-container px-4 md:px-8" }, /* @__PURE__ */ React52.createElement("div", { className: "relative flex items-center justify-between py-5" }, /* @__PURE__ */ React52.createElement(Link10, { href: "/", className: "flex items-center z-10" }, logoUrl ? /* @__PURE__ */ React52.createElement(
18534
+ return /* @__PURE__ */ React56.createElement(React56.Fragment, null, /* @__PURE__ */ React56.createElement("header", { className: "hidden md:block sticky top-0 z-50 bg-primary", style: { borderBottom: "3px solid rgb(217, 191, 168)" } }, /* @__PURE__ */ React56.createElement("div", { className: "mx-auto max-w-container px-4 md:px-8" }, /* @__PURE__ */ React56.createElement("div", { className: "relative flex items-center justify-between py-5" }, /* @__PURE__ */ React56.createElement(Link10, { href: ((_d = props == null ? void 0 : props.logo) == null ? void 0 : _d.href) || "/", className: "flex items-center z-10" }, logoUrl ? /* @__PURE__ */ React56.createElement(
18167
18535
  Image13,
18168
18536
  {
18169
18537
  src: logoUrl,
@@ -18172,7 +18540,7 @@ function HeaderNavigation4({
18172
18540
  width: 180,
18173
18541
  height: 48
18174
18542
  }
18175
- ) : /* @__PURE__ */ React52.createElement("div", { className: "flex flex-col" }, /* @__PURE__ */ React52.createElement("span", { className: "font-display text-2xl font-normal", style: { color: "rgb(148, 102, 76)" } }, companyName), /* @__PURE__ */ React52.createElement("span", { className: "font-body text-xs tracking-widest uppercase", style: { color: "rgb(148, 102, 76)", opacity: 0.7 } }, "Concierge Cosmetic Injections"))), /* @__PURE__ */ React52.createElement("nav", { className: "absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 flex items-center gap-1" }, navigation.map((item) => /* @__PURE__ */ React52.createElement(
18543
+ ) : /* @__PURE__ */ React56.createElement("div", { className: "flex flex-col" }, /* @__PURE__ */ React56.createElement("span", { className: "font-display text-2xl font-normal", style: { color: "rgb(148, 102, 76)" } }, companyName), /* @__PURE__ */ React56.createElement("span", { className: "font-body text-xs tracking-widest uppercase", style: { color: "rgb(148, 102, 76)", opacity: 0.7 } }, "Concierge Cosmetic Injections"))), /* @__PURE__ */ React56.createElement("nav", { className: "absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 flex items-center gap-1" }, navigation.map((item) => /* @__PURE__ */ React56.createElement(
18176
18544
  "div",
18177
18545
  {
18178
18546
  key: item.label,
@@ -18180,7 +18548,7 @@ function HeaderNavigation4({
18180
18548
  onMouseEnter: () => handleMouseEnter(item),
18181
18549
  onMouseLeave: handleMouseLeave
18182
18550
  },
18183
- item.href ? /* @__PURE__ */ React52.createElement(
18551
+ item.href ? /* @__PURE__ */ React56.createElement(
18184
18552
  Link10,
18185
18553
  {
18186
18554
  href: item.href,
@@ -18188,15 +18556,15 @@ function HeaderNavigation4({
18188
18556
  style: { color: "rgb(170, 143, 123)" }
18189
18557
  },
18190
18558
  item.label
18191
- ) : /* @__PURE__ */ React52.createElement("span", { className: "font-display text-xl font-semibold px-5 py-2 cursor-pointer", style: { color: "rgb(170, 143, 123)" } }, item.label),
18192
- item.children && item.children.length > 0 && activeDropdown === item.label && /* @__PURE__ */ React52.createElement(
18559
+ ) : /* @__PURE__ */ React56.createElement("span", { className: "font-display text-xl font-semibold px-5 py-2 cursor-pointer", style: { color: "rgb(170, 143, 123)" } }, item.label),
18560
+ item.children && item.children.length > 0 && activeDropdown === item.label && /* @__PURE__ */ React56.createElement(
18193
18561
  "div",
18194
18562
  {
18195
18563
  className: "absolute left-0 top-full pt-2",
18196
18564
  onMouseEnter: handleDropdownMouseEnter,
18197
18565
  onMouseLeave: handleDropdownMouseLeave
18198
18566
  },
18199
- /* @__PURE__ */ React52.createElement("div", { className: "balance-dropdown-panel bg-primary border border-secondary shadow-md min-w-48 py-2" }, item.children.map((child) => /* @__PURE__ */ React52.createElement(
18567
+ /* @__PURE__ */ React56.createElement("div", { className: "balance-dropdown-panel bg-primary border border-secondary shadow-md min-w-48 py-2" }, item.children.map((child) => /* @__PURE__ */ React56.createElement(
18200
18568
  Link10,
18201
18569
  {
18202
18570
  key: child.href,
@@ -18207,7 +18575,7 @@ function HeaderNavigation4({
18207
18575
  child.label
18208
18576
  )))
18209
18577
  )
18210
- ))), /* @__PURE__ */ React52.createElement("div", { className: "flex items-center gap-3 flex-shrink-0 z-10" }, ((_d = props == null ? void 0 : props.cta_button) == null ? void 0 : _d.secondary_label) && ctaUrls.hasSecondary && /* @__PURE__ */ React52.createElement(
18578
+ ))), /* @__PURE__ */ React56.createElement("div", { className: "flex items-center gap-3 flex-shrink-0 z-10" }, ((_e = props == null ? void 0 : props.cta_button) == null ? void 0 : _e.secondary_label) && ctaUrls.hasSecondary && /* @__PURE__ */ React56.createElement(
18211
18579
  Button2,
18212
18580
  {
18213
18581
  href: ctaUrls.secondaryHref,
@@ -18217,25 +18585,25 @@ function HeaderNavigation4({
18217
18585
  size: "sm"
18218
18586
  },
18219
18587
  props.cta_button.label
18220
- ), /* @__PURE__ */ React52.createElement(
18588
+ ), /* @__PURE__ */ React56.createElement(
18221
18589
  Button2,
18222
18590
  {
18223
18591
  href: ctaUrls.primaryHref,
18224
- target: (_f = (_e = props == null ? void 0 : props.cta_button) == null ? void 0 : _e.target) != null ? _f : isExternalCtaUrl(ctaUrls.primaryHref) ? "_blank" : void 0,
18225
- rel: ((_g = props == null ? void 0 : props.cta_button) == null ? void 0 : _g.target) === "_blank" || isExternalCtaUrl(ctaUrls.primaryHref) ? "noopener noreferrer" : void 0,
18592
+ target: (_g = (_f = props == null ? void 0 : props.cta_button) == null ? void 0 : _f.target) != null ? _g : isExternalCtaUrl(ctaUrls.primaryHref) ? "_blank" : void 0,
18593
+ rel: ((_h = props == null ? void 0 : props.cta_button) == null ? void 0 : _h.target) === "_blank" || isExternalCtaUrl(ctaUrls.primaryHref) ? "noopener noreferrer" : void 0,
18226
18594
  color: "primary",
18227
18595
  size: "sm"
18228
18596
  },
18229
- ((_h = props == null ? void 0 : props.cta_button) == null ? void 0 : _h.secondary_label) && ctaUrls.hasSecondary ? props.cta_button.secondary_label : ((_i = props == null ? void 0 : props.cta_button) == null ? void 0 : _i.label) || ""
18230
- ))))), /* @__PURE__ */ React52.createElement("header", { className: "md:hidden sticky top-0 z-50 bg-primary", style: { borderBottom: "3px solid rgb(217, 191, 168)" } }, /* @__PURE__ */ React52.createElement("div", { className: "flex items-center justify-between px-4 py-4" }, /* @__PURE__ */ React52.createElement(
18597
+ ((_i = props == null ? void 0 : props.cta_button) == null ? void 0 : _i.secondary_label) && ctaUrls.hasSecondary ? props.cta_button.secondary_label : ((_j = props == null ? void 0 : props.cta_button) == null ? void 0 : _j.label) || ""
18598
+ ))))), /* @__PURE__ */ React56.createElement("header", { className: "md:hidden sticky top-0 z-50 bg-primary", style: { borderBottom: "3px solid rgb(217, 191, 168)" } }, /* @__PURE__ */ React56.createElement("div", { className: "flex items-center justify-between px-4 py-4" }, /* @__PURE__ */ React56.createElement(
18231
18599
  "button",
18232
18600
  {
18233
18601
  onClick: () => setIsMobileMenuOpen(true),
18234
18602
  className: "text-fg-primary",
18235
18603
  "aria-label": "Open menu"
18236
18604
  },
18237
- /* @__PURE__ */ React52.createElement("svg", { className: "w-6 h-6", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React52.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M4 6h16M4 12h16M4 18h16" }))
18238
- ), /* @__PURE__ */ React52.createElement(Link10, { href: "/", className: "flex items-center" }, logoUrl ? /* @__PURE__ */ React52.createElement(
18605
+ /* @__PURE__ */ React56.createElement("svg", { className: "w-6 h-6", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React56.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M4 6h16M4 12h16M4 18h16" }))
18606
+ ), /* @__PURE__ */ React56.createElement(Link10, { href: ((_k = props == null ? void 0 : props.logo) == null ? void 0 : _k.href) || "/", className: "flex items-center" }, logoUrl ? /* @__PURE__ */ React56.createElement(
18239
18607
  Image13,
18240
18608
  {
18241
18609
  src: logoUrl,
@@ -18244,15 +18612,15 @@ function HeaderNavigation4({
18244
18612
  width: 120,
18245
18613
  height: 32
18246
18614
  }
18247
- ) : /* @__PURE__ */ React52.createElement("span", { className: "font-display text-lg font-normal text-fg-primary" }, companyName)), /* @__PURE__ */ React52.createElement("div", { className: "w-6" }))), isMobileMenuOpen && /* @__PURE__ */ React52.createElement("div", { className: "balance-mobile-menu fixed inset-0 bg-primary z-50 md:hidden" }, /* @__PURE__ */ React52.createElement("div", { className: "flex flex-col h-full" }, /* @__PURE__ */ React52.createElement("div", { className: "flex items-center justify-between px-4 py-4", style: { borderBottom: "3px solid rgb(217, 191, 168)" } }, /* @__PURE__ */ React52.createElement(
18615
+ ) : /* @__PURE__ */ React56.createElement("span", { className: "font-display text-lg font-normal text-fg-primary" }, companyName)), /* @__PURE__ */ React56.createElement("div", { className: "w-6" }))), isMobileMenuOpen && /* @__PURE__ */ React56.createElement("div", { className: "balance-mobile-menu fixed inset-0 bg-primary z-50 md:hidden" }, /* @__PURE__ */ React56.createElement("div", { className: "flex flex-col h-full" }, /* @__PURE__ */ React56.createElement("div", { className: "flex items-center justify-between px-4 py-4", style: { borderBottom: "3px solid rgb(217, 191, 168)" } }, /* @__PURE__ */ React56.createElement(
18248
18616
  "button",
18249
18617
  {
18250
18618
  onClick: () => setIsMobileMenuOpen(false),
18251
18619
  className: "text-fg-primary",
18252
18620
  "aria-label": "Close menu"
18253
18621
  },
18254
- /* @__PURE__ */ React52.createElement("svg", { className: "w-6 h-6", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React52.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M6 18L18 6M6 6l12 12" }))
18255
- ), /* @__PURE__ */ React52.createElement("div", { className: "flex items-center" }, logoUrl ? /* @__PURE__ */ React52.createElement(
18622
+ /* @__PURE__ */ React56.createElement("svg", { className: "w-6 h-6", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React56.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M6 18L18 6M6 6l12 12" }))
18623
+ ), /* @__PURE__ */ React56.createElement("div", { className: "flex items-center" }, logoUrl ? /* @__PURE__ */ React56.createElement(
18256
18624
  Image13,
18257
18625
  {
18258
18626
  src: logoUrl,
@@ -18261,7 +18629,7 @@ function HeaderNavigation4({
18261
18629
  width: 120,
18262
18630
  height: 32
18263
18631
  }
18264
- ) : /* @__PURE__ */ React52.createElement("span", { className: "font-display text-lg font-normal text-fg-primary" }, companyName)), /* @__PURE__ */ React52.createElement("div", { className: "w-6" })), /* @__PURE__ */ React52.createElement("nav", { className: "flex-1 overflow-y-auto px-4 py-8" }, /* @__PURE__ */ React52.createElement("ul", { className: "space-y-4" }, navigation.map((item) => /* @__PURE__ */ React52.createElement("li", { key: item.label }, /* @__PURE__ */ React52.createElement(
18632
+ ) : /* @__PURE__ */ React56.createElement("span", { className: "font-display text-lg font-normal text-fg-primary" }, companyName)), /* @__PURE__ */ React56.createElement("div", { className: "w-6" })), /* @__PURE__ */ React56.createElement("nav", { className: "flex-1 overflow-y-auto px-4 py-8" }, /* @__PURE__ */ React56.createElement("ul", { className: "space-y-4" }, navigation.map((item) => /* @__PURE__ */ React56.createElement("li", { key: item.label }, /* @__PURE__ */ React56.createElement(
18265
18633
  Link10,
18266
18634
  {
18267
18635
  href: item.href || "#",
@@ -18270,7 +18638,7 @@ function HeaderNavigation4({
18270
18638
  onClick: () => setIsMobileMenuOpen(false)
18271
18639
  },
18272
18640
  item.label
18273
- ), item.children && item.children.length > 0 && /* @__PURE__ */ React52.createElement("ul", { className: "ml-4 mt-2 space-y-2" }, item.children.map((child) => /* @__PURE__ */ React52.createElement("li", { key: child.href }, /* @__PURE__ */ React52.createElement(
18641
+ ), item.children && item.children.length > 0 && /* @__PURE__ */ React56.createElement("ul", { className: "ml-4 mt-2 space-y-2" }, item.children.map((child) => /* @__PURE__ */ React56.createElement("li", { key: child.href }, /* @__PURE__ */ React56.createElement(
18274
18642
  Link10,
18275
18643
  {
18276
18644
  href: child.href,
@@ -18278,7 +18646,7 @@ function HeaderNavigation4({
18278
18646
  onClick: () => setIsMobileMenuOpen(false)
18279
18647
  },
18280
18648
  child.label
18281
- )))))))), /* @__PURE__ */ React52.createElement("div", { className: "px-4 py-6", style: { borderTop: "1px solid rgb(217, 191, 168)" } }, /* @__PURE__ */ React52.createElement("div", { className: "flex flex-col gap-3" }, ((_j = props == null ? void 0 : props.cta_button) == null ? void 0 : _j.secondary_label) && ctaUrls.hasSecondary && /* @__PURE__ */ React52.createElement(
18649
+ )))))))), /* @__PURE__ */ React56.createElement("div", { className: "px-4 py-6", style: { borderTop: "1px solid rgb(217, 191, 168)" } }, /* @__PURE__ */ React56.createElement("div", { className: "flex flex-col gap-3" }, ((_l = props == null ? void 0 : props.cta_button) == null ? void 0 : _l.secondary_label) && ctaUrls.hasSecondary && /* @__PURE__ */ React56.createElement(
18282
18650
  Button2,
18283
18651
  {
18284
18652
  href: ctaUrls.secondaryHref,
@@ -18288,7 +18656,7 @@ function HeaderNavigation4({
18288
18656
  onClick: () => setIsMobileMenuOpen(false)
18289
18657
  },
18290
18658
  props.cta_button.secondary_label
18291
- ), /* @__PURE__ */ React52.createElement(
18659
+ ), /* @__PURE__ */ React56.createElement(
18292
18660
  Button2,
18293
18661
  {
18294
18662
  href: ctaUrls.primaryHref,
@@ -18297,8 +18665,8 @@ function HeaderNavigation4({
18297
18665
  className: "w-full",
18298
18666
  onClick: () => setIsMobileMenuOpen(false)
18299
18667
  },
18300
- ((_k = props == null ? void 0 : props.cta_button) == null ? void 0 : _k.label) || ""
18301
- ))))), /* @__PURE__ */ React52.createElement("div", { className: "fixed bottom-0 left-0 right-0 z-40 md:hidden", style: { backgroundColor: "rgb(148, 133, 84)" } }, /* @__PURE__ */ React52.createElement("div", { className: "flex gap-0" }, ((_l = props == null ? void 0 : props.cta_button) == null ? void 0 : _l.secondary_label) && ctaUrls.hasSecondary && /* @__PURE__ */ React52.createElement(
18668
+ ((_m = props == null ? void 0 : props.cta_button) == null ? void 0 : _m.label) || ""
18669
+ ))))), /* @__PURE__ */ React56.createElement("div", { className: "fixed bottom-0 left-0 right-0 z-40 md:hidden", style: { backgroundColor: "rgb(148, 133, 84)" } }, /* @__PURE__ */ React56.createElement("div", { className: "flex gap-0" }, ((_n = props == null ? void 0 : props.cta_button) == null ? void 0 : _n.secondary_label) && ctaUrls.hasSecondary && /* @__PURE__ */ React56.createElement(
18302
18670
  Button2,
18303
18671
  {
18304
18672
  href: ctaUrls.secondaryHref,
@@ -18309,16 +18677,16 @@ function HeaderNavigation4({
18309
18677
  style: { borderRight: "1px solid rgba(255, 255, 255, 0.2)" }
18310
18678
  },
18311
18679
  props.cta_button.label
18312
- ), /* @__PURE__ */ React52.createElement(
18680
+ ), /* @__PURE__ */ React56.createElement(
18313
18681
  Button2,
18314
18682
  {
18315
18683
  href: ctaUrls.primaryHref,
18316
- target: (_n = (_m = props == null ? void 0 : props.cta_button) == null ? void 0 : _m.target) != null ? _n : isExternalCtaUrl(ctaUrls.primaryHref) ? "_blank" : void 0,
18317
- rel: ((_o = props == null ? void 0 : props.cta_button) == null ? void 0 : _o.target) === "_blank" || isExternalCtaUrl(ctaUrls.primaryHref) ? "noopener noreferrer" : void 0,
18684
+ target: (_p = (_o = props == null ? void 0 : props.cta_button) == null ? void 0 : _o.target) != null ? _p : isExternalCtaUrl(ctaUrls.primaryHref) ? "_blank" : void 0,
18685
+ rel: ((_q = props == null ? void 0 : props.cta_button) == null ? void 0 : _q.target) === "_blank" || isExternalCtaUrl(ctaUrls.primaryHref) ? "noopener noreferrer" : void 0,
18318
18686
  color: "primary",
18319
- className: `${((_p = props == null ? void 0 : props.cta_button) == null ? void 0 : _p.secondary_label) && ctaUrls.hasSecondary ? "flex-1" : "w-full"} font-body text-sm uppercase tracking-wide py-4 rounded-none`
18687
+ className: `${((_r = props == null ? void 0 : props.cta_button) == null ? void 0 : _r.secondary_label) && ctaUrls.hasSecondary ? "flex-1" : "w-full"} font-body text-sm uppercase tracking-wide py-4 rounded-none`
18320
18688
  },
18321
- ((_q = props == null ? void 0 : props.cta_button) == null ? void 0 : _q.secondary_label) && ctaUrls.hasSecondary ? props.cta_button.secondary_label : ((_r = props == null ? void 0 : props.cta_button) == null ? void 0 : _r.label) || "Contact"
18689
+ ((_s = props == null ? void 0 : props.cta_button) == null ? void 0 : _s.secondary_label) && ctaUrls.hasSecondary ? props.cta_button.secondary_label : ((_t = props == null ? void 0 : props.cta_button) == null ? void 0 : _t.label) || "Contact"
18322
18690
  ))));
18323
18691
  }
18324
18692
  registerThemeVariant("header-navigation", "balance", HeaderNavigation4);
@@ -18382,23 +18750,25 @@ var FooterHome4 = ({
18382
18750
  registerThemeVariant("footer-home", "balance", FooterHome4);
18383
18751
 
18384
18752
  // src/design_system/sections/contact-section.balance.tsx
18385
- import React54 from "react";
18753
+ import React58 from "react";
18386
18754
 
18387
18755
  // src/design_system/sections/contact-section-form.balance.tsx
18388
- import React53, { useRef as useRef16, useState as useState28 } from "react";
18756
+ import React57, { useRef as useRef17, useState as useState28 } from "react";
18389
18757
  var ContactSectionForm4 = ({
18390
18758
  formDefinition,
18391
18759
  submitButtonText = "Send message",
18392
18760
  successMessage = "Thank you for contacting us! We'll get back to you soon.",
18393
18761
  thankYouMessage,
18394
- onSuccess
18762
+ onSuccess,
18763
+ privacyPolicyUrl,
18764
+ termsOfServiceUrl
18395
18765
  }) => {
18396
18766
  const { leadFormDefinition } = useFormDefinitions();
18397
18767
  const resolvedFormDefinition = formDefinition != null ? formDefinition : leadFormDefinition;
18398
18768
  const [isSubmitting, setIsSubmitting] = useState28(false);
18399
18769
  const [submitStatus, setSubmitStatus] = useState28("idle");
18400
18770
  const [statusMessage, setStatusMessage] = useState28("");
18401
- const formRef = useRef16(null);
18771
+ const formRef = useRef17(null);
18402
18772
  const hasFields = resolvedFormDefinition != null && Array.isArray(resolvedFormDefinition.fields) && resolvedFormDefinition.fields.length > 0;
18403
18773
  const handleSubmit = async (e) => {
18404
18774
  var _a;
@@ -18409,7 +18779,8 @@ var ContactSectionForm4 = ({
18409
18779
  const formData = new FormData(e.currentTarget);
18410
18780
  const data = { formType: "lead" };
18411
18781
  formData.forEach((value, key) => {
18412
- if (key !== "privacy" && typeof value === "string") data[key] = value;
18782
+ if (key.endsWith("_prefix")) return;
18783
+ if (typeof value === "string") data[key] = value;
18413
18784
  });
18414
18785
  try {
18415
18786
  const response = await fetch("/api/form/", {
@@ -18436,7 +18807,14 @@ var ContactSectionForm4 = ({
18436
18807
  setIsSubmitting(false);
18437
18808
  };
18438
18809
  if (!hasFields) return null;
18439
- return /* @__PURE__ */ React53.createElement(Form2, { ref: formRef, onSubmit: handleSubmit, className: "flex flex-col gap-6" }, /* @__PURE__ */ React53.createElement(DynamicFormFields, { form: resolvedFormDefinition }), /* @__PURE__ */ React53.createElement(
18810
+ return /* @__PURE__ */ React57.createElement(Form2, { ref: formRef, onSubmit: handleSubmit, className: "flex flex-col gap-6" }, /* @__PURE__ */ React57.createElement(
18811
+ DynamicFormFields,
18812
+ {
18813
+ form: resolvedFormDefinition,
18814
+ privacyPolicyUrl,
18815
+ termsOfServiceUrl
18816
+ }
18817
+ ), /* @__PURE__ */ React57.createElement(
18440
18818
  Button2,
18441
18819
  {
18442
18820
  type: "submit",
@@ -18447,21 +18825,31 @@ var ContactSectionForm4 = ({
18447
18825
  isLoading: isSubmitting
18448
18826
  },
18449
18827
  isSubmitting ? "Sending..." : submitButtonText
18450
- ), submitStatus === "success" && /* @__PURE__ */ React53.createElement("div", { className: "rounded-sm bg-success-50 p-4 text-success-700 font-body" }, thankYouMessage != null ? thankYouMessage : statusMessage), submitStatus === "error" && /* @__PURE__ */ React53.createElement("div", { className: "rounded-sm bg-error-50 p-4 text-error-700 font-body text-sm" }, statusMessage));
18828
+ ), submitStatus === "success" && /* @__PURE__ */ React57.createElement("div", { className: "rounded-sm bg-success-50 p-4 text-success-700 font-body" }, thankYouMessage != null ? thankYouMessage : statusMessage), submitStatus === "error" && /* @__PURE__ */ React57.createElement("div", { className: "rounded-sm bg-error-50 p-4 text-error-700 font-body text-sm" }, statusMessage));
18451
18829
  };
18452
18830
 
18453
18831
  // src/design_system/sections/contact-section.balance.tsx
18832
+ function getLegalUrlsFromConfig4(config) {
18833
+ var _a, _b, _c;
18834
+ if (!((_a = config == null ? void 0 : config.navigation) == null ? void 0 : _a.footer)) return {};
18835
+ const flat = config.navigation.footer.flat();
18836
+ const privacy = (_b = flat.find((l) => l.label === "Privacy Policy")) == null ? void 0 : _b.href;
18837
+ const terms = (_c = flat.find((l) => l.label === "Terms of Service")) == null ? void 0 : _c.href;
18838
+ return { privacyPolicyUrl: privacy, termsOfServiceUrl: terms };
18839
+ }
18454
18840
  var ContactSection4 = ({
18455
18841
  websitePhotos,
18456
18842
  title = "",
18457
18843
  subtitle = "",
18458
- formDefinition
18844
+ formDefinition,
18845
+ config
18459
18846
  }) => {
18847
+ const { privacyPolicyUrl, termsOfServiceUrl } = getLegalUrlsFromConfig4(config);
18460
18848
  const contactPhoto = websitePhotos == null ? void 0 : websitePhotos.contact;
18461
18849
  const contactImageUrl = contactPhoto == null ? void 0 : contactPhoto.url;
18462
18850
  const finalContactImage = contactImageUrl && contactImageUrl.trim() !== "" ? contactImageUrl : void 0;
18463
18851
  const finalContactImageAlt = (contactPhoto == null ? void 0 : contactPhoto.alt) || "Contact image";
18464
- return /* @__PURE__ */ React54.createElement("section", { className: "bg-primary py-16 md:py-24" }, /* @__PURE__ */ React54.createElement("div", { className: "mx-auto max-w-4xl px-4 md:px-8" }, /* @__PURE__ */ React54.createElement("div", { className: "text-center mb-12" }, /* @__PURE__ */ React54.createElement("h2", { className: "font-display text-4xl font-normal leading-tight text-fg-primary md:text-5xl" }, title), /* @__PURE__ */ React54.createElement("p", { className: "mt-4 font-body text-lg leading-relaxed text-tertiary max-w-2xl mx-auto" }, subtitle)), finalContactImage && /* @__PURE__ */ React54.createElement("div", { className: "mb-12 overflow-hidden h-72 md:h-96" }, /* @__PURE__ */ React54.createElement(
18852
+ return /* @__PURE__ */ React58.createElement("section", { className: "bg-primary py-16 md:py-24" }, /* @__PURE__ */ React58.createElement("div", { className: "mx-auto max-w-4xl px-4 md:px-8" }, /* @__PURE__ */ React58.createElement("div", { className: "text-center mb-12" }, /* @__PURE__ */ React58.createElement("h2", { className: "font-display text-4xl font-normal leading-tight text-fg-primary md:text-5xl" }, title), /* @__PURE__ */ React58.createElement("p", { className: "mt-4 font-body text-lg leading-relaxed text-tertiary max-w-2xl mx-auto" }, subtitle)), finalContactImage && /* @__PURE__ */ React58.createElement("div", { className: "mb-12 overflow-hidden h-72 md:h-96" }, /* @__PURE__ */ React58.createElement(
18465
18853
  PhotoWithFallback2,
18466
18854
  {
18467
18855
  photoUrl: finalContactImage,
@@ -18469,7 +18857,14 @@ var ContactSection4 = ({
18469
18857
  fallbackId: "contact-image",
18470
18858
  className: "h-full w-full object-cover"
18471
18859
  }
18472
- )), /* @__PURE__ */ React54.createElement("div", { className: "max-w-2xl mx-auto" }, /* @__PURE__ */ React54.createElement(ContactSectionForm4, { formDefinition }))));
18860
+ )), /* @__PURE__ */ React58.createElement("div", { className: "max-w-2xl mx-auto" }, /* @__PURE__ */ React58.createElement(
18861
+ ContactSectionForm4,
18862
+ {
18863
+ formDefinition,
18864
+ privacyPolicyUrl,
18865
+ termsOfServiceUrl
18866
+ }
18867
+ ))));
18473
18868
  };
18474
18869
  registerThemeVariant("contact-section", "balance", ContactSection4);
18475
18870
 
@@ -18551,7 +18946,7 @@ var AboutHome4 = ({
18551
18946
  registerThemeVariant("about-home", "balance", AboutHome4);
18552
18947
 
18553
18948
  // src/design_system/sections/testimonials-home.balance.tsx
18554
- import React55 from "react";
18949
+ import React59 from "react";
18555
18950
  var TestimonialsHome4 = ({
18556
18951
  testimonials: testimonialsData,
18557
18952
  title = "",
@@ -18560,7 +18955,7 @@ var TestimonialsHome4 = ({
18560
18955
  }) => {
18561
18956
  const testimonials = Array.isArray(testimonialsData) ? testimonialsData : [];
18562
18957
  const displayTestimonials = perPage ? testimonials.slice(0, perPage) : testimonials;
18563
- return /* @__PURE__ */ React55.createElement("section", { className: "bg-primary py-16 md:py-24" }, /* @__PURE__ */ React55.createElement("div", { className: "mx-auto max-w-container px-4 md:px-8" }, /* @__PURE__ */ React55.createElement("div", { className: "text-center mb-12 max-w-3xl mx-auto" }, /* @__PURE__ */ React55.createElement("h2", { className: "font-display text-4xl font-normal text-fg-primary md:text-5xl mb-4" }, title), subtitle && /* @__PURE__ */ React55.createElement("p", { className: "font-body text-lg text-secondary" }, subtitle)), /* @__PURE__ */ React55.createElement(
18958
+ return /* @__PURE__ */ React59.createElement("section", { className: "bg-primary py-16 md:py-24" }, /* @__PURE__ */ React59.createElement("div", { className: "mx-auto max-w-container px-4 md:px-8" }, /* @__PURE__ */ React59.createElement("div", { className: "text-center mb-12 max-w-3xl mx-auto" }, /* @__PURE__ */ React59.createElement("h2", { className: "font-display text-4xl font-normal text-fg-primary md:text-5xl mb-4" }, title), subtitle && /* @__PURE__ */ React59.createElement("p", { className: "font-body text-lg text-secondary" }, subtitle)), /* @__PURE__ */ React59.createElement(
18564
18959
  CarouselSectionWrapper,
18565
18960
  {
18566
18961
  title: "",
@@ -18574,7 +18969,7 @@ var TestimonialsHome4 = ({
18574
18969
  const avatarUrl = getAvatarUrl(testimonial.photo_attachments, testimonial.id, reviewerName);
18575
18970
  const rating = testimonial.rating || 5;
18576
18971
  const initials = reviewerName.split(" ").map((n) => n[0]).join("").toUpperCase().slice(0, 2);
18577
- return /* @__PURE__ */ React55.createElement(Carousel.Item, { key: testimonial.id || i, className: "pl-4 md:basis-1/2 lg:basis-1/3" }, /* @__PURE__ */ React55.createElement("div", { className: "bg-secondary/30 p-8 h-full flex flex-col" }, /* @__PURE__ */ React55.createElement("div", { className: "flex gap-1 mb-6" }, Array.from({ length: 5 }).map((_, starIdx) => /* @__PURE__ */ React55.createElement(
18972
+ return /* @__PURE__ */ React59.createElement(Carousel.Item, { key: testimonial.id || i, className: "pl-4 md:basis-1/2 lg:basis-1/3" }, /* @__PURE__ */ React59.createElement("div", { className: "bg-secondary/30 p-8 h-full flex flex-col" }, /* @__PURE__ */ React59.createElement("div", { className: "flex gap-1 mb-6" }, Array.from({ length: 5 }).map((_, starIdx) => /* @__PURE__ */ React59.createElement(
18578
18973
  "svg",
18579
18974
  {
18580
18975
  key: starIdx,
@@ -18586,8 +18981,8 @@ var TestimonialsHome4 = ({
18586
18981
  strokeWidth: "2",
18587
18982
  viewBox: "0 0 24 24"
18588
18983
  },
18589
- /* @__PURE__ */ React55.createElement("path", { d: "M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z" })
18590
- ))), /* @__PURE__ */ React55.createElement("p", { className: "font-body text-base leading-relaxed text-secondary mb-8 flex-grow" }, '"', quote, '"'), /* @__PURE__ */ React55.createElement("div", { className: "flex items-center gap-4 pt-6 border-t border-primary/20" }, /* @__PURE__ */ React55.createElement(
18984
+ /* @__PURE__ */ React59.createElement("path", { d: "M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z" })
18985
+ ))), /* @__PURE__ */ React59.createElement("p", { className: "font-body text-base leading-relaxed text-secondary mb-8 flex-grow" }, '"', quote, '"'), /* @__PURE__ */ React59.createElement("div", { className: "flex items-center gap-4 pt-6 border-t border-primary/20" }, /* @__PURE__ */ React59.createElement(
18591
18986
  Avatar2,
18592
18987
  {
18593
18988
  src: avatarUrl,
@@ -18595,14 +18990,14 @@ var TestimonialsHome4 = ({
18595
18990
  initials,
18596
18991
  size: "xl"
18597
18992
  }
18598
- ), /* @__PURE__ */ React55.createElement("div", null, /* @__PURE__ */ React55.createElement("p", { className: "font-body text-sm font-medium text-fg-primary" }, reviewerName), /* @__PURE__ */ React55.createElement("p", { className: "font-body text-xs text-tertiary mt-0.5" }, "Verified Customer")))));
18993
+ ), /* @__PURE__ */ React59.createElement("div", null, /* @__PURE__ */ React59.createElement("p", { className: "font-body text-sm font-medium text-fg-primary" }, reviewerName), /* @__PURE__ */ React59.createElement("p", { className: "font-body text-xs text-tertiary mt-0.5" }, "Verified Customer")))));
18599
18994
  })
18600
18995
  )));
18601
18996
  };
18602
18997
  registerThemeVariant("testimonials-home", "balance", TestimonialsHome4);
18603
18998
 
18604
18999
  // src/design_system/sections/blog-section.balance.tsx
18605
- import React56 from "react";
19000
+ import React60 from "react";
18606
19001
  var BlogSection4 = ({
18607
19002
  blogPosts: postsData,
18608
19003
  title = "",
@@ -18622,7 +19017,7 @@ var BlogSection4 = ({
18622
19017
  return "Recent";
18623
19018
  }
18624
19019
  };
18625
- return /* @__PURE__ */ React56.createElement("section", { className: "bg-secondary py-16 md:py-24" }, /* @__PURE__ */ React56.createElement("div", { className: "mx-auto max-w-container px-4 md:px-8" }, /* @__PURE__ */ React56.createElement("div", { className: "text-center mb-16 max-w-3xl mx-auto" }, /* @__PURE__ */ React56.createElement("h2", { className: "font-display text-4xl font-normal text-fg-primary md:text-5xl mb-4" }, title), subtitle && /* @__PURE__ */ React56.createElement("p", { className: "font-body text-lg text-secondary" }, subtitle)), /* @__PURE__ */ React56.createElement(
19020
+ return /* @__PURE__ */ React60.createElement("section", { className: "bg-secondary py-16 md:py-24" }, /* @__PURE__ */ React60.createElement("div", { className: "mx-auto max-w-container px-4 md:px-8" }, /* @__PURE__ */ React60.createElement("div", { className: "text-center mb-16 max-w-3xl mx-auto" }, /* @__PURE__ */ React60.createElement("h2", { className: "font-display text-4xl font-normal text-fg-primary md:text-5xl mb-4" }, title), subtitle && /* @__PURE__ */ React60.createElement("p", { className: "font-body text-lg text-secondary" }, subtitle)), /* @__PURE__ */ React60.createElement(
18626
19021
  CarouselSectionWrapper,
18627
19022
  {
18628
19023
  title: "",
@@ -18632,16 +19027,16 @@ var BlogSection4 = ({
18632
19027
  postsArray.map((post) => {
18633
19028
  var _a;
18634
19029
  const excerpt = ((_a = post.content_markdown) == null ? void 0 : _a.replace(/[#*\[\]()]/g, "").trim().substring(0, 150)) || "";
18635
- return /* @__PURE__ */ React56.createElement(Carousel.Item, { key: post.id, className: "pl-4 md:basis-1/2 lg:basis-1/3" }, /* @__PURE__ */ React56.createElement("a", { href: `/blog/${post.slug}`, className: "flex flex-col h-full group bg-primary" }, /* @__PURE__ */ React56.createElement("div", { className: "w-full h-64 overflow-hidden" }, /* @__PURE__ */ React56.createElement(
19030
+ return /* @__PURE__ */ React60.createElement(Carousel.Item, { key: post.id, className: "pl-4 md:basis-1/2 lg:basis-1/3" }, /* @__PURE__ */ React60.createElement("a", { href: `/blog/${post.slug}`, className: "flex flex-col h-full group bg-primary" }, /* @__PURE__ */ React60.createElement("div", { className: "w-full h-64 overflow-hidden" }, /* @__PURE__ */ React60.createElement(
18636
19031
  PhotoWithFallback2,
18637
19032
  {
18638
19033
  item: post,
18639
19034
  fallbackId: post.id,
18640
19035
  className: "w-full h-full object-cover transition-transform duration-300 group-hover:scale-105"
18641
19036
  }
18642
- )), /* @__PURE__ */ React56.createElement("div", { className: "p-6 flex flex-col flex-grow" }, /* @__PURE__ */ React56.createElement("p", { className: "text-xs font-body font-medium uppercase tracking-wide mb-3 text-brand-accent" }, formatDate4(post.published_at)), /* @__PURE__ */ React56.createElement("h3", { className: "font-display text-2xl font-normal text-fg-primary mb-3 group-hover:text-brand-accent transition-colors line-clamp-2" }, post.title), excerpt && /* @__PURE__ */ React56.createElement("p", { className: "font-body text-base leading-relaxed text-tertiary flex-grow line-clamp-3" }, excerpt), /* @__PURE__ */ React56.createElement("span", { className: "mt-4 font-body text-sm font-medium uppercase tracking-wide", style: { color: "var(--color-text-brand-accent)" } }, "Read More \u2192"))));
19037
+ )), /* @__PURE__ */ React60.createElement("div", { className: "p-6 flex flex-col flex-grow" }, /* @__PURE__ */ React60.createElement("p", { className: "text-xs font-body font-medium uppercase tracking-wide mb-3 text-brand-accent" }, formatDate4(post.published_at)), /* @__PURE__ */ React60.createElement("h3", { className: "font-display text-2xl font-normal text-fg-primary mb-3 group-hover:text-brand-accent transition-colors line-clamp-2" }, post.title), excerpt && /* @__PURE__ */ React60.createElement("p", { className: "font-body text-base leading-relaxed text-tertiary flex-grow line-clamp-3" }, excerpt), /* @__PURE__ */ React60.createElement("span", { className: "mt-4 font-body text-sm font-medium uppercase tracking-wide", style: { color: "var(--color-text-brand-accent)" } }, "Read More \u2192"))));
18643
19038
  })
18644
- ), postsArray.length > 0 && /* @__PURE__ */ React56.createElement("div", { className: "mt-12 text-center" }, /* @__PURE__ */ React56.createElement(
19039
+ ), postsArray.length > 0 && /* @__PURE__ */ React60.createElement("div", { className: "mt-12 text-center" }, /* @__PURE__ */ React60.createElement(
18645
19040
  Button2,
18646
19041
  {
18647
19042
  as: "a",
@@ -18656,7 +19051,7 @@ var BlogSection4 = ({
18656
19051
  registerThemeVariant("blog-section", "balance", BlogSection4);
18657
19052
 
18658
19053
  // src/design_system/sections/team-grid.balance.tsx
18659
- import React57 from "react";
19054
+ import React61 from "react";
18660
19055
  var TeamGrid3 = ({
18661
19056
  teamMembers: membersData,
18662
19057
  title = "",
@@ -18667,10 +19062,10 @@ var TeamGrid3 = ({
18667
19062
  }) => {
18668
19063
  const members = Array.isArray(membersData) ? membersData : [];
18669
19064
  const displayMembers = members.slice(0, maxMembers);
18670
- return /* @__PURE__ */ React57.createElement("section", { className: `${backgroundColor} py-16 md:py-24 ${className}` }, /* @__PURE__ */ React57.createElement("div", { className: "mx-auto w-full max-w-container px-4 md:px-8" }, (title || subtitle) && /* @__PURE__ */ React57.createElement("div", { className: "mx-auto mb-12 flex w-full max-w-3xl flex-col items-center text-center" }, title && /* @__PURE__ */ React57.createElement("h2", { className: "text-display-sm font-semibold text-primary md:text-display-md" }, title), subtitle && /* @__PURE__ */ React57.createElement("p", { className: "mt-4 text-lg text-tertiary md:mt-5 md:text-xl" }, subtitle)), displayMembers.length > 0 ? /* @__PURE__ */ React57.createElement("div", { className: "mt-12 md:mt-16" }, /* @__PURE__ */ React57.createElement("ul", { className: "grid w-full grid-cols-1 gap-x-8 gap-y-10 sm:grid-cols-2 md:gap-y-12 lg:grid-cols-3 xl:grid-cols-4 justify-items-center" }, displayMembers.map((member, index) => {
19065
+ return /* @__PURE__ */ React61.createElement("section", { className: `${backgroundColor} py-16 md:py-24 ${className}` }, /* @__PURE__ */ React61.createElement("div", { className: "mx-auto w-full max-w-container px-4 md:px-8" }, (title || subtitle) && /* @__PURE__ */ React61.createElement("div", { className: "mx-auto mb-12 flex w-full max-w-3xl flex-col items-center text-center" }, title && /* @__PURE__ */ React61.createElement("h2", { className: "text-display-sm font-semibold text-primary md:text-display-md" }, title), subtitle && /* @__PURE__ */ React61.createElement("p", { className: "mt-4 text-lg text-tertiary md:mt-5 md:text-xl" }, subtitle)), displayMembers.length > 0 ? /* @__PURE__ */ React61.createElement("div", { className: "mt-12 md:mt-16" }, /* @__PURE__ */ React61.createElement("ul", { className: "grid w-full grid-cols-1 gap-x-8 gap-y-10 sm:grid-cols-2 md:gap-y-12 lg:grid-cols-3 xl:grid-cols-4 justify-items-center" }, displayMembers.map((member, index) => {
18671
19066
  var _a;
18672
19067
  const bio = ((_a = member.bio_markdown) == null ? void 0 : _a.replace(/[#*\[\]()]/g, "").trim()) || "";
18673
- return /* @__PURE__ */ React57.createElement("li", { key: member.id || index, className: "flex flex-col gap-5 md:gap-6 max-w-xs w-full" }, /* @__PURE__ */ React57.createElement(
19068
+ return /* @__PURE__ */ React61.createElement("li", { key: member.id || index, className: "flex flex-col gap-5 md:gap-6 max-w-xs w-full" }, /* @__PURE__ */ React61.createElement(
18674
19069
  PhotoWithFallback2,
18675
19070
  {
18676
19071
  item: member,
@@ -18678,13 +19073,13 @@ var TeamGrid3 = ({
18678
19073
  alt: member.name || "Team member",
18679
19074
  className: "h-78 w-full object-cover md:h-74 rounded-2xl"
18680
19075
  }
18681
- ), /* @__PURE__ */ React57.createElement("div", null, /* @__PURE__ */ React57.createElement("h3", { className: "text-lg font-semibold text-primary md:text-xl" }, member.name), /* @__PURE__ */ React57.createElement("p", { className: "text-md text-brand-secondary md:mt-0.5 md:text-lg" }, member.position), bio && /* @__PURE__ */ React57.createElement("p", { className: "mt-4 text-md text-tertiary leading-relaxed" }, bio)));
18682
- }))) : /* @__PURE__ */ React57.createElement("div", { className: "text-center mt-12" }, /* @__PURE__ */ React57.createElement("p", { className: "text-gray-500" }, "No team members available"))));
19076
+ ), /* @__PURE__ */ React61.createElement("div", null, /* @__PURE__ */ React61.createElement("h3", { className: "text-lg font-semibold text-primary md:text-xl" }, member.name), /* @__PURE__ */ React61.createElement("p", { className: "text-md text-brand-secondary md:mt-0.5 md:text-lg" }, member.position), bio && /* @__PURE__ */ React61.createElement("p", { className: "mt-4 text-md text-tertiary leading-relaxed" }, bio)));
19077
+ }))) : /* @__PURE__ */ React61.createElement("div", { className: "text-center mt-12" }, /* @__PURE__ */ React61.createElement("p", { className: "text-gray-500" }, "No team members available"))));
18683
19078
  };
18684
19079
  registerThemeVariant("team-grid", "balance", TeamGrid3);
18685
19080
 
18686
19081
  // src/design_system/sections/services-grid.balance.tsx
18687
- import React58 from "react";
19082
+ import React62 from "react";
18688
19083
  import Link12 from "next/link";
18689
19084
  var ServicesGrid3 = ({
18690
19085
  services: servicesData,
@@ -18694,12 +19089,12 @@ var ServicesGrid3 = ({
18694
19089
  className = ""
18695
19090
  }) => {
18696
19091
  const services = Array.isArray(servicesData) ? servicesData : [];
18697
- return /* @__PURE__ */ React58.createElement("section", { className: `${backgroundColor} py-16 md:py-24 ${className}` }, /* @__PURE__ */ React58.createElement("div", { className: "mx-auto w-full max-w-container px-4 md:px-8" }, (title || subtitle) && /* @__PURE__ */ React58.createElement("div", { className: "mx-auto mb-12 flex w-full max-w-3xl flex-col items-center text-center" }, title && /* @__PURE__ */ React58.createElement("h2", { className: "font-display text-4xl font-normal text-fg-primary md:text-5xl" }, title), subtitle && /* @__PURE__ */ React58.createElement("p", { className: "mt-4 font-body text-lg text-secondary md:mt-5 md:text-xl" }, subtitle)), services.length > 0 ? /* @__PURE__ */ React58.createElement("ul", { className: "grid grid-cols-1 gap-x-8 gap-y-10 sm:grid-cols-2 md:gap-y-12 lg:grid-cols-3" }, services.map((service, index) => {
19092
+ return /* @__PURE__ */ React62.createElement("section", { className: `${backgroundColor} py-16 md:py-24 ${className}` }, /* @__PURE__ */ React62.createElement("div", { className: "mx-auto w-full max-w-container px-4 md:px-8" }, (title || subtitle) && /* @__PURE__ */ React62.createElement("div", { className: "mx-auto mb-12 flex w-full max-w-3xl flex-col items-center text-center" }, title && /* @__PURE__ */ React62.createElement("h2", { className: "font-display text-4xl font-normal text-fg-primary md:text-5xl" }, title), subtitle && /* @__PURE__ */ React62.createElement("p", { className: "mt-4 font-body text-lg text-secondary md:mt-5 md:text-xl" }, subtitle)), services.length > 0 ? /* @__PURE__ */ React62.createElement("ul", { className: "grid grid-cols-1 gap-x-8 gap-y-10 sm:grid-cols-2 md:gap-y-12 lg:grid-cols-3" }, services.map((service, index) => {
18698
19093
  var _a, _b, _c, _d;
18699
19094
  const description = service.summary || (service.description_markdown ? service.description_markdown.replace(/[#*\[\]()]/g, "").trim().substring(0, 120) + "..." : "");
18700
19095
  const photo = ((_b = (_a = service.photo_attachments) == null ? void 0 : _a.find((pa) => pa.featured)) == null ? void 0 : _b.photo) || ((_d = (_c = service.photo_attachments) == null ? void 0 : _c[0]) == null ? void 0 : _d.photo);
18701
19096
  const imageAlt = (photo == null ? void 0 : photo.title) || service.name;
18702
- return /* @__PURE__ */ React58.createElement("li", { key: service.id || index }, /* @__PURE__ */ React58.createElement("div", { className: "flex flex-col gap-12 bg-secondary p-5 md:inline-flex md:gap-16 md:p-6 rounded-lg group" }, /* @__PURE__ */ React58.createElement(Link12, { href: `/services/${service.slug}`, className: "block" }, /* @__PURE__ */ React58.createElement("div", { className: "h-48 w-full overflow-hidden rounded-lg md:h-64" }, /* @__PURE__ */ React58.createElement(
19097
+ return /* @__PURE__ */ React62.createElement("li", { key: service.id || index }, /* @__PURE__ */ React62.createElement("div", { className: "flex flex-col gap-12 bg-secondary p-5 md:inline-flex md:gap-16 md:p-6 rounded-lg group" }, /* @__PURE__ */ React62.createElement(Link12, { href: `/services/${service.slug}`, className: "block" }, /* @__PURE__ */ React62.createElement("div", { className: "h-48 w-full overflow-hidden rounded-lg md:h-64" }, /* @__PURE__ */ React62.createElement(
18703
19098
  PhotoWithFallback2,
18704
19099
  {
18705
19100
  item: service,
@@ -18707,8 +19102,8 @@ var ServicesGrid3 = ({
18707
19102
  alt: imageAlt || "Service image",
18708
19103
  className: "size-full object-cover transition-transform duration-300 group-hover:scale-105"
18709
19104
  }
18710
- )), /* @__PURE__ */ React58.createElement("h3", { className: "font-display text-2xl font-normal text-fg-primary mt-4 mb-3 group-hover:text-brand-accent transition-colors" }, service.name), description && /* @__PURE__ */ React58.createElement("p", { className: "font-body text-base leading-relaxed text-tertiary mb-4" }, description), /* @__PURE__ */ React58.createElement("span", { className: "font-body text-sm font-medium uppercase tracking-wide", style: { color: "var(--color-text-brand-accent)" } }, "Learn More \u2192"))));
18711
- })) : /* @__PURE__ */ React58.createElement("div", { className: "text-center py-12" }, /* @__PURE__ */ React58.createElement("p", { className: "font-body text-base text-tertiary" }, "No services available"))));
19105
+ )), /* @__PURE__ */ React62.createElement("h3", { className: "font-display text-2xl font-normal text-fg-primary mt-4 mb-3 group-hover:text-brand-accent transition-colors" }, service.name), description && /* @__PURE__ */ React62.createElement("p", { className: "font-body text-base leading-relaxed text-tertiary mb-4" }, description), /* @__PURE__ */ React62.createElement("span", { className: "font-body text-sm font-medium uppercase tracking-wide", style: { color: "var(--color-text-brand-accent)" } }, "Learn More \u2192"))));
19106
+ })) : /* @__PURE__ */ React62.createElement("div", { className: "text-center py-12" }, /* @__PURE__ */ React62.createElement("p", { className: "font-body text-base text-tertiary" }, "No services available"))));
18712
19107
  };
18713
19108
  registerThemeVariant("services-grid", "balance", ServicesGrid3);
18714
19109
 
@@ -18824,15 +19219,459 @@ var FeatureTabHorizontal = ({ title, subtitle, footer, isCurrent }) => /* @__PUR
18824
19219
  footer
18825
19220
  );
18826
19221
 
19222
+ // src/design_system/sections/service-menu-section.tsx
19223
+ import React63, { useState as useState30, useEffect as useEffect11, useCallback as useCallback10, useMemo as useMemo8 } from "react";
19224
+ import { createPortal } from "react-dom";
19225
+ var SERVICE_MENU_MODAL_ROOT_ID = "service-menu-modal-root";
19226
+ var CYCLE_INTERVAL_MIN_MS = 6e3;
19227
+ var CYCLE_INTERVAL_MAX_MS = 8e3;
19228
+ function seedToUnit(seed) {
19229
+ let h = 2166136261 >>> 0;
19230
+ for (let i = 0; i < seed.length; i++) {
19231
+ h ^= seed.charCodeAt(i);
19232
+ h = Math.imul(h, 16777619) >>> 0 >>> 0;
19233
+ }
19234
+ return (h >>> 0) / 4294967296;
19235
+ }
19236
+ function photoAttachmentDisplayUrl(pa) {
19237
+ var _a, _b;
19238
+ return ((_a = pa.photo) == null ? void 0 : _a.large_url) || ((_b = pa.photo) == null ? void 0 : _b.medium_url);
19239
+ }
19240
+ function photoAttachmentAlt(pa) {
19241
+ var _a, _b;
19242
+ return ((_a = pa.photo) == null ? void 0 : _a.alt_text) || ((_b = pa.photo) == null ? void 0 : _b.title) || "";
19243
+ }
19244
+ function shuffleWithSeed(array, seed) {
19245
+ if (array.length <= 1) return array;
19246
+ const arr = [...array];
19247
+ let h = 2166136261 >>> 0;
19248
+ for (let i = 0; i < seed.length; i++) {
19249
+ h ^= seed.charCodeAt(i);
19250
+ h = Math.imul(h, 16777619) >>> 0 >>> 0;
19251
+ }
19252
+ const next = (step) => {
19253
+ h = Math.imul(1664525, h + step >>> 0) + 1013904223 >>> 0;
19254
+ return (h >>> 0) / 4294967296;
19255
+ };
19256
+ for (let i = arr.length - 1; i > 0; i--) {
19257
+ const j = Math.floor(next(i) * (i + 1));
19258
+ [arr[i], arr[j]] = [arr[j], arr[i]];
19259
+ }
19260
+ return arr;
19261
+ }
19262
+ var CROSSFADE_DURATION_MS = 600;
19263
+ function useCycledPhotoList(photoAttachments, seed) {
19264
+ return useMemo8(
19265
+ () => {
19266
+ const arr = Array.isArray(photoAttachments) && photoAttachments.length > 0 ? photoAttachments : [];
19267
+ if (arr.length === 0) return [];
19268
+ const shuffled = shuffleWithSeed(arr, seed);
19269
+ return shuffled.map((pa) => {
19270
+ var _a;
19271
+ return { url: (_a = photoAttachmentDisplayUrl(pa)) != null ? _a : "", alt: photoAttachmentAlt(pa) };
19272
+ }).filter((x) => x.url);
19273
+ },
19274
+ [photoAttachments, seed]
19275
+ );
19276
+ }
19277
+ function GridCardWithImage({
19278
+ photoAttachments,
19279
+ fallbackId,
19280
+ fallbackAlt,
19281
+ title,
19282
+ subtitle,
19283
+ children,
19284
+ onClick,
19285
+ websitePhotos,
19286
+ companyInformation,
19287
+ cycleSeed
19288
+ }) {
19289
+ var _a, _b, _c, _d, _e, _f, _g;
19290
+ const seed = cycleSeed != null ? cycleSeed : String(fallbackId);
19291
+ const list = useCycledPhotoList(photoAttachments, seed);
19292
+ const [currentIndex, setCurrentIndex] = useState30(0);
19293
+ const [transitioning, setTransitioning] = useState30(false);
19294
+ const intervalMs = useMemo8(
19295
+ () => CYCLE_INTERVAL_MIN_MS + Math.floor(seedToUnit(seed) * (CYCLE_INTERVAL_MAX_MS - CYCLE_INTERVAL_MIN_MS + 1)),
19296
+ [seed]
19297
+ );
19298
+ useEffect11(() => {
19299
+ if (list.length <= 1) return;
19300
+ const id3 = setInterval(() => setTransitioning(true), intervalMs);
19301
+ return () => clearInterval(id3);
19302
+ }, [list.length, intervalMs]);
19303
+ useEffect11(() => {
19304
+ if (!transitioning || list.length <= 1) return;
19305
+ const t = setTimeout(() => {
19306
+ setCurrentIndex((i) => (i + 1) % list.length);
19307
+ setTransitioning(false);
19308
+ }, CROSSFADE_DURATION_MS);
19309
+ return () => clearTimeout(t);
19310
+ }, [transitioning, list.length]);
19311
+ const nextIndex = list.length > 1 ? (currentIndex + 1) % list.length : 0;
19312
+ const currentItem = list[currentIndex];
19313
+ const displayAlt = (currentItem == null ? void 0 : currentItem.alt) || fallbackAlt;
19314
+ const singleUrl = (_a = list[0]) == null ? void 0 : _a.url;
19315
+ return /* @__PURE__ */ React63.createElement(
19316
+ "button",
19317
+ {
19318
+ type: "button",
19319
+ onClick,
19320
+ className: "flex flex-col h-full w-full text-left group block rounded-lg outline-none focus-visible:ring-2 focus-visible:ring-brand-accent focus-visible:ring-offset-2"
19321
+ },
19322
+ /* @__PURE__ */ React63.createElement("div", { className: "w-full h-36 overflow-hidden rounded-lg mb-3 relative" }, list.length === 0 ? /* @__PURE__ */ React63.createElement(
19323
+ PhotoWithFallback2,
19324
+ {
19325
+ item: void 0,
19326
+ fallbackId,
19327
+ alt: fallbackAlt,
19328
+ className: "w-full h-full object-cover transition-transform duration-300 group-hover:scale-105",
19329
+ websitePhotos,
19330
+ companyInformation
19331
+ }
19332
+ ) : list.length === 1 && singleUrl ? (
19333
+ // eslint-disable-next-line @next/next/no-img-element -- dynamic API URLs; next/image not configured for external host
19334
+ /* @__PURE__ */ React63.createElement(
19335
+ "img",
19336
+ {
19337
+ src: singleUrl,
19338
+ alt: displayAlt,
19339
+ className: "w-full h-full object-cover transition-transform duration-300 group-hover:scale-105"
19340
+ }
19341
+ )
19342
+ ) : /* @__PURE__ */ React63.createElement(React63.Fragment, null, /* @__PURE__ */ React63.createElement(
19343
+ "div",
19344
+ {
19345
+ className: `absolute inset-0 ${transitioning ? "transition-opacity duration-[600ms] ease-in-out" : "transition-none"}`,
19346
+ style: { opacity: transitioning ? 0 : 1 }
19347
+ },
19348
+ /* @__PURE__ */ React63.createElement(
19349
+ "img",
19350
+ {
19351
+ src: (_b = list[currentIndex]) == null ? void 0 : _b.url,
19352
+ alt: (_d = (_c = list[currentIndex]) == null ? void 0 : _c.alt) != null ? _d : displayAlt,
19353
+ className: "w-full h-full object-cover transition-transform duration-300 group-hover:scale-105"
19354
+ }
19355
+ )
19356
+ ), /* @__PURE__ */ React63.createElement(
19357
+ "div",
19358
+ {
19359
+ className: `absolute inset-0 ${transitioning ? "transition-opacity duration-[600ms] ease-in-out" : "transition-none"}`,
19360
+ style: { opacity: transitioning ? 1 : 0 }
19361
+ },
19362
+ /* @__PURE__ */ React63.createElement(
19363
+ "img",
19364
+ {
19365
+ src: (_e = list[nextIndex]) == null ? void 0 : _e.url,
19366
+ alt: (_g = (_f = list[nextIndex]) == null ? void 0 : _f.alt) != null ? _g : displayAlt,
19367
+ className: "w-full h-full object-cover transition-transform duration-300 group-hover:scale-105"
19368
+ }
19369
+ )
19370
+ ))),
19371
+ subtitle && /* @__PURE__ */ React63.createElement("p", { className: "text-xs font-medium text-fg-secondary uppercase tracking-wide line-clamp-1" }, subtitle),
19372
+ /* @__PURE__ */ React63.createElement("h4", { className: "font-display text-base font-normal text-fg-primary mt-1 group-hover:underline line-clamp-2" }, title),
19373
+ children
19374
+ );
19375
+ }
19376
+ function CarouselRow({
19377
+ rowTitle,
19378
+ items,
19379
+ renderItem
19380
+ }) {
19381
+ if (!(items == null ? void 0 : items.length)) return null;
19382
+ return /* @__PURE__ */ React63.createElement("div", { className: "mb-12 last:mb-0" }, /* @__PURE__ */ React63.createElement(Carousel.Root, { opts: { align: "start", loop: true } }, /* @__PURE__ */ React63.createElement("div", { className: "flex items-center justify-between gap-4 mb-2" }, /* @__PURE__ */ React63.createElement("h3", { className: "font-display text-2xl font-normal text-fg-primary md:text-3xl" }, rowTitle), /* @__PURE__ */ React63.createElement("div", { className: "flex gap-2 flex-shrink-0" }, /* @__PURE__ */ React63.createElement(Carousel.PrevTrigger, { className: "rounded-full p-1.5 border border-secondary hover:bg-primary_hover transition-colors disabled:opacity-30 disabled:cursor-not-allowed" }, /* @__PURE__ */ React63.createElement("svg", { className: "w-5 h-5 text-fg-primary", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", "aria-hidden": true }, /* @__PURE__ */ React63.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M15 19l-7-7 7-7" }))), /* @__PURE__ */ React63.createElement(Carousel.NextTrigger, { className: "rounded-full p-1.5 border border-secondary hover:bg-primary_hover transition-colors disabled:opacity-30 disabled:cursor-not-allowed" }, /* @__PURE__ */ React63.createElement("svg", { className: "w-5 h-5 text-fg-primary", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", "aria-hidden": true }, /* @__PURE__ */ React63.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M9 5l7 7-7 7" }))))), /* @__PURE__ */ React63.createElement(Carousel.Content, { className: "-ml-3" }, items.map((item, index) => {
19383
+ var _a;
19384
+ return /* @__PURE__ */ React63.createElement(Carousel.Item, { key: (_a = item.id) != null ? _a : index, className: "pl-3 basis-[70%] sm:basis-1/2 md:basis-1/3 lg:basis-1/4" }, renderItem(item, index));
19385
+ }))));
19386
+ }
19387
+ function GridRow({
19388
+ rowTitle,
19389
+ items,
19390
+ renderItem
19391
+ }) {
19392
+ if (!(items == null ? void 0 : items.length)) return null;
19393
+ return /* @__PURE__ */ React63.createElement("div", { className: "mb-12 last:mb-0" }, /* @__PURE__ */ React63.createElement("h3", { className: "font-display text-2xl font-normal text-fg-primary mb-3 md:text-3xl" }, rowTitle), /* @__PURE__ */ React63.createElement("div", { className: "grid grid-cols-2 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-4" }, items.map((item, index) => {
19394
+ var _a;
19395
+ return /* @__PURE__ */ React63.createElement("div", { key: (_a = item.id) != null ? _a : index, className: "min-w-0 flex" }, renderItem(item, index));
19396
+ })));
19397
+ }
19398
+ function MenuBlock({
19399
+ rowTitle,
19400
+ items,
19401
+ renderItem,
19402
+ layout: layout2
19403
+ }) {
19404
+ if (!(items == null ? void 0 : items.length)) return null;
19405
+ return layout2 === "carousel" ? /* @__PURE__ */ React63.createElement(CarouselRow, { rowTitle, items, renderItem }) : /* @__PURE__ */ React63.createElement(GridRow, { rowTitle, items, renderItem });
19406
+ }
19407
+ function formatPriceCents(cents) {
19408
+ if (cents == null) return null;
19409
+ return new Intl.NumberFormat("en-US", { style: "currency", currency: "USD", minimumFractionDigits: 0, maximumFractionDigits: 0 }).format(cents / 100);
19410
+ }
19411
+ function ModalSection({ title, children }) {
19412
+ return /* @__PURE__ */ React63.createElement("div", null, /* @__PURE__ */ React63.createElement("h3", { className: "font-display text-sm font-semibold text-fg-primary uppercase tracking-wide mb-2" }, title), children);
19413
+ }
19414
+ function DetailModalContent({
19415
+ detail,
19416
+ serviceItems = []
19417
+ }) {
19418
+ var _a, _b, _c, _d, _e;
19419
+ if (detail.type === "offer") {
19420
+ const o = detail.item;
19421
+ const categoryLine = ((_a = o.category_names) == null ? void 0 : _a.length) ? o.category_names.join(" | ") : null;
19422
+ const descriptionContent = o.description || o.first_service_description_markdown;
19423
+ const relatedServices = ((_b = o.services) == null ? void 0 : _b.length) ? o.services : (_c = o.service_items) != null ? _c : [];
19424
+ const relatedPackages = (_d = o.packages) != null ? _d : [];
19425
+ return /* @__PURE__ */ React63.createElement("div", { className: "space-y-6" }, categoryLine && /* @__PURE__ */ React63.createElement("p", { className: "text-sm font-medium text-fg-secondary uppercase tracking-wide" }, categoryLine), o.value_terms && !categoryLine && /* @__PURE__ */ React63.createElement("p", { className: "text-sm font-medium text-fg-secondary uppercase tracking-wide" }, o.value_terms), descriptionContent && /* @__PURE__ */ React63.createElement(ModalSection, { title: "Offer details" }, /* @__PURE__ */ React63.createElement("div", { className: "prose prose-sm font-body text-fg-primary max-w-none" }, o.description ? /* @__PURE__ */ React63.createElement("p", { className: "text-fg-primary" }, o.description) : /* @__PURE__ */ React63.createElement(MarkdownRenderer2, { content: o.first_service_description_markdown }))), o.expires_at && (() => {
19426
+ const d = new Date(o.expires_at);
19427
+ if (Number.isNaN(d.getTime())) return null;
19428
+ return /* @__PURE__ */ React63.createElement("p", { className: "text-sm text-tertiary" }, "Expires ", d.toLocaleDateString(void 0, { dateStyle: "medium" }));
19429
+ })(), relatedServices.length > 0 && /* @__PURE__ */ React63.createElement(ModalSection, { title: "Related services" }, /* @__PURE__ */ React63.createElement("ul", { className: "space-y-4" }, relatedServices.map((s) => /* @__PURE__ */ React63.createElement("li", { key: s.id, className: "border border-secondary rounded-lg p-4 bg-secondary/20" }, /* @__PURE__ */ React63.createElement("p", { className: "font-display font-medium text-fg-primary" }, s.name), "description_markdown" in s && s.description_markdown ? /* @__PURE__ */ React63.createElement("div", { className: "mt-2 prose prose-sm font-body text-fg-secondary max-w-none" }, /* @__PURE__ */ React63.createElement(MarkdownRenderer2, { content: s.description_markdown })) : s.summary ? /* @__PURE__ */ React63.createElement("p", { className: "mt-2 font-body text-sm text-fg-secondary" }, s.summary) : null)))), relatedPackages.length > 0 && /* @__PURE__ */ React63.createElement(ModalSection, { title: "Related packages" }, /* @__PURE__ */ React63.createElement("ul", { className: "space-y-4" }, relatedPackages.map((pkg) => /* @__PURE__ */ React63.createElement("li", { key: pkg.id, className: "border border-secondary rounded-lg p-4 bg-secondary/20" }, /* @__PURE__ */ React63.createElement("p", { className: "font-display font-medium text-fg-primary" }, pkg.name), "description_markdown" in pkg && pkg.description_markdown ? /* @__PURE__ */ React63.createElement("div", { className: "mt-2 prose prose-sm font-body text-fg-secondary max-w-none" }, /* @__PURE__ */ React63.createElement(MarkdownRenderer2, { content: pkg.description_markdown })) : pkg.summary ? /* @__PURE__ */ React63.createElement("p", { className: "mt-2 font-body text-sm text-fg-secondary" }, pkg.summary) : null)))));
19430
+ }
19431
+ if (detail.type === "package") {
19432
+ const p = detail.item;
19433
+ const categoryLine = ((_e = p.category_names) == null ? void 0 : _e.length) ? p.category_names.join(" | ") : null;
19434
+ const descriptionMarkdown2 = p.description_markdown || p.summary || p.first_service_description_markdown;
19435
+ return /* @__PURE__ */ React63.createElement("div", { className: "space-y-6" }, categoryLine && /* @__PURE__ */ React63.createElement("p", { className: "text-sm font-medium text-fg-secondary uppercase tracking-wide" }, categoryLine), descriptionMarkdown2 && /* @__PURE__ */ React63.createElement(ModalSection, { title: "Package details" }, /* @__PURE__ */ React63.createElement("div", { className: "prose prose-sm font-body text-fg-primary max-w-none" }, /* @__PURE__ */ React63.createElement(MarkdownRenderer2, { content: descriptionMarkdown2 }))), p.package_items && p.package_items.length > 0 && /* @__PURE__ */ React63.createElement(ModalSection, { title: "What's included" }, /* @__PURE__ */ React63.createElement("ul", { className: "space-y-4" }, p.package_items.map((pi, i) => {
19436
+ var _a2, _b2, _c2, _d2, _e2, _f, _g, _h, _i;
19437
+ const fullItem = ((_a2 = pi.service_item) == null ? void 0 : _a2.id) != null ? serviceItems.find((si2) => si2.id === pi.service_item.id) : null;
19438
+ const name = (_d2 = (_c2 = fullItem == null ? void 0 : fullItem.name) != null ? _c2 : (_b2 = pi.service_item) == null ? void 0 : _b2.name) != null ? _d2 : "Item";
19439
+ const desc = (_g = (_e2 = fullItem == null ? void 0 : fullItem.summary) != null ? _e2 : fullItem == null ? void 0 : fullItem.description_markdown) != null ? _g : (_f = pi.service_item) == null ? void 0 : _f.summary;
19440
+ return /* @__PURE__ */ React63.createElement("li", { key: (_i = (_h = pi.service_item) == null ? void 0 : _h.id) != null ? _i : i, className: "border border-secondary rounded-lg p-4 bg-secondary/20" }, /* @__PURE__ */ React63.createElement("p", { className: "font-display font-medium text-fg-primary" }, pi.quantity > 1 && `${pi.quantity}\xD7 `, name), desc && /* @__PURE__ */ React63.createElement("div", { className: "mt-2 prose prose-sm font-body text-fg-secondary max-w-none" }, typeof desc === "string" && !desc.includes("\n") && !desc.match(/[#*\[\]]/) ? /* @__PURE__ */ React63.createElement("p", null, desc) : /* @__PURE__ */ React63.createElement(MarkdownRenderer2, { content: desc })));
19441
+ }))), p.pricing_info && /* @__PURE__ */ React63.createElement(ModalSection, { title: "Pricing" }, /* @__PURE__ */ React63.createElement("div", { className: "rounded-lg border border-secondary bg-secondary/40 p-4" }, /* @__PURE__ */ React63.createElement("div", { className: "prose prose-sm font-body text-fg-primary max-w-none" }, /* @__PURE__ */ React63.createElement(MarkdownRenderer2, { content: p.pricing_info })))));
19442
+ }
19443
+ const si = detail.item;
19444
+ const priceStr = formatPriceCents(si.price_cents);
19445
+ const summary = si.summary || si.service_summary;
19446
+ const descriptionMarkdown = si.description_markdown || si.service_description_markdown;
19447
+ return /* @__PURE__ */ React63.createElement("div", { className: "space-y-6" }, si.service_name && /* @__PURE__ */ React63.createElement("p", { className: "text-sm font-medium text-fg-secondary uppercase tracking-wide" }, si.service_name), priceStr && /* @__PURE__ */ React63.createElement(ModalSection, { title: "Price" }, /* @__PURE__ */ React63.createElement("p", { className: "font-display text-lg font-normal text-fg-primary" }, priceStr), si.duration_minutes != null && si.duration_minutes > 0 && /* @__PURE__ */ React63.createElement("p", { className: "font-body text-sm text-fg-secondary mt-1" }, "Duration: ", si.duration_minutes, " min")), summary && /* @__PURE__ */ React63.createElement(ModalSection, { title: "Overview" }, /* @__PURE__ */ React63.createElement("p", { className: "font-body text-fg-primary" }, summary)), descriptionMarkdown && /* @__PURE__ */ React63.createElement(ModalSection, { title: "Full description" }, /* @__PURE__ */ React63.createElement("div", { className: "prose prose-sm font-body text-fg-primary max-w-none" }, /* @__PURE__ */ React63.createElement(MarkdownRenderer2, { content: descriptionMarkdown }))), si.pricing_info && /* @__PURE__ */ React63.createElement(ModalSection, { title: "Pricing details" }, /* @__PURE__ */ React63.createElement("div", { className: "rounded-lg border border-secondary bg-secondary/40 p-4" }, /* @__PURE__ */ React63.createElement("div", { className: "prose prose-sm font-body text-fg-primary max-w-none" }, /* @__PURE__ */ React63.createElement(MarkdownRenderer2, { content: si.pricing_info })))));
19448
+ }
19449
+ function ServiceMenuSection({
19450
+ title = "Service Menu",
19451
+ subtitle,
19452
+ offers = null,
19453
+ packages = null,
19454
+ services = null,
19455
+ websitePhotos,
19456
+ companyInformation,
19457
+ viewAllHref,
19458
+ viewAllText = "View All",
19459
+ servicesRowTitle = "Treatments",
19460
+ variant = "section"
19461
+ }) {
19462
+ const offerList = React63.useMemo(
19463
+ () => Array.isArray(offers) ? offers.filter((o) => !o.expired) : [],
19464
+ [offers]
19465
+ );
19466
+ const packageList = React63.useMemo(
19467
+ () => Array.isArray(packages) ? packages : [],
19468
+ [packages]
19469
+ );
19470
+ const serviceList = React63.useMemo(
19471
+ () => Array.isArray(services) ? services : [],
19472
+ [services]
19473
+ );
19474
+ const serviceItemIdToService = React63.useMemo(() => {
19475
+ const m = /* @__PURE__ */ new Map();
19476
+ serviceList.forEach((s) => (s.service_items || []).forEach((si) => m.set(si.id, s)));
19477
+ return m;
19478
+ }, [serviceList]);
19479
+ const packagesForMenu = React63.useMemo(
19480
+ () => packageList.map((pkg) => {
19481
+ var _a, _b, _c;
19482
+ const category_names = [
19483
+ ...new Set(
19484
+ (pkg.package_items || []).map((pi) => {
19485
+ var _a2, _b2, _c2;
19486
+ return (_c2 = serviceItemIdToService.get((_b2 = (_a2 = pi.service_item) == null ? void 0 : _a2.id) != null ? _b2 : 0)) == null ? void 0 : _c2.name;
19487
+ }).filter(Boolean)
19488
+ )
19489
+ ];
19490
+ const firstPi = (_a = pkg.package_items) == null ? void 0 : _a[0];
19491
+ const firstService = firstPi ? serviceItemIdToService.get((_c = (_b = firstPi.service_item) == null ? void 0 : _b.id) != null ? _c : 0) : void 0;
19492
+ const first_service_description_markdown = (firstService == null ? void 0 : firstService.description_markdown) || (firstService == null ? void 0 : firstService.summary) || null;
19493
+ return __spreadProps(__spreadValues({}, pkg), { category_names, first_service_description_markdown });
19494
+ }),
19495
+ [packageList, serviceItemIdToService]
19496
+ );
19497
+ const offersForMenu = React63.useMemo(
19498
+ () => offerList.map((offer) => {
19499
+ var _a, _b, _c;
19500
+ const category_names = (_b = ((_a = offer.category_names) == null ? void 0 : _a.length) ? offer.category_names : null) != null ? _b : (offer.service_ids || []).map((id3) => {
19501
+ var _a2;
19502
+ return (_a2 = serviceList.find((s) => s.id === id3)) == null ? void 0 : _a2.name;
19503
+ }).filter(Boolean);
19504
+ const firstServiceId = (_c = offer.service_ids) == null ? void 0 : _c[0];
19505
+ const firstService = firstServiceId ? serviceList.find((s) => s.id === firstServiceId) : void 0;
19506
+ const first_service_description_markdown = (firstService == null ? void 0 : firstService.description_markdown) || (firstService == null ? void 0 : firstService.summary) || null;
19507
+ return __spreadProps(__spreadValues({}, offer), { category_names: category_names != null ? category_names : [], first_service_description_markdown });
19508
+ }),
19509
+ [offerList, serviceList]
19510
+ );
19511
+ const serviceItemsForMenu = serviceList.flatMap(
19512
+ (s) => (s.service_items || []).map((si) => __spreadProps(__spreadValues({}, si), {
19513
+ service_name: s.name,
19514
+ service_summary: s.summary,
19515
+ service_description_markdown: s.description_markdown
19516
+ }))
19517
+ );
19518
+ const hasAny = offersForMenu.length > 0 || packagesForMenu.length > 0 || serviceItemsForMenu.length > 0;
19519
+ const CAROUSEL_MIN = 3;
19520
+ const isPage = variant === "page";
19521
+ const offersLayout = isPage ? "grid" : offersForMenu.length >= CAROUSEL_MIN ? "carousel" : "grid";
19522
+ const packagesLayout = isPage ? "grid" : packagesForMenu.length >= CAROUSEL_MIN ? "carousel" : "grid";
19523
+ const serviceItemsLayout = isPage ? "grid" : serviceItemsForMenu.length >= CAROUSEL_MIN ? "carousel" : "grid";
19524
+ const [detailItem, setDetailItem] = useState30(null);
19525
+ const [portalTarget, setPortalTarget] = useState30(null);
19526
+ useEffect11(() => {
19527
+ let el = document.getElementById(SERVICE_MENU_MODAL_ROOT_ID);
19528
+ if (!el) {
19529
+ el = document.createElement("div");
19530
+ el.id = SERVICE_MENU_MODAL_ROOT_ID;
19531
+ document.body.appendChild(el);
19532
+ }
19533
+ setPortalTarget(el);
19534
+ return () => {
19535
+ el == null ? void 0 : el.remove();
19536
+ };
19537
+ }, []);
19538
+ const closeModal = useCallback10(() => setDetailItem(null), []);
19539
+ const renderOfferCard = useCallback10(
19540
+ (offer, index) => {
19541
+ var _a, _b;
19542
+ const categorySubtitle = ((_a = offer.category_names) == null ? void 0 : _a.length) ? offer.category_names.join(" | ") : (_b = offer.value_terms) != null ? _b : null;
19543
+ const cardDesc = offer.description || offer.first_service_description_markdown;
19544
+ const plainDesc = cardDesc ? (typeof cardDesc === "string" ? cardDesc : "").replace(/[#*`\[\]]/g, "").replace(/\n+/g, " ").trim() : "";
19545
+ const descText = plainDesc.length > 120 ? plainDesc.slice(0, 120) + "\u2026" : plainDesc;
19546
+ return /* @__PURE__ */ React63.createElement(
19547
+ GridCardWithImage,
19548
+ {
19549
+ photoAttachments: offer.photo_attachments,
19550
+ fallbackId: offer.id,
19551
+ fallbackAlt: offer.name,
19552
+ title: offer.name,
19553
+ subtitle: categorySubtitle,
19554
+ onClick: () => setDetailItem({ type: "offer", item: offer }),
19555
+ websitePhotos,
19556
+ companyInformation,
19557
+ cycleSeed: `offer-${offer.id}-${index}`
19558
+ },
19559
+ descText && /* @__PURE__ */ React63.createElement("p", { className: "font-body text-sm text-tertiary mt-1 line-clamp-2" }, descText)
19560
+ );
19561
+ },
19562
+ [websitePhotos, companyInformation]
19563
+ );
19564
+ const renderPackageCard = useCallback10(
19565
+ (pkg, index) => {
19566
+ var _a;
19567
+ const categorySubtitle = ((_a = pkg.category_names) == null ? void 0 : _a.length) ? pkg.category_names.join(" | ") : null;
19568
+ const cardDesc = pkg.description_markdown || pkg.summary || pkg.first_service_description_markdown;
19569
+ const plainDesc = cardDesc ? cardDesc.replace(/[#*`\[\]]/g, "").replace(/\n+/g, " ").trim() : "";
19570
+ const descText = plainDesc.length > 120 ? plainDesc.slice(0, 120) + "\u2026" : plainDesc;
19571
+ return /* @__PURE__ */ React63.createElement(
19572
+ GridCardWithImage,
19573
+ {
19574
+ photoAttachments: pkg.photo_attachments,
19575
+ fallbackId: `pkg-${pkg.id}`,
19576
+ fallbackAlt: pkg.name,
19577
+ title: pkg.name,
19578
+ subtitle: categorySubtitle,
19579
+ onClick: () => setDetailItem({ type: "package", item: pkg }),
19580
+ websitePhotos,
19581
+ companyInformation,
19582
+ cycleSeed: `pkg-${pkg.id}-${index}`
19583
+ },
19584
+ descText && /* @__PURE__ */ React63.createElement("p", { className: "font-body text-sm text-tertiary mt-1 line-clamp-2" }, descText)
19585
+ );
19586
+ },
19587
+ [websitePhotos, companyInformation]
19588
+ );
19589
+ const renderServiceItemCard = useCallback10(
19590
+ (si, index) => {
19591
+ var _a, _b, _c, _d;
19592
+ return /* @__PURE__ */ React63.createElement(
19593
+ GridCardWithImage,
19594
+ {
19595
+ photoAttachments: si.photo_attachments,
19596
+ fallbackId: `service-item-${si.id}`,
19597
+ fallbackAlt: ((_c = (_b = (_a = si.photo_attachments) == null ? void 0 : _a[0]) == null ? void 0 : _b.photo) == null ? void 0 : _c.title) || si.name,
19598
+ title: si.name,
19599
+ subtitle: (_d = si.service_name) != null ? _d : null,
19600
+ onClick: () => setDetailItem({ type: "service_item", item: si }),
19601
+ websitePhotos,
19602
+ companyInformation,
19603
+ cycleSeed: `service-item-${si.id}-${index}`
19604
+ },
19605
+ formatPriceCents(si.price_cents) && /* @__PURE__ */ React63.createElement("p", { className: "font-body text-sm font-medium text-fg-primary mt-1" }, formatPriceCents(si.price_cents)),
19606
+ (() => {
19607
+ const desc = si.summary || si.description_markdown || si.service_summary || si.service_description_markdown;
19608
+ if (!desc) return null;
19609
+ const plain = desc.replace(/[#*`\[\]]/g, "").replace(/\n+/g, " ").trim();
19610
+ const text = plain.length > 120 ? plain.slice(0, 120) + "\u2026" : plain;
19611
+ return /* @__PURE__ */ React63.createElement("p", { className: "font-body text-sm text-tertiary mt-1 line-clamp-2" }, text);
19612
+ })()
19613
+ );
19614
+ },
19615
+ [websitePhotos, companyInformation]
19616
+ );
19617
+ if (!hasAny) return null;
19618
+ const modalTitle = detailItem ? detailItem.item.name : "";
19619
+ return /* @__PURE__ */ React63.createElement("section", { className: variant === "page" ? "py-12 md:py-20" : "py-12 md:py-16" }, /* @__PURE__ */ React63.createElement("div", { className: "mx-auto max-w-container px-4 md:px-8" }, variant === "section" && /* @__PURE__ */ React63.createElement("div", { className: "mx-auto max-w-3xl text-center mb-12 md:mb-16" }, title && /* @__PURE__ */ React63.createElement("h2", { className: "font-display text-4xl font-normal text-fg-primary md:text-5xl" }, title), subtitle && /* @__PURE__ */ React63.createElement("p", { className: "mt-4 font-display text-lg leading-relaxed text-tertiary md:text-xl max-w-3xl mx-auto" }, subtitle)), /* @__PURE__ */ React63.createElement(
19620
+ MenuBlock,
19621
+ {
19622
+ rowTitle: "Offers",
19623
+ items: offersForMenu,
19624
+ layout: offersLayout,
19625
+ renderItem: renderOfferCard
19626
+ }
19627
+ ), /* @__PURE__ */ React63.createElement(
19628
+ MenuBlock,
19629
+ {
19630
+ rowTitle: "Packages",
19631
+ items: packagesForMenu,
19632
+ layout: packagesLayout,
19633
+ renderItem: renderPackageCard
19634
+ }
19635
+ ), /* @__PURE__ */ React63.createElement(
19636
+ MenuBlock,
19637
+ {
19638
+ rowTitle: servicesRowTitle,
19639
+ items: serviceItemsForMenu,
19640
+ layout: serviceItemsLayout,
19641
+ renderItem: renderServiceItemCard
19642
+ }
19643
+ ), variant === "section" && viewAllHref && viewAllText && /* @__PURE__ */ React63.createElement("div", { className: "mt-12 text-center" }, /* @__PURE__ */ React63.createElement(Button2, { href: viewAllHref, color: "primary", size: "md" }, viewAllText))), portalTarget && detailItem && createPortal(
19644
+ /* @__PURE__ */ React63.createElement(
19645
+ Modal,
19646
+ {
19647
+ isOpen: true,
19648
+ onClose: closeModal,
19649
+ title: modalTitle,
19650
+ maxWidth: "2xl"
19651
+ },
19652
+ /* @__PURE__ */ React63.createElement(
19653
+ DetailModalContent,
19654
+ {
19655
+ detail: detailItem,
19656
+ services: serviceList,
19657
+ packages: packagesForMenu,
19658
+ serviceItems: serviceItemsForMenu
19659
+ }
19660
+ )
19661
+ ),
19662
+ portalTarget
19663
+ ));
19664
+ }
19665
+
18827
19666
  // src/design_system/sections/index.tsx
18828
19667
  function createThemedExport2(componentName, BaseComponent) {
18829
19668
  return function ThemedComponent(props) {
18830
19669
  const { theme } = useTheme();
18831
19670
  try {
18832
19671
  const Component2 = getThemedComponent(componentName, theme);
18833
- return React59.createElement(Component2, props);
19672
+ return React64.createElement(Component2, props);
18834
19673
  } catch (e) {
18835
- return React59.createElement(BaseComponent, props);
19674
+ return React64.createElement(BaseComponent, props);
18836
19675
  }
18837
19676
  };
18838
19677
  }
@@ -18871,6 +19710,9 @@ var PolicyDocumentSection2 = PolicyDocumentSection;
18871
19710
  var SocialMediaHero3 = createThemedExport2("hero-social-media", SocialMediaHero);
18872
19711
  var TestimonialsHero3 = createThemedExport2("hero-testimonials", TestimonialsHero);
18873
19712
  var HomeHeroComponent2 = createThemedExport2("home-hero-component", HomeHeroComponent);
19713
+ var OffersSection2 = createThemedExport2("offers-section", OffersSection);
19714
+ var OffersGallery2 = createThemedExport2("offers-gallery", OffersGallery);
19715
+ var OfferDetailSection2 = createThemedExport2("offer-detail", OfferDetailSection);
18874
19716
  export {
18875
19717
  AboutHome5 as AboutHome,
18876
19718
  BlogCardFullWidthHorizontal,
@@ -18931,9 +19773,14 @@ export {
18931
19773
  LocationDetailHero3 as LocationDetailHero,
18932
19774
  LocationDetailsSection3 as LocationDetailsSection,
18933
19775
  LocationGrid3 as LocationGrid,
19776
+ OfferDetailSection2 as OfferDetailSection,
19777
+ OffersGallery2 as OffersGallery,
19778
+ OffersGrid,
19779
+ OffersSection2 as OffersSection,
18934
19780
  PolicyDocumentSection2 as PolicyDocumentSection,
18935
19781
  ServiceDetailContent2 as ServiceDetailContent,
18936
19782
  ServiceDetailHero3 as ServiceDetailHero,
19783
+ ServiceMenuSection,
18937
19784
  ServicesGrid4 as ServicesGrid,
18938
19785
  ServicesHome5 as ServicesHome,
18939
19786
  SocialMediaGrid4 as SocialMediaGrid,