keystone-design-bootstrap 1.0.50 → 1.0.53
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{blog-post-D7HFCDp1.d.ts → blog-post-DGjaJ3wf.d.ts} +2 -2
- package/dist/design_system/sections/index.d.ts +7 -25
- package/dist/design_system/sections/index.js +257 -405
- package/dist/design_system/sections/index.js.map +1 -1
- package/dist/{form-BLZuTGkr.d.ts → form-CpsCONG5.d.ts} +16 -2
- package/dist/index.d.ts +4 -5
- package/dist/index.js +275 -423
- package/dist/index.js.map +1 -1
- package/dist/lib/server-api.d.ts +3 -46
- package/dist/lib/server-api.js +0 -9
- package/dist/lib/server-api.js.map +1 -1
- package/dist/types/index.d.ts +4 -4
- package/dist/utils/photo-helpers.d.ts +1 -1
- package/package.json +1 -1
- package/src/design_system/sections/email-signup-section.tsx +115 -0
- package/src/design_system/sections/header-navigation.aman.tsx +8 -3
- package/src/design_system/sections/header-navigation.balance.tsx +2 -0
- package/src/design_system/sections/header-navigation.barelux.tsx +4 -1
- package/src/design_system/sections/index.tsx +5 -16
- package/src/design_system/sections/service-menu-section.tsx +58 -146
- package/src/lib/server-api.ts +0 -54
- package/src/next/contexts/form-definitions.tsx +5 -2
- package/src/next/layouts/root-layout.tsx +3 -0
- package/src/types/api/form.ts +1 -1
- package/src/types/api/offer.ts +13 -0
- package/src/types/api/service.ts +2 -0
- package/src/types/index.ts +1 -0
- package/src/design_system/sections/offer-detail.tsx +0 -46
- package/src/design_system/sections/offers-gallery.tsx +0 -40
- package/src/design_system/sections/offers-grid.tsx +0 -108
- package/src/design_system/sections/offers-section.tsx +0 -90
- package/dist/{photos-8jMeetqV.d.ts → website-photos-Bm-CBK9g.d.ts} +20 -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
|
|
40
|
+
import React61 from "react";
|
|
41
41
|
|
|
42
42
|
// src/lib/component-registry.ts
|
|
43
43
|
var registry = /* @__PURE__ */ new Map();
|
|
@@ -8464,116 +8464,9 @@ var PolicyDocumentSection = ({
|
|
|
8464
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 }))));
|
|
8465
8465
|
};
|
|
8466
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
|
-
|
|
8574
8467
|
// src/design_system/sections/hero-home.aman.tsx
|
|
8575
8468
|
import { Fragment as Fragment3, useState as useState15 } from "react";
|
|
8576
|
-
import
|
|
8469
|
+
import React35 from "react";
|
|
8577
8470
|
var HeroHome2 = ({
|
|
8578
8471
|
websitePhotos,
|
|
8579
8472
|
companyInformation,
|
|
@@ -8591,7 +8484,7 @@ var HeroHome2 = ({
|
|
|
8591
8484
|
url: ((_b = websitePhotos == null ? void 0 : websitePhotos.hero) == null ? void 0 : _b.url) || "",
|
|
8592
8485
|
alt: ((_c = websitePhotos == null ? void 0 : websitePhotos.hero) == null ? void 0 : _c.alt) || "Hero image"
|
|
8593
8486
|
};
|
|
8594
|
-
return /* @__PURE__ */
|
|
8487
|
+
return /* @__PURE__ */ React35.createElement(Fragment3, null, /* @__PURE__ */ React35.createElement("section", { className: "py-24 md:py-32" }, /* @__PURE__ */ React35.createElement("div", { className: "mx-auto max-w-4xl px-4 text-center md:px-8" }, /* @__PURE__ */ React35.createElement("h1", { className: "font-display text-5xl font-normal leading-tight text-fg-primary md:text-6xl lg:text-7xl" }, headline), /* @__PURE__ */ React35.createElement("p", { className: "mt-6 font-body text-lg leading-relaxed text-tertiary md:text-xl max-w-3xl mx-auto" }, subhead), ctaText && /* @__PURE__ */ React35.createElement(
|
|
8595
8488
|
"a",
|
|
8596
8489
|
{
|
|
8597
8490
|
href: effectiveCtaHref,
|
|
@@ -8601,7 +8494,7 @@ var HeroHome2 = ({
|
|
|
8601
8494
|
style: { color: "var(--color-text-brand-accent)" }
|
|
8602
8495
|
},
|
|
8603
8496
|
ctaText
|
|
8604
|
-
))), /* @__PURE__ */
|
|
8497
|
+
))), /* @__PURE__ */ React35.createElement("section", null, /* @__PURE__ */ React35.createElement("div", { className: "mx-auto max-w-container px-4 md:px-8" }, /* @__PURE__ */ React35.createElement("div", { className: "relative w-full h-[400px] md:h-[500px] lg:h-[600px]" }, /* @__PURE__ */ React35.createElement(
|
|
8605
8498
|
PhotoWithFallback2,
|
|
8606
8499
|
{
|
|
8607
8500
|
photoUrl: heroImage.url,
|
|
@@ -8609,7 +8502,7 @@ var HeroHome2 = ({
|
|
|
8609
8502
|
fallbackId: "hero-home-brand",
|
|
8610
8503
|
className: "w-full h-full object-cover"
|
|
8611
8504
|
}
|
|
8612
|
-
), videoUrl && /* @__PURE__ */
|
|
8505
|
+
), videoUrl && /* @__PURE__ */ React35.createElement("div", { className: "absolute inset-0 flex items-center justify-center" }, /* @__PURE__ */ React35.createElement(VideoPlayButton, { onClick: () => setShowVideo(true) }))))), videoUrl && /* @__PURE__ */ React35.createElement(
|
|
8613
8506
|
VideoModal,
|
|
8614
8507
|
{
|
|
8615
8508
|
isOpen: showVideo,
|
|
@@ -8621,7 +8514,7 @@ var HeroHome2 = ({
|
|
|
8621
8514
|
registerThemeVariant("hero-home", "aman", HeroHome2);
|
|
8622
8515
|
|
|
8623
8516
|
// src/design_system/sections/header-navigation.aman.tsx
|
|
8624
|
-
import
|
|
8517
|
+
import React36, { useState as useState16, useRef as useRef9, useCallback as useCallback5 } from "react";
|
|
8625
8518
|
import Link6 from "next/link";
|
|
8626
8519
|
import Image11 from "next/image";
|
|
8627
8520
|
var MAX_DROPDOWN_ITEMS = 3;
|
|
@@ -8640,14 +8533,14 @@ function HeaderNavigation2({
|
|
|
8640
8533
|
const [dropdownTop, setDropdownTop] = useState16(0);
|
|
8641
8534
|
const [isScrolled, setIsScrolled] = useState16(false);
|
|
8642
8535
|
const closeTimeoutRef = useRef9(null);
|
|
8643
|
-
|
|
8536
|
+
React36.useEffect(() => {
|
|
8644
8537
|
const handleScroll = () => {
|
|
8645
8538
|
setIsScrolled(window.scrollY > 10);
|
|
8646
8539
|
};
|
|
8647
8540
|
window.addEventListener("scroll", handleScroll);
|
|
8648
8541
|
return () => window.removeEventListener("scroll", handleScroll);
|
|
8649
8542
|
}, []);
|
|
8650
|
-
|
|
8543
|
+
React36.useEffect(() => {
|
|
8651
8544
|
return () => {
|
|
8652
8545
|
if (closeTimeoutRef.current) {
|
|
8653
8546
|
clearTimeout(closeTimeoutRef.current);
|
|
@@ -8710,10 +8603,10 @@ function HeaderNavigation2({
|
|
|
8710
8603
|
viewAllLabel: ""
|
|
8711
8604
|
};
|
|
8712
8605
|
};
|
|
8713
|
-
return /* @__PURE__ */
|
|
8606
|
+
return /* @__PURE__ */ React36.createElement(React36.Fragment, null, /* @__PURE__ */ React36.createElement("header", { className: "hidden md:block sticky top-0 z-50 bg-primary border-b border-secondary transition-all duration-300" }, /* @__PURE__ */ React36.createElement("div", { className: "mx-auto max-w-container px-4 md:px-8" }, /* @__PURE__ */ React36.createElement("div", { className: cx(
|
|
8714
8607
|
"relative flex items-center justify-between transition-all duration-300",
|
|
8715
8608
|
isScrolled ? "py-2" : "py-8"
|
|
8716
|
-
) }, /* @__PURE__ */
|
|
8609
|
+
) }, /* @__PURE__ */ React36.createElement(Link6, { href: ((_d = props == null ? void 0 : props.logo) == null ? void 0 : _d.href) || "/", className: "flex items-center" }, logoUrl && /* @__PURE__ */ React36.createElement(
|
|
8717
8610
|
Image11,
|
|
8718
8611
|
{
|
|
8719
8612
|
src: logoUrl,
|
|
@@ -8722,7 +8615,7 @@ function HeaderNavigation2({
|
|
|
8722
8615
|
width: 120,
|
|
8723
8616
|
height: 40
|
|
8724
8617
|
}
|
|
8725
|
-
)), /* @__PURE__ */
|
|
8618
|
+
)), /* @__PURE__ */ React36.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__ */ React36.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__ */ React36.createElement(
|
|
8726
8619
|
Button2,
|
|
8727
8620
|
{
|
|
8728
8621
|
href: ctaUrls.secondaryHref,
|
|
@@ -8733,7 +8626,7 @@ function HeaderNavigation2({
|
|
|
8733
8626
|
className: "font-body text-sm uppercase tracking-wide px-6 py-2 rounded-sm"
|
|
8734
8627
|
},
|
|
8735
8628
|
props.cta_button.label
|
|
8736
|
-
), /* @__PURE__ */
|
|
8629
|
+
), /* @__PURE__ */ React36.createElement(
|
|
8737
8630
|
Button2,
|
|
8738
8631
|
{
|
|
8739
8632
|
href: ctaUrls.primaryHref,
|
|
@@ -8744,7 +8637,7 @@ function HeaderNavigation2({
|
|
|
8744
8637
|
className: "font-body text-sm uppercase tracking-wide px-6 py-2 rounded-sm"
|
|
8745
8638
|
},
|
|
8746
8639
|
((_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__ */
|
|
8640
|
+
))), /* @__PURE__ */ React36.createElement("nav", { className: "border-b border-secondary" }, /* @__PURE__ */ React36.createElement("div", { className: "flex items-center justify-center gap-8 py-4" }, navigation.map((item, i) => /* @__PURE__ */ React36.createElement(
|
|
8748
8641
|
"div",
|
|
8749
8642
|
{
|
|
8750
8643
|
key: i,
|
|
@@ -8752,7 +8645,7 @@ function HeaderNavigation2({
|
|
|
8752
8645
|
onMouseEnter: (e) => handleMouseEnter(item, e),
|
|
8753
8646
|
onMouseLeave: handleMouseLeave
|
|
8754
8647
|
},
|
|
8755
|
-
/* @__PURE__ */
|
|
8648
|
+
/* @__PURE__ */ React36.createElement(
|
|
8756
8649
|
Link6,
|
|
8757
8650
|
{
|
|
8758
8651
|
href: item.href,
|
|
@@ -8763,7 +8656,7 @@ function HeaderNavigation2({
|
|
|
8763
8656
|
},
|
|
8764
8657
|
item.label
|
|
8765
8658
|
),
|
|
8766
|
-
item.children && item.children.length > 0 && activeDropdown === item.label && /* @__PURE__ */
|
|
8659
|
+
item.children && item.children.length > 0 && activeDropdown === item.label && /* @__PURE__ */ React36.createElement(
|
|
8767
8660
|
"div",
|
|
8768
8661
|
{
|
|
8769
8662
|
className: "fixed left-0 right-0 w-full pt-6 pb-6 border-b border-secondary bg-primary z-50",
|
|
@@ -8771,9 +8664,9 @@ function HeaderNavigation2({
|
|
|
8771
8664
|
onMouseEnter: handleDropdownMouseEnter,
|
|
8772
8665
|
onMouseLeave: handleDropdownMouseLeave
|
|
8773
8666
|
},
|
|
8774
|
-
/* @__PURE__ */
|
|
8667
|
+
/* @__PURE__ */ React36.createElement("div", { className: "mx-auto max-w-container px-4 md:px-8" }, /* @__PURE__ */ React36.createElement("div", { className: "flex items-center justify-center gap-8" }, (() => {
|
|
8775
8668
|
const { items, showViewAll, viewAllHref, viewAllLabel } = getDropdownItems(item);
|
|
8776
|
-
return /* @__PURE__ */
|
|
8669
|
+
return /* @__PURE__ */ React36.createElement(React36.Fragment, null, items.map((link, j) => /* @__PURE__ */ React36.createElement(
|
|
8777
8670
|
Link6,
|
|
8778
8671
|
{
|
|
8779
8672
|
key: j,
|
|
@@ -8781,7 +8674,7 @@ function HeaderNavigation2({
|
|
|
8781
8674
|
className: "font-body text-sm text-fg-primary hover:underline whitespace-nowrap"
|
|
8782
8675
|
},
|
|
8783
8676
|
link.label
|
|
8784
|
-
)), showViewAll && /* @__PURE__ */
|
|
8677
|
+
)), showViewAll && /* @__PURE__ */ React36.createElement(
|
|
8785
8678
|
Link6,
|
|
8786
8679
|
{
|
|
8787
8680
|
href: viewAllHref,
|
|
@@ -8792,15 +8685,15 @@ function HeaderNavigation2({
|
|
|
8792
8685
|
));
|
|
8793
8686
|
})()))
|
|
8794
8687
|
)
|
|
8795
|
-
)))))), /* @__PURE__ */
|
|
8688
|
+
)))))), /* @__PURE__ */ React36.createElement("header", { className: "md:hidden sticky top-0 z-50 bg-primary border-b border-secondary" }, /* @__PURE__ */ React36.createElement("div", { className: "flex items-center justify-between px-4 py-4" }, /* @__PURE__ */ React36.createElement(
|
|
8796
8689
|
"button",
|
|
8797
8690
|
{
|
|
8798
8691
|
onClick: () => setIsMobileMenuOpen(true),
|
|
8799
8692
|
className: "text-fg-primary",
|
|
8800
8693
|
"aria-label": "Open menu"
|
|
8801
8694
|
},
|
|
8802
|
-
/* @__PURE__ */
|
|
8803
|
-
), /* @__PURE__ */
|
|
8695
|
+
/* @__PURE__ */ React36.createElement("svg", { className: "w-6 h-6", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React36.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M4 6h16M4 12h16M4 18h16" }))
|
|
8696
|
+
), /* @__PURE__ */ React36.createElement(Link6, { href: ((_l = props == null ? void 0 : props.logo) == null ? void 0 : _l.href) || "/", className: "flex items-center" }, logoUrl ? /* @__PURE__ */ React36.createElement(
|
|
8804
8697
|
Image11,
|
|
8805
8698
|
{
|
|
8806
8699
|
src: logoUrl,
|
|
@@ -8809,15 +8702,15 @@ function HeaderNavigation2({
|
|
|
8809
8702
|
width: 120,
|
|
8810
8703
|
height: 32
|
|
8811
8704
|
}
|
|
8812
|
-
) : /* @__PURE__ */
|
|
8705
|
+
) : /* @__PURE__ */ React36.createElement("span", { className: "font-display text-xl font-normal uppercase tracking-widest text-fg-primary" }, companyName)), /* @__PURE__ */ React36.createElement("div", { className: "w-6" }))), isMobileMenuOpen && /* @__PURE__ */ React36.createElement("div", { className: "fixed inset-0 bg-white z-50 md:hidden" }, /* @__PURE__ */ React36.createElement("div", { className: "flex flex-col h-full" }, /* @__PURE__ */ React36.createElement("div", { className: "flex items-center justify-between px-4 py-4 border-b border-secondary" }, /* @__PURE__ */ React36.createElement(
|
|
8813
8706
|
"button",
|
|
8814
8707
|
{
|
|
8815
8708
|
onClick: () => setIsMobileMenuOpen(false),
|
|
8816
8709
|
className: "text-fg-primary",
|
|
8817
8710
|
"aria-label": "Close menu"
|
|
8818
8711
|
},
|
|
8819
|
-
/* @__PURE__ */
|
|
8820
|
-
), /* @__PURE__ */
|
|
8712
|
+
/* @__PURE__ */ React36.createElement("svg", { className: "w-6 h-6", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React36.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M6 18L18 6M6 6l12 12" }))
|
|
8713
|
+
), /* @__PURE__ */ React36.createElement("div", { className: "flex items-center" }, logoUrl ? /* @__PURE__ */ React36.createElement(
|
|
8821
8714
|
Image11,
|
|
8822
8715
|
{
|
|
8823
8716
|
src: logoUrl,
|
|
@@ -8826,9 +8719,9 @@ function HeaderNavigation2({
|
|
|
8826
8719
|
width: 120,
|
|
8827
8720
|
height: 32
|
|
8828
8721
|
}
|
|
8829
|
-
) : /* @__PURE__ */
|
|
8722
|
+
) : /* @__PURE__ */ React36.createElement("span", { className: "font-display text-xl font-normal uppercase tracking-widest text-fg-primary" }, companyName)), /* @__PURE__ */ React36.createElement("div", { className: "w-6" })), /* @__PURE__ */ React36.createElement("nav", { className: "flex-1 overflow-y-auto px-4 py-8" }, /* @__PURE__ */ React36.createElement("ul", { className: "space-y-4" }, navigation.map((item, i) => {
|
|
8830
8723
|
const { items, showViewAll, viewAllHref, viewAllLabel } = getDropdownItems(item);
|
|
8831
|
-
return /* @__PURE__ */
|
|
8724
|
+
return /* @__PURE__ */ React36.createElement("li", { key: i }, /* @__PURE__ */ React36.createElement(
|
|
8832
8725
|
Link6,
|
|
8833
8726
|
{
|
|
8834
8727
|
href: item.href,
|
|
@@ -8836,7 +8729,7 @@ function HeaderNavigation2({
|
|
|
8836
8729
|
onClick: () => setIsMobileMenuOpen(false)
|
|
8837
8730
|
},
|
|
8838
8731
|
item.label
|
|
8839
|
-
), items.length > 0 && /* @__PURE__ */
|
|
8732
|
+
), items.length > 0 && /* @__PURE__ */ React36.createElement("ul", { className: "ml-4 mt-2 space-y-2" }, items.map((link, j) => /* @__PURE__ */ React36.createElement("li", { key: j }, /* @__PURE__ */ React36.createElement(
|
|
8840
8733
|
Link6,
|
|
8841
8734
|
{
|
|
8842
8735
|
href: link.href,
|
|
@@ -8844,7 +8737,7 @@ function HeaderNavigation2({
|
|
|
8844
8737
|
onClick: () => setIsMobileMenuOpen(false)
|
|
8845
8738
|
},
|
|
8846
8739
|
link.label
|
|
8847
|
-
))), showViewAll && /* @__PURE__ */
|
|
8740
|
+
))), showViewAll && /* @__PURE__ */ React36.createElement("li", null, /* @__PURE__ */ React36.createElement(
|
|
8848
8741
|
Link6,
|
|
8849
8742
|
{
|
|
8850
8743
|
href: viewAllHref,
|
|
@@ -8854,7 +8747,7 @@ function HeaderNavigation2({
|
|
|
8854
8747
|
viewAllLabel,
|
|
8855
8748
|
" \u2192"
|
|
8856
8749
|
))));
|
|
8857
|
-
}))), /* @__PURE__ */
|
|
8750
|
+
}))), /* @__PURE__ */ React36.createElement("div", { className: "border-t border-secondary px-4 py-6" }, /* @__PURE__ */ React36.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__ */ React36.createElement(
|
|
8858
8751
|
Button2,
|
|
8859
8752
|
{
|
|
8860
8753
|
href: ctaUrls.secondaryHref,
|
|
@@ -8865,7 +8758,7 @@ function HeaderNavigation2({
|
|
|
8865
8758
|
onClick: () => setIsMobileMenuOpen(false)
|
|
8866
8759
|
},
|
|
8867
8760
|
props.cta_button.label
|
|
8868
|
-
), /* @__PURE__ */
|
|
8761
|
+
), /* @__PURE__ */ React36.createElement(
|
|
8869
8762
|
Button2,
|
|
8870
8763
|
{
|
|
8871
8764
|
href: ctaUrls.primaryHref,
|
|
@@ -8876,7 +8769,7 @@ function HeaderNavigation2({
|
|
|
8876
8769
|
onClick: () => setIsMobileMenuOpen(false)
|
|
8877
8770
|
},
|
|
8878
8771
|
((_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__ */
|
|
8772
|
+
))))), /* @__PURE__ */ React36.createElement("div", { className: "fixed bottom-0 left-0 right-0 z-40 md:hidden bg-fg-primary" }, /* @__PURE__ */ React36.createElement("div", { className: "flex gap-0" }, ((_s = props == null ? void 0 : props.cta_button) == null ? void 0 : _s.secondary_label) && ctaUrls.hasSecondary && /* @__PURE__ */ React36.createElement(
|
|
8880
8773
|
Button2,
|
|
8881
8774
|
{
|
|
8882
8775
|
href: ctaUrls.secondaryHref,
|
|
@@ -8886,7 +8779,7 @@ function HeaderNavigation2({
|
|
|
8886
8779
|
className: "flex-1 font-body text-sm uppercase tracking-wide py-4 rounded-none border-r border-gray-700"
|
|
8887
8780
|
},
|
|
8888
8781
|
props.cta_button.label
|
|
8889
|
-
), /* @__PURE__ */
|
|
8782
|
+
), /* @__PURE__ */ React36.createElement(
|
|
8890
8783
|
Button2,
|
|
8891
8784
|
{
|
|
8892
8785
|
href: ctaUrls.primaryHref,
|
|
@@ -8987,7 +8880,7 @@ var ServicesGrid2 = ({
|
|
|
8987
8880
|
registerThemeVariant("services-grid", "aman", ServicesGrid2);
|
|
8988
8881
|
|
|
8989
8882
|
// src/design_system/sections/testimonials-home.aman.tsx
|
|
8990
|
-
import
|
|
8883
|
+
import React37 from "react";
|
|
8991
8884
|
var TestimonialsHome2 = ({
|
|
8992
8885
|
testimonials: testimonialsData,
|
|
8993
8886
|
title = "",
|
|
@@ -8995,7 +8888,7 @@ var TestimonialsHome2 = ({
|
|
|
8995
8888
|
}) => {
|
|
8996
8889
|
const testimonials = Array.isArray(testimonialsData) ? testimonialsData : [];
|
|
8997
8890
|
const displayTestimonials = perPage ? testimonials.slice(0, perPage) : testimonials;
|
|
8998
|
-
return /* @__PURE__ */
|
|
8891
|
+
return /* @__PURE__ */ React37.createElement("section", null, /* @__PURE__ */ React37.createElement("div", { className: "mx-auto max-w-container px-4 md:px-8" }, /* @__PURE__ */ React37.createElement(
|
|
8999
8892
|
CarouselSectionWrapper,
|
|
9000
8893
|
{
|
|
9001
8894
|
title,
|
|
@@ -9010,7 +8903,7 @@ var TestimonialsHome2 = ({
|
|
|
9010
8903
|
const avatarUrl = getAvatarUrl(testimonial.photo_attachments, testimonial.id, reviewerName);
|
|
9011
8904
|
const rating = testimonial.rating || 5;
|
|
9012
8905
|
const isVerified = true;
|
|
9013
|
-
return /* @__PURE__ */
|
|
8906
|
+
return /* @__PURE__ */ React37.createElement(Carousel.Item, { key: testimonial.id || i, className: "pl-4 md:basis-1/2 lg:basis-1/3" }, /* @__PURE__ */ React37.createElement("div", { 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(
|
|
9014
8907
|
"svg",
|
|
9015
8908
|
{
|
|
9016
8909
|
key: starIdx,
|
|
@@ -9022,8 +8915,8 @@ var TestimonialsHome2 = ({
|
|
|
9022
8915
|
strokeWidth: "2",
|
|
9023
8916
|
viewBox: "0 0 24 24"
|
|
9024
8917
|
},
|
|
9025
|
-
/* @__PURE__ */
|
|
9026
|
-
))), /* @__PURE__ */
|
|
8918
|
+
/* @__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" })
|
|
8919
|
+
))), /* @__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(
|
|
9027
8920
|
PhotoWithFallback2,
|
|
9028
8921
|
{
|
|
9029
8922
|
photoUrl: avatarUrl,
|
|
@@ -9031,21 +8924,21 @@ var TestimonialsHome2 = ({
|
|
|
9031
8924
|
fallbackId: testimonial.id || i,
|
|
9032
8925
|
className: "w-full h-full object-cover"
|
|
9033
8926
|
}
|
|
9034
|
-
)), /* @__PURE__ */
|
|
8927
|
+
)), /* @__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)))));
|
|
9035
8928
|
})
|
|
9036
8929
|
)));
|
|
9037
8930
|
};
|
|
9038
8931
|
registerThemeVariant("testimonials-home", "aman", TestimonialsHome2);
|
|
9039
8932
|
|
|
9040
8933
|
// src/design_system/sections/testimonials-grid.aman.tsx
|
|
9041
|
-
import
|
|
8934
|
+
import React38 from "react";
|
|
9042
8935
|
var TestimonialsGrid2 = ({
|
|
9043
8936
|
testimonials: testimonialsData,
|
|
9044
8937
|
title = "",
|
|
9045
8938
|
subtitle = ""
|
|
9046
8939
|
}) => {
|
|
9047
8940
|
const testimonials = Array.isArray(testimonialsData) ? testimonialsData : [];
|
|
9048
|
-
return /* @__PURE__ */
|
|
8941
|
+
return /* @__PURE__ */ React38.createElement("section", null, /* @__PURE__ */ React38.createElement("div", { className: "mx-auto max-w-container px-4 md:px-8" }, (title || subtitle) && /* @__PURE__ */ React38.createElement("div", { className: "mb-12 text-center" }, title && /* @__PURE__ */ React38.createElement("h2", { className: "font-display text-4xl font-normal text-fg-primary md:text-5xl" }, title), subtitle && /* @__PURE__ */ React38.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__ */ React38.createElement("div", { className: "grid grid-cols-1 gap-8 md:grid-cols-2 lg:grid-cols-3" }, testimonials.map((testimonial, i) => {
|
|
9049
8942
|
var _a;
|
|
9050
8943
|
const quote = ((_a = testimonial.content_markdown) == null ? void 0 : _a.replace(/[#*\[\]()]/g, "").trim()) || "";
|
|
9051
8944
|
const reviewerName = testimonial.reviewer_name || "Customer";
|
|
@@ -9053,7 +8946,7 @@ var TestimonialsGrid2 = ({
|
|
|
9053
8946
|
const avatarUrl = getAvatarUrl(testimonial.photo_attachments, testimonial.id, reviewerName);
|
|
9054
8947
|
const rating = testimonial.rating || 5;
|
|
9055
8948
|
const isVerified = true;
|
|
9056
|
-
return /* @__PURE__ */
|
|
8949
|
+
return /* @__PURE__ */ React38.createElement("div", { key: testimonial.id || i, className: "bg-white p-8 flex flex-col h-full" }, /* @__PURE__ */ React38.createElement("div", { className: "flex gap-1 mb-6" }, Array.from({ length: 5 }).map((_, starIdx) => /* @__PURE__ */ React38.createElement(
|
|
9057
8950
|
"svg",
|
|
9058
8951
|
{
|
|
9059
8952
|
key: starIdx,
|
|
@@ -9065,8 +8958,8 @@ var TestimonialsGrid2 = ({
|
|
|
9065
8958
|
strokeWidth: "2",
|
|
9066
8959
|
viewBox: "0 0 24 24"
|
|
9067
8960
|
},
|
|
9068
|
-
/* @__PURE__ */
|
|
9069
|
-
))), /* @__PURE__ */
|
|
8961
|
+
/* @__PURE__ */ React38.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" })
|
|
8962
|
+
))), /* @__PURE__ */ React38.createElement("p", { className: "font-display text-lg leading-relaxed text-tertiary mb-6 flex-grow" }, '"', quote, '"'), /* @__PURE__ */ React38.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ React38.createElement("div", { className: "w-12 h-12 rounded-full overflow-hidden flex-shrink-0" }, /* @__PURE__ */ React38.createElement(
|
|
9070
8963
|
PhotoWithFallback2,
|
|
9071
8964
|
{
|
|
9072
8965
|
photoUrl: avatarUrl,
|
|
@@ -9074,16 +8967,16 @@ var TestimonialsGrid2 = ({
|
|
|
9074
8967
|
fallbackId: testimonial.id || i,
|
|
9075
8968
|
className: "w-full h-full object-cover"
|
|
9076
8969
|
}
|
|
9077
|
-
)), /* @__PURE__ */
|
|
9078
|
-
})) : /* @__PURE__ */
|
|
8970
|
+
)), /* @__PURE__ */ React38.createElement("div", { className: "flex-1" }, /* @__PURE__ */ React38.createElement("div", { className: "flex items-center gap-1.5" }, /* @__PURE__ */ React38.createElement("p", { className: "font-body text-sm font-medium text-fg-primary" }, reviewerName), isVerified && /* @__PURE__ */ React38.createElement("svg", { className: "w-4 h-4 text-fg-primary", viewBox: "0 0 20 20", fill: "currentColor" }, /* @__PURE__ */ React38.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__ */ React38.createElement("p", { className: "font-body text-xs", style: { color: "var(--color-text-brand-secondary)" } }, username))));
|
|
8971
|
+
})) : /* @__PURE__ */ React38.createElement("div", { className: "text-center py-12" }, /* @__PURE__ */ React38.createElement("p", { className: "font-body text-base text-tertiary" }, "No testimonials available"))));
|
|
9079
8972
|
};
|
|
9080
8973
|
registerThemeVariant("testimonials-grid", "aman", TestimonialsGrid2);
|
|
9081
8974
|
|
|
9082
8975
|
// src/design_system/sections/contact-section.aman.tsx
|
|
9083
|
-
import
|
|
8976
|
+
import React40 from "react";
|
|
9084
8977
|
|
|
9085
8978
|
// src/design_system/sections/contact-section-form.aman.tsx
|
|
9086
|
-
import
|
|
8979
|
+
import React39, { useRef as useRef10, useState as useState17 } from "react";
|
|
9087
8980
|
var ContactSectionForm2 = ({
|
|
9088
8981
|
formDefinition,
|
|
9089
8982
|
submitButtonText = "Send message",
|
|
@@ -9137,14 +9030,14 @@ var ContactSectionForm2 = ({
|
|
|
9137
9030
|
setIsSubmitting(false);
|
|
9138
9031
|
};
|
|
9139
9032
|
if (!hasFields) return null;
|
|
9140
|
-
return /* @__PURE__ */
|
|
9033
|
+
return /* @__PURE__ */ React39.createElement(Form2, { ref: formRef, onSubmit: handleSubmit, className: "flex flex-col gap-6" }, /* @__PURE__ */ React39.createElement(
|
|
9141
9034
|
DynamicFormFields,
|
|
9142
9035
|
{
|
|
9143
9036
|
form: resolvedFormDefinition,
|
|
9144
9037
|
privacyPolicyUrl,
|
|
9145
9038
|
termsOfServiceUrl
|
|
9146
9039
|
}
|
|
9147
|
-
), /* @__PURE__ */
|
|
9040
|
+
), /* @__PURE__ */ React39.createElement(
|
|
9148
9041
|
Button2,
|
|
9149
9042
|
{
|
|
9150
9043
|
type: "submit",
|
|
@@ -9155,7 +9048,7 @@ var ContactSectionForm2 = ({
|
|
|
9155
9048
|
isLoading: isSubmitting
|
|
9156
9049
|
},
|
|
9157
9050
|
isSubmitting ? "Sending..." : submitButtonText
|
|
9158
|
-
), submitStatus === "success" && /* @__PURE__ */
|
|
9051
|
+
), submitStatus === "success" && /* @__PURE__ */ React39.createElement("div", { className: "rounded-sm bg-success-50 p-4 text-success-700 font-body" }, thankYouMessage != null ? thankYouMessage : statusMessage), submitStatus === "error" && /* @__PURE__ */ React39.createElement("div", { className: "rounded-sm bg-error-50 p-4 text-error-700 font-body text-sm" }, statusMessage));
|
|
9159
9052
|
};
|
|
9160
9053
|
|
|
9161
9054
|
// src/design_system/sections/contact-section.aman.tsx
|
|
@@ -9179,14 +9072,14 @@ var ContactSection2 = ({
|
|
|
9179
9072
|
const contactImageUrl = contactPhoto == null ? void 0 : contactPhoto.url;
|
|
9180
9073
|
const finalContactImage = contactImageUrl && contactImageUrl.trim() !== "" ? contactImageUrl : void 0;
|
|
9181
9074
|
const finalContactImageAlt = (contactPhoto == null ? void 0 : contactPhoto.alt) || "Contact image";
|
|
9182
|
-
return /* @__PURE__ */
|
|
9075
|
+
return /* @__PURE__ */ React40.createElement("section", null, /* @__PURE__ */ React40.createElement("div", { className: "mx-auto max-w-container px-4 md:px-8" }, /* @__PURE__ */ React40.createElement("div", { className: "grid grid-cols-1 gap-12 md:gap-16 lg:grid-cols-2" }, /* @__PURE__ */ React40.createElement("div", { className: "flex w-full flex-col" }, /* @__PURE__ */ React40.createElement("div", { className: "mb-8" }, /* @__PURE__ */ React40.createElement("h2", { className: "font-display text-4xl font-normal leading-tight text-fg-primary md:text-5xl" }, title), /* @__PURE__ */ React40.createElement("p", { className: "mt-4 font-body text-lg leading-relaxed text-tertiary" }, subtitle)), /* @__PURE__ */ React40.createElement(
|
|
9183
9076
|
ContactSectionForm2,
|
|
9184
9077
|
{
|
|
9185
9078
|
formDefinition,
|
|
9186
9079
|
privacyPolicyUrl,
|
|
9187
9080
|
termsOfServiceUrl
|
|
9188
9081
|
}
|
|
9189
|
-
)), /* @__PURE__ */
|
|
9082
|
+
)), /* @__PURE__ */ React40.createElement("div", { className: "max-lg:hidden h-full min-h-0 overflow-hidden" }, /* @__PURE__ */ React40.createElement(
|
|
9190
9083
|
PhotoWithFallback2,
|
|
9191
9084
|
{
|
|
9192
9085
|
photoUrl: finalContactImage || "",
|
|
@@ -9540,7 +9433,7 @@ var BlogHome2 = ({
|
|
|
9540
9433
|
registerThemeVariant("blog-home", "aman", BlogHome2);
|
|
9541
9434
|
|
|
9542
9435
|
// src/design_system/sections/blog-gallery.aman.tsx
|
|
9543
|
-
import
|
|
9436
|
+
import React41, { useState as useState18 } from "react";
|
|
9544
9437
|
var BlogGallery2 = ({
|
|
9545
9438
|
blogPosts: postsData,
|
|
9546
9439
|
postsPerPage = 12,
|
|
@@ -9554,13 +9447,13 @@ var BlogGallery2 = ({
|
|
|
9554
9447
|
const startIndex = (currentPage - 1) * postsPerPage;
|
|
9555
9448
|
const endIndex = startIndex + postsPerPage;
|
|
9556
9449
|
const paginatedNonFeaturedPosts = nonFeaturedPosts.slice(startIndex, endIndex);
|
|
9557
|
-
return /* @__PURE__ */
|
|
9450
|
+
return /* @__PURE__ */ React41.createElement("section", { className }, /* @__PURE__ */ React41.createElement("div", { className: "mx-auto max-w-container px-4 md:px-8" }, posts.length > 0 ? /* @__PURE__ */ React41.createElement(React41.Fragment, null, featuredPost && /* @__PURE__ */ React41.createElement(
|
|
9558
9451
|
"a",
|
|
9559
9452
|
{
|
|
9560
9453
|
href: `/blog/${featuredPost.slug}`,
|
|
9561
9454
|
className: "block mb-16 group"
|
|
9562
9455
|
},
|
|
9563
|
-
/* @__PURE__ */
|
|
9456
|
+
/* @__PURE__ */ React41.createElement("div", { className: "w-full h-96 md:h-[500px] mb-8 overflow-hidden" }, /* @__PURE__ */ React41.createElement(
|
|
9564
9457
|
PhotoWithFallback2,
|
|
9565
9458
|
{
|
|
9566
9459
|
item: featuredPost,
|
|
@@ -9568,19 +9461,19 @@ var BlogGallery2 = ({
|
|
|
9568
9461
|
className: "w-full h-full object-cover transition-transform duration-300 group-hover:scale-105"
|
|
9569
9462
|
}
|
|
9570
9463
|
)),
|
|
9571
|
-
/* @__PURE__ */
|
|
9572
|
-
), paginatedNonFeaturedPosts.length > 0 && /* @__PURE__ */
|
|
9464
|
+
/* @__PURE__ */ React41.createElement("div", { className: "max-w-3xl" }, /* @__PURE__ */ React41.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__ */ React41.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__ */ React41.createElement("p", { className: "font-display text-lg leading-relaxed text-tertiary" }, featuredPost.excerpt_markdown.replace(/[#*\[\]()]/g, "").trim()))
|
|
9465
|
+
), paginatedNonFeaturedPosts.length > 0 && /* @__PURE__ */ React41.createElement("div", { className: "grid grid-cols-1 gap-12 md:grid-cols-2 lg:grid-cols-3 mb-16" }, paginatedNonFeaturedPosts.map((post) => {
|
|
9573
9466
|
var _a;
|
|
9574
9467
|
const excerpt = post.excerpt_markdown || ((_a = post.content_markdown) == null ? void 0 : _a.replace(/[#*\[\]()]/g, "").trim().substring(0, 150)) || "";
|
|
9575
|
-
return /* @__PURE__ */
|
|
9468
|
+
return /* @__PURE__ */ React41.createElement("a", { key: post.id, href: `/blog/${post.slug}`, className: "flex flex-col group" }, /* @__PURE__ */ React41.createElement("div", { className: "w-full h-64 mb-6 overflow-hidden" }, /* @__PURE__ */ React41.createElement(
|
|
9576
9469
|
PhotoWithFallback2,
|
|
9577
9470
|
{
|
|
9578
9471
|
item: post,
|
|
9579
9472
|
fallbackId: post.id,
|
|
9580
9473
|
className: "w-full h-full object-cover transition-transform duration-300 group-hover:scale-105"
|
|
9581
9474
|
}
|
|
9582
|
-
)), /* @__PURE__ */
|
|
9583
|
-
})), totalPages > 1 && /* @__PURE__ */
|
|
9475
|
+
)), /* @__PURE__ */ React41.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__ */ React41.createElement("h3", { className: "font-display text-2xl font-normal text-fg-primary mb-4 group-hover:underline" }, post.title), excerpt && /* @__PURE__ */ React41.createElement("p", { className: "font-body text-base leading-relaxed text-tertiary mb-4 flex-grow line-clamp-3" }, excerpt));
|
|
9476
|
+
})), totalPages > 1 && /* @__PURE__ */ React41.createElement("div", { className: "flex justify-center" }, /* @__PURE__ */ React41.createElement(
|
|
9584
9477
|
PaginationPageDefault2,
|
|
9585
9478
|
{
|
|
9586
9479
|
rounded: true,
|
|
@@ -9588,7 +9481,7 @@ var BlogGallery2 = ({
|
|
|
9588
9481
|
total: totalPages,
|
|
9589
9482
|
onPageChange: setCurrentPage
|
|
9590
9483
|
}
|
|
9591
|
-
))) : /* @__PURE__ */
|
|
9484
|
+
))) : /* @__PURE__ */ React41.createElement("div", { className: "text-center py-12" }, /* @__PURE__ */ React41.createElement("p", { className: "font-body text-base text-tertiary" }, "No posts available"))));
|
|
9592
9485
|
};
|
|
9593
9486
|
registerThemeVariant("blog-gallery", "aman", BlogGallery2);
|
|
9594
9487
|
|
|
@@ -9619,7 +9512,7 @@ var BlogPostSection2 = ({
|
|
|
9619
9512
|
registerThemeVariant("blog-post", "aman", BlogPostSection2);
|
|
9620
9513
|
|
|
9621
9514
|
// src/design_system/sections/blog-section.aman.tsx
|
|
9622
|
-
import
|
|
9515
|
+
import React42 from "react";
|
|
9623
9516
|
var BlogSection2 = ({
|
|
9624
9517
|
blogPosts: postsData,
|
|
9625
9518
|
title = "",
|
|
@@ -9638,7 +9531,7 @@ var BlogSection2 = ({
|
|
|
9638
9531
|
return "Recent";
|
|
9639
9532
|
}
|
|
9640
9533
|
};
|
|
9641
|
-
return /* @__PURE__ */
|
|
9534
|
+
return /* @__PURE__ */ React42.createElement("section", null, /* @__PURE__ */ React42.createElement("div", { className: "mx-auto max-w-container px-4 md:px-8" }, /* @__PURE__ */ React42.createElement(
|
|
9642
9535
|
CarouselSectionWrapper,
|
|
9643
9536
|
{
|
|
9644
9537
|
title,
|
|
@@ -9648,14 +9541,14 @@ var BlogSection2 = ({
|
|
|
9648
9541
|
postsArray.map((post) => {
|
|
9649
9542
|
var _a;
|
|
9650
9543
|
const excerpt = ((_a = post.content_markdown) == null ? void 0 : _a.replace(/[#*\[\]()]/g, "").trim().substring(0, 150)) || "";
|
|
9651
|
-
return /* @__PURE__ */
|
|
9544
|
+
return /* @__PURE__ */ React42.createElement(Carousel.Item, { key: post.id, className: "pl-4 md:basis-1/2 lg:basis-1/3" }, /* @__PURE__ */ React42.createElement("a", { href: `/blog/${post.slug}`, className: "flex flex-col h-full group" }, /* @__PURE__ */ React42.createElement("div", { className: "w-full h-64 mb-6 overflow-hidden" }, /* @__PURE__ */ React42.createElement(
|
|
9652
9545
|
PhotoWithFallback2,
|
|
9653
9546
|
{
|
|
9654
9547
|
item: post,
|
|
9655
9548
|
fallbackId: post.id,
|
|
9656
9549
|
className: "w-full h-full object-cover transition-transform duration-300 group-hover:scale-105"
|
|
9657
9550
|
}
|
|
9658
|
-
)), /* @__PURE__ */
|
|
9551
|
+
)), /* @__PURE__ */ React42.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__ */ React42.createElement("h3", { className: "font-display text-2xl font-normal text-fg-primary mb-4 group-hover:underline line-clamp-1" }, post.title), excerpt && /* @__PURE__ */ React42.createElement("p", { className: "font-body text-base leading-relaxed text-tertiary mb-4 flex-grow line-clamp-3" }, excerpt)));
|
|
9659
9552
|
})
|
|
9660
9553
|
)));
|
|
9661
9554
|
};
|
|
@@ -17659,11 +17552,11 @@ var JobDetailHero2 = ({
|
|
|
17659
17552
|
registerThemeVariant("hero-job-detail", "aman", JobDetailHero2);
|
|
17660
17553
|
|
|
17661
17554
|
// src/design_system/sections/job-application-form.aman.tsx
|
|
17662
|
-
import
|
|
17555
|
+
import React43, { useRef as useRef13, useState as useState21 } from "react";
|
|
17663
17556
|
|
|
17664
17557
|
// src/design_system/sections/hero-home.barelux.tsx
|
|
17665
17558
|
import { Fragment as Fragment6, useState as useState22 } from "react";
|
|
17666
|
-
import
|
|
17559
|
+
import React44 from "react";
|
|
17667
17560
|
var HeroHome3 = ({
|
|
17668
17561
|
websitePhotos,
|
|
17669
17562
|
companyInformation,
|
|
@@ -17682,7 +17575,7 @@ var HeroHome3 = ({
|
|
|
17682
17575
|
url: ((_b = websitePhotos == null ? void 0 : websitePhotos.hero) == null ? void 0 : _b.url) || "",
|
|
17683
17576
|
alt: ((_c = websitePhotos == null ? void 0 : websitePhotos.hero) == null ? void 0 : _c.alt) || ""
|
|
17684
17577
|
};
|
|
17685
|
-
return /* @__PURE__ */
|
|
17578
|
+
return /* @__PURE__ */ React44.createElement(Fragment6, null, /* @__PURE__ */ React44.createElement("section", { className: "relative w-full h-[60vh] min-h-[500px] max-h-[550px]" }, /* @__PURE__ */ React44.createElement("div", { className: "absolute inset-0" }, /* @__PURE__ */ React44.createElement(
|
|
17686
17579
|
PhotoWithFallback2,
|
|
17687
17580
|
{
|
|
17688
17581
|
photoUrl: heroImage.url,
|
|
@@ -17690,7 +17583,7 @@ var HeroHome3 = ({
|
|
|
17690
17583
|
fallbackId: "hero-home-barelux",
|
|
17691
17584
|
className: "w-full h-full object-cover"
|
|
17692
17585
|
}
|
|
17693
|
-
)), /* @__PURE__ */
|
|
17586
|
+
)), /* @__PURE__ */ React44.createElement("div", { className: "absolute inset-0 bg-black/50" }), /* @__PURE__ */ React44.createElement("div", { className: "relative h-full flex items-center" }, /* @__PURE__ */ React44.createElement("div", { className: "mx-auto max-w-7xl px-4 md:px-8 w-full" }, /* @__PURE__ */ React44.createElement("div", { className: "max-w-2xl" }, tagline && /* @__PURE__ */ React44.createElement("p", { className: "font-body text-sm font-semibold uppercase tracking-widest text-white mb-5" }, tagline), /* @__PURE__ */ React44.createElement("h1", { className: "font-display text-display-xl font-normal leading-none text-white mb-4" }, headline), /* @__PURE__ */ React44.createElement("p", { className: "font-body text-base md:text-lg leading-normal text-white mb-6 max-w-xl" }, subhead), ctaText && /* @__PURE__ */ React44.createElement(
|
|
17694
17587
|
Button2,
|
|
17695
17588
|
{
|
|
17696
17589
|
href: effectiveCtaHref,
|
|
@@ -17700,7 +17593,7 @@ var HeroHome3 = ({
|
|
|
17700
17593
|
size: "md"
|
|
17701
17594
|
},
|
|
17702
17595
|
ctaText
|
|
17703
|
-
)))), videoUrl && /* @__PURE__ */
|
|
17596
|
+
)))), videoUrl && /* @__PURE__ */ React44.createElement("div", { className: "absolute inset-0 flex items-center justify-center" }, /* @__PURE__ */ React44.createElement(VideoPlayButton, { onClick: () => setShowVideo(true) }))), videoUrl && /* @__PURE__ */ React44.createElement(
|
|
17704
17597
|
VideoModal,
|
|
17705
17598
|
{
|
|
17706
17599
|
isOpen: showVideo,
|
|
@@ -17712,7 +17605,7 @@ var HeroHome3 = ({
|
|
|
17712
17605
|
registerThemeVariant("hero-home", "barelux", HeroHome3);
|
|
17713
17606
|
|
|
17714
17607
|
// src/design_system/sections/header-navigation.barelux.tsx
|
|
17715
|
-
import
|
|
17608
|
+
import React45, { useState as useState23, useRef as useRef14, useCallback as useCallback8 } from "react";
|
|
17716
17609
|
import Link8 from "next/link";
|
|
17717
17610
|
import Image12 from "next/image";
|
|
17718
17611
|
var MAX_DROPDOWN_ITEMS2 = 6;
|
|
@@ -17729,7 +17622,7 @@ function HeaderNavigation3({
|
|
|
17729
17622
|
const [activeDropdown, setActiveDropdown] = useState23(null);
|
|
17730
17623
|
const [isMobileMenuOpen, setIsMobileMenuOpen] = useState23(false);
|
|
17731
17624
|
const closeTimeoutRef = useRef14(null);
|
|
17732
|
-
|
|
17625
|
+
React45.useEffect(() => {
|
|
17733
17626
|
return () => {
|
|
17734
17627
|
if (closeTimeoutRef.current) {
|
|
17735
17628
|
clearTimeout(closeTimeoutRef.current);
|
|
@@ -17785,7 +17678,7 @@ function HeaderNavigation3({
|
|
|
17785
17678
|
viewAllLabel: ""
|
|
17786
17679
|
};
|
|
17787
17680
|
};
|
|
17788
|
-
return /* @__PURE__ */
|
|
17681
|
+
return /* @__PURE__ */ React45.createElement(React45.Fragment, null, /* @__PURE__ */ React45.createElement("header", { className: "hidden md:block sticky top-0 z-50 bg-primary border-b border-primary" }, /* @__PURE__ */ React45.createElement("div", { className: "mx-auto max-w-7xl px-4 md:px-8" }, /* @__PURE__ */ React45.createElement("div", { className: "flex items-center justify-between py-4" }, /* @__PURE__ */ React45.createElement(Link8, { href: ((_d = props == null ? void 0 : props.logo) == null ? void 0 : _d.href) || "/", className: "flex items-center flex-shrink-0" }, logoUrl ? /* @__PURE__ */ React45.createElement(
|
|
17789
17682
|
Image12,
|
|
17790
17683
|
{
|
|
17791
17684
|
src: logoUrl,
|
|
@@ -17794,7 +17687,7 @@ function HeaderNavigation3({
|
|
|
17794
17687
|
width: 120,
|
|
17795
17688
|
height: 40
|
|
17796
17689
|
}
|
|
17797
|
-
) : /* @__PURE__ */
|
|
17690
|
+
) : /* @__PURE__ */ React45.createElement("span", { className: "font-display text-xl font-normal text-fg-primary" }, companyName)), /* @__PURE__ */ React45.createElement("nav", { className: "flex items-center gap-8 flex-1 ml-12" }, navigation.map((item, i) => /* @__PURE__ */ React45.createElement(
|
|
17798
17691
|
"div",
|
|
17799
17692
|
{
|
|
17800
17693
|
key: i,
|
|
@@ -17802,16 +17695,16 @@ function HeaderNavigation3({
|
|
|
17802
17695
|
onMouseEnter: () => handleMouseEnter(item),
|
|
17803
17696
|
onMouseLeave: handleMouseLeave
|
|
17804
17697
|
},
|
|
17805
|
-
/* @__PURE__ */
|
|
17698
|
+
/* @__PURE__ */ React45.createElement(
|
|
17806
17699
|
Link8,
|
|
17807
17700
|
{
|
|
17808
17701
|
href: item.href,
|
|
17809
17702
|
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"
|
|
17810
17703
|
},
|
|
17811
17704
|
item.label,
|
|
17812
|
-
item.children && item.children.length > 0 && /* @__PURE__ */
|
|
17705
|
+
item.children && item.children.length > 0 && /* @__PURE__ */ React45.createElement("svg", { className: "w-4 h-4", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor" }, /* @__PURE__ */ React45.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M19 9l-7 7-7-7" }))
|
|
17813
17706
|
),
|
|
17814
|
-
item.children && item.children.length > 0 && activeDropdown === item.label && /* @__PURE__ */
|
|
17707
|
+
item.children && item.children.length > 0 && activeDropdown === item.label && /* @__PURE__ */ React45.createElement(
|
|
17815
17708
|
"div",
|
|
17816
17709
|
{
|
|
17817
17710
|
className: "absolute left-0 top-full mt-2 w-64 py-3 bg-white border border-secondary rounded-lg shadow-lg z-50",
|
|
@@ -17820,7 +17713,7 @@ function HeaderNavigation3({
|
|
|
17820
17713
|
},
|
|
17821
17714
|
(() => {
|
|
17822
17715
|
const { items, showViewAll, viewAllHref, viewAllLabel } = getDropdownItems(item);
|
|
17823
|
-
return /* @__PURE__ */
|
|
17716
|
+
return /* @__PURE__ */ React45.createElement(React45.Fragment, null, items.map((link, j) => /* @__PURE__ */ React45.createElement(
|
|
17824
17717
|
Link8,
|
|
17825
17718
|
{
|
|
17826
17719
|
key: j,
|
|
@@ -17828,7 +17721,7 @@ function HeaderNavigation3({
|
|
|
17828
17721
|
className: "block font-body text-md text-fg-primary hover:text-brand-accent hover:bg-secondary transition-colors px-4 py-2"
|
|
17829
17722
|
},
|
|
17830
17723
|
link.label
|
|
17831
|
-
)), showViewAll && /* @__PURE__ */
|
|
17724
|
+
)), showViewAll && /* @__PURE__ */ React45.createElement(
|
|
17832
17725
|
Link8,
|
|
17833
17726
|
{
|
|
17834
17727
|
href: viewAllHref,
|
|
@@ -17839,7 +17732,7 @@ function HeaderNavigation3({
|
|
|
17839
17732
|
));
|
|
17840
17733
|
})()
|
|
17841
17734
|
)
|
|
17842
|
-
))), /* @__PURE__ */
|
|
17735
|
+
))), /* @__PURE__ */ React45.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__ */ React45.createElement(
|
|
17843
17736
|
Button2,
|
|
17844
17737
|
{
|
|
17845
17738
|
href: ctaUrls.secondaryHref,
|
|
@@ -17849,7 +17742,7 @@ function HeaderNavigation3({
|
|
|
17849
17742
|
size: "sm"
|
|
17850
17743
|
},
|
|
17851
17744
|
props.cta_button.label
|
|
17852
|
-
), /* @__PURE__ */
|
|
17745
|
+
), /* @__PURE__ */ React45.createElement(
|
|
17853
17746
|
Button2,
|
|
17854
17747
|
{
|
|
17855
17748
|
href: ctaUrls.primaryHref,
|
|
@@ -17859,15 +17752,15 @@ function HeaderNavigation3({
|
|
|
17859
17752
|
size: "sm"
|
|
17860
17753
|
},
|
|
17861
17754
|
((_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__ */
|
|
17755
|
+
))))), /* @__PURE__ */ React45.createElement("header", { className: "md:hidden sticky top-0 z-50 bg-primary border-b border-secondary" }, /* @__PURE__ */ React45.createElement("div", { className: "flex items-center justify-between px-4 py-4" }, /* @__PURE__ */ React45.createElement(
|
|
17863
17756
|
"button",
|
|
17864
17757
|
{
|
|
17865
17758
|
onClick: () => setIsMobileMenuOpen(true),
|
|
17866
17759
|
className: "text-fg-primary",
|
|
17867
17760
|
"aria-label": "Open menu"
|
|
17868
17761
|
},
|
|
17869
|
-
/* @__PURE__ */
|
|
17870
|
-
), /* @__PURE__ */
|
|
17762
|
+
/* @__PURE__ */ React45.createElement("svg", { className: "w-6 h-6", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React45.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M4 6h16M4 12h16M4 18h16" }))
|
|
17763
|
+
), /* @__PURE__ */ React45.createElement(Link8, { href: ((_k = props == null ? void 0 : props.logo) == null ? void 0 : _k.href) || "/", className: "flex items-center" }, logoUrl ? /* @__PURE__ */ React45.createElement(
|
|
17871
17764
|
Image12,
|
|
17872
17765
|
{
|
|
17873
17766
|
src: logoUrl,
|
|
@@ -17876,15 +17769,15 @@ function HeaderNavigation3({
|
|
|
17876
17769
|
width: 120,
|
|
17877
17770
|
height: 32
|
|
17878
17771
|
}
|
|
17879
|
-
) : /* @__PURE__ */
|
|
17772
|
+
) : /* @__PURE__ */ React45.createElement("span", { className: "font-display text-lg font-normal text-fg-primary" }, companyName)), /* @__PURE__ */ React45.createElement("div", { className: "w-6" }))), isMobileMenuOpen && /* @__PURE__ */ React45.createElement("div", { className: "fixed inset-0 bg-white z-50 md:hidden" }, /* @__PURE__ */ React45.createElement("div", { className: "flex flex-col h-full" }, /* @__PURE__ */ React45.createElement("div", { className: "flex items-center justify-between px-4 py-4 border-b border-secondary" }, /* @__PURE__ */ React45.createElement(
|
|
17880
17773
|
"button",
|
|
17881
17774
|
{
|
|
17882
17775
|
onClick: () => setIsMobileMenuOpen(false),
|
|
17883
17776
|
className: "text-fg-primary",
|
|
17884
17777
|
"aria-label": "Close menu"
|
|
17885
17778
|
},
|
|
17886
|
-
/* @__PURE__ */
|
|
17887
|
-
), /* @__PURE__ */
|
|
17779
|
+
/* @__PURE__ */ React45.createElement("svg", { className: "w-6 h-6", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React45.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M6 18L18 6M6 6l12 12" }))
|
|
17780
|
+
), /* @__PURE__ */ React45.createElement("div", { className: "flex items-center" }, logoUrl ? /* @__PURE__ */ React45.createElement(
|
|
17888
17781
|
Image12,
|
|
17889
17782
|
{
|
|
17890
17783
|
src: logoUrl,
|
|
@@ -17893,9 +17786,9 @@ function HeaderNavigation3({
|
|
|
17893
17786
|
width: 120,
|
|
17894
17787
|
height: 32
|
|
17895
17788
|
}
|
|
17896
|
-
) : /* @__PURE__ */
|
|
17789
|
+
) : /* @__PURE__ */ React45.createElement("span", { className: "font-display text-lg font-normal text-fg-primary" }, companyName)), /* @__PURE__ */ React45.createElement("div", { className: "w-6" })), /* @__PURE__ */ React45.createElement("nav", { className: "flex-1 overflow-y-auto px-4 py-8" }, /* @__PURE__ */ React45.createElement("ul", { className: "space-y-4" }, navigation.map((item, i) => {
|
|
17897
17790
|
const { items } = getDropdownItems(item);
|
|
17898
|
-
return /* @__PURE__ */
|
|
17791
|
+
return /* @__PURE__ */ React45.createElement("li", { key: i }, /* @__PURE__ */ React45.createElement(
|
|
17899
17792
|
Link8,
|
|
17900
17793
|
{
|
|
17901
17794
|
href: item.href,
|
|
@@ -17903,7 +17796,7 @@ function HeaderNavigation3({
|
|
|
17903
17796
|
onClick: () => setIsMobileMenuOpen(false)
|
|
17904
17797
|
},
|
|
17905
17798
|
item.label
|
|
17906
|
-
), items.length > 0 && /* @__PURE__ */
|
|
17799
|
+
), items.length > 0 && /* @__PURE__ */ React45.createElement("ul", { className: "ml-4 mt-2 space-y-2" }, items.map((link, j) => /* @__PURE__ */ React45.createElement("li", { key: j }, /* @__PURE__ */ React45.createElement(
|
|
17907
17800
|
Link8,
|
|
17908
17801
|
{
|
|
17909
17802
|
href: link.href,
|
|
@@ -17912,7 +17805,7 @@ function HeaderNavigation3({
|
|
|
17912
17805
|
},
|
|
17913
17806
|
link.label
|
|
17914
17807
|
)))));
|
|
17915
|
-
}))), /* @__PURE__ */
|
|
17808
|
+
}))), /* @__PURE__ */ React45.createElement("div", { className: "border-t border-secondary px-4 py-6" }, /* @__PURE__ */ React45.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__ */ React45.createElement(
|
|
17916
17809
|
Button2,
|
|
17917
17810
|
{
|
|
17918
17811
|
href: ctaUrls.secondaryHref,
|
|
@@ -17922,7 +17815,7 @@ function HeaderNavigation3({
|
|
|
17922
17815
|
onClick: () => setIsMobileMenuOpen(false)
|
|
17923
17816
|
},
|
|
17924
17817
|
props.cta_button.secondary_label
|
|
17925
|
-
), /* @__PURE__ */
|
|
17818
|
+
), /* @__PURE__ */ React45.createElement(
|
|
17926
17819
|
Button2,
|
|
17927
17820
|
{
|
|
17928
17821
|
href: ctaUrls.primaryHref,
|
|
@@ -17932,7 +17825,7 @@ function HeaderNavigation3({
|
|
|
17932
17825
|
onClick: () => setIsMobileMenuOpen(false)
|
|
17933
17826
|
},
|
|
17934
17827
|
((_m = props == null ? void 0 : props.cta_button) == null ? void 0 : _m.label) || ""
|
|
17935
|
-
))))), /* @__PURE__ */
|
|
17828
|
+
))))), /* @__PURE__ */ React45.createElement("div", { className: "fixed bottom-0 left-0 right-0 z-40 md:hidden bg-fg-primary" }, /* @__PURE__ */ React45.createElement("div", { className: "flex gap-0" }, ((_n = props == null ? void 0 : props.cta_button) == null ? void 0 : _n.secondary_label) && ctaUrls.hasSecondary && /* @__PURE__ */ React45.createElement(
|
|
17936
17829
|
Button2,
|
|
17937
17830
|
{
|
|
17938
17831
|
href: ctaUrls.secondaryHref,
|
|
@@ -17942,7 +17835,7 @@ function HeaderNavigation3({
|
|
|
17942
17835
|
className: "flex-1 font-body text-sm uppercase tracking-wide py-4 rounded-none border-r border-white/20"
|
|
17943
17836
|
},
|
|
17944
17837
|
props.cta_button.label
|
|
17945
|
-
), /* @__PURE__ */
|
|
17838
|
+
), /* @__PURE__ */ React45.createElement(
|
|
17946
17839
|
Button2,
|
|
17947
17840
|
{
|
|
17948
17841
|
href: ctaUrls.primaryHref,
|
|
@@ -17957,23 +17850,23 @@ function HeaderNavigation3({
|
|
|
17957
17850
|
registerThemeVariant("header-navigation", "barelux", HeaderNavigation3);
|
|
17958
17851
|
|
|
17959
17852
|
// src/design_system/sections/services-home.barelux.tsx
|
|
17960
|
-
import
|
|
17853
|
+
import React46 from "react";
|
|
17961
17854
|
var ServicesHome3 = ({
|
|
17962
17855
|
services = [],
|
|
17963
17856
|
title = "",
|
|
17964
17857
|
subtitle = ""
|
|
17965
17858
|
}) => {
|
|
17966
17859
|
const displayServices = services;
|
|
17967
|
-
return /* @__PURE__ */
|
|
17860
|
+
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" }, /* @__PURE__ */ React46.createElement("h2", { className: "font-display text-display-md font-normal text-fg-primary mb-4" }, title), /* @__PURE__ */ React46.createElement("p", { className: "font-body text-base text-secondary leading-normal" }, subtitle)), /* @__PURE__ */ React46.createElement("div", { className: "flex flex-wrap justify-center gap-6" }, displayServices.map((service) => {
|
|
17968
17861
|
var _a, _b, _c, _d, _e, _f, _g, _h, _i;
|
|
17969
|
-
return /* @__PURE__ */
|
|
17862
|
+
return /* @__PURE__ */ React46.createElement(
|
|
17970
17863
|
"a",
|
|
17971
17864
|
{
|
|
17972
17865
|
key: service.id,
|
|
17973
17866
|
href: `/services/${service.slug}`,
|
|
17974
17867
|
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"
|
|
17975
17868
|
},
|
|
17976
|
-
/* @__PURE__ */
|
|
17869
|
+
/* @__PURE__ */ React46.createElement("div", { className: "relative w-full h-56 overflow-hidden flex-shrink-0" }, /* @__PURE__ */ React46.createElement(
|
|
17977
17870
|
PhotoWithFallback2,
|
|
17978
17871
|
{
|
|
17979
17872
|
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) || "",
|
|
@@ -17982,7 +17875,7 @@ var ServicesHome3 = ({
|
|
|
17982
17875
|
className: "w-full h-full object-cover transition-transform duration-300 group-hover:scale-105"
|
|
17983
17876
|
}
|
|
17984
17877
|
)),
|
|
17985
|
-
/* @__PURE__ */
|
|
17878
|
+
/* @__PURE__ */ React46.createElement("div", { className: "p-6" }, /* @__PURE__ */ React46.createElement("h3", { className: "font-body text-base font-semibold uppercase tracking-wide text-fg-primary mb-3 leading-tight" }, service.name), service.summary && /* @__PURE__ */ React46.createElement("p", { className: "font-body text-sm text-tertiary leading-relaxed" }, service.summary))
|
|
17986
17879
|
);
|
|
17987
17880
|
}))));
|
|
17988
17881
|
};
|
|
@@ -18032,7 +17925,7 @@ var AboutHome3 = ({
|
|
|
18032
17925
|
registerThemeVariant("about-home", "barelux", AboutHome3);
|
|
18033
17926
|
|
|
18034
17927
|
// src/design_system/sections/testimonials-home.barelux.tsx
|
|
18035
|
-
import
|
|
17928
|
+
import React47 from "react";
|
|
18036
17929
|
import { ChevronLeft as ChevronLeft7, ChevronRight as ChevronRight2 } from "@untitledui/icons";
|
|
18037
17930
|
var TestimonialsHome3 = ({
|
|
18038
17931
|
testimonials: testimonialsData,
|
|
@@ -18043,7 +17936,7 @@ var TestimonialsHome3 = ({
|
|
|
18043
17936
|
emptyMessage = "No testimonials available"
|
|
18044
17937
|
}) => {
|
|
18045
17938
|
const testimonials = Array.isArray(testimonialsData) ? testimonialsData : [];
|
|
18046
|
-
return /* @__PURE__ */
|
|
17939
|
+
return /* @__PURE__ */ React47.createElement("section", { className: "py-16 md:py-20 lg:py-24 bg-secondary" }, /* @__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)), testimonials.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(ChevronLeft7, { 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(ChevronRight2, { className: "w-6 h-6 text-fg-primary" })))), /* @__PURE__ */ React47.createElement(Carousel.Content, { className: "-ml-4" }, testimonials.map((testimonial, i) => {
|
|
18047
17940
|
var _a;
|
|
18048
17941
|
const quote = ((_a = testimonial.content_markdown) == null ? void 0 : _a.replace(/[#*\[\]()]/g, "").trim()) || "";
|
|
18049
17942
|
const reviewerName = testimonial.reviewer_name || "";
|
|
@@ -18051,7 +17944,7 @@ var TestimonialsHome3 = ({
|
|
|
18051
17944
|
const avatarUrl = getAvatarUrl(testimonial.photo_attachments, testimonial.id, reviewerName);
|
|
18052
17945
|
const rating = testimonial.rating || 5;
|
|
18053
17946
|
const isVerified = true;
|
|
18054
|
-
return /* @__PURE__ */
|
|
17947
|
+
return /* @__PURE__ */ React47.createElement(Carousel.Item, { key: testimonial.id || i, className: "pl-4 md:basis-1/2 lg:basis-1/3" }, /* @__PURE__ */ React47.createElement("div", { className: "bg-white rounded-2xl p-8 flex flex-col shadow-sm", style: { minHeight: "400px" } }, /* @__PURE__ */ React47.createElement("div", { className: "flex gap-1 mb-6" }, Array.from({ length: 5 }).map((_, starIdx) => /* @__PURE__ */ React47.createElement(
|
|
18055
17948
|
"svg",
|
|
18056
17949
|
{
|
|
18057
17950
|
key: starIdx,
|
|
@@ -18063,8 +17956,8 @@ var TestimonialsHome3 = ({
|
|
|
18063
17956
|
strokeWidth: "2",
|
|
18064
17957
|
viewBox: "0 0 24 24"
|
|
18065
17958
|
},
|
|
18066
|
-
/* @__PURE__ */
|
|
18067
|
-
))), /* @__PURE__ */
|
|
17959
|
+
/* @__PURE__ */ React47.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" })
|
|
17960
|
+
))), /* @__PURE__ */ React47.createElement("p", { className: "font-body text-base leading-relaxed text-tertiary mb-6 flex-grow" }, '"', quote, '"'), /* @__PURE__ */ React47.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ React47.createElement("div", { className: "w-12 h-12 rounded-full overflow-hidden flex-shrink-0" }, /* @__PURE__ */ React47.createElement(
|
|
18068
17961
|
PhotoWithFallback2,
|
|
18069
17962
|
{
|
|
18070
17963
|
photoUrl: avatarUrl,
|
|
@@ -18072,8 +17965,8 @@ var TestimonialsHome3 = ({
|
|
|
18072
17965
|
fallbackId: testimonial.id || i,
|
|
18073
17966
|
className: "w-full h-full object-cover"
|
|
18074
17967
|
}
|
|
18075
|
-
)), /* @__PURE__ */
|
|
18076
|
-
}))) : /* @__PURE__ */
|
|
17968
|
+
)), /* @__PURE__ */ React47.createElement("div", { className: "flex-1" }, /* @__PURE__ */ React47.createElement("div", { className: "flex items-center gap-1.5" }, /* @__PURE__ */ React47.createElement("p", { className: "font-body text-sm font-medium text-fg-primary" }, reviewerName), isVerified && /* @__PURE__ */ React47.createElement("svg", { className: "w-4 h-4 text-fg-primary", viewBox: "0 0 20 20", fill: "currentColor" }, /* @__PURE__ */ React47.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__ */ React47.createElement("p", { className: "font-body text-xs", style: { color: "var(--color-text-brand-secondary)" } }, username)))));
|
|
17969
|
+
}))) : /* @__PURE__ */ React47.createElement("div", { className: "text-center py-12" }, /* @__PURE__ */ React47.createElement("p", { className: "font-body text-base text-tertiary" }, emptyMessage)), testimonials.length > 0 && viewAllText && /* @__PURE__ */ React47.createElement("div", { className: "mt-12 text-center" }, /* @__PURE__ */ React47.createElement(
|
|
18077
17970
|
Button2,
|
|
18078
17971
|
{
|
|
18079
17972
|
href: viewAllHref,
|
|
@@ -18086,7 +17979,7 @@ var TestimonialsHome3 = ({
|
|
|
18086
17979
|
registerThemeVariant("testimonials-home", "barelux", TestimonialsHome3);
|
|
18087
17980
|
|
|
18088
17981
|
// src/design_system/sections/blog-section.barelux.tsx
|
|
18089
|
-
import
|
|
17982
|
+
import React48 from "react";
|
|
18090
17983
|
import { ChevronLeft as ChevronLeft8, ChevronRight as ChevronRight3 } from "@untitledui/icons";
|
|
18091
17984
|
var BlogSection3 = ({
|
|
18092
17985
|
blogPosts: postsData,
|
|
@@ -18111,18 +18004,18 @@ var BlogSection3 = ({
|
|
|
18111
18004
|
return recentLabel;
|
|
18112
18005
|
}
|
|
18113
18006
|
};
|
|
18114
|
-
return /* @__PURE__ */
|
|
18007
|
+
return /* @__PURE__ */ React48.createElement("section", { className: "py-16 md:py-20 lg:py-24 bg-primary" }, /* @__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("h2", { 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)), postsArray.length > 0 ? /* @__PURE__ */ React48.createElement(Carousel.Root, { opts: { align: "start", loop: true } }, /* @__PURE__ */ React48.createElement("div", { className: "flex items-center justify-end mb-8" }, /* @__PURE__ */ React48.createElement("div", { className: "flex gap-2" }, /* @__PURE__ */ React48.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__ */ React48.createElement(ChevronLeft8, { className: "w-6 h-6 text-fg-primary" })), /* @__PURE__ */ React48.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__ */ React48.createElement(ChevronRight3, { className: "w-6 h-6 text-fg-primary" })))), /* @__PURE__ */ React48.createElement(Carousel.Content, { className: "-ml-4" }, postsArray.map((post) => {
|
|
18115
18008
|
var _a;
|
|
18116
18009
|
const excerpt = ((_a = post.content_markdown) == null ? void 0 : _a.replace(/[#*\[\]()]/g, "").trim().substring(0, 150)) || "";
|
|
18117
|
-
return /* @__PURE__ */
|
|
18010
|
+
return /* @__PURE__ */ React48.createElement(Carousel.Item, { key: post.id, className: "pl-4 md:basis-1/2 lg:basis-1/3" }, /* @__PURE__ */ React48.createElement("a", { 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(
|
|
18118
18011
|
PhotoWithFallback2,
|
|
18119
18012
|
{
|
|
18120
18013
|
item: post,
|
|
18121
18014
|
fallbackId: post.id,
|
|
18122
18015
|
className: "w-full h-full object-cover transition-transform duration-300 group-hover:scale-105"
|
|
18123
18016
|
}
|
|
18124
|
-
)), /* @__PURE__ */
|
|
18125
|
-
}))) : /* @__PURE__ */
|
|
18017
|
+
)), /* @__PURE__ */ React48.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__ */ 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 line-clamp-3" }, excerpt)));
|
|
18018
|
+
}))) : /* @__PURE__ */ React48.createElement("div", { className: "text-center py-12" }, /* @__PURE__ */ React48.createElement("p", { className: "font-body text-base text-tertiary" }, emptyMessage)), postsArray.length > 0 && viewAllText && /* @__PURE__ */ React48.createElement("div", { className: "mt-12 text-center" }, /* @__PURE__ */ React48.createElement(
|
|
18126
18019
|
Button2,
|
|
18127
18020
|
{
|
|
18128
18021
|
href: viewAllHref,
|
|
@@ -18135,7 +18028,7 @@ var BlogSection3 = ({
|
|
|
18135
18028
|
registerThemeVariant("blog-section", "barelux", BlogSection3);
|
|
18136
18029
|
|
|
18137
18030
|
// src/design_system/sections/blog-gallery.barelux.tsx
|
|
18138
|
-
import
|
|
18031
|
+
import React49, { useState as useState24 } from "react";
|
|
18139
18032
|
var BlogGallery3 = ({
|
|
18140
18033
|
blogPosts: postsData,
|
|
18141
18034
|
postsPerPage = 12,
|
|
@@ -18153,13 +18046,13 @@ var BlogGallery3 = ({
|
|
|
18153
18046
|
const startIndex = (currentPage - 1) * postsPerPage;
|
|
18154
18047
|
const endIndex = startIndex + postsPerPage;
|
|
18155
18048
|
const paginatedNonFeaturedPosts = nonFeaturedPosts.slice(startIndex, endIndex);
|
|
18156
|
-
return /* @__PURE__ */
|
|
18049
|
+
return /* @__PURE__ */ React49.createElement("section", { className: `py-16 md:py-20 lg:py-24 bg-primary ${className}` }, /* @__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 md:mb-16" }, /* @__PURE__ */ React49.createElement("h1", { className: "font-display text-4xl font-medium text-fg-primary md:text-5xl mb-4" }, title), /* @__PURE__ */ React49.createElement("p", { className: "font-body text-lg text-secondary leading-normal" }, subtitle)), posts.length > 0 ? /* @__PURE__ */ React49.createElement(React49.Fragment, null, featuredPost && /* @__PURE__ */ React49.createElement(
|
|
18157
18050
|
"a",
|
|
18158
18051
|
{
|
|
18159
18052
|
href: `/blog/${featuredPost.slug}`,
|
|
18160
18053
|
className: "block mb-16 group"
|
|
18161
18054
|
},
|
|
18162
|
-
/* @__PURE__ */
|
|
18055
|
+
/* @__PURE__ */ React49.createElement("div", { className: "w-full h-96 md:h-[500px] mb-8 overflow-hidden rounded-2xl" }, /* @__PURE__ */ React49.createElement(
|
|
18163
18056
|
PhotoWithFallback2,
|
|
18164
18057
|
{
|
|
18165
18058
|
item: featuredPost,
|
|
@@ -18167,19 +18060,19 @@ var BlogGallery3 = ({
|
|
|
18167
18060
|
className: "w-full h-full object-cover transition-transform duration-300 group-hover:scale-105"
|
|
18168
18061
|
}
|
|
18169
18062
|
)),
|
|
18170
|
-
/* @__PURE__ */
|
|
18171
|
-
), paginatedNonFeaturedPosts.length > 0 && /* @__PURE__ */
|
|
18063
|
+
/* @__PURE__ */ React49.createElement("div", { className: "max-w-3xl" }, /* @__PURE__ */ React49.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__ */ React49.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__ */ React49.createElement("p", { className: "font-body text-lg leading-relaxed text-tertiary" }, featuredPost.excerpt_markdown.replace(/[#*\[\]()]/g, "").trim()))
|
|
18064
|
+
), paginatedNonFeaturedPosts.length > 0 && /* @__PURE__ */ React49.createElement("div", { className: "grid grid-cols-1 gap-12 md:grid-cols-2 lg:grid-cols-3 mb-16" }, paginatedNonFeaturedPosts.map((post) => {
|
|
18172
18065
|
var _a;
|
|
18173
18066
|
const excerpt = post.excerpt_markdown || ((_a = post.content_markdown) == null ? void 0 : _a.replace(/[#*\[\]()]/g, "").trim().substring(0, 150)) || "";
|
|
18174
|
-
return /* @__PURE__ */
|
|
18067
|
+
return /* @__PURE__ */ React49.createElement("a", { key: post.id, href: `/blog/${post.slug}`, className: "flex flex-col group" }, /* @__PURE__ */ React49.createElement("div", { className: "w-full h-64 mb-6 overflow-hidden rounded-2xl" }, /* @__PURE__ */ React49.createElement(
|
|
18175
18068
|
PhotoWithFallback2,
|
|
18176
18069
|
{
|
|
18177
18070
|
item: post,
|
|
18178
18071
|
fallbackId: post.id,
|
|
18179
18072
|
className: "w-full h-full object-cover transition-transform duration-300 group-hover:scale-105"
|
|
18180
18073
|
}
|
|
18181
|
-
)), /* @__PURE__ */
|
|
18182
|
-
})), totalPages > 1 && /* @__PURE__ */
|
|
18074
|
+
)), /* @__PURE__ */ React49.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__ */ React49.createElement("h3", { className: "font-display text-2xl font-normal text-fg-primary mb-4 group-hover:underline line-clamp-2" }, post.title), excerpt && /* @__PURE__ */ React49.createElement("p", { className: "font-body text-base leading-relaxed text-tertiary mb-4 flex-grow line-clamp-3" }, excerpt));
|
|
18075
|
+
})), totalPages > 1 && /* @__PURE__ */ React49.createElement("div", { className: "flex justify-center" }, /* @__PURE__ */ React49.createElement(
|
|
18183
18076
|
PaginationPageDefault2,
|
|
18184
18077
|
{
|
|
18185
18078
|
rounded: true,
|
|
@@ -18187,7 +18080,7 @@ var BlogGallery3 = ({
|
|
|
18187
18080
|
total: totalPages,
|
|
18188
18081
|
onPageChange: setCurrentPage
|
|
18189
18082
|
}
|
|
18190
|
-
))) : /* @__PURE__ */
|
|
18083
|
+
))) : /* @__PURE__ */ React49.createElement("div", { className: "text-center py-12" }, /* @__PURE__ */ React49.createElement("p", { className: "font-body text-base text-tertiary" }, emptyMessage))));
|
|
18191
18084
|
};
|
|
18192
18085
|
registerThemeVariant("blog-gallery", "barelux", BlogGallery3);
|
|
18193
18086
|
|
|
@@ -18282,10 +18175,10 @@ var SocialMediaGrid3 = ({
|
|
|
18282
18175
|
registerThemeVariant("social-media-grid", "barelux", SocialMediaGrid3);
|
|
18283
18176
|
|
|
18284
18177
|
// src/design_system/sections/contact-section.barelux.tsx
|
|
18285
|
-
import
|
|
18178
|
+
import React51 from "react";
|
|
18286
18179
|
|
|
18287
18180
|
// src/design_system/sections/contact-section-form.barelux.tsx
|
|
18288
|
-
import
|
|
18181
|
+
import React50, { useRef as useRef15, useState as useState25 } from "react";
|
|
18289
18182
|
var ContactSectionForm3 = ({
|
|
18290
18183
|
formDefinition,
|
|
18291
18184
|
submitButtonText = "Send message",
|
|
@@ -18339,14 +18232,14 @@ var ContactSectionForm3 = ({
|
|
|
18339
18232
|
setIsSubmitting(false);
|
|
18340
18233
|
};
|
|
18341
18234
|
if (!hasFields) return null;
|
|
18342
|
-
return /* @__PURE__ */
|
|
18235
|
+
return /* @__PURE__ */ React50.createElement(Form2, { ref: formRef, onSubmit: handleSubmit, className: "flex flex-col gap-6" }, /* @__PURE__ */ React50.createElement(
|
|
18343
18236
|
DynamicFormFields,
|
|
18344
18237
|
{
|
|
18345
18238
|
form: resolvedFormDefinition,
|
|
18346
18239
|
privacyPolicyUrl,
|
|
18347
18240
|
termsOfServiceUrl
|
|
18348
18241
|
}
|
|
18349
|
-
), /* @__PURE__ */
|
|
18242
|
+
), /* @__PURE__ */ React50.createElement(
|
|
18350
18243
|
Button2,
|
|
18351
18244
|
{
|
|
18352
18245
|
type: "submit",
|
|
@@ -18357,7 +18250,7 @@ var ContactSectionForm3 = ({
|
|
|
18357
18250
|
isLoading: isSubmitting
|
|
18358
18251
|
},
|
|
18359
18252
|
submitStatus === "success" ? successMessage.split("!")[0] + "!" : isSubmitting ? "Sending..." : submitButtonText
|
|
18360
|
-
), submitStatus === "success" && /* @__PURE__ */
|
|
18253
|
+
), submitStatus === "success" && /* @__PURE__ */ React50.createElement("div", { className: "font-body text-sm text-center", style: { color: "var(--color-text-brand-accent)" } }, thankYouMessage != null ? thankYouMessage : statusMessage), submitStatus === "error" && /* @__PURE__ */ React50.createElement("div", { className: "rounded-lg bg-error-50 p-4 text-error-700 font-body text-sm text-center" }, statusMessage));
|
|
18361
18254
|
};
|
|
18362
18255
|
|
|
18363
18256
|
// src/design_system/sections/contact-section.barelux.tsx
|
|
@@ -18381,14 +18274,14 @@ var ContactSection3 = ({
|
|
|
18381
18274
|
const contactImageUrl = contactPhoto == null ? void 0 : contactPhoto.url;
|
|
18382
18275
|
const finalContactImage = contactImageUrl && contactImageUrl.trim() !== "" ? contactImageUrl : void 0;
|
|
18383
18276
|
const finalContactImageAlt = (contactPhoto == null ? void 0 : contactPhoto.alt) || "Contact image";
|
|
18384
|
-
return /* @__PURE__ */
|
|
18277
|
+
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: "grid grid-cols-1 lg:grid-cols-2 gap-12 lg:gap-16" }, /* @__PURE__ */ React51.createElement("div", null, /* @__PURE__ */ React51.createElement("h2", { className: "font-display text-4xl font-medium text-fg-primary md:text-5xl mb-6" }, title), /* @__PURE__ */ React51.createElement("p", { className: "font-body text-lg text-secondary leading-relaxed mb-8" }, subtitle), /* @__PURE__ */ React51.createElement(
|
|
18385
18278
|
ContactSectionForm3,
|
|
18386
18279
|
{
|
|
18387
18280
|
formDefinition,
|
|
18388
18281
|
privacyPolicyUrl,
|
|
18389
18282
|
termsOfServiceUrl
|
|
18390
18283
|
}
|
|
18391
|
-
)), finalContactImage && /* @__PURE__ */
|
|
18284
|
+
)), finalContactImage && /* @__PURE__ */ React51.createElement("div", { className: "max-lg:hidden relative h-full min-h-0 overflow-hidden rounded-lg" }, /* @__PURE__ */ React51.createElement(
|
|
18392
18285
|
PhotoWithFallback2,
|
|
18393
18286
|
{
|
|
18394
18287
|
photoUrl: finalContactImage,
|
|
@@ -18453,7 +18346,7 @@ registerThemeVariant("footer-home", "barelux", FooterHome3);
|
|
|
18453
18346
|
|
|
18454
18347
|
// src/design_system/sections/hero-home.balance.tsx
|
|
18455
18348
|
import { Fragment as Fragment7, useState as useState26 } from "react";
|
|
18456
|
-
import
|
|
18349
|
+
import React52 from "react";
|
|
18457
18350
|
var HeroHome4 = ({
|
|
18458
18351
|
websitePhotos,
|
|
18459
18352
|
companyInformation,
|
|
@@ -18471,7 +18364,7 @@ var HeroHome4 = ({
|
|
|
18471
18364
|
url: ((_b = websitePhotos == null ? void 0 : websitePhotos.hero) == null ? void 0 : _b.url) || "",
|
|
18472
18365
|
alt: ((_c = websitePhotos == null ? void 0 : websitePhotos.hero) == null ? void 0 : _c.alt) || "Hero image"
|
|
18473
18366
|
};
|
|
18474
|
-
return /* @__PURE__ */
|
|
18367
|
+
return /* @__PURE__ */ React52.createElement(Fragment7, null, /* @__PURE__ */ React52.createElement("section", { className: "bg-primary py-20 md:py-28" }, /* @__PURE__ */ React52.createElement("div", { className: "mx-auto max-w-4xl px-4 text-center md:px-8" }, /* @__PURE__ */ React52.createElement("h1", { className: "font-display text-5xl font-normal leading-tight text-fg-primary md:text-6xl lg:text-7xl" }, headline), /* @__PURE__ */ React52.createElement("p", { className: "mt-6 font-body text-lg leading-relaxed text-secondary md:text-xl max-w-3xl mx-auto" }, subhead), ctaText && /* @__PURE__ */ React52.createElement("div", { className: "mt-10" }, /* @__PURE__ */ React52.createElement(
|
|
18475
18368
|
Button2,
|
|
18476
18369
|
{
|
|
18477
18370
|
as: "a",
|
|
@@ -18483,7 +18376,7 @@ var HeroHome4 = ({
|
|
|
18483
18376
|
className: "font-body font-medium"
|
|
18484
18377
|
},
|
|
18485
18378
|
ctaText
|
|
18486
|
-
)))), /* @__PURE__ */
|
|
18379
|
+
)))), /* @__PURE__ */ React52.createElement("section", { className: "bg-primary" }, /* @__PURE__ */ React52.createElement("div", { className: "mx-auto max-w-container px-4 md:px-8 pb-16 md:pb-24" }, /* @__PURE__ */ React52.createElement("div", { className: "relative w-full h-[450px] md:h-[550px] lg:h-[650px] overflow-hidden" }, /* @__PURE__ */ React52.createElement(
|
|
18487
18380
|
PhotoWithFallback2,
|
|
18488
18381
|
{
|
|
18489
18382
|
photoUrl: heroImage.url,
|
|
@@ -18491,7 +18384,7 @@ var HeroHome4 = ({
|
|
|
18491
18384
|
fallbackId: "hero-home-balance",
|
|
18492
18385
|
className: "w-full h-full object-cover"
|
|
18493
18386
|
}
|
|
18494
|
-
), videoUrl && /* @__PURE__ */
|
|
18387
|
+
), videoUrl && /* @__PURE__ */ React52.createElement("div", { className: "absolute inset-0 flex items-center justify-center" }, /* @__PURE__ */ React52.createElement(VideoPlayButton, { onClick: () => setShowVideo(true) }))))), videoUrl && /* @__PURE__ */ React52.createElement(
|
|
18495
18388
|
VideoModal,
|
|
18496
18389
|
{
|
|
18497
18390
|
isOpen: showVideo,
|
|
@@ -18503,7 +18396,7 @@ var HeroHome4 = ({
|
|
|
18503
18396
|
registerThemeVariant("hero-home", "balance", HeroHome4);
|
|
18504
18397
|
|
|
18505
18398
|
// src/design_system/sections/header-navigation.balance.tsx
|
|
18506
|
-
import
|
|
18399
|
+
import React53, { useState as useState27, useRef as useRef16, useCallback as useCallback9 } from "react";
|
|
18507
18400
|
import Link10 from "next/link";
|
|
18508
18401
|
import Image13 from "next/image";
|
|
18509
18402
|
function HeaderNavigation4({
|
|
@@ -18519,7 +18412,7 @@ function HeaderNavigation4({
|
|
|
18519
18412
|
const [activeDropdown, setActiveDropdown] = useState27(null);
|
|
18520
18413
|
const [isMobileMenuOpen, setIsMobileMenuOpen] = useState27(false);
|
|
18521
18414
|
const closeTimeoutRef = useRef16(null);
|
|
18522
|
-
|
|
18415
|
+
React53.useEffect(() => {
|
|
18523
18416
|
return () => {
|
|
18524
18417
|
if (closeTimeoutRef.current) {
|
|
18525
18418
|
clearTimeout(closeTimeoutRef.current);
|
|
@@ -18557,7 +18450,7 @@ function HeaderNavigation4({
|
|
|
18557
18450
|
const handleDropdownMouseLeave = useCallback9(() => {
|
|
18558
18451
|
handleMouseLeave();
|
|
18559
18452
|
}, [handleMouseLeave]);
|
|
18560
|
-
return /* @__PURE__ */
|
|
18453
|
+
return /* @__PURE__ */ React53.createElement(React53.Fragment, null, /* @__PURE__ */ React53.createElement("header", { className: "hidden md:block sticky top-0 z-50 bg-primary", style: { borderBottom: "3px solid rgb(217, 191, 168)" } }, /* @__PURE__ */ React53.createElement("div", { className: "mx-auto max-w-container px-4 md:px-8" }, /* @__PURE__ */ React53.createElement("div", { className: "relative flex items-center justify-between py-5" }, /* @__PURE__ */ React53.createElement(Link10, { href: ((_d = props == null ? void 0 : props.logo) == null ? void 0 : _d.href) || "/", className: "flex items-center z-10" }, logoUrl ? /* @__PURE__ */ React53.createElement(
|
|
18561
18454
|
Image13,
|
|
18562
18455
|
{
|
|
18563
18456
|
src: logoUrl,
|
|
@@ -18566,7 +18459,7 @@ function HeaderNavigation4({
|
|
|
18566
18459
|
width: 180,
|
|
18567
18460
|
height: 48
|
|
18568
18461
|
}
|
|
18569
|
-
) : /* @__PURE__ */
|
|
18462
|
+
) : /* @__PURE__ */ React53.createElement("div", { className: "flex flex-col" }, /* @__PURE__ */ React53.createElement("span", { className: "font-display text-2xl font-normal", style: { color: "rgb(148, 102, 76)" } }, companyName), /* @__PURE__ */ React53.createElement("span", { className: "font-body text-xs tracking-widest uppercase", style: { color: "rgb(148, 102, 76)", opacity: 0.7 } }, "Concierge Cosmetic Injections"))), /* @__PURE__ */ React53.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__ */ React53.createElement(
|
|
18570
18463
|
"div",
|
|
18571
18464
|
{
|
|
18572
18465
|
key: item.label,
|
|
@@ -18574,7 +18467,7 @@ function HeaderNavigation4({
|
|
|
18574
18467
|
onMouseEnter: () => handleMouseEnter(item),
|
|
18575
18468
|
onMouseLeave: handleMouseLeave
|
|
18576
18469
|
},
|
|
18577
|
-
item.href ? /* @__PURE__ */
|
|
18470
|
+
item.href ? /* @__PURE__ */ React53.createElement(
|
|
18578
18471
|
Link10,
|
|
18579
18472
|
{
|
|
18580
18473
|
href: item.href,
|
|
@@ -18582,15 +18475,15 @@ function HeaderNavigation4({
|
|
|
18582
18475
|
style: { color: "rgb(170, 143, 123)" }
|
|
18583
18476
|
},
|
|
18584
18477
|
item.label
|
|
18585
|
-
) : /* @__PURE__ */
|
|
18586
|
-
item.children && item.children.length > 0 && activeDropdown === item.label && /* @__PURE__ */
|
|
18478
|
+
) : /* @__PURE__ */ React53.createElement("span", { className: "font-display text-xl font-semibold px-5 py-2 cursor-pointer", style: { color: "rgb(170, 143, 123)" } }, item.label),
|
|
18479
|
+
item.children && item.children.length > 0 && activeDropdown === item.label && /* @__PURE__ */ React53.createElement(
|
|
18587
18480
|
"div",
|
|
18588
18481
|
{
|
|
18589
18482
|
className: "absolute left-0 top-full pt-2",
|
|
18590
18483
|
onMouseEnter: handleDropdownMouseEnter,
|
|
18591
18484
|
onMouseLeave: handleDropdownMouseLeave
|
|
18592
18485
|
},
|
|
18593
|
-
/* @__PURE__ */
|
|
18486
|
+
/* @__PURE__ */ React53.createElement("div", { className: "balance-dropdown-panel bg-primary border border-secondary shadow-md min-w-48 py-2" }, item.children.map((child) => /* @__PURE__ */ React53.createElement(
|
|
18594
18487
|
Link10,
|
|
18595
18488
|
{
|
|
18596
18489
|
key: child.href,
|
|
@@ -18601,7 +18494,7 @@ function HeaderNavigation4({
|
|
|
18601
18494
|
child.label
|
|
18602
18495
|
)))
|
|
18603
18496
|
)
|
|
18604
|
-
))), /* @__PURE__ */
|
|
18497
|
+
))), /* @__PURE__ */ React53.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__ */ React53.createElement(
|
|
18605
18498
|
Button2,
|
|
18606
18499
|
{
|
|
18607
18500
|
href: ctaUrls.secondaryHref,
|
|
@@ -18611,7 +18504,7 @@ function HeaderNavigation4({
|
|
|
18611
18504
|
size: "sm"
|
|
18612
18505
|
},
|
|
18613
18506
|
props.cta_button.label
|
|
18614
|
-
), /* @__PURE__ */
|
|
18507
|
+
), /* @__PURE__ */ React53.createElement(
|
|
18615
18508
|
Button2,
|
|
18616
18509
|
{
|
|
18617
18510
|
href: ctaUrls.primaryHref,
|
|
@@ -18621,15 +18514,15 @@ function HeaderNavigation4({
|
|
|
18621
18514
|
size: "sm"
|
|
18622
18515
|
},
|
|
18623
18516
|
((_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__ */
|
|
18517
|
+
))))), /* @__PURE__ */ React53.createElement("header", { className: "md:hidden sticky top-0 z-50 bg-primary", style: { borderBottom: "3px solid rgb(217, 191, 168)" } }, /* @__PURE__ */ React53.createElement("div", { className: "flex items-center justify-between px-4 py-4" }, /* @__PURE__ */ React53.createElement(
|
|
18625
18518
|
"button",
|
|
18626
18519
|
{
|
|
18627
18520
|
onClick: () => setIsMobileMenuOpen(true),
|
|
18628
18521
|
className: "text-fg-primary",
|
|
18629
18522
|
"aria-label": "Open menu"
|
|
18630
18523
|
},
|
|
18631
|
-
/* @__PURE__ */
|
|
18632
|
-
), /* @__PURE__ */
|
|
18524
|
+
/* @__PURE__ */ React53.createElement("svg", { className: "w-6 h-6", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React53.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M4 6h16M4 12h16M4 18h16" }))
|
|
18525
|
+
), /* @__PURE__ */ React53.createElement(Link10, { href: ((_k = props == null ? void 0 : props.logo) == null ? void 0 : _k.href) || "/", className: "flex items-center" }, logoUrl ? /* @__PURE__ */ React53.createElement(
|
|
18633
18526
|
Image13,
|
|
18634
18527
|
{
|
|
18635
18528
|
src: logoUrl,
|
|
@@ -18638,15 +18531,15 @@ function HeaderNavigation4({
|
|
|
18638
18531
|
width: 120,
|
|
18639
18532
|
height: 32
|
|
18640
18533
|
}
|
|
18641
|
-
) : /* @__PURE__ */
|
|
18534
|
+
) : /* @__PURE__ */ React53.createElement("span", { className: "font-display text-lg font-normal text-fg-primary" }, companyName)), /* @__PURE__ */ React53.createElement("div", { className: "w-6" }))), isMobileMenuOpen && /* @__PURE__ */ React53.createElement("div", { className: "balance-mobile-menu fixed inset-0 bg-primary z-50 md:hidden" }, /* @__PURE__ */ React53.createElement("div", { className: "flex flex-col h-full" }, /* @__PURE__ */ React53.createElement("div", { className: "flex items-center justify-between px-4 py-4", style: { borderBottom: "3px solid rgb(217, 191, 168)" } }, /* @__PURE__ */ React53.createElement(
|
|
18642
18535
|
"button",
|
|
18643
18536
|
{
|
|
18644
18537
|
onClick: () => setIsMobileMenuOpen(false),
|
|
18645
18538
|
className: "text-fg-primary",
|
|
18646
18539
|
"aria-label": "Close menu"
|
|
18647
18540
|
},
|
|
18648
|
-
/* @__PURE__ */
|
|
18649
|
-
), /* @__PURE__ */
|
|
18541
|
+
/* @__PURE__ */ React53.createElement("svg", { className: "w-6 h-6", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" }, /* @__PURE__ */ React53.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M6 18L18 6M6 6l12 12" }))
|
|
18542
|
+
), /* @__PURE__ */ React53.createElement("div", { className: "flex items-center" }, logoUrl ? /* @__PURE__ */ React53.createElement(
|
|
18650
18543
|
Image13,
|
|
18651
18544
|
{
|
|
18652
18545
|
src: logoUrl,
|
|
@@ -18655,7 +18548,7 @@ function HeaderNavigation4({
|
|
|
18655
18548
|
width: 120,
|
|
18656
18549
|
height: 32
|
|
18657
18550
|
}
|
|
18658
|
-
) : /* @__PURE__ */
|
|
18551
|
+
) : /* @__PURE__ */ React53.createElement("span", { className: "font-display text-lg font-normal text-fg-primary" }, companyName)), /* @__PURE__ */ React53.createElement("div", { className: "w-6" })), /* @__PURE__ */ React53.createElement("nav", { className: "flex-1 overflow-y-auto px-4 py-8" }, /* @__PURE__ */ React53.createElement("ul", { className: "space-y-4" }, navigation.map((item) => /* @__PURE__ */ React53.createElement("li", { key: item.label }, /* @__PURE__ */ React53.createElement(
|
|
18659
18552
|
Link10,
|
|
18660
18553
|
{
|
|
18661
18554
|
href: item.href || "#",
|
|
@@ -18664,7 +18557,7 @@ function HeaderNavigation4({
|
|
|
18664
18557
|
onClick: () => setIsMobileMenuOpen(false)
|
|
18665
18558
|
},
|
|
18666
18559
|
item.label
|
|
18667
|
-
), item.children && item.children.length > 0 && /* @__PURE__ */
|
|
18560
|
+
), item.children && item.children.length > 0 && /* @__PURE__ */ React53.createElement("ul", { className: "ml-4 mt-2 space-y-2" }, item.children.map((child) => /* @__PURE__ */ React53.createElement("li", { key: child.href }, /* @__PURE__ */ React53.createElement(
|
|
18668
18561
|
Link10,
|
|
18669
18562
|
{
|
|
18670
18563
|
href: child.href,
|
|
@@ -18672,7 +18565,7 @@ function HeaderNavigation4({
|
|
|
18672
18565
|
onClick: () => setIsMobileMenuOpen(false)
|
|
18673
18566
|
},
|
|
18674
18567
|
child.label
|
|
18675
|
-
)))))))), /* @__PURE__ */
|
|
18568
|
+
)))))))), /* @__PURE__ */ React53.createElement("div", { className: "px-4 py-6", style: { borderTop: "1px solid rgb(217, 191, 168)" } }, /* @__PURE__ */ React53.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__ */ React53.createElement(
|
|
18676
18569
|
Button2,
|
|
18677
18570
|
{
|
|
18678
18571
|
href: ctaUrls.secondaryHref,
|
|
@@ -18682,7 +18575,7 @@ function HeaderNavigation4({
|
|
|
18682
18575
|
onClick: () => setIsMobileMenuOpen(false)
|
|
18683
18576
|
},
|
|
18684
18577
|
props.cta_button.secondary_label
|
|
18685
|
-
), /* @__PURE__ */
|
|
18578
|
+
), /* @__PURE__ */ React53.createElement(
|
|
18686
18579
|
Button2,
|
|
18687
18580
|
{
|
|
18688
18581
|
href: ctaUrls.primaryHref,
|
|
@@ -18692,7 +18585,7 @@ function HeaderNavigation4({
|
|
|
18692
18585
|
onClick: () => setIsMobileMenuOpen(false)
|
|
18693
18586
|
},
|
|
18694
18587
|
((_m = props == null ? void 0 : props.cta_button) == null ? void 0 : _m.label) || ""
|
|
18695
|
-
))))), /* @__PURE__ */
|
|
18588
|
+
))))), /* @__PURE__ */ React53.createElement("div", { className: "fixed bottom-0 left-0 right-0 z-40 md:hidden", style: { backgroundColor: "rgb(148, 133, 84)" } }, /* @__PURE__ */ React53.createElement("div", { className: "flex gap-0" }, ((_n = props == null ? void 0 : props.cta_button) == null ? void 0 : _n.secondary_label) && ctaUrls.hasSecondary && /* @__PURE__ */ React53.createElement(
|
|
18696
18589
|
Button2,
|
|
18697
18590
|
{
|
|
18698
18591
|
href: ctaUrls.secondaryHref,
|
|
@@ -18703,7 +18596,7 @@ function HeaderNavigation4({
|
|
|
18703
18596
|
style: { borderRight: "1px solid rgba(255, 255, 255, 0.2)" }
|
|
18704
18597
|
},
|
|
18705
18598
|
props.cta_button.label
|
|
18706
|
-
), /* @__PURE__ */
|
|
18599
|
+
), /* @__PURE__ */ React53.createElement(
|
|
18707
18600
|
Button2,
|
|
18708
18601
|
{
|
|
18709
18602
|
href: ctaUrls.primaryHref,
|
|
@@ -18776,10 +18669,10 @@ var FooterHome4 = ({
|
|
|
18776
18669
|
registerThemeVariant("footer-home", "balance", FooterHome4);
|
|
18777
18670
|
|
|
18778
18671
|
// src/design_system/sections/contact-section.balance.tsx
|
|
18779
|
-
import
|
|
18672
|
+
import React55 from "react";
|
|
18780
18673
|
|
|
18781
18674
|
// src/design_system/sections/contact-section-form.balance.tsx
|
|
18782
|
-
import
|
|
18675
|
+
import React54, { useRef as useRef17, useState as useState28 } from "react";
|
|
18783
18676
|
var ContactSectionForm4 = ({
|
|
18784
18677
|
formDefinition,
|
|
18785
18678
|
submitButtonText = "Send message",
|
|
@@ -18833,14 +18726,14 @@ var ContactSectionForm4 = ({
|
|
|
18833
18726
|
setIsSubmitting(false);
|
|
18834
18727
|
};
|
|
18835
18728
|
if (!hasFields) return null;
|
|
18836
|
-
return /* @__PURE__ */
|
|
18729
|
+
return /* @__PURE__ */ React54.createElement(Form2, { ref: formRef, onSubmit: handleSubmit, className: "flex flex-col gap-6" }, /* @__PURE__ */ React54.createElement(
|
|
18837
18730
|
DynamicFormFields,
|
|
18838
18731
|
{
|
|
18839
18732
|
form: resolvedFormDefinition,
|
|
18840
18733
|
privacyPolicyUrl,
|
|
18841
18734
|
termsOfServiceUrl
|
|
18842
18735
|
}
|
|
18843
|
-
), /* @__PURE__ */
|
|
18736
|
+
), /* @__PURE__ */ React54.createElement(
|
|
18844
18737
|
Button2,
|
|
18845
18738
|
{
|
|
18846
18739
|
type: "submit",
|
|
@@ -18851,7 +18744,7 @@ var ContactSectionForm4 = ({
|
|
|
18851
18744
|
isLoading: isSubmitting
|
|
18852
18745
|
},
|
|
18853
18746
|
isSubmitting ? "Sending..." : submitButtonText
|
|
18854
|
-
), submitStatus === "success" && /* @__PURE__ */
|
|
18747
|
+
), submitStatus === "success" && /* @__PURE__ */ React54.createElement("div", { className: "rounded-sm bg-success-50 p-4 text-success-700 font-body" }, thankYouMessage != null ? thankYouMessage : statusMessage), submitStatus === "error" && /* @__PURE__ */ React54.createElement("div", { className: "rounded-sm bg-error-50 p-4 text-error-700 font-body text-sm" }, statusMessage));
|
|
18855
18748
|
};
|
|
18856
18749
|
|
|
18857
18750
|
// src/design_system/sections/contact-section.balance.tsx
|
|
@@ -18875,7 +18768,7 @@ var ContactSection4 = ({
|
|
|
18875
18768
|
const contactImageUrl = contactPhoto == null ? void 0 : contactPhoto.url;
|
|
18876
18769
|
const finalContactImage = contactImageUrl && contactImageUrl.trim() !== "" ? contactImageUrl : void 0;
|
|
18877
18770
|
const finalContactImageAlt = (contactPhoto == null ? void 0 : contactPhoto.alt) || "Contact image";
|
|
18878
|
-
return /* @__PURE__ */
|
|
18771
|
+
return /* @__PURE__ */ React55.createElement("section", { className: "bg-primary py-16 md:py-24" }, /* @__PURE__ */ React55.createElement("div", { className: "mx-auto max-w-4xl px-4 md:px-8" }, /* @__PURE__ */ React55.createElement("div", { className: "text-center mb-12" }, /* @__PURE__ */ React55.createElement("h2", { className: "font-display text-4xl font-normal leading-tight text-fg-primary md:text-5xl" }, title), /* @__PURE__ */ React55.createElement("p", { className: "mt-4 font-body text-lg leading-relaxed text-tertiary max-w-2xl mx-auto" }, subtitle)), finalContactImage && /* @__PURE__ */ React55.createElement("div", { className: "mb-12 overflow-hidden h-72 md:h-96" }, /* @__PURE__ */ React55.createElement(
|
|
18879
18772
|
PhotoWithFallback2,
|
|
18880
18773
|
{
|
|
18881
18774
|
photoUrl: finalContactImage,
|
|
@@ -18883,7 +18776,7 @@ var ContactSection4 = ({
|
|
|
18883
18776
|
fallbackId: "contact-image",
|
|
18884
18777
|
className: "h-full w-full object-cover"
|
|
18885
18778
|
}
|
|
18886
|
-
)), /* @__PURE__ */
|
|
18779
|
+
)), /* @__PURE__ */ React55.createElement("div", { className: "max-w-2xl mx-auto" }, /* @__PURE__ */ React55.createElement(
|
|
18887
18780
|
ContactSectionForm4,
|
|
18888
18781
|
{
|
|
18889
18782
|
formDefinition,
|
|
@@ -18972,7 +18865,7 @@ var AboutHome4 = ({
|
|
|
18972
18865
|
registerThemeVariant("about-home", "balance", AboutHome4);
|
|
18973
18866
|
|
|
18974
18867
|
// src/design_system/sections/testimonials-home.balance.tsx
|
|
18975
|
-
import
|
|
18868
|
+
import React56 from "react";
|
|
18976
18869
|
var TestimonialsHome4 = ({
|
|
18977
18870
|
testimonials: testimonialsData,
|
|
18978
18871
|
title = "",
|
|
@@ -18981,7 +18874,7 @@ var TestimonialsHome4 = ({
|
|
|
18981
18874
|
}) => {
|
|
18982
18875
|
const testimonials = Array.isArray(testimonialsData) ? testimonialsData : [];
|
|
18983
18876
|
const displayTestimonials = perPage ? testimonials.slice(0, perPage) : testimonials;
|
|
18984
|
-
return /* @__PURE__ */
|
|
18877
|
+
return /* @__PURE__ */ React56.createElement("section", { className: "bg-primary 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-12 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(
|
|
18985
18878
|
CarouselSectionWrapper,
|
|
18986
18879
|
{
|
|
18987
18880
|
title: "",
|
|
@@ -18995,7 +18888,7 @@ var TestimonialsHome4 = ({
|
|
|
18995
18888
|
const avatarUrl = getAvatarUrl(testimonial.photo_attachments, testimonial.id, reviewerName);
|
|
18996
18889
|
const rating = testimonial.rating || 5;
|
|
18997
18890
|
const initials = reviewerName.split(" ").map((n) => n[0]).join("").toUpperCase().slice(0, 2);
|
|
18998
|
-
return /* @__PURE__ */
|
|
18891
|
+
return /* @__PURE__ */ React56.createElement(Carousel.Item, { key: testimonial.id || i, className: "pl-4 md:basis-1/2 lg:basis-1/3" }, /* @__PURE__ */ React56.createElement("div", { className: "bg-secondary/30 p-8 h-full flex flex-col" }, /* @__PURE__ */ React56.createElement("div", { className: "flex gap-1 mb-6" }, Array.from({ length: 5 }).map((_, starIdx) => /* @__PURE__ */ React56.createElement(
|
|
18999
18892
|
"svg",
|
|
19000
18893
|
{
|
|
19001
18894
|
key: starIdx,
|
|
@@ -19007,8 +18900,8 @@ var TestimonialsHome4 = ({
|
|
|
19007
18900
|
strokeWidth: "2",
|
|
19008
18901
|
viewBox: "0 0 24 24"
|
|
19009
18902
|
},
|
|
19010
|
-
/* @__PURE__ */
|
|
19011
|
-
))), /* @__PURE__ */
|
|
18903
|
+
/* @__PURE__ */ React56.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" })
|
|
18904
|
+
))), /* @__PURE__ */ React56.createElement("p", { className: "font-body text-base leading-relaxed text-secondary mb-8 flex-grow" }, '"', quote, '"'), /* @__PURE__ */ React56.createElement("div", { className: "flex items-center gap-4 pt-6 border-t border-primary/20" }, /* @__PURE__ */ React56.createElement(
|
|
19012
18905
|
Avatar2,
|
|
19013
18906
|
{
|
|
19014
18907
|
src: avatarUrl,
|
|
@@ -19016,14 +18909,14 @@ var TestimonialsHome4 = ({
|
|
|
19016
18909
|
initials,
|
|
19017
18910
|
size: "xl"
|
|
19018
18911
|
}
|
|
19019
|
-
), /* @__PURE__ */
|
|
18912
|
+
), /* @__PURE__ */ React56.createElement("div", null, /* @__PURE__ */ React56.createElement("p", { className: "font-body text-sm font-medium text-fg-primary" }, reviewerName), /* @__PURE__ */ React56.createElement("p", { className: "font-body text-xs text-tertiary mt-0.5" }, "Verified Customer")))));
|
|
19020
18913
|
})
|
|
19021
18914
|
)));
|
|
19022
18915
|
};
|
|
19023
18916
|
registerThemeVariant("testimonials-home", "balance", TestimonialsHome4);
|
|
19024
18917
|
|
|
19025
18918
|
// src/design_system/sections/blog-section.balance.tsx
|
|
19026
|
-
import
|
|
18919
|
+
import React57 from "react";
|
|
19027
18920
|
var BlogSection4 = ({
|
|
19028
18921
|
blogPosts: postsData,
|
|
19029
18922
|
title = "",
|
|
@@ -19043,7 +18936,7 @@ var BlogSection4 = ({
|
|
|
19043
18936
|
return "Recent";
|
|
19044
18937
|
}
|
|
19045
18938
|
};
|
|
19046
|
-
return /* @__PURE__ */
|
|
18939
|
+
return /* @__PURE__ */ React57.createElement("section", { className: "bg-secondary py-16 md:py-24" }, /* @__PURE__ */ React57.createElement("div", { className: "mx-auto max-w-container px-4 md:px-8" }, /* @__PURE__ */ React57.createElement("div", { className: "text-center mb-16 max-w-3xl mx-auto" }, /* @__PURE__ */ React57.createElement("h2", { className: "font-display text-4xl font-normal text-fg-primary md:text-5xl mb-4" }, title), subtitle && /* @__PURE__ */ React57.createElement("p", { className: "font-body text-lg text-secondary" }, subtitle)), /* @__PURE__ */ React57.createElement(
|
|
19047
18940
|
CarouselSectionWrapper,
|
|
19048
18941
|
{
|
|
19049
18942
|
title: "",
|
|
@@ -19053,16 +18946,16 @@ var BlogSection4 = ({
|
|
|
19053
18946
|
postsArray.map((post) => {
|
|
19054
18947
|
var _a;
|
|
19055
18948
|
const excerpt = ((_a = post.content_markdown) == null ? void 0 : _a.replace(/[#*\[\]()]/g, "").trim().substring(0, 150)) || "";
|
|
19056
|
-
return /* @__PURE__ */
|
|
18949
|
+
return /* @__PURE__ */ React57.createElement(Carousel.Item, { key: post.id, className: "pl-4 md:basis-1/2 lg:basis-1/3" }, /* @__PURE__ */ React57.createElement("a", { href: `/blog/${post.slug}`, className: "flex flex-col h-full group bg-primary" }, /* @__PURE__ */ React57.createElement("div", { className: "w-full h-64 overflow-hidden" }, /* @__PURE__ */ React57.createElement(
|
|
19057
18950
|
PhotoWithFallback2,
|
|
19058
18951
|
{
|
|
19059
18952
|
item: post,
|
|
19060
18953
|
fallbackId: post.id,
|
|
19061
18954
|
className: "w-full h-full object-cover transition-transform duration-300 group-hover:scale-105"
|
|
19062
18955
|
}
|
|
19063
|
-
)), /* @__PURE__ */
|
|
18956
|
+
)), /* @__PURE__ */ React57.createElement("div", { className: "p-6 flex flex-col flex-grow" }, /* @__PURE__ */ React57.createElement("p", { className: "text-xs font-body font-medium uppercase tracking-wide mb-3 text-brand-accent" }, formatDate4(post.published_at)), /* @__PURE__ */ React57.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__ */ React57.createElement("p", { className: "font-body text-base leading-relaxed text-tertiary flex-grow line-clamp-3" }, excerpt), /* @__PURE__ */ React57.createElement("span", { className: "mt-4 font-body text-sm font-medium uppercase tracking-wide", style: { color: "var(--color-text-brand-accent)" } }, "Read More \u2192"))));
|
|
19064
18957
|
})
|
|
19065
|
-
), postsArray.length > 0 && /* @__PURE__ */
|
|
18958
|
+
), postsArray.length > 0 && /* @__PURE__ */ React57.createElement("div", { className: "mt-12 text-center" }, /* @__PURE__ */ React57.createElement(
|
|
19066
18959
|
Button2,
|
|
19067
18960
|
{
|
|
19068
18961
|
as: "a",
|
|
@@ -19077,7 +18970,7 @@ var BlogSection4 = ({
|
|
|
19077
18970
|
registerThemeVariant("blog-section", "balance", BlogSection4);
|
|
19078
18971
|
|
|
19079
18972
|
// src/design_system/sections/team-grid.balance.tsx
|
|
19080
|
-
import
|
|
18973
|
+
import React58 from "react";
|
|
19081
18974
|
var TeamGrid3 = ({
|
|
19082
18975
|
teamMembers: membersData,
|
|
19083
18976
|
title = "",
|
|
@@ -19088,10 +18981,10 @@ var TeamGrid3 = ({
|
|
|
19088
18981
|
}) => {
|
|
19089
18982
|
const members = Array.isArray(membersData) ? membersData : [];
|
|
19090
18983
|
const displayMembers = members.slice(0, maxMembers);
|
|
19091
|
-
return /* @__PURE__ */
|
|
18984
|
+
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: "text-display-sm font-semibold text-primary md:text-display-md" }, title), subtitle && /* @__PURE__ */ React58.createElement("p", { className: "mt-4 text-lg text-tertiary md:mt-5 md:text-xl" }, subtitle)), displayMembers.length > 0 ? /* @__PURE__ */ React58.createElement("div", { className: "mt-12 md:mt-16" }, /* @__PURE__ */ React58.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) => {
|
|
19092
18985
|
var _a;
|
|
19093
18986
|
const bio = ((_a = member.bio_markdown) == null ? void 0 : _a.replace(/[#*\[\]()]/g, "").trim()) || "";
|
|
19094
|
-
return /* @__PURE__ */
|
|
18987
|
+
return /* @__PURE__ */ React58.createElement("li", { key: member.id || index, className: "flex flex-col gap-5 md:gap-6 max-w-xs w-full" }, /* @__PURE__ */ React58.createElement(
|
|
19095
18988
|
PhotoWithFallback2,
|
|
19096
18989
|
{
|
|
19097
18990
|
item: member,
|
|
@@ -19099,13 +18992,13 @@ var TeamGrid3 = ({
|
|
|
19099
18992
|
alt: member.name || "Team member",
|
|
19100
18993
|
className: "h-78 w-full object-cover md:h-74 rounded-2xl"
|
|
19101
18994
|
}
|
|
19102
|
-
), /* @__PURE__ */
|
|
19103
|
-
}))) : /* @__PURE__ */
|
|
18995
|
+
), /* @__PURE__ */ React58.createElement("div", null, /* @__PURE__ */ React58.createElement("h3", { className: "text-lg font-semibold text-primary md:text-xl" }, member.name), /* @__PURE__ */ React58.createElement("p", { className: "text-md text-brand-secondary md:mt-0.5 md:text-lg" }, member.position), bio && /* @__PURE__ */ React58.createElement("p", { className: "mt-4 text-md text-tertiary leading-relaxed" }, bio)));
|
|
18996
|
+
}))) : /* @__PURE__ */ React58.createElement("div", { className: "text-center mt-12" }, /* @__PURE__ */ React58.createElement("p", { className: "text-gray-500" }, "No team members available"))));
|
|
19104
18997
|
};
|
|
19105
18998
|
registerThemeVariant("team-grid", "balance", TeamGrid3);
|
|
19106
18999
|
|
|
19107
19000
|
// src/design_system/sections/services-grid.balance.tsx
|
|
19108
|
-
import
|
|
19001
|
+
import React59 from "react";
|
|
19109
19002
|
import Link12 from "next/link";
|
|
19110
19003
|
var ServicesGrid3 = ({
|
|
19111
19004
|
services: servicesData,
|
|
@@ -19115,12 +19008,12 @@ var ServicesGrid3 = ({
|
|
|
19115
19008
|
className = ""
|
|
19116
19009
|
}) => {
|
|
19117
19010
|
const services = Array.isArray(servicesData) ? servicesData : [];
|
|
19118
|
-
return /* @__PURE__ */
|
|
19011
|
+
return /* @__PURE__ */ React59.createElement("section", { className: `${backgroundColor} py-16 md:py-24 ${className}` }, /* @__PURE__ */ React59.createElement("div", { className: "mx-auto w-full max-w-container px-4 md:px-8" }, (title || subtitle) && /* @__PURE__ */ React59.createElement("div", { className: "mx-auto mb-12 flex w-full max-w-3xl flex-col items-center text-center" }, title && /* @__PURE__ */ React59.createElement("h2", { className: "font-display text-4xl font-normal text-fg-primary md:text-5xl" }, title), subtitle && /* @__PURE__ */ React59.createElement("p", { className: "mt-4 font-body text-lg text-secondary md:mt-5 md:text-xl" }, subtitle)), services.length > 0 ? /* @__PURE__ */ React59.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) => {
|
|
19119
19012
|
var _a, _b, _c, _d;
|
|
19120
19013
|
const description = service.summary || (service.description_markdown ? service.description_markdown.replace(/[#*\[\]()]/g, "").trim().substring(0, 120) + "..." : "");
|
|
19121
19014
|
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);
|
|
19122
19015
|
const imageAlt = (photo == null ? void 0 : photo.title) || service.name;
|
|
19123
|
-
return /* @__PURE__ */
|
|
19016
|
+
return /* @__PURE__ */ React59.createElement("li", { key: service.id || index }, /* @__PURE__ */ React59.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__ */ React59.createElement(Link12, { href: `/services/${service.slug}`, className: "block" }, /* @__PURE__ */ React59.createElement("div", { className: "h-48 w-full overflow-hidden rounded-lg md:h-64" }, /* @__PURE__ */ React59.createElement(
|
|
19124
19017
|
PhotoWithFallback2,
|
|
19125
19018
|
{
|
|
19126
19019
|
item: service,
|
|
@@ -19128,8 +19021,8 @@ var ServicesGrid3 = ({
|
|
|
19128
19021
|
alt: imageAlt || "Service image",
|
|
19129
19022
|
className: "size-full object-cover transition-transform duration-300 group-hover:scale-105"
|
|
19130
19023
|
}
|
|
19131
|
-
)), /* @__PURE__ */
|
|
19132
|
-
})) : /* @__PURE__ */
|
|
19024
|
+
)), /* @__PURE__ */ React59.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__ */ React59.createElement("p", { className: "font-body text-base leading-relaxed text-tertiary mb-4" }, description), /* @__PURE__ */ React59.createElement("span", { className: "font-body text-sm font-medium uppercase tracking-wide", style: { color: "var(--color-text-brand-accent)" } }, "Learn More \u2192"))));
|
|
19025
|
+
})) : /* @__PURE__ */ React59.createElement("div", { className: "text-center py-12" }, /* @__PURE__ */ React59.createElement("p", { className: "font-body text-base text-tertiary" }, "No services available"))));
|
|
19133
19026
|
};
|
|
19134
19027
|
registerThemeVariant("services-grid", "balance", ServicesGrid3);
|
|
19135
19028
|
|
|
@@ -19246,7 +19139,7 @@ var FeatureTabHorizontal = ({ title, subtitle, footer, isCurrent }) => /* @__PUR
|
|
|
19246
19139
|
);
|
|
19247
19140
|
|
|
19248
19141
|
// src/design_system/sections/service-menu-section.tsx
|
|
19249
|
-
import
|
|
19142
|
+
import React60, { useState as useState30, useEffect as useEffect11, useCallback as useCallback10, useMemo as useMemo8 } from "react";
|
|
19250
19143
|
import { createPortal } from "react-dom";
|
|
19251
19144
|
var SERVICE_MENU_MODAL_ROOT_ID = "service-menu-modal-root";
|
|
19252
19145
|
var CYCLE_INTERVAL_MIN_MS = 6e3;
|
|
@@ -19259,6 +19152,10 @@ function seedToUnit(seed) {
|
|
|
19259
19152
|
}
|
|
19260
19153
|
return (h >>> 0) / 4294967296;
|
|
19261
19154
|
}
|
|
19155
|
+
function getActivePublicOffers(offers) {
|
|
19156
|
+
if (!Array.isArray(offers) || offers.length === 0) return [];
|
|
19157
|
+
return offers.filter((o) => o.active !== false && o.expired !== true);
|
|
19158
|
+
}
|
|
19262
19159
|
function photoAttachmentDisplayUrl(pa) {
|
|
19263
19160
|
var _a, _b;
|
|
19264
19161
|
return ((_a = pa.photo) == null ? void 0 : _a.large_url) || ((_b = pa.photo) == null ? void 0 : _b.medium_url);
|
|
@@ -19310,7 +19207,8 @@ function GridCardWithImage({
|
|
|
19310
19207
|
onClick,
|
|
19311
19208
|
websitePhotos,
|
|
19312
19209
|
companyInformation,
|
|
19313
|
-
cycleSeed
|
|
19210
|
+
cycleSeed,
|
|
19211
|
+
hasSpecial
|
|
19314
19212
|
}) {
|
|
19315
19213
|
var _a, _b, _c, _d, _e, _f, _g;
|
|
19316
19214
|
const seed = cycleSeed != null ? cycleSeed : String(fallbackId);
|
|
@@ -19338,14 +19236,21 @@ function GridCardWithImage({
|
|
|
19338
19236
|
const currentItem = list[currentIndex];
|
|
19339
19237
|
const displayAlt = (currentItem == null ? void 0 : currentItem.alt) || fallbackAlt;
|
|
19340
19238
|
const singleUrl = (_a = list[0]) == null ? void 0 : _a.url;
|
|
19341
|
-
return /* @__PURE__ */
|
|
19239
|
+
return /* @__PURE__ */ React60.createElement(
|
|
19342
19240
|
"button",
|
|
19343
19241
|
{
|
|
19344
19242
|
type: "button",
|
|
19345
19243
|
onClick,
|
|
19346
19244
|
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
19245
|
},
|
|
19348
|
-
/* @__PURE__ */
|
|
19246
|
+
/* @__PURE__ */ React60.createElement("div", { className: "w-full h-36 overflow-hidden rounded-lg mb-3 relative" }, hasSpecial ? /* @__PURE__ */ React60.createElement(
|
|
19247
|
+
"span",
|
|
19248
|
+
{
|
|
19249
|
+
className: "absolute top-2 right-2 z-10 rounded-full border border-brand-accent/40 bg-secondary/95 px-2 py-0.5 text-[10px] font-semibold uppercase tracking-wide text-brand-accent shadow-sm backdrop-blur-sm",
|
|
19250
|
+
"aria-label": "Has special offer"
|
|
19251
|
+
},
|
|
19252
|
+
"Special"
|
|
19253
|
+
) : null, list.length === 0 ? /* @__PURE__ */ React60.createElement(
|
|
19349
19254
|
PhotoWithFallback2,
|
|
19350
19255
|
{
|
|
19351
19256
|
item: void 0,
|
|
@@ -19357,7 +19262,7 @@ function GridCardWithImage({
|
|
|
19357
19262
|
}
|
|
19358
19263
|
) : list.length === 1 && singleUrl ? (
|
|
19359
19264
|
// eslint-disable-next-line @next/next/no-img-element -- dynamic API URLs; next/image not configured for external host
|
|
19360
|
-
/* @__PURE__ */
|
|
19265
|
+
/* @__PURE__ */ React60.createElement(
|
|
19361
19266
|
"img",
|
|
19362
19267
|
{
|
|
19363
19268
|
src: singleUrl,
|
|
@@ -19365,13 +19270,13 @@ function GridCardWithImage({
|
|
|
19365
19270
|
className: "w-full h-full object-cover transition-transform duration-300 group-hover:scale-105"
|
|
19366
19271
|
}
|
|
19367
19272
|
)
|
|
19368
|
-
) : /* @__PURE__ */
|
|
19273
|
+
) : /* @__PURE__ */ React60.createElement(React60.Fragment, null, /* @__PURE__ */ React60.createElement(
|
|
19369
19274
|
"div",
|
|
19370
19275
|
{
|
|
19371
19276
|
className: `absolute inset-0 ${transitioning ? "transition-opacity duration-[600ms] ease-in-out" : "transition-none"}`,
|
|
19372
19277
|
style: { opacity: transitioning ? 0 : 1 }
|
|
19373
19278
|
},
|
|
19374
|
-
/* @__PURE__ */
|
|
19279
|
+
/* @__PURE__ */ React60.createElement(
|
|
19375
19280
|
"img",
|
|
19376
19281
|
{
|
|
19377
19282
|
src: (_b = list[currentIndex]) == null ? void 0 : _b.url,
|
|
@@ -19379,13 +19284,13 @@ function GridCardWithImage({
|
|
|
19379
19284
|
className: "w-full h-full object-cover transition-transform duration-300 group-hover:scale-105"
|
|
19380
19285
|
}
|
|
19381
19286
|
)
|
|
19382
|
-
), /* @__PURE__ */
|
|
19287
|
+
), /* @__PURE__ */ React60.createElement(
|
|
19383
19288
|
"div",
|
|
19384
19289
|
{
|
|
19385
19290
|
className: `absolute inset-0 ${transitioning ? "transition-opacity duration-[600ms] ease-in-out" : "transition-none"}`,
|
|
19386
19291
|
style: { opacity: transitioning ? 1 : 0 }
|
|
19387
19292
|
},
|
|
19388
|
-
/* @__PURE__ */
|
|
19293
|
+
/* @__PURE__ */ React60.createElement(
|
|
19389
19294
|
"img",
|
|
19390
19295
|
{
|
|
19391
19296
|
src: (_e = list[nextIndex]) == null ? void 0 : _e.url,
|
|
@@ -19394,8 +19299,8 @@ function GridCardWithImage({
|
|
|
19394
19299
|
}
|
|
19395
19300
|
)
|
|
19396
19301
|
))),
|
|
19397
|
-
subtitle && /* @__PURE__ */
|
|
19398
|
-
/* @__PURE__ */
|
|
19302
|
+
subtitle && /* @__PURE__ */ React60.createElement("p", { className: "text-xs font-medium text-fg-secondary uppercase tracking-wide line-clamp-1" }, subtitle),
|
|
19303
|
+
/* @__PURE__ */ React60.createElement("h4", { className: "font-display text-base font-normal text-fg-primary mt-1 group-hover:underline line-clamp-2" }, title),
|
|
19399
19304
|
children
|
|
19400
19305
|
);
|
|
19401
19306
|
}
|
|
@@ -19405,9 +19310,9 @@ function CarouselRow({
|
|
|
19405
19310
|
renderItem
|
|
19406
19311
|
}) {
|
|
19407
19312
|
if (!(items == null ? void 0 : items.length)) return null;
|
|
19408
|
-
return /* @__PURE__ */
|
|
19313
|
+
return /* @__PURE__ */ React60.createElement("div", { className: "mb-12 last:mb-0" }, /* @__PURE__ */ React60.createElement(Carousel.Root, { opts: { align: "start", loop: true } }, /* @__PURE__ */ React60.createElement("div", { className: "flex items-center justify-between gap-4 mb-2" }, /* @__PURE__ */ React60.createElement("h3", { className: "font-display text-2xl font-normal text-fg-primary md:text-3xl" }, rowTitle), /* @__PURE__ */ React60.createElement("div", { className: "flex gap-2 flex-shrink-0" }, /* @__PURE__ */ React60.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__ */ React60.createElement("svg", { className: "w-5 h-5 text-fg-primary", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", "aria-hidden": true }, /* @__PURE__ */ React60.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M15 19l-7-7 7-7" }))), /* @__PURE__ */ React60.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__ */ React60.createElement("svg", { className: "w-5 h-5 text-fg-primary", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", "aria-hidden": true }, /* @__PURE__ */ React60.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M9 5l7 7-7 7" }))))), /* @__PURE__ */ React60.createElement(Carousel.Content, { className: "-ml-3" }, items.map((item, index) => {
|
|
19409
19314
|
var _a;
|
|
19410
|
-
return /* @__PURE__ */
|
|
19315
|
+
return /* @__PURE__ */ React60.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
19316
|
}))));
|
|
19412
19317
|
}
|
|
19413
19318
|
function GridRow({
|
|
@@ -19416,9 +19321,9 @@ function GridRow({
|
|
|
19416
19321
|
renderItem
|
|
19417
19322
|
}) {
|
|
19418
19323
|
if (!(items == null ? void 0 : items.length)) return null;
|
|
19419
|
-
return /* @__PURE__ */
|
|
19324
|
+
return /* @__PURE__ */ React60.createElement("div", { className: "mb-12 last:mb-0" }, /* @__PURE__ */ React60.createElement("h3", { className: "font-display text-2xl font-normal text-fg-primary mb-3 md:text-3xl" }, rowTitle), /* @__PURE__ */ React60.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
19325
|
var _a;
|
|
19421
|
-
return /* @__PURE__ */
|
|
19326
|
+
return /* @__PURE__ */ React60.createElement("div", { key: (_a = item.id) != null ? _a : index, className: "min-w-0 flex" }, renderItem(item, index));
|
|
19422
19327
|
})));
|
|
19423
19328
|
}
|
|
19424
19329
|
function MenuBlock({
|
|
@@ -19428,54 +19333,57 @@ function MenuBlock({
|
|
|
19428
19333
|
layout: layout2
|
|
19429
19334
|
}) {
|
|
19430
19335
|
if (!(items == null ? void 0 : items.length)) return null;
|
|
19431
|
-
return layout2 === "carousel" ? /* @__PURE__ */
|
|
19336
|
+
return layout2 === "carousel" ? /* @__PURE__ */ React60.createElement(CarouselRow, { rowTitle, items, renderItem }) : /* @__PURE__ */ React60.createElement(GridRow, { rowTitle, items, renderItem });
|
|
19432
19337
|
}
|
|
19433
19338
|
function formatPriceCents(cents) {
|
|
19434
19339
|
if (cents == null) return null;
|
|
19435
19340
|
return new Intl.NumberFormat("en-US", { style: "currency", currency: "USD", minimumFractionDigits: 0, maximumFractionDigits: 0 }).format(cents / 100);
|
|
19436
19341
|
}
|
|
19437
19342
|
function ModalSection({ title, children }) {
|
|
19438
|
-
return /* @__PURE__ */
|
|
19343
|
+
return /* @__PURE__ */ React60.createElement("div", null, /* @__PURE__ */ React60.createElement("h3", { className: "font-display text-sm font-semibold text-fg-primary uppercase tracking-wide mb-2" }, title), children);
|
|
19344
|
+
}
|
|
19345
|
+
function ActiveOffersCallout({ offers }) {
|
|
19346
|
+
if (!offers.length) return null;
|
|
19347
|
+
return /* @__PURE__ */ React60.createElement("div", { className: "rounded-xl border border-secondary bg-secondary/25 p-4 md:p-5 space-y-3 ring-1 ring-brand-accent/25" }, /* @__PURE__ */ React60.createElement("p", { className: "text-xs font-semibold uppercase tracking-wide text-brand-accent" }, "Current specials"), /* @__PURE__ */ React60.createElement("ul", { className: "space-y-3 list-none m-0 p-0" }, offers.map((o) => /* @__PURE__ */ React60.createElement(
|
|
19348
|
+
"li",
|
|
19349
|
+
{
|
|
19350
|
+
key: o.id,
|
|
19351
|
+
className: "rounded-lg border border-secondary border-l-[3px] border-l-brand-accent bg-primary_hover/30 p-4"
|
|
19352
|
+
},
|
|
19353
|
+
/* @__PURE__ */ React60.createElement("p", { className: "font-display text-base font-medium text-fg-primary" }, o.name),
|
|
19354
|
+
o.value_terms ? /* @__PURE__ */ React60.createElement("p", { className: "font-body text-sm text-brand-accent mt-1 font-medium" }, o.value_terms) : null,
|
|
19355
|
+
o.description ? /* @__PURE__ */ React60.createElement("p", { className: "font-body text-sm text-fg-secondary mt-2 leading-relaxed" }, o.description) : null,
|
|
19356
|
+
o.expires_at ? /* @__PURE__ */ React60.createElement("p", { className: "text-xs text-tertiary mt-2" }, "Ends ", new Date(o.expires_at).toLocaleDateString(void 0, { dateStyle: "medium" })) : null
|
|
19357
|
+
))));
|
|
19439
19358
|
}
|
|
19440
19359
|
function DetailModalContent({
|
|
19441
19360
|
detail,
|
|
19442
19361
|
serviceItems = []
|
|
19443
19362
|
}) {
|
|
19444
|
-
var _a
|
|
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
|
-
}
|
|
19363
|
+
var _a;
|
|
19457
19364
|
if (detail.type === "package") {
|
|
19458
19365
|
const p = detail.item;
|
|
19459
|
-
const categoryLine = ((
|
|
19366
|
+
const categoryLine = ((_a = p.category_names) == null ? void 0 : _a.length) ? p.category_names.join(" | ") : null;
|
|
19460
19367
|
const descriptionMarkdown2 = p.description_markdown || p.summary || p.first_service_description_markdown;
|
|
19461
|
-
|
|
19462
|
-
|
|
19368
|
+
const packageSpecials = getActivePublicOffers(p.offers);
|
|
19369
|
+
return /* @__PURE__ */ React60.createElement("div", { className: "space-y-6" }, categoryLine && /* @__PURE__ */ React60.createElement("p", { className: "text-sm font-medium text-fg-secondary uppercase tracking-wide" }, categoryLine), /* @__PURE__ */ React60.createElement(ActiveOffersCallout, { offers: packageSpecials }), descriptionMarkdown2 && /* @__PURE__ */ React60.createElement(ModalSection, { title: "Package details" }, /* @__PURE__ */ React60.createElement("div", { className: "prose prose-sm font-body text-fg-primary max-w-none" }, /* @__PURE__ */ React60.createElement(MarkdownRenderer2, { content: descriptionMarkdown2 }))), p.package_items && p.package_items.length > 0 && /* @__PURE__ */ React60.createElement(ModalSection, { title: "What's included" }, /* @__PURE__ */ React60.createElement("ul", { className: "space-y-4" }, p.package_items.map((pi, i) => {
|
|
19370
|
+
var _a2, _b, _c, _d, _e, _f, _g, _h, _i;
|
|
19463
19371
|
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 = (
|
|
19465
|
-
const desc = (_g = (
|
|
19466
|
-
return /* @__PURE__ */
|
|
19467
|
-
}))), p.pricing_info && /* @__PURE__ */
|
|
19372
|
+
const name = (_d = (_c = fullItem == null ? void 0 : fullItem.name) != null ? _c : (_b = pi.service_item) == null ? void 0 : _b.name) != null ? _d : "Item";
|
|
19373
|
+
const desc = (_g = (_e = fullItem == null ? void 0 : fullItem.summary) != null ? _e : fullItem == null ? void 0 : fullItem.description_markdown) != null ? _g : (_f = pi.service_item) == null ? void 0 : _f.summary;
|
|
19374
|
+
return /* @__PURE__ */ React60.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__ */ React60.createElement("p", { className: "font-display font-medium text-fg-primary" }, pi.quantity > 1 && `${pi.quantity}\xD7 `, name), desc && /* @__PURE__ */ React60.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__ */ React60.createElement("p", null, desc) : /* @__PURE__ */ React60.createElement(MarkdownRenderer2, { content: desc })));
|
|
19375
|
+
}))), p.pricing_info && /* @__PURE__ */ React60.createElement(ModalSection, { title: "Pricing" }, /* @__PURE__ */ React60.createElement("div", { className: "rounded-lg border border-secondary bg-secondary/40 p-4" }, /* @__PURE__ */ React60.createElement("div", { className: "prose prose-sm font-body text-fg-primary max-w-none" }, /* @__PURE__ */ React60.createElement(MarkdownRenderer2, { content: p.pricing_info })))));
|
|
19468
19376
|
}
|
|
19469
19377
|
const si = detail.item;
|
|
19470
19378
|
const priceStr = formatPriceCents(si.price_cents);
|
|
19471
19379
|
const summary = si.summary || si.service_summary;
|
|
19472
19380
|
const descriptionMarkdown = si.description_markdown || si.service_description_markdown;
|
|
19473
|
-
|
|
19381
|
+
const itemSpecials = getActivePublicOffers(si.offers);
|
|
19382
|
+
return /* @__PURE__ */ React60.createElement("div", { className: "space-y-6" }, si.service_name && /* @__PURE__ */ React60.createElement("p", { className: "text-sm font-medium text-fg-secondary uppercase tracking-wide" }, si.service_name), /* @__PURE__ */ React60.createElement(ActiveOffersCallout, { offers: itemSpecials }), priceStr && /* @__PURE__ */ React60.createElement(ModalSection, { title: "Price" }, /* @__PURE__ */ React60.createElement("p", { className: "font-display text-lg font-normal text-fg-primary" }, priceStr), si.duration_minutes != null && si.duration_minutes > 0 && /* @__PURE__ */ React60.createElement("p", { className: "font-body text-sm text-fg-secondary mt-1" }, "Duration: ", si.duration_minutes, " min")), summary && /* @__PURE__ */ React60.createElement(ModalSection, { title: "Overview" }, /* @__PURE__ */ React60.createElement("p", { className: "font-body text-fg-primary" }, summary)), descriptionMarkdown && /* @__PURE__ */ React60.createElement(ModalSection, { title: "Full description" }, /* @__PURE__ */ React60.createElement("div", { className: "prose prose-sm font-body text-fg-primary max-w-none" }, /* @__PURE__ */ React60.createElement(MarkdownRenderer2, { content: descriptionMarkdown }))), si.pricing_info && /* @__PURE__ */ React60.createElement(ModalSection, { title: "Pricing details" }, /* @__PURE__ */ React60.createElement("div", { className: "rounded-lg border border-secondary bg-secondary/40 p-4" }, /* @__PURE__ */ React60.createElement("div", { className: "prose prose-sm font-body text-fg-primary max-w-none" }, /* @__PURE__ */ React60.createElement(MarkdownRenderer2, { content: si.pricing_info })))));
|
|
19474
19383
|
}
|
|
19475
19384
|
function ServiceMenuSection({
|
|
19476
19385
|
title = "Service Menu",
|
|
19477
19386
|
subtitle,
|
|
19478
|
-
offers = null,
|
|
19479
19387
|
packages = null,
|
|
19480
19388
|
services = null,
|
|
19481
19389
|
websitePhotos,
|
|
@@ -19485,24 +19393,20 @@ function ServiceMenuSection({
|
|
|
19485
19393
|
servicesRowTitle = "Treatments",
|
|
19486
19394
|
variant = "section"
|
|
19487
19395
|
}) {
|
|
19488
|
-
const
|
|
19489
|
-
() => Array.isArray(offers) ? offers.filter((o) => !o.expired) : [],
|
|
19490
|
-
[offers]
|
|
19491
|
-
);
|
|
19492
|
-
const packageList = React63.useMemo(
|
|
19396
|
+
const packageList = React60.useMemo(
|
|
19493
19397
|
() => Array.isArray(packages) ? packages : [],
|
|
19494
19398
|
[packages]
|
|
19495
19399
|
);
|
|
19496
|
-
const serviceList =
|
|
19400
|
+
const serviceList = React60.useMemo(
|
|
19497
19401
|
() => Array.isArray(services) ? services : [],
|
|
19498
19402
|
[services]
|
|
19499
19403
|
);
|
|
19500
|
-
const serviceItemIdToService =
|
|
19404
|
+
const serviceItemIdToService = React60.useMemo(() => {
|
|
19501
19405
|
const m = /* @__PURE__ */ new Map();
|
|
19502
19406
|
serviceList.forEach((s) => (s.service_items || []).forEach((si) => m.set(si.id, s)));
|
|
19503
19407
|
return m;
|
|
19504
19408
|
}, [serviceList]);
|
|
19505
|
-
const packagesForMenu =
|
|
19409
|
+
const packagesForMenu = React60.useMemo(
|
|
19506
19410
|
() => packageList.map((pkg) => {
|
|
19507
19411
|
var _a, _b, _c;
|
|
19508
19412
|
const category_names = [
|
|
@@ -19520,20 +19424,6 @@ function ServiceMenuSection({
|
|
|
19520
19424
|
}),
|
|
19521
19425
|
[packageList, serviceItemIdToService]
|
|
19522
19426
|
);
|
|
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
19427
|
const serviceItemsForMenu = serviceList.flatMap(
|
|
19538
19428
|
(s) => (s.service_items || []).map((si) => __spreadProps(__spreadValues({}, si), {
|
|
19539
19429
|
service_name: s.name,
|
|
@@ -19541,10 +19431,9 @@ function ServiceMenuSection({
|
|
|
19541
19431
|
service_description_markdown: s.description_markdown
|
|
19542
19432
|
}))
|
|
19543
19433
|
);
|
|
19544
|
-
const hasAny =
|
|
19434
|
+
const hasAny = packagesForMenu.length > 0 || serviceItemsForMenu.length > 0;
|
|
19545
19435
|
const CAROUSEL_MIN = 3;
|
|
19546
19436
|
const isPage = variant === "page";
|
|
19547
|
-
const offersLayout = isPage ? "grid" : offersForMenu.length >= CAROUSEL_MIN ? "carousel" : "grid";
|
|
19548
19437
|
const packagesLayout = isPage ? "grid" : packagesForMenu.length >= CAROUSEL_MIN ? "carousel" : "grid";
|
|
19549
19438
|
const serviceItemsLayout = isPage ? "grid" : serviceItemsForMenu.length >= CAROUSEL_MIN ? "carousel" : "grid";
|
|
19550
19439
|
const [detailItem, setDetailItem] = useState30(null);
|
|
@@ -19562,31 +19451,6 @@ function ServiceMenuSection({
|
|
|
19562
19451
|
};
|
|
19563
19452
|
}, []);
|
|
19564
19453
|
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
19454
|
const renderPackageCard = useCallback10(
|
|
19591
19455
|
(pkg, index) => {
|
|
19592
19456
|
var _a;
|
|
@@ -19594,7 +19458,8 @@ function ServiceMenuSection({
|
|
|
19594
19458
|
const cardDesc = pkg.description_markdown || pkg.summary || pkg.first_service_description_markdown;
|
|
19595
19459
|
const plainDesc = cardDesc ? cardDesc.replace(/[#*`\[\]]/g, "").replace(/\n+/g, " ").trim() : "";
|
|
19596
19460
|
const descText = plainDesc.length > 120 ? plainDesc.slice(0, 120) + "\u2026" : plainDesc;
|
|
19597
|
-
|
|
19461
|
+
const hasSpecial = getActivePublicOffers(pkg.offers).length > 0;
|
|
19462
|
+
return /* @__PURE__ */ React60.createElement(
|
|
19598
19463
|
GridCardWithImage,
|
|
19599
19464
|
{
|
|
19600
19465
|
photoAttachments: pkg.photo_attachments,
|
|
@@ -19605,9 +19470,10 @@ function ServiceMenuSection({
|
|
|
19605
19470
|
onClick: () => setDetailItem({ type: "package", item: pkg }),
|
|
19606
19471
|
websitePhotos,
|
|
19607
19472
|
companyInformation,
|
|
19608
|
-
cycleSeed: `pkg-${pkg.id}-${index}
|
|
19473
|
+
cycleSeed: `pkg-${pkg.id}-${index}`,
|
|
19474
|
+
hasSpecial
|
|
19609
19475
|
},
|
|
19610
|
-
descText && /* @__PURE__ */
|
|
19476
|
+
descText && /* @__PURE__ */ React60.createElement("p", { className: "font-body text-sm text-tertiary mt-1 line-clamp-2" }, descText)
|
|
19611
19477
|
);
|
|
19612
19478
|
},
|
|
19613
19479
|
[websitePhotos, companyInformation]
|
|
@@ -19615,7 +19481,7 @@ function ServiceMenuSection({
|
|
|
19615
19481
|
const renderServiceItemCard = useCallback10(
|
|
19616
19482
|
(si, index) => {
|
|
19617
19483
|
var _a, _b, _c, _d;
|
|
19618
|
-
return /* @__PURE__ */
|
|
19484
|
+
return /* @__PURE__ */ React60.createElement(
|
|
19619
19485
|
GridCardWithImage,
|
|
19620
19486
|
{
|
|
19621
19487
|
photoAttachments: si.photo_attachments,
|
|
@@ -19626,15 +19492,16 @@ function ServiceMenuSection({
|
|
|
19626
19492
|
onClick: () => setDetailItem({ type: "service_item", item: si }),
|
|
19627
19493
|
websitePhotos,
|
|
19628
19494
|
companyInformation,
|
|
19629
|
-
cycleSeed: `service-item-${si.id}-${index}
|
|
19495
|
+
cycleSeed: `service-item-${si.id}-${index}`,
|
|
19496
|
+
hasSpecial: getActivePublicOffers(si.offers).length > 0
|
|
19630
19497
|
},
|
|
19631
|
-
formatPriceCents(si.price_cents) && /* @__PURE__ */
|
|
19498
|
+
formatPriceCents(si.price_cents) && /* @__PURE__ */ React60.createElement("p", { className: "font-body text-sm font-medium text-fg-primary mt-1" }, formatPriceCents(si.price_cents)),
|
|
19632
19499
|
(() => {
|
|
19633
19500
|
const desc = si.summary || si.description_markdown || si.service_summary || si.service_description_markdown;
|
|
19634
19501
|
if (!desc) return null;
|
|
19635
19502
|
const plain = desc.replace(/[#*`\[\]]/g, "").replace(/\n+/g, " ").trim();
|
|
19636
19503
|
const text = plain.length > 120 ? plain.slice(0, 120) + "\u2026" : plain;
|
|
19637
|
-
return /* @__PURE__ */
|
|
19504
|
+
return /* @__PURE__ */ React60.createElement("p", { className: "font-body text-sm text-tertiary mt-1 line-clamp-2" }, text);
|
|
19638
19505
|
})()
|
|
19639
19506
|
);
|
|
19640
19507
|
},
|
|
@@ -19642,15 +19509,7 @@ function ServiceMenuSection({
|
|
|
19642
19509
|
);
|
|
19643
19510
|
if (!hasAny) return null;
|
|
19644
19511
|
const modalTitle = detailItem ? detailItem.item.name : "";
|
|
19645
|
-
return /* @__PURE__ */
|
|
19646
|
-
MenuBlock,
|
|
19647
|
-
{
|
|
19648
|
-
rowTitle: "Offers",
|
|
19649
|
-
items: offersForMenu,
|
|
19650
|
-
layout: offersLayout,
|
|
19651
|
-
renderItem: renderOfferCard
|
|
19652
|
-
}
|
|
19653
|
-
), /* @__PURE__ */ React63.createElement(
|
|
19512
|
+
return /* @__PURE__ */ React60.createElement("section", { className: variant === "page" ? "py-12 md:py-20" : "py-12 md:py-16" }, /* @__PURE__ */ React60.createElement("div", { className: "mx-auto max-w-container px-4 md:px-8" }, variant === "section" && /* @__PURE__ */ React60.createElement("div", { className: "mx-auto max-w-3xl text-center mb-12 md:mb-16" }, title && /* @__PURE__ */ React60.createElement("h2", { className: "font-display text-4xl font-normal text-fg-primary md:text-5xl" }, title), subtitle && /* @__PURE__ */ React60.createElement("p", { className: "mt-4 font-display text-lg leading-relaxed text-tertiary md:text-xl max-w-3xl mx-auto" }, subtitle)), /* @__PURE__ */ React60.createElement(
|
|
19654
19513
|
MenuBlock,
|
|
19655
19514
|
{
|
|
19656
19515
|
rowTitle: "Packages",
|
|
@@ -19658,7 +19517,7 @@ function ServiceMenuSection({
|
|
|
19658
19517
|
layout: packagesLayout,
|
|
19659
19518
|
renderItem: renderPackageCard
|
|
19660
19519
|
}
|
|
19661
|
-
), /* @__PURE__ */
|
|
19520
|
+
), /* @__PURE__ */ React60.createElement(
|
|
19662
19521
|
MenuBlock,
|
|
19663
19522
|
{
|
|
19664
19523
|
rowTitle: servicesRowTitle,
|
|
@@ -19666,8 +19525,8 @@ function ServiceMenuSection({
|
|
|
19666
19525
|
layout: serviceItemsLayout,
|
|
19667
19526
|
renderItem: renderServiceItemCard
|
|
19668
19527
|
}
|
|
19669
|
-
), variant === "section" && viewAllHref && viewAllText && /* @__PURE__ */
|
|
19670
|
-
/* @__PURE__ */
|
|
19528
|
+
), variant === "section" && viewAllHref && viewAllText && /* @__PURE__ */ React60.createElement("div", { className: "mt-12 text-center" }, /* @__PURE__ */ React60.createElement(Button2, { href: viewAllHref, color: "primary", size: "md" }, viewAllText))), portalTarget && detailItem && createPortal(
|
|
19529
|
+
/* @__PURE__ */ React60.createElement(
|
|
19671
19530
|
Modal,
|
|
19672
19531
|
{
|
|
19673
19532
|
isOpen: true,
|
|
@@ -19675,7 +19534,7 @@ function ServiceMenuSection({
|
|
|
19675
19534
|
title: modalTitle,
|
|
19676
19535
|
maxWidth: "2xl"
|
|
19677
19536
|
},
|
|
19678
|
-
/* @__PURE__ */
|
|
19537
|
+
/* @__PURE__ */ React60.createElement(
|
|
19679
19538
|
DetailModalContent,
|
|
19680
19539
|
{
|
|
19681
19540
|
detail: detailItem,
|
|
@@ -19695,9 +19554,9 @@ function createThemedExport2(componentName, BaseComponent) {
|
|
|
19695
19554
|
const { theme } = useTheme();
|
|
19696
19555
|
try {
|
|
19697
19556
|
const Component2 = getThemedComponent(componentName, theme);
|
|
19698
|
-
return
|
|
19557
|
+
return React61.createElement(Component2, props);
|
|
19699
19558
|
} catch (e) {
|
|
19700
|
-
return
|
|
19559
|
+
return React61.createElement(BaseComponent, props);
|
|
19701
19560
|
}
|
|
19702
19561
|
};
|
|
19703
19562
|
}
|
|
@@ -19736,9 +19595,6 @@ var PolicyDocumentSection2 = PolicyDocumentSection;
|
|
|
19736
19595
|
var SocialMediaHero3 = createThemedExport2("hero-social-media", SocialMediaHero);
|
|
19737
19596
|
var TestimonialsHero3 = createThemedExport2("hero-testimonials", TestimonialsHero);
|
|
19738
19597
|
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);
|
|
19742
19598
|
|
|
19743
19599
|
// src/lib/actions.ts
|
|
19744
19600
|
var API_URL = process.env.API_URL || "http://localhost:3000/api/v1";
|
|
@@ -19844,7 +19700,7 @@ async function submitLeadFormAction(formData) {
|
|
|
19844
19700
|
}
|
|
19845
19701
|
|
|
19846
19702
|
// src/design_system/components/ChatWidget.tsx
|
|
19847
|
-
import
|
|
19703
|
+
import React62, { useState as useState31, useEffect as useEffect12, useRef as useRef18, useCallback as useCallback11 } from "react";
|
|
19848
19704
|
import { X, MessageChatSquare } from "@untitledui/icons";
|
|
19849
19705
|
var formatTime = (isoString) => {
|
|
19850
19706
|
const date = new Date(isoString);
|
|
@@ -19998,7 +19854,7 @@ function ChatWidget({
|
|
|
19998
19854
|
} : void 0;
|
|
19999
19855
|
const widgetBrandClass = primaryColor ? "bg-[var(--widget-primary)]" : "bg-brand-solid";
|
|
20000
19856
|
const widgetBrandHoverClass = primaryColor ? "hover:bg-[var(--widget-primary-hover)]" : "hover:bg-brand-solid_hover";
|
|
20001
|
-
return /* @__PURE__ */
|
|
19857
|
+
return /* @__PURE__ */ React62.createElement(
|
|
20002
19858
|
"div",
|
|
20003
19859
|
{
|
|
20004
19860
|
className: cx(
|
|
@@ -20007,7 +19863,7 @@ function ChatWidget({
|
|
|
20007
19863
|
),
|
|
20008
19864
|
style: customColorVars
|
|
20009
19865
|
},
|
|
20010
|
-
!isOpen && /* @__PURE__ */
|
|
19866
|
+
!isOpen && /* @__PURE__ */ React62.createElement(
|
|
20011
19867
|
"button",
|
|
20012
19868
|
{
|
|
20013
19869
|
onClick: () => setIsOpen(true),
|
|
@@ -20017,15 +19873,15 @@ function ChatWidget({
|
|
|
20017
19873
|
),
|
|
20018
19874
|
"aria-label": "Open chat"
|
|
20019
19875
|
},
|
|
20020
|
-
/* @__PURE__ */
|
|
19876
|
+
/* @__PURE__ */ React62.createElement(MessageChatSquare, { className: "size-6" })
|
|
20021
19877
|
),
|
|
20022
|
-
isOpen && /* @__PURE__ */
|
|
19878
|
+
isOpen && /* @__PURE__ */ React62.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__ */ React62.createElement("div", { className: cx(
|
|
20023
19879
|
"flex items-center justify-between gap-3 p-4 text-white",
|
|
20024
19880
|
widgetBrandClass
|
|
20025
|
-
) }, /* @__PURE__ */
|
|
19881
|
+
) }, /* @__PURE__ */ React62.createElement("div", { className: "flex min-w-0 flex-1 flex-col gap-2" }, /* @__PURE__ */ React62.createElement("h3", { className: "m-0 text-lg font-semibold leading-tight" }, "Chat with us"), (() => {
|
|
20026
19882
|
const membersWithPhotos = teamMembers.filter((m) => m.photo_url);
|
|
20027
19883
|
if (membersWithPhotos.length === 0) return null;
|
|
20028
|
-
return /* @__PURE__ */
|
|
19884
|
+
return /* @__PURE__ */ React62.createElement("div", { className: "flex -space-x-2" }, membersWithPhotos.slice(0, 5).map((member) => /* @__PURE__ */ React62.createElement(
|
|
20029
19885
|
Avatar,
|
|
20030
19886
|
{
|
|
20031
19887
|
key: member.id,
|
|
@@ -20034,28 +19890,28 @@ function ChatWidget({
|
|
|
20034
19890
|
alt: member.name,
|
|
20035
19891
|
className: "bg-white ring-2 ring-white"
|
|
20036
19892
|
}
|
|
20037
|
-
)), membersWithPhotos.length > 5 && /* @__PURE__ */
|
|
19893
|
+
)), membersWithPhotos.length > 5 && /* @__PURE__ */ React62.createElement(
|
|
20038
19894
|
Avatar,
|
|
20039
19895
|
{
|
|
20040
19896
|
size: "xs",
|
|
20041
19897
|
className: "bg-white ring-2 ring-white",
|
|
20042
|
-
placeholder: /* @__PURE__ */
|
|
19898
|
+
placeholder: /* @__PURE__ */ React62.createElement("span", { className: "flex items-center justify-center text-xs font-semibold text-tertiary" }, "+", membersWithPhotos.length - 5)
|
|
20043
19899
|
}
|
|
20044
19900
|
));
|
|
20045
|
-
})()), /* @__PURE__ */
|
|
19901
|
+
})()), /* @__PURE__ */ React62.createElement(
|
|
20046
19902
|
"button",
|
|
20047
19903
|
{
|
|
20048
19904
|
onClick: () => setIsOpen(false),
|
|
20049
19905
|
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",
|
|
20050
19906
|
"aria-label": "Close chat"
|
|
20051
19907
|
},
|
|
20052
|
-
/* @__PURE__ */
|
|
20053
|
-
)), /* @__PURE__ */
|
|
19908
|
+
/* @__PURE__ */ React62.createElement(X, { className: "size-5" })
|
|
19909
|
+
)), /* @__PURE__ */ React62.createElement("ul", { className: "flex flex-1 flex-col gap-4 overflow-y-auto px-4 py-4" }, messages.length === 0 && /* @__PURE__ */ React62.createElement("li", { className: "mt-5 text-center text-sm text-quaternary" }, "Start a conversation! We're here to help."), messages.map((message, index) => {
|
|
20054
19910
|
var _a, _b, _c, _d;
|
|
20055
19911
|
const isUser = message.sender_type === "contact";
|
|
20056
19912
|
const prevMessage = index > 0 ? messages[index - 1] : null;
|
|
20057
19913
|
const showAvatar = !isUser && (!prevMessage || prevMessage.sender_type === "contact");
|
|
20058
|
-
return /* @__PURE__ */
|
|
19914
|
+
return /* @__PURE__ */ React62.createElement(
|
|
20059
19915
|
"li",
|
|
20060
19916
|
{
|
|
20061
19917
|
key: message.id,
|
|
@@ -20064,7 +19920,7 @@ function ChatWidget({
|
|
|
20064
19920
|
isUser ? "self-end pl-10" : "pr-8"
|
|
20065
19921
|
)
|
|
20066
19922
|
},
|
|
20067
|
-
!isUser && showAvatar && /* @__PURE__ */
|
|
19923
|
+
!isUser && showAvatar && /* @__PURE__ */ React62.createElement(
|
|
20068
19924
|
Avatar,
|
|
20069
19925
|
{
|
|
20070
19926
|
size: "sm",
|
|
@@ -20074,8 +19930,8 @@ function ChatWidget({
|
|
|
20074
19930
|
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)
|
|
20075
19931
|
}
|
|
20076
19932
|
),
|
|
20077
|
-
!isUser && !showAvatar && /* @__PURE__ */
|
|
20078
|
-
/* @__PURE__ */
|
|
19933
|
+
!isUser && !showAvatar && /* @__PURE__ */ React62.createElement("div", { className: "size-8 shrink-0" }),
|
|
19934
|
+
/* @__PURE__ */ React62.createElement("article", { className: "flex min-w-0 flex-1 flex-col gap-1" }, /* @__PURE__ */ React62.createElement("header", { className: "flex items-center gap-2 px-0.5" }, /* @__PURE__ */ React62.createElement("cite", { className: "flex-1 truncate text-xs font-medium text-tertiary not-italic" }, isUser ? providedDisplayName || "You" : message.sender_display_name), /* @__PURE__ */ React62.createElement("time", { className: "text-xs text-quaternary", dateTime: message.created_at }, formatTime(message.created_at))), /* @__PURE__ */ React62.createElement(
|
|
20079
19935
|
"div",
|
|
20080
19936
|
{
|
|
20081
19937
|
className: cx(
|
|
@@ -20089,7 +19945,7 @@ function ChatWidget({
|
|
|
20089
19945
|
message.body
|
|
20090
19946
|
))
|
|
20091
19947
|
);
|
|
20092
|
-
}), waitingForReply && /* @__PURE__ */
|
|
19948
|
+
}), waitingForReply && /* @__PURE__ */ React62.createElement("li", { className: "relative flex items-start gap-3 pr-8" }, /* @__PURE__ */ React62.createElement(Avatar, { size: "sm", className: "shrink-0" }), /* @__PURE__ */ React62.createElement("article", { className: "flex min-w-0 flex-1 flex-col gap-1" }, /* @__PURE__ */ React62.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__ */ React62.createElement("div", { className: "size-1.5 animate-bounce rounded-full bg-fg-tertiary [animation-delay:-0.3s]" }), /* @__PURE__ */ React62.createElement("div", { className: "size-1.5 animate-bounce rounded-full bg-fg-quaternary [animation-delay:-0.15s]" }), /* @__PURE__ */ React62.createElement("div", { className: "size-1.5 animate-bounce rounded-full bg-fg-tertiary" })))), /* @__PURE__ */ React62.createElement("div", { ref: messagesEndRef })), /* @__PURE__ */ React62.createElement("div", { className: "flex gap-2 border-t border-secondary p-3" }, /* @__PURE__ */ React62.createElement(
|
|
20093
19949
|
"input",
|
|
20094
19950
|
{
|
|
20095
19951
|
type: "text",
|
|
@@ -20100,7 +19956,7 @@ function ChatWidget({
|
|
|
20100
19956
|
disabled: isLoading,
|
|
20101
19957
|
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"
|
|
20102
19958
|
}
|
|
20103
|
-
), /* @__PURE__ */
|
|
19959
|
+
), /* @__PURE__ */ React62.createElement(
|
|
20104
19960
|
"button",
|
|
20105
19961
|
{
|
|
20106
19962
|
onClick: sendMessage,
|
|
@@ -20201,10 +20057,6 @@ export {
|
|
|
20201
20057
|
MarkdownRenderer2 as MarkdownRenderer,
|
|
20202
20058
|
Modal,
|
|
20203
20059
|
NativeSelect2 as NativeSelect,
|
|
20204
|
-
OfferDetailSection2 as OfferDetailSection,
|
|
20205
|
-
OffersGallery2 as OffersGallery,
|
|
20206
|
-
OffersGrid,
|
|
20207
|
-
OffersSection2 as OffersSection,
|
|
20208
20060
|
Pagination,
|
|
20209
20061
|
PaginationPageDefault2 as PaginationPageDefault,
|
|
20210
20062
|
PaginationPageMinimalCenter2 as PaginationPageMinimalCenter,
|