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
package/dist/index.js CHANGED
@@ -37,7 +37,7 @@ var __objRest = (source, exclude) => {
37
37
  };
38
38
 
39
39
  // src/design_system/sections/index.tsx
40
- import React59 from "react";
40
+ import React64 from "react";
41
41
 
42
42
  // src/lib/component-registry.ts
43
43
  var registry = /* @__PURE__ */ new Map();
@@ -97,10 +97,10 @@ function useTheme() {
97
97
 
98
98
  // src/design_system/sections/hero-home.tsx
99
99
  import { Fragment, useMemo as useMemo3, useState as useState5 } from "react";
100
- import React14 from "react";
100
+ import React15 from "react";
101
101
 
102
102
  // src/design_system/elements/index.tsx
103
- import React13 from "react";
103
+ import React14 from "react";
104
104
 
105
105
  // src/design_system/elements/buttons/button.tsx
106
106
  import React2, { isValidElement } from "react";
@@ -3722,15 +3722,114 @@ function VideoPlayButton({ onClick, className = "" }) {
3722
3722
  );
3723
3723
  }
3724
3724
 
3725
+ // src/design_system/elements/modal/modal.tsx
3726
+ import React13, { useEffect as useEffect6, useRef as useRef4 } from "react";
3727
+ var MAX_WIDTH_CLASSES = {
3728
+ sm: "max-w-sm",
3729
+ md: "max-w-md",
3730
+ lg: "max-w-lg",
3731
+ xl: "max-w-xl",
3732
+ "2xl": "max-w-2xl",
3733
+ "3xl": "max-w-3xl",
3734
+ "4xl": "max-w-4xl",
3735
+ "5xl": "max-w-5xl"
3736
+ };
3737
+ function Modal({
3738
+ isOpen,
3739
+ onClose,
3740
+ title,
3741
+ titleId = "modal-title",
3742
+ children,
3743
+ overlayClassName,
3744
+ panelClassName,
3745
+ maxWidth = "md"
3746
+ }) {
3747
+ const overlayRef = useRef4(null);
3748
+ const closeButtonRef = useRef4(null);
3749
+ useEffect6(() => {
3750
+ var _a;
3751
+ if (!isOpen) return;
3752
+ const previouslyFocused = document.activeElement;
3753
+ (_a = closeButtonRef.current) == null ? void 0 : _a.focus();
3754
+ const handleEscape = (e) => {
3755
+ if (e.key === "Escape") onClose();
3756
+ };
3757
+ document.addEventListener("keydown", handleEscape);
3758
+ document.body.style.overflow = "hidden";
3759
+ return () => {
3760
+ document.removeEventListener("keydown", handleEscape);
3761
+ document.body.style.overflow = "";
3762
+ previouslyFocused == null ? void 0 : previouslyFocused.focus();
3763
+ };
3764
+ }, [isOpen, onClose]);
3765
+ if (!isOpen) return null;
3766
+ const maxWidthClass = MAX_WIDTH_CLASSES[maxWidth];
3767
+ return /* @__PURE__ */ React13.createElement(
3768
+ "div",
3769
+ {
3770
+ ref: overlayRef,
3771
+ className: overlayClassName != null ? overlayClassName : "fixed inset-0 z-[200] flex items-center justify-center p-4 bg-black/50",
3772
+ role: "dialog",
3773
+ "aria-modal": "true",
3774
+ "aria-labelledby": title ? titleId : void 0,
3775
+ onClick: (e) => e.target === overlayRef.current && onClose()
3776
+ },
3777
+ /* @__PURE__ */ React13.createElement(
3778
+ "div",
3779
+ {
3780
+ className: panelClassName != null ? panelClassName : `bg-primary border border-secondary rounded-lg shadow-xl w-full overflow-hidden ${maxWidthClass} max-h-[90vh] flex flex-col`,
3781
+ onClick: (e) => e.stopPropagation()
3782
+ },
3783
+ /* @__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(
3784
+ "h2",
3785
+ {
3786
+ id: titleId,
3787
+ className: "font-display text-lg font-normal text-fg-primary md:text-xl flex-1 min-w-0"
3788
+ },
3789
+ title
3790
+ ) : /* @__PURE__ */ React13.createElement("span", { className: "flex-1", "aria-hidden": true }), /* @__PURE__ */ React13.createElement(
3791
+ "button",
3792
+ {
3793
+ ref: closeButtonRef,
3794
+ type: "button",
3795
+ onClick: onClose,
3796
+ className: "shrink-0 p-1 text-fg-primary hover:text-brand-accent rounded focus:outline-none focus:ring-2 focus:ring-brand-accent",
3797
+ "aria-label": "Close"
3798
+ },
3799
+ /* @__PURE__ */ React13.createElement(
3800
+ "svg",
3801
+ {
3802
+ className: "w-5 h-5",
3803
+ fill: "none",
3804
+ stroke: "currentColor",
3805
+ viewBox: "0 0 24 24",
3806
+ "aria-hidden": true
3807
+ },
3808
+ /* @__PURE__ */ React13.createElement(
3809
+ "path",
3810
+ {
3811
+ strokeLinecap: "round",
3812
+ strokeLinejoin: "round",
3813
+ strokeWidth: 2,
3814
+ d: "M6 18L18 6M6 6l12 12"
3815
+ }
3816
+ )
3817
+ )
3818
+ )),
3819
+ /* @__PURE__ */ React13.createElement("div", { className: "overflow-y-auto flex-1 p-4 md:p-6" }, children)
3820
+ )
3821
+ );
3822
+ }
3823
+
3725
3824
  // src/design_system/elements/index.tsx
3726
3825
  function createThemedExport(componentName, BaseComponent) {
3727
3826
  return function ThemedComponent(props) {
3728
3827
  const { theme } = useTheme();
3729
3828
  try {
3730
3829
  const Component2 = getThemedComponent(componentName, theme);
3731
- return React13.createElement(Component2, props);
3830
+ return React14.createElement(Component2, props);
3732
3831
  } catch (e) {
3733
- return React13.createElement(BaseComponent, props);
3832
+ return React14.createElement(BaseComponent, props);
3734
3833
  }
3735
3834
  };
3736
3835
  }
@@ -3805,13 +3904,13 @@ var AvatarsWithReview = ({
3805
3904
  };
3806
3905
  });
3807
3906
  }, [stockPhotos]);
3808
- 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(
3907
+ 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(
3809
3908
  "div",
3810
3909
  {
3811
3910
  key: index,
3812
3911
  className: "inline-block size-10 rounded-full ring-[1.5px] ring-bg-primary outline-1 -outline-offset-1 outline-avatar-contrast-border overflow-hidden"
3813
3912
  },
3814
- /* @__PURE__ */ React14.createElement(
3913
+ /* @__PURE__ */ React15.createElement(
3815
3914
  PhotoWithFallback2,
3816
3915
  {
3817
3916
  photoUrl: avatar.url,
@@ -3820,10 +3919,10 @@ var AvatarsWithReview = ({
3820
3919
  className: "size-full object-cover"
3821
3920
  }
3822
3921
  )
3823
- ))), /* @__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) => {
3922
+ ))), /* @__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) => {
3824
3923
  const clipId0 = `clip0_star_${index}`;
3825
3924
  const clipId1 = `clip1_star_${index}`;
3826
- return /* @__PURE__ */ React14.createElement(
3925
+ return /* @__PURE__ */ React15.createElement(
3827
3926
  "svg",
3828
3927
  {
3829
3928
  key: index,
@@ -3834,22 +3933,22 @@ var AvatarsWithReview = ({
3834
3933
  className: "relative size-5 shrink-0 grow-0",
3835
3934
  preserveAspectRatio: "none"
3836
3935
  },
3837
- /* @__PURE__ */ React14.createElement("g", { clipPath: `url(#${clipId0})` }, /* @__PURE__ */ React14.createElement(
3936
+ /* @__PURE__ */ React15.createElement("g", { clipPath: `url(#${clipId0})` }, /* @__PURE__ */ React15.createElement(
3838
3937
  "path",
3839
3938
  {
3840
3939
  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",
3841
3940
  className: "fill-bg-tertiary"
3842
3941
  }
3843
- ), /* @__PURE__ */ React14.createElement("g", { clipPath: `url(#${clipId1})` }, /* @__PURE__ */ React14.createElement(
3942
+ ), /* @__PURE__ */ React15.createElement("g", { clipPath: `url(#${clipId1})` }, /* @__PURE__ */ React15.createElement(
3844
3943
  "path",
3845
3944
  {
3846
3945
  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",
3847
3946
  className: "fill-warning-300"
3848
3947
  }
3849
3948
  ))),
3850
- /* @__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" })))
3949
+ /* @__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" })))
3851
3950
  );
3852
- }))), /* @__PURE__ */ React14.createElement("p", { className: "text-md font-medium text-tertiary" }, "from ", count, "+ reviews")));
3951
+ }))), /* @__PURE__ */ React15.createElement("p", { className: "text-md font-medium text-tertiary" }, "from ", count, "+ reviews")));
3853
3952
  };
3854
3953
  var HeroHome = ({
3855
3954
  websitePhotos,
@@ -3868,7 +3967,7 @@ var HeroHome = ({
3868
3967
  alt: ((_b = websitePhotos == null ? void 0 : websitePhotos.hero) == null ? void 0 : _b.alt) || "Hero image"
3869
3968
  };
3870
3969
  const stockPhotos = (websitePhotos == null ? void 0 : websitePhotos.stock_photos) || [];
3871
- 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(
3970
+ 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(
3872
3971
  Form2,
3873
3972
  {
3874
3973
  onSubmit: (e) => {
@@ -3881,7 +3980,7 @@ var HeroHome = ({
3881
3980
  },
3882
3981
  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"
3883
3982
  },
3884
- /* @__PURE__ */ React14.createElement(
3983
+ /* @__PURE__ */ React15.createElement(
3885
3984
  Input3,
3886
3985
  {
3887
3986
  isRequired: true,
@@ -3890,7 +3989,7 @@ var HeroHome = ({
3890
3989
  type: "email",
3891
3990
  placeholder: email_signup.placeholder,
3892
3991
  wrapperClassName: "py-0.5",
3893
- hint: /* @__PURE__ */ React14.createElement("span", null, "We care about your data in our", " ", /* @__PURE__ */ React14.createElement(
3992
+ hint: /* @__PURE__ */ React15.createElement("span", null, "We care about your data in our", " ", /* @__PURE__ */ React15.createElement(
3894
3993
  "a",
3895
3994
  {
3896
3995
  href: email_signup.privacy_policy_link,
@@ -3900,8 +3999,8 @@ var HeroHome = ({
3900
3999
  ), ".")
3901
4000
  }
3902
4001
  ),
3903
- /* @__PURE__ */ React14.createElement(Button2, { type: "submit", color: "primary", size: "xl" }, email_signup.button_text)
3904
- ), /* @__PURE__ */ React14.createElement(
4002
+ /* @__PURE__ */ React15.createElement(Button2, { type: "submit", color: "primary", size: "xl" }, email_signup.button_text)
4003
+ ), /* @__PURE__ */ React15.createElement(
3905
4004
  AvatarsWithReview,
3906
4005
  {
3907
4006
  count: reviews == null ? void 0 : reviews.count,
@@ -3910,11 +4009,11 @@ var HeroHome = ({
3910
4009
  }
3911
4010
  ), (() => {
3912
4011
  const statsToShow = statistics && statistics.length > 0 ? statistics.slice(0, 4) : [];
3913
- 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) => {
4012
+ 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) => {
3914
4013
  const IconComponent2 = mapIcon(stat.icon);
3915
- 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));
4014
+ 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));
3916
4015
  }));
3917
- })()), /* @__PURE__ */ React14.createElement("div", { className: "relative lg:h-full lg:min-h-160" }, /* @__PURE__ */ React14.createElement(
4016
+ })()), /* @__PURE__ */ React15.createElement("div", { className: "relative lg:h-full lg:min-h-160" }, /* @__PURE__ */ React15.createElement(
3918
4017
  PhotoWithFallback2,
3919
4018
  {
3920
4019
  photoUrl: heroImage.url,
@@ -3922,7 +4021,7 @@ var HeroHome = ({
3922
4021
  fallbackId: "hero-home-image",
3923
4022
  className: "inset-0 h-70 w-full object-cover md:h-110 lg:absolute lg:h-full"
3924
4023
  }
3925
- ), 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(
4024
+ ), 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(
3926
4025
  VideoModal,
3927
4026
  {
3928
4027
  isOpen: showVideo,
@@ -4075,6 +4174,14 @@ var AboutHome = ({
4075
4174
  };
4076
4175
 
4077
4176
  // src/utils/photo-helpers.ts
4177
+ var VIDEO_EXTENSIONS = [".mp4", ".mov", ".webm", ".m4v", ".avi", ".mkv", ".flv", ".wmv"];
4178
+ function isVideoUrl(url) {
4179
+ var _a;
4180
+ if (!url || typeof url !== "string") return false;
4181
+ const path = (_a = url.split("?")[0]) != null ? _a : "";
4182
+ const ext = path.slice(path.lastIndexOf(".")).toLowerCase();
4183
+ return VIDEO_EXTENSIONS.includes(ext);
4184
+ }
4078
4185
  function getPhotoUrl(photos) {
4079
4186
  if (photos && photos.length > 0) {
4080
4187
  const featuredPhoto = photos.find((pa) => pa.featured);
@@ -4134,21 +4241,21 @@ var TestimonialsHome = ({
4134
4241
  };
4135
4242
 
4136
4243
  // src/design_system/sections/testimonials-grid.tsx
4137
- import React15 from "react";
4244
+ import React16 from "react";
4138
4245
  var TestimonialsGrid = ({
4139
4246
  testimonials: testimonialsData,
4140
4247
  title = "",
4141
4248
  subtitle = ""
4142
4249
  }) => {
4143
4250
  const testimonials = Array.isArray(testimonialsData) ? testimonialsData : [];
4144
- 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) => {
4251
+ 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) => {
4145
4252
  var _a;
4146
4253
  const reviewerName = testimonial.reviewer_name || "Customer";
4147
4254
  const quote = ((_a = testimonial.content_markdown) == null ? void 0 : _a.replace(/[#*\[\]()]/g, "").trim()) || "";
4148
4255
  const username = `@${reviewerName.toLowerCase().replace(/\s+/g, "")}`;
4149
4256
  const avatarUrl = getAvatarUrl(testimonial.photo_attachments, testimonial.id, reviewerName);
4150
4257
  const rating = testimonial.rating || 5;
4151
- 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(
4258
+ 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(
4152
4259
  "svg",
4153
4260
  {
4154
4261
  key: i,
@@ -4158,8 +4265,8 @@ var TestimonialsGrid = ({
4158
4265
  strokeWidth: 2,
4159
4266
  viewBox: "0 0 24 24"
4160
4267
  },
4161
- /* @__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" })
4162
- ))), /* @__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(
4268
+ /* @__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" })
4269
+ ))), /* @__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(
4163
4270
  PhotoWithFallback2,
4164
4271
  {
4165
4272
  photoUrl: avatarUrl,
@@ -4167,8 +4274,8 @@ var TestimonialsGrid = ({
4167
4274
  fallbackId: `testimonial-${testimonial.id || index}`,
4168
4275
  className: "size-full object-cover"
4169
4276
  }
4170
- )), /* @__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))));
4171
- })) : /* @__PURE__ */ React15.createElement("div", { className: "text-center py-12" }, /* @__PURE__ */ React15.createElement("p", { className: "text-gray-500" }, "No testimonials available"))));
4277
+ )), /* @__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))));
4278
+ })) : /* @__PURE__ */ React16.createElement("div", { className: "text-center py-12" }, /* @__PURE__ */ React16.createElement("p", { className: "text-gray-500" }, "No testimonials available"))));
4172
4279
  };
4173
4280
 
4174
4281
  // src/design_system/sections/faq-home.tsx
@@ -4259,12 +4366,12 @@ var FAQHome = ({
4259
4366
  };
4260
4367
 
4261
4368
  // src/design_system/sections/blog-section.tsx
4262
- import React16 from "react";
4369
+ import React17 from "react";
4263
4370
  import Link from "next/link";
4264
4371
  import { ArrowLeft as ArrowLeft2, ArrowRight as ArrowRight5, ArrowUpRight } from "@untitledui/icons";
4265
4372
 
4266
4373
  // src/design_system/elements/carousel/carousel-base.tsx
4267
- 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";
4374
+ 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";
4268
4375
  import useEmblaCarousel2 from "embla-carousel-react";
4269
4376
  var CarouselContext2 = createContext8(null);
4270
4377
  var useCarousel2 = () => {
@@ -4288,7 +4395,7 @@ var CarouselRoot2 = (_a) => {
4288
4395
  }),
4289
4396
  plugins
4290
4397
  );
4291
- const snapshotRef = useRef4(DEFAULT_SNAPSHOT2);
4398
+ const snapshotRef = useRef5(DEFAULT_SNAPSHOT2);
4292
4399
  const getSnapshot = useCallback4(() => {
4293
4400
  if (!api) {
4294
4401
  return DEFAULT_SNAPSHOT2;
@@ -4340,7 +4447,7 @@ var CarouselRoot2 = (_a) => {
4340
4447
  },
4341
4448
  [scrollPrev, scrollNext]
4342
4449
  );
4343
- useEffect6(() => {
4450
+ useEffect7(() => {
4344
4451
  if (!api || !setApi) return;
4345
4452
  setApi(api);
4346
4453
  }, [api, setApi]);
@@ -4465,7 +4572,7 @@ var BlogSection = ({
4465
4572
  return "Recent";
4466
4573
  }
4467
4574
  };
4468
- 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(
4575
+ 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(
4469
4576
  Carousel2.Root,
4470
4577
  {
4471
4578
  className: "mt-12 md:mt-16",
@@ -4473,11 +4580,11 @@ var BlogSection = ({
4473
4580
  align: "start"
4474
4581
  }
4475
4582
  },
4476
- /* @__PURE__ */ React16.createElement(Carousel2.Content, { overflowHidden: false, className: "gap-6 pr-4 md:gap-8 md:pr-8" }, postsArray.map((post, index) => {
4583
+ /* @__PURE__ */ React17.createElement(Carousel2.Content, { overflowHidden: false, className: "gap-6 pr-4 md:gap-8 md:pr-8" }, postsArray.map((post, index) => {
4477
4584
  var _a;
4478
4585
  const author = Array.isArray(post.blog_post_authors) && post.blog_post_authors.length > 0 ? post.blog_post_authors[0] : null;
4479
4586
  const excerpt = ((_a = post.excerpt_markdown) == null ? void 0 : _a.replace(/[#*\[\]()]/g, "").trim()) || "";
4480
- 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(
4587
+ 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(
4481
4588
  PhotoWithFallback2,
4482
4589
  {
4483
4590
  item: post,
@@ -4485,48 +4592,50 @@ var BlogSection = ({
4485
4592
  alt: post.title || "Blog post",
4486
4593
  className: cx("aspect-[1.5] w-full object-cover")
4487
4594
  }
4488
- )), /* @__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(
4595
+ )), /* @__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(
4489
4596
  "a",
4490
4597
  {
4491
4598
  href: (author == null ? void 0 : author.slug) ? `/blog/author/${author.slug}` : "/blog",
4492
4599
  className: "block rounded-xs text-sm font-semibold text-white outline-focus-ring focus-visible:outline-2 focus-visible:outline-offset-2"
4493
4600
  },
4494
4601
  (author == null ? void 0 : author.name) || "Author"
4495
- ), /* @__PURE__ */ React16.createElement("time", { className: "block text-sm text-white" }, formatDate4(post.published_at || ""))), /* @__PURE__ */ React16.createElement(
4602
+ ), /* @__PURE__ */ React17.createElement("time", { className: "block text-sm text-white" }, formatDate4(post.published_at || ""))), /* @__PURE__ */ React17.createElement(
4496
4603
  Link,
4497
4604
  {
4498
4605
  href: "/blog",
4499
4606
  className: "rounded-xs text-sm font-semibold text-white outline-focus-ring focus-visible:outline-2 focus-visible:outline-offset-2"
4500
4607
  },
4501
4608
  "Blog"
4502
- )))), /* @__PURE__ */ React16.createElement("div", { className: "flex flex-col gap-2" }, /* @__PURE__ */ React16.createElement(
4609
+ )))), /* @__PURE__ */ React17.createElement("div", { className: "flex flex-col gap-2" }, /* @__PURE__ */ React17.createElement(
4503
4610
  "a",
4504
4611
  {
4505
4612
  href: `/blog/${post.slug || post.id}`,
4506
4613
  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"
4507
4614
  },
4508
4615
  post.title || "Untitled Post",
4509
- /* @__PURE__ */ React16.createElement(
4616
+ /* @__PURE__ */ React17.createElement(
4510
4617
  ArrowUpRight,
4511
4618
  {
4512
4619
  className: "mt-0.5 size-6 shrink-0 text-fg-quaternary transition duration-100 ease-linear group-hover/title:text-fg-quaternary_hover",
4513
4620
  "aria-hidden": "true"
4514
4621
  }
4515
4622
  )
4516
- ), excerpt && /* @__PURE__ */ React16.createElement("p", { className: "line-clamp-2 text-md text-tertiary" }, excerpt))));
4623
+ ), excerpt && /* @__PURE__ */ React17.createElement("p", { className: "line-clamp-2 text-md text-tertiary" }, excerpt))));
4517
4624
  })),
4518
- /* @__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 })))
4519
- ), 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"))));
4625
+ /* @__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 })))
4626
+ ), 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"))));
4520
4627
  };
4521
4628
 
4522
4629
  // src/design_system/sections/contact-section.tsx
4523
- import React20 from "react";
4630
+ import React21 from "react";
4524
4631
 
4525
4632
  // src/design_system/sections/contact-section-form.tsx
4526
- import React19, { useRef as useRef5, useState as useState9 } from "react";
4633
+ import React20, { useRef as useRef6, useState as useState9 } from "react";
4527
4634
 
4528
4635
  // src/design_system/components/DynamicFormFields.tsx
4529
- import React17, { useState as useState8 } from "react";
4636
+ import React18, { useState as useState8 } from "react";
4637
+ import ReactMarkdown2 from "react-markdown";
4638
+ import remarkGfm2 from "remark-gfm";
4530
4639
 
4531
4640
  // src/utils/countries.tsx
4532
4641
  import Image6 from "next/image";
@@ -5898,12 +6007,53 @@ function allFieldsFlat(fields) {
5898
6007
  }
5899
6008
  return out;
5900
6009
  }
5901
- function renderField(field, index, showCountryCode, selectedCountryPhone, onCountryChange, phoneValues, setPhoneValues) {
5902
- var _a, _b, _c, _d;
6010
+ function renderField(field, index, showCountryCode, selectedCountryPhone, onCountryChange, phoneValues, setPhoneValues, companyName, privacyPolicyUrl, termsOfServiceUrl) {
6011
+ var _a, _b, _c, _d, _e, _f;
5903
6012
  const name = (_a = field.name) != null ? _a : `field-${index}`;
6013
+ const type = ((_b = field.type) != null ? _b : "text").toString().toLowerCase();
5904
6014
  if (field.type === "hidden") {
5905
- const val = (_b = field.value) != null ? _b : "";
5906
- return /* @__PURE__ */ React17.createElement("input", { key: name, type: "hidden", name, value: val });
6015
+ const val = (_c = field.value) != null ? _c : "";
6016
+ return /* @__PURE__ */ React18.createElement("input", { key: name, type: "hidden", name, value: val });
6017
+ }
6018
+ if (type === "checkbox") {
6019
+ const labelRaw = (_d = field.label) != null ? _d : "";
6020
+ const companyNameClean = companyName.replace(/\*\*/g, "").trim();
6021
+ let labelWithCompany = companyNameClean ? labelRaw.replace(/\{\{company_name\}\}/gi, companyNameClean) : labelRaw;
6022
+ if (name === "tos_privacy_consent" && privacyPolicyUrl && termsOfServiceUrl) {
6023
+ labelWithCompany = labelWithCompany.replace(/\*\*Terms of Service\*\*/gi, `**[Terms of Service](${termsOfServiceUrl})**`).replace(/\*\*Privacy Policy\*\*/gi, `**[Privacy Policy](${privacyPolicyUrl})**`);
6024
+ }
6025
+ const id3 = `checkbox-${name}-${index}`;
6026
+ return /* @__PURE__ */ React18.createElement("div", { key: name, className: "flex items-start gap-3" }, /* @__PURE__ */ React18.createElement(
6027
+ "input",
6028
+ {
6029
+ type: "checkbox",
6030
+ id: id3,
6031
+ name,
6032
+ value: "on",
6033
+ required: Boolean(field.required),
6034
+ "aria-describedby": id3 ? `${id3}-desc` : void 0,
6035
+ className: "mt-1 h-4 w-4 shrink-0 rounded border-secondary focus:ring-focus-ring"
6036
+ }
6037
+ ), /* @__PURE__ */ React18.createElement(
6038
+ "label",
6039
+ {
6040
+ id: id3 ? `${id3}-desc` : void 0,
6041
+ htmlFor: id3,
6042
+ className: "font-body text-sm text-tertiary [&_a]:underline [&_a]:outline-focus-ring [&_strong]:font-semibold"
6043
+ },
6044
+ /* @__PURE__ */ React18.createElement(
6045
+ ReactMarkdown2,
6046
+ {
6047
+ remarkPlugins: [remarkGfm2],
6048
+ components: {
6049
+ p: ({ children }) => /* @__PURE__ */ React18.createElement("span", null, children),
6050
+ strong: (props) => /* @__PURE__ */ React18.createElement("strong", __spreadValues({ className: "font-semibold" }, props)),
6051
+ a: (props) => /* @__PURE__ */ React18.createElement("a", __spreadProps(__spreadValues({}, props), { className: "underline outline-focus-ring focus-visible:outline-2 focus-visible:outline-offset-2" }))
6052
+ }
6053
+ },
6054
+ labelWithCompany
6055
+ )
6056
+ ));
5907
6057
  }
5908
6058
  if (field.type === "tel" && showCountryCode) {
5909
6059
  const countryOptions = countries_default.map((c) => ({
@@ -5912,22 +6062,22 @@ function renderField(field, index, showCountryCode, selectedCountryPhone, onCoun
5912
6062
  }));
5913
6063
  const country = countries_default.find((c) => c.code === selectedCountryPhone);
5914
6064
  const nationalMask = getNationalMask(country);
5915
- const value = (_c = phoneValues[name]) != null ? _c : "";
5916
- const placeholder = nationalMask ? nationalMask.replace(/#/g, "0") : (_d = field.placeholder) != null ? _d : "";
6065
+ const value = (_e = phoneValues[name]) != null ? _e : "";
6066
+ const placeholder = nationalMask ? nationalMask.replace(/#/g, "0") : (_f = field.placeholder) != null ? _f : "";
5917
6067
  const handlePhoneChange = (valueOrEvent) => {
5918
6068
  const raw = typeof valueOrEvent === "string" ? valueOrEvent : valueOrEvent && typeof valueOrEvent === "object" && "target" in valueOrEvent && valueOrEvent.target && typeof valueOrEvent.target.value === "string" ? valueOrEvent.target.value : "";
5919
6069
  const digits = raw.replace(/\D/g, "");
5920
6070
  const formatted = nationalMask ? formatDigitsToMask(digits, nationalMask) : digits;
5921
6071
  setPhoneValues((prev) => __spreadProps(__spreadValues({}, prev), { [name]: formatted }));
5922
6072
  };
5923
- return /* @__PURE__ */ React17.createElement(
6073
+ return /* @__PURE__ */ React18.createElement(
5924
6074
  InputGroup2,
5925
6075
  {
5926
6076
  key: name,
5927
6077
  label: field.label,
5928
6078
  isRequired: Boolean(field.required),
5929
6079
  size: "md",
5930
- leadingAddon: /* @__PURE__ */ React17.createElement(
6080
+ leadingAddon: /* @__PURE__ */ React18.createElement(
5931
6081
  NativeSelect2,
5932
6082
  {
5933
6083
  "aria-label": "Country code",
@@ -5937,7 +6087,7 @@ function renderField(field, index, showCountryCode, selectedCountryPhone, onCoun
5937
6087
  }
5938
6088
  )
5939
6089
  },
5940
- /* @__PURE__ */ React17.createElement(
6090
+ /* @__PURE__ */ React18.createElement(
5941
6091
  InputBase3,
5942
6092
  {
5943
6093
  type: "tel",
@@ -5951,7 +6101,7 @@ function renderField(field, index, showCountryCode, selectedCountryPhone, onCoun
5951
6101
  );
5952
6102
  }
5953
6103
  if (field.type === "textarea") {
5954
- return /* @__PURE__ */ React17.createElement(
6104
+ return /* @__PURE__ */ React18.createElement(
5955
6105
  Textarea,
5956
6106
  {
5957
6107
  key: name,
@@ -5964,7 +6114,7 @@ function renderField(field, index, showCountryCode, selectedCountryPhone, onCoun
5964
6114
  );
5965
6115
  }
5966
6116
  const inputType = INPUT_TYPES.includes(field.type) ? field.type : "text";
5967
- return /* @__PURE__ */ React17.createElement(
6117
+ return /* @__PURE__ */ React18.createElement(
5968
6118
  Input3,
5969
6119
  {
5970
6120
  key: name,
@@ -5977,11 +6127,13 @@ function renderField(field, index, showCountryCode, selectedCountryPhone, onCoun
5977
6127
  }
5978
6128
  );
5979
6129
  }
5980
- function DynamicFormFields({ form, jobSlug }) {
6130
+ function DynamicFormFields({ form, jobSlug, privacyPolicyUrl, termsOfServiceUrl }) {
6131
+ var _a;
5981
6132
  const [selectedCountryPhone, setSelectedCountryPhone] = useState8("US");
5982
6133
  const [phoneValues, setPhoneValues] = useState8({});
5983
6134
  const { settings } = form;
5984
6135
  const fields = Array.isArray(form.fields) ? form.fields : [];
6136
+ const companyName = (_a = form.company_name) != null ? _a : "";
5985
6137
  const handleCountryChange = (newCode) => {
5986
6138
  setSelectedCountryPhone(newCode);
5987
6139
  const country = countries_default.find((c) => c.code === newCode);
@@ -6002,24 +6154,40 @@ function DynamicFormFields({ form, jobSlug }) {
6002
6154
  });
6003
6155
  };
6004
6156
  const showCountryCode = (settings == null ? void 0 : settings.show_country_code) !== false;
6005
- const showPrivacyCheckbox = (settings == null ? void 0 : settings.show_privacy_checkbox) !== false;
6006
6157
  const flat = allFieldsFlat(fields);
6007
6158
  const hasPhoneField = flat.some((f) => f.type === "tel");
6008
- return /* @__PURE__ */ React17.createElement("div", { className: "flex flex-col gap-6" }, fields.map((item, index) => {
6009
- var _a;
6159
+ const hasCheckboxFields = flat.some((f) => {
6160
+ var _a2;
6161
+ return ((_a2 = f.type) != null ? _a2 : "").toString().toLowerCase() === "checkbox";
6162
+ });
6163
+ const showPrivacyCheckbox = (settings == null ? void 0 : settings.show_privacy_checkbox) !== false && hasPhoneField && !hasCheckboxFields;
6164
+ const renderFieldWithProps = (item, i) => renderField(
6165
+ item,
6166
+ i,
6167
+ showCountryCode,
6168
+ selectedCountryPhone,
6169
+ handleCountryChange,
6170
+ phoneValues,
6171
+ setPhoneValues,
6172
+ companyName,
6173
+ privacyPolicyUrl,
6174
+ termsOfServiceUrl
6175
+ );
6176
+ return /* @__PURE__ */ React18.createElement("div", { className: "flex flex-col gap-6" }, fields.map((item, index) => {
6177
+ var _a2;
6010
6178
  if (Array.isArray(item)) {
6011
6179
  if (item.length === 0) return null;
6012
- return /* @__PURE__ */ React17.createElement(
6180
+ return /* @__PURE__ */ React18.createElement(
6013
6181
  "div",
6014
6182
  {
6015
6183
  key: `row-${index}`,
6016
6184
  className: "flex flex-col gap-x-8 gap-y-6 md:flex-row"
6017
6185
  },
6018
- item.map((f, i) => /* @__PURE__ */ React17.createElement("div", { key: f.name, className: "flex-1" }, renderField(f, i, showCountryCode, selectedCountryPhone, handleCountryChange, phoneValues, setPhoneValues)))
6186
+ item.map((f, i) => /* @__PURE__ */ React18.createElement("div", { key: f.name, className: "flex-1" }, renderFieldWithProps(f, i)))
6019
6187
  );
6020
6188
  }
6021
- return /* @__PURE__ */ React17.createElement("div", { key: (_a = item.name) != null ? _a : `field-${index}` }, renderField(item, index, showCountryCode, selectedCountryPhone, handleCountryChange, phoneValues, setPhoneValues));
6022
- }), jobSlug ? /* @__PURE__ */ React17.createElement("input", { type: "hidden", name: "jobSlug", value: jobSlug }) : null, showPrivacyCheckbox && hasPhoneField && /* @__PURE__ */ React17.createElement(PrivacyCheckbox2, null));
6189
+ return /* @__PURE__ */ React18.createElement("div", { key: (_a2 = item.name) != null ? _a2 : `field-${index}` }, renderFieldWithProps(item, index));
6190
+ }), jobSlug ? /* @__PURE__ */ React18.createElement("input", { type: "hidden", name: "jobSlug", value: jobSlug }) : null, showPrivacyCheckbox && /* @__PURE__ */ React18.createElement(PrivacyCheckbox2, null));
6023
6191
  }
6024
6192
 
6025
6193
  // src/tracking/trackMetaLead.ts
@@ -6030,7 +6198,7 @@ function trackMetaLead(eventId) {
6030
6198
  }
6031
6199
 
6032
6200
  // src/next/contexts/form-definitions.tsx
6033
- import React18, { createContext as createContext9, useContext as useContext10 } from "react";
6201
+ import React19, { createContext as createContext9, useContext as useContext10 } from "react";
6034
6202
  var FormDefinitionsContext = createContext9({
6035
6203
  leadFormDefinition: null,
6036
6204
  jobApplicationFormDefinition: null
@@ -6045,14 +6213,16 @@ var ContactSectionForm = ({
6045
6213
  submitButtonText = "Send message",
6046
6214
  successMessage = "Thank you for contacting us! We'll get back to you soon.",
6047
6215
  thankYouMessage,
6048
- onSuccess
6216
+ onSuccess,
6217
+ privacyPolicyUrl,
6218
+ termsOfServiceUrl
6049
6219
  }) => {
6050
6220
  const { leadFormDefinition } = useFormDefinitions();
6051
6221
  const resolvedFormDefinition = formDefinition != null ? formDefinition : leadFormDefinition;
6052
6222
  const [isSubmitting, setIsSubmitting] = useState9(false);
6053
6223
  const [submitStatus, setSubmitStatus] = useState9("idle");
6054
6224
  const [statusMessage, setStatusMessage] = useState9("");
6055
- const formRef = useRef5(null);
6225
+ const formRef = useRef6(null);
6056
6226
  if (!resolvedFormDefinition || !Array.isArray(resolvedFormDefinition.fields) || resolvedFormDefinition.fields.length === 0) {
6057
6227
  return null;
6058
6228
  }
@@ -6065,7 +6235,8 @@ var ContactSectionForm = ({
6065
6235
  const formData = new FormData(e.currentTarget);
6066
6236
  const data = { formType: "lead" };
6067
6237
  formData.forEach((value, key) => {
6068
- if (key !== "privacy" && typeof value === "string") data[key] = value;
6238
+ if (key.endsWith("_prefix")) return;
6239
+ if (typeof value === "string") data[key] = value;
6069
6240
  });
6070
6241
  try {
6071
6242
  const response = await fetch("/api/form/", {
@@ -6091,7 +6262,14 @@ var ContactSectionForm = ({
6091
6262
  }
6092
6263
  setIsSubmitting(false);
6093
6264
  };
6094
- 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(
6265
+ 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(
6266
+ DynamicFormFields,
6267
+ {
6268
+ form: resolvedFormDefinition,
6269
+ privacyPolicyUrl,
6270
+ termsOfServiceUrl
6271
+ }
6272
+ )), 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(
6095
6273
  Button2,
6096
6274
  {
6097
6275
  type: "submit",
@@ -6104,17 +6282,34 @@ var ContactSectionForm = ({
6104
6282
  };
6105
6283
 
6106
6284
  // src/design_system/sections/contact-section.tsx
6285
+ function getLegalUrlsFromConfig(config) {
6286
+ var _a, _b, _c;
6287
+ if (!((_a = config == null ? void 0 : config.navigation) == null ? void 0 : _a.footer)) return {};
6288
+ const flat = config.navigation.footer.flat();
6289
+ const privacy = (_b = flat.find((l) => l.label === "Privacy Policy")) == null ? void 0 : _b.href;
6290
+ const terms = (_c = flat.find((l) => l.label === "Terms of Service")) == null ? void 0 : _c.href;
6291
+ return { privacyPolicyUrl: privacy, termsOfServiceUrl: terms };
6292
+ }
6107
6293
  var ContactSection = ({
6108
6294
  websitePhotos,
6109
6295
  title = "",
6110
6296
  subtitle = "",
6111
- formDefinition
6297
+ formDefinition,
6298
+ config
6112
6299
  }) => {
6300
+ const { privacyPolicyUrl, termsOfServiceUrl } = getLegalUrlsFromConfig(config);
6113
6301
  const contactPhoto = websitePhotos == null ? void 0 : websitePhotos.contact;
6114
6302
  const contactImageUrl = contactPhoto == null ? void 0 : contactPhoto.url;
6115
6303
  const finalContactImage = contactImageUrl && contactImageUrl.trim() !== "" ? contactImageUrl : void 0;
6116
6304
  const finalContactImageAlt = (contactPhoto == null ? void 0 : contactPhoto.alt) || "Contact image";
6117
- 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(
6305
+ 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(
6306
+ ContactSectionForm,
6307
+ {
6308
+ formDefinition,
6309
+ privacyPolicyUrl,
6310
+ termsOfServiceUrl
6311
+ }
6312
+ )), /* @__PURE__ */ React21.createElement("div", { className: "max-lg:hidden h-full min-h-0" }, /* @__PURE__ */ React21.createElement(
6118
6313
  PhotoWithFallback2,
6119
6314
  {
6120
6315
  photoUrl: finalContactImage,
@@ -6219,7 +6414,7 @@ var FooterHome = ({
6219
6414
  };
6220
6415
 
6221
6416
  // src/design_system/sections/header-navigation.tsx
6222
- import React21, { useRef as useRef6, useState as useState10 } from "react";
6417
+ import React22, { useRef as useRef7, useState as useState10 } from "react";
6223
6418
  import Link4 from "next/link";
6224
6419
  import Image8 from "next/image";
6225
6420
  import { ChevronDown as ChevronDown4 } from "@untitledui/icons";
@@ -6289,7 +6484,7 @@ function resolveCtaUrls(companyInformation, _ctaButton, overrides) {
6289
6484
  var MobileNavItem = ({ label, href, children, onClose }) => {
6290
6485
  const [isOpen, setIsOpen] = useState10(false);
6291
6486
  if (href) {
6292
- return /* @__PURE__ */ React21.createElement("li", null, /* @__PURE__ */ React21.createElement(
6487
+ return /* @__PURE__ */ React22.createElement("li", null, /* @__PURE__ */ React22.createElement(
6293
6488
  Link4,
6294
6489
  {
6295
6490
  href,
@@ -6299,7 +6494,7 @@ var MobileNavItem = ({ label, href, children, onClose }) => {
6299
6494
  label
6300
6495
  ));
6301
6496
  }
6302
- return /* @__PURE__ */ React21.createElement("li", { className: "flex flex-col gap-0.5" }, /* @__PURE__ */ React21.createElement(
6497
+ return /* @__PURE__ */ React22.createElement("li", { className: "flex flex-col gap-0.5" }, /* @__PURE__ */ React22.createElement(
6303
6498
  "button",
6304
6499
  {
6305
6500
  "aria-expanded": isOpen,
@@ -6307,13 +6502,13 @@ var MobileNavItem = ({ label, href, children, onClose }) => {
6307
6502
  className: "flex w-full items-center justify-between px-4 py-3 text-sm font-medium text-primary hover:bg-primary_hover"
6308
6503
  },
6309
6504
  label,
6310
- /* @__PURE__ */ React21.createElement(
6505
+ /* @__PURE__ */ React22.createElement(
6311
6506
  ChevronDown4,
6312
6507
  {
6313
6508
  className: cx("size-4 stroke-[2.625px] text-fg-quaternary transition duration-100 ease-linear", isOpen ? "-rotate-180" : "rotate-0")
6314
6509
  }
6315
6510
  )
6316
- ), isOpen && /* @__PURE__ */ React21.createElement("div", null, children));
6511
+ ), isOpen && /* @__PURE__ */ React22.createElement("div", null, children));
6317
6512
  };
6318
6513
  function HeaderNavigation({
6319
6514
  variant = "standard",
@@ -6326,7 +6521,7 @@ function HeaderNavigation({
6326
6521
  websitePhotos
6327
6522
  }) {
6328
6523
  var _a, _b, _c, _d, _e, _f, _g, _h;
6329
- const headerRef = useRef6(null);
6524
+ const headerRef = useRef7(null);
6330
6525
  const navigation = navigationOverride || ((_a = config == null ? void 0 : config.navigation) == null ? void 0 : _a.header) || [];
6331
6526
  const logoImage = logoImageOverride || getLogoUrl(websitePhotos) || ((_b = props == null ? void 0 : props.logo) == null ? void 0 : _b.image);
6332
6527
  const logoText = logoTextOverride || (companyInformation == null ? void 0 : companyInformation.company_name) || ((_c = props == null ? void 0 : props.logo) == null ? void 0 : _c.text) || "";
@@ -6354,7 +6549,7 @@ function HeaderNavigation({
6354
6549
  };
6355
6550
  const HoverDropdown = ({ label, href, children }) => {
6356
6551
  const [isOpen, setIsOpen] = useState10(false);
6357
- const timeoutRef = React21.useRef(null);
6552
+ const timeoutRef = React22.useRef(null);
6358
6553
  const handleMouseEnter = () => {
6359
6554
  if (timeoutRef.current) {
6360
6555
  clearTimeout(timeoutRef.current);
@@ -6368,37 +6563,37 @@ function HeaderNavigation({
6368
6563
  }, 100);
6369
6564
  timeoutRef.current = id3;
6370
6565
  };
6371
- React21.useEffect(() => {
6566
+ React22.useEffect(() => {
6372
6567
  return () => {
6373
6568
  if (timeoutRef.current) {
6374
6569
  clearTimeout(timeoutRef.current);
6375
6570
  }
6376
6571
  };
6377
6572
  }, []);
6378
- return /* @__PURE__ */ React21.createElement(
6573
+ return /* @__PURE__ */ React22.createElement(
6379
6574
  "div",
6380
6575
  {
6381
6576
  className: "relative",
6382
6577
  onMouseEnter: handleMouseEnter,
6383
6578
  onMouseLeave: handleMouseLeave
6384
6579
  },
6385
- /* @__PURE__ */ React21.createElement(
6580
+ /* @__PURE__ */ React22.createElement(
6386
6581
  Link4,
6387
6582
  {
6388
6583
  href: href || "#",
6389
6584
  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"
6390
6585
  },
6391
- /* @__PURE__ */ React21.createElement("span", { className: "px-0.5" }, label),
6392
- /* @__PURE__ */ React21.createElement(ChevronDown4, { className: cx("size-4 stroke-[2.625px] text-fg-quaternary transition duration-100 ease-linear", isOpen ? "-rotate-180" : "rotate-0") })
6586
+ /* @__PURE__ */ React22.createElement("span", { className: "px-0.5" }, label),
6587
+ /* @__PURE__ */ React22.createElement(ChevronDown4, { className: cx("size-4 stroke-[2.625px] text-fg-quaternary transition duration-100 ease-linear", isOpen ? "-rotate-180" : "rotate-0") })
6393
6588
  ),
6394
- isOpen && /* @__PURE__ */ React21.createElement(
6589
+ isOpen && /* @__PURE__ */ React22.createElement(
6395
6590
  "div",
6396
6591
  {
6397
6592
  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",
6398
6593
  onMouseEnter: handleMouseEnter,
6399
6594
  onMouseLeave: handleMouseLeave
6400
6595
  },
6401
- /* @__PURE__ */ React21.createElement("div", { className: "w-max max-w-sm" }, children)
6596
+ /* @__PURE__ */ React22.createElement("div", { className: "w-max max-w-sm" }, children)
6402
6597
  )
6403
6598
  );
6404
6599
  };
@@ -6407,7 +6602,7 @@ function HeaderNavigation({
6407
6602
  return {
6408
6603
  label: navItem.label,
6409
6604
  href: navItem.href,
6410
- menu: /* @__PURE__ */ React21.createElement(
6605
+ menu: /* @__PURE__ */ React22.createElement(
6411
6606
  GenericHeaderComponent,
6412
6607
  {
6413
6608
  items: navItem.children.map((child) => ({
@@ -6424,7 +6619,7 @@ function HeaderNavigation({
6424
6619
  href: navItem.href
6425
6620
  };
6426
6621
  });
6427
- return /* @__PURE__ */ React21.createElement(React21.Fragment, null, /* @__PURE__ */ React21.createElement(
6622
+ return /* @__PURE__ */ React22.createElement(React22.Fragment, null, /* @__PURE__ */ React22.createElement(
6428
6623
  "header",
6429
6624
  {
6430
6625
  ref: headerRef,
@@ -6433,7 +6628,7 @@ function HeaderNavigation({
6433
6628
  getVariantClasses()
6434
6629
  )
6435
6630
  },
6436
- /* @__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(
6631
+ /* @__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(
6437
6632
  Image8,
6438
6633
  {
6439
6634
  src: logoImage,
@@ -6442,14 +6637,14 @@ function HeaderNavigation({
6442
6637
  width: 32,
6443
6638
  height: 32
6444
6639
  }
6445
- ) : /* @__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(
6640
+ ) : /* @__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(
6446
6641
  Link4,
6447
6642
  {
6448
6643
  href: navItem.href || "#",
6449
6644
  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"
6450
6645
  },
6451
- /* @__PURE__ */ React21.createElement("span", { className: "px-0.5" }, navItem.label)
6452
- )))))), /* @__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(
6646
+ /* @__PURE__ */ React22.createElement("span", { className: "px-0.5" }, navItem.label)
6647
+ )))))), /* @__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(
6453
6648
  Button2,
6454
6649
  {
6455
6650
  href: ctaUrls.secondaryHref,
@@ -6459,7 +6654,7 @@ function HeaderNavigation({
6459
6654
  size: "lg"
6460
6655
  },
6461
6656
  cta_button.label
6462
- ), /* @__PURE__ */ React21.createElement(
6657
+ ), /* @__PURE__ */ React22.createElement(
6463
6658
  Button2,
6464
6659
  {
6465
6660
  href: ctaUrls.primaryHref,
@@ -6469,7 +6664,7 @@ function HeaderNavigation({
6469
6664
  size: "lg"
6470
6665
  },
6471
6666
  (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"
6472
- )), /* @__PURE__ */ React21.createElement(AriaDialogTrigger, null, /* @__PURE__ */ React21.createElement(
6667
+ )), /* @__PURE__ */ React22.createElement(AriaDialogTrigger, null, /* @__PURE__ */ React22.createElement(
6473
6668
  AriaButton8,
6474
6669
  {
6475
6670
  "aria-label": "Toggle navigation menu",
@@ -6479,7 +6674,7 @@ function HeaderNavigation({
6479
6674
  isFocusVisible && "outline-2 outline-offset-2 outline-focus-ring"
6480
6675
  )
6481
6676
  },
6482
- /* @__PURE__ */ React21.createElement("svg", { "aria-hidden": "true", width: "24", height: "24", viewBox: "0 0 24 24", fill: "none" }, /* @__PURE__ */ React21.createElement(
6677
+ /* @__PURE__ */ React22.createElement("svg", { "aria-hidden": "true", width: "24", height: "24", viewBox: "0 0 24 24", fill: "none" }, /* @__PURE__ */ React22.createElement(
6483
6678
  "path",
6484
6679
  {
6485
6680
  className: "hidden text-secondary group-aria-expanded:block",
@@ -6489,7 +6684,7 @@ function HeaderNavigation({
6489
6684
  strokeLinecap: "round",
6490
6685
  strokeLinejoin: "round"
6491
6686
  }
6492
- ), /* @__PURE__ */ React21.createElement(
6687
+ ), /* @__PURE__ */ React22.createElement(
6493
6688
  "path",
6494
6689
  {
6495
6690
  className: "text-secondary group-aria-expanded:hidden",
@@ -6500,7 +6695,7 @@ function HeaderNavigation({
6500
6695
  strokeLinejoin: "round"
6501
6696
  }
6502
6697
  ))
6503
- ), /* @__PURE__ */ React21.createElement(
6698
+ ), /* @__PURE__ */ React22.createElement(
6504
6699
  AriaPopover3,
6505
6700
  {
6506
6701
  triggerRef: headerRef,
@@ -6510,15 +6705,15 @@ function HeaderNavigation({
6510
6705
  containerPadding: 0,
6511
6706
  placement: "bottom left"
6512
6707
  },
6513
- /* @__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(
6514
- (navItem) => navItem.menu ? /* @__PURE__ */ React21.createElement(
6708
+ /* @__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(
6709
+ (navItem) => navItem.menu ? /* @__PURE__ */ React22.createElement(
6515
6710
  MobileNavItem,
6516
6711
  {
6517
6712
  key: navItem.label,
6518
6713
  label: navItem.label
6519
6714
  },
6520
6715
  navItem.menu
6521
- ) : /* @__PURE__ */ React21.createElement(
6716
+ ) : /* @__PURE__ */ React22.createElement(
6522
6717
  MobileNavItem,
6523
6718
  {
6524
6719
  key: navItem.label,
@@ -6526,7 +6721,7 @@ function HeaderNavigation({
6526
6721
  href: navItem.href
6527
6722
  }
6528
6723
  )
6529
- )), /* @__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(
6724
+ )), /* @__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(
6530
6725
  Button2,
6531
6726
  {
6532
6727
  href: ctaUrls.secondaryHref,
@@ -6536,7 +6731,7 @@ function HeaderNavigation({
6536
6731
  size: "lg"
6537
6732
  },
6538
6733
  cta_button.label
6539
- ), /* @__PURE__ */ React21.createElement(
6734
+ ), /* @__PURE__ */ React22.createElement(
6540
6735
  Button2,
6541
6736
  {
6542
6737
  href: ctaUrls.primaryHref,
@@ -6548,7 +6743,7 @@ function HeaderNavigation({
6548
6743
  (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"
6549
6744
  ))))
6550
6745
  ))))
6551
- ), /* @__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(
6746
+ ), /* @__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(
6552
6747
  Button2,
6553
6748
  {
6554
6749
  href: ctaUrls.secondaryHref,
@@ -6558,7 +6753,7 @@ function HeaderNavigation({
6558
6753
  className: "flex-1 font-body text-sm uppercase tracking-wide py-4 rounded-none border-r border-white/20"
6559
6754
  },
6560
6755
  cta_button.label
6561
- ), /* @__PURE__ */ React21.createElement(
6756
+ ), /* @__PURE__ */ React22.createElement(
6562
6757
  Button2,
6563
6758
  {
6564
6759
  href: ctaUrls.primaryHref,
@@ -6591,7 +6786,7 @@ var StatisticsSection = ({
6591
6786
  };
6592
6787
 
6593
6788
  // src/design_system/sections/values-section.tsx
6594
- import React22 from "react";
6789
+ import React23 from "react";
6595
6790
  var ValuesSection = ({
6596
6791
  values = [],
6597
6792
  label = "",
@@ -6602,16 +6797,16 @@ var ValuesSection = ({
6602
6797
  className = ""
6603
6798
  }) => {
6604
6799
  const hasValues = values.length > 0;
6605
- 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" }, (() => {
6800
+ 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" }, (() => {
6606
6801
  const anyIconMissing = values.some(
6607
6802
  (value) => typeof value.icon === "string" && value.icon && !mapIcon(value.icon)
6608
6803
  );
6609
6804
  const useStarForAll = anyIconMissing;
6610
- 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) => {
6805
+ 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) => {
6611
6806
  const IconComponent2 = useStarForAll ? mapIcon("star") : mapIcon(value.icon) || mapIcon("star");
6612
6807
  if (!IconComponent2) return null;
6613
- const IconWrapper = ({ className: className2 }) => /* @__PURE__ */ React22.createElement("div", { className: className2 }, /* @__PURE__ */ React22.createElement(IconComponent2, { className: "w-full h-full" }));
6614
- 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(
6808
+ const IconWrapper = ({ className: className2 }) => /* @__PURE__ */ React23.createElement("div", { className: className2 }, /* @__PURE__ */ React23.createElement(IconComponent2, { className: "w-full h-full" }));
6809
+ 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(
6615
6810
  FeaturedIcon2,
6616
6811
  {
6617
6812
  icon: IconWrapper,
@@ -6620,7 +6815,7 @@ var ValuesSection = ({
6620
6815
  theme: "modern",
6621
6816
  className: "hidden md:inline-flex"
6622
6817
  }
6623
- ), /* @__PURE__ */ React22.createElement(
6818
+ ), /* @__PURE__ */ React23.createElement(
6624
6819
  FeaturedIcon2,
6625
6820
  {
6626
6821
  icon: IconWrapper,
@@ -6629,13 +6824,13 @@ var ValuesSection = ({
6629
6824
  theme: "modern",
6630
6825
  className: "inline-flex md:hidden"
6631
6826
  }
6632
- ), /* @__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))));
6827
+ ), /* @__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))));
6633
6828
  }));
6634
6829
  })()) : null));
6635
6830
  };
6636
6831
 
6637
6832
  // src/design_system/sections/team-grid.tsx
6638
- import React23 from "react";
6833
+ import React24 from "react";
6639
6834
  var TeamGrid = ({
6640
6835
  teamMembers: membersData,
6641
6836
  title = "",
@@ -6646,10 +6841,10 @@ var TeamGrid = ({
6646
6841
  }) => {
6647
6842
  const members = Array.isArray(membersData) ? membersData : [];
6648
6843
  const displayMembers = members.slice(0, maxMembers);
6649
- 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) => {
6844
+ 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) => {
6650
6845
  var _a;
6651
6846
  const bio = ((_a = member.bio_markdown) == null ? void 0 : _a.replace(/[#*\[\]()]/g, "").trim()) || "";
6652
- return /* @__PURE__ */ React23.createElement("li", { key: member.id || index, className: "flex flex-col gap-5 md:gap-6" }, /* @__PURE__ */ React23.createElement(
6847
+ return /* @__PURE__ */ React24.createElement("li", { key: member.id || index, className: "flex flex-col gap-5 md:gap-6" }, /* @__PURE__ */ React24.createElement(
6653
6848
  PhotoWithFallback2,
6654
6849
  {
6655
6850
  item: member,
@@ -6657,15 +6852,15 @@ var TeamGrid = ({
6657
6852
  alt: member.name || "Team member",
6658
6853
  className: "h-78 w-full object-cover md:h-74 rounded-2xl"
6659
6854
  }
6660
- ), /* @__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)));
6661
- }))) : /* @__PURE__ */ React23.createElement("div", { className: "text-center mt-12" }, /* @__PURE__ */ React23.createElement("p", { className: "text-gray-500" }, "No team members available"))));
6855
+ ), /* @__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)));
6856
+ }))) : /* @__PURE__ */ React24.createElement("div", { className: "text-center mt-12" }, /* @__PURE__ */ React24.createElement("p", { className: "text-gray-500" }, "No team members available"))));
6662
6857
  };
6663
6858
 
6664
6859
  // src/design_system/sections/location-grid.tsx
6665
- import React24 from "react";
6860
+ import React25 from "react";
6666
6861
  import { ArrowRight as ArrowRight6 } from "@untitledui/icons";
6667
- 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" }));
6668
- 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" }));
6862
+ 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" }));
6863
+ 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" }));
6669
6864
  var LocationGrid = ({
6670
6865
  locations: locationsData,
6671
6866
  companyInformation,
@@ -6679,16 +6874,16 @@ var LocationGrid = ({
6679
6874
  const locations = Array.isArray(locationsData) ? locationsData : [];
6680
6875
  const resolved = companyInformation ? resolveCtaUrls(companyInformation) : null;
6681
6876
  const primaryCtaHref = (_a = primaryCtaHrefOverride != null ? primaryCtaHrefOverride : resolved == null ? void 0 : resolved.primaryHref) != null ? _a : "/contact";
6682
- 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) => {
6877
+ 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) => {
6683
6878
  const fullAddress = `${location.address_line_1}${location.address_line_2 ? `, ${location.address_line_2}` : ""}, ${location.city}, ${location.state} ${location.zip_code}`.trim();
6684
- 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(
6879
+ 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(
6685
6880
  "a",
6686
6881
  {
6687
6882
  href: `tel:${location.phone}`,
6688
6883
  className: "text-md text-tertiary hover:text-primary transition-colors"
6689
6884
  },
6690
6885
  location.phone
6691
- ))), /* @__PURE__ */ React24.createElement("div", { className: "flex flex-col gap-3 mt-auto" }, /* @__PURE__ */ React24.createElement(
6886
+ ))), /* @__PURE__ */ React25.createElement("div", { className: "flex flex-col gap-3 mt-auto" }, /* @__PURE__ */ React25.createElement(
6692
6887
  Button2,
6693
6888
  {
6694
6889
  size: "lg",
@@ -6697,11 +6892,11 @@ var LocationGrid = ({
6697
6892
  },
6698
6893
  "View details"
6699
6894
  )));
6700
- })) : /* @__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"))));
6895
+ })) : /* @__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"))));
6701
6896
  };
6702
6897
 
6703
6898
  // src/design_system/sections/location-details-section.tsx
6704
- import React25 from "react";
6899
+ import React26 from "react";
6705
6900
  import { Mail01, MarkerPin02, Phone, Clock as Clock2 } from "@untitledui/icons";
6706
6901
  var parseBusinessHours = (hours) => {
6707
6902
  if (!hours) return [];
@@ -6751,7 +6946,7 @@ var LocationDetailsSection = ({
6751
6946
  const showMap = true;
6752
6947
  const fullAddress = `${location.address_line_1}${location.address_line_2 ? `, ${location.address_line_2}` : ""}, ${location.city}, ${location.state} ${location.zip_code}`.trim();
6753
6948
  const businessHours = location.business_hours ? parseBusinessHours(location.business_hours) : [];
6754
- 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(
6949
+ 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(
6755
6950
  Button2,
6756
6951
  {
6757
6952
  href: `https://maps.google.com/?q=${encodeURIComponent(fullAddress)}`,
@@ -6764,7 +6959,7 @@ var LocationDetailsSection = ({
6764
6959
  ${location.address_line_2}` : "",
6765
6960
  `
6766
6961
  ${location.city}, ${location.state} ${location.zip_code}`
6767
- ))), 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(
6962
+ ))), 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(
6768
6963
  GoogleMap2,
6769
6964
  {
6770
6965
  address: fullAddress,
@@ -6775,7 +6970,7 @@ ${location.city}, ${location.state} ${location.zip_code}`
6775
6970
  };
6776
6971
 
6777
6972
  // src/design_system/sections/services-grid.tsx
6778
- import React26 from "react";
6973
+ import React27 from "react";
6779
6974
  import { ArrowRight as ArrowRight7 } from "@untitledui/icons";
6780
6975
  var ServicesGrid = ({
6781
6976
  services: servicesData,
@@ -6785,12 +6980,12 @@ var ServicesGrid = ({
6785
6980
  className = ""
6786
6981
  }) => {
6787
6982
  const services = Array.isArray(servicesData) ? servicesData : [];
6788
- 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) => {
6983
+ 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) => {
6789
6984
  var _a, _b, _c, _d;
6790
6985
  const description = service.summary || (service.description_markdown ? service.description_markdown.replace(/[#*\[\]()]/g, "").trim().substring(0, 120) + "..." : "");
6791
6986
  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);
6792
6987
  const imageAlt = (photo == null ? void 0 : photo.title) || service.name;
6793
- 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(
6988
+ 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(
6794
6989
  PhotoWithFallback2,
6795
6990
  {
6796
6991
  item: service,
@@ -6798,7 +6993,7 @@ var ServicesGrid = ({
6798
6993
  alt: imageAlt || "Service image",
6799
6994
  className: "size-full object-cover"
6800
6995
  }
6801
- )), /* @__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(
6996
+ )), /* @__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(
6802
6997
  Button2,
6803
6998
  {
6804
6999
  color: "link-color",
@@ -6808,25 +7003,29 @@ var ServicesGrid = ({
6808
7003
  },
6809
7004
  "Learn more"
6810
7005
  ))));
6811
- })) : /* @__PURE__ */ React26.createElement("div", { className: "text-center py-12" }, /* @__PURE__ */ React26.createElement("p", { className: "text-gray-500" }, "No services available"))));
7006
+ })) : /* @__PURE__ */ React27.createElement("div", { className: "text-center py-12" }, /* @__PURE__ */ React27.createElement("p", { className: "text-gray-500" }, "No services available"))));
6812
7007
  };
6813
7008
 
6814
7009
  // src/design_system/sections/social-media-grid.tsx
6815
- import React27, { useState as useState11 } from "react";
7010
+ import React28, { useState as useState11 } from "react";
6816
7011
  import Image9 from "next/image";
6817
7012
  import { ArrowLeft as ArrowLeft3, ArrowRight as ArrowRight8 } from "@untitledui/icons";
6818
7013
  function getPostImageUrls(post) {
6819
- var _a;
6820
- if ((_a = post.image_urls) == null ? void 0 : _a.length) return post.image_urls;
7014
+ var _a, _b;
7015
+ const videoSet = ((_a = post.video_urls) == null ? void 0 : _a.length) ? new Set(post.video_urls) : null;
7016
+ const isVideo = (url) => isVideoUrl(url) || videoSet !== null && videoSet.has(url);
7017
+ if ((_b = post.image_urls) == null ? void 0 : _b.length) {
7018
+ return post.image_urls.filter((url) => !isVideo(url));
7019
+ }
6821
7020
  const attachments = post.photo_attachments || [];
6822
7021
  const sorted = [...attachments].sort((a, b) => {
6823
- var _a2, _b;
6824
- return ((_a2 = a.sort_order) != null ? _a2 : 0) - ((_b = b.sort_order) != null ? _b : 0);
7022
+ var _a2, _b2;
7023
+ return ((_a2 = a.sort_order) != null ? _a2 : 0) - ((_b2 = b.sort_order) != null ? _b2 : 0);
6825
7024
  });
6826
7025
  return sorted.map((pa) => {
6827
- var _a2, _b, _c, _d;
6828
- 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);
6829
- }).filter((url) => Boolean(url));
7026
+ var _a2, _b2, _c, _d;
7027
+ 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);
7028
+ }).filter((url) => Boolean(url)).filter((url) => !isVideo(url));
6830
7029
  }
6831
7030
  var getPlatformBadge = (platform) => {
6832
7031
  const platformLower = (platform == null ? void 0 : platform.toLowerCase()) || "social";
@@ -6865,19 +7064,19 @@ var SocialMediaGrid = ({
6865
7064
  const startIndex = (currentPage - 1) * postsPerPage;
6866
7065
  const endIndex = startIndex + postsPerPage;
6867
7066
  const paginatedPosts = posts.slice(startIndex, endIndex);
6868
- 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) => {
7067
+ 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) => {
6869
7068
  var _a;
6870
7069
  const images = getPostImageUrls(post);
6871
7070
  const hasMultipleImages = images.length > 1;
6872
7071
  const firstImage = images[0];
6873
7072
  const content = ((_a = post.content_markdown) == null ? void 0 : _a.replace(/[#*\[\]()]/g, "").trim()) || "";
6874
- 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(
7073
+ 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(
6875
7074
  Carousel2.Root,
6876
7075
  {
6877
7076
  opts: { align: "start" },
6878
7077
  className: "h-full w-full"
6879
7078
  },
6880
- /* @__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(
7079
+ /* @__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(
6881
7080
  Image9,
6882
7081
  {
6883
7082
  src: imgUrl,
@@ -6887,8 +7086,8 @@ var SocialMediaGrid = ({
6887
7086
  height: 600
6888
7087
  }
6889
7088
  )))),
6890
- /* @__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 })))
6891
- ) : /* @__PURE__ */ React27.createElement(
7089
+ /* @__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 })))
7090
+ ) : /* @__PURE__ */ React28.createElement(
6892
7091
  PhotoWithFallback2,
6893
7092
  {
6894
7093
  item: post,
@@ -6897,7 +7096,7 @@ var SocialMediaGrid = ({
6897
7096
  fallbackId: `social-post-${post.id || index}`,
6898
7097
  className: "size-full object-cover"
6899
7098
  }
6900
- ) : /* @__PURE__ */ React27.createElement(
7099
+ ) : /* @__PURE__ */ React28.createElement(
6901
7100
  PhotoWithFallback2,
6902
7101
  {
6903
7102
  item: post,
@@ -6906,10 +7105,10 @@ var SocialMediaGrid = ({
6906
7105
  fallbackId: `social-post-${post.id || index}`,
6907
7106
  className: "size-full object-cover"
6908
7107
  }
6909
- ), post.platform && /* @__PURE__ */ React27.createElement("div", { className: cx(
7108
+ ), post.platform && /* @__PURE__ */ React28.createElement("div", { className: cx(
6910
7109
  "absolute top-4 right-4 rounded-full px-3 py-1.5 text-sm font-semibold text-white",
6911
7110
  getPlatformBadge(post.platform)
6912
- ) }, 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(
7111
+ ) }, 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(
6913
7112
  Button2,
6914
7113
  {
6915
7114
  href: post.external_post_url || `https://${post.platform.toLowerCase()}.com`,
@@ -6921,18 +7120,18 @@ var SocialMediaGrid = ({
6921
7120
  "View on ",
6922
7121
  post.platform
6923
7122
  )));
6924
- })), totalPages > 1 && /* @__PURE__ */ React27.createElement("div", { className: "mt-12" }, /* @__PURE__ */ React27.createElement(
7123
+ })), totalPages > 1 && /* @__PURE__ */ React28.createElement("div", { className: "mt-12" }, /* @__PURE__ */ React28.createElement(
6925
7124
  PaginationPageMinimalCenter2,
6926
7125
  {
6927
7126
  page: currentPage,
6928
7127
  total: totalPages,
6929
7128
  onPageChange: setCurrentPage
6930
7129
  }
6931
- ))) : /* @__PURE__ */ React27.createElement("div", { className: "text-center py-12" }, /* @__PURE__ */ React27.createElement("p", { className: "text-gray-500" }, "No social media posts available"))));
7130
+ ))) : /* @__PURE__ */ React28.createElement("div", { className: "text-center py-12" }, /* @__PURE__ */ React28.createElement("p", { className: "text-gray-500" }, "No social media posts available"))));
6932
7131
  };
6933
7132
 
6934
7133
  // src/design_system/sections/job-gallery.tsx
6935
- import React28 from "react";
7134
+ import React29 from "react";
6936
7135
  import { Clock as Clock3, CurrencyDollarCircle } from "@untitledui/icons";
6937
7136
  var JobGallery = ({
6938
7137
  jobs: jobsData,
@@ -6951,7 +7150,7 @@ var JobGallery = ({
6951
7150
  const careersPhoto = websitePhotos == null ? void 0 : websitePhotos.careers;
6952
7151
  const finalHeaderImage = careersPhoto == null ? void 0 : careersPhoto.url;
6953
7152
  const finalHeaderImageAlt = (careersPhoto == null ? void 0 : careersPhoto.alt) || "Team collaboration";
6954
- const groupedJobs = React28.useMemo(() => {
7153
+ const groupedJobs = React29.useMemo(() => {
6955
7154
  const jobs = Array.isArray(jobsData) ? jobsData : [];
6956
7155
  if (!jobs.length) return [];
6957
7156
  const groups = {};
@@ -6964,7 +7163,7 @@ var JobGallery = ({
6964
7163
  });
6965
7164
  return Object.entries(groups);
6966
7165
  }, [jobsData]);
6967
- 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(
7166
+ 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(
6968
7167
  PhotoWithFallback2,
6969
7168
  {
6970
7169
  photoUrl: finalHeaderImage,
@@ -6972,20 +7171,20 @@ var JobGallery = ({
6972
7171
  fallbackId: "careers-header",
6973
7172
  className: "size-full object-cover"
6974
7173
  }
6975
- )), 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) => {
7174
+ )), 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) => {
6976
7175
  var _a2;
6977
7176
  const description = ((_a2 = job.description_markdown) == null ? void 0 : _a2.replace(/[#*\[\]()]/g, "").trim()) || "";
6978
- return /* @__PURE__ */ React28.createElement("li", { key: job.id || index }, /* @__PURE__ */ React28.createElement(
7177
+ return /* @__PURE__ */ React29.createElement("li", { key: job.id || index }, /* @__PURE__ */ React29.createElement(
6979
7178
  "a",
6980
7179
  {
6981
7180
  href: `/careers/${job.slug}`,
6982
7181
  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"
6983
7182
  },
6984
- /* @__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))),
6985
- /* @__PURE__ */ React28.createElement("p", { className: "mt-2 text-md text-tertiary line-clamp-2" }, description),
6986
- /* @__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)))
7183
+ /* @__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))),
7184
+ /* @__PURE__ */ React29.createElement("p", { className: "mt-2 text-md text-tertiary line-clamp-2" }, description),
7185
+ /* @__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)))
6987
7186
  ));
6988
- })))))) : /* @__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")))));
7187
+ })))))) : /* @__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")))));
6989
7188
  };
6990
7189
 
6991
7190
  // src/design_system/sections/blog-home.tsx
@@ -7068,7 +7267,7 @@ var BlogHome = ({
7068
7267
  };
7069
7268
 
7070
7269
  // src/design_system/sections/blog-gallery.tsx
7071
- import React29, { useState as useState12 } from "react";
7270
+ import React30, { useState as useState12 } from "react";
7072
7271
  import { ArrowUpRight as ArrowUpRight4 } from "@untitledui/icons";
7073
7272
 
7074
7273
  // src/design_system/sections/blog-cards.tsx
@@ -7502,16 +7701,16 @@ var BlogGallery = ({
7502
7701
  const startIndex = (currentPage - 1) * postsPerPage;
7503
7702
  const endIndex = startIndex + postsPerPage;
7504
7703
  const paginatedNonFeaturedPosts = nonFeaturedPosts.slice(startIndex, endIndex);
7505
- React29.useEffect(() => {
7704
+ React30.useEffect(() => {
7506
7705
  setCurrentPage(1);
7507
7706
  }, [sortBy]);
7508
- 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(
7707
+ 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(
7509
7708
  "a",
7510
7709
  {
7511
7710
  href: `/blog/${featuredPost.slug}`,
7512
7711
  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"
7513
7712
  },
7514
- /* @__PURE__ */ React29.createElement("div", { className: "relative w-full overflow-hidden rounded-t-2xl md:h-145 lg:h-180" }, /* @__PURE__ */ React29.createElement(
7713
+ /* @__PURE__ */ React30.createElement("div", { className: "relative w-full overflow-hidden rounded-t-2xl md:h-145 lg:h-180" }, /* @__PURE__ */ React30.createElement(
7515
7714
  PhotoWithFallback2,
7516
7715
  {
7517
7716
  item: featuredPost,
@@ -7522,9 +7721,9 @@ var BlogGallery = ({
7522
7721
  )),
7523
7722
  (() => {
7524
7723
  const { title, summary, publishedAt, authorName, authorAvatarUrl } = getBlogPostData(featuredPost);
7525
- 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)));
7724
+ 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)));
7526
7725
  })()
7527
- ), 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(
7726
+ ), 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(
7528
7727
  Select3,
7529
7728
  {
7530
7729
  "aria-label": "Sort by",
@@ -7533,8 +7732,8 @@ var BlogGallery = ({
7533
7732
  onSelectionChange: (value) => setSortBy(value),
7534
7733
  items: defaultSortByOptions
7535
7734
  },
7536
- (item) => /* @__PURE__ */ React29.createElement(SelectItem2, { id: item.id }, item.label)
7537
- ))), 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(
7735
+ (item) => /* @__PURE__ */ React30.createElement(SelectItem2, { id: item.id }, item.label)
7736
+ ))), 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(
7538
7737
  PaginationPageDefault2,
7539
7738
  {
7540
7739
  rounded: true,
@@ -7542,11 +7741,11 @@ var BlogGallery = ({
7542
7741
  total: totalPages,
7543
7742
  onPageChange: setCurrentPage
7544
7743
  }
7545
- )) : /* @__PURE__ */ React29.createElement("div", { className: "text-center py-12" }, /* @__PURE__ */ React29.createElement("p", { className: "text-gray-500" }, "No blog posts available"))));
7744
+ )) : /* @__PURE__ */ React30.createElement("div", { className: "text-center py-12" }, /* @__PURE__ */ React30.createElement("p", { className: "text-gray-500" }, "No blog posts available"))));
7546
7745
  };
7547
7746
 
7548
7747
  // src/design_system/sections/blog-post.tsx
7549
- import React30, { useState as useState13 } from "react";
7748
+ import React31, { useState as useState13 } from "react";
7550
7749
  import { Link01, Copy01 } from "@untitledui/icons";
7551
7750
 
7552
7751
  // src/utils/markdown-toc.ts
@@ -7616,16 +7815,16 @@ var BlogPostSection = ({
7616
7815
  }
7617
7816
  };
7618
7817
  if (!blogPost) {
7619
- 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"));
7818
+ 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"));
7620
7819
  }
7621
- 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(
7820
+ 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(
7622
7821
  Breadcrumb2,
7623
7822
  {
7624
7823
  backHref: "/blog",
7625
7824
  backLabel: "Blog",
7626
7825
  currentLabel: blogPost.title
7627
7826
  }
7628
- ))), /* @__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(
7827
+ ))), /* @__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(
7629
7828
  BadgeGroup2,
7630
7829
  {
7631
7830
  size: "md",
@@ -7636,7 +7835,7 @@ var BlogPostSection = ({
7636
7835
  iconTrailing: null
7637
7836
  },
7638
7837
  blogPost.reading_time_minutes ? `${blogPost.reading_time_minutes} min read` : blogPost.published_at ? formatDate4(blogPost.published_at) : "Recent"
7639
- ), /* @__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(
7838
+ ), /* @__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(
7640
7839
  PhotoWithFallback2,
7641
7840
  {
7642
7841
  item: blogPost,
@@ -7644,7 +7843,7 @@ var BlogPostSection = ({
7644
7843
  alt: blogPost.title,
7645
7844
  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"
7646
7845
  }
7647
- )), 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(
7846
+ )), 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(
7648
7847
  Button2,
7649
7848
  {
7650
7849
  size: "lg",
@@ -7652,12 +7851,12 @@ var BlogPostSection = ({
7652
7851
  href: `#${item.id}`,
7653
7852
  className: `${item.level === 3 ? "pl-4" : ""} w-full text-left whitespace-normal justify-start`
7654
7853
  },
7655
- /* @__PURE__ */ React30.createElement("span", { className: "break-words block w-full" }, item.title)
7656
- ))))), /* @__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" }, (() => {
7854
+ /* @__PURE__ */ React31.createElement("span", { className: "break-words block w-full" }, item.title)
7855
+ ))))), /* @__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" }, (() => {
7657
7856
  const author = blogPost.blog_post_authors[0];
7658
7857
  const authorName = (author == null ? void 0 : author.name) || "Author";
7659
7858
  const authorAvatarUrl = getAvatarUrl(author == null ? void 0 : author.photo_attachments, author == null ? void 0 : author.id, authorName);
7660
- return /* @__PURE__ */ React30.createElement(React30.Fragment, null, /* @__PURE__ */ React30.createElement(
7859
+ return /* @__PURE__ */ React31.createElement(React31.Fragment, null, /* @__PURE__ */ React31.createElement(
7661
7860
  Avatar2,
7662
7861
  {
7663
7862
  src: authorAvatarUrl != null ? authorAvatarUrl : void 0,
@@ -7665,8 +7864,8 @@ var BlogPostSection = ({
7665
7864
  initials: authorName.trim().charAt(0).toUpperCase() || "?",
7666
7865
  size: "md"
7667
7866
  }
7668
- ), /* @__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))));
7669
- })())), /* @__PURE__ */ React30.createElement("div", { className: "w-full border-t border-secondary" }), /* @__PURE__ */ React30.createElement(
7867
+ ), /* @__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))));
7868
+ })())), /* @__PURE__ */ React31.createElement("div", { className: "w-full border-t border-secondary" }), /* @__PURE__ */ React31.createElement(
7670
7869
  Form2,
7671
7870
  {
7672
7871
  onSubmit: (e) => {
@@ -7676,30 +7875,30 @@ var BlogPostSection = ({
7676
7875
  },
7677
7876
  className: "flex flex-col gap-4"
7678
7877
  },
7679
- /* @__PURE__ */ React30.createElement("label", { htmlFor: "blog-email-input", className: "text-md font-semibold text-brand-secondary" }, "Subscribe to our newsletter"),
7680
- /* @__PURE__ */ React30.createElement(Input3, { isRequired: true, id: "blog-email-input", name: "email", type: "email", placeholder: "Enter your email", size: "md" }),
7681
- /* @__PURE__ */ React30.createElement(Button2, { type: "submit", size: "xl" }, "Subscribe")
7682
- ), /* @__PURE__ */ React30.createElement("div", { className: "w-full border-t border-secondary" }), /* @__PURE__ */ React30.createElement("div", { className: "flex gap-3" }, /* @__PURE__ */ React30.createElement(
7878
+ /* @__PURE__ */ React31.createElement("label", { htmlFor: "blog-email-input", className: "text-md font-semibold text-brand-secondary" }, "Subscribe to our newsletter"),
7879
+ /* @__PURE__ */ React31.createElement(Input3, { isRequired: true, id: "blog-email-input", name: "email", type: "email", placeholder: "Enter your email", size: "md" }),
7880
+ /* @__PURE__ */ React31.createElement(Button2, { type: "submit", size: "xl" }, "Subscribe")
7881
+ ), /* @__PURE__ */ React31.createElement("div", { className: "w-full border-t border-secondary" }), /* @__PURE__ */ React31.createElement("div", { className: "flex gap-3" }, /* @__PURE__ */ React31.createElement(
7683
7882
  "button",
7684
7883
  {
7685
7884
  onClick: handleShareLink,
7686
7885
  title: "Share link",
7687
7886
  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"
7688
7887
  },
7689
- /* @__PURE__ */ React30.createElement(Link01, { className: "size-5 shrink-0" })
7690
- ), /* @__PURE__ */ React30.createElement(
7888
+ /* @__PURE__ */ React31.createElement(Link01, { className: "size-5 shrink-0" })
7889
+ ), /* @__PURE__ */ React31.createElement(
7691
7890
  "button",
7692
7891
  {
7693
7892
  onClick: handleCopyLink,
7694
7893
  title: copied ? "Copied!" : "Copy link",
7695
7894
  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"
7696
7895
  },
7697
- /* @__PURE__ */ React30.createElement(Copy01, { className: "size-5 shrink-0" })
7698
- ))), /* @__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" }, (() => {
7896
+ /* @__PURE__ */ React31.createElement(Copy01, { className: "size-5 shrink-0" })
7897
+ ))), /* @__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" }, (() => {
7699
7898
  const author = blogPost.blog_post_authors[0];
7700
7899
  const authorName = (author == null ? void 0 : author.name) || "Author";
7701
7900
  const authorAvatarUrl = getAvatarUrl(author == null ? void 0 : author.photo_attachments, author == null ? void 0 : author.id, authorName);
7702
- return /* @__PURE__ */ React30.createElement(React30.Fragment, null, /* @__PURE__ */ React30.createElement(
7901
+ return /* @__PURE__ */ React31.createElement(React31.Fragment, null, /* @__PURE__ */ React31.createElement(
7703
7902
  Avatar2,
7704
7903
  {
7705
7904
  src: authorAvatarUrl != null ? authorAvatarUrl : void 0,
@@ -7707,24 +7906,24 @@ var BlogPostSection = ({
7707
7906
  initials: authorName.trim().charAt(0).toUpperCase() || "?",
7708
7907
  size: "md"
7709
7908
  }
7710
- ), /* @__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))));
7711
- })())), /* @__PURE__ */ React30.createElement("div", { className: "flex gap-3" }, /* @__PURE__ */ React30.createElement(
7909
+ ), /* @__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))));
7910
+ })())), /* @__PURE__ */ React31.createElement("div", { className: "flex gap-3" }, /* @__PURE__ */ React31.createElement(
7712
7911
  "button",
7713
7912
  {
7714
7913
  onClick: handleShareLink,
7715
7914
  title: "Share link",
7716
7915
  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"
7717
7916
  },
7718
- /* @__PURE__ */ React30.createElement(Link01, { className: "size-5 shrink-0" })
7719
- ), /* @__PURE__ */ React30.createElement(
7917
+ /* @__PURE__ */ React31.createElement(Link01, { className: "size-5 shrink-0" })
7918
+ ), /* @__PURE__ */ React31.createElement(
7720
7919
  "button",
7721
7920
  {
7722
7921
  onClick: handleCopyLink,
7723
7922
  title: copied ? "Copied!" : "Copy link",
7724
7923
  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"
7725
7924
  },
7726
- /* @__PURE__ */ React30.createElement(Copy01, { className: "size-5 shrink-0" })
7727
- ))))))), /* @__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))))))));
7925
+ /* @__PURE__ */ React31.createElement(Copy01, { className: "size-5 shrink-0" })
7926
+ ))))))), /* @__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))))))));
7728
7927
  };
7729
7928
 
7730
7929
  // src/design_system/sections/contact-home.tsx
@@ -7744,7 +7943,7 @@ var ContactHome = ({
7744
7943
  };
7745
7944
 
7746
7945
  // src/design_system/sections/faq-grid.tsx
7747
- import React31 from "react";
7946
+ import React32 from "react";
7748
7947
  var renderMarkdown = (content) => {
7749
7948
  let html = content.replace(/\[([^\]]+)\]\(([^)]+)\)/g, '<a href="$2" class="text-brand-secondary underline">$1</a>');
7750
7949
  html = html.replace(/\*\*([^*]+)\*\*/g, "<strong>$1</strong>");
@@ -7770,17 +7969,17 @@ var FAQGrid = ({
7770
7969
  const faqs = Array.isArray(faqsData) ? faqsData : [];
7771
7970
  const resolved = companyInformation ? resolveCtaUrls(companyInformation) : null;
7772
7971
  const effectiveCtaButtonHref = (_a = ctaButtonHref != null ? ctaButtonHref : resolved == null ? void 0 : resolved.primaryHref) != null ? _a : "/contact";
7773
- 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) => {
7972
+ 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) => {
7774
7973
  const answerContent = faq.answer_markdown || "";
7775
7974
  const answerHtml = renderMarkdown(answerContent);
7776
- 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(
7975
+ 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(
7777
7976
  "dd",
7778
7977
  {
7779
7978
  className: "mt-1 text-md text-tertiary",
7780
7979
  dangerouslySetInnerHTML: { __html: answerHtml }
7781
7980
  }
7782
7981
  )));
7783
- }))), (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(
7982
+ }))), (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(
7784
7983
  Button2,
7785
7984
  {
7786
7985
  size: "xl",
@@ -7961,7 +8160,7 @@ import { Fragment as Fragment2 } from "react";
7961
8160
  import Image10 from "next/image";
7962
8161
 
7963
8162
  // src/design_system/elements/IconComponent.tsx
7964
- import React32 from "react";
8163
+ import React33 from "react";
7965
8164
  var IconComponent = ({ icon, color: color2 = "blue", className = "" }) => {
7966
8165
  const getIconColor = (colorName) => {
7967
8166
  switch (colorName) {
@@ -7986,26 +8185,26 @@ var IconComponent = ({ icon, color: color2 = "blue", className = "" }) => {
7986
8185
  const renderIcon = () => {
7987
8186
  switch (icon) {
7988
8187
  case "star":
7989
- 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" }));
8188
+ 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" }));
7990
8189
  case "heart":
7991
- 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" }));
8190
+ 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" }));
7992
8191
  case "home":
7993
- 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" }));
8192
+ 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" }));
7994
8193
  case "person":
7995
- 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" }));
8194
+ 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" }));
7996
8195
  case "phone":
7997
- 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" }));
8196
+ 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" }));
7998
8197
  case "email":
7999
- 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" }));
8198
+ 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" }));
8000
8199
  case "location":
8001
- 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" }));
8200
+ 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" }));
8002
8201
  case "clock":
8003
- 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" }));
8202
+ 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" }));
8004
8203
  default:
8005
- 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" }));
8204
+ 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" }));
8006
8205
  }
8007
8206
  };
8008
- return /* @__PURE__ */ React32.createElement("div", { className }, renderIcon());
8207
+ return /* @__PURE__ */ React33.createElement("div", { className }, renderIcon());
8009
8208
  };
8010
8209
  var IconComponent_default = IconComponent;
8011
8210
 
@@ -8173,14 +8372,14 @@ var JobDetailHero = ({
8173
8372
  };
8174
8373
 
8175
8374
  // src/design_system/sections/job-application-form.tsx
8176
- import React33, { useRef as useRef7, useState as useState14 } from "react";
8375
+ import React34, { useRef as useRef8, useState as useState14 } from "react";
8177
8376
  var JobApplicationForm = ({ jobSlug, formDefinition, inline = false }) => {
8178
8377
  const { jobApplicationFormDefinition } = useFormDefinitions();
8179
8378
  const resolvedFormDefinition = formDefinition != null ? formDefinition : jobApplicationFormDefinition;
8180
8379
  const [isSubmitting, setIsSubmitting] = useState14(false);
8181
8380
  const [submitStatus, setSubmitStatus] = useState14("idle");
8182
8381
  const [statusMessage, setStatusMessage] = useState14("");
8183
- const formRef = useRef7(null);
8382
+ const formRef = useRef8(null);
8184
8383
  const hasFields = resolvedFormDefinition != null && Array.isArray(resolvedFormDefinition.fields) && resolvedFormDefinition.fields.length > 0;
8185
8384
  const handleSubmit = async (e) => {
8186
8385
  var _a;
@@ -8216,7 +8415,7 @@ var JobApplicationForm = ({ jobSlug, formDefinition, inline = false }) => {
8216
8415
  setIsSubmitting(false);
8217
8416
  };
8218
8417
  if (!hasFields) return null;
8219
- 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(
8418
+ 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(
8220
8419
  Button2,
8221
8420
  {
8222
8421
  type: "submit",
@@ -8229,7 +8428,7 @@ var JobApplicationForm = ({ jobSlug, formDefinition, inline = false }) => {
8229
8428
  isSubmitting ? "Submitting..." : "Submit Application"
8230
8429
  ));
8231
8430
  if (inline) return formContent;
8232
- 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)));
8431
+ 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)));
8233
8432
  };
8234
8433
 
8235
8434
  // src/design_system/sections/job-detail-section.tsx
@@ -8265,9 +8464,116 @@ var PolicyDocumentSection = ({
8265
8464
  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 }))));
8266
8465
  };
8267
8466
 
8467
+ // src/design_system/sections/offers-section.tsx
8468
+ function OffersSection({
8469
+ offers,
8470
+ title = "Offers",
8471
+ subtitle = "See our current offers.",
8472
+ maxOffers = 6,
8473
+ backgroundColor = "bg-primary",
8474
+ showViewAll = true
8475
+ }) {
8476
+ const list = Array.isArray(offers) ? offers : [];
8477
+ const displayList = list.filter((o) => !o.expired).slice(0, maxOffers);
8478
+ if (list.length === 0) {
8479
+ return null;
8480
+ }
8481
+ 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"))));
8482
+ }
8483
+ function OfferCard({ offer }) {
8484
+ 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 && (() => {
8485
+ const d = new Date(offer.expires_at);
8486
+ if (Number.isNaN(d.getTime())) return null;
8487
+ return /* @__PURE__ */ React.createElement("p", { className: "text-xs text-tertiary" }, "Expires ", d.toLocaleDateString());
8488
+ })()));
8489
+ }
8490
+
8491
+ // src/design_system/sections/offers-gallery.tsx
8492
+ import React36 from "react";
8493
+
8494
+ // src/design_system/sections/offers-grid.tsx
8495
+ import React35 from "react";
8496
+ function OffersGrid({
8497
+ offers,
8498
+ title = "Offers",
8499
+ subtitle = "See our current offers.",
8500
+ websitePhotos,
8501
+ companyInformation,
8502
+ backgroundColor = "bg-primary"
8503
+ }) {
8504
+ const list = Array.isArray(offers) ? offers : [];
8505
+ const displayList = list.filter((o) => !o.expired);
8506
+ 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(
8507
+ OffersGridCard,
8508
+ {
8509
+ offer,
8510
+ index,
8511
+ websitePhotos,
8512
+ companyInformation
8513
+ }
8514
+ )))) : /* @__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."))));
8515
+ }
8516
+ function OffersGridCard({
8517
+ offer,
8518
+ index,
8519
+ websitePhotos,
8520
+ companyInformation
8521
+ }) {
8522
+ var _a;
8523
+ 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(
8524
+ PhotoWithFallback2,
8525
+ {
8526
+ item: void 0,
8527
+ fallbackId: (_a = offer.id) != null ? _a : index,
8528
+ alt: offer.name,
8529
+ className: "size-full object-cover",
8530
+ websitePhotos,
8531
+ companyInformation
8532
+ }
8533
+ )), /* @__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 && (() => {
8534
+ const d = new Date(offer.expires_at);
8535
+ if (Number.isNaN(d.getTime())) return null;
8536
+ return /* @__PURE__ */ React35.createElement("p", { className: "text-xs text-tertiary" }, "Expires ", d.toLocaleDateString());
8537
+ })()));
8538
+ }
8539
+
8540
+ // src/design_system/sections/offers-gallery.tsx
8541
+ var OffersGallery = ({
8542
+ offers,
8543
+ title = "Offers",
8544
+ subtitle = "See our current offers.",
8545
+ websitePhotos,
8546
+ companyInformation,
8547
+ className = ""
8548
+ }) => /* @__PURE__ */ React36.createElement("section", { className }, /* @__PURE__ */ React36.createElement(
8549
+ OffersGrid,
8550
+ {
8551
+ offers,
8552
+ title,
8553
+ subtitle,
8554
+ websitePhotos,
8555
+ companyInformation
8556
+ }
8557
+ ));
8558
+ registerThemeVariant("offers-gallery", "classic", OffersGallery);
8559
+
8560
+ // src/design_system/sections/offer-detail.tsx
8561
+ import React37 from "react";
8562
+ var OfferDetailSection = ({ offer }) => {
8563
+ if (!offer) {
8564
+ 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"));
8565
+ }
8566
+ 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 && (() => {
8567
+ const d = new Date(offer.expires_at);
8568
+ if (Number.isNaN(d.getTime())) return null;
8569
+ return /* @__PURE__ */ React37.createElement("p", { className: "text-sm text-gray-500 mb-6" }, "Expires ", d.toLocaleDateString());
8570
+ })(), /* @__PURE__ */ React37.createElement(Button2, { href: "/offers" }, "Back to Offers"));
8571
+ };
8572
+ registerThemeVariant("offer-detail", "classic", OfferDetailSection);
8573
+
8268
8574
  // src/design_system/sections/hero-home.aman.tsx
8269
8575
  import { Fragment as Fragment3, useState as useState15 } from "react";
8270
- import React34 from "react";
8576
+ import React38 from "react";
8271
8577
  var HeroHome2 = ({
8272
8578
  websitePhotos,
8273
8579
  companyInformation,
@@ -8285,7 +8591,7 @@ var HeroHome2 = ({
8285
8591
  url: ((_b = websitePhotos == null ? void 0 : websitePhotos.hero) == null ? void 0 : _b.url) || "",
8286
8592
  alt: ((_c = websitePhotos == null ? void 0 : websitePhotos.hero) == null ? void 0 : _c.alt) || "Hero image"
8287
8593
  };
8288
- 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(
8594
+ 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(
8289
8595
  "a",
8290
8596
  {
8291
8597
  href: effectiveCtaHref,
@@ -8295,7 +8601,7 @@ var HeroHome2 = ({
8295
8601
  style: { color: "var(--color-text-brand-accent)" }
8296
8602
  },
8297
8603
  ctaText
8298
- ))), /* @__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(
8604
+ ))), /* @__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(
8299
8605
  PhotoWithFallback2,
8300
8606
  {
8301
8607
  photoUrl: heroImage.url,
@@ -8303,7 +8609,7 @@ var HeroHome2 = ({
8303
8609
  fallbackId: "hero-home-brand",
8304
8610
  className: "w-full h-full object-cover"
8305
8611
  }
8306
- ), 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(
8612
+ ), 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(
8307
8613
  VideoModal,
8308
8614
  {
8309
8615
  isOpen: showVideo,
@@ -8315,7 +8621,7 @@ var HeroHome2 = ({
8315
8621
  registerThemeVariant("hero-home", "aman", HeroHome2);
8316
8622
 
8317
8623
  // src/design_system/sections/header-navigation.aman.tsx
8318
- import React35, { useState as useState16, useRef as useRef8, useCallback as useCallback5 } from "react";
8624
+ import React39, { useState as useState16, useRef as useRef9, useCallback as useCallback5 } from "react";
8319
8625
  import Link6 from "next/link";
8320
8626
  import Image11 from "next/image";
8321
8627
  var MAX_DROPDOWN_ITEMS = 3;
@@ -8328,20 +8634,20 @@ function HeaderNavigation2({
8328
8634
  companyInformation,
8329
8635
  websitePhotos
8330
8636
  }) {
8331
- var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v;
8637
+ 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;
8332
8638
  const [activeDropdown, setActiveDropdown] = useState16(null);
8333
8639
  const [isMobileMenuOpen, setIsMobileMenuOpen] = useState16(false);
8334
8640
  const [dropdownTop, setDropdownTop] = useState16(0);
8335
8641
  const [isScrolled, setIsScrolled] = useState16(false);
8336
- const closeTimeoutRef = useRef8(null);
8337
- React35.useEffect(() => {
8642
+ const closeTimeoutRef = useRef9(null);
8643
+ React39.useEffect(() => {
8338
8644
  const handleScroll = () => {
8339
8645
  setIsScrolled(window.scrollY > 10);
8340
8646
  };
8341
8647
  window.addEventListener("scroll", handleScroll);
8342
8648
  return () => window.removeEventListener("scroll", handleScroll);
8343
8649
  }, []);
8344
- React35.useEffect(() => {
8650
+ React39.useEffect(() => {
8345
8651
  return () => {
8346
8652
  if (closeTimeoutRef.current) {
8347
8653
  clearTimeout(closeTimeoutRef.current);
@@ -8404,10 +8710,10 @@ function HeaderNavigation2({
8404
8710
  viewAllLabel: ""
8405
8711
  };
8406
8712
  };
8407
- 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(
8713
+ 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(
8408
8714
  "relative flex items-center justify-between transition-all duration-300",
8409
8715
  isScrolled ? "py-2" : "py-8"
8410
- ) }, /* @__PURE__ */ React35.createElement(Link6, { href: "/", className: "flex items-center" }, logoUrl && /* @__PURE__ */ React35.createElement(
8716
+ ) }, /* @__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(
8411
8717
  Image11,
8412
8718
  {
8413
8719
  src: logoUrl,
@@ -8416,7 +8722,7 @@ function HeaderNavigation2({
8416
8722
  width: 120,
8417
8723
  height: 40
8418
8724
  }
8419
- )), /* @__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(
8725
+ )), /* @__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(
8420
8726
  Button2,
8421
8727
  {
8422
8728
  href: ctaUrls.secondaryHref,
@@ -8427,18 +8733,18 @@ function HeaderNavigation2({
8427
8733
  className: "font-body text-sm uppercase tracking-wide px-6 py-2 rounded-sm"
8428
8734
  },
8429
8735
  props.cta_button.label
8430
- ), /* @__PURE__ */ React35.createElement(
8736
+ ), /* @__PURE__ */ React39.createElement(
8431
8737
  Button2,
8432
8738
  {
8433
8739
  href: ctaUrls.primaryHref,
8434
- target: (_f = (_e = props == null ? void 0 : props.cta_button) == null ? void 0 : _e.target) != null ? _f : isExternalCtaUrl(ctaUrls.primaryHref) ? "_blank" : void 0,
8435
- rel: ((_g = props == null ? void 0 : props.cta_button) == null ? void 0 : _g.target) === "_blank" || isExternalCtaUrl(ctaUrls.primaryHref) ? "noopener noreferrer" : void 0,
8740
+ target: (_h = (_g = props == null ? void 0 : props.cta_button) == null ? void 0 : _g.target) != null ? _h : isExternalCtaUrl(ctaUrls.primaryHref) ? "_blank" : void 0,
8741
+ rel: ((_i = props == null ? void 0 : props.cta_button) == null ? void 0 : _i.target) === "_blank" || isExternalCtaUrl(ctaUrls.primaryHref) ? "noopener noreferrer" : void 0,
8436
8742
  size: "sm",
8437
8743
  color: "primary",
8438
8744
  className: "font-body text-sm uppercase tracking-wide px-6 py-2 rounded-sm"
8439
8745
  },
8440
- ((_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"
8441
- ))), /* @__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(
8746
+ ((_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"
8747
+ ))), /* @__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(
8442
8748
  "div",
8443
8749
  {
8444
8750
  key: i,
@@ -8446,7 +8752,7 @@ function HeaderNavigation2({
8446
8752
  onMouseEnter: (e) => handleMouseEnter(item, e),
8447
8753
  onMouseLeave: handleMouseLeave
8448
8754
  },
8449
- /* @__PURE__ */ React35.createElement(
8755
+ /* @__PURE__ */ React39.createElement(
8450
8756
  Link6,
8451
8757
  {
8452
8758
  href: item.href,
@@ -8457,7 +8763,7 @@ function HeaderNavigation2({
8457
8763
  },
8458
8764
  item.label
8459
8765
  ),
8460
- item.children && item.children.length > 0 && activeDropdown === item.label && /* @__PURE__ */ React35.createElement(
8766
+ item.children && item.children.length > 0 && activeDropdown === item.label && /* @__PURE__ */ React39.createElement(
8461
8767
  "div",
8462
8768
  {
8463
8769
  className: "fixed left-0 right-0 w-full pt-6 pb-6 border-b border-secondary bg-primary z-50",
@@ -8465,9 +8771,9 @@ function HeaderNavigation2({
8465
8771
  onMouseEnter: handleDropdownMouseEnter,
8466
8772
  onMouseLeave: handleDropdownMouseLeave
8467
8773
  },
8468
- /* @__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" }, (() => {
8774
+ /* @__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" }, (() => {
8469
8775
  const { items, showViewAll, viewAllHref, viewAllLabel } = getDropdownItems(item);
8470
- return /* @__PURE__ */ React35.createElement(React35.Fragment, null, items.map((link, j) => /* @__PURE__ */ React35.createElement(
8776
+ return /* @__PURE__ */ React39.createElement(React39.Fragment, null, items.map((link, j) => /* @__PURE__ */ React39.createElement(
8471
8777
  Link6,
8472
8778
  {
8473
8779
  key: j,
@@ -8475,7 +8781,7 @@ function HeaderNavigation2({
8475
8781
  className: "font-body text-sm text-fg-primary hover:underline whitespace-nowrap"
8476
8782
  },
8477
8783
  link.label
8478
- )), showViewAll && /* @__PURE__ */ React35.createElement(
8784
+ )), showViewAll && /* @__PURE__ */ React39.createElement(
8479
8785
  Link6,
8480
8786
  {
8481
8787
  href: viewAllHref,
@@ -8486,15 +8792,15 @@ function HeaderNavigation2({
8486
8792
  ));
8487
8793
  })()))
8488
8794
  )
8489
- )))))), /* @__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(
8795
+ )))))), /* @__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(
8490
8796
  "button",
8491
8797
  {
8492
8798
  onClick: () => setIsMobileMenuOpen(true),
8493
8799
  className: "text-fg-primary",
8494
8800
  "aria-label": "Open menu"
8495
8801
  },
8496
- /* @__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" }))
8497
- ), /* @__PURE__ */ React35.createElement(Link6, { href: "/", className: "flex items-center" }, logoUrl ? /* @__PURE__ */ React35.createElement(
8802
+ /* @__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" }))
8803
+ ), /* @__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(
8498
8804
  Image11,
8499
8805
  {
8500
8806
  src: logoUrl,
@@ -8503,15 +8809,15 @@ function HeaderNavigation2({
8503
8809
  width: 120,
8504
8810
  height: 32
8505
8811
  }
8506
- ) : /* @__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(
8812
+ ) : /* @__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(
8507
8813
  "button",
8508
8814
  {
8509
8815
  onClick: () => setIsMobileMenuOpen(false),
8510
8816
  className: "text-fg-primary",
8511
8817
  "aria-label": "Close menu"
8512
8818
  },
8513
- /* @__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" }))
8514
- ), /* @__PURE__ */ React35.createElement("div", { className: "flex items-center" }, logoUrl ? /* @__PURE__ */ React35.createElement(
8819
+ /* @__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" }))
8820
+ ), /* @__PURE__ */ React39.createElement("div", { className: "flex items-center" }, logoUrl ? /* @__PURE__ */ React39.createElement(
8515
8821
  Image11,
8516
8822
  {
8517
8823
  src: logoUrl,
@@ -8520,9 +8826,9 @@ function HeaderNavigation2({
8520
8826
  width: 120,
8521
8827
  height: 32
8522
8828
  }
8523
- ) : /* @__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) => {
8829
+ ) : /* @__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) => {
8524
8830
  const { items, showViewAll, viewAllHref, viewAllLabel } = getDropdownItems(item);
8525
- return /* @__PURE__ */ React35.createElement("li", { key: i }, /* @__PURE__ */ React35.createElement(
8831
+ return /* @__PURE__ */ React39.createElement("li", { key: i }, /* @__PURE__ */ React39.createElement(
8526
8832
  Link6,
8527
8833
  {
8528
8834
  href: item.href,
@@ -8530,7 +8836,7 @@ function HeaderNavigation2({
8530
8836
  onClick: () => setIsMobileMenuOpen(false)
8531
8837
  },
8532
8838
  item.label
8533
- ), 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(
8839
+ ), 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(
8534
8840
  Link6,
8535
8841
  {
8536
8842
  href: link.href,
@@ -8538,7 +8844,7 @@ function HeaderNavigation2({
8538
8844
  onClick: () => setIsMobileMenuOpen(false)
8539
8845
  },
8540
8846
  link.label
8541
- ))), showViewAll && /* @__PURE__ */ React35.createElement("li", null, /* @__PURE__ */ React35.createElement(
8847
+ ))), showViewAll && /* @__PURE__ */ React39.createElement("li", null, /* @__PURE__ */ React39.createElement(
8542
8848
  Link6,
8543
8849
  {
8544
8850
  href: viewAllHref,
@@ -8548,7 +8854,7 @@ function HeaderNavigation2({
8548
8854
  viewAllLabel,
8549
8855
  " \u2192"
8550
8856
  ))));
8551
- }))), /* @__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(
8857
+ }))), /* @__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(
8552
8858
  Button2,
8553
8859
  {
8554
8860
  href: ctaUrls.secondaryHref,
@@ -8559,18 +8865,18 @@ function HeaderNavigation2({
8559
8865
  onClick: () => setIsMobileMenuOpen(false)
8560
8866
  },
8561
8867
  props.cta_button.label
8562
- ), /* @__PURE__ */ React35.createElement(
8868
+ ), /* @__PURE__ */ React39.createElement(
8563
8869
  Button2,
8564
8870
  {
8565
8871
  href: ctaUrls.primaryHref,
8566
- target: (_l = (_k = props == null ? void 0 : props.cta_button) == null ? void 0 : _k.target) != null ? _l : isExternalCtaUrl(ctaUrls.primaryHref) ? "_blank" : void 0,
8567
- rel: ((_m = props == null ? void 0 : props.cta_button) == null ? void 0 : _m.target) === "_blank" || isExternalCtaUrl(ctaUrls.primaryHref) ? "noopener noreferrer" : void 0,
8872
+ target: (_o = (_n = props == null ? void 0 : props.cta_button) == null ? void 0 : _n.target) != null ? _o : isExternalCtaUrl(ctaUrls.primaryHref) ? "_blank" : void 0,
8873
+ rel: ((_p = props == null ? void 0 : props.cta_button) == null ? void 0 : _p.target) === "_blank" || isExternalCtaUrl(ctaUrls.primaryHref) ? "noopener noreferrer" : void 0,
8568
8874
  color: "primary",
8569
8875
  className: "w-full font-body text-sm uppercase tracking-wide py-3 rounded-sm",
8570
8876
  onClick: () => setIsMobileMenuOpen(false)
8571
8877
  },
8572
- ((_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"
8573
- ))))), /* @__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(
8878
+ ((_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"
8879
+ ))))), /* @__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(
8574
8880
  Button2,
8575
8881
  {
8576
8882
  href: ctaUrls.secondaryHref,
@@ -8580,16 +8886,16 @@ function HeaderNavigation2({
8580
8886
  className: "flex-1 font-body text-sm uppercase tracking-wide py-4 rounded-none border-r border-gray-700"
8581
8887
  },
8582
8888
  props.cta_button.label
8583
- ), /* @__PURE__ */ React35.createElement(
8889
+ ), /* @__PURE__ */ React39.createElement(
8584
8890
  Button2,
8585
8891
  {
8586
8892
  href: ctaUrls.primaryHref,
8587
- target: (_r = (_q = props == null ? void 0 : props.cta_button) == null ? void 0 : _q.target) != null ? _r : isExternalCtaUrl(ctaUrls.primaryHref) ? "_blank" : void 0,
8588
- rel: ((_s = props == null ? void 0 : props.cta_button) == null ? void 0 : _s.target) === "_blank" || isExternalCtaUrl(ctaUrls.primaryHref) ? "noopener noreferrer" : void 0,
8893
+ target: (_u = (_t = props == null ? void 0 : props.cta_button) == null ? void 0 : _t.target) != null ? _u : isExternalCtaUrl(ctaUrls.primaryHref) ? "_blank" : void 0,
8894
+ rel: ((_v = props == null ? void 0 : props.cta_button) == null ? void 0 : _v.target) === "_blank" || isExternalCtaUrl(ctaUrls.primaryHref) ? "noopener noreferrer" : void 0,
8589
8895
  color: "primary",
8590
- 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`
8896
+ 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`
8591
8897
  },
8592
- ((_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"
8898
+ ((_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"
8593
8899
  ))));
8594
8900
  }
8595
8901
  registerThemeVariant("header-navigation", "aman", HeaderNavigation2);
@@ -8681,7 +8987,7 @@ var ServicesGrid2 = ({
8681
8987
  registerThemeVariant("services-grid", "aman", ServicesGrid2);
8682
8988
 
8683
8989
  // src/design_system/sections/testimonials-home.aman.tsx
8684
- import React36 from "react";
8990
+ import React40 from "react";
8685
8991
  var TestimonialsHome2 = ({
8686
8992
  testimonials: testimonialsData,
8687
8993
  title = "",
@@ -8689,7 +8995,7 @@ var TestimonialsHome2 = ({
8689
8995
  }) => {
8690
8996
  const testimonials = Array.isArray(testimonialsData) ? testimonialsData : [];
8691
8997
  const displayTestimonials = perPage ? testimonials.slice(0, perPage) : testimonials;
8692
- return /* @__PURE__ */ React36.createElement("section", null, /* @__PURE__ */ React36.createElement("div", { className: "mx-auto max-w-container px-4 md:px-8" }, /* @__PURE__ */ React36.createElement(
8998
+ return /* @__PURE__ */ React40.createElement("section", null, /* @__PURE__ */ React40.createElement("div", { className: "mx-auto max-w-container px-4 md:px-8" }, /* @__PURE__ */ React40.createElement(
8693
8999
  CarouselSectionWrapper,
8694
9000
  {
8695
9001
  title,
@@ -8704,7 +9010,7 @@ var TestimonialsHome2 = ({
8704
9010
  const avatarUrl = getAvatarUrl(testimonial.photo_attachments, testimonial.id, reviewerName);
8705
9011
  const rating = testimonial.rating || 5;
8706
9012
  const isVerified = true;
8707
- 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(
9013
+ 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(
8708
9014
  "svg",
8709
9015
  {
8710
9016
  key: starIdx,
@@ -8716,8 +9022,8 @@ var TestimonialsHome2 = ({
8716
9022
  strokeWidth: "2",
8717
9023
  viewBox: "0 0 24 24"
8718
9024
  },
8719
- /* @__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" })
8720
- ))), /* @__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(
9025
+ /* @__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" })
9026
+ ))), /* @__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(
8721
9027
  PhotoWithFallback2,
8722
9028
  {
8723
9029
  photoUrl: avatarUrl,
@@ -8725,21 +9031,21 @@ var TestimonialsHome2 = ({
8725
9031
  fallbackId: testimonial.id || i,
8726
9032
  className: "w-full h-full object-cover"
8727
9033
  }
8728
- )), /* @__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)))));
9034
+ )), /* @__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)))));
8729
9035
  })
8730
9036
  )));
8731
9037
  };
8732
9038
  registerThemeVariant("testimonials-home", "aman", TestimonialsHome2);
8733
9039
 
8734
9040
  // src/design_system/sections/testimonials-grid.aman.tsx
8735
- import React37 from "react";
9041
+ import React41 from "react";
8736
9042
  var TestimonialsGrid2 = ({
8737
9043
  testimonials: testimonialsData,
8738
9044
  title = "",
8739
9045
  subtitle = ""
8740
9046
  }) => {
8741
9047
  const testimonials = Array.isArray(testimonialsData) ? testimonialsData : [];
8742
- 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) => {
9048
+ 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) => {
8743
9049
  var _a;
8744
9050
  const quote = ((_a = testimonial.content_markdown) == null ? void 0 : _a.replace(/[#*\[\]()]/g, "").trim()) || "";
8745
9051
  const reviewerName = testimonial.reviewer_name || "Customer";
@@ -8747,7 +9053,7 @@ var TestimonialsGrid2 = ({
8747
9053
  const avatarUrl = getAvatarUrl(testimonial.photo_attachments, testimonial.id, reviewerName);
8748
9054
  const rating = testimonial.rating || 5;
8749
9055
  const isVerified = true;
8750
- 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(
9056
+ 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(
8751
9057
  "svg",
8752
9058
  {
8753
9059
  key: starIdx,
@@ -8759,8 +9065,8 @@ var TestimonialsGrid2 = ({
8759
9065
  strokeWidth: "2",
8760
9066
  viewBox: "0 0 24 24"
8761
9067
  },
8762
- /* @__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" })
8763
- ))), /* @__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(
9068
+ /* @__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" })
9069
+ ))), /* @__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(
8764
9070
  PhotoWithFallback2,
8765
9071
  {
8766
9072
  photoUrl: avatarUrl,
@@ -8768,29 +9074,31 @@ var TestimonialsGrid2 = ({
8768
9074
  fallbackId: testimonial.id || i,
8769
9075
  className: "w-full h-full object-cover"
8770
9076
  }
8771
- )), /* @__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))));
8772
- })) : /* @__PURE__ */ React37.createElement("div", { className: "text-center py-12" }, /* @__PURE__ */ React37.createElement("p", { className: "font-body text-base text-tertiary" }, "No testimonials available"))));
9077
+ )), /* @__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))));
9078
+ })) : /* @__PURE__ */ React41.createElement("div", { className: "text-center py-12" }, /* @__PURE__ */ React41.createElement("p", { className: "font-body text-base text-tertiary" }, "No testimonials available"))));
8773
9079
  };
8774
9080
  registerThemeVariant("testimonials-grid", "aman", TestimonialsGrid2);
8775
9081
 
8776
9082
  // src/design_system/sections/contact-section.aman.tsx
8777
- import React39 from "react";
9083
+ import React43 from "react";
8778
9084
 
8779
9085
  // src/design_system/sections/contact-section-form.aman.tsx
8780
- import React38, { useRef as useRef9, useState as useState17 } from "react";
9086
+ import React42, { useRef as useRef10, useState as useState17 } from "react";
8781
9087
  var ContactSectionForm2 = ({
8782
9088
  formDefinition,
8783
9089
  submitButtonText = "Send message",
8784
9090
  successMessage = "Thank you for contacting us! We'll get back to you soon.",
8785
9091
  thankYouMessage,
8786
- onSuccess
9092
+ onSuccess,
9093
+ privacyPolicyUrl,
9094
+ termsOfServiceUrl
8787
9095
  }) => {
8788
9096
  const { leadFormDefinition } = useFormDefinitions();
8789
9097
  const resolvedFormDefinition = formDefinition != null ? formDefinition : leadFormDefinition;
8790
9098
  const [isSubmitting, setIsSubmitting] = useState17(false);
8791
9099
  const [submitStatus, setSubmitStatus] = useState17("idle");
8792
9100
  const [statusMessage, setStatusMessage] = useState17("");
8793
- const formRef = useRef9(null);
9101
+ const formRef = useRef10(null);
8794
9102
  const hasFields = resolvedFormDefinition != null && Array.isArray(resolvedFormDefinition.fields) && resolvedFormDefinition.fields.length > 0;
8795
9103
  const handleSubmit = async (e) => {
8796
9104
  var _a;
@@ -8801,7 +9109,8 @@ var ContactSectionForm2 = ({
8801
9109
  const formData = new FormData(e.currentTarget);
8802
9110
  const data = { formType: "lead" };
8803
9111
  formData.forEach((value, key) => {
8804
- if (key !== "privacy" && typeof value === "string") data[key] = value;
9112
+ if (key.endsWith("_prefix")) return;
9113
+ if (typeof value === "string") data[key] = value;
8805
9114
  });
8806
9115
  try {
8807
9116
  const response = await fetch("/api/form/", {
@@ -8828,7 +9137,14 @@ var ContactSectionForm2 = ({
8828
9137
  setIsSubmitting(false);
8829
9138
  };
8830
9139
  if (!hasFields) return null;
8831
- return /* @__PURE__ */ React38.createElement(Form2, { ref: formRef, onSubmit: handleSubmit, className: "flex flex-col gap-6" }, /* @__PURE__ */ React38.createElement(DynamicFormFields, { form: resolvedFormDefinition }), /* @__PURE__ */ React38.createElement(
9140
+ return /* @__PURE__ */ React42.createElement(Form2, { ref: formRef, onSubmit: handleSubmit, className: "flex flex-col gap-6" }, /* @__PURE__ */ React42.createElement(
9141
+ DynamicFormFields,
9142
+ {
9143
+ form: resolvedFormDefinition,
9144
+ privacyPolicyUrl,
9145
+ termsOfServiceUrl
9146
+ }
9147
+ ), /* @__PURE__ */ React42.createElement(
8832
9148
  Button2,
8833
9149
  {
8834
9150
  type: "submit",
@@ -8839,21 +9155,38 @@ var ContactSectionForm2 = ({
8839
9155
  isLoading: isSubmitting
8840
9156
  },
8841
9157
  isSubmitting ? "Sending..." : submitButtonText
8842
- ), 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));
9158
+ ), 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));
8843
9159
  };
8844
9160
 
8845
9161
  // src/design_system/sections/contact-section.aman.tsx
9162
+ function getLegalUrlsFromConfig2(config) {
9163
+ var _a, _b, _c;
9164
+ if (!((_a = config == null ? void 0 : config.navigation) == null ? void 0 : _a.footer)) return {};
9165
+ const flat = config.navigation.footer.flat();
9166
+ const privacy = (_b = flat.find((l) => l.label === "Privacy Policy")) == null ? void 0 : _b.href;
9167
+ const terms = (_c = flat.find((l) => l.label === "Terms of Service")) == null ? void 0 : _c.href;
9168
+ return { privacyPolicyUrl: privacy, termsOfServiceUrl: terms };
9169
+ }
8846
9170
  var ContactSection2 = ({
8847
9171
  websitePhotos,
8848
9172
  title = "",
8849
9173
  subtitle = "",
8850
- formDefinition
9174
+ formDefinition,
9175
+ config
8851
9176
  }) => {
9177
+ const { privacyPolicyUrl, termsOfServiceUrl } = getLegalUrlsFromConfig2(config);
8852
9178
  const contactPhoto = websitePhotos == null ? void 0 : websitePhotos.contact;
8853
9179
  const contactImageUrl = contactPhoto == null ? void 0 : contactPhoto.url;
8854
9180
  const finalContactImage = contactImageUrl && contactImageUrl.trim() !== "" ? contactImageUrl : void 0;
8855
9181
  const finalContactImageAlt = (contactPhoto == null ? void 0 : contactPhoto.alt) || "Contact image";
8856
- 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(
9182
+ 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(
9183
+ ContactSectionForm2,
9184
+ {
9185
+ formDefinition,
9186
+ privacyPolicyUrl,
9187
+ termsOfServiceUrl
9188
+ }
9189
+ )), /* @__PURE__ */ React43.createElement("div", { className: "max-lg:hidden h-full min-h-0 overflow-hidden" }, /* @__PURE__ */ React43.createElement(
8857
9190
  PhotoWithFallback2,
8858
9191
  {
8859
9192
  photoUrl: finalContactImage || "",
@@ -9093,17 +9426,21 @@ registerThemeVariant("location-details-section", "aman", LocationDetailsSection2
9093
9426
 
9094
9427
  // src/design_system/sections/social-media-grid.aman.tsx
9095
9428
  function getPostImageUrls2(post) {
9096
- var _a;
9097
- if ((_a = post.image_urls) == null ? void 0 : _a.length) return post.image_urls;
9429
+ var _a, _b;
9430
+ const videoSet = ((_a = post.video_urls) == null ? void 0 : _a.length) ? new Set(post.video_urls) : null;
9431
+ const isVideo = (url) => isVideoUrl(url) || videoSet !== null && videoSet.has(url);
9432
+ if ((_b = post.image_urls) == null ? void 0 : _b.length) {
9433
+ return post.image_urls.filter((url) => !isVideo(url));
9434
+ }
9098
9435
  const attachments = post.photo_attachments || [];
9099
9436
  const sorted = [...attachments].sort((a, b) => {
9100
- var _a2, _b;
9101
- return ((_a2 = a.sort_order) != null ? _a2 : 0) - ((_b = b.sort_order) != null ? _b : 0);
9437
+ var _a2, _b2;
9438
+ return ((_a2 = a.sort_order) != null ? _a2 : 0) - ((_b2 = b.sort_order) != null ? _b2 : 0);
9102
9439
  });
9103
9440
  return sorted.map((pa) => {
9104
- var _a2, _b, _c, _d;
9105
- 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);
9106
- }).filter((url) => Boolean(url));
9441
+ var _a2, _b2, _c, _d;
9442
+ 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);
9443
+ }).filter((url) => Boolean(url)).filter((url) => !isVideo(url));
9107
9444
  }
9108
9445
  var formatDate2 = (dateString) => {
9109
9446
  if (!dateString) return "Recent";
@@ -9203,7 +9540,7 @@ var BlogHome2 = ({
9203
9540
  registerThemeVariant("blog-home", "aman", BlogHome2);
9204
9541
 
9205
9542
  // src/design_system/sections/blog-gallery.aman.tsx
9206
- import React40, { useState as useState18 } from "react";
9543
+ import React44, { useState as useState18 } from "react";
9207
9544
  var BlogGallery2 = ({
9208
9545
  blogPosts: postsData,
9209
9546
  postsPerPage = 12,
@@ -9217,13 +9554,13 @@ var BlogGallery2 = ({
9217
9554
  const startIndex = (currentPage - 1) * postsPerPage;
9218
9555
  const endIndex = startIndex + postsPerPage;
9219
9556
  const paginatedNonFeaturedPosts = nonFeaturedPosts.slice(startIndex, endIndex);
9220
- 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(
9557
+ 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(
9221
9558
  "a",
9222
9559
  {
9223
9560
  href: `/blog/${featuredPost.slug}`,
9224
9561
  className: "block mb-16 group"
9225
9562
  },
9226
- /* @__PURE__ */ React40.createElement("div", { className: "w-full h-96 md:h-[500px] mb-8 overflow-hidden" }, /* @__PURE__ */ React40.createElement(
9563
+ /* @__PURE__ */ React44.createElement("div", { className: "w-full h-96 md:h-[500px] mb-8 overflow-hidden" }, /* @__PURE__ */ React44.createElement(
9227
9564
  PhotoWithFallback2,
9228
9565
  {
9229
9566
  item: featuredPost,
@@ -9231,19 +9568,19 @@ var BlogGallery2 = ({
9231
9568
  className: "w-full h-full object-cover transition-transform duration-300 group-hover:scale-105"
9232
9569
  }
9233
9570
  )),
9234
- /* @__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()))
9235
- ), 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) => {
9571
+ /* @__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()))
9572
+ ), 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) => {
9236
9573
  var _a;
9237
9574
  const excerpt = post.excerpt_markdown || ((_a = post.content_markdown) == null ? void 0 : _a.replace(/[#*\[\]()]/g, "").trim().substring(0, 150)) || "";
9238
- 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(
9575
+ 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(
9239
9576
  PhotoWithFallback2,
9240
9577
  {
9241
9578
  item: post,
9242
9579
  fallbackId: post.id,
9243
9580
  className: "w-full h-full object-cover transition-transform duration-300 group-hover:scale-105"
9244
9581
  }
9245
- )), /* @__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));
9246
- })), totalPages > 1 && /* @__PURE__ */ React40.createElement("div", { className: "flex justify-center" }, /* @__PURE__ */ React40.createElement(
9582
+ )), /* @__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));
9583
+ })), totalPages > 1 && /* @__PURE__ */ React44.createElement("div", { className: "flex justify-center" }, /* @__PURE__ */ React44.createElement(
9247
9584
  PaginationPageDefault2,
9248
9585
  {
9249
9586
  rounded: true,
@@ -9251,7 +9588,7 @@ var BlogGallery2 = ({
9251
9588
  total: totalPages,
9252
9589
  onPageChange: setCurrentPage
9253
9590
  }
9254
- ))) : /* @__PURE__ */ React40.createElement("div", { className: "text-center py-12" }, /* @__PURE__ */ React40.createElement("p", { className: "font-body text-base text-tertiary" }, "No posts available"))));
9591
+ ))) : /* @__PURE__ */ React44.createElement("div", { className: "text-center py-12" }, /* @__PURE__ */ React44.createElement("p", { className: "font-body text-base text-tertiary" }, "No posts available"))));
9255
9592
  };
9256
9593
  registerThemeVariant("blog-gallery", "aman", BlogGallery2);
9257
9594
 
@@ -9282,7 +9619,7 @@ var BlogPostSection2 = ({
9282
9619
  registerThemeVariant("blog-post", "aman", BlogPostSection2);
9283
9620
 
9284
9621
  // src/design_system/sections/blog-section.aman.tsx
9285
- import React41 from "react";
9622
+ import React45 from "react";
9286
9623
  var BlogSection2 = ({
9287
9624
  blogPosts: postsData,
9288
9625
  title = "",
@@ -9301,7 +9638,7 @@ var BlogSection2 = ({
9301
9638
  return "Recent";
9302
9639
  }
9303
9640
  };
9304
- return /* @__PURE__ */ React41.createElement("section", null, /* @__PURE__ */ React41.createElement("div", { className: "mx-auto max-w-container px-4 md:px-8" }, /* @__PURE__ */ React41.createElement(
9641
+ return /* @__PURE__ */ React45.createElement("section", null, /* @__PURE__ */ React45.createElement("div", { className: "mx-auto max-w-container px-4 md:px-8" }, /* @__PURE__ */ React45.createElement(
9305
9642
  CarouselSectionWrapper,
9306
9643
  {
9307
9644
  title,
@@ -9311,14 +9648,14 @@ var BlogSection2 = ({
9311
9648
  postsArray.map((post) => {
9312
9649
  var _a;
9313
9650
  const excerpt = ((_a = post.content_markdown) == null ? void 0 : _a.replace(/[#*\[\]()]/g, "").trim().substring(0, 150)) || "";
9314
- 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(
9651
+ 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(
9315
9652
  PhotoWithFallback2,
9316
9653
  {
9317
9654
  item: post,
9318
9655
  fallbackId: post.id,
9319
9656
  className: "w-full h-full object-cover transition-transform duration-300 group-hover:scale-105"
9320
9657
  }
9321
- )), /* @__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)));
9658
+ )), /* @__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)));
9322
9659
  })
9323
9660
  )));
9324
9661
  };
@@ -9332,9 +9669,9 @@ import { createContext as createContext10 } from "react";
9332
9669
  var LayoutGroupContext = createContext10({});
9333
9670
 
9334
9671
  // node_modules/framer-motion/dist/es/utils/use-constant.mjs
9335
- import { useRef as useRef10 } from "react";
9672
+ import { useRef as useRef11 } from "react";
9336
9673
  function useConstant(init) {
9337
- const ref = useRef10(null);
9674
+ const ref = useRef11(null);
9338
9675
  if (ref.current === null) {
9339
9676
  ref.current = init();
9340
9677
  }
@@ -9342,13 +9679,13 @@ function useConstant(init) {
9342
9679
  }
9343
9680
 
9344
9681
  // node_modules/framer-motion/dist/es/utils/use-isomorphic-effect.mjs
9345
- import { useLayoutEffect, useEffect as useEffect7 } from "react";
9682
+ import { useLayoutEffect, useEffect as useEffect8 } from "react";
9346
9683
 
9347
9684
  // node_modules/framer-motion/dist/es/utils/is-browser.mjs
9348
9685
  var isBrowser = typeof window !== "undefined";
9349
9686
 
9350
9687
  // node_modules/framer-motion/dist/es/utils/use-isomorphic-effect.mjs
9351
- var useIsomorphicLayoutEffect = isBrowser ? useLayoutEffect : useEffect7;
9688
+ var useIsomorphicLayoutEffect = isBrowser ? useLayoutEffect : useEffect8;
9352
9689
 
9353
9690
  // node_modules/framer-motion/dist/es/context/PresenceContext.mjs
9354
9691
  import { createContext as createContext11 } from "react";
@@ -12492,14 +12829,14 @@ var MotionConfigContext = createContext12({
12492
12829
  });
12493
12830
 
12494
12831
  // node_modules/framer-motion/dist/es/components/AnimatePresence/use-presence.mjs
12495
- import { useContext as useContext11, useId as useId4, useEffect as useEffect8, useCallback as useCallback6 } from "react";
12832
+ import { useContext as useContext11, useId as useId4, useEffect as useEffect9, useCallback as useCallback6 } from "react";
12496
12833
  function usePresence(subscribe = true) {
12497
12834
  const context = useContext11(PresenceContext);
12498
12835
  if (context === null)
12499
12836
  return [true, null];
12500
12837
  const { isPresent, onExitComplete, register } = context;
12501
12838
  const id3 = useId4();
12502
- useEffect8(() => {
12839
+ useEffect9(() => {
12503
12840
  if (subscribe) {
12504
12841
  return register(id3);
12505
12842
  }
@@ -13201,7 +13538,7 @@ function useMotionRef(visualState, visualElement, externalRef) {
13201
13538
  }
13202
13539
 
13203
13540
  // node_modules/framer-motion/dist/es/motion/utils/use-visual-element.mjs
13204
- import { useContext as useContext14, useRef as useRef11, useInsertionEffect, useEffect as useEffect9 } from "react";
13541
+ import { useContext as useContext14, useRef as useRef12, useInsertionEffect, useEffect as useEffect10 } from "react";
13205
13542
 
13206
13543
  // node_modules/framer-motion/dist/es/render/dom/utils/camel-to-dash.mjs
13207
13544
  var camelToDash = (str) => str.replace(/([a-z])([A-Z])/gu, "$1-$2").toLowerCase();
@@ -13221,7 +13558,7 @@ function useVisualElement(Component2, visualState, props, createVisualElement, P
13221
13558
  const lazyContext = useContext14(LazyContext);
13222
13559
  const presenceContext = useContext14(PresenceContext);
13223
13560
  const reducedMotionConfig = useContext14(MotionConfigContext).reducedMotion;
13224
- const visualElementRef = useRef11(null);
13561
+ const visualElementRef = useRef12(null);
13225
13562
  createVisualElement = createVisualElement || lazyContext.renderer;
13226
13563
  if (!visualElementRef.current && createVisualElement) {
13227
13564
  visualElementRef.current = createVisualElement(Component2, {
@@ -13238,14 +13575,14 @@ function useVisualElement(Component2, visualState, props, createVisualElement, P
13238
13575
  if (visualElement && !visualElement.projection && ProjectionNodeConstructor && (visualElement.type === "html" || visualElement.type === "svg")) {
13239
13576
  createProjectionNode(visualElementRef.current, props, ProjectionNodeConstructor, initialLayoutGroupConfig);
13240
13577
  }
13241
- const isMounted = useRef11(false);
13578
+ const isMounted = useRef12(false);
13242
13579
  useInsertionEffect(() => {
13243
13580
  if (visualElement && isMounted.current) {
13244
13581
  visualElement.update(props, presenceContext);
13245
13582
  }
13246
13583
  });
13247
13584
  const optimisedAppearId = props[optimizedAppearDataAttribute];
13248
- 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)));
13585
+ 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)));
13249
13586
  useIsomorphicLayoutEffect(() => {
13250
13587
  if (!visualElement)
13251
13588
  return;
@@ -13257,7 +13594,7 @@ function useVisualElement(Component2, visualState, props, createVisualElement, P
13257
13594
  visualElement.animationState.animateChanges();
13258
13595
  }
13259
13596
  });
13260
- useEffect9(() => {
13597
+ useEffect10(() => {
13261
13598
  if (!visualElement)
13262
13599
  return;
13263
13600
  if (!wantsHandoff.current && visualElement.animationState) {
@@ -17322,11 +17659,11 @@ var JobDetailHero2 = ({
17322
17659
  registerThemeVariant("hero-job-detail", "aman", JobDetailHero2);
17323
17660
 
17324
17661
  // src/design_system/sections/job-application-form.aman.tsx
17325
- import React42, { useRef as useRef12, useState as useState21 } from "react";
17662
+ import React46, { useRef as useRef13, useState as useState21 } from "react";
17326
17663
 
17327
17664
  // src/design_system/sections/hero-home.barelux.tsx
17328
17665
  import { Fragment as Fragment6, useState as useState22 } from "react";
17329
- import React43 from "react";
17666
+ import React47 from "react";
17330
17667
  var HeroHome3 = ({
17331
17668
  websitePhotos,
17332
17669
  companyInformation,
@@ -17345,7 +17682,7 @@ var HeroHome3 = ({
17345
17682
  url: ((_b = websitePhotos == null ? void 0 : websitePhotos.hero) == null ? void 0 : _b.url) || "",
17346
17683
  alt: ((_c = websitePhotos == null ? void 0 : websitePhotos.hero) == null ? void 0 : _c.alt) || ""
17347
17684
  };
17348
- 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(
17685
+ 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(
17349
17686
  PhotoWithFallback2,
17350
17687
  {
17351
17688
  photoUrl: heroImage.url,
@@ -17353,7 +17690,7 @@ var HeroHome3 = ({
17353
17690
  fallbackId: "hero-home-barelux",
17354
17691
  className: "w-full h-full object-cover"
17355
17692
  }
17356
- )), /* @__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(
17693
+ )), /* @__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(
17357
17694
  Button2,
17358
17695
  {
17359
17696
  href: effectiveCtaHref,
@@ -17363,7 +17700,7 @@ var HeroHome3 = ({
17363
17700
  size: "md"
17364
17701
  },
17365
17702
  ctaText
17366
- )))), 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(
17703
+ )))), 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(
17367
17704
  VideoModal,
17368
17705
  {
17369
17706
  isOpen: showVideo,
@@ -17375,7 +17712,7 @@ var HeroHome3 = ({
17375
17712
  registerThemeVariant("hero-home", "barelux", HeroHome3);
17376
17713
 
17377
17714
  // src/design_system/sections/header-navigation.barelux.tsx
17378
- import React44, { useState as useState23, useRef as useRef13, useCallback as useCallback8 } from "react";
17715
+ import React48, { useState as useState23, useRef as useRef14, useCallback as useCallback8 } from "react";
17379
17716
  import Link8 from "next/link";
17380
17717
  import Image12 from "next/image";
17381
17718
  var MAX_DROPDOWN_ITEMS2 = 6;
@@ -17388,11 +17725,11 @@ function HeaderNavigation3({
17388
17725
  companyInformation,
17389
17726
  websitePhotos
17390
17727
  }) {
17391
- var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r;
17728
+ var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t;
17392
17729
  const [activeDropdown, setActiveDropdown] = useState23(null);
17393
17730
  const [isMobileMenuOpen, setIsMobileMenuOpen] = useState23(false);
17394
- const closeTimeoutRef = useRef13(null);
17395
- React44.useEffect(() => {
17731
+ const closeTimeoutRef = useRef14(null);
17732
+ React48.useEffect(() => {
17396
17733
  return () => {
17397
17734
  if (closeTimeoutRef.current) {
17398
17735
  clearTimeout(closeTimeoutRef.current);
@@ -17448,7 +17785,7 @@ function HeaderNavigation3({
17448
17785
  viewAllLabel: ""
17449
17786
  };
17450
17787
  };
17451
- 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(
17788
+ 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(
17452
17789
  Image12,
17453
17790
  {
17454
17791
  src: logoUrl,
@@ -17457,7 +17794,7 @@ function HeaderNavigation3({
17457
17794
  width: 120,
17458
17795
  height: 40
17459
17796
  }
17460
- ) : /* @__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(
17797
+ ) : /* @__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(
17461
17798
  "div",
17462
17799
  {
17463
17800
  key: i,
@@ -17465,16 +17802,16 @@ function HeaderNavigation3({
17465
17802
  onMouseEnter: () => handleMouseEnter(item),
17466
17803
  onMouseLeave: handleMouseLeave
17467
17804
  },
17468
- /* @__PURE__ */ React44.createElement(
17805
+ /* @__PURE__ */ React48.createElement(
17469
17806
  Link8,
17470
17807
  {
17471
17808
  href: item.href,
17472
17809
  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"
17473
17810
  },
17474
17811
  item.label,
17475
- 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" }))
17812
+ 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" }))
17476
17813
  ),
17477
- item.children && item.children.length > 0 && activeDropdown === item.label && /* @__PURE__ */ React44.createElement(
17814
+ item.children && item.children.length > 0 && activeDropdown === item.label && /* @__PURE__ */ React48.createElement(
17478
17815
  "div",
17479
17816
  {
17480
17817
  className: "absolute left-0 top-full mt-2 w-64 py-3 bg-white border border-secondary rounded-lg shadow-lg z-50",
@@ -17483,7 +17820,7 @@ function HeaderNavigation3({
17483
17820
  },
17484
17821
  (() => {
17485
17822
  const { items, showViewAll, viewAllHref, viewAllLabel } = getDropdownItems(item);
17486
- return /* @__PURE__ */ React44.createElement(React44.Fragment, null, items.map((link, j) => /* @__PURE__ */ React44.createElement(
17823
+ return /* @__PURE__ */ React48.createElement(React48.Fragment, null, items.map((link, j) => /* @__PURE__ */ React48.createElement(
17487
17824
  Link8,
17488
17825
  {
17489
17826
  key: j,
@@ -17491,7 +17828,7 @@ function HeaderNavigation3({
17491
17828
  className: "block font-body text-md text-fg-primary hover:text-brand-accent hover:bg-secondary transition-colors px-4 py-2"
17492
17829
  },
17493
17830
  link.label
17494
- )), showViewAll && /* @__PURE__ */ React44.createElement(
17831
+ )), showViewAll && /* @__PURE__ */ React48.createElement(
17495
17832
  Link8,
17496
17833
  {
17497
17834
  href: viewAllHref,
@@ -17502,7 +17839,7 @@ function HeaderNavigation3({
17502
17839
  ));
17503
17840
  })()
17504
17841
  )
17505
- ))), /* @__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(
17842
+ ))), /* @__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(
17506
17843
  Button2,
17507
17844
  {
17508
17845
  href: ctaUrls.secondaryHref,
@@ -17512,25 +17849,25 @@ function HeaderNavigation3({
17512
17849
  size: "sm"
17513
17850
  },
17514
17851
  props.cta_button.label
17515
- ), /* @__PURE__ */ React44.createElement(
17852
+ ), /* @__PURE__ */ React48.createElement(
17516
17853
  Button2,
17517
17854
  {
17518
17855
  href: ctaUrls.primaryHref,
17519
- target: (_f = (_e = props == null ? void 0 : props.cta_button) == null ? void 0 : _e.target) != null ? _f : isExternalCtaUrl(ctaUrls.primaryHref) ? "_blank" : void 0,
17520
- rel: ((_g = props == null ? void 0 : props.cta_button) == null ? void 0 : _g.target) === "_blank" || isExternalCtaUrl(ctaUrls.primaryHref) ? "noopener noreferrer" : void 0,
17856
+ target: (_g = (_f = props == null ? void 0 : props.cta_button) == null ? void 0 : _f.target) != null ? _g : isExternalCtaUrl(ctaUrls.primaryHref) ? "_blank" : void 0,
17857
+ rel: ((_h = props == null ? void 0 : props.cta_button) == null ? void 0 : _h.target) === "_blank" || isExternalCtaUrl(ctaUrls.primaryHref) ? "noopener noreferrer" : void 0,
17521
17858
  color: "primary",
17522
17859
  size: "sm"
17523
17860
  },
17524
- ((_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) || ""
17525
- ))))), /* @__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(
17861
+ ((_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) || ""
17862
+ ))))), /* @__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(
17526
17863
  "button",
17527
17864
  {
17528
17865
  onClick: () => setIsMobileMenuOpen(true),
17529
17866
  className: "text-fg-primary",
17530
17867
  "aria-label": "Open menu"
17531
17868
  },
17532
- /* @__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" }))
17533
- ), /* @__PURE__ */ React44.createElement(Link8, { href: "/", className: "flex items-center" }, logoUrl ? /* @__PURE__ */ React44.createElement(
17869
+ /* @__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" }))
17870
+ ), /* @__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(
17534
17871
  Image12,
17535
17872
  {
17536
17873
  src: logoUrl,
@@ -17539,15 +17876,15 @@ function HeaderNavigation3({
17539
17876
  width: 120,
17540
17877
  height: 32
17541
17878
  }
17542
- ) : /* @__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(
17879
+ ) : /* @__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(
17543
17880
  "button",
17544
17881
  {
17545
17882
  onClick: () => setIsMobileMenuOpen(false),
17546
17883
  className: "text-fg-primary",
17547
17884
  "aria-label": "Close menu"
17548
17885
  },
17549
- /* @__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" }))
17550
- ), /* @__PURE__ */ React44.createElement("div", { className: "flex items-center" }, logoUrl ? /* @__PURE__ */ React44.createElement(
17886
+ /* @__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" }))
17887
+ ), /* @__PURE__ */ React48.createElement("div", { className: "flex items-center" }, logoUrl ? /* @__PURE__ */ React48.createElement(
17551
17888
  Image12,
17552
17889
  {
17553
17890
  src: logoUrl,
@@ -17556,9 +17893,9 @@ function HeaderNavigation3({
17556
17893
  width: 120,
17557
17894
  height: 32
17558
17895
  }
17559
- ) : /* @__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) => {
17896
+ ) : /* @__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) => {
17560
17897
  const { items } = getDropdownItems(item);
17561
- return /* @__PURE__ */ React44.createElement("li", { key: i }, /* @__PURE__ */ React44.createElement(
17898
+ return /* @__PURE__ */ React48.createElement("li", { key: i }, /* @__PURE__ */ React48.createElement(
17562
17899
  Link8,
17563
17900
  {
17564
17901
  href: item.href,
@@ -17566,7 +17903,7 @@ function HeaderNavigation3({
17566
17903
  onClick: () => setIsMobileMenuOpen(false)
17567
17904
  },
17568
17905
  item.label
17569
- ), 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(
17906
+ ), 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(
17570
17907
  Link8,
17571
17908
  {
17572
17909
  href: link.href,
@@ -17575,7 +17912,7 @@ function HeaderNavigation3({
17575
17912
  },
17576
17913
  link.label
17577
17914
  )))));
17578
- }))), /* @__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(
17915
+ }))), /* @__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(
17579
17916
  Button2,
17580
17917
  {
17581
17918
  href: ctaUrls.secondaryHref,
@@ -17585,7 +17922,7 @@ function HeaderNavigation3({
17585
17922
  onClick: () => setIsMobileMenuOpen(false)
17586
17923
  },
17587
17924
  props.cta_button.secondary_label
17588
- ), /* @__PURE__ */ React44.createElement(
17925
+ ), /* @__PURE__ */ React48.createElement(
17589
17926
  Button2,
17590
17927
  {
17591
17928
  href: ctaUrls.primaryHref,
@@ -17594,8 +17931,8 @@ function HeaderNavigation3({
17594
17931
  className: "w-full",
17595
17932
  onClick: () => setIsMobileMenuOpen(false)
17596
17933
  },
17597
- ((_k = props == null ? void 0 : props.cta_button) == null ? void 0 : _k.label) || ""
17598
- ))))), /* @__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(
17934
+ ((_m = props == null ? void 0 : props.cta_button) == null ? void 0 : _m.label) || ""
17935
+ ))))), /* @__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(
17599
17936
  Button2,
17600
17937
  {
17601
17938
  href: ctaUrls.secondaryHref,
@@ -17605,38 +17942,38 @@ function HeaderNavigation3({
17605
17942
  className: "flex-1 font-body text-sm uppercase tracking-wide py-4 rounded-none border-r border-white/20"
17606
17943
  },
17607
17944
  props.cta_button.label
17608
- ), /* @__PURE__ */ React44.createElement(
17945
+ ), /* @__PURE__ */ React48.createElement(
17609
17946
  Button2,
17610
17947
  {
17611
17948
  href: ctaUrls.primaryHref,
17612
- target: (_n = (_m = props == null ? void 0 : props.cta_button) == null ? void 0 : _m.target) != null ? _n : isExternalCtaUrl(ctaUrls.primaryHref) ? "_blank" : void 0,
17613
- rel: ((_o = props == null ? void 0 : props.cta_button) == null ? void 0 : _o.target) === "_blank" || isExternalCtaUrl(ctaUrls.primaryHref) ? "noopener noreferrer" : void 0,
17949
+ target: (_p = (_o = props == null ? void 0 : props.cta_button) == null ? void 0 : _o.target) != null ? _p : isExternalCtaUrl(ctaUrls.primaryHref) ? "_blank" : void 0,
17950
+ rel: ((_q = props == null ? void 0 : props.cta_button) == null ? void 0 : _q.target) === "_blank" || isExternalCtaUrl(ctaUrls.primaryHref) ? "noopener noreferrer" : void 0,
17614
17951
  color: "primary",
17615
- 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`
17952
+ 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`
17616
17953
  },
17617
- ((_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"
17954
+ ((_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"
17618
17955
  ))));
17619
17956
  }
17620
17957
  registerThemeVariant("header-navigation", "barelux", HeaderNavigation3);
17621
17958
 
17622
17959
  // src/design_system/sections/services-home.barelux.tsx
17623
- import React45 from "react";
17960
+ import React49 from "react";
17624
17961
  var ServicesHome3 = ({
17625
17962
  services = [],
17626
17963
  title = "",
17627
17964
  subtitle = ""
17628
17965
  }) => {
17629
17966
  const displayServices = services;
17630
- 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) => {
17967
+ 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) => {
17631
17968
  var _a, _b, _c, _d, _e, _f, _g, _h, _i;
17632
- return /* @__PURE__ */ React45.createElement(
17969
+ return /* @__PURE__ */ React49.createElement(
17633
17970
  "a",
17634
17971
  {
17635
17972
  key: service.id,
17636
17973
  href: `/services/${service.slug}`,
17637
17974
  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"
17638
17975
  },
17639
- /* @__PURE__ */ React45.createElement("div", { className: "relative w-full h-56 overflow-hidden flex-shrink-0" }, /* @__PURE__ */ React45.createElement(
17976
+ /* @__PURE__ */ React49.createElement("div", { className: "relative w-full h-56 overflow-hidden flex-shrink-0" }, /* @__PURE__ */ React49.createElement(
17640
17977
  PhotoWithFallback2,
17641
17978
  {
17642
17979
  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) || "",
@@ -17645,7 +17982,7 @@ var ServicesHome3 = ({
17645
17982
  className: "w-full h-full object-cover transition-transform duration-300 group-hover:scale-105"
17646
17983
  }
17647
17984
  )),
17648
- /* @__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))
17985
+ /* @__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))
17649
17986
  );
17650
17987
  }))));
17651
17988
  };
@@ -17695,7 +18032,7 @@ var AboutHome3 = ({
17695
18032
  registerThemeVariant("about-home", "barelux", AboutHome3);
17696
18033
 
17697
18034
  // src/design_system/sections/testimonials-home.barelux.tsx
17698
- import React46 from "react";
18035
+ import React50 from "react";
17699
18036
  import { ChevronLeft as ChevronLeft7, ChevronRight as ChevronRight2 } from "@untitledui/icons";
17700
18037
  var TestimonialsHome3 = ({
17701
18038
  testimonials: testimonialsData,
@@ -17706,7 +18043,7 @@ var TestimonialsHome3 = ({
17706
18043
  emptyMessage = "No testimonials available"
17707
18044
  }) => {
17708
18045
  const testimonials = Array.isArray(testimonialsData) ? testimonialsData : [];
17709
- 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) => {
18046
+ 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) => {
17710
18047
  var _a;
17711
18048
  const quote = ((_a = testimonial.content_markdown) == null ? void 0 : _a.replace(/[#*\[\]()]/g, "").trim()) || "";
17712
18049
  const reviewerName = testimonial.reviewer_name || "";
@@ -17714,7 +18051,7 @@ var TestimonialsHome3 = ({
17714
18051
  const avatarUrl = getAvatarUrl(testimonial.photo_attachments, testimonial.id, reviewerName);
17715
18052
  const rating = testimonial.rating || 5;
17716
18053
  const isVerified = true;
17717
- 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(
18054
+ 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(
17718
18055
  "svg",
17719
18056
  {
17720
18057
  key: starIdx,
@@ -17726,8 +18063,8 @@ var TestimonialsHome3 = ({
17726
18063
  strokeWidth: "2",
17727
18064
  viewBox: "0 0 24 24"
17728
18065
  },
17729
- /* @__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" })
17730
- ))), /* @__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(
18066
+ /* @__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" })
18067
+ ))), /* @__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(
17731
18068
  PhotoWithFallback2,
17732
18069
  {
17733
18070
  photoUrl: avatarUrl,
@@ -17735,8 +18072,8 @@ var TestimonialsHome3 = ({
17735
18072
  fallbackId: testimonial.id || i,
17736
18073
  className: "w-full h-full object-cover"
17737
18074
  }
17738
- )), /* @__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)))));
17739
- }))) : /* @__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(
18075
+ )), /* @__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)))));
18076
+ }))) : /* @__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(
17740
18077
  Button2,
17741
18078
  {
17742
18079
  href: viewAllHref,
@@ -17749,7 +18086,7 @@ var TestimonialsHome3 = ({
17749
18086
  registerThemeVariant("testimonials-home", "barelux", TestimonialsHome3);
17750
18087
 
17751
18088
  // src/design_system/sections/blog-section.barelux.tsx
17752
- import React47 from "react";
18089
+ import React51 from "react";
17753
18090
  import { ChevronLeft as ChevronLeft8, ChevronRight as ChevronRight3 } from "@untitledui/icons";
17754
18091
  var BlogSection3 = ({
17755
18092
  blogPosts: postsData,
@@ -17774,18 +18111,18 @@ var BlogSection3 = ({
17774
18111
  return recentLabel;
17775
18112
  }
17776
18113
  };
17777
- 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) => {
18114
+ 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) => {
17778
18115
  var _a;
17779
18116
  const excerpt = ((_a = post.content_markdown) == null ? void 0 : _a.replace(/[#*\[\]()]/g, "").trim().substring(0, 150)) || "";
17780
- 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(
18117
+ 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(
17781
18118
  PhotoWithFallback2,
17782
18119
  {
17783
18120
  item: post,
17784
18121
  fallbackId: post.id,
17785
18122
  className: "w-full h-full object-cover transition-transform duration-300 group-hover:scale-105"
17786
18123
  }
17787
- )), /* @__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)));
17788
- }))) : /* @__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(
18124
+ )), /* @__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)));
18125
+ }))) : /* @__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(
17789
18126
  Button2,
17790
18127
  {
17791
18128
  href: viewAllHref,
@@ -17798,7 +18135,7 @@ var BlogSection3 = ({
17798
18135
  registerThemeVariant("blog-section", "barelux", BlogSection3);
17799
18136
 
17800
18137
  // src/design_system/sections/blog-gallery.barelux.tsx
17801
- import React48, { useState as useState24 } from "react";
18138
+ import React52, { useState as useState24 } from "react";
17802
18139
  var BlogGallery3 = ({
17803
18140
  blogPosts: postsData,
17804
18141
  postsPerPage = 12,
@@ -17816,13 +18153,13 @@ var BlogGallery3 = ({
17816
18153
  const startIndex = (currentPage - 1) * postsPerPage;
17817
18154
  const endIndex = startIndex + postsPerPage;
17818
18155
  const paginatedNonFeaturedPosts = nonFeaturedPosts.slice(startIndex, endIndex);
17819
- 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(
18156
+ 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(
17820
18157
  "a",
17821
18158
  {
17822
18159
  href: `/blog/${featuredPost.slug}`,
17823
18160
  className: "block mb-16 group"
17824
18161
  },
17825
- /* @__PURE__ */ React48.createElement("div", { className: "w-full h-96 md:h-[500px] mb-8 overflow-hidden rounded-2xl" }, /* @__PURE__ */ React48.createElement(
18162
+ /* @__PURE__ */ React52.createElement("div", { className: "w-full h-96 md:h-[500px] mb-8 overflow-hidden rounded-2xl" }, /* @__PURE__ */ React52.createElement(
17826
18163
  PhotoWithFallback2,
17827
18164
  {
17828
18165
  item: featuredPost,
@@ -17830,19 +18167,19 @@ var BlogGallery3 = ({
17830
18167
  className: "w-full h-full object-cover transition-transform duration-300 group-hover:scale-105"
17831
18168
  }
17832
18169
  )),
17833
- /* @__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()))
17834
- ), 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) => {
18170
+ /* @__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()))
18171
+ ), 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) => {
17835
18172
  var _a;
17836
18173
  const excerpt = post.excerpt_markdown || ((_a = post.content_markdown) == null ? void 0 : _a.replace(/[#*\[\]()]/g, "").trim().substring(0, 150)) || "";
17837
- 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(
18174
+ 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(
17838
18175
  PhotoWithFallback2,
17839
18176
  {
17840
18177
  item: post,
17841
18178
  fallbackId: post.id,
17842
18179
  className: "w-full h-full object-cover transition-transform duration-300 group-hover:scale-105"
17843
18180
  }
17844
- )), /* @__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));
17845
- })), totalPages > 1 && /* @__PURE__ */ React48.createElement("div", { className: "flex justify-center" }, /* @__PURE__ */ React48.createElement(
18181
+ )), /* @__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));
18182
+ })), totalPages > 1 && /* @__PURE__ */ React52.createElement("div", { className: "flex justify-center" }, /* @__PURE__ */ React52.createElement(
17846
18183
  PaginationPageDefault2,
17847
18184
  {
17848
18185
  rounded: true,
@@ -17850,23 +18187,27 @@ var BlogGallery3 = ({
17850
18187
  total: totalPages,
17851
18188
  onPageChange: setCurrentPage
17852
18189
  }
17853
- ))) : /* @__PURE__ */ React48.createElement("div", { className: "text-center py-12" }, /* @__PURE__ */ React48.createElement("p", { className: "font-body text-base text-tertiary" }, emptyMessage))));
18190
+ ))) : /* @__PURE__ */ React52.createElement("div", { className: "text-center py-12" }, /* @__PURE__ */ React52.createElement("p", { className: "font-body text-base text-tertiary" }, emptyMessage))));
17854
18191
  };
17855
18192
  registerThemeVariant("blog-gallery", "barelux", BlogGallery3);
17856
18193
 
17857
18194
  // src/design_system/sections/social-media-grid.barelux.tsx
17858
18195
  function getPostImageUrls3(post) {
17859
- var _a;
17860
- if ((_a = post.image_urls) == null ? void 0 : _a.length) return post.image_urls;
18196
+ var _a, _b;
18197
+ const videoSet = ((_a = post.video_urls) == null ? void 0 : _a.length) ? new Set(post.video_urls) : null;
18198
+ const isVideo = (url) => isVideoUrl(url) || videoSet !== null && videoSet.has(url);
18199
+ if ((_b = post.image_urls) == null ? void 0 : _b.length) {
18200
+ return post.image_urls.filter((url) => !isVideo(url));
18201
+ }
17861
18202
  const attachments = post.photo_attachments || [];
17862
18203
  const sorted = [...attachments].sort((a, b) => {
17863
- var _a2, _b;
17864
- return ((_a2 = a.sort_order) != null ? _a2 : 0) - ((_b = b.sort_order) != null ? _b : 0);
18204
+ var _a2, _b2;
18205
+ return ((_a2 = a.sort_order) != null ? _a2 : 0) - ((_b2 = b.sort_order) != null ? _b2 : 0);
17865
18206
  });
17866
18207
  return sorted.map((pa) => {
17867
- var _a2, _b, _c, _d;
17868
- 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);
17869
- }).filter((url) => Boolean(url));
18208
+ var _a2, _b2, _c, _d;
18209
+ 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);
18210
+ }).filter((url) => Boolean(url)).filter((url) => !isVideo(url));
17870
18211
  }
17871
18212
  var formatDate3 = (dateString, recentLabel = "Recent") => {
17872
18213
  if (!dateString) return recentLabel;
@@ -17941,23 +18282,25 @@ var SocialMediaGrid3 = ({
17941
18282
  registerThemeVariant("social-media-grid", "barelux", SocialMediaGrid3);
17942
18283
 
17943
18284
  // src/design_system/sections/contact-section.barelux.tsx
17944
- import React50 from "react";
18285
+ import React54 from "react";
17945
18286
 
17946
18287
  // src/design_system/sections/contact-section-form.barelux.tsx
17947
- import React49, { useRef as useRef14, useState as useState25 } from "react";
18288
+ import React53, { useRef as useRef15, useState as useState25 } from "react";
17948
18289
  var ContactSectionForm3 = ({
17949
18290
  formDefinition,
17950
18291
  submitButtonText = "Send message",
17951
18292
  successMessage = "Thank you for contacting us! We'll get back to you soon.",
17952
18293
  thankYouMessage,
17953
- onSuccess
18294
+ onSuccess,
18295
+ privacyPolicyUrl,
18296
+ termsOfServiceUrl
17954
18297
  }) => {
17955
18298
  const { leadFormDefinition } = useFormDefinitions();
17956
18299
  const resolvedFormDefinition = formDefinition != null ? formDefinition : leadFormDefinition;
17957
18300
  const [isSubmitting, setIsSubmitting] = useState25(false);
17958
18301
  const [submitStatus, setSubmitStatus] = useState25("idle");
17959
18302
  const [statusMessage, setStatusMessage] = useState25("");
17960
- const formRef = useRef14(null);
18303
+ const formRef = useRef15(null);
17961
18304
  const hasFields = resolvedFormDefinition != null && Array.isArray(resolvedFormDefinition.fields) && resolvedFormDefinition.fields.length > 0;
17962
18305
  const handleSubmit = async (e) => {
17963
18306
  var _a;
@@ -17968,7 +18311,8 @@ var ContactSectionForm3 = ({
17968
18311
  const formData = new FormData(e.currentTarget);
17969
18312
  const data = { formType: "lead" };
17970
18313
  formData.forEach((value, key) => {
17971
- if (key !== "privacy" && typeof value === "string") data[key] = value;
18314
+ if (key.endsWith("_prefix")) return;
18315
+ if (typeof value === "string") data[key] = value;
17972
18316
  });
17973
18317
  try {
17974
18318
  const response = await fetch("/api/form/", {
@@ -17995,7 +18339,14 @@ var ContactSectionForm3 = ({
17995
18339
  setIsSubmitting(false);
17996
18340
  };
17997
18341
  if (!hasFields) return null;
17998
- return /* @__PURE__ */ React49.createElement(Form2, { ref: formRef, onSubmit: handleSubmit, className: "flex flex-col gap-6" }, /* @__PURE__ */ React49.createElement(DynamicFormFields, { form: resolvedFormDefinition }), /* @__PURE__ */ React49.createElement(
18342
+ return /* @__PURE__ */ React53.createElement(Form2, { ref: formRef, onSubmit: handleSubmit, className: "flex flex-col gap-6" }, /* @__PURE__ */ React53.createElement(
18343
+ DynamicFormFields,
18344
+ {
18345
+ form: resolvedFormDefinition,
18346
+ privacyPolicyUrl,
18347
+ termsOfServiceUrl
18348
+ }
18349
+ ), /* @__PURE__ */ React53.createElement(
17999
18350
  Button2,
18000
18351
  {
18001
18352
  type: "submit",
@@ -18006,21 +18357,38 @@ var ContactSectionForm3 = ({
18006
18357
  isLoading: isSubmitting
18007
18358
  },
18008
18359
  submitStatus === "success" ? successMessage.split("!")[0] + "!" : isSubmitting ? "Sending..." : submitButtonText
18009
- ), 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));
18360
+ ), 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));
18010
18361
  };
18011
18362
 
18012
18363
  // src/design_system/sections/contact-section.barelux.tsx
18364
+ function getLegalUrlsFromConfig3(config) {
18365
+ var _a, _b, _c;
18366
+ if (!((_a = config == null ? void 0 : config.navigation) == null ? void 0 : _a.footer)) return {};
18367
+ const flat = config.navigation.footer.flat();
18368
+ const privacy = (_b = flat.find((l) => l.label === "Privacy Policy")) == null ? void 0 : _b.href;
18369
+ const terms = (_c = flat.find((l) => l.label === "Terms of Service")) == null ? void 0 : _c.href;
18370
+ return { privacyPolicyUrl: privacy, termsOfServiceUrl: terms };
18371
+ }
18013
18372
  var ContactSection3 = ({
18014
18373
  websitePhotos,
18015
18374
  title = "",
18016
18375
  subtitle = "",
18017
- formDefinition
18376
+ formDefinition,
18377
+ config
18018
18378
  }) => {
18379
+ const { privacyPolicyUrl, termsOfServiceUrl } = getLegalUrlsFromConfig3(config);
18019
18380
  const contactPhoto = websitePhotos == null ? void 0 : websitePhotos.contact;
18020
18381
  const contactImageUrl = contactPhoto == null ? void 0 : contactPhoto.url;
18021
18382
  const finalContactImage = contactImageUrl && contactImageUrl.trim() !== "" ? contactImageUrl : void 0;
18022
18383
  const finalContactImageAlt = (contactPhoto == null ? void 0 : contactPhoto.alt) || "Contact image";
18023
- 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(
18384
+ 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(
18385
+ ContactSectionForm3,
18386
+ {
18387
+ formDefinition,
18388
+ privacyPolicyUrl,
18389
+ termsOfServiceUrl
18390
+ }
18391
+ )), finalContactImage && /* @__PURE__ */ React54.createElement("div", { className: "max-lg:hidden relative h-full min-h-0 overflow-hidden rounded-lg" }, /* @__PURE__ */ React54.createElement(
18024
18392
  PhotoWithFallback2,
18025
18393
  {
18026
18394
  photoUrl: finalContactImage,
@@ -18085,7 +18453,7 @@ registerThemeVariant("footer-home", "barelux", FooterHome3);
18085
18453
 
18086
18454
  // src/design_system/sections/hero-home.balance.tsx
18087
18455
  import { Fragment as Fragment7, useState as useState26 } from "react";
18088
- import React51 from "react";
18456
+ import React55 from "react";
18089
18457
  var HeroHome4 = ({
18090
18458
  websitePhotos,
18091
18459
  companyInformation,
@@ -18103,7 +18471,7 @@ var HeroHome4 = ({
18103
18471
  url: ((_b = websitePhotos == null ? void 0 : websitePhotos.hero) == null ? void 0 : _b.url) || "",
18104
18472
  alt: ((_c = websitePhotos == null ? void 0 : websitePhotos.hero) == null ? void 0 : _c.alt) || "Hero image"
18105
18473
  };
18106
- 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(
18474
+ 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(
18107
18475
  Button2,
18108
18476
  {
18109
18477
  as: "a",
@@ -18115,7 +18483,7 @@ var HeroHome4 = ({
18115
18483
  className: "font-body font-medium"
18116
18484
  },
18117
18485
  ctaText
18118
- )))), /* @__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(
18486
+ )))), /* @__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(
18119
18487
  PhotoWithFallback2,
18120
18488
  {
18121
18489
  photoUrl: heroImage.url,
@@ -18123,7 +18491,7 @@ var HeroHome4 = ({
18123
18491
  fallbackId: "hero-home-balance",
18124
18492
  className: "w-full h-full object-cover"
18125
18493
  }
18126
- ), 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(
18494
+ ), 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(
18127
18495
  VideoModal,
18128
18496
  {
18129
18497
  isOpen: showVideo,
@@ -18135,7 +18503,7 @@ var HeroHome4 = ({
18135
18503
  registerThemeVariant("hero-home", "balance", HeroHome4);
18136
18504
 
18137
18505
  // src/design_system/sections/header-navigation.balance.tsx
18138
- import React52, { useState as useState27, useRef as useRef15, useCallback as useCallback9 } from "react";
18506
+ import React56, { useState as useState27, useRef as useRef16, useCallback as useCallback9 } from "react";
18139
18507
  import Link10 from "next/link";
18140
18508
  import Image13 from "next/image";
18141
18509
  function HeaderNavigation4({
@@ -18147,11 +18515,11 @@ function HeaderNavigation4({
18147
18515
  companyInformation,
18148
18516
  websitePhotos
18149
18517
  }) {
18150
- var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r;
18518
+ var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t;
18151
18519
  const [activeDropdown, setActiveDropdown] = useState27(null);
18152
18520
  const [isMobileMenuOpen, setIsMobileMenuOpen] = useState27(false);
18153
- const closeTimeoutRef = useRef15(null);
18154
- React52.useEffect(() => {
18521
+ const closeTimeoutRef = useRef16(null);
18522
+ React56.useEffect(() => {
18155
18523
  return () => {
18156
18524
  if (closeTimeoutRef.current) {
18157
18525
  clearTimeout(closeTimeoutRef.current);
@@ -18189,7 +18557,7 @@ function HeaderNavigation4({
18189
18557
  const handleDropdownMouseLeave = useCallback9(() => {
18190
18558
  handleMouseLeave();
18191
18559
  }, [handleMouseLeave]);
18192
- 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(
18560
+ 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(
18193
18561
  Image13,
18194
18562
  {
18195
18563
  src: logoUrl,
@@ -18198,7 +18566,7 @@ function HeaderNavigation4({
18198
18566
  width: 180,
18199
18567
  height: 48
18200
18568
  }
18201
- ) : /* @__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(
18569
+ ) : /* @__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(
18202
18570
  "div",
18203
18571
  {
18204
18572
  key: item.label,
@@ -18206,7 +18574,7 @@ function HeaderNavigation4({
18206
18574
  onMouseEnter: () => handleMouseEnter(item),
18207
18575
  onMouseLeave: handleMouseLeave
18208
18576
  },
18209
- item.href ? /* @__PURE__ */ React52.createElement(
18577
+ item.href ? /* @__PURE__ */ React56.createElement(
18210
18578
  Link10,
18211
18579
  {
18212
18580
  href: item.href,
@@ -18214,15 +18582,15 @@ function HeaderNavigation4({
18214
18582
  style: { color: "rgb(170, 143, 123)" }
18215
18583
  },
18216
18584
  item.label
18217
- ) : /* @__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),
18218
- item.children && item.children.length > 0 && activeDropdown === item.label && /* @__PURE__ */ React52.createElement(
18585
+ ) : /* @__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),
18586
+ item.children && item.children.length > 0 && activeDropdown === item.label && /* @__PURE__ */ React56.createElement(
18219
18587
  "div",
18220
18588
  {
18221
18589
  className: "absolute left-0 top-full pt-2",
18222
18590
  onMouseEnter: handleDropdownMouseEnter,
18223
18591
  onMouseLeave: handleDropdownMouseLeave
18224
18592
  },
18225
- /* @__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(
18593
+ /* @__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(
18226
18594
  Link10,
18227
18595
  {
18228
18596
  key: child.href,
@@ -18233,7 +18601,7 @@ function HeaderNavigation4({
18233
18601
  child.label
18234
18602
  )))
18235
18603
  )
18236
- ))), /* @__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(
18604
+ ))), /* @__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(
18237
18605
  Button2,
18238
18606
  {
18239
18607
  href: ctaUrls.secondaryHref,
@@ -18243,25 +18611,25 @@ function HeaderNavigation4({
18243
18611
  size: "sm"
18244
18612
  },
18245
18613
  props.cta_button.label
18246
- ), /* @__PURE__ */ React52.createElement(
18614
+ ), /* @__PURE__ */ React56.createElement(
18247
18615
  Button2,
18248
18616
  {
18249
18617
  href: ctaUrls.primaryHref,
18250
- target: (_f = (_e = props == null ? void 0 : props.cta_button) == null ? void 0 : _e.target) != null ? _f : isExternalCtaUrl(ctaUrls.primaryHref) ? "_blank" : void 0,
18251
- rel: ((_g = props == null ? void 0 : props.cta_button) == null ? void 0 : _g.target) === "_blank" || isExternalCtaUrl(ctaUrls.primaryHref) ? "noopener noreferrer" : void 0,
18618
+ target: (_g = (_f = props == null ? void 0 : props.cta_button) == null ? void 0 : _f.target) != null ? _g : isExternalCtaUrl(ctaUrls.primaryHref) ? "_blank" : void 0,
18619
+ rel: ((_h = props == null ? void 0 : props.cta_button) == null ? void 0 : _h.target) === "_blank" || isExternalCtaUrl(ctaUrls.primaryHref) ? "noopener noreferrer" : void 0,
18252
18620
  color: "primary",
18253
18621
  size: "sm"
18254
18622
  },
18255
- ((_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) || ""
18256
- ))))), /* @__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(
18623
+ ((_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) || ""
18624
+ ))))), /* @__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(
18257
18625
  "button",
18258
18626
  {
18259
18627
  onClick: () => setIsMobileMenuOpen(true),
18260
18628
  className: "text-fg-primary",
18261
18629
  "aria-label": "Open menu"
18262
18630
  },
18263
- /* @__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" }))
18264
- ), /* @__PURE__ */ React52.createElement(Link10, { href: "/", className: "flex items-center" }, logoUrl ? /* @__PURE__ */ React52.createElement(
18631
+ /* @__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" }))
18632
+ ), /* @__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(
18265
18633
  Image13,
18266
18634
  {
18267
18635
  src: logoUrl,
@@ -18270,15 +18638,15 @@ function HeaderNavigation4({
18270
18638
  width: 120,
18271
18639
  height: 32
18272
18640
  }
18273
- ) : /* @__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(
18641
+ ) : /* @__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(
18274
18642
  "button",
18275
18643
  {
18276
18644
  onClick: () => setIsMobileMenuOpen(false),
18277
18645
  className: "text-fg-primary",
18278
18646
  "aria-label": "Close menu"
18279
18647
  },
18280
- /* @__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" }))
18281
- ), /* @__PURE__ */ React52.createElement("div", { className: "flex items-center" }, logoUrl ? /* @__PURE__ */ React52.createElement(
18648
+ /* @__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" }))
18649
+ ), /* @__PURE__ */ React56.createElement("div", { className: "flex items-center" }, logoUrl ? /* @__PURE__ */ React56.createElement(
18282
18650
  Image13,
18283
18651
  {
18284
18652
  src: logoUrl,
@@ -18287,7 +18655,7 @@ function HeaderNavigation4({
18287
18655
  width: 120,
18288
18656
  height: 32
18289
18657
  }
18290
- ) : /* @__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(
18658
+ ) : /* @__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(
18291
18659
  Link10,
18292
18660
  {
18293
18661
  href: item.href || "#",
@@ -18296,7 +18664,7 @@ function HeaderNavigation4({
18296
18664
  onClick: () => setIsMobileMenuOpen(false)
18297
18665
  },
18298
18666
  item.label
18299
- ), 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(
18667
+ ), 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(
18300
18668
  Link10,
18301
18669
  {
18302
18670
  href: child.href,
@@ -18304,7 +18672,7 @@ function HeaderNavigation4({
18304
18672
  onClick: () => setIsMobileMenuOpen(false)
18305
18673
  },
18306
18674
  child.label
18307
- )))))))), /* @__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(
18675
+ )))))))), /* @__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(
18308
18676
  Button2,
18309
18677
  {
18310
18678
  href: ctaUrls.secondaryHref,
@@ -18314,7 +18682,7 @@ function HeaderNavigation4({
18314
18682
  onClick: () => setIsMobileMenuOpen(false)
18315
18683
  },
18316
18684
  props.cta_button.secondary_label
18317
- ), /* @__PURE__ */ React52.createElement(
18685
+ ), /* @__PURE__ */ React56.createElement(
18318
18686
  Button2,
18319
18687
  {
18320
18688
  href: ctaUrls.primaryHref,
@@ -18323,8 +18691,8 @@ function HeaderNavigation4({
18323
18691
  className: "w-full",
18324
18692
  onClick: () => setIsMobileMenuOpen(false)
18325
18693
  },
18326
- ((_k = props == null ? void 0 : props.cta_button) == null ? void 0 : _k.label) || ""
18327
- ))))), /* @__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(
18694
+ ((_m = props == null ? void 0 : props.cta_button) == null ? void 0 : _m.label) || ""
18695
+ ))))), /* @__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(
18328
18696
  Button2,
18329
18697
  {
18330
18698
  href: ctaUrls.secondaryHref,
@@ -18335,16 +18703,16 @@ function HeaderNavigation4({
18335
18703
  style: { borderRight: "1px solid rgba(255, 255, 255, 0.2)" }
18336
18704
  },
18337
18705
  props.cta_button.label
18338
- ), /* @__PURE__ */ React52.createElement(
18706
+ ), /* @__PURE__ */ React56.createElement(
18339
18707
  Button2,
18340
18708
  {
18341
18709
  href: ctaUrls.primaryHref,
18342
- target: (_n = (_m = props == null ? void 0 : props.cta_button) == null ? void 0 : _m.target) != null ? _n : isExternalCtaUrl(ctaUrls.primaryHref) ? "_blank" : void 0,
18343
- rel: ((_o = props == null ? void 0 : props.cta_button) == null ? void 0 : _o.target) === "_blank" || isExternalCtaUrl(ctaUrls.primaryHref) ? "noopener noreferrer" : void 0,
18710
+ target: (_p = (_o = props == null ? void 0 : props.cta_button) == null ? void 0 : _o.target) != null ? _p : isExternalCtaUrl(ctaUrls.primaryHref) ? "_blank" : void 0,
18711
+ rel: ((_q = props == null ? void 0 : props.cta_button) == null ? void 0 : _q.target) === "_blank" || isExternalCtaUrl(ctaUrls.primaryHref) ? "noopener noreferrer" : void 0,
18344
18712
  color: "primary",
18345
- 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`
18713
+ 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`
18346
18714
  },
18347
- ((_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"
18715
+ ((_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"
18348
18716
  ))));
18349
18717
  }
18350
18718
  registerThemeVariant("header-navigation", "balance", HeaderNavigation4);
@@ -18408,23 +18776,25 @@ var FooterHome4 = ({
18408
18776
  registerThemeVariant("footer-home", "balance", FooterHome4);
18409
18777
 
18410
18778
  // src/design_system/sections/contact-section.balance.tsx
18411
- import React54 from "react";
18779
+ import React58 from "react";
18412
18780
 
18413
18781
  // src/design_system/sections/contact-section-form.balance.tsx
18414
- import React53, { useRef as useRef16, useState as useState28 } from "react";
18782
+ import React57, { useRef as useRef17, useState as useState28 } from "react";
18415
18783
  var ContactSectionForm4 = ({
18416
18784
  formDefinition,
18417
18785
  submitButtonText = "Send message",
18418
18786
  successMessage = "Thank you for contacting us! We'll get back to you soon.",
18419
18787
  thankYouMessage,
18420
- onSuccess
18788
+ onSuccess,
18789
+ privacyPolicyUrl,
18790
+ termsOfServiceUrl
18421
18791
  }) => {
18422
18792
  const { leadFormDefinition } = useFormDefinitions();
18423
18793
  const resolvedFormDefinition = formDefinition != null ? formDefinition : leadFormDefinition;
18424
18794
  const [isSubmitting, setIsSubmitting] = useState28(false);
18425
18795
  const [submitStatus, setSubmitStatus] = useState28("idle");
18426
18796
  const [statusMessage, setStatusMessage] = useState28("");
18427
- const formRef = useRef16(null);
18797
+ const formRef = useRef17(null);
18428
18798
  const hasFields = resolvedFormDefinition != null && Array.isArray(resolvedFormDefinition.fields) && resolvedFormDefinition.fields.length > 0;
18429
18799
  const handleSubmit = async (e) => {
18430
18800
  var _a;
@@ -18435,7 +18805,8 @@ var ContactSectionForm4 = ({
18435
18805
  const formData = new FormData(e.currentTarget);
18436
18806
  const data = { formType: "lead" };
18437
18807
  formData.forEach((value, key) => {
18438
- if (key !== "privacy" && typeof value === "string") data[key] = value;
18808
+ if (key.endsWith("_prefix")) return;
18809
+ if (typeof value === "string") data[key] = value;
18439
18810
  });
18440
18811
  try {
18441
18812
  const response = await fetch("/api/form/", {
@@ -18462,7 +18833,14 @@ var ContactSectionForm4 = ({
18462
18833
  setIsSubmitting(false);
18463
18834
  };
18464
18835
  if (!hasFields) return null;
18465
- return /* @__PURE__ */ React53.createElement(Form2, { ref: formRef, onSubmit: handleSubmit, className: "flex flex-col gap-6" }, /* @__PURE__ */ React53.createElement(DynamicFormFields, { form: resolvedFormDefinition }), /* @__PURE__ */ React53.createElement(
18836
+ return /* @__PURE__ */ React57.createElement(Form2, { ref: formRef, onSubmit: handleSubmit, className: "flex flex-col gap-6" }, /* @__PURE__ */ React57.createElement(
18837
+ DynamicFormFields,
18838
+ {
18839
+ form: resolvedFormDefinition,
18840
+ privacyPolicyUrl,
18841
+ termsOfServiceUrl
18842
+ }
18843
+ ), /* @__PURE__ */ React57.createElement(
18466
18844
  Button2,
18467
18845
  {
18468
18846
  type: "submit",
@@ -18473,21 +18851,31 @@ var ContactSectionForm4 = ({
18473
18851
  isLoading: isSubmitting
18474
18852
  },
18475
18853
  isSubmitting ? "Sending..." : submitButtonText
18476
- ), 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));
18854
+ ), 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));
18477
18855
  };
18478
18856
 
18479
18857
  // src/design_system/sections/contact-section.balance.tsx
18858
+ function getLegalUrlsFromConfig4(config) {
18859
+ var _a, _b, _c;
18860
+ if (!((_a = config == null ? void 0 : config.navigation) == null ? void 0 : _a.footer)) return {};
18861
+ const flat = config.navigation.footer.flat();
18862
+ const privacy = (_b = flat.find((l) => l.label === "Privacy Policy")) == null ? void 0 : _b.href;
18863
+ const terms = (_c = flat.find((l) => l.label === "Terms of Service")) == null ? void 0 : _c.href;
18864
+ return { privacyPolicyUrl: privacy, termsOfServiceUrl: terms };
18865
+ }
18480
18866
  var ContactSection4 = ({
18481
18867
  websitePhotos,
18482
18868
  title = "",
18483
18869
  subtitle = "",
18484
- formDefinition
18870
+ formDefinition,
18871
+ config
18485
18872
  }) => {
18873
+ const { privacyPolicyUrl, termsOfServiceUrl } = getLegalUrlsFromConfig4(config);
18486
18874
  const contactPhoto = websitePhotos == null ? void 0 : websitePhotos.contact;
18487
18875
  const contactImageUrl = contactPhoto == null ? void 0 : contactPhoto.url;
18488
18876
  const finalContactImage = contactImageUrl && contactImageUrl.trim() !== "" ? contactImageUrl : void 0;
18489
18877
  const finalContactImageAlt = (contactPhoto == null ? void 0 : contactPhoto.alt) || "Contact image";
18490
- 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(
18878
+ 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(
18491
18879
  PhotoWithFallback2,
18492
18880
  {
18493
18881
  photoUrl: finalContactImage,
@@ -18495,7 +18883,14 @@ var ContactSection4 = ({
18495
18883
  fallbackId: "contact-image",
18496
18884
  className: "h-full w-full object-cover"
18497
18885
  }
18498
- )), /* @__PURE__ */ React54.createElement("div", { className: "max-w-2xl mx-auto" }, /* @__PURE__ */ React54.createElement(ContactSectionForm4, { formDefinition }))));
18886
+ )), /* @__PURE__ */ React58.createElement("div", { className: "max-w-2xl mx-auto" }, /* @__PURE__ */ React58.createElement(
18887
+ ContactSectionForm4,
18888
+ {
18889
+ formDefinition,
18890
+ privacyPolicyUrl,
18891
+ termsOfServiceUrl
18892
+ }
18893
+ ))));
18499
18894
  };
18500
18895
  registerThemeVariant("contact-section", "balance", ContactSection4);
18501
18896
 
@@ -18577,7 +18972,7 @@ var AboutHome4 = ({
18577
18972
  registerThemeVariant("about-home", "balance", AboutHome4);
18578
18973
 
18579
18974
  // src/design_system/sections/testimonials-home.balance.tsx
18580
- import React55 from "react";
18975
+ import React59 from "react";
18581
18976
  var TestimonialsHome4 = ({
18582
18977
  testimonials: testimonialsData,
18583
18978
  title = "",
@@ -18586,7 +18981,7 @@ var TestimonialsHome4 = ({
18586
18981
  }) => {
18587
18982
  const testimonials = Array.isArray(testimonialsData) ? testimonialsData : [];
18588
18983
  const displayTestimonials = perPage ? testimonials.slice(0, perPage) : testimonials;
18589
- 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(
18984
+ 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(
18590
18985
  CarouselSectionWrapper,
18591
18986
  {
18592
18987
  title: "",
@@ -18600,7 +18995,7 @@ var TestimonialsHome4 = ({
18600
18995
  const avatarUrl = getAvatarUrl(testimonial.photo_attachments, testimonial.id, reviewerName);
18601
18996
  const rating = testimonial.rating || 5;
18602
18997
  const initials = reviewerName.split(" ").map((n) => n[0]).join("").toUpperCase().slice(0, 2);
18603
- 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(
18998
+ 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(
18604
18999
  "svg",
18605
19000
  {
18606
19001
  key: starIdx,
@@ -18612,8 +19007,8 @@ var TestimonialsHome4 = ({
18612
19007
  strokeWidth: "2",
18613
19008
  viewBox: "0 0 24 24"
18614
19009
  },
18615
- /* @__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" })
18616
- ))), /* @__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(
19010
+ /* @__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" })
19011
+ ))), /* @__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(
18617
19012
  Avatar2,
18618
19013
  {
18619
19014
  src: avatarUrl,
@@ -18621,14 +19016,14 @@ var TestimonialsHome4 = ({
18621
19016
  initials,
18622
19017
  size: "xl"
18623
19018
  }
18624
- ), /* @__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")))));
19019
+ ), /* @__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")))));
18625
19020
  })
18626
19021
  )));
18627
19022
  };
18628
19023
  registerThemeVariant("testimonials-home", "balance", TestimonialsHome4);
18629
19024
 
18630
19025
  // src/design_system/sections/blog-section.balance.tsx
18631
- import React56 from "react";
19026
+ import React60 from "react";
18632
19027
  var BlogSection4 = ({
18633
19028
  blogPosts: postsData,
18634
19029
  title = "",
@@ -18648,7 +19043,7 @@ var BlogSection4 = ({
18648
19043
  return "Recent";
18649
19044
  }
18650
19045
  };
18651
- 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(
19046
+ 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(
18652
19047
  CarouselSectionWrapper,
18653
19048
  {
18654
19049
  title: "",
@@ -18658,16 +19053,16 @@ var BlogSection4 = ({
18658
19053
  postsArray.map((post) => {
18659
19054
  var _a;
18660
19055
  const excerpt = ((_a = post.content_markdown) == null ? void 0 : _a.replace(/[#*\[\]()]/g, "").trim().substring(0, 150)) || "";
18661
- 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(
19056
+ 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(
18662
19057
  PhotoWithFallback2,
18663
19058
  {
18664
19059
  item: post,
18665
19060
  fallbackId: post.id,
18666
19061
  className: "w-full h-full object-cover transition-transform duration-300 group-hover:scale-105"
18667
19062
  }
18668
- )), /* @__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"))));
19063
+ )), /* @__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"))));
18669
19064
  })
18670
- ), postsArray.length > 0 && /* @__PURE__ */ React56.createElement("div", { className: "mt-12 text-center" }, /* @__PURE__ */ React56.createElement(
19065
+ ), postsArray.length > 0 && /* @__PURE__ */ React60.createElement("div", { className: "mt-12 text-center" }, /* @__PURE__ */ React60.createElement(
18671
19066
  Button2,
18672
19067
  {
18673
19068
  as: "a",
@@ -18682,7 +19077,7 @@ var BlogSection4 = ({
18682
19077
  registerThemeVariant("blog-section", "balance", BlogSection4);
18683
19078
 
18684
19079
  // src/design_system/sections/team-grid.balance.tsx
18685
- import React57 from "react";
19080
+ import React61 from "react";
18686
19081
  var TeamGrid3 = ({
18687
19082
  teamMembers: membersData,
18688
19083
  title = "",
@@ -18693,10 +19088,10 @@ var TeamGrid3 = ({
18693
19088
  }) => {
18694
19089
  const members = Array.isArray(membersData) ? membersData : [];
18695
19090
  const displayMembers = members.slice(0, maxMembers);
18696
- 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) => {
19091
+ 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) => {
18697
19092
  var _a;
18698
19093
  const bio = ((_a = member.bio_markdown) == null ? void 0 : _a.replace(/[#*\[\]()]/g, "").trim()) || "";
18699
- 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(
19094
+ 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(
18700
19095
  PhotoWithFallback2,
18701
19096
  {
18702
19097
  item: member,
@@ -18704,13 +19099,13 @@ var TeamGrid3 = ({
18704
19099
  alt: member.name || "Team member",
18705
19100
  className: "h-78 w-full object-cover md:h-74 rounded-2xl"
18706
19101
  }
18707
- ), /* @__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)));
18708
- }))) : /* @__PURE__ */ React57.createElement("div", { className: "text-center mt-12" }, /* @__PURE__ */ React57.createElement("p", { className: "text-gray-500" }, "No team members available"))));
19102
+ ), /* @__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)));
19103
+ }))) : /* @__PURE__ */ React61.createElement("div", { className: "text-center mt-12" }, /* @__PURE__ */ React61.createElement("p", { className: "text-gray-500" }, "No team members available"))));
18709
19104
  };
18710
19105
  registerThemeVariant("team-grid", "balance", TeamGrid3);
18711
19106
 
18712
19107
  // src/design_system/sections/services-grid.balance.tsx
18713
- import React58 from "react";
19108
+ import React62 from "react";
18714
19109
  import Link12 from "next/link";
18715
19110
  var ServicesGrid3 = ({
18716
19111
  services: servicesData,
@@ -18720,12 +19115,12 @@ var ServicesGrid3 = ({
18720
19115
  className = ""
18721
19116
  }) => {
18722
19117
  const services = Array.isArray(servicesData) ? servicesData : [];
18723
- 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) => {
19118
+ 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) => {
18724
19119
  var _a, _b, _c, _d;
18725
19120
  const description = service.summary || (service.description_markdown ? service.description_markdown.replace(/[#*\[\]()]/g, "").trim().substring(0, 120) + "..." : "");
18726
19121
  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);
18727
19122
  const imageAlt = (photo == null ? void 0 : photo.title) || service.name;
18728
- 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(
19123
+ 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(
18729
19124
  PhotoWithFallback2,
18730
19125
  {
18731
19126
  item: service,
@@ -18733,8 +19128,8 @@ var ServicesGrid3 = ({
18733
19128
  alt: imageAlt || "Service image",
18734
19129
  className: "size-full object-cover transition-transform duration-300 group-hover:scale-105"
18735
19130
  }
18736
- )), /* @__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"))));
18737
- })) : /* @__PURE__ */ React58.createElement("div", { className: "text-center py-12" }, /* @__PURE__ */ React58.createElement("p", { className: "font-body text-base text-tertiary" }, "No services available"))));
19131
+ )), /* @__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"))));
19132
+ })) : /* @__PURE__ */ React62.createElement("div", { className: "text-center py-12" }, /* @__PURE__ */ React62.createElement("p", { className: "font-body text-base text-tertiary" }, "No services available"))));
18738
19133
  };
18739
19134
  registerThemeVariant("services-grid", "balance", ServicesGrid3);
18740
19135
 
@@ -18850,15 +19245,459 @@ var FeatureTabHorizontal = ({ title, subtitle, footer, isCurrent }) => /* @__PUR
18850
19245
  footer
18851
19246
  );
18852
19247
 
19248
+ // src/design_system/sections/service-menu-section.tsx
19249
+ import React63, { useState as useState30, useEffect as useEffect11, useCallback as useCallback10, useMemo as useMemo8 } from "react";
19250
+ import { createPortal } from "react-dom";
19251
+ var SERVICE_MENU_MODAL_ROOT_ID = "service-menu-modal-root";
19252
+ var CYCLE_INTERVAL_MIN_MS = 6e3;
19253
+ var CYCLE_INTERVAL_MAX_MS = 8e3;
19254
+ function seedToUnit(seed) {
19255
+ let h = 2166136261 >>> 0;
19256
+ for (let i = 0; i < seed.length; i++) {
19257
+ h ^= seed.charCodeAt(i);
19258
+ h = Math.imul(h, 16777619) >>> 0 >>> 0;
19259
+ }
19260
+ return (h >>> 0) / 4294967296;
19261
+ }
19262
+ function photoAttachmentDisplayUrl(pa) {
19263
+ var _a, _b;
19264
+ return ((_a = pa.photo) == null ? void 0 : _a.large_url) || ((_b = pa.photo) == null ? void 0 : _b.medium_url);
19265
+ }
19266
+ function photoAttachmentAlt(pa) {
19267
+ var _a, _b;
19268
+ return ((_a = pa.photo) == null ? void 0 : _a.alt_text) || ((_b = pa.photo) == null ? void 0 : _b.title) || "";
19269
+ }
19270
+ function shuffleWithSeed(array, seed) {
19271
+ if (array.length <= 1) return array;
19272
+ const arr = [...array];
19273
+ let h = 2166136261 >>> 0;
19274
+ for (let i = 0; i < seed.length; i++) {
19275
+ h ^= seed.charCodeAt(i);
19276
+ h = Math.imul(h, 16777619) >>> 0 >>> 0;
19277
+ }
19278
+ const next = (step) => {
19279
+ h = Math.imul(1664525, h + step >>> 0) + 1013904223 >>> 0;
19280
+ return (h >>> 0) / 4294967296;
19281
+ };
19282
+ for (let i = arr.length - 1; i > 0; i--) {
19283
+ const j = Math.floor(next(i) * (i + 1));
19284
+ [arr[i], arr[j]] = [arr[j], arr[i]];
19285
+ }
19286
+ return arr;
19287
+ }
19288
+ var CROSSFADE_DURATION_MS = 600;
19289
+ function useCycledPhotoList(photoAttachments, seed) {
19290
+ return useMemo8(
19291
+ () => {
19292
+ const arr = Array.isArray(photoAttachments) && photoAttachments.length > 0 ? photoAttachments : [];
19293
+ if (arr.length === 0) return [];
19294
+ const shuffled = shuffleWithSeed(arr, seed);
19295
+ return shuffled.map((pa) => {
19296
+ var _a;
19297
+ return { url: (_a = photoAttachmentDisplayUrl(pa)) != null ? _a : "", alt: photoAttachmentAlt(pa) };
19298
+ }).filter((x) => x.url);
19299
+ },
19300
+ [photoAttachments, seed]
19301
+ );
19302
+ }
19303
+ function GridCardWithImage({
19304
+ photoAttachments,
19305
+ fallbackId,
19306
+ fallbackAlt,
19307
+ title,
19308
+ subtitle,
19309
+ children,
19310
+ onClick,
19311
+ websitePhotos,
19312
+ companyInformation,
19313
+ cycleSeed
19314
+ }) {
19315
+ var _a, _b, _c, _d, _e, _f, _g;
19316
+ const seed = cycleSeed != null ? cycleSeed : String(fallbackId);
19317
+ const list = useCycledPhotoList(photoAttachments, seed);
19318
+ const [currentIndex, setCurrentIndex] = useState30(0);
19319
+ const [transitioning, setTransitioning] = useState30(false);
19320
+ const intervalMs = useMemo8(
19321
+ () => CYCLE_INTERVAL_MIN_MS + Math.floor(seedToUnit(seed) * (CYCLE_INTERVAL_MAX_MS - CYCLE_INTERVAL_MIN_MS + 1)),
19322
+ [seed]
19323
+ );
19324
+ useEffect11(() => {
19325
+ if (list.length <= 1) return;
19326
+ const id3 = setInterval(() => setTransitioning(true), intervalMs);
19327
+ return () => clearInterval(id3);
19328
+ }, [list.length, intervalMs]);
19329
+ useEffect11(() => {
19330
+ if (!transitioning || list.length <= 1) return;
19331
+ const t = setTimeout(() => {
19332
+ setCurrentIndex((i) => (i + 1) % list.length);
19333
+ setTransitioning(false);
19334
+ }, CROSSFADE_DURATION_MS);
19335
+ return () => clearTimeout(t);
19336
+ }, [transitioning, list.length]);
19337
+ const nextIndex = list.length > 1 ? (currentIndex + 1) % list.length : 0;
19338
+ const currentItem = list[currentIndex];
19339
+ const displayAlt = (currentItem == null ? void 0 : currentItem.alt) || fallbackAlt;
19340
+ const singleUrl = (_a = list[0]) == null ? void 0 : _a.url;
19341
+ return /* @__PURE__ */ React63.createElement(
19342
+ "button",
19343
+ {
19344
+ type: "button",
19345
+ onClick,
19346
+ 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"
19347
+ },
19348
+ /* @__PURE__ */ React63.createElement("div", { className: "w-full h-36 overflow-hidden rounded-lg mb-3 relative" }, list.length === 0 ? /* @__PURE__ */ React63.createElement(
19349
+ PhotoWithFallback2,
19350
+ {
19351
+ item: void 0,
19352
+ fallbackId,
19353
+ alt: fallbackAlt,
19354
+ className: "w-full h-full object-cover transition-transform duration-300 group-hover:scale-105",
19355
+ websitePhotos,
19356
+ companyInformation
19357
+ }
19358
+ ) : list.length === 1 && singleUrl ? (
19359
+ // eslint-disable-next-line @next/next/no-img-element -- dynamic API URLs; next/image not configured for external host
19360
+ /* @__PURE__ */ React63.createElement(
19361
+ "img",
19362
+ {
19363
+ src: singleUrl,
19364
+ alt: displayAlt,
19365
+ className: "w-full h-full object-cover transition-transform duration-300 group-hover:scale-105"
19366
+ }
19367
+ )
19368
+ ) : /* @__PURE__ */ React63.createElement(React63.Fragment, null, /* @__PURE__ */ React63.createElement(
19369
+ "div",
19370
+ {
19371
+ className: `absolute inset-0 ${transitioning ? "transition-opacity duration-[600ms] ease-in-out" : "transition-none"}`,
19372
+ style: { opacity: transitioning ? 0 : 1 }
19373
+ },
19374
+ /* @__PURE__ */ React63.createElement(
19375
+ "img",
19376
+ {
19377
+ src: (_b = list[currentIndex]) == null ? void 0 : _b.url,
19378
+ alt: (_d = (_c = list[currentIndex]) == null ? void 0 : _c.alt) != null ? _d : displayAlt,
19379
+ className: "w-full h-full object-cover transition-transform duration-300 group-hover:scale-105"
19380
+ }
19381
+ )
19382
+ ), /* @__PURE__ */ React63.createElement(
19383
+ "div",
19384
+ {
19385
+ className: `absolute inset-0 ${transitioning ? "transition-opacity duration-[600ms] ease-in-out" : "transition-none"}`,
19386
+ style: { opacity: transitioning ? 1 : 0 }
19387
+ },
19388
+ /* @__PURE__ */ React63.createElement(
19389
+ "img",
19390
+ {
19391
+ src: (_e = list[nextIndex]) == null ? void 0 : _e.url,
19392
+ alt: (_g = (_f = list[nextIndex]) == null ? void 0 : _f.alt) != null ? _g : displayAlt,
19393
+ className: "w-full h-full object-cover transition-transform duration-300 group-hover:scale-105"
19394
+ }
19395
+ )
19396
+ ))),
19397
+ subtitle && /* @__PURE__ */ React63.createElement("p", { className: "text-xs font-medium text-fg-secondary uppercase tracking-wide line-clamp-1" }, subtitle),
19398
+ /* @__PURE__ */ React63.createElement("h4", { className: "font-display text-base font-normal text-fg-primary mt-1 group-hover:underline line-clamp-2" }, title),
19399
+ children
19400
+ );
19401
+ }
19402
+ function CarouselRow({
19403
+ rowTitle,
19404
+ items,
19405
+ renderItem
19406
+ }) {
19407
+ if (!(items == null ? void 0 : items.length)) return null;
19408
+ 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) => {
19409
+ var _a;
19410
+ 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));
19411
+ }))));
19412
+ }
19413
+ function GridRow({
19414
+ rowTitle,
19415
+ items,
19416
+ renderItem
19417
+ }) {
19418
+ if (!(items == null ? void 0 : items.length)) return null;
19419
+ 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) => {
19420
+ var _a;
19421
+ return /* @__PURE__ */ React63.createElement("div", { key: (_a = item.id) != null ? _a : index, className: "min-w-0 flex" }, renderItem(item, index));
19422
+ })));
19423
+ }
19424
+ function MenuBlock({
19425
+ rowTitle,
19426
+ items,
19427
+ renderItem,
19428
+ layout: layout2
19429
+ }) {
19430
+ if (!(items == null ? void 0 : items.length)) return null;
19431
+ return layout2 === "carousel" ? /* @__PURE__ */ React63.createElement(CarouselRow, { rowTitle, items, renderItem }) : /* @__PURE__ */ React63.createElement(GridRow, { rowTitle, items, renderItem });
19432
+ }
19433
+ function formatPriceCents(cents) {
19434
+ if (cents == null) return null;
19435
+ return new Intl.NumberFormat("en-US", { style: "currency", currency: "USD", minimumFractionDigits: 0, maximumFractionDigits: 0 }).format(cents / 100);
19436
+ }
19437
+ function ModalSection({ title, children }) {
19438
+ 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);
19439
+ }
19440
+ function DetailModalContent({
19441
+ detail,
19442
+ serviceItems = []
19443
+ }) {
19444
+ var _a, _b, _c, _d, _e;
19445
+ if (detail.type === "offer") {
19446
+ const o = detail.item;
19447
+ const categoryLine = ((_a = o.category_names) == null ? void 0 : _a.length) ? o.category_names.join(" | ") : null;
19448
+ const descriptionContent = o.description || o.first_service_description_markdown;
19449
+ const relatedServices = ((_b = o.services) == null ? void 0 : _b.length) ? o.services : (_c = o.service_items) != null ? _c : [];
19450
+ const relatedPackages = (_d = o.packages) != null ? _d : [];
19451
+ 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 && (() => {
19452
+ const d = new Date(o.expires_at);
19453
+ if (Number.isNaN(d.getTime())) return null;
19454
+ return /* @__PURE__ */ React63.createElement("p", { className: "text-sm text-tertiary" }, "Expires ", d.toLocaleDateString(void 0, { dateStyle: "medium" }));
19455
+ })(), 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)))));
19456
+ }
19457
+ if (detail.type === "package") {
19458
+ const p = detail.item;
19459
+ const categoryLine = ((_e = p.category_names) == null ? void 0 : _e.length) ? p.category_names.join(" | ") : null;
19460
+ const descriptionMarkdown2 = p.description_markdown || p.summary || p.first_service_description_markdown;
19461
+ 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) => {
19462
+ var _a2, _b2, _c2, _d2, _e2, _f, _g, _h, _i;
19463
+ const fullItem = ((_a2 = pi.service_item) == null ? void 0 : _a2.id) != null ? serviceItems.find((si2) => si2.id === pi.service_item.id) : null;
19464
+ const name = (_d2 = (_c2 = fullItem == null ? void 0 : fullItem.name) != null ? _c2 : (_b2 = pi.service_item) == null ? void 0 : _b2.name) != null ? _d2 : "Item";
19465
+ 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;
19466
+ 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 })));
19467
+ }))), 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 })))));
19468
+ }
19469
+ const si = detail.item;
19470
+ const priceStr = formatPriceCents(si.price_cents);
19471
+ const summary = si.summary || si.service_summary;
19472
+ const descriptionMarkdown = si.description_markdown || si.service_description_markdown;
19473
+ 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 })))));
19474
+ }
19475
+ function ServiceMenuSection({
19476
+ title = "Service Menu",
19477
+ subtitle,
19478
+ offers = null,
19479
+ packages = null,
19480
+ services = null,
19481
+ websitePhotos,
19482
+ companyInformation,
19483
+ viewAllHref,
19484
+ viewAllText = "View All",
19485
+ servicesRowTitle = "Treatments",
19486
+ variant = "section"
19487
+ }) {
19488
+ const offerList = React63.useMemo(
19489
+ () => Array.isArray(offers) ? offers.filter((o) => !o.expired) : [],
19490
+ [offers]
19491
+ );
19492
+ const packageList = React63.useMemo(
19493
+ () => Array.isArray(packages) ? packages : [],
19494
+ [packages]
19495
+ );
19496
+ const serviceList = React63.useMemo(
19497
+ () => Array.isArray(services) ? services : [],
19498
+ [services]
19499
+ );
19500
+ const serviceItemIdToService = React63.useMemo(() => {
19501
+ const m = /* @__PURE__ */ new Map();
19502
+ serviceList.forEach((s) => (s.service_items || []).forEach((si) => m.set(si.id, s)));
19503
+ return m;
19504
+ }, [serviceList]);
19505
+ const packagesForMenu = React63.useMemo(
19506
+ () => packageList.map((pkg) => {
19507
+ var _a, _b, _c;
19508
+ const category_names = [
19509
+ ...new Set(
19510
+ (pkg.package_items || []).map((pi) => {
19511
+ var _a2, _b2, _c2;
19512
+ return (_c2 = serviceItemIdToService.get((_b2 = (_a2 = pi.service_item) == null ? void 0 : _a2.id) != null ? _b2 : 0)) == null ? void 0 : _c2.name;
19513
+ }).filter(Boolean)
19514
+ )
19515
+ ];
19516
+ const firstPi = (_a = pkg.package_items) == null ? void 0 : _a[0];
19517
+ const firstService = firstPi ? serviceItemIdToService.get((_c = (_b = firstPi.service_item) == null ? void 0 : _b.id) != null ? _c : 0) : void 0;
19518
+ const first_service_description_markdown = (firstService == null ? void 0 : firstService.description_markdown) || (firstService == null ? void 0 : firstService.summary) || null;
19519
+ return __spreadProps(__spreadValues({}, pkg), { category_names, first_service_description_markdown });
19520
+ }),
19521
+ [packageList, serviceItemIdToService]
19522
+ );
19523
+ const offersForMenu = React63.useMemo(
19524
+ () => offerList.map((offer) => {
19525
+ var _a, _b, _c;
19526
+ const category_names = (_b = ((_a = offer.category_names) == null ? void 0 : _a.length) ? offer.category_names : null) != null ? _b : (offer.service_ids || []).map((id3) => {
19527
+ var _a2;
19528
+ return (_a2 = serviceList.find((s) => s.id === id3)) == null ? void 0 : _a2.name;
19529
+ }).filter(Boolean);
19530
+ const firstServiceId = (_c = offer.service_ids) == null ? void 0 : _c[0];
19531
+ const firstService = firstServiceId ? serviceList.find((s) => s.id === firstServiceId) : void 0;
19532
+ const first_service_description_markdown = (firstService == null ? void 0 : firstService.description_markdown) || (firstService == null ? void 0 : firstService.summary) || null;
19533
+ return __spreadProps(__spreadValues({}, offer), { category_names: category_names != null ? category_names : [], first_service_description_markdown });
19534
+ }),
19535
+ [offerList, serviceList]
19536
+ );
19537
+ const serviceItemsForMenu = serviceList.flatMap(
19538
+ (s) => (s.service_items || []).map((si) => __spreadProps(__spreadValues({}, si), {
19539
+ service_name: s.name,
19540
+ service_summary: s.summary,
19541
+ service_description_markdown: s.description_markdown
19542
+ }))
19543
+ );
19544
+ const hasAny = offersForMenu.length > 0 || packagesForMenu.length > 0 || serviceItemsForMenu.length > 0;
19545
+ const CAROUSEL_MIN = 3;
19546
+ const isPage = variant === "page";
19547
+ const offersLayout = isPage ? "grid" : offersForMenu.length >= CAROUSEL_MIN ? "carousel" : "grid";
19548
+ const packagesLayout = isPage ? "grid" : packagesForMenu.length >= CAROUSEL_MIN ? "carousel" : "grid";
19549
+ const serviceItemsLayout = isPage ? "grid" : serviceItemsForMenu.length >= CAROUSEL_MIN ? "carousel" : "grid";
19550
+ const [detailItem, setDetailItem] = useState30(null);
19551
+ const [portalTarget, setPortalTarget] = useState30(null);
19552
+ useEffect11(() => {
19553
+ let el = document.getElementById(SERVICE_MENU_MODAL_ROOT_ID);
19554
+ if (!el) {
19555
+ el = document.createElement("div");
19556
+ el.id = SERVICE_MENU_MODAL_ROOT_ID;
19557
+ document.body.appendChild(el);
19558
+ }
19559
+ setPortalTarget(el);
19560
+ return () => {
19561
+ el == null ? void 0 : el.remove();
19562
+ };
19563
+ }, []);
19564
+ const closeModal = useCallback10(() => setDetailItem(null), []);
19565
+ const renderOfferCard = useCallback10(
19566
+ (offer, index) => {
19567
+ var _a, _b;
19568
+ const categorySubtitle = ((_a = offer.category_names) == null ? void 0 : _a.length) ? offer.category_names.join(" | ") : (_b = offer.value_terms) != null ? _b : null;
19569
+ const cardDesc = offer.description || offer.first_service_description_markdown;
19570
+ const plainDesc = cardDesc ? (typeof cardDesc === "string" ? cardDesc : "").replace(/[#*`\[\]]/g, "").replace(/\n+/g, " ").trim() : "";
19571
+ const descText = plainDesc.length > 120 ? plainDesc.slice(0, 120) + "\u2026" : plainDesc;
19572
+ return /* @__PURE__ */ React63.createElement(
19573
+ GridCardWithImage,
19574
+ {
19575
+ photoAttachments: offer.photo_attachments,
19576
+ fallbackId: offer.id,
19577
+ fallbackAlt: offer.name,
19578
+ title: offer.name,
19579
+ subtitle: categorySubtitle,
19580
+ onClick: () => setDetailItem({ type: "offer", item: offer }),
19581
+ websitePhotos,
19582
+ companyInformation,
19583
+ cycleSeed: `offer-${offer.id}-${index}`
19584
+ },
19585
+ descText && /* @__PURE__ */ React63.createElement("p", { className: "font-body text-sm text-tertiary mt-1 line-clamp-2" }, descText)
19586
+ );
19587
+ },
19588
+ [websitePhotos, companyInformation]
19589
+ );
19590
+ const renderPackageCard = useCallback10(
19591
+ (pkg, index) => {
19592
+ var _a;
19593
+ const categorySubtitle = ((_a = pkg.category_names) == null ? void 0 : _a.length) ? pkg.category_names.join(" | ") : null;
19594
+ const cardDesc = pkg.description_markdown || pkg.summary || pkg.first_service_description_markdown;
19595
+ const plainDesc = cardDesc ? cardDesc.replace(/[#*`\[\]]/g, "").replace(/\n+/g, " ").trim() : "";
19596
+ const descText = plainDesc.length > 120 ? plainDesc.slice(0, 120) + "\u2026" : plainDesc;
19597
+ return /* @__PURE__ */ React63.createElement(
19598
+ GridCardWithImage,
19599
+ {
19600
+ photoAttachments: pkg.photo_attachments,
19601
+ fallbackId: `pkg-${pkg.id}`,
19602
+ fallbackAlt: pkg.name,
19603
+ title: pkg.name,
19604
+ subtitle: categorySubtitle,
19605
+ onClick: () => setDetailItem({ type: "package", item: pkg }),
19606
+ websitePhotos,
19607
+ companyInformation,
19608
+ cycleSeed: `pkg-${pkg.id}-${index}`
19609
+ },
19610
+ descText && /* @__PURE__ */ React63.createElement("p", { className: "font-body text-sm text-tertiary mt-1 line-clamp-2" }, descText)
19611
+ );
19612
+ },
19613
+ [websitePhotos, companyInformation]
19614
+ );
19615
+ const renderServiceItemCard = useCallback10(
19616
+ (si, index) => {
19617
+ var _a, _b, _c, _d;
19618
+ return /* @__PURE__ */ React63.createElement(
19619
+ GridCardWithImage,
19620
+ {
19621
+ photoAttachments: si.photo_attachments,
19622
+ fallbackId: `service-item-${si.id}`,
19623
+ fallbackAlt: ((_c = (_b = (_a = si.photo_attachments) == null ? void 0 : _a[0]) == null ? void 0 : _b.photo) == null ? void 0 : _c.title) || si.name,
19624
+ title: si.name,
19625
+ subtitle: (_d = si.service_name) != null ? _d : null,
19626
+ onClick: () => setDetailItem({ type: "service_item", item: si }),
19627
+ websitePhotos,
19628
+ companyInformation,
19629
+ cycleSeed: `service-item-${si.id}-${index}`
19630
+ },
19631
+ formatPriceCents(si.price_cents) && /* @__PURE__ */ React63.createElement("p", { className: "font-body text-sm font-medium text-fg-primary mt-1" }, formatPriceCents(si.price_cents)),
19632
+ (() => {
19633
+ const desc = si.summary || si.description_markdown || si.service_summary || si.service_description_markdown;
19634
+ if (!desc) return null;
19635
+ const plain = desc.replace(/[#*`\[\]]/g, "").replace(/\n+/g, " ").trim();
19636
+ const text = plain.length > 120 ? plain.slice(0, 120) + "\u2026" : plain;
19637
+ return /* @__PURE__ */ React63.createElement("p", { className: "font-body text-sm text-tertiary mt-1 line-clamp-2" }, text);
19638
+ })()
19639
+ );
19640
+ },
19641
+ [websitePhotos, companyInformation]
19642
+ );
19643
+ if (!hasAny) return null;
19644
+ const modalTitle = detailItem ? detailItem.item.name : "";
19645
+ 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(
19646
+ MenuBlock,
19647
+ {
19648
+ rowTitle: "Offers",
19649
+ items: offersForMenu,
19650
+ layout: offersLayout,
19651
+ renderItem: renderOfferCard
19652
+ }
19653
+ ), /* @__PURE__ */ React63.createElement(
19654
+ MenuBlock,
19655
+ {
19656
+ rowTitle: "Packages",
19657
+ items: packagesForMenu,
19658
+ layout: packagesLayout,
19659
+ renderItem: renderPackageCard
19660
+ }
19661
+ ), /* @__PURE__ */ React63.createElement(
19662
+ MenuBlock,
19663
+ {
19664
+ rowTitle: servicesRowTitle,
19665
+ items: serviceItemsForMenu,
19666
+ layout: serviceItemsLayout,
19667
+ renderItem: renderServiceItemCard
19668
+ }
19669
+ ), 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(
19670
+ /* @__PURE__ */ React63.createElement(
19671
+ Modal,
19672
+ {
19673
+ isOpen: true,
19674
+ onClose: closeModal,
19675
+ title: modalTitle,
19676
+ maxWidth: "2xl"
19677
+ },
19678
+ /* @__PURE__ */ React63.createElement(
19679
+ DetailModalContent,
19680
+ {
19681
+ detail: detailItem,
19682
+ services: serviceList,
19683
+ packages: packagesForMenu,
19684
+ serviceItems: serviceItemsForMenu
19685
+ }
19686
+ )
19687
+ ),
19688
+ portalTarget
19689
+ ));
19690
+ }
19691
+
18853
19692
  // src/design_system/sections/index.tsx
18854
19693
  function createThemedExport2(componentName, BaseComponent) {
18855
19694
  return function ThemedComponent(props) {
18856
19695
  const { theme } = useTheme();
18857
19696
  try {
18858
19697
  const Component2 = getThemedComponent(componentName, theme);
18859
- return React59.createElement(Component2, props);
19698
+ return React64.createElement(Component2, props);
18860
19699
  } catch (e) {
18861
- return React59.createElement(BaseComponent, props);
19700
+ return React64.createElement(BaseComponent, props);
18862
19701
  }
18863
19702
  };
18864
19703
  }
@@ -18897,6 +19736,9 @@ var PolicyDocumentSection2 = PolicyDocumentSection;
18897
19736
  var SocialMediaHero3 = createThemedExport2("hero-social-media", SocialMediaHero);
18898
19737
  var TestimonialsHero3 = createThemedExport2("hero-testimonials", TestimonialsHero);
18899
19738
  var HomeHeroComponent2 = createThemedExport2("home-hero-component", HomeHeroComponent);
19739
+ var OffersSection2 = createThemedExport2("offers-section", OffersSection);
19740
+ var OffersGallery2 = createThemedExport2("offers-gallery", OffersGallery);
19741
+ var OfferDetailSection2 = createThemedExport2("offer-detail", OfferDetailSection);
18900
19742
 
18901
19743
  // src/lib/actions.ts
18902
19744
  var API_URL = process.env.API_URL || "http://localhost:3000/api/v1";
@@ -19002,7 +19844,7 @@ async function submitLeadFormAction(formData) {
19002
19844
  }
19003
19845
 
19004
19846
  // src/design_system/components/ChatWidget.tsx
19005
- import React60, { useState as useState30, useEffect as useEffect10, useRef as useRef17, useCallback as useCallback10 } from "react";
19847
+ import React65, { useState as useState31, useEffect as useEffect12, useRef as useRef18, useCallback as useCallback11 } from "react";
19006
19848
  import { X, MessageChatSquare } from "@untitledui/icons";
19007
19849
  var formatTime = (isoString) => {
19008
19850
  const date = new Date(isoString);
@@ -19026,14 +19868,14 @@ function ChatWidget({
19026
19868
  displayName: providedDisplayName,
19027
19869
  teamMembers = []
19028
19870
  }) {
19029
- const [isOpen, setIsOpen] = useState30(false);
19030
- const [messages, setMessages] = useState30([]);
19031
- const [inputValue, setInputValue] = useState30("");
19032
- const [isLoading, setIsLoading] = useState30(false);
19033
- const [sessionId, setSessionId] = useState30("");
19034
- const [waitingForReply, setWaitingForReply] = useState30(false);
19035
- const messagesEndRef = useRef17(null);
19036
- useEffect10(() => {
19871
+ const [isOpen, setIsOpen] = useState31(false);
19872
+ const [messages, setMessages] = useState31([]);
19873
+ const [inputValue, setInputValue] = useState31("");
19874
+ const [isLoading, setIsLoading] = useState31(false);
19875
+ const [sessionId, setSessionId] = useState31("");
19876
+ const [waitingForReply, setWaitingForReply] = useState31(false);
19877
+ const messagesEndRef = useRef18(null);
19878
+ useEffect12(() => {
19037
19879
  if (providedSessionId) {
19038
19880
  setSessionId(providedSessionId);
19039
19881
  } else {
@@ -19047,7 +19889,7 @@ function ChatWidget({
19047
19889
  }
19048
19890
  }
19049
19891
  }, [providedSessionId]);
19050
- const loadMessages = useCallback10(async () => {
19892
+ const loadMessages = useCallback11(async () => {
19051
19893
  try {
19052
19894
  const response = await fetch(`/api/chat/?identifier=${encodeURIComponent(sessionId)}`);
19053
19895
  if (response.ok) {
@@ -19061,12 +19903,12 @@ function ChatWidget({
19061
19903
  }
19062
19904
  return [];
19063
19905
  }, [sessionId]);
19064
- useEffect10(() => {
19906
+ useEffect12(() => {
19065
19907
  if (isOpen && sessionId) {
19066
19908
  loadMessages();
19067
19909
  }
19068
19910
  }, [isOpen, sessionId, loadMessages]);
19069
- useEffect10(() => {
19911
+ useEffect12(() => {
19070
19912
  var _a;
19071
19913
  (_a = messagesEndRef.current) == null ? void 0 : _a.scrollIntoView({ behavior: "smooth" });
19072
19914
  }, [messages]);
@@ -19156,7 +19998,7 @@ function ChatWidget({
19156
19998
  } : void 0;
19157
19999
  const widgetBrandClass = primaryColor ? "bg-[var(--widget-primary)]" : "bg-brand-solid";
19158
20000
  const widgetBrandHoverClass = primaryColor ? "hover:bg-[var(--widget-primary-hover)]" : "hover:bg-brand-solid_hover";
19159
- return /* @__PURE__ */ React60.createElement(
20001
+ return /* @__PURE__ */ React65.createElement(
19160
20002
  "div",
19161
20003
  {
19162
20004
  className: cx(
@@ -19165,7 +20007,7 @@ function ChatWidget({
19165
20007
  ),
19166
20008
  style: customColorVars
19167
20009
  },
19168
- !isOpen && /* @__PURE__ */ React60.createElement(
20010
+ !isOpen && /* @__PURE__ */ React65.createElement(
19169
20011
  "button",
19170
20012
  {
19171
20013
  onClick: () => setIsOpen(true),
@@ -19175,15 +20017,15 @@ function ChatWidget({
19175
20017
  ),
19176
20018
  "aria-label": "Open chat"
19177
20019
  },
19178
- /* @__PURE__ */ React60.createElement(MessageChatSquare, { className: "size-6" })
20020
+ /* @__PURE__ */ React65.createElement(MessageChatSquare, { className: "size-6" })
19179
20021
  ),
19180
- isOpen && /* @__PURE__ */ React60.createElement("div", { className: "flex h-[500px] w-[380px] flex-col overflow-hidden rounded-xl bg-primary shadow-2xl ring-1 ring-secondary ring-inset" }, /* @__PURE__ */ React60.createElement("div", { className: cx(
20022
+ isOpen && /* @__PURE__ */ React65.createElement("div", { className: "flex h-[500px] w-[380px] flex-col overflow-hidden rounded-xl bg-primary shadow-2xl ring-1 ring-secondary ring-inset" }, /* @__PURE__ */ React65.createElement("div", { className: cx(
19181
20023
  "flex items-center justify-between gap-3 p-4 text-white",
19182
20024
  widgetBrandClass
19183
- ) }, /* @__PURE__ */ React60.createElement("div", { className: "flex min-w-0 flex-1 flex-col gap-2" }, /* @__PURE__ */ React60.createElement("h3", { className: "m-0 text-lg font-semibold leading-tight" }, "Chat with us"), (() => {
20025
+ ) }, /* @__PURE__ */ React65.createElement("div", { className: "flex min-w-0 flex-1 flex-col gap-2" }, /* @__PURE__ */ React65.createElement("h3", { className: "m-0 text-lg font-semibold leading-tight" }, "Chat with us"), (() => {
19184
20026
  const membersWithPhotos = teamMembers.filter((m) => m.photo_url);
19185
20027
  if (membersWithPhotos.length === 0) return null;
19186
- return /* @__PURE__ */ React60.createElement("div", { className: "flex -space-x-2" }, membersWithPhotos.slice(0, 5).map((member) => /* @__PURE__ */ React60.createElement(
20028
+ return /* @__PURE__ */ React65.createElement("div", { className: "flex -space-x-2" }, membersWithPhotos.slice(0, 5).map((member) => /* @__PURE__ */ React65.createElement(
19187
20029
  Avatar,
19188
20030
  {
19189
20031
  key: member.id,
@@ -19192,28 +20034,28 @@ function ChatWidget({
19192
20034
  alt: member.name,
19193
20035
  className: "bg-white ring-2 ring-white"
19194
20036
  }
19195
- )), membersWithPhotos.length > 5 && /* @__PURE__ */ React60.createElement(
20037
+ )), membersWithPhotos.length > 5 && /* @__PURE__ */ React65.createElement(
19196
20038
  Avatar,
19197
20039
  {
19198
20040
  size: "xs",
19199
20041
  className: "bg-white ring-2 ring-white",
19200
- placeholder: /* @__PURE__ */ React60.createElement("span", { className: "flex items-center justify-center text-xs font-semibold text-tertiary" }, "+", membersWithPhotos.length - 5)
20042
+ placeholder: /* @__PURE__ */ React65.createElement("span", { className: "flex items-center justify-center text-xs font-semibold text-tertiary" }, "+", membersWithPhotos.length - 5)
19201
20043
  }
19202
20044
  ));
19203
- })()), /* @__PURE__ */ React60.createElement(
20045
+ })()), /* @__PURE__ */ React65.createElement(
19204
20046
  "button",
19205
20047
  {
19206
20048
  onClick: () => setIsOpen(false),
19207
20049
  className: "cursor-pointer rounded-md p-1 text-white outline-none transition-colors hover:bg-white/10 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-white",
19208
20050
  "aria-label": "Close chat"
19209
20051
  },
19210
- /* @__PURE__ */ React60.createElement(X, { className: "size-5" })
19211
- )), /* @__PURE__ */ React60.createElement("ul", { className: "flex flex-1 flex-col gap-4 overflow-y-auto px-4 py-4" }, messages.length === 0 && /* @__PURE__ */ React60.createElement("li", { className: "mt-5 text-center text-sm text-quaternary" }, "Start a conversation! We're here to help."), messages.map((message, index) => {
20052
+ /* @__PURE__ */ React65.createElement(X, { className: "size-5" })
20053
+ )), /* @__PURE__ */ React65.createElement("ul", { className: "flex flex-1 flex-col gap-4 overflow-y-auto px-4 py-4" }, messages.length === 0 && /* @__PURE__ */ React65.createElement("li", { className: "mt-5 text-center text-sm text-quaternary" }, "Start a conversation! We're here to help."), messages.map((message, index) => {
19212
20054
  var _a, _b, _c, _d;
19213
20055
  const isUser = message.sender_type === "contact";
19214
20056
  const prevMessage = index > 0 ? messages[index - 1] : null;
19215
20057
  const showAvatar = !isUser && (!prevMessage || prevMessage.sender_type === "contact");
19216
- return /* @__PURE__ */ React60.createElement(
20058
+ return /* @__PURE__ */ React65.createElement(
19217
20059
  "li",
19218
20060
  {
19219
20061
  key: message.id,
@@ -19222,7 +20064,7 @@ function ChatWidget({
19222
20064
  isUser ? "self-end pl-10" : "pr-8"
19223
20065
  )
19224
20066
  },
19225
- !isUser && showAvatar && /* @__PURE__ */ React60.createElement(
20067
+ !isUser && showAvatar && /* @__PURE__ */ React65.createElement(
19226
20068
  Avatar,
19227
20069
  {
19228
20070
  size: "sm",
@@ -19232,8 +20074,8 @@ function ChatWidget({
19232
20074
  initials: ((_c = teamMembers[0]) == null ? void 0 : _c.photo_url) ? void 0 : (((_d = teamMembers[0]) == null ? void 0 : _d.name) || message.sender_display_name).split(" ").map((n) => n[0]).join("").toUpperCase().slice(0, 2)
19233
20075
  }
19234
20076
  ),
19235
- !isUser && !showAvatar && /* @__PURE__ */ React60.createElement("div", { className: "size-8 shrink-0" }),
19236
- /* @__PURE__ */ React60.createElement("article", { className: "flex min-w-0 flex-1 flex-col gap-1" }, /* @__PURE__ */ React60.createElement("header", { className: "flex items-center gap-2 px-0.5" }, /* @__PURE__ */ React60.createElement("cite", { className: "flex-1 truncate text-xs font-medium text-tertiary not-italic" }, isUser ? providedDisplayName || "You" : message.sender_display_name), /* @__PURE__ */ React60.createElement("time", { className: "text-xs text-quaternary", dateTime: message.created_at }, formatTime(message.created_at))), /* @__PURE__ */ React60.createElement(
20077
+ !isUser && !showAvatar && /* @__PURE__ */ React65.createElement("div", { className: "size-8 shrink-0" }),
20078
+ /* @__PURE__ */ React65.createElement("article", { className: "flex min-w-0 flex-1 flex-col gap-1" }, /* @__PURE__ */ React65.createElement("header", { className: "flex items-center gap-2 px-0.5" }, /* @__PURE__ */ React65.createElement("cite", { className: "flex-1 truncate text-xs font-medium text-tertiary not-italic" }, isUser ? providedDisplayName || "You" : message.sender_display_name), /* @__PURE__ */ React65.createElement("time", { className: "text-xs text-quaternary", dateTime: message.created_at }, formatTime(message.created_at))), /* @__PURE__ */ React65.createElement(
19237
20079
  "div",
19238
20080
  {
19239
20081
  className: cx(
@@ -19247,7 +20089,7 @@ function ChatWidget({
19247
20089
  message.body
19248
20090
  ))
19249
20091
  );
19250
- }), waitingForReply && /* @__PURE__ */ React60.createElement("li", { className: "relative flex items-start gap-3 pr-8" }, /* @__PURE__ */ React60.createElement(Avatar, { size: "sm", className: "shrink-0" }), /* @__PURE__ */ React60.createElement("article", { className: "flex min-w-0 flex-1 flex-col gap-1" }, /* @__PURE__ */ React60.createElement("div", { className: "flex h-9 w-16 items-center justify-center gap-1 rounded-xl rounded-tl-none bg-secondary ring-1 ring-inset ring-secondary" }, /* @__PURE__ */ React60.createElement("div", { className: "size-1.5 animate-bounce rounded-full bg-fg-tertiary [animation-delay:-0.3s]" }), /* @__PURE__ */ React60.createElement("div", { className: "size-1.5 animate-bounce rounded-full bg-fg-quaternary [animation-delay:-0.15s]" }), /* @__PURE__ */ React60.createElement("div", { className: "size-1.5 animate-bounce rounded-full bg-fg-tertiary" })))), /* @__PURE__ */ React60.createElement("div", { ref: messagesEndRef })), /* @__PURE__ */ React60.createElement("div", { className: "flex gap-2 border-t border-secondary p-3" }, /* @__PURE__ */ React60.createElement(
20092
+ }), waitingForReply && /* @__PURE__ */ React65.createElement("li", { className: "relative flex items-start gap-3 pr-8" }, /* @__PURE__ */ React65.createElement(Avatar, { size: "sm", className: "shrink-0" }), /* @__PURE__ */ React65.createElement("article", { className: "flex min-w-0 flex-1 flex-col gap-1" }, /* @__PURE__ */ React65.createElement("div", { className: "flex h-9 w-16 items-center justify-center gap-1 rounded-xl rounded-tl-none bg-secondary ring-1 ring-inset ring-secondary" }, /* @__PURE__ */ React65.createElement("div", { className: "size-1.5 animate-bounce rounded-full bg-fg-tertiary [animation-delay:-0.3s]" }), /* @__PURE__ */ React65.createElement("div", { className: "size-1.5 animate-bounce rounded-full bg-fg-quaternary [animation-delay:-0.15s]" }), /* @__PURE__ */ React65.createElement("div", { className: "size-1.5 animate-bounce rounded-full bg-fg-tertiary" })))), /* @__PURE__ */ React65.createElement("div", { ref: messagesEndRef })), /* @__PURE__ */ React65.createElement("div", { className: "flex gap-2 border-t border-secondary p-3" }, /* @__PURE__ */ React65.createElement(
19251
20093
  "input",
19252
20094
  {
19253
20095
  type: "text",
@@ -19258,7 +20100,7 @@ function ChatWidget({
19258
20100
  disabled: isLoading,
19259
20101
  className: "flex-1 rounded-lg border border-secondary bg-primary px-3 py-2.5 text-sm text-primary outline-none ring-brand transition-colors placeholder:text-placeholder focus:border-brand focus:ring-1 disabled:cursor-not-allowed disabled:bg-disabled"
19260
20102
  }
19261
- ), /* @__PURE__ */ React60.createElement(
20103
+ ), /* @__PURE__ */ React65.createElement(
19262
20104
  "button",
19263
20105
  {
19264
20106
  onClick: sendMessage,
@@ -19357,7 +20199,12 @@ export {
19357
20199
  LocationDetailsSection3 as LocationDetailsSection,
19358
20200
  LocationGrid3 as LocationGrid,
19359
20201
  MarkdownRenderer2 as MarkdownRenderer,
20202
+ Modal,
19360
20203
  NativeSelect2 as NativeSelect,
20204
+ OfferDetailSection2 as OfferDetailSection,
20205
+ OffersGallery2 as OffersGallery,
20206
+ OffersGrid,
20207
+ OffersSection2 as OffersSection,
19361
20208
  Pagination,
19362
20209
  PaginationPageDefault2 as PaginationPageDefault,
19363
20210
  PaginationPageMinimalCenter2 as PaginationPageMinimalCenter,
@@ -19371,6 +20218,7 @@ export {
19371
20218
  SelectItem2 as SelectItem,
19372
20219
  ServiceDetailContent2 as ServiceDetailContent,
19373
20220
  ServiceDetailHero3 as ServiceDetailHero,
20221
+ ServiceMenuSection,
19374
20222
  ServicesGrid4 as ServicesGrid,
19375
20223
  ServicesHome5 as ServicesHome,
19376
20224
  SocialIcon,