@opensite/ui 2.1.9 → 2.2.1
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/about-network-spotlight.cjs +84 -14
- package/dist/about-network-spotlight.d.cts +5 -1
- package/dist/about-network-spotlight.d.ts +5 -1
- package/dist/about-network-spotlight.js +84 -14
- package/dist/contact-card.cjs +170 -193
- package/dist/contact-card.d.cts +33 -69
- package/dist/contact-card.d.ts +33 -69
- package/dist/contact-card.js +171 -194
- package/dist/contact-dark-VpMwwNkH.d.cts +152 -0
- package/dist/contact-dark-tweUQnN1.d.ts +152 -0
- package/dist/contact-dark.cjs +109 -171
- package/dist/contact-dark.d.cts +5 -237
- package/dist/contact-dark.d.ts +5 -237
- package/dist/contact-dark.js +110 -172
- package/dist/contact-emergency.cjs +107 -213
- package/dist/contact-emergency.d.cts +6 -52
- package/dist/contact-emergency.d.ts +6 -52
- package/dist/contact-emergency.js +109 -215
- package/dist/contact-faq.cjs +1 -1
- package/dist/contact-faq.js +1 -1
- package/dist/contact-image.cjs +175 -627
- package/dist/contact-image.d.cts +104 -59
- package/dist/contact-image.d.ts +104 -59
- package/dist/contact-image.js +176 -628
- package/dist/registry.cjs +2400 -2533
- package/dist/registry.js +1159 -1292
- package/dist/team-social-grid.cjs +40 -82
- package/dist/team-social-grid.js +40 -82
- package/package.json +1 -1
package/dist/registry.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import * as
|
|
2
|
-
import
|
|
1
|
+
import * as React28 from 'react';
|
|
2
|
+
import React28__default, { Fragment, createContext, useMemo, forwardRef, useCallback, useState, useEffect, useRef, startTransition, useContext } from 'react';
|
|
3
3
|
import { clsx } from 'clsx';
|
|
4
4
|
import { twMerge } from 'tailwind-merge';
|
|
5
5
|
import { jsx, jsxs, Fragment as Fragment$1 } from 'react/jsx-runtime';
|
|
@@ -140,7 +140,7 @@ var maxWidthStyles = {
|
|
|
140
140
|
"4xl": "max-w-[1536px]",
|
|
141
141
|
full: "max-w-full"
|
|
142
142
|
};
|
|
143
|
-
var Container =
|
|
143
|
+
var Container = React28__default.forwardRef(
|
|
144
144
|
({ children, maxWidth = "xl", className, as = "div", ...props }, ref) => {
|
|
145
145
|
const Component = as;
|
|
146
146
|
return /* @__PURE__ */ jsx(
|
|
@@ -445,7 +445,7 @@ var spacingStyles = {
|
|
|
445
445
|
};
|
|
446
446
|
var predefinedSpacings = ["none", "sm", "md", "lg", "xl"];
|
|
447
447
|
var isPredefinedSpacing = (spacing) => predefinedSpacings.includes(spacing);
|
|
448
|
-
var Section =
|
|
448
|
+
var Section = React28__default.forwardRef(
|
|
449
449
|
({
|
|
450
450
|
id,
|
|
451
451
|
title,
|
|
@@ -1035,7 +1035,7 @@ function useNavigation({
|
|
|
1035
1035
|
href,
|
|
1036
1036
|
onClick
|
|
1037
1037
|
} = {}) {
|
|
1038
|
-
const linkType =
|
|
1038
|
+
const linkType = React28.useMemo(() => {
|
|
1039
1039
|
if (!href || href.trim() === "") {
|
|
1040
1040
|
return onClick ? "none" : "none";
|
|
1041
1041
|
}
|
|
@@ -1056,7 +1056,7 @@ function useNavigation({
|
|
|
1056
1056
|
return "internal";
|
|
1057
1057
|
}
|
|
1058
1058
|
}, [href, onClick]);
|
|
1059
|
-
const normalizedHref =
|
|
1059
|
+
const normalizedHref = React28.useMemo(() => {
|
|
1060
1060
|
if (!href || href.trim() === "") {
|
|
1061
1061
|
return void 0;
|
|
1062
1062
|
}
|
|
@@ -1074,7 +1074,7 @@ function useNavigation({
|
|
|
1074
1074
|
return trimmed;
|
|
1075
1075
|
}
|
|
1076
1076
|
}, [href, linkType]);
|
|
1077
|
-
const target =
|
|
1077
|
+
const target = React28.useMemo(() => {
|
|
1078
1078
|
switch (linkType) {
|
|
1079
1079
|
case "external":
|
|
1080
1080
|
return "_blank";
|
|
@@ -1087,7 +1087,7 @@ function useNavigation({
|
|
|
1087
1087
|
return void 0;
|
|
1088
1088
|
}
|
|
1089
1089
|
}, [linkType]);
|
|
1090
|
-
const rel =
|
|
1090
|
+
const rel = React28.useMemo(() => {
|
|
1091
1091
|
if (linkType === "external") {
|
|
1092
1092
|
return "noopener noreferrer";
|
|
1093
1093
|
}
|
|
@@ -1096,7 +1096,7 @@ function useNavigation({
|
|
|
1096
1096
|
const isExternal = linkType === "external";
|
|
1097
1097
|
const isInternal = linkType === "internal";
|
|
1098
1098
|
const shouldUseRouter = isInternal && typeof normalizedHref === "string" && normalizedHref.startsWith("/");
|
|
1099
|
-
const handleClick =
|
|
1099
|
+
const handleClick = React28.useCallback(
|
|
1100
1100
|
(event) => {
|
|
1101
1101
|
if (onClick) {
|
|
1102
1102
|
try {
|
|
@@ -1280,7 +1280,7 @@ var buttonVariants = cva(baseStyles, {
|
|
|
1280
1280
|
size: "default"
|
|
1281
1281
|
}
|
|
1282
1282
|
});
|
|
1283
|
-
var Pressable =
|
|
1283
|
+
var Pressable = React28.forwardRef(
|
|
1284
1284
|
({
|
|
1285
1285
|
children,
|
|
1286
1286
|
className,
|
|
@@ -2328,10 +2328,10 @@ var ImageSlider = ({
|
|
|
2328
2328
|
optixFlowConfig
|
|
2329
2329
|
}) => {
|
|
2330
2330
|
const hasImages = images.length > 0;
|
|
2331
|
-
const [currentIndex, setCurrentIndex] =
|
|
2331
|
+
const [currentIndex, setCurrentIndex] = React28.useState(
|
|
2332
2332
|
() => normalizeIndex(startIndex, images.length)
|
|
2333
2333
|
);
|
|
2334
|
-
const handleNext =
|
|
2334
|
+
const handleNext = React28.useCallback(() => {
|
|
2335
2335
|
if (!hasImages) return;
|
|
2336
2336
|
setCurrentIndex((prevIndex) => {
|
|
2337
2337
|
const nextIndex = prevIndex + 1 >= images.length ? 0 : prevIndex + 1;
|
|
@@ -2339,7 +2339,7 @@ var ImageSlider = ({
|
|
|
2339
2339
|
return nextIndex;
|
|
2340
2340
|
});
|
|
2341
2341
|
}, [hasImages, images.length, onSlideChange]);
|
|
2342
|
-
const handlePrevious =
|
|
2342
|
+
const handlePrevious = React28.useCallback(() => {
|
|
2343
2343
|
if (!hasImages) return;
|
|
2344
2344
|
setCurrentIndex((prevIndex) => {
|
|
2345
2345
|
const nextIndex = prevIndex - 1 < 0 ? images.length - 1 : prevIndex - 1;
|
|
@@ -2347,11 +2347,11 @@ var ImageSlider = ({
|
|
|
2347
2347
|
return nextIndex;
|
|
2348
2348
|
});
|
|
2349
2349
|
}, [hasImages, images.length, onSlideChange]);
|
|
2350
|
-
|
|
2350
|
+
React28.useEffect(() => {
|
|
2351
2351
|
if (!hasImages) return;
|
|
2352
2352
|
setCurrentIndex(normalizeIndex(startIndex, images.length));
|
|
2353
2353
|
}, [startIndex, images.length, hasImages]);
|
|
2354
|
-
|
|
2354
|
+
React28.useEffect(() => {
|
|
2355
2355
|
if (!enableKeyboard || !hasImages) return;
|
|
2356
2356
|
const handleKeyDown = (event) => {
|
|
2357
2357
|
if (event.key === "ArrowRight") {
|
|
@@ -2365,7 +2365,7 @@ var ImageSlider = ({
|
|
|
2365
2365
|
window.removeEventListener("keydown", handleKeyDown);
|
|
2366
2366
|
};
|
|
2367
2367
|
}, [enableKeyboard, handleNext, handlePrevious, hasImages]);
|
|
2368
|
-
|
|
2368
|
+
React28.useEffect(() => {
|
|
2369
2369
|
if (!autoplay || images.length < 2) return;
|
|
2370
2370
|
const interval = window.setInterval(handleNext, autoplayIntervalMs);
|
|
2371
2371
|
return () => window.clearInterval(interval);
|
|
@@ -2657,7 +2657,7 @@ var platformIconMap = {
|
|
|
2657
2657
|
dribbble: "cib/dribbble",
|
|
2658
2658
|
unknown: "icon-park-solid/circular-connection"
|
|
2659
2659
|
};
|
|
2660
|
-
var SocialLinkIcon =
|
|
2660
|
+
var SocialLinkIcon = React28.forwardRef(
|
|
2661
2661
|
({
|
|
2662
2662
|
platformName,
|
|
2663
2663
|
label,
|
|
@@ -2670,13 +2670,13 @@ var SocialLinkIcon = React25.forwardRef(
|
|
|
2670
2670
|
...pressableProps
|
|
2671
2671
|
}, ref) => {
|
|
2672
2672
|
const platform = usePlatformFromUrl(href);
|
|
2673
|
-
const smartPlatformName =
|
|
2673
|
+
const smartPlatformName = React28.useMemo(() => {
|
|
2674
2674
|
return platform || platformName;
|
|
2675
2675
|
}, [platform, platformName]);
|
|
2676
|
-
const iconName =
|
|
2676
|
+
const iconName = React28.useMemo(() => {
|
|
2677
2677
|
return iconNameOverride || platformIconMap[smartPlatformName];
|
|
2678
2678
|
}, [iconNameOverride, smartPlatformName]);
|
|
2679
|
-
const accessibleLabel =
|
|
2679
|
+
const accessibleLabel = React28.useMemo(() => {
|
|
2680
2680
|
return label || platformName;
|
|
2681
2681
|
}, [label, platformName]);
|
|
2682
2682
|
return /* @__PURE__ */ jsx(
|
|
@@ -3101,7 +3101,7 @@ function AboutExpandableValues({
|
|
|
3101
3101
|
pattern,
|
|
3102
3102
|
patternOpacity
|
|
3103
3103
|
}) {
|
|
3104
|
-
const [expandedValue, setExpandedValue] =
|
|
3104
|
+
const [expandedValue, setExpandedValue] = React28.useState(null);
|
|
3105
3105
|
const toggleExpand = useCallback((id) => {
|
|
3106
3106
|
setExpandedValue((prev) => prev === id ? null : id);
|
|
3107
3107
|
}, []);
|
|
@@ -3355,7 +3355,7 @@ function CommunityInitiatives({
|
|
|
3355
3355
|
pattern,
|
|
3356
3356
|
patternOpacity
|
|
3357
3357
|
}) {
|
|
3358
|
-
const [activeCategory, setActiveCategory] =
|
|
3358
|
+
const [activeCategory, setActiveCategory] = React28.useState(
|
|
3359
3359
|
categories?.[0]?.id || ""
|
|
3360
3360
|
);
|
|
3361
3361
|
const currentCategory = categories?.find((category) => category.id === activeCategory) || categories?.[0];
|
|
@@ -3628,7 +3628,7 @@ function AboutCultureTabs({
|
|
|
3628
3628
|
patternOpacity
|
|
3629
3629
|
}) {
|
|
3630
3630
|
const resolvedAspects = aspects ?? [];
|
|
3631
|
-
const [activeTab, setActiveTab] =
|
|
3631
|
+
const [activeTab, setActiveTab] = React28.useState(
|
|
3632
3632
|
resolvedAspects[0]?.id || ""
|
|
3633
3633
|
);
|
|
3634
3634
|
const ctaImagesContent = useMemo(() => {
|
|
@@ -4127,7 +4127,7 @@ function BannerDeliveryCountdown({
|
|
|
4127
4127
|
}, [prefixText, timerContent, middleText, deliveryDateContent]);
|
|
4128
4128
|
return /* @__PURE__ */ jsx(Section, { background, spacing: "none", className: cn("bg-accent text-accent-foreground", className), children: /* @__PURE__ */ jsx("div", { className: cn("container py-2.5", containerClassName), children: /* @__PURE__ */ jsx("div", { className: cn("flex flex-wrap items-center justify-center gap-3 text-sm", contentClassName), children: /* @__PURE__ */ jsxs("div", { className: cn("flex items-center gap-2", messageClassName), children: [
|
|
4129
4129
|
iconContent,
|
|
4130
|
-
messageParts.length > 0 && /* @__PURE__ */ jsx("span", { children: messageParts.map((part, index) => /* @__PURE__ */ jsxs(
|
|
4130
|
+
messageParts.length > 0 && /* @__PURE__ */ jsx("span", { children: messageParts.map((part, index) => /* @__PURE__ */ jsxs(React28.Fragment, { children: [
|
|
4131
4131
|
index > 0 ? " " : null,
|
|
4132
4132
|
part
|
|
4133
4133
|
] }, index)) })
|
|
@@ -5398,8 +5398,8 @@ var BrandAttribution = ({
|
|
|
5398
5398
|
}
|
|
5399
5399
|
const { prefix = "", anchorText, href, suffix = "" } = options[optionIndex];
|
|
5400
5400
|
const ContainerEl = variant;
|
|
5401
|
-
const [trackedHref, setTrackedHref] =
|
|
5402
|
-
|
|
5401
|
+
const [trackedHref, setTrackedHref] = React28.useState(href);
|
|
5402
|
+
React28.useEffect(() => {
|
|
5403
5403
|
setTrackedHref(buildTrackedHref(href));
|
|
5404
5404
|
}, [href]);
|
|
5405
5405
|
return /* @__PURE__ */ jsxs(ContainerEl, { className: containerClassName, children: [
|
|
@@ -5542,7 +5542,7 @@ function FooterSocialNewsletter({
|
|
|
5542
5542
|
onError,
|
|
5543
5543
|
uploadTokens
|
|
5544
5544
|
});
|
|
5545
|
-
const renderForm =
|
|
5545
|
+
const renderForm = React28.useMemo(() => {
|
|
5546
5546
|
if (formSlot) return formSlot;
|
|
5547
5547
|
const defaultButtonAction = {
|
|
5548
5548
|
label: "Subscribe",
|
|
@@ -5876,7 +5876,7 @@ function FooterSimpleCentered({
|
|
|
5876
5876
|
]);
|
|
5877
5877
|
const bottomLinksContent = useMemo(() => {
|
|
5878
5878
|
if (!bottomLinks || bottomLinks.length === 0) return null;
|
|
5879
|
-
return bottomLinks.map((link, idx) => /* @__PURE__ */ jsx(
|
|
5879
|
+
return bottomLinks.map((link, idx) => /* @__PURE__ */ jsx(React28.Fragment, { children: /* @__PURE__ */ jsx(
|
|
5880
5880
|
Pressable,
|
|
5881
5881
|
{
|
|
5882
5882
|
href: link.href,
|
|
@@ -8501,7 +8501,7 @@ function AboutInteractiveTabs({
|
|
|
8501
8501
|
pattern,
|
|
8502
8502
|
patternOpacity
|
|
8503
8503
|
}) {
|
|
8504
|
-
const [activeTab, setActiveTab] =
|
|
8504
|
+
const [activeTab, setActiveTab] = React28.useState(tabs?.[0]?.id ?? "");
|
|
8505
8505
|
const activeContent = useMemo(() => {
|
|
8506
8506
|
return tabs?.find((tab) => tab.id === activeTab)?.content;
|
|
8507
8507
|
}, [tabs, activeTab]);
|
|
@@ -9041,6 +9041,7 @@ function AboutNetworkSpotlight({
|
|
|
9041
9041
|
spotlightCard,
|
|
9042
9042
|
spotlightCardSlot,
|
|
9043
9043
|
className,
|
|
9044
|
+
containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
|
|
9044
9045
|
contentClassName,
|
|
9045
9046
|
eyebrowClassName,
|
|
9046
9047
|
headingClassName,
|
|
@@ -9050,7 +9051,7 @@ function AboutNetworkSpotlight({
|
|
|
9050
9051
|
imageClassName,
|
|
9051
9052
|
spotlightCardClassName,
|
|
9052
9053
|
background,
|
|
9053
|
-
spacing,
|
|
9054
|
+
spacing = "py-32 md:py-32",
|
|
9054
9055
|
pattern,
|
|
9055
9056
|
patternOpacity,
|
|
9056
9057
|
optixFlowConfig
|
|
@@ -9071,7 +9072,7 @@ function AboutNetworkSpotlight({
|
|
|
9071
9072
|
/* @__PURE__ */ jsx("span", { children: item })
|
|
9072
9073
|
] }, index)) });
|
|
9073
9074
|
}, [highlightsSlot, highlights, highlightsClassName]);
|
|
9074
|
-
|
|
9075
|
+
useMemo(() => {
|
|
9075
9076
|
if (actionsSlot) return actionsSlot;
|
|
9076
9077
|
if (!actions || actions.length === 0) return null;
|
|
9077
9078
|
return actions.map((action, index) => {
|
|
@@ -9135,9 +9136,10 @@ function AboutNetworkSpotlight({
|
|
|
9135
9136
|
{
|
|
9136
9137
|
background,
|
|
9137
9138
|
spacing,
|
|
9138
|
-
className: cn(className),
|
|
9139
9139
|
pattern,
|
|
9140
9140
|
patternOpacity,
|
|
9141
|
+
className,
|
|
9142
|
+
containerClassName,
|
|
9141
9143
|
children: /* @__PURE__ */ jsxs(
|
|
9142
9144
|
"div",
|
|
9143
9145
|
{
|
|
@@ -9153,7 +9155,7 @@ function AboutNetworkSpotlight({
|
|
|
9153
9155
|
whileInView: { opacity: 1, x: 0 },
|
|
9154
9156
|
viewport: { once: true, margin: "-50px" },
|
|
9155
9157
|
transition: { duration: 0.5 },
|
|
9156
|
-
children: /* @__PURE__ */ jsxs("div", { className: "relative overflow-hidden rounded-3xl border border-white/10 shadow-2xl", children: [
|
|
9158
|
+
children: /* @__PURE__ */ jsxs("div", { className: "relative overflow-hidden rounded-3xl border border-white/10 shadow-2xl aspect-square md:aspect-auto", children: [
|
|
9157
9159
|
/* @__PURE__ */ jsx(
|
|
9158
9160
|
Img,
|
|
9159
9161
|
{
|
|
@@ -9164,7 +9166,7 @@ function AboutNetworkSpotlight({
|
|
|
9164
9166
|
}
|
|
9165
9167
|
),
|
|
9166
9168
|
/* @__PURE__ */ jsx("div", { className: "absolute inset-0 bg-linear-to-tr from-black/70 via-transparent to-transparent" }),
|
|
9167
|
-
/* @__PURE__ */ jsx("div", { className: "absolute bottom-6 left-6 right-6", children: spotlightCardContent })
|
|
9169
|
+
/* @__PURE__ */ jsx("div", { className: "absolute bottom-2 md:bottom-6 left-2 md:left-6 right-2 md:right-6", children: spotlightCardContent })
|
|
9168
9170
|
] })
|
|
9169
9171
|
}
|
|
9170
9172
|
),
|
|
@@ -9185,29 +9187,33 @@ function AboutNetworkSpotlight({
|
|
|
9185
9187
|
),
|
|
9186
9188
|
children: eyebrow
|
|
9187
9189
|
}
|
|
9188
|
-
) :
|
|
9190
|
+
) : eyebrow),
|
|
9189
9191
|
heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
|
|
9190
9192
|
"h2",
|
|
9191
9193
|
{
|
|
9192
9194
|
className: cn(
|
|
9193
|
-
"mt-2 text-3xl font-bold text-
|
|
9195
|
+
"mt-2 text-3xl font-bold md:text-4xl text-pretty",
|
|
9194
9196
|
headingClassName
|
|
9195
9197
|
),
|
|
9196
9198
|
children: heading
|
|
9197
9199
|
}
|
|
9198
|
-
) :
|
|
9200
|
+
) : heading),
|
|
9199
9201
|
description && (typeof description === "string" ? /* @__PURE__ */ jsx(
|
|
9200
9202
|
"p",
|
|
9201
9203
|
{
|
|
9202
|
-
className: cn(
|
|
9203
|
-
"mt-4 text-lg text-background/80",
|
|
9204
|
-
descriptionClassName
|
|
9205
|
-
),
|
|
9204
|
+
className: cn("mt-4 text-lg text-pretty", descriptionClassName),
|
|
9206
9205
|
children: description
|
|
9207
9206
|
}
|
|
9208
|
-
) :
|
|
9207
|
+
) : description),
|
|
9209
9208
|
(highlightsSlot || highlights && highlights.length > 0) && highlightsContent,
|
|
9210
|
-
|
|
9209
|
+
/* @__PURE__ */ jsx(
|
|
9210
|
+
BlockActions,
|
|
9211
|
+
{
|
|
9212
|
+
actions,
|
|
9213
|
+
actionsSlot,
|
|
9214
|
+
actionsClassName
|
|
9215
|
+
}
|
|
9216
|
+
)
|
|
9211
9217
|
]
|
|
9212
9218
|
}
|
|
9213
9219
|
)
|
|
@@ -12526,7 +12532,7 @@ function CtaVideoBackgroundHero({
|
|
|
12526
12532
|
pattern,
|
|
12527
12533
|
patternOpacity
|
|
12528
12534
|
}) {
|
|
12529
|
-
const [isModalOpen, setIsModalOpen] =
|
|
12535
|
+
const [isModalOpen, setIsModalOpen] = React28.useState(false);
|
|
12530
12536
|
const handleOpenModal = () => {
|
|
12531
12537
|
setIsModalOpen(true);
|
|
12532
12538
|
onModalOpen?.();
|
|
@@ -12714,7 +12720,7 @@ function CtaWorkflowTabs({
|
|
|
12714
12720
|
patternOpacity,
|
|
12715
12721
|
optixFlowConfig
|
|
12716
12722
|
}) {
|
|
12717
|
-
const [activeTab, setActiveTab] =
|
|
12723
|
+
const [activeTab, setActiveTab] = React28.useState(tabs?.[0]?.id || "");
|
|
12718
12724
|
const activeTabData = tabs?.find((tab) => tab.id === activeTab) || tabs?.[0];
|
|
12719
12725
|
const actionsContent = useMemo(() => {
|
|
12720
12726
|
if (actionsSlot) return actionsSlot;
|
|
@@ -13327,7 +13333,7 @@ function ContactFloatingBanner({
|
|
|
13327
13333
|
pattern,
|
|
13328
13334
|
patternOpacity
|
|
13329
13335
|
}) {
|
|
13330
|
-
const actionsContent =
|
|
13336
|
+
const actionsContent = React28.useMemo(() => {
|
|
13331
13337
|
if (actionsSlot) return actionsSlot;
|
|
13332
13338
|
if (actions && actions.length > 0) {
|
|
13333
13339
|
return actions.map((action, index) => {
|
|
@@ -13686,104 +13692,131 @@ function ContactCallback({
|
|
|
13686
13692
|
}
|
|
13687
13693
|
);
|
|
13688
13694
|
}
|
|
13695
|
+
var DEFAULT_STYLE_RULES = {
|
|
13696
|
+
formContainer: "",
|
|
13697
|
+
fieldsContainer: "",
|
|
13698
|
+
fieldClassName: "",
|
|
13699
|
+
formClassName: "space-y-6"
|
|
13700
|
+
};
|
|
13689
13701
|
var DEFAULT_FORM_FIELDS3 = [
|
|
13690
13702
|
{
|
|
13691
|
-
name: "
|
|
13703
|
+
name: "fullName",
|
|
13692
13704
|
type: "text",
|
|
13693
|
-
label: "
|
|
13694
|
-
placeholder: "
|
|
13705
|
+
label: "Full Name",
|
|
13706
|
+
placeholder: "Full Name",
|
|
13695
13707
|
required: true,
|
|
13696
13708
|
columnSpan: 6
|
|
13697
13709
|
},
|
|
13698
13710
|
{
|
|
13699
|
-
name: "
|
|
13700
|
-
type: "
|
|
13701
|
-
label: "
|
|
13702
|
-
placeholder: "
|
|
13711
|
+
name: "email",
|
|
13712
|
+
type: "email",
|
|
13713
|
+
label: "Email",
|
|
13714
|
+
placeholder: "your@email.com",
|
|
13703
13715
|
required: true,
|
|
13704
13716
|
columnSpan: 6
|
|
13705
13717
|
},
|
|
13706
13718
|
{
|
|
13707
|
-
name: "
|
|
13708
|
-
type: "
|
|
13709
|
-
label: "
|
|
13710
|
-
placeholder: "
|
|
13711
|
-
required: true,
|
|
13719
|
+
name: "phone",
|
|
13720
|
+
type: "tel",
|
|
13721
|
+
label: "Phone",
|
|
13722
|
+
placeholder: "+1 (555) 000-0000",
|
|
13712
13723
|
columnSpan: 12
|
|
13713
13724
|
},
|
|
13714
13725
|
{
|
|
13715
13726
|
name: "message",
|
|
13716
13727
|
type: "textarea",
|
|
13717
|
-
label: "Message",
|
|
13718
|
-
placeholder: "How can we help you?",
|
|
13728
|
+
label: "Your Message",
|
|
13729
|
+
placeholder: "How can we help you today?",
|
|
13719
13730
|
required: true,
|
|
13720
13731
|
rows: 4,
|
|
13721
13732
|
columnSpan: 12
|
|
13722
|
-
},
|
|
13723
|
-
{
|
|
13724
|
-
name: "privacyPolicy",
|
|
13725
|
-
type: "checkbox",
|
|
13726
|
-
label: "I agree to the privacy policy",
|
|
13727
|
-
required: true,
|
|
13728
|
-
columnSpan: 12
|
|
13729
13733
|
}
|
|
13730
13734
|
];
|
|
13731
13735
|
function ContactCard({
|
|
13732
|
-
heading,
|
|
13733
|
-
description,
|
|
13734
|
-
|
|
13735
|
-
|
|
13736
|
-
actionsClassName,
|
|
13736
|
+
heading = "Get In Touch",
|
|
13737
|
+
description = "We'd love to hear from you. Send us a message and we'll respond as soon as possible.",
|
|
13738
|
+
buttonText = "Send Message",
|
|
13739
|
+
buttonIcon,
|
|
13737
13740
|
contactOptions,
|
|
13738
13741
|
contactOptionsSlot,
|
|
13739
|
-
|
|
13740
|
-
|
|
13742
|
+
socialLinks,
|
|
13743
|
+
socialLinksSlot,
|
|
13744
|
+
formEngineSetup,
|
|
13741
13745
|
className,
|
|
13742
13746
|
containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
|
|
13743
13747
|
cardClassName,
|
|
13744
|
-
|
|
13745
|
-
successMessageClassName,
|
|
13746
|
-
errorMessageClassName,
|
|
13748
|
+
cardContentClassName,
|
|
13747
13749
|
infoPanelClassName,
|
|
13748
13750
|
headingClassName,
|
|
13749
13751
|
descriptionClassName,
|
|
13750
13752
|
contactOptionsClassName,
|
|
13753
|
+
socialLinksClassName,
|
|
13754
|
+
gridClassName,
|
|
13751
13755
|
background,
|
|
13752
13756
|
spacing = "py-16 md:py-32",
|
|
13753
13757
|
pattern,
|
|
13754
|
-
patternOpacity
|
|
13755
|
-
formConfig,
|
|
13756
|
-
onSubmit,
|
|
13757
|
-
onSuccess,
|
|
13758
|
-
onError
|
|
13758
|
+
patternOpacity
|
|
13759
13759
|
}) {
|
|
13760
|
-
const
|
|
13761
|
-
|
|
13762
|
-
|
|
13763
|
-
|
|
13764
|
-
|
|
13765
|
-
|
|
13766
|
-
|
|
13767
|
-
|
|
13768
|
-
|
|
13760
|
+
const formStyleRules = React28.useMemo(() => {
|
|
13761
|
+
return {
|
|
13762
|
+
formContainer: formEngineSetup?.formLayoutSettings?.styleRules?.formContainer ?? DEFAULT_STYLE_RULES.formContainer,
|
|
13763
|
+
fieldsContainer: formEngineSetup?.formLayoutSettings?.styleRules?.fieldsContainer ?? DEFAULT_STYLE_RULES.fieldsContainer,
|
|
13764
|
+
fieldClassName: formEngineSetup?.formLayoutSettings?.styleRules?.fieldClassName ?? DEFAULT_STYLE_RULES.fieldClassName,
|
|
13765
|
+
formClassName: formEngineSetup?.formLayoutSettings?.styleRules?.formClassName ?? DEFAULT_STYLE_RULES.formClassName,
|
|
13766
|
+
successMessageClassName: formEngineSetup?.formLayoutSettings?.styleRules?.successMessageClassName ?? DEFAULT_STYLE_RULES.successMessageClassName,
|
|
13767
|
+
errorMessageClassName: formEngineSetup?.formLayoutSettings?.styleRules?.errorMessageClassName ?? DEFAULT_STYLE_RULES.errorMessageClassName
|
|
13768
|
+
};
|
|
13769
|
+
}, [formEngineSetup?.formLayoutSettings?.styleRules]);
|
|
13770
|
+
const formFields = React28.useMemo(() => {
|
|
13771
|
+
if (formEngineSetup?.fields && formEngineSetup.fields.length > 0) {
|
|
13772
|
+
return formEngineSetup.fields;
|
|
13773
|
+
}
|
|
13774
|
+
return DEFAULT_FORM_FIELDS3;
|
|
13775
|
+
}, [formEngineSetup?.fields]);
|
|
13776
|
+
const contactOptionsContent = React28.useMemo(() => {
|
|
13769
13777
|
if (contactOptionsSlot) return contactOptionsSlot;
|
|
13770
13778
|
if (contactOptions && contactOptions.length > 0) {
|
|
13771
|
-
return contactOptions.map((option, key) => /* @__PURE__ */ jsxs(
|
|
13779
|
+
return contactOptions.map((option, key) => /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-4", children: [
|
|
13780
|
+
/* @__PURE__ */ jsx(
|
|
13781
|
+
DynamicIcon,
|
|
13782
|
+
{
|
|
13783
|
+
name: option.icon,
|
|
13784
|
+
size: 20,
|
|
13785
|
+
className: "shrink-0 text-muted-foreground"
|
|
13786
|
+
}
|
|
13787
|
+
),
|
|
13788
|
+
option.href ? /* @__PURE__ */ jsx(
|
|
13789
|
+
Pressable,
|
|
13790
|
+
{
|
|
13791
|
+
href: option.href,
|
|
13792
|
+
className: "text-sm font-medium text-muted-foreground",
|
|
13793
|
+
children: option.info
|
|
13794
|
+
}
|
|
13795
|
+
) : /* @__PURE__ */ jsx("span", { className: "text-sm font-medium text-muted-foreground", children: option.info })
|
|
13796
|
+
] }, key));
|
|
13797
|
+
}
|
|
13798
|
+
return null;
|
|
13799
|
+
}, [contactOptionsSlot, contactOptions]);
|
|
13800
|
+
const socialLinksContent = React28.useMemo(() => {
|
|
13801
|
+
if (socialLinksSlot) return socialLinksSlot;
|
|
13802
|
+
if (socialLinks && socialLinks.length > 0) {
|
|
13803
|
+
return socialLinks.map((social, key) => /* @__PURE__ */ jsx(
|
|
13772
13804
|
Pressable,
|
|
13773
13805
|
{
|
|
13774
|
-
|
|
13775
|
-
|
|
13776
|
-
|
|
13777
|
-
|
|
13778
|
-
|
|
13779
|
-
|
|
13780
|
-
|
|
13806
|
+
href: social.href,
|
|
13807
|
+
className: cn(
|
|
13808
|
+
"flex h-9 w-9 items-center justify-center",
|
|
13809
|
+
"rounded-full transition-colors",
|
|
13810
|
+
"text-muted-foreground hover:text-foreground"
|
|
13811
|
+
),
|
|
13812
|
+
"aria-label": social.label,
|
|
13813
|
+
children: /* @__PURE__ */ jsx(DynamicIcon, { name: social.icon, size: 18 })
|
|
13781
13814
|
},
|
|
13782
13815
|
key
|
|
13783
13816
|
));
|
|
13784
13817
|
}
|
|
13785
13818
|
return null;
|
|
13786
|
-
}, [
|
|
13819
|
+
}, [socialLinksSlot, socialLinks]);
|
|
13787
13820
|
return /* @__PURE__ */ jsx(
|
|
13788
13821
|
Section,
|
|
13789
13822
|
{
|
|
@@ -13793,82 +13826,87 @@ function ContactCard({
|
|
|
13793
13826
|
patternOpacity,
|
|
13794
13827
|
className,
|
|
13795
13828
|
containerClassName,
|
|
13796
|
-
children: /* @__PURE__ */ jsx("div", { className: "relative", children: /* @__PURE__ */ jsxs(
|
|
13797
|
-
|
|
13798
|
-
|
|
13799
|
-
|
|
13800
|
-
|
|
13801
|
-
|
|
13802
|
-
|
|
13803
|
-
|
|
13804
|
-
|
|
13805
|
-
|
|
13806
|
-
|
|
13807
|
-
|
|
13808
|
-
|
|
13809
|
-
|
|
13810
|
-
|
|
13811
|
-
|
|
13812
|
-
|
|
13813
|
-
|
|
13814
|
-
|
|
13815
|
-
|
|
13829
|
+
children: /* @__PURE__ */ jsx("div", { className: "relative", children: /* @__PURE__ */ jsxs(
|
|
13830
|
+
"div",
|
|
13831
|
+
{
|
|
13832
|
+
className: cn(
|
|
13833
|
+
"grid items-start gap-10 md:gap-12 grid-cols-1 lg:grid-cols-2",
|
|
13834
|
+
gridClassName
|
|
13835
|
+
),
|
|
13836
|
+
children: [
|
|
13837
|
+
/* @__PURE__ */ jsx(Card, { className: cn("order-2 lg:order-1 pt-0 pb-0", cardClassName), children: /* @__PURE__ */ jsx(CardContent, { className: cn("p-6 lg:p-8", cardContentClassName), children: formEngineSetup ? /* @__PURE__ */ jsx(
|
|
13838
|
+
FormEngine,
|
|
13839
|
+
{
|
|
13840
|
+
...formEngineSetup,
|
|
13841
|
+
formLayoutSettings: {
|
|
13842
|
+
...formEngineSetup.formLayoutSettings,
|
|
13843
|
+
formLayout: "standard",
|
|
13844
|
+
submitButtonSetup: {
|
|
13845
|
+
...formEngineSetup.formLayoutSettings?.submitButtonSetup,
|
|
13846
|
+
submitLabel: /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
13847
|
+
buttonIcon,
|
|
13848
|
+
buttonText
|
|
13849
|
+
] })
|
|
13850
|
+
},
|
|
13851
|
+
styleRules: formStyleRules
|
|
13816
13852
|
},
|
|
13817
|
-
|
|
13818
|
-
|
|
13819
|
-
|
|
13820
|
-
|
|
13821
|
-
|
|
13822
|
-
|
|
13823
|
-
|
|
13824
|
-
|
|
13825
|
-
|
|
13826
|
-
|
|
13827
|
-
|
|
13828
|
-
|
|
13829
|
-
|
|
13830
|
-
|
|
13831
|
-
|
|
13832
|
-
|
|
13833
|
-
|
|
13834
|
-
|
|
13835
|
-
|
|
13836
|
-
|
|
13837
|
-
|
|
13838
|
-
|
|
13839
|
-
|
|
13840
|
-
|
|
13841
|
-
|
|
13842
|
-
|
|
13843
|
-
|
|
13844
|
-
|
|
13845
|
-
|
|
13846
|
-
|
|
13847
|
-
|
|
13848
|
-
|
|
13849
|
-
|
|
13850
|
-
|
|
13851
|
-
|
|
13852
|
-
|
|
13853
|
-
|
|
13854
|
-
|
|
13855
|
-
|
|
13856
|
-
|
|
13857
|
-
) : description),
|
|
13858
|
-
/* @__PURE__ */ jsx(
|
|
13859
|
-
"div",
|
|
13860
|
-
{
|
|
13861
|
-
className: cn(
|
|
13862
|
-
"mt-4 space-y-4 w-full md:w-fit px-6 py-6 md:px-12 md:py-8 bg-muted rounded-xl text-sm md:text-normal flex flex-col items-start gap-1",
|
|
13863
|
-
contactOptionsClassName
|
|
13853
|
+
fields: formFields
|
|
13854
|
+
}
|
|
13855
|
+
) : null }) }),
|
|
13856
|
+
/* @__PURE__ */ jsxs(
|
|
13857
|
+
"div",
|
|
13858
|
+
{
|
|
13859
|
+
className: cn(
|
|
13860
|
+
"flex flex-col items-start gap-2 md:gap-4 order-1 lg:order-2",
|
|
13861
|
+
infoPanelClassName
|
|
13862
|
+
),
|
|
13863
|
+
children: [
|
|
13864
|
+
heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
|
|
13865
|
+
"h2",
|
|
13866
|
+
{
|
|
13867
|
+
className: cn(
|
|
13868
|
+
"text-4xl lg:text-6xl font-bold tracking-tight text-pretty",
|
|
13869
|
+
headingClassName
|
|
13870
|
+
),
|
|
13871
|
+
children: heading
|
|
13872
|
+
}
|
|
13873
|
+
) : heading),
|
|
13874
|
+
description && (typeof description === "string" ? /* @__PURE__ */ jsx(
|
|
13875
|
+
"p",
|
|
13876
|
+
{
|
|
13877
|
+
className: cn(
|
|
13878
|
+
"leading-relaxed text-pretty text-lg text-muted-foreground",
|
|
13879
|
+
descriptionClassName
|
|
13880
|
+
),
|
|
13881
|
+
children: description
|
|
13882
|
+
}
|
|
13883
|
+
) : description),
|
|
13884
|
+
contactOptionsContent && /* @__PURE__ */ jsx(
|
|
13885
|
+
"div",
|
|
13886
|
+
{
|
|
13887
|
+
className: cn(
|
|
13888
|
+
"mt-4 w-full rounded-xl bg-muted px-6 py-6 md:px-8 md:py-8 space-y-6",
|
|
13889
|
+
contactOptionsClassName
|
|
13890
|
+
),
|
|
13891
|
+
children: contactOptionsContent
|
|
13892
|
+
}
|
|
13864
13893
|
),
|
|
13865
|
-
|
|
13866
|
-
|
|
13867
|
-
|
|
13868
|
-
|
|
13869
|
-
|
|
13870
|
-
|
|
13871
|
-
|
|
13894
|
+
socialLinksContent && /* @__PURE__ */ jsx(
|
|
13895
|
+
"div",
|
|
13896
|
+
{
|
|
13897
|
+
className: cn(
|
|
13898
|
+
"mt-2 flex items-center gap-2",
|
|
13899
|
+
socialLinksClassName
|
|
13900
|
+
),
|
|
13901
|
+
children: socialLinksContent
|
|
13902
|
+
}
|
|
13903
|
+
)
|
|
13904
|
+
]
|
|
13905
|
+
}
|
|
13906
|
+
)
|
|
13907
|
+
]
|
|
13908
|
+
}
|
|
13909
|
+
) })
|
|
13872
13910
|
}
|
|
13873
13911
|
);
|
|
13874
13912
|
}
|
|
@@ -14336,7 +14374,7 @@ function ContactCatering({
|
|
|
14336
14374
|
onSuccess,
|
|
14337
14375
|
onError
|
|
14338
14376
|
});
|
|
14339
|
-
const actionsContent =
|
|
14377
|
+
const actionsContent = React28.useMemo(() => {
|
|
14340
14378
|
if (actionsSlot) return actionsSlot;
|
|
14341
14379
|
if (actions && actions.length > 0) {
|
|
14342
14380
|
return actions.map((action, index) => {
|
|
@@ -14580,7 +14618,7 @@ function ContactConsultation({
|
|
|
14580
14618
|
onSuccess,
|
|
14581
14619
|
onError
|
|
14582
14620
|
});
|
|
14583
|
-
const actionsContent =
|
|
14621
|
+
const actionsContent = React28.useMemo(() => {
|
|
14584
14622
|
if (actionsSlot) return actionsSlot;
|
|
14585
14623
|
if (actions && actions.length > 0) {
|
|
14586
14624
|
return actions.map((action, index) => {
|
|
@@ -14685,6 +14723,12 @@ function ContactConsultation({
|
|
|
14685
14723
|
}
|
|
14686
14724
|
);
|
|
14687
14725
|
}
|
|
14726
|
+
var DEFAULT_STYLE_RULES2 = {
|
|
14727
|
+
formContainer: "",
|
|
14728
|
+
fieldsContainer: "",
|
|
14729
|
+
fieldClassName: "",
|
|
14730
|
+
formClassName: "space-y-6"
|
|
14731
|
+
};
|
|
14688
14732
|
var DEFAULT_FORM_FIELDS7 = [
|
|
14689
14733
|
{
|
|
14690
14734
|
name: "firstName",
|
|
@@ -14727,88 +14771,43 @@ function ContactDark({
|
|
|
14727
14771
|
contactDescription = "Fill up the form and our team will get back to you within 24 hours.",
|
|
14728
14772
|
buttonText = "Submit",
|
|
14729
14773
|
buttonIcon,
|
|
14730
|
-
actions,
|
|
14731
|
-
actionsSlot,
|
|
14732
14774
|
contactOptions,
|
|
14733
14775
|
contactOptionsSlot,
|
|
14734
14776
|
socialLinks,
|
|
14735
14777
|
socialLinksSlot,
|
|
14736
|
-
|
|
14737
|
-
successMessage = "Thank you! Your message has been sent successfully.",
|
|
14778
|
+
formEngineSetup,
|
|
14738
14779
|
className,
|
|
14739
14780
|
headerClassName,
|
|
14740
14781
|
headingClassName,
|
|
14741
14782
|
descriptionClassName,
|
|
14742
14783
|
cardClassName,
|
|
14743
14784
|
formPanelClassName,
|
|
14744
|
-
formClassName,
|
|
14745
|
-
submitClassName,
|
|
14746
14785
|
infoPanelClassName,
|
|
14747
14786
|
contactOptionsClassName,
|
|
14748
14787
|
socialLinksClassName,
|
|
14749
|
-
successMessageClassName,
|
|
14750
|
-
errorMessageClassName,
|
|
14751
14788
|
background,
|
|
14752
14789
|
spacing = "py-8 md:py-32",
|
|
14753
14790
|
containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
|
|
14754
14791
|
pattern,
|
|
14755
|
-
patternOpacity
|
|
14756
|
-
formConfig,
|
|
14757
|
-
onSubmit,
|
|
14758
|
-
onSuccess,
|
|
14759
|
-
onError
|
|
14792
|
+
patternOpacity
|
|
14760
14793
|
}) {
|
|
14761
|
-
const {
|
|
14762
|
-
|
|
14763
|
-
|
|
14764
|
-
|
|
14765
|
-
|
|
14766
|
-
|
|
14767
|
-
|
|
14768
|
-
|
|
14769
|
-
|
|
14770
|
-
|
|
14771
|
-
|
|
14772
|
-
|
|
14773
|
-
|
|
14774
|
-
resetUpload();
|
|
14775
|
-
onSuccess?.(data);
|
|
14776
|
-
},
|
|
14777
|
-
onError,
|
|
14778
|
-
resetOnSuccess: formConfig?.resetOnSuccess !== false,
|
|
14779
|
-
uploadTokens
|
|
14780
|
-
});
|
|
14781
|
-
const actionsContent = React25.useMemo(() => {
|
|
14782
|
-
if (actionsSlot) return actionsSlot;
|
|
14783
|
-
if (actions && actions.length > 0) {
|
|
14784
|
-
return actions.map((action, index) => {
|
|
14785
|
-
const {
|
|
14786
|
-
label,
|
|
14787
|
-
icon,
|
|
14788
|
-
iconAfter,
|
|
14789
|
-
children,
|
|
14790
|
-
className: actionClassName,
|
|
14791
|
-
...pressableProps
|
|
14792
|
-
} = action;
|
|
14793
|
-
return /* @__PURE__ */ jsx(
|
|
14794
|
-
Pressable,
|
|
14795
|
-
{
|
|
14796
|
-
asButton: true,
|
|
14797
|
-
className: actionClassName,
|
|
14798
|
-
...pressableProps,
|
|
14799
|
-
children: children ?? /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
14800
|
-
icon,
|
|
14801
|
-
label,
|
|
14802
|
-
iconAfter
|
|
14803
|
-
] })
|
|
14804
|
-
},
|
|
14805
|
-
index
|
|
14806
|
-
);
|
|
14807
|
-
});
|
|
14794
|
+
const formStyleRules = React28.useMemo(() => {
|
|
14795
|
+
return {
|
|
14796
|
+
formContainer: formEngineSetup?.formLayoutSettings?.styleRules?.formContainer ?? DEFAULT_STYLE_RULES2.formContainer,
|
|
14797
|
+
fieldsContainer: formEngineSetup?.formLayoutSettings?.styleRules?.fieldsContainer ?? DEFAULT_STYLE_RULES2.fieldsContainer,
|
|
14798
|
+
fieldClassName: formEngineSetup?.formLayoutSettings?.styleRules?.fieldClassName ?? DEFAULT_STYLE_RULES2.fieldClassName,
|
|
14799
|
+
formClassName: formEngineSetup?.formLayoutSettings?.styleRules?.formClassName ?? DEFAULT_STYLE_RULES2.formClassName,
|
|
14800
|
+
successMessageClassName: formEngineSetup?.formLayoutSettings?.styleRules?.successMessageClassName ?? DEFAULT_STYLE_RULES2.successMessageClassName,
|
|
14801
|
+
errorMessageClassName: formEngineSetup?.formLayoutSettings?.styleRules?.errorMessageClassName ?? DEFAULT_STYLE_RULES2.errorMessageClassName
|
|
14802
|
+
};
|
|
14803
|
+
}, [formEngineSetup?.formLayoutSettings?.styleRules]);
|
|
14804
|
+
const formFields = React28.useMemo(() => {
|
|
14805
|
+
if (formEngineSetup?.fields && formEngineSetup.fields.length > 0) {
|
|
14806
|
+
return formEngineSetup.fields;
|
|
14808
14807
|
}
|
|
14809
|
-
return
|
|
14810
|
-
}, [
|
|
14811
|
-
const contactOptionsContent =
|
|
14808
|
+
return DEFAULT_FORM_FIELDS7;
|
|
14809
|
+
}, [formEngineSetup?.fields]);
|
|
14810
|
+
const contactOptionsContent = React28.useMemo(() => {
|
|
14812
14811
|
if (contactOptionsSlot) return contactOptionsSlot;
|
|
14813
14812
|
if (contactOptions && contactOptions.length > 0) {
|
|
14814
14813
|
return contactOptions.map((option, key) => /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3", children: [
|
|
@@ -14832,7 +14831,7 @@ function ContactDark({
|
|
|
14832
14831
|
}
|
|
14833
14832
|
return null;
|
|
14834
14833
|
}, [contactOptionsSlot, contactOptions]);
|
|
14835
|
-
const socialLinksContent =
|
|
14834
|
+
const socialLinksContent = React28.useMemo(() => {
|
|
14836
14835
|
if (socialLinksSlot) return socialLinksSlot;
|
|
14837
14836
|
if (socialLinks && socialLinks.length > 0) {
|
|
14838
14837
|
return socialLinks.map((social, key) => /* @__PURE__ */ jsx(
|
|
@@ -14862,124 +14861,102 @@ function ContactDark({
|
|
|
14862
14861
|
patternOpacity,
|
|
14863
14862
|
className,
|
|
14864
14863
|
containerClassName,
|
|
14865
|
-
children: /* @__PURE__ */
|
|
14866
|
-
|
|
14867
|
-
|
|
14868
|
-
|
|
14869
|
-
|
|
14870
|
-
|
|
14871
|
-
|
|
14872
|
-
|
|
14873
|
-
|
|
14874
|
-
|
|
14875
|
-
|
|
14876
|
-
|
|
14877
|
-
|
|
14878
|
-
|
|
14879
|
-
|
|
14880
|
-
|
|
14881
|
-
|
|
14882
|
-
|
|
14883
|
-
|
|
14884
|
-
|
|
14885
|
-
|
|
14886
|
-
) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description }))
|
|
14887
|
-
] }),
|
|
14888
|
-
/* @__PURE__ */ jsxs(
|
|
14889
|
-
Card,
|
|
14890
|
-
{
|
|
14891
|
-
className: cn(
|
|
14892
|
-
"grid gap-0 overflow-hidden grid-cols-1 lg:grid-cols-2 pt-0 pb-0",
|
|
14893
|
-
cardClassName
|
|
14894
|
-
),
|
|
14895
|
-
children: [
|
|
14896
|
-
/* @__PURE__ */ jsx("div", { className: cn("p-6 lg:p-12", formPanelClassName), children: /* @__PURE__ */ jsxs(
|
|
14897
|
-
Form,
|
|
14898
|
-
{
|
|
14899
|
-
form,
|
|
14900
|
-
notificationConfig: {
|
|
14901
|
-
submissionError,
|
|
14902
|
-
successMessage
|
|
14903
|
-
},
|
|
14904
|
-
styleConfig: {
|
|
14905
|
-
formClassName: cn("space-y-6", formClassName),
|
|
14906
|
-
successMessageClassName,
|
|
14907
|
-
errorMessageClassName
|
|
14908
|
-
},
|
|
14909
|
-
formConfig: {
|
|
14910
|
-
endpoint: formConfig?.endpoint,
|
|
14911
|
-
method: formMethod,
|
|
14912
|
-
submissionConfig: formConfig?.submissionConfig
|
|
14913
|
-
},
|
|
14914
|
-
onNewSubmission: () => {
|
|
14915
|
-
resetUpload();
|
|
14916
|
-
resetSubmissionState();
|
|
14864
|
+
children: /* @__PURE__ */ jsx("div", { className: "relative", children: /* @__PURE__ */ jsxs(
|
|
14865
|
+
Card,
|
|
14866
|
+
{
|
|
14867
|
+
className: cn(
|
|
14868
|
+
"grid gap-0 overflow-hidden grid-cols-1 lg:grid-cols-2 pt-0 pb-0",
|
|
14869
|
+
cardClassName
|
|
14870
|
+
),
|
|
14871
|
+
children: [
|
|
14872
|
+
/* @__PURE__ */ jsx("div", { className: cn("p-6 lg:p-12", formPanelClassName), children: formEngineSetup ? /* @__PURE__ */ jsx(
|
|
14873
|
+
FormEngine,
|
|
14874
|
+
{
|
|
14875
|
+
...formEngineSetup,
|
|
14876
|
+
formLayoutSettings: {
|
|
14877
|
+
...formEngineSetup.formLayoutSettings,
|
|
14878
|
+
formLayout: "standard",
|
|
14879
|
+
submitButtonSetup: {
|
|
14880
|
+
...formEngineSetup.formLayoutSettings?.submitButtonSetup,
|
|
14881
|
+
submitLabel: /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
14882
|
+
buttonIcon,
|
|
14883
|
+
buttonText
|
|
14884
|
+
] })
|
|
14917
14885
|
},
|
|
14918
|
-
|
|
14919
|
-
|
|
14920
|
-
|
|
14921
|
-
|
|
14922
|
-
|
|
14923
|
-
|
|
14924
|
-
|
|
14886
|
+
styleRules: formStyleRules
|
|
14887
|
+
},
|
|
14888
|
+
fields: formFields
|
|
14889
|
+
}
|
|
14890
|
+
) : null }),
|
|
14891
|
+
/* @__PURE__ */ jsxs(
|
|
14892
|
+
"div",
|
|
14893
|
+
{
|
|
14894
|
+
className: cn(
|
|
14895
|
+
"flex flex-col justify-between bg-primary p-6 text-primary-foreground lg:p-8",
|
|
14896
|
+
infoPanelClassName
|
|
14897
|
+
),
|
|
14898
|
+
children: [
|
|
14899
|
+
/* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsxs(
|
|
14900
|
+
"div",
|
|
14901
|
+
{
|
|
14902
|
+
className: cn(
|
|
14903
|
+
"pb-6 md:pb-8 border-b-2 border-border/50 mb-6 md:mb-8 text-left",
|
|
14904
|
+
headerClassName
|
|
14905
|
+
),
|
|
14906
|
+
children: [
|
|
14907
|
+
heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
|
|
14908
|
+
"h2",
|
|
14925
14909
|
{
|
|
14926
|
-
|
|
14927
|
-
|
|
14928
|
-
|
|
14929
|
-
|
|
14930
|
-
|
|
14910
|
+
className: cn(
|
|
14911
|
+
"text-3xl font-bold tracking-tight text-pretty md:text-5xl",
|
|
14912
|
+
headingClassName
|
|
14913
|
+
),
|
|
14914
|
+
children: heading
|
|
14931
14915
|
}
|
|
14932
|
-
)
|
|
14933
|
-
|
|
14934
|
-
|
|
14935
|
-
|
|
14936
|
-
|
|
14937
|
-
|
|
14938
|
-
|
|
14939
|
-
|
|
14940
|
-
|
|
14941
|
-
|
|
14942
|
-
|
|
14943
|
-
|
|
14944
|
-
|
|
14945
|
-
|
|
14946
|
-
|
|
14947
|
-
|
|
14948
|
-
|
|
14949
|
-
)
|
|
14950
|
-
]
|
|
14951
|
-
}
|
|
14952
|
-
) }),
|
|
14953
|
-
/* @__PURE__ */ jsxs(
|
|
14954
|
-
"div",
|
|
14955
|
-
{
|
|
14956
|
-
className: cn(
|
|
14957
|
-
"flex flex-col justify-between bg-primary p-6 text-primary-foreground lg:p-8",
|
|
14958
|
-
infoPanelClassName
|
|
14959
|
-
),
|
|
14960
|
-
children: [
|
|
14961
|
-
/* @__PURE__ */ jsxs("div", { children: [
|
|
14962
|
-
contactHeading && (typeof contactHeading === "string" ? /* @__PURE__ */ jsx("h3", { className: "mb-3 text-xl font-semibold", children: contactHeading }) : /* @__PURE__ */ jsx("div", { className: "mb-3", children: contactHeading })),
|
|
14963
|
-
contactDescription && (typeof contactDescription === "string" ? /* @__PURE__ */ jsx("p", { className: "mb-8 text-sm text-primary-foreground/80", children: contactDescription }) : /* @__PURE__ */ jsx("div", { className: "mb-8", children: contactDescription })),
|
|
14964
|
-
/* @__PURE__ */ jsx("div", { className: cn("space-y-4", contactOptionsClassName), children: contactOptionsContent })
|
|
14965
|
-
] }),
|
|
14916
|
+
) : heading),
|
|
14917
|
+
description && (typeof description === "string" ? /* @__PURE__ */ jsx(
|
|
14918
|
+
"p",
|
|
14919
|
+
{
|
|
14920
|
+
className: cn(
|
|
14921
|
+
"leading-relaxed text-balance",
|
|
14922
|
+
descriptionClassName
|
|
14923
|
+
),
|
|
14924
|
+
children: description
|
|
14925
|
+
}
|
|
14926
|
+
) : description)
|
|
14927
|
+
]
|
|
14928
|
+
}
|
|
14929
|
+
) }),
|
|
14930
|
+
/* @__PURE__ */ jsxs("div", { className: "flex flex-col items-start gap-4", children: [
|
|
14931
|
+
contactHeading && (typeof contactHeading === "string" ? /* @__PURE__ */ jsx("h3", { className: "text-xl font-semibold", children: contactHeading }) : contactHeading),
|
|
14932
|
+
contactDescription && (typeof contactDescription === "string" ? /* @__PURE__ */ jsx("p", { className: "text-sm text-primary-foreground/80", children: contactDescription }) : contactDescription),
|
|
14966
14933
|
/* @__PURE__ */ jsx(
|
|
14967
14934
|
"div",
|
|
14968
14935
|
{
|
|
14969
14936
|
className: cn(
|
|
14970
|
-
"
|
|
14971
|
-
|
|
14937
|
+
"pt-6 md:pt-8 space-y-4",
|
|
14938
|
+
contactOptionsClassName
|
|
14972
14939
|
),
|
|
14973
|
-
children:
|
|
14940
|
+
children: contactOptionsContent
|
|
14974
14941
|
}
|
|
14975
14942
|
)
|
|
14976
|
-
]
|
|
14977
|
-
|
|
14978
|
-
|
|
14979
|
-
|
|
14980
|
-
|
|
14981
|
-
|
|
14982
|
-
|
|
14943
|
+
] }),
|
|
14944
|
+
/* @__PURE__ */ jsx(
|
|
14945
|
+
"div",
|
|
14946
|
+
{
|
|
14947
|
+
className: cn(
|
|
14948
|
+
"mt-8 flex items-center gap-4",
|
|
14949
|
+
socialLinksClassName
|
|
14950
|
+
),
|
|
14951
|
+
children: socialLinksContent
|
|
14952
|
+
}
|
|
14953
|
+
)
|
|
14954
|
+
]
|
|
14955
|
+
}
|
|
14956
|
+
)
|
|
14957
|
+
]
|
|
14958
|
+
}
|
|
14959
|
+
) })
|
|
14983
14960
|
}
|
|
14984
14961
|
);
|
|
14985
14962
|
}
|
|
@@ -15328,32 +15305,12 @@ function ContactDemo({
|
|
|
15328
15305
|
}
|
|
15329
15306
|
);
|
|
15330
15307
|
}
|
|
15331
|
-
var
|
|
15332
|
-
|
|
15333
|
-
|
|
15334
|
-
|
|
15335
|
-
|
|
15336
|
-
|
|
15337
|
-
},
|
|
15338
|
-
{
|
|
15339
|
-
icon: "lucide/mail",
|
|
15340
|
-
title: "Email Support",
|
|
15341
|
-
subtitle: "emergency@support.com",
|
|
15342
|
-
href: "mailto:emergency@support.com"
|
|
15343
|
-
},
|
|
15344
|
-
{
|
|
15345
|
-
icon: "lucide/message-circle",
|
|
15346
|
-
title: "Live Chat",
|
|
15347
|
-
subtitle: "24/7 Available",
|
|
15348
|
-
href: "#chat"
|
|
15349
|
-
},
|
|
15350
|
-
{
|
|
15351
|
-
icon: "lucide/map-pin",
|
|
15352
|
-
title: "Visit Us",
|
|
15353
|
-
subtitle: "123 Support Lane",
|
|
15354
|
-
href: "#location"
|
|
15355
|
-
}
|
|
15356
|
-
];
|
|
15308
|
+
var DEFAULT_STYLE_RULES3 = {
|
|
15309
|
+
formContainer: "",
|
|
15310
|
+
fieldsContainer: "",
|
|
15311
|
+
fieldClassName: "",
|
|
15312
|
+
formClassName: "space-y-4"
|
|
15313
|
+
};
|
|
15357
15314
|
var PRIORITIES = [
|
|
15358
15315
|
{
|
|
15359
15316
|
value: "critical",
|
|
@@ -15428,281 +15385,196 @@ var DEFAULT_FORM_FIELDS9 = [
|
|
|
15428
15385
|
function ContactEmergency({
|
|
15429
15386
|
heading,
|
|
15430
15387
|
description,
|
|
15431
|
-
contactItems
|
|
15388
|
+
contactItems,
|
|
15432
15389
|
buttonText = "Submit Emergency Request",
|
|
15433
15390
|
buttonIcon,
|
|
15391
|
+
formEngineSetup,
|
|
15392
|
+
className,
|
|
15393
|
+
headerClassName,
|
|
15394
|
+
headingClassName,
|
|
15395
|
+
descriptionClassName,
|
|
15396
|
+
spacing = "py-16 md:py-32",
|
|
15397
|
+
containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
|
|
15398
|
+
background,
|
|
15399
|
+
pattern,
|
|
15400
|
+
patternOpacity
|
|
15401
|
+
}) {
|
|
15402
|
+
const formStyleRules = React28.useMemo(() => {
|
|
15403
|
+
return {
|
|
15404
|
+
formContainer: formEngineSetup?.formLayoutSettings?.styleRules?.formContainer ?? DEFAULT_STYLE_RULES3.formContainer,
|
|
15405
|
+
fieldsContainer: formEngineSetup?.formLayoutSettings?.styleRules?.fieldsContainer ?? DEFAULT_STYLE_RULES3.fieldsContainer,
|
|
15406
|
+
fieldClassName: formEngineSetup?.formLayoutSettings?.styleRules?.fieldClassName ?? DEFAULT_STYLE_RULES3.fieldClassName,
|
|
15407
|
+
formClassName: formEngineSetup?.formLayoutSettings?.styleRules?.formClassName ?? DEFAULT_STYLE_RULES3.formClassName,
|
|
15408
|
+
successMessageClassName: formEngineSetup?.formLayoutSettings?.styleRules?.successMessageClassName ?? DEFAULT_STYLE_RULES3.successMessageClassName,
|
|
15409
|
+
errorMessageClassName: formEngineSetup?.formLayoutSettings?.styleRules?.errorMessageClassName ?? DEFAULT_STYLE_RULES3.errorMessageClassName
|
|
15410
|
+
};
|
|
15411
|
+
}, [formEngineSetup?.formLayoutSettings?.styleRules]);
|
|
15412
|
+
const formFields = React28.useMemo(() => {
|
|
15413
|
+
if (formEngineSetup?.fields && formEngineSetup.fields.length > 0) {
|
|
15414
|
+
return formEngineSetup.fields;
|
|
15415
|
+
}
|
|
15416
|
+
return DEFAULT_FORM_FIELDS9;
|
|
15417
|
+
}, [formEngineSetup?.fields]);
|
|
15418
|
+
return /* @__PURE__ */ jsx(
|
|
15419
|
+
Section,
|
|
15420
|
+
{
|
|
15421
|
+
background,
|
|
15422
|
+
spacing,
|
|
15423
|
+
pattern,
|
|
15424
|
+
patternOpacity,
|
|
15425
|
+
className,
|
|
15426
|
+
containerClassName,
|
|
15427
|
+
children: /* @__PURE__ */ jsxs("div", { className: "grid md:grid-cols-2 gap-12 md:gap-28", children: [
|
|
15428
|
+
/* @__PURE__ */ jsx("div", { className: "h-full", children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-start justify-between h-full gap-8 md:gap-12", children: [
|
|
15429
|
+
/* @__PURE__ */ jsxs(
|
|
15430
|
+
"div",
|
|
15431
|
+
{
|
|
15432
|
+
className: cn(
|
|
15433
|
+
"flex flex-col items-start gap-4 text-left",
|
|
15434
|
+
headerClassName
|
|
15435
|
+
),
|
|
15436
|
+
children: [
|
|
15437
|
+
heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
|
|
15438
|
+
"h2",
|
|
15439
|
+
{
|
|
15440
|
+
className: cn(
|
|
15441
|
+
"text-4xl lg:text-5xl xl:text-6xl font-bold text-pretty",
|
|
15442
|
+
headingClassName
|
|
15443
|
+
),
|
|
15444
|
+
children: heading
|
|
15445
|
+
}
|
|
15446
|
+
) : heading),
|
|
15447
|
+
description && (typeof description === "string" ? /* @__PURE__ */ jsx(
|
|
15448
|
+
"p",
|
|
15449
|
+
{
|
|
15450
|
+
className: cn(
|
|
15451
|
+
"leading-relaxed text-pretty md:text-balance text-lg",
|
|
15452
|
+
descriptionClassName
|
|
15453
|
+
),
|
|
15454
|
+
children: description
|
|
15455
|
+
}
|
|
15456
|
+
) : description)
|
|
15457
|
+
]
|
|
15458
|
+
}
|
|
15459
|
+
),
|
|
15460
|
+
contactItems && contactItems.length > 0 && /* @__PURE__ */ jsx("div", { className: "grid grid-cols-1 gap-4 md:gap-6 w-full", children: contactItems.map((item, index) => /* @__PURE__ */ jsx(
|
|
15461
|
+
Pressable,
|
|
15462
|
+
{
|
|
15463
|
+
href: item.href,
|
|
15464
|
+
className: cn(
|
|
15465
|
+
"rounded-xl border bg-transparent hover:bg-muted ring-2",
|
|
15466
|
+
"px-4 py-4 flex",
|
|
15467
|
+
"justify-start items-start transition-all",
|
|
15468
|
+
"duration-500 hover:text-muted-foreground",
|
|
15469
|
+
item.className
|
|
15470
|
+
),
|
|
15471
|
+
children: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-4", children: [
|
|
15472
|
+
item.icon ? /* @__PURE__ */ jsx("div", { className: "flex items-center justify-center p-2 rounded-xl border bg-primary text-primary-foreground", children: /* @__PURE__ */ jsx(
|
|
15473
|
+
DynamicIcon,
|
|
15474
|
+
{
|
|
15475
|
+
name: item.icon,
|
|
15476
|
+
size: item.iconSize ?? 24
|
|
15477
|
+
}
|
|
15478
|
+
) }) : null,
|
|
15479
|
+
/* @__PURE__ */ jsxs("div", { children: [
|
|
15480
|
+
/* @__PURE__ */ jsx("p", { className: "font-bold text-xs uppercase opacity-70", children: item.title }),
|
|
15481
|
+
/* @__PURE__ */ jsx("p", { className: "text-md font-medium", children: item.subtitle })
|
|
15482
|
+
] })
|
|
15483
|
+
] })
|
|
15484
|
+
},
|
|
15485
|
+
index
|
|
15486
|
+
)) })
|
|
15487
|
+
] }) }),
|
|
15488
|
+
/* @__PURE__ */ jsx("div", { className: "p-6", children: formEngineSetup ? /* @__PURE__ */ jsx(
|
|
15489
|
+
FormEngine,
|
|
15490
|
+
{
|
|
15491
|
+
...formEngineSetup,
|
|
15492
|
+
formLayoutSettings: {
|
|
15493
|
+
...formEngineSetup.formLayoutSettings,
|
|
15494
|
+
formLayout: "standard",
|
|
15495
|
+
submitButtonSetup: {
|
|
15496
|
+
...formEngineSetup.formLayoutSettings?.submitButtonSetup,
|
|
15497
|
+
submitLabel: /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
15498
|
+
buttonIcon,
|
|
15499
|
+
buttonText
|
|
15500
|
+
] })
|
|
15501
|
+
},
|
|
15502
|
+
styleRules: formStyleRules
|
|
15503
|
+
},
|
|
15504
|
+
fields: formFields
|
|
15505
|
+
}
|
|
15506
|
+
) : null })
|
|
15507
|
+
] })
|
|
15508
|
+
}
|
|
15509
|
+
);
|
|
15510
|
+
}
|
|
15511
|
+
var DEFAULT_FORM_FIELDS10 = [
|
|
15512
|
+
{
|
|
15513
|
+
name: "first_name",
|
|
15514
|
+
type: "text",
|
|
15515
|
+
label: "First Name",
|
|
15516
|
+
placeholder: "John",
|
|
15517
|
+
required: true,
|
|
15518
|
+
columnSpan: 6
|
|
15519
|
+
},
|
|
15520
|
+
{
|
|
15521
|
+
name: "last_name",
|
|
15522
|
+
type: "text",
|
|
15523
|
+
label: "Last Name",
|
|
15524
|
+
placeholder: "Doe",
|
|
15525
|
+
required: true,
|
|
15526
|
+
columnSpan: 6
|
|
15527
|
+
},
|
|
15528
|
+
{
|
|
15529
|
+
name: "email",
|
|
15530
|
+
type: "email",
|
|
15531
|
+
label: "Email",
|
|
15532
|
+
placeholder: "john@example.com",
|
|
15533
|
+
required: true,
|
|
15534
|
+
columnSpan: 12
|
|
15535
|
+
},
|
|
15536
|
+
{
|
|
15537
|
+
name: "phone",
|
|
15538
|
+
type: "tel",
|
|
15539
|
+
label: "Phone",
|
|
15540
|
+
placeholder: "+1 (555) 000-0000",
|
|
15541
|
+
required: true,
|
|
15542
|
+
columnSpan: 12
|
|
15543
|
+
},
|
|
15544
|
+
{
|
|
15545
|
+
name: "message",
|
|
15546
|
+
type: "textarea",
|
|
15547
|
+
label: "Message",
|
|
15548
|
+
placeholder: "Your message...",
|
|
15549
|
+
required: true,
|
|
15550
|
+
rows: 4,
|
|
15551
|
+
columnSpan: 12
|
|
15552
|
+
}
|
|
15553
|
+
];
|
|
15554
|
+
function ContactEvent({
|
|
15555
|
+
heading,
|
|
15556
|
+
description,
|
|
15557
|
+
buttonText = "Submit",
|
|
15558
|
+
buttonIcon,
|
|
15434
15559
|
actions,
|
|
15435
15560
|
actionsSlot,
|
|
15436
|
-
formFields =
|
|
15437
|
-
successMessage = "Thank you! Your
|
|
15561
|
+
formFields = DEFAULT_FORM_FIELDS10,
|
|
15562
|
+
successMessage = "Thank you! Your message has been sent successfully.",
|
|
15438
15563
|
className,
|
|
15564
|
+
containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
|
|
15439
15565
|
headerClassName,
|
|
15440
15566
|
headingClassName,
|
|
15441
15567
|
descriptionClassName,
|
|
15568
|
+
cardClassName,
|
|
15569
|
+
cardContentClassName,
|
|
15442
15570
|
formClassName,
|
|
15443
15571
|
submitClassName,
|
|
15444
15572
|
successMessageClassName,
|
|
15445
15573
|
errorMessageClassName,
|
|
15446
|
-
|
|
15447
|
-
|
|
15448
|
-
background,
|
|
15574
|
+
background = "white",
|
|
15575
|
+
spacing = "xl",
|
|
15449
15576
|
pattern,
|
|
15450
|
-
patternOpacity,
|
|
15451
|
-
formConfig,
|
|
15452
|
-
onSubmit,
|
|
15453
|
-
onSuccess,
|
|
15454
|
-
onError
|
|
15455
|
-
}) {
|
|
15456
|
-
const {
|
|
15457
|
-
uploadTokens,
|
|
15458
|
-
uploadProgress,
|
|
15459
|
-
isUploading,
|
|
15460
|
-
uploadFiles,
|
|
15461
|
-
removeFile,
|
|
15462
|
-
resetUpload
|
|
15463
|
-
} = useFileUpload({ onError });
|
|
15464
|
-
const { form, submissionError, formMethod, resetSubmissionState } = useContactForm({
|
|
15465
|
-
formFields,
|
|
15466
|
-
formConfig,
|
|
15467
|
-
onSubmit,
|
|
15468
|
-
onSuccess: (data) => {
|
|
15469
|
-
resetUpload();
|
|
15470
|
-
onSuccess?.(data);
|
|
15471
|
-
},
|
|
15472
|
-
onError,
|
|
15473
|
-
resetOnSuccess: formConfig?.resetOnSuccess !== false,
|
|
15474
|
-
uploadTokens
|
|
15475
|
-
});
|
|
15476
|
-
const otherFields = formFields.filter((f) => f.name !== "priority");
|
|
15477
|
-
const actionsContent = useMemo(() => {
|
|
15478
|
-
if (actionsSlot) return actionsSlot;
|
|
15479
|
-
if (actions && actions.length > 0) {
|
|
15480
|
-
return actions.map((action, index) => {
|
|
15481
|
-
const {
|
|
15482
|
-
label,
|
|
15483
|
-
icon,
|
|
15484
|
-
iconAfter,
|
|
15485
|
-
children,
|
|
15486
|
-
className: actionClassName,
|
|
15487
|
-
...pressableProps
|
|
15488
|
-
} = action;
|
|
15489
|
-
return /* @__PURE__ */ jsx(
|
|
15490
|
-
Pressable,
|
|
15491
|
-
{
|
|
15492
|
-
asButton: true,
|
|
15493
|
-
className: actionClassName,
|
|
15494
|
-
...pressableProps,
|
|
15495
|
-
children: children ?? /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
15496
|
-
icon,
|
|
15497
|
-
label,
|
|
15498
|
-
iconAfter
|
|
15499
|
-
] })
|
|
15500
|
-
},
|
|
15501
|
-
index
|
|
15502
|
-
);
|
|
15503
|
-
});
|
|
15504
|
-
}
|
|
15505
|
-
return null;
|
|
15506
|
-
}, [actionsSlot, actions]);
|
|
15507
|
-
return /* @__PURE__ */ jsx(
|
|
15508
|
-
Section,
|
|
15509
|
-
{
|
|
15510
|
-
background,
|
|
15511
|
-
spacing,
|
|
15512
|
-
pattern,
|
|
15513
|
-
patternOpacity,
|
|
15514
|
-
className,
|
|
15515
|
-
containerClassName,
|
|
15516
|
-
children: /* @__PURE__ */ jsx("div", { className: "relative", children: /* @__PURE__ */ jsxs(
|
|
15517
|
-
Form,
|
|
15518
|
-
{
|
|
15519
|
-
form,
|
|
15520
|
-
notificationConfig: {
|
|
15521
|
-
submissionError,
|
|
15522
|
-
successMessage
|
|
15523
|
-
},
|
|
15524
|
-
styleConfig: {
|
|
15525
|
-
formClassName,
|
|
15526
|
-
successMessageClassName,
|
|
15527
|
-
errorMessageClassName
|
|
15528
|
-
},
|
|
15529
|
-
formConfig: {
|
|
15530
|
-
endpoint: formConfig?.endpoint,
|
|
15531
|
-
method: formMethod,
|
|
15532
|
-
submissionConfig: formConfig?.submissionConfig
|
|
15533
|
-
},
|
|
15534
|
-
onNewSubmission: () => {
|
|
15535
|
-
resetUpload();
|
|
15536
|
-
resetSubmissionState();
|
|
15537
|
-
},
|
|
15538
|
-
children: [
|
|
15539
|
-
/* @__PURE__ */ jsx("div", { className: "flex", children: /* @__PURE__ */ jsxs("div", { className: cn("p-0 md:p-12"), children: [
|
|
15540
|
-
/* @__PURE__ */ jsx("div", { className: "grid md:grid-cols-2 gap-12 md:gap-24", children: /* @__PURE__ */ jsx("div", { className: "border-b border-border/60 p-6 md:border-b-0 md:border-r md:border-border/60", children: /* @__PURE__ */ jsx("div", { className: "flex flex-col items-start gap-8 md:gap-12", children: /* @__PURE__ */ jsxs(
|
|
15541
|
-
"div",
|
|
15542
|
-
{
|
|
15543
|
-
className: cn(
|
|
15544
|
-
"flex flex-col items-start gap-4 text-left",
|
|
15545
|
-
headerClassName
|
|
15546
|
-
),
|
|
15547
|
-
children: [
|
|
15548
|
-
heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
|
|
15549
|
-
"h2",
|
|
15550
|
-
{
|
|
15551
|
-
className: cn(
|
|
15552
|
-
"text-4xl lg:text-5xl xl:text-6xl font-bold",
|
|
15553
|
-
headingClassName
|
|
15554
|
-
),
|
|
15555
|
-
children: heading
|
|
15556
|
-
}
|
|
15557
|
-
) : heading),
|
|
15558
|
-
description && (typeof description === "string" ? /* @__PURE__ */ jsx(
|
|
15559
|
-
"p",
|
|
15560
|
-
{
|
|
15561
|
-
className: cn(
|
|
15562
|
-
"leading-relaxed",
|
|
15563
|
-
descriptionClassName
|
|
15564
|
-
),
|
|
15565
|
-
children: description
|
|
15566
|
-
}
|
|
15567
|
-
) : description)
|
|
15568
|
-
]
|
|
15569
|
-
}
|
|
15570
|
-
) }) }) }),
|
|
15571
|
-
contactItems && contactItems.length > 0 && /* @__PURE__ */ jsx("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-4 md:gap-6 w-full", children: contactItems.map((item, index) => /* @__PURE__ */ jsx(
|
|
15572
|
-
Pressable,
|
|
15573
|
-
{
|
|
15574
|
-
href: item.href,
|
|
15575
|
-
className: cn(
|
|
15576
|
-
"rounded-md border bg-muted ring-2",
|
|
15577
|
-
"text-muted-foreground px-4 py-3 flex",
|
|
15578
|
-
"justify-start items-start transition-shadow",
|
|
15579
|
-
"duration-500 hover:shadow-xl",
|
|
15580
|
-
item.className
|
|
15581
|
-
),
|
|
15582
|
-
children: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1", children: [
|
|
15583
|
-
item.icon ? /* @__PURE__ */ jsx("div", { className: "flex items-center justify-center p-2 rounded-xl border bg-primary text-primary-foreground", children: /* @__PURE__ */ jsx(
|
|
15584
|
-
DynamicIcon,
|
|
15585
|
-
{
|
|
15586
|
-
name: item.icon,
|
|
15587
|
-
size: item.iconSize ?? 24
|
|
15588
|
-
}
|
|
15589
|
-
) }) : null,
|
|
15590
|
-
/* @__PURE__ */ jsxs("div", { children: [
|
|
15591
|
-
/* @__PURE__ */ jsx("p", { className: "font-bold text-xs uppercase opacity-70", children: item.title }),
|
|
15592
|
-
/* @__PURE__ */ jsx("p", { className: "text-md font-semibold", children: item.subtitle })
|
|
15593
|
-
] })
|
|
15594
|
-
] })
|
|
15595
|
-
},
|
|
15596
|
-
index
|
|
15597
|
-
)) })
|
|
15598
|
-
] }) }),
|
|
15599
|
-
/* @__PURE__ */ jsx("div", { className: "p-6", children: /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
|
|
15600
|
-
/* @__PURE__ */ jsx("div", { className: "grid grid-cols-12 gap-4", children: otherFields.map((field) => /* @__PURE__ */ jsx(
|
|
15601
|
-
"div",
|
|
15602
|
-
{
|
|
15603
|
-
className: getColumnSpanClass(field.columnSpan),
|
|
15604
|
-
children: /* @__PURE__ */ jsx(
|
|
15605
|
-
DynamicFormField,
|
|
15606
|
-
{
|
|
15607
|
-
field,
|
|
15608
|
-
uploadProgress,
|
|
15609
|
-
onFileUpload: uploadFiles,
|
|
15610
|
-
onFileRemove: removeFile,
|
|
15611
|
-
isUploading
|
|
15612
|
-
}
|
|
15613
|
-
)
|
|
15614
|
-
},
|
|
15615
|
-
field.name
|
|
15616
|
-
)) }),
|
|
15617
|
-
actionsSlot || actions && actions.length > 0 ? actionsContent : /* @__PURE__ */ jsxs(
|
|
15618
|
-
Pressable,
|
|
15619
|
-
{
|
|
15620
|
-
componentType: "button",
|
|
15621
|
-
type: "submit",
|
|
15622
|
-
className: cn("w-full", submitClassName),
|
|
15623
|
-
size: "lg",
|
|
15624
|
-
asButton: true,
|
|
15625
|
-
disabled: form.isSubmitting,
|
|
15626
|
-
children: [
|
|
15627
|
-
buttonIcon,
|
|
15628
|
-
buttonText
|
|
15629
|
-
]
|
|
15630
|
-
}
|
|
15631
|
-
)
|
|
15632
|
-
] }) })
|
|
15633
|
-
]
|
|
15634
|
-
}
|
|
15635
|
-
) })
|
|
15636
|
-
}
|
|
15637
|
-
);
|
|
15638
|
-
}
|
|
15639
|
-
var DEFAULT_FORM_FIELDS10 = [
|
|
15640
|
-
{
|
|
15641
|
-
name: "first_name",
|
|
15642
|
-
type: "text",
|
|
15643
|
-
label: "First Name",
|
|
15644
|
-
placeholder: "John",
|
|
15645
|
-
required: true,
|
|
15646
|
-
columnSpan: 6
|
|
15647
|
-
},
|
|
15648
|
-
{
|
|
15649
|
-
name: "last_name",
|
|
15650
|
-
type: "text",
|
|
15651
|
-
label: "Last Name",
|
|
15652
|
-
placeholder: "Doe",
|
|
15653
|
-
required: true,
|
|
15654
|
-
columnSpan: 6
|
|
15655
|
-
},
|
|
15656
|
-
{
|
|
15657
|
-
name: "email",
|
|
15658
|
-
type: "email",
|
|
15659
|
-
label: "Email",
|
|
15660
|
-
placeholder: "john@example.com",
|
|
15661
|
-
required: true,
|
|
15662
|
-
columnSpan: 12
|
|
15663
|
-
},
|
|
15664
|
-
{
|
|
15665
|
-
name: "phone",
|
|
15666
|
-
type: "tel",
|
|
15667
|
-
label: "Phone",
|
|
15668
|
-
placeholder: "+1 (555) 000-0000",
|
|
15669
|
-
required: true,
|
|
15670
|
-
columnSpan: 12
|
|
15671
|
-
},
|
|
15672
|
-
{
|
|
15673
|
-
name: "message",
|
|
15674
|
-
type: "textarea",
|
|
15675
|
-
label: "Message",
|
|
15676
|
-
placeholder: "Your message...",
|
|
15677
|
-
required: true,
|
|
15678
|
-
rows: 4,
|
|
15679
|
-
columnSpan: 12
|
|
15680
|
-
}
|
|
15681
|
-
];
|
|
15682
|
-
function ContactEvent({
|
|
15683
|
-
heading,
|
|
15684
|
-
description,
|
|
15685
|
-
buttonText = "Submit",
|
|
15686
|
-
buttonIcon,
|
|
15687
|
-
actions,
|
|
15688
|
-
actionsSlot,
|
|
15689
|
-
formFields = DEFAULT_FORM_FIELDS10,
|
|
15690
|
-
successMessage = "Thank you! Your message has been sent successfully.",
|
|
15691
|
-
className,
|
|
15692
|
-
containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
|
|
15693
|
-
headerClassName,
|
|
15694
|
-
headingClassName,
|
|
15695
|
-
descriptionClassName,
|
|
15696
|
-
cardClassName,
|
|
15697
|
-
cardContentClassName,
|
|
15698
|
-
formClassName,
|
|
15699
|
-
submitClassName,
|
|
15700
|
-
successMessageClassName,
|
|
15701
|
-
errorMessageClassName,
|
|
15702
|
-
background = "white",
|
|
15703
|
-
spacing = "xl",
|
|
15704
|
-
pattern,
|
|
15705
|
-
patternOpacity = 0.1,
|
|
15577
|
+
patternOpacity = 0.1,
|
|
15706
15578
|
formConfig,
|
|
15707
15579
|
onSubmit,
|
|
15708
15580
|
onSuccess,
|
|
@@ -15912,7 +15784,7 @@ function AccordionContent({
|
|
|
15912
15784
|
}
|
|
15913
15785
|
);
|
|
15914
15786
|
}
|
|
15915
|
-
var
|
|
15787
|
+
var DEFAULT_STYLE_RULES4 = {
|
|
15916
15788
|
formContainer: "",
|
|
15917
15789
|
fieldsContainer: "",
|
|
15918
15790
|
fieldClassName: "",
|
|
@@ -15983,17 +15855,17 @@ function ContactFaq({
|
|
|
15983
15855
|
pattern,
|
|
15984
15856
|
patternOpacity
|
|
15985
15857
|
}) {
|
|
15986
|
-
const formStyleRules =
|
|
15858
|
+
const formStyleRules = React28.useMemo(() => {
|
|
15987
15859
|
return {
|
|
15988
|
-
formContainer: formEngineSetup?.formLayoutSettings?.styleRules?.formContainer ??
|
|
15989
|
-
fieldsContainer: formEngineSetup?.formLayoutSettings?.styleRules?.fieldsContainer ??
|
|
15990
|
-
fieldClassName: formEngineSetup?.formLayoutSettings?.styleRules?.fieldClassName ??
|
|
15991
|
-
formClassName: formEngineSetup?.formLayoutSettings?.styleRules?.formClassName ??
|
|
15992
|
-
successMessageClassName: formEngineSetup?.formLayoutSettings?.styleRules?.successMessageClassName ??
|
|
15993
|
-
errorMessageClassName: formEngineSetup?.formLayoutSettings?.styleRules?.errorMessageClassName ??
|
|
15860
|
+
formContainer: formEngineSetup?.formLayoutSettings?.styleRules?.formContainer ?? DEFAULT_STYLE_RULES4.formContainer,
|
|
15861
|
+
fieldsContainer: formEngineSetup?.formLayoutSettings?.styleRules?.fieldsContainer ?? DEFAULT_STYLE_RULES4.fieldsContainer,
|
|
15862
|
+
fieldClassName: formEngineSetup?.formLayoutSettings?.styleRules?.fieldClassName ?? DEFAULT_STYLE_RULES4.fieldClassName,
|
|
15863
|
+
formClassName: formEngineSetup?.formLayoutSettings?.styleRules?.formClassName ?? DEFAULT_STYLE_RULES4.formClassName,
|
|
15864
|
+
successMessageClassName: formEngineSetup?.formLayoutSettings?.styleRules?.successMessageClassName ?? DEFAULT_STYLE_RULES4.successMessageClassName,
|
|
15865
|
+
errorMessageClassName: formEngineSetup?.formLayoutSettings?.styleRules?.errorMessageClassName ?? DEFAULT_STYLE_RULES4.errorMessageClassName
|
|
15994
15866
|
};
|
|
15995
15867
|
}, [formEngineSetup?.formLayoutSettings?.styleRules]);
|
|
15996
|
-
const formFields =
|
|
15868
|
+
const formFields = React28.useMemo(() => {
|
|
15997
15869
|
if (formEngineSetup && formEngineSetup?.fields && formEngineSetup?.fields?.length > 0) {
|
|
15998
15870
|
return formEngineSetup.fields;
|
|
15999
15871
|
} else {
|
|
@@ -16093,7 +15965,7 @@ function ContactFaq({
|
|
|
16093
15965
|
),
|
|
16094
15966
|
children: formHeading
|
|
16095
15967
|
}
|
|
16096
|
-
) :
|
|
15968
|
+
) : formHeading),
|
|
16097
15969
|
formEngineSetup ? /* @__PURE__ */ jsx(
|
|
16098
15970
|
FormEngine,
|
|
16099
15971
|
{
|
|
@@ -16782,6 +16654,12 @@ function ContactGuest({
|
|
|
16782
16654
|
}
|
|
16783
16655
|
);
|
|
16784
16656
|
}
|
|
16657
|
+
var DEFAULT_STYLE_RULES5 = {
|
|
16658
|
+
formContainer: "",
|
|
16659
|
+
fieldsContainer: "",
|
|
16660
|
+
fieldClassName: "",
|
|
16661
|
+
formClassName: "space-y-4"
|
|
16662
|
+
};
|
|
16785
16663
|
var DEFAULT_FORM_FIELDS15 = [
|
|
16786
16664
|
{
|
|
16787
16665
|
name: "first_name",
|
|
@@ -16826,207 +16704,186 @@ var DEFAULT_FORM_FIELDS15 = [
|
|
|
16826
16704
|
}
|
|
16827
16705
|
];
|
|
16828
16706
|
function ContactImage({
|
|
16707
|
+
eyebrow,
|
|
16829
16708
|
heading,
|
|
16830
16709
|
description,
|
|
16831
|
-
buttonText = "
|
|
16710
|
+
buttonText = "Send Message",
|
|
16832
16711
|
buttonIcon,
|
|
16833
|
-
|
|
16834
|
-
|
|
16835
|
-
|
|
16836
|
-
|
|
16712
|
+
image,
|
|
16713
|
+
contactOverlays,
|
|
16714
|
+
contactOverlaysSlot,
|
|
16715
|
+
formEngineSetup,
|
|
16716
|
+
className,
|
|
16717
|
+
containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
|
|
16718
|
+
contentClassName,
|
|
16719
|
+
eyebrowClassName,
|
|
16837
16720
|
headingClassName,
|
|
16838
16721
|
descriptionClassName,
|
|
16839
|
-
|
|
16840
|
-
|
|
16841
|
-
formClassName,
|
|
16842
|
-
submitClassName,
|
|
16843
|
-
successMessageClassName,
|
|
16844
|
-
errorMessageClassName,
|
|
16845
|
-
backgroundImage,
|
|
16722
|
+
imageClassName,
|
|
16723
|
+
contactOverlaysClassName,
|
|
16846
16724
|
background,
|
|
16847
|
-
|
|
16848
|
-
spacing = "none",
|
|
16849
|
-
className,
|
|
16850
|
-
containerClassName = "px-0 sm:px-0 lg:px-0 max-w-full relative z-10 h-screen w-screen flex justify-center items-center",
|
|
16851
|
-
contentClassName = "",
|
|
16725
|
+
spacing = "py-16 md:py-32",
|
|
16852
16726
|
pattern,
|
|
16853
|
-
patternOpacity
|
|
16854
|
-
|
|
16855
|
-
onSubmit,
|
|
16856
|
-
onSuccess,
|
|
16857
|
-
onError
|
|
16727
|
+
patternOpacity,
|
|
16728
|
+
optixFlowConfig
|
|
16858
16729
|
}) {
|
|
16859
|
-
const {
|
|
16860
|
-
|
|
16861
|
-
|
|
16862
|
-
|
|
16863
|
-
|
|
16864
|
-
|
|
16865
|
-
|
|
16866
|
-
|
|
16867
|
-
|
|
16868
|
-
|
|
16869
|
-
|
|
16870
|
-
|
|
16871
|
-
|
|
16872
|
-
|
|
16873
|
-
|
|
16874
|
-
|
|
16875
|
-
|
|
16876
|
-
|
|
16877
|
-
|
|
16878
|
-
|
|
16879
|
-
|
|
16880
|
-
|
|
16881
|
-
|
|
16882
|
-
|
|
16883
|
-
|
|
16884
|
-
|
|
16885
|
-
|
|
16886
|
-
|
|
16887
|
-
|
|
16888
|
-
|
|
16889
|
-
|
|
16890
|
-
|
|
16730
|
+
const formStyleRules = React28.useMemo(() => {
|
|
16731
|
+
return {
|
|
16732
|
+
formContainer: formEngineSetup?.formLayoutSettings?.styleRules?.formContainer ?? DEFAULT_STYLE_RULES5.formContainer,
|
|
16733
|
+
fieldsContainer: formEngineSetup?.formLayoutSettings?.styleRules?.fieldsContainer ?? DEFAULT_STYLE_RULES5.fieldsContainer,
|
|
16734
|
+
fieldClassName: formEngineSetup?.formLayoutSettings?.styleRules?.fieldClassName ?? DEFAULT_STYLE_RULES5.fieldClassName,
|
|
16735
|
+
formClassName: formEngineSetup?.formLayoutSettings?.styleRules?.formClassName ?? DEFAULT_STYLE_RULES5.formClassName,
|
|
16736
|
+
successMessageClassName: formEngineSetup?.formLayoutSettings?.styleRules?.successMessageClassName ?? DEFAULT_STYLE_RULES5.successMessageClassName,
|
|
16737
|
+
errorMessageClassName: formEngineSetup?.formLayoutSettings?.styleRules?.errorMessageClassName ?? DEFAULT_STYLE_RULES5.errorMessageClassName
|
|
16738
|
+
};
|
|
16739
|
+
}, [formEngineSetup?.formLayoutSettings?.styleRules]);
|
|
16740
|
+
const formFields = React28.useMemo(() => {
|
|
16741
|
+
if (formEngineSetup?.fields && formEngineSetup.fields.length > 0) {
|
|
16742
|
+
return formEngineSetup.fields;
|
|
16743
|
+
}
|
|
16744
|
+
return DEFAULT_FORM_FIELDS15;
|
|
16745
|
+
}, [formEngineSetup?.fields]);
|
|
16746
|
+
const contactOverlaysContent = React28.useMemo(() => {
|
|
16747
|
+
if (contactOverlaysSlot) return contactOverlaysSlot;
|
|
16748
|
+
if (!contactOverlays || contactOverlays.length === 0) return null;
|
|
16749
|
+
return /* @__PURE__ */ jsx("div", { className: cn("flex flex-col gap-3", contactOverlaysClassName), children: contactOverlays.map((item, index) => {
|
|
16750
|
+
const content = /* @__PURE__ */ jsxs(
|
|
16751
|
+
"div",
|
|
16752
|
+
{
|
|
16753
|
+
className: cn(
|
|
16754
|
+
"rounded-2xl border border-white/10 bg-foreground/80 p-4 backdrop-blur-sm",
|
|
16755
|
+
item.className
|
|
16756
|
+
),
|
|
16757
|
+
children: [
|
|
16758
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3", children: [
|
|
16759
|
+
/* @__PURE__ */ jsx("div", { className: "flex size-fit p-2 items-center justify-center rounded-full bg-primary text-primary-foreground", children: /* @__PURE__ */ jsx(DynamicIcon, { name: item.icon, size: 18 }) }),
|
|
16760
|
+
/* @__PURE__ */ jsxs("div", { children: [
|
|
16761
|
+
/* @__PURE__ */ jsx("p", { className: "text-xs font-bold uppercase tracking-[0.15em] text-background/70", children: item.label }),
|
|
16762
|
+
/* @__PURE__ */ jsx("p", { className: "font-semibold text-background", children: item.title })
|
|
16763
|
+
] })
|
|
16764
|
+
] }),
|
|
16765
|
+
item.description && /* @__PURE__ */ jsx("p", { className: "mt-2 text-sm text-background/80", children: item.description })
|
|
16766
|
+
]
|
|
16767
|
+
}
|
|
16768
|
+
);
|
|
16769
|
+
if (item.href) {
|
|
16891
16770
|
return /* @__PURE__ */ jsx(
|
|
16892
|
-
|
|
16771
|
+
"a",
|
|
16893
16772
|
{
|
|
16894
|
-
|
|
16895
|
-
className:
|
|
16896
|
-
|
|
16897
|
-
children: children ?? /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
16898
|
-
icon,
|
|
16899
|
-
label,
|
|
16900
|
-
iconAfter
|
|
16901
|
-
] })
|
|
16773
|
+
href: item.href,
|
|
16774
|
+
className: "block transition-transform hover:scale-[1.02]",
|
|
16775
|
+
children: content
|
|
16902
16776
|
},
|
|
16903
16777
|
index
|
|
16904
16778
|
);
|
|
16905
|
-
}
|
|
16906
|
-
|
|
16907
|
-
|
|
16908
|
-
}, [
|
|
16909
|
-
|
|
16910
|
-
if (!backgroundImage) return null;
|
|
16911
|
-
return /* @__PURE__ */ jsxs("div", { className: "absolute inset-0", children: [
|
|
16912
|
-
/* @__PURE__ */ jsx(
|
|
16913
|
-
Img,
|
|
16914
|
-
{
|
|
16915
|
-
src: backgroundImage,
|
|
16916
|
-
alt: "Full screen background image",
|
|
16917
|
-
className: "h-full w-full object-cover",
|
|
16918
|
-
loading: "eager",
|
|
16919
|
-
optixFlowConfig
|
|
16920
|
-
}
|
|
16921
|
-
),
|
|
16922
|
-
/* @__PURE__ */ jsx("div", { className: "absolute inset-0 bg-linear-to-b from-black/80 via-black/65 to-black/20" })
|
|
16923
|
-
] });
|
|
16924
|
-
}, [backgroundImage, optixFlowConfig]);
|
|
16925
|
-
return /* @__PURE__ */ jsxs(
|
|
16779
|
+
}
|
|
16780
|
+
return /* @__PURE__ */ jsx("div", { children: content }, index);
|
|
16781
|
+
}) });
|
|
16782
|
+
}, [contactOverlaysSlot, contactOverlays, contactOverlaysClassName]);
|
|
16783
|
+
return /* @__PURE__ */ jsx(
|
|
16926
16784
|
Section,
|
|
16927
16785
|
{
|
|
16928
16786
|
background,
|
|
16929
16787
|
spacing,
|
|
16788
|
+
className,
|
|
16789
|
+
containerClassName,
|
|
16930
16790
|
pattern,
|
|
16931
16791
|
patternOpacity,
|
|
16932
|
-
|
|
16933
|
-
"
|
|
16934
|
-
|
|
16935
|
-
|
|
16936
|
-
|
|
16937
|
-
|
|
16938
|
-
|
|
16939
|
-
|
|
16940
|
-
|
|
16941
|
-
|
|
16942
|
-
|
|
16943
|
-
|
|
16944
|
-
|
|
16945
|
-
|
|
16946
|
-
|
|
16947
|
-
|
|
16948
|
-
|
|
16949
|
-
|
|
16950
|
-
|
|
16951
|
-
|
|
16952
|
-
|
|
16953
|
-
|
|
16954
|
-
|
|
16955
|
-
|
|
16956
|
-
|
|
16957
|
-
) : heading),
|
|
16958
|
-
description && (typeof description === "string" ? /* @__PURE__ */ jsx(
|
|
16959
|
-
"p",
|
|
16960
|
-
{
|
|
16961
|
-
className: cn(
|
|
16962
|
-
"text-center text-base text-balance text-card-foreground text-shadow-2xl",
|
|
16963
|
-
descriptionClassName
|
|
16792
|
+
children: /* @__PURE__ */ jsxs(
|
|
16793
|
+
"div",
|
|
16794
|
+
{
|
|
16795
|
+
className: cn(
|
|
16796
|
+
"grid grid-cols-1 items-center gap-12 lg:grid-cols-2",
|
|
16797
|
+
contentClassName
|
|
16798
|
+
),
|
|
16799
|
+
children: [
|
|
16800
|
+
image && /* @__PURE__ */ jsx(
|
|
16801
|
+
motion.div,
|
|
16802
|
+
{
|
|
16803
|
+
initial: { opacity: 0, x: -20 },
|
|
16804
|
+
whileInView: { opacity: 1, x: 0 },
|
|
16805
|
+
viewport: { once: true, margin: "-50px" },
|
|
16806
|
+
transition: { duration: 0.5 },
|
|
16807
|
+
className: "order-2 lg:order-1",
|
|
16808
|
+
children: /* @__PURE__ */ jsxs("div", { className: "relative overflow-hidden rounded-3xl border border-white/10 shadow-2xl", children: [
|
|
16809
|
+
/* @__PURE__ */ jsx(
|
|
16810
|
+
Img,
|
|
16811
|
+
{
|
|
16812
|
+
src: image.src,
|
|
16813
|
+
alt: image.alt,
|
|
16814
|
+
className: cn("h-full w-full object-cover", imageClassName),
|
|
16815
|
+
optixFlowConfig
|
|
16816
|
+
}
|
|
16964
16817
|
),
|
|
16965
|
-
|
|
16966
|
-
|
|
16967
|
-
|
|
16968
|
-
|
|
16969
|
-
|
|
16970
|
-
|
|
16971
|
-
|
|
16972
|
-
|
|
16973
|
-
|
|
16974
|
-
|
|
16975
|
-
|
|
16976
|
-
|
|
16977
|
-
|
|
16978
|
-
|
|
16979
|
-
|
|
16980
|
-
|
|
16981
|
-
|
|
16982
|
-
|
|
16983
|
-
|
|
16984
|
-
|
|
16985
|
-
|
|
16986
|
-
|
|
16987
|
-
|
|
16988
|
-
|
|
16989
|
-
|
|
16990
|
-
|
|
16991
|
-
|
|
16992
|
-
|
|
16993
|
-
|
|
16994
|
-
|
|
16995
|
-
|
|
16996
|
-
|
|
16997
|
-
|
|
16998
|
-
|
|
16999
|
-
|
|
17000
|
-
|
|
17001
|
-
|
|
17002
|
-
|
|
17003
|
-
|
|
17004
|
-
|
|
16818
|
+
/* @__PURE__ */ jsx("div", { className: "absolute inset-0 bg-linear-to-tr from-black/70 via-transparent to-transparent" }),
|
|
16819
|
+
contactOverlaysContent && /* @__PURE__ */ jsx("div", { className: "absolute bottom-6 left-6 right-6", children: contactOverlaysContent })
|
|
16820
|
+
] })
|
|
16821
|
+
}
|
|
16822
|
+
),
|
|
16823
|
+
/* @__PURE__ */ jsxs(
|
|
16824
|
+
motion.div,
|
|
16825
|
+
{
|
|
16826
|
+
initial: { opacity: 0, x: 20 },
|
|
16827
|
+
whileInView: { opacity: 1, x: 0 },
|
|
16828
|
+
viewport: { once: true, margin: "-50px" },
|
|
16829
|
+
transition: { duration: 0.5 },
|
|
16830
|
+
className: "order-1 lg:order-2",
|
|
16831
|
+
children: [
|
|
16832
|
+
eyebrow && (typeof eyebrow === "string" ? /* @__PURE__ */ jsx(
|
|
16833
|
+
"p",
|
|
16834
|
+
{
|
|
16835
|
+
className: cn(
|
|
16836
|
+
"text-sm font-semibold uppercase tracking-[0.2em] text-muted-foreground",
|
|
16837
|
+
eyebrowClassName
|
|
16838
|
+
),
|
|
16839
|
+
children: eyebrow
|
|
16840
|
+
}
|
|
16841
|
+
) : /* @__PURE__ */ jsx("div", { className: eyebrowClassName, children: eyebrow })),
|
|
16842
|
+
heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
|
|
16843
|
+
"h2",
|
|
16844
|
+
{
|
|
16845
|
+
className: cn(
|
|
16846
|
+
"mt-2 text-3xl font-bold md:text-4xl lg:text-5xl",
|
|
16847
|
+
headingClassName
|
|
16848
|
+
),
|
|
16849
|
+
children: heading
|
|
16850
|
+
}
|
|
16851
|
+
) : /* @__PURE__ */ jsx("div", { className: cn("mt-2", headingClassName), children: heading })),
|
|
16852
|
+
description && (typeof description === "string" ? /* @__PURE__ */ jsx(
|
|
16853
|
+
"p",
|
|
16854
|
+
{
|
|
16855
|
+
className: cn(
|
|
16856
|
+
"mt-4 text-lg text-muted-foreground",
|
|
16857
|
+
descriptionClassName
|
|
16858
|
+
),
|
|
16859
|
+
children: description
|
|
16860
|
+
}
|
|
16861
|
+
) : /* @__PURE__ */ jsx("div", { className: cn("mt-4", descriptionClassName), children: description })),
|
|
16862
|
+
/* @__PURE__ */ jsx("div", { className: "mt-8", children: formEngineSetup ? /* @__PURE__ */ jsx(
|
|
16863
|
+
FormEngine,
|
|
16864
|
+
{
|
|
16865
|
+
...formEngineSetup,
|
|
16866
|
+
formLayoutSettings: {
|
|
16867
|
+
...formEngineSetup.formLayoutSettings,
|
|
16868
|
+
formLayout: "standard",
|
|
16869
|
+
submitButtonSetup: {
|
|
16870
|
+
...formEngineSetup.formLayoutSettings?.submitButtonSetup,
|
|
16871
|
+
submitLabel: /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
16872
|
+
buttonIcon,
|
|
16873
|
+
buttonText
|
|
16874
|
+
] })
|
|
16875
|
+
},
|
|
16876
|
+
styleRules: formStyleRules
|
|
17005
16877
|
},
|
|
17006
|
-
|
|
17007
|
-
|
|
17008
|
-
|
|
17009
|
-
|
|
17010
|
-
|
|
17011
|
-
|
|
17012
|
-
|
|
17013
|
-
|
|
17014
|
-
|
|
17015
|
-
asButton: true,
|
|
17016
|
-
disabled: form.isSubmitting,
|
|
17017
|
-
children: [
|
|
17018
|
-
buttonIcon,
|
|
17019
|
-
buttonText
|
|
17020
|
-
]
|
|
17021
|
-
}
|
|
17022
|
-
)
|
|
17023
|
-
]
|
|
17024
|
-
}
|
|
17025
|
-
)
|
|
17026
|
-
] }) })
|
|
17027
|
-
}
|
|
17028
|
-
)
|
|
17029
|
-
]
|
|
16878
|
+
fields: formFields
|
|
16879
|
+
}
|
|
16880
|
+
) : null })
|
|
16881
|
+
]
|
|
16882
|
+
}
|
|
16883
|
+
)
|
|
16884
|
+
]
|
|
16885
|
+
}
|
|
16886
|
+
)
|
|
17030
16887
|
}
|
|
17031
16888
|
);
|
|
17032
16889
|
}
|
|
@@ -21807,7 +21664,7 @@ function ContactTenant({
|
|
|
21807
21664
|
}
|
|
21808
21665
|
);
|
|
21809
21666
|
}
|
|
21810
|
-
var
|
|
21667
|
+
var DEFAULT_STYLE_RULES6 = {
|
|
21811
21668
|
formContainer: "",
|
|
21812
21669
|
fieldsContainer: "",
|
|
21813
21670
|
fieldClassName: "",
|
|
@@ -21872,17 +21729,17 @@ function ContactVendor({
|
|
|
21872
21729
|
pattern,
|
|
21873
21730
|
patternOpacity = 0.1
|
|
21874
21731
|
}) {
|
|
21875
|
-
const formStyleRules =
|
|
21732
|
+
const formStyleRules = React28.useMemo(() => {
|
|
21876
21733
|
return {
|
|
21877
|
-
formContainer: formEngineSetup?.formLayoutSettings?.styleRules?.formContainer ??
|
|
21878
|
-
fieldsContainer: formEngineSetup?.formLayoutSettings?.styleRules?.fieldsContainer ??
|
|
21879
|
-
fieldClassName: formEngineSetup?.formLayoutSettings?.styleRules?.fieldClassName ??
|
|
21880
|
-
formClassName: formEngineSetup?.formLayoutSettings?.styleRules?.formClassName ??
|
|
21881
|
-
successMessageClassName: formEngineSetup?.formLayoutSettings?.styleRules?.successMessageClassName ??
|
|
21882
|
-
errorMessageClassName: formEngineSetup?.formLayoutSettings?.styleRules?.errorMessageClassName ??
|
|
21734
|
+
formContainer: formEngineSetup?.formLayoutSettings?.styleRules?.formContainer ?? DEFAULT_STYLE_RULES6.formContainer,
|
|
21735
|
+
fieldsContainer: formEngineSetup?.formLayoutSettings?.styleRules?.fieldsContainer ?? DEFAULT_STYLE_RULES6.fieldsContainer,
|
|
21736
|
+
fieldClassName: formEngineSetup?.formLayoutSettings?.styleRules?.fieldClassName ?? DEFAULT_STYLE_RULES6.fieldClassName,
|
|
21737
|
+
formClassName: formEngineSetup?.formLayoutSettings?.styleRules?.formClassName ?? DEFAULT_STYLE_RULES6.formClassName,
|
|
21738
|
+
successMessageClassName: formEngineSetup?.formLayoutSettings?.styleRules?.successMessageClassName ?? DEFAULT_STYLE_RULES6.successMessageClassName,
|
|
21739
|
+
errorMessageClassName: formEngineSetup?.formLayoutSettings?.styleRules?.errorMessageClassName ?? DEFAULT_STYLE_RULES6.errorMessageClassName
|
|
21883
21740
|
};
|
|
21884
21741
|
}, [formEngineSetup?.formLayoutSettings?.styleRules]);
|
|
21885
|
-
const formFields =
|
|
21742
|
+
const formFields = React28.useMemo(() => {
|
|
21886
21743
|
if (formEngineSetup && formEngineSetup?.fields && formEngineSetup?.fields?.length > 0) {
|
|
21887
21744
|
return formEngineSetup.fields;
|
|
21888
21745
|
} else {
|
|
@@ -22698,16 +22555,16 @@ function CarouselAnimatedSections({
|
|
|
22698
22555
|
pattern = "diagonalCrossBasic",
|
|
22699
22556
|
patternOpacity = 0.033
|
|
22700
22557
|
}) {
|
|
22701
|
-
const [currentIndex, setCurrentIndex] =
|
|
22702
|
-
const [direction, setDirection] =
|
|
22703
|
-
const [isAnimating, setIsAnimating] =
|
|
22704
|
-
const goToNext =
|
|
22558
|
+
const [currentIndex, setCurrentIndex] = React28.useState(0);
|
|
22559
|
+
const [direction, setDirection] = React28.useState(0);
|
|
22560
|
+
const [isAnimating, setIsAnimating] = React28.useState(false);
|
|
22561
|
+
const goToNext = React28.useCallback(() => {
|
|
22705
22562
|
if (isAnimating || currentIndex >= (sections?.length ?? 0) - 1) return;
|
|
22706
22563
|
setIsAnimating(true);
|
|
22707
22564
|
setDirection(1);
|
|
22708
22565
|
setCurrentIndex((prev) => prev + 1);
|
|
22709
22566
|
}, [currentIndex, isAnimating, sections?.length]);
|
|
22710
|
-
const goToPrev =
|
|
22567
|
+
const goToPrev = React28.useCallback(() => {
|
|
22711
22568
|
if (isAnimating || currentIndex <= 0) return;
|
|
22712
22569
|
setIsAnimating(true);
|
|
22713
22570
|
setDirection(-1);
|
|
@@ -22719,7 +22576,7 @@ function CarouselAnimatedSections({
|
|
|
22719
22576
|
setDirection(index > currentIndex ? 1 : -1);
|
|
22720
22577
|
setCurrentIndex(index);
|
|
22721
22578
|
};
|
|
22722
|
-
|
|
22579
|
+
React28.useEffect(() => {
|
|
22723
22580
|
const handleKeyDown = (e) => {
|
|
22724
22581
|
if (e.key === "ArrowDown" || e.key === "ArrowRight") {
|
|
22725
22582
|
goToNext();
|
|
@@ -22745,7 +22602,7 @@ function CarouselAnimatedSections({
|
|
|
22745
22602
|
})
|
|
22746
22603
|
};
|
|
22747
22604
|
const currentSection = sections?.[currentIndex];
|
|
22748
|
-
const actionElements =
|
|
22605
|
+
const actionElements = React28.useMemo(() => {
|
|
22749
22606
|
if (actionsSlot) return actionsSlot;
|
|
22750
22607
|
if (actions && actions.length > 0) {
|
|
22751
22608
|
return actions.map((action, index) => /* @__PURE__ */ jsxs(
|
|
@@ -22993,11 +22850,11 @@ function CarouselAutoProgressSlides({
|
|
|
22993
22850
|
pattern,
|
|
22994
22851
|
patternOpacity
|
|
22995
22852
|
}) {
|
|
22996
|
-
const [currentIndex, setCurrentIndex] =
|
|
22853
|
+
const [currentIndex, setCurrentIndex] = React28.useState(0);
|
|
22997
22854
|
const progress = useMotionValue(100);
|
|
22998
|
-
const [direction, setDirection] =
|
|
22855
|
+
const [direction, setDirection] = React28.useState(1);
|
|
22999
22856
|
const clipPath = useMotionTemplate`inset(0 ${progress}% 0 0 round 10px)`;
|
|
23000
|
-
|
|
22857
|
+
React28.useEffect(() => {
|
|
23001
22858
|
const interval = setInterval(() => {
|
|
23002
22859
|
const currentProgress = progress.get();
|
|
23003
22860
|
if (currentProgress > 0) {
|
|
@@ -23176,22 +23033,22 @@ function CarouselAutoProgressSlides({
|
|
|
23176
23033
|
);
|
|
23177
23034
|
}
|
|
23178
23035
|
function useDotButton(emblaApi) {
|
|
23179
|
-
const [selectedIndex, setSelectedIndex] =
|
|
23180
|
-
const [scrollSnaps, setScrollSnaps] =
|
|
23181
|
-
const onDotButtonClick =
|
|
23036
|
+
const [selectedIndex, setSelectedIndex] = React28.useState(0);
|
|
23037
|
+
const [scrollSnaps, setScrollSnaps] = React28.useState([]);
|
|
23038
|
+
const onDotButtonClick = React28.useCallback(
|
|
23182
23039
|
(index) => {
|
|
23183
23040
|
if (!emblaApi) return;
|
|
23184
23041
|
emblaApi.scrollTo(index);
|
|
23185
23042
|
},
|
|
23186
23043
|
[emblaApi]
|
|
23187
23044
|
);
|
|
23188
|
-
const onInit =
|
|
23045
|
+
const onInit = React28.useCallback((api) => {
|
|
23189
23046
|
setScrollSnaps(api.scrollSnapList());
|
|
23190
23047
|
}, []);
|
|
23191
|
-
const onSelect =
|
|
23048
|
+
const onSelect = React28.useCallback((api) => {
|
|
23192
23049
|
setSelectedIndex(api.selectedScrollSnap());
|
|
23193
23050
|
}, []);
|
|
23194
|
-
|
|
23051
|
+
React28.useEffect(() => {
|
|
23195
23052
|
if (!emblaApi) return;
|
|
23196
23053
|
onInit(emblaApi);
|
|
23197
23054
|
onSelect(emblaApi);
|
|
@@ -23200,8 +23057,8 @@ function useDotButton(emblaApi) {
|
|
|
23200
23057
|
return { selectedIndex, scrollSnaps, onDotButtonClick };
|
|
23201
23058
|
}
|
|
23202
23059
|
function useAutoplay(emblaApi) {
|
|
23203
|
-
const [autoplayIsPlaying, setAutoplayIsPlaying] =
|
|
23204
|
-
const onAutoplayButtonClick =
|
|
23060
|
+
const [autoplayIsPlaying, setAutoplayIsPlaying] = React28.useState(false);
|
|
23061
|
+
const onAutoplayButtonClick = React28.useCallback(
|
|
23205
23062
|
(callback) => {
|
|
23206
23063
|
const autoplay = emblaApi?.plugins()?.autoplay;
|
|
23207
23064
|
if (!autoplay) return;
|
|
@@ -23211,13 +23068,13 @@ function useAutoplay(emblaApi) {
|
|
|
23211
23068
|
},
|
|
23212
23069
|
[emblaApi]
|
|
23213
23070
|
);
|
|
23214
|
-
const toggleAutoplay =
|
|
23071
|
+
const toggleAutoplay = React28.useCallback(() => {
|
|
23215
23072
|
const autoplay = emblaApi?.plugins()?.autoplay;
|
|
23216
23073
|
if (!autoplay) return;
|
|
23217
23074
|
const playOrStop = autoplay.isPlaying() ? autoplay.stop : autoplay.play;
|
|
23218
23075
|
playOrStop();
|
|
23219
23076
|
}, [emblaApi]);
|
|
23220
|
-
|
|
23077
|
+
React28.useEffect(() => {
|
|
23221
23078
|
const autoplay = emblaApi?.plugins()?.autoplay;
|
|
23222
23079
|
if (!autoplay) return;
|
|
23223
23080
|
setAutoplayIsPlaying(autoplay.isPlaying());
|
|
@@ -23226,11 +23083,11 @@ function useAutoplay(emblaApi) {
|
|
|
23226
23083
|
return { autoplayIsPlaying, toggleAutoplay, onAutoplayButtonClick };
|
|
23227
23084
|
}
|
|
23228
23085
|
function useAutoplayProgress(emblaApi, progressNode) {
|
|
23229
|
-
const [showAutoplayProgress, setShowAutoplayProgress] =
|
|
23230
|
-
const animationName =
|
|
23231
|
-
const timeoutId =
|
|
23232
|
-
const rafId =
|
|
23233
|
-
const startProgress =
|
|
23086
|
+
const [showAutoplayProgress, setShowAutoplayProgress] = React28.useState(false);
|
|
23087
|
+
const animationName = React28.useRef("");
|
|
23088
|
+
const timeoutId = React28.useRef(0);
|
|
23089
|
+
const rafId = React28.useRef(0);
|
|
23090
|
+
const startProgress = React28.useCallback(
|
|
23234
23091
|
(timeUntilNext) => {
|
|
23235
23092
|
const node = progressNode.current;
|
|
23236
23093
|
if (!node || timeUntilNext === null) return;
|
|
@@ -23250,12 +23107,12 @@ function useAutoplayProgress(emblaApi, progressNode) {
|
|
|
23250
23107
|
},
|
|
23251
23108
|
[progressNode]
|
|
23252
23109
|
);
|
|
23253
|
-
|
|
23110
|
+
React28.useEffect(() => {
|
|
23254
23111
|
const autoplay = emblaApi?.plugins()?.autoplay;
|
|
23255
23112
|
if (!autoplay) return;
|
|
23256
23113
|
emblaApi.on("autoplay:timerset", () => startProgress(autoplay.timeUntilNext())).on("autoplay:timerstopped", () => setShowAutoplayProgress(false));
|
|
23257
23114
|
}, [emblaApi, startProgress]);
|
|
23258
|
-
|
|
23115
|
+
React28.useEffect(() => {
|
|
23259
23116
|
return () => {
|
|
23260
23117
|
cancelAnimationFrame(rafId.current);
|
|
23261
23118
|
clearTimeout(timeoutId.current);
|
|
@@ -23282,7 +23139,7 @@ function CarouselAutoplayProgress({
|
|
|
23282
23139
|
pattern,
|
|
23283
23140
|
patternOpacity
|
|
23284
23141
|
}) {
|
|
23285
|
-
const progressNode =
|
|
23142
|
+
const progressNode = React28.useRef(null);
|
|
23286
23143
|
const [emblaRef, emblaApi] = useEmblaCarousel(options, [
|
|
23287
23144
|
Autoplay({ playOnInit: true, delay: autoplayDelay })
|
|
23288
23145
|
]);
|
|
@@ -23405,20 +23262,20 @@ function CarouselFeatureBadge({
|
|
|
23405
23262
|
containerMaxWidth = "2xl"
|
|
23406
23263
|
}) {
|
|
23407
23264
|
const [emblaRef, emblaApi] = useEmblaCarousel();
|
|
23408
|
-
const [canScrollPrev, setCanScrollPrev] =
|
|
23409
|
-
const [canScrollNext, setCanScrollNext] =
|
|
23410
|
-
const scrollPrev =
|
|
23265
|
+
const [canScrollPrev, setCanScrollPrev] = React28.useState(false);
|
|
23266
|
+
const [canScrollNext, setCanScrollNext] = React28.useState(false);
|
|
23267
|
+
const scrollPrev = React28.useCallback(() => {
|
|
23411
23268
|
emblaApi?.scrollPrev();
|
|
23412
23269
|
}, [emblaApi]);
|
|
23413
|
-
const scrollNext =
|
|
23270
|
+
const scrollNext = React28.useCallback(() => {
|
|
23414
23271
|
emblaApi?.scrollNext();
|
|
23415
23272
|
}, [emblaApi]);
|
|
23416
|
-
const onSelect =
|
|
23273
|
+
const onSelect = React28.useCallback(() => {
|
|
23417
23274
|
if (!emblaApi) return;
|
|
23418
23275
|
setCanScrollPrev(emblaApi.canScrollPrev());
|
|
23419
23276
|
setCanScrollNext(emblaApi.canScrollNext());
|
|
23420
23277
|
}, [emblaApi]);
|
|
23421
|
-
|
|
23278
|
+
React28.useEffect(() => {
|
|
23422
23279
|
if (!emblaApi) return;
|
|
23423
23280
|
onSelect();
|
|
23424
23281
|
emblaApi.on("reInit", onSelect);
|
|
@@ -23538,10 +23395,10 @@ function CarouselFullscreenScrollFx({
|
|
|
23538
23395
|
pattern = "diagonalCrossBasic",
|
|
23539
23396
|
patternOpacity = 0.033
|
|
23540
23397
|
}) {
|
|
23541
|
-
const containerRef =
|
|
23542
|
-
const scrollContainerRef =
|
|
23543
|
-
const [activeIndex, setActiveIndex] =
|
|
23544
|
-
|
|
23398
|
+
const containerRef = React28.useRef(null);
|
|
23399
|
+
const scrollContainerRef = React28.useRef(null);
|
|
23400
|
+
const [activeIndex, setActiveIndex] = React28.useState(0);
|
|
23401
|
+
React28.useEffect(() => {
|
|
23545
23402
|
const scrollContainer = scrollContainerRef.current;
|
|
23546
23403
|
if (!scrollContainer || !slides?.length) return;
|
|
23547
23404
|
const handleScroll = () => {
|
|
@@ -23553,7 +23410,7 @@ function CarouselFullscreenScrollFx({
|
|
|
23553
23410
|
scrollContainer.addEventListener("scroll", handleScroll);
|
|
23554
23411
|
return () => scrollContainer.removeEventListener("scroll", handleScroll);
|
|
23555
23412
|
}, [slides]);
|
|
23556
|
-
const scrollToSlide =
|
|
23413
|
+
const scrollToSlide = React28.useCallback((index) => {
|
|
23557
23414
|
const scrollContainer = scrollContainerRef.current;
|
|
23558
23415
|
if (!scrollContainer) return;
|
|
23559
23416
|
const slideHeight = scrollContainer.clientHeight;
|
|
@@ -23636,7 +23493,7 @@ function CarouselFullscreenScrollFx({
|
|
|
23636
23493
|
className: "flex h-screen flex-col snap-y snap-mandatory overflow-x-hidden overflow-y-auto scroll-smooth",
|
|
23637
23494
|
style: { scrollbarWidth: "none", msOverflowStyle: "none" },
|
|
23638
23495
|
children: slidesSlot ? slidesSlot : slides?.map((slide, index) => {
|
|
23639
|
-
const renderActions =
|
|
23496
|
+
const renderActions = React28.useMemo(() => {
|
|
23640
23497
|
if (!slide.actions || slide.actions.length === 0) return null;
|
|
23641
23498
|
return slide.actions.map((action, actionIndex) => {
|
|
23642
23499
|
const {
|
|
@@ -23769,25 +23626,25 @@ function CarouselGalleryThumbnails({
|
|
|
23769
23626
|
patternOpacity,
|
|
23770
23627
|
slideMediaBrightness = "100"
|
|
23771
23628
|
}) {
|
|
23772
|
-
const [currentIndex, setCurrentIndex] =
|
|
23773
|
-
const prevSlide =
|
|
23629
|
+
const [currentIndex, setCurrentIndex] = React28.useState(0);
|
|
23630
|
+
const prevSlide = React28.useCallback(() => {
|
|
23774
23631
|
setCurrentIndex(
|
|
23775
23632
|
(prev) => prev === 0 ? (images?.length ?? 0) - 1 : prev - 1
|
|
23776
23633
|
);
|
|
23777
23634
|
}, [images?.length]);
|
|
23778
|
-
const nextSlide =
|
|
23635
|
+
const nextSlide = React28.useCallback(() => {
|
|
23779
23636
|
setCurrentIndex(
|
|
23780
23637
|
(prev) => prev === (images?.length ?? 0) - 1 ? 0 : prev + 1
|
|
23781
23638
|
);
|
|
23782
23639
|
}, [images?.length]);
|
|
23783
|
-
|
|
23640
|
+
React28.useEffect(() => {
|
|
23784
23641
|
if (!autoPlay) return;
|
|
23785
23642
|
const interval = setInterval(() => {
|
|
23786
23643
|
nextSlide();
|
|
23787
23644
|
}, autoPlayInterval);
|
|
23788
23645
|
return () => clearInterval(interval);
|
|
23789
23646
|
}, [currentIndex, autoPlay, autoPlayInterval, nextSlide]);
|
|
23790
|
-
|
|
23647
|
+
React28.useEffect(() => {
|
|
23791
23648
|
const handleKeyDown = (e) => {
|
|
23792
23649
|
if (e.key === "ArrowRight") {
|
|
23793
23650
|
nextSlide();
|
|
@@ -23932,9 +23789,9 @@ function CarouselHorizontalCards({
|
|
|
23932
23789
|
pattern,
|
|
23933
23790
|
patternOpacity
|
|
23934
23791
|
}) {
|
|
23935
|
-
const carouselRef =
|
|
23936
|
-
const [isAtStart, setIsAtStart] =
|
|
23937
|
-
const [isAtEnd, setIsAtEnd] =
|
|
23792
|
+
const carouselRef = React28.useRef(null);
|
|
23793
|
+
const [isAtStart, setIsAtStart] = React28.useState(true);
|
|
23794
|
+
const [isAtEnd, setIsAtEnd] = React28.useState(false);
|
|
23938
23795
|
const scrollLeft = () => {
|
|
23939
23796
|
if (carouselRef.current) {
|
|
23940
23797
|
carouselRef.current.scrollBy({ left: -300, behavior: "smooth" });
|
|
@@ -23945,7 +23802,7 @@ function CarouselHorizontalCards({
|
|
|
23945
23802
|
carouselRef.current.scrollBy({ left: 300, behavior: "smooth" });
|
|
23946
23803
|
}
|
|
23947
23804
|
};
|
|
23948
|
-
|
|
23805
|
+
React28.useEffect(() => {
|
|
23949
23806
|
const checkScrollPosition = () => {
|
|
23950
23807
|
if (carouselRef.current) {
|
|
23951
23808
|
const { scrollLeft: scrollLeft2, scrollWidth, clientWidth } = carouselRef.current;
|
|
@@ -24145,13 +24002,13 @@ function CarouselImageHero({
|
|
|
24145
24002
|
pattern,
|
|
24146
24003
|
patternOpacity
|
|
24147
24004
|
}) {
|
|
24148
|
-
const hasImages =
|
|
24005
|
+
const hasImages = React28.useMemo(() => {
|
|
24149
24006
|
return images && images?.length > 0;
|
|
24150
24007
|
}, [images]);
|
|
24151
|
-
const [currentImageIndex, setCurrentImageIndex] =
|
|
24008
|
+
const [currentImageIndex, setCurrentImageIndex] = React28.useState(0);
|
|
24152
24009
|
const progress = useMotionValue(100);
|
|
24153
24010
|
const clipPath = useMotionTemplate`inset(0 ${progress}% 0 0 round 10px)`;
|
|
24154
|
-
|
|
24011
|
+
React28.useEffect(() => {
|
|
24155
24012
|
if (!hasImages || (images?.length ?? 0) < 2) return;
|
|
24156
24013
|
const tickInterval = autoPlayInterval / 100;
|
|
24157
24014
|
const interval = setInterval(() => {
|
|
@@ -24173,19 +24030,19 @@ function CarouselImageHero({
|
|
|
24173
24030
|
autoPlayInterval,
|
|
24174
24031
|
hasImages
|
|
24175
24032
|
]);
|
|
24176
|
-
const handlePrev =
|
|
24033
|
+
const handlePrev = React28.useCallback(() => {
|
|
24177
24034
|
progress.set(100);
|
|
24178
24035
|
setCurrentImageIndex(
|
|
24179
24036
|
(prevIndex) => prevIndex > 0 ? prevIndex - 1 : (images?.length ?? 1) - 1
|
|
24180
24037
|
);
|
|
24181
24038
|
}, [images?.length, progress]);
|
|
24182
|
-
const handleNext =
|
|
24039
|
+
const handleNext = React28.useCallback(() => {
|
|
24183
24040
|
progress.set(100);
|
|
24184
24041
|
setCurrentImageIndex(
|
|
24185
24042
|
(prevIndex) => prevIndex < (images?.length ?? 0) - 1 ? prevIndex + 1 : 0
|
|
24186
24043
|
);
|
|
24187
24044
|
}, [images?.length, progress]);
|
|
24188
|
-
const handleDotClick =
|
|
24045
|
+
const handleDotClick = React28.useCallback(
|
|
24189
24046
|
(index) => {
|
|
24190
24047
|
progress.set(100);
|
|
24191
24048
|
setCurrentImageIndex(index);
|
|
@@ -24362,8 +24219,8 @@ function CarouselMultiStepShowcase({
|
|
|
24362
24219
|
pattern,
|
|
24363
24220
|
patternOpacity
|
|
24364
24221
|
}) {
|
|
24365
|
-
const [activeStep, setActiveStep] =
|
|
24366
|
-
const [direction, setDirection] =
|
|
24222
|
+
const [activeStep, setActiveStep] = React28.useState(0);
|
|
24223
|
+
const [direction, setDirection] = React28.useState(0);
|
|
24367
24224
|
const goToStep = (index) => {
|
|
24368
24225
|
setDirection(index > activeStep ? 1 : -1);
|
|
24369
24226
|
setActiveStep(index);
|
|
@@ -24655,9 +24512,9 @@ function CarouselPortfolioHero({
|
|
|
24655
24512
|
patternOpacity,
|
|
24656
24513
|
slideMediaBrightness = "50"
|
|
24657
24514
|
}) {
|
|
24658
|
-
const [currentIndex, setCurrentIndex] =
|
|
24659
|
-
const intervalRef =
|
|
24660
|
-
const resetInterval =
|
|
24515
|
+
const [currentIndex, setCurrentIndex] = React28.useState(0);
|
|
24516
|
+
const intervalRef = React28.useRef(null);
|
|
24517
|
+
const resetInterval = React28.useCallback(() => {
|
|
24661
24518
|
if (intervalRef.current) {
|
|
24662
24519
|
clearInterval(intervalRef.current);
|
|
24663
24520
|
}
|
|
@@ -24665,17 +24522,17 @@ function CarouselPortfolioHero({
|
|
|
24665
24522
|
setCurrentIndex((prevIndex) => (prevIndex + 1) % (slides?.length ?? 1));
|
|
24666
24523
|
}, autoPlayInterval);
|
|
24667
24524
|
}, [autoPlayInterval, slides?.length]);
|
|
24668
|
-
const goToNext =
|
|
24525
|
+
const goToNext = React28.useCallback(() => {
|
|
24669
24526
|
setCurrentIndex((prevIndex) => (prevIndex + 1) % (slides?.length ?? 1));
|
|
24670
24527
|
resetInterval();
|
|
24671
24528
|
}, [slides?.length, resetInterval]);
|
|
24672
|
-
const goToPrev =
|
|
24529
|
+
const goToPrev = React28.useCallback(() => {
|
|
24673
24530
|
setCurrentIndex(
|
|
24674
24531
|
(prevIndex) => (prevIndex - 1 + (slides?.length ?? 1)) % (slides?.length ?? 1)
|
|
24675
24532
|
);
|
|
24676
24533
|
resetInterval();
|
|
24677
24534
|
}, [slides?.length, resetInterval]);
|
|
24678
|
-
|
|
24535
|
+
React28.useEffect(() => {
|
|
24679
24536
|
resetInterval();
|
|
24680
24537
|
return () => {
|
|
24681
24538
|
if (intervalRef.current) {
|
|
@@ -24867,9 +24724,9 @@ function CarouselProductFeatureShowcase({
|
|
|
24867
24724
|
pattern,
|
|
24868
24725
|
patternOpacity
|
|
24869
24726
|
}) {
|
|
24870
|
-
const [activeIndex, setActiveIndex] =
|
|
24871
|
-
const [activeColorIndex, setActiveColorIndex] =
|
|
24872
|
-
const [direction, setDirection] =
|
|
24727
|
+
const [activeIndex, setActiveIndex] = React28.useState(0);
|
|
24728
|
+
const [activeColorIndex, setActiveColorIndex] = React28.useState(0);
|
|
24729
|
+
const [direction, setDirection] = React28.useState(0);
|
|
24873
24730
|
const activeFeature = features?.[activeIndex];
|
|
24874
24731
|
const goToNext = () => {
|
|
24875
24732
|
setDirection(1);
|
|
@@ -25089,9 +24946,9 @@ function CarouselProductFeatureShowcase({
|
|
|
25089
24946
|
}
|
|
25090
24947
|
);
|
|
25091
24948
|
}
|
|
25092
|
-
var ProgressSliderContext =
|
|
24949
|
+
var ProgressSliderContext = React28.createContext(void 0);
|
|
25093
24950
|
function useProgressSliderContext() {
|
|
25094
|
-
const context =
|
|
24951
|
+
const context = React28.useContext(ProgressSliderContext);
|
|
25095
24952
|
if (!context) {
|
|
25096
24953
|
throw new Error(
|
|
25097
24954
|
"useProgressSliderContext must be used within a ProgressSlider"
|
|
@@ -25177,19 +25034,19 @@ function CarouselProgressSlider({
|
|
|
25177
25034
|
pattern,
|
|
25178
25035
|
patternOpacity
|
|
25179
25036
|
}) {
|
|
25180
|
-
const [active, setActive] =
|
|
25181
|
-
const [progress, setProgress] =
|
|
25182
|
-
const [isFastForward, setIsFastForward] =
|
|
25183
|
-
const [isPaused, setIsPaused] =
|
|
25184
|
-
const frame =
|
|
25185
|
-
const firstFrameTime =
|
|
25186
|
-
const targetValue =
|
|
25187
|
-
const pausedProgress =
|
|
25188
|
-
const sliderValues =
|
|
25037
|
+
const [active, setActive] = React28.useState(slides?.[0]?.id ?? "");
|
|
25038
|
+
const [progress, setProgress] = React28.useState(0);
|
|
25039
|
+
const [isFastForward, setIsFastForward] = React28.useState(false);
|
|
25040
|
+
const [isPaused, setIsPaused] = React28.useState(false);
|
|
25041
|
+
const frame = React28.useRef(0);
|
|
25042
|
+
const firstFrameTime = React28.useRef(performance.now());
|
|
25043
|
+
const targetValue = React28.useRef(null);
|
|
25044
|
+
const pausedProgress = React28.useRef(0);
|
|
25045
|
+
const sliderValues = React28.useMemo(
|
|
25189
25046
|
() => slides?.map((slide) => slide.id),
|
|
25190
25047
|
[slides]
|
|
25191
25048
|
);
|
|
25192
|
-
|
|
25049
|
+
React28.useEffect(() => {
|
|
25193
25050
|
if ((sliderValues?.length ?? 0) > 0 && !isPaused) {
|
|
25194
25051
|
firstFrameTime.current = performance.now();
|
|
25195
25052
|
if (pausedProgress.current > 0) {
|
|
@@ -25354,11 +25211,11 @@ function CarouselScrollingFeatureShowcase({
|
|
|
25354
25211
|
pattern,
|
|
25355
25212
|
patternOpacity
|
|
25356
25213
|
}) {
|
|
25357
|
-
const [activeFeature, setActiveFeature] =
|
|
25214
|
+
const [activeFeature, setActiveFeature] = React28.useState(
|
|
25358
25215
|
features?.[0]?.id ?? ""
|
|
25359
25216
|
);
|
|
25360
|
-
const featureRefs =
|
|
25361
|
-
|
|
25217
|
+
const featureRefs = React28.useRef(/* @__PURE__ */ new Map());
|
|
25218
|
+
React28.useEffect(() => {
|
|
25362
25219
|
if (!features || features.length === 0) return;
|
|
25363
25220
|
const observerOptions = {
|
|
25364
25221
|
root: null,
|
|
@@ -26283,9 +26140,9 @@ function FeatureChecklistImage({
|
|
|
26283
26140
|
}
|
|
26284
26141
|
);
|
|
26285
26142
|
}
|
|
26286
|
-
var CarouselContext =
|
|
26143
|
+
var CarouselContext = React28.createContext(null);
|
|
26287
26144
|
function useCarousel() {
|
|
26288
|
-
const context =
|
|
26145
|
+
const context = React28.useContext(CarouselContext);
|
|
26289
26146
|
if (!context) {
|
|
26290
26147
|
throw new Error("useCarousel must be used within a <Carousel />");
|
|
26291
26148
|
}
|
|
@@ -26307,20 +26164,20 @@ function Carousel({
|
|
|
26307
26164
|
},
|
|
26308
26165
|
plugins
|
|
26309
26166
|
);
|
|
26310
|
-
const [canScrollPrev, setCanScrollPrev] =
|
|
26311
|
-
const [canScrollNext, setCanScrollNext] =
|
|
26312
|
-
const onSelect =
|
|
26167
|
+
const [canScrollPrev, setCanScrollPrev] = React28.useState(false);
|
|
26168
|
+
const [canScrollNext, setCanScrollNext] = React28.useState(false);
|
|
26169
|
+
const onSelect = React28.useCallback((api2) => {
|
|
26313
26170
|
if (!api2) return;
|
|
26314
26171
|
setCanScrollPrev(api2.canScrollPrev());
|
|
26315
26172
|
setCanScrollNext(api2.canScrollNext());
|
|
26316
26173
|
}, []);
|
|
26317
|
-
const scrollPrev =
|
|
26174
|
+
const scrollPrev = React28.useCallback(() => {
|
|
26318
26175
|
api?.scrollPrev();
|
|
26319
26176
|
}, [api]);
|
|
26320
|
-
const scrollNext =
|
|
26177
|
+
const scrollNext = React28.useCallback(() => {
|
|
26321
26178
|
api?.scrollNext();
|
|
26322
26179
|
}, [api]);
|
|
26323
|
-
const handleKeyDown =
|
|
26180
|
+
const handleKeyDown = React28.useCallback(
|
|
26324
26181
|
(event) => {
|
|
26325
26182
|
if (event.key === "ArrowLeft") {
|
|
26326
26183
|
event.preventDefault();
|
|
@@ -26332,11 +26189,11 @@ function Carousel({
|
|
|
26332
26189
|
},
|
|
26333
26190
|
[scrollPrev, scrollNext]
|
|
26334
26191
|
);
|
|
26335
|
-
|
|
26192
|
+
React28.useEffect(() => {
|
|
26336
26193
|
if (!api || !setApi) return;
|
|
26337
26194
|
setApi(api);
|
|
26338
26195
|
}, [api, setApi]);
|
|
26339
|
-
|
|
26196
|
+
React28.useEffect(() => {
|
|
26340
26197
|
if (!api) return;
|
|
26341
26198
|
onSelect(api);
|
|
26342
26199
|
api.on("reInit", onSelect);
|
|
@@ -27260,7 +27117,7 @@ function FeatureThreeColumnValues({
|
|
|
27260
27117
|
patternOpacity,
|
|
27261
27118
|
patternClassName
|
|
27262
27119
|
}) {
|
|
27263
|
-
const renderValueIcon =
|
|
27120
|
+
const renderValueIcon = React28.useCallback(
|
|
27264
27121
|
(value) => {
|
|
27265
27122
|
if (value.icon) return value.icon;
|
|
27266
27123
|
if (value.iconName)
|
|
@@ -27762,7 +27619,7 @@ function FeatureTabbedContentImage({
|
|
|
27762
27619
|
patternOpacity,
|
|
27763
27620
|
patternClassName
|
|
27764
27621
|
}) {
|
|
27765
|
-
const renderFeatures =
|
|
27622
|
+
const renderFeatures = React28.useCallback(
|
|
27766
27623
|
(slide) => {
|
|
27767
27624
|
if (slide.featuresSlot) return slide.featuresSlot;
|
|
27768
27625
|
if (!slide.features || slide.features.length === 0) return null;
|
|
@@ -27786,7 +27643,7 @@ function FeatureTabbedContentImage({
|
|
|
27786
27643
|
},
|
|
27787
27644
|
[]
|
|
27788
27645
|
);
|
|
27789
|
-
const renderActions =
|
|
27646
|
+
const renderActions = React28.useCallback(
|
|
27790
27647
|
(slide) => {
|
|
27791
27648
|
if (slide.actionsSlot) return slide.actionsSlot;
|
|
27792
27649
|
if (!slide.actions || slide.actions.length === 0) return null;
|
|
@@ -27829,7 +27686,7 @@ function FeatureTabbedContentImage({
|
|
|
27829
27686
|
},
|
|
27830
27687
|
[]
|
|
27831
27688
|
);
|
|
27832
|
-
const renderImage =
|
|
27689
|
+
const renderImage = React28.useCallback(
|
|
27833
27690
|
(slide) => {
|
|
27834
27691
|
if (slide.imageSlot) return slide.imageSlot;
|
|
27835
27692
|
if (!slide.image) return null;
|
|
@@ -28065,7 +27922,7 @@ function FeatureUtilityCardsGrid({
|
|
|
28065
27922
|
}
|
|
28066
27923
|
);
|
|
28067
27924
|
}, [learnMoreSlot, learnMoreAction, background]);
|
|
28068
|
-
const renderUtilityImage =
|
|
27925
|
+
const renderUtilityImage = React28.useCallback(
|
|
28069
27926
|
(utility) => {
|
|
28070
27927
|
if (utility.imageSlot) return utility.imageSlot;
|
|
28071
27928
|
if (utility.image) {
|
|
@@ -28243,7 +28100,7 @@ function FeatureBentoUtilities({
|
|
|
28243
28100
|
patternOpacity,
|
|
28244
28101
|
patternClassName
|
|
28245
28102
|
}) {
|
|
28246
|
-
const renderCard =
|
|
28103
|
+
const renderCard = React28.useCallback(
|
|
28247
28104
|
(card, index) => {
|
|
28248
28105
|
const hasImage = card.imageSrc || card.imageSlot;
|
|
28249
28106
|
const cardClasses = cn(
|
|
@@ -28299,7 +28156,7 @@ function FeatureBentoUtilities({
|
|
|
28299
28156
|
},
|
|
28300
28157
|
[optixFlowConfig]
|
|
28301
28158
|
);
|
|
28302
|
-
const renderColumn =
|
|
28159
|
+
const renderColumn = React28.useCallback(
|
|
28303
28160
|
(cards, slot) => {
|
|
28304
28161
|
if (slot) return slot;
|
|
28305
28162
|
if (!cards || cards.length === 0) return null;
|
|
@@ -29545,7 +29402,7 @@ function FeatureBentoImageGrid({
|
|
|
29545
29402
|
patternOpacity,
|
|
29546
29403
|
patternClassName
|
|
29547
29404
|
}) {
|
|
29548
|
-
const renderItemIcon =
|
|
29405
|
+
const renderItemIcon = React28.useCallback(
|
|
29549
29406
|
(item) => {
|
|
29550
29407
|
if (item.icon) return item.icon;
|
|
29551
29408
|
if (item.iconName) return /* @__PURE__ */ jsx(DynamicIcon, { name: item.iconName, size: 24 });
|
|
@@ -29553,7 +29410,7 @@ function FeatureBentoImageGrid({
|
|
|
29553
29410
|
},
|
|
29554
29411
|
[]
|
|
29555
29412
|
);
|
|
29556
|
-
const renderItemImage =
|
|
29413
|
+
const renderItemImage = React28.useCallback(
|
|
29557
29414
|
(item, imageClassName) => {
|
|
29558
29415
|
if (item.imageSlot) return item.imageSlot;
|
|
29559
29416
|
if (item.imageSrc) {
|
|
@@ -29572,7 +29429,7 @@ function FeatureBentoImageGrid({
|
|
|
29572
29429
|
},
|
|
29573
29430
|
[optixFlowConfig]
|
|
29574
29431
|
);
|
|
29575
|
-
const renderLargeCard =
|
|
29432
|
+
const renderLargeCard = React28.useCallback(
|
|
29576
29433
|
(item) => {
|
|
29577
29434
|
const iconContent = renderItemIcon(item);
|
|
29578
29435
|
const hasIconBadgeContent = iconContent || item.iconBadge;
|
|
@@ -29660,7 +29517,7 @@ function FeatureBentoImageGrid({
|
|
|
29660
29517
|
},
|
|
29661
29518
|
[largeCardClassName, renderItemImage, renderItemIcon]
|
|
29662
29519
|
);
|
|
29663
|
-
const renderSmallCard =
|
|
29520
|
+
const renderSmallCard = React28.useCallback(
|
|
29664
29521
|
(item, index) => {
|
|
29665
29522
|
const iconContent = renderItemIcon(item);
|
|
29666
29523
|
const hasIconBadgeContent = iconContent || item.iconBadge;
|
|
@@ -30275,7 +30132,7 @@ function FeatureAccordionImage({
|
|
|
30275
30132
|
patternOpacity,
|
|
30276
30133
|
patternClassName
|
|
30277
30134
|
}) {
|
|
30278
|
-
const [activeItem, setActiveItem] =
|
|
30135
|
+
const [activeItem, setActiveItem] = React28.useState(defaultValue || "item-0");
|
|
30279
30136
|
const activeIndex = parseInt(activeItem.replace("item-", ""), 10) || 0;
|
|
30280
30137
|
const currentImage = items?.[activeIndex] || items?.[0];
|
|
30281
30138
|
const accordionItemsContent = useMemo(() => {
|
|
@@ -30424,7 +30281,7 @@ function FeatureCapabilitiesGrid({
|
|
|
30424
30281
|
patternOpacity,
|
|
30425
30282
|
patternClassName
|
|
30426
30283
|
}) {
|
|
30427
|
-
const renderItemIcon =
|
|
30284
|
+
const renderItemIcon = React28.useCallback(
|
|
30428
30285
|
(item) => {
|
|
30429
30286
|
if (item.icon) return item.icon;
|
|
30430
30287
|
if (item.iconName) return /* @__PURE__ */ jsx(DynamicIcon, { name: item.iconName, size: 20 });
|
|
@@ -30576,7 +30433,7 @@ function FeatureCapabilitiesGrid({
|
|
|
30576
30433
|
}
|
|
30577
30434
|
);
|
|
30578
30435
|
}
|
|
30579
|
-
var TeamMemberBackgroundImageCard =
|
|
30436
|
+
var TeamMemberBackgroundImageCard = React28.forwardRef(
|
|
30580
30437
|
({ className, imageUrl, imageAlt, children, optixFlowConfig, background, ...props }, ref) => {
|
|
30581
30438
|
return /* @__PURE__ */ jsxs(
|
|
30582
30439
|
"div",
|
|
@@ -30624,7 +30481,7 @@ function TeamMediaShowcase({
|
|
|
30624
30481
|
actionClassName,
|
|
30625
30482
|
optixFlowConfig
|
|
30626
30483
|
}) {
|
|
30627
|
-
const renderItems =
|
|
30484
|
+
const renderItems = React28.useMemo(() => {
|
|
30628
30485
|
if (itemsSlot) return itemsSlot;
|
|
30629
30486
|
return items.map((member, idx) => {
|
|
30630
30487
|
const imageAlt = member.imageAlt || (member.name && typeof member.name === "string" && member.name.trim() !== "" ? member.name : `member-${idx}`);
|
|
@@ -30722,7 +30579,7 @@ function TeamSimpleGrid({
|
|
|
30722
30579
|
memberNameClassName,
|
|
30723
30580
|
memberRoleClassName
|
|
30724
30581
|
}) {
|
|
30725
|
-
const renderMembers =
|
|
30582
|
+
const renderMembers = React28.useMemo(() => {
|
|
30726
30583
|
if (membersSlot) return membersSlot;
|
|
30727
30584
|
if (!members || members.length === 0) return null;
|
|
30728
30585
|
return members.map((member) => /* @__PURE__ */ jsxs(
|
|
@@ -30884,7 +30741,7 @@ function FooterBrandLinksContact({
|
|
|
30884
30741
|
linkListClassName,
|
|
30885
30742
|
linkItemClassName
|
|
30886
30743
|
]);
|
|
30887
|
-
const contactItemsContent =
|
|
30744
|
+
const contactItemsContent = React28.useMemo(() => {
|
|
30888
30745
|
if (!contactItems || contactItems.length === 0) return null;
|
|
30889
30746
|
return contactItems.map((item, idx) => /* @__PURE__ */ jsxs(
|
|
30890
30747
|
"div",
|
|
@@ -31242,7 +31099,7 @@ function TeamSocialGrid({
|
|
|
31242
31099
|
memberRoleClassName,
|
|
31243
31100
|
socialLinksClassName
|
|
31244
31101
|
}) {
|
|
31245
|
-
const renderMembers =
|
|
31102
|
+
const renderMembers = React28.useMemo(() => {
|
|
31246
31103
|
if (membersSlot) return membersSlot;
|
|
31247
31104
|
if (!members || members.length === 0) return null;
|
|
31248
31105
|
return members.map((member) => /* @__PURE__ */ jsxs(
|
|
@@ -31264,61 +31121,49 @@ function TeamSocialGrid({
|
|
|
31264
31121
|
}
|
|
31265
31122
|
),
|
|
31266
31123
|
/* @__PURE__ */ jsx("p", { className: cn("text-center font-medium", memberNameClassName), children: member.name }),
|
|
31267
|
-
/* @__PURE__ */ jsx(
|
|
31268
|
-
|
|
31269
|
-
|
|
31270
|
-
|
|
31271
|
-
|
|
31272
|
-
|
|
31273
|
-
|
|
31274
|
-
|
|
31275
|
-
|
|
31276
|
-
|
|
31277
|
-
|
|
31278
|
-
|
|
31279
|
-
|
|
31280
|
-
|
|
31281
|
-
|
|
31282
|
-
"
|
|
31283
|
-
|
|
31284
|
-
|
|
31285
|
-
|
|
31286
|
-
|
|
31287
|
-
|
|
31288
|
-
|
|
31289
|
-
|
|
31290
|
-
|
|
31291
|
-
|
|
31292
|
-
|
|
31293
|
-
|
|
31294
|
-
|
|
31295
|
-
|
|
31296
|
-
|
|
31297
|
-
Pressable,
|
|
31298
|
-
{
|
|
31299
|
-
href: member.social.twitter,
|
|
31300
|
-
className: "transition-colors",
|
|
31301
|
-
"aria-label": `${member.name}'s Twitter`,
|
|
31302
|
-
children: /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/twitter", size: 20 })
|
|
31303
|
-
}
|
|
31304
|
-
),
|
|
31305
|
-
member.social.linkedin && /* @__PURE__ */ jsx(
|
|
31306
|
-
Pressable,
|
|
31307
|
-
{
|
|
31308
|
-
href: member.social.linkedin,
|
|
31309
|
-
className: "transition-colors",
|
|
31310
|
-
"aria-label": `${member.name}'s LinkedIn`,
|
|
31311
|
-
children: /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/linkedin", size: 20 })
|
|
31312
|
-
}
|
|
31313
|
-
)
|
|
31314
|
-
]
|
|
31315
|
-
}
|
|
31316
|
-
)
|
|
31124
|
+
/* @__PURE__ */ jsx("p", { className: cn("text-center", memberRoleClassName), children: member.role }),
|
|
31125
|
+
member.social && /* @__PURE__ */ jsxs("div", { className: cn("mt-2 flex gap-2", socialLinksClassName), children: [
|
|
31126
|
+
member.social.github && /* @__PURE__ */ jsx(
|
|
31127
|
+
Pressable,
|
|
31128
|
+
{
|
|
31129
|
+
href: member.social.github,
|
|
31130
|
+
className: "transition-colors",
|
|
31131
|
+
"aria-label": `${member.name}'s GitHub`,
|
|
31132
|
+
children: /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/github", size: 20 })
|
|
31133
|
+
}
|
|
31134
|
+
),
|
|
31135
|
+
member.social.twitter && /* @__PURE__ */ jsx(
|
|
31136
|
+
Pressable,
|
|
31137
|
+
{
|
|
31138
|
+
href: member.social.twitter,
|
|
31139
|
+
className: "transition-colors",
|
|
31140
|
+
"aria-label": `${member.name}'s Twitter`,
|
|
31141
|
+
children: /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/twitter", size: 20 })
|
|
31142
|
+
}
|
|
31143
|
+
),
|
|
31144
|
+
member.social.linkedin && /* @__PURE__ */ jsx(
|
|
31145
|
+
Pressable,
|
|
31146
|
+
{
|
|
31147
|
+
href: member.social.linkedin,
|
|
31148
|
+
className: "transition-colors",
|
|
31149
|
+
"aria-label": `${member.name}'s LinkedIn`,
|
|
31150
|
+
children: /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/linkedin", size: 20 })
|
|
31151
|
+
}
|
|
31152
|
+
)
|
|
31153
|
+
] })
|
|
31317
31154
|
]
|
|
31318
31155
|
},
|
|
31319
31156
|
member.id
|
|
31320
31157
|
));
|
|
31321
|
-
}, [
|
|
31158
|
+
}, [
|
|
31159
|
+
membersSlot,
|
|
31160
|
+
members,
|
|
31161
|
+
memberCardClassName,
|
|
31162
|
+
avatarClassName,
|
|
31163
|
+
memberNameClassName,
|
|
31164
|
+
memberRoleClassName,
|
|
31165
|
+
socialLinksClassName
|
|
31166
|
+
]);
|
|
31322
31167
|
return /* @__PURE__ */ jsxs(
|
|
31323
31168
|
Section,
|
|
31324
31169
|
{
|
|
@@ -31349,11 +31194,7 @@ function TeamSocialGrid({
|
|
|
31349
31194
|
description && (typeof description === "string" ? /* @__PURE__ */ jsx(
|
|
31350
31195
|
"p",
|
|
31351
31196
|
{
|
|
31352
|
-
className: cn(
|
|
31353
|
-
"mb-8 max-w-3xl lg:text-xl",
|
|
31354
|
-
getTextColor(background, "muted"),
|
|
31355
|
-
descriptionClassName
|
|
31356
|
-
),
|
|
31197
|
+
className: cn("mb-8 max-w-3xl lg:text-xl", descriptionClassName),
|
|
31357
31198
|
children: description
|
|
31358
31199
|
}
|
|
31359
31200
|
) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description }))
|
|
@@ -31394,7 +31235,7 @@ function TeamGradientCards({
|
|
|
31394
31235
|
memberRoleClassName,
|
|
31395
31236
|
socialLinksClassName
|
|
31396
31237
|
}) {
|
|
31397
|
-
const renderMembers =
|
|
31238
|
+
const renderMembers = React28.useMemo(() => {
|
|
31398
31239
|
if (membersSlot) return membersSlot;
|
|
31399
31240
|
if (!members || members.length === 0) return null;
|
|
31400
31241
|
return members.map((member) => /* @__PURE__ */ jsx(
|
|
@@ -31550,7 +31391,7 @@ function TeamBioBadges({
|
|
|
31550
31391
|
memberBioClassName,
|
|
31551
31392
|
socialLinksClassName
|
|
31552
31393
|
}) {
|
|
31553
|
-
const renderMembers =
|
|
31394
|
+
const renderMembers = React28.useMemo(() => {
|
|
31554
31395
|
if (membersSlot) return membersSlot;
|
|
31555
31396
|
if (!members || members.length === 0) return null;
|
|
31556
31397
|
return members.map((member) => /* @__PURE__ */ jsxs(
|
|
@@ -31727,7 +31568,7 @@ function TeamExpertiseCards({
|
|
|
31727
31568
|
ctaDescriptionClassName,
|
|
31728
31569
|
ctaButtonClassName
|
|
31729
31570
|
}) {
|
|
31730
|
-
const renderMembers =
|
|
31571
|
+
const renderMembers = React28.useMemo(() => {
|
|
31731
31572
|
if (membersSlot) return membersSlot;
|
|
31732
31573
|
if (!members || members.length === 0) return null;
|
|
31733
31574
|
return members.map((member) => /* @__PURE__ */ jsx(
|
|
@@ -31804,7 +31645,7 @@ function TeamExpertiseCards({
|
|
|
31804
31645
|
member.id
|
|
31805
31646
|
));
|
|
31806
31647
|
}, [membersSlot, members, background, memberCardClassName, avatarClassName, memberNameClassName, memberRoleClassName, departmentBadgeClassName, memberDescriptionClassName, expertiseClassName]);
|
|
31807
|
-
const renderCta =
|
|
31648
|
+
const renderCta = React28.useMemo(() => {
|
|
31808
31649
|
if (ctaSlot) return ctaSlot;
|
|
31809
31650
|
return /* @__PURE__ */ jsxs(
|
|
31810
31651
|
"div",
|
|
@@ -31920,7 +31761,7 @@ function TeamCompactGrid({
|
|
|
31920
31761
|
ctaDescriptionClassName,
|
|
31921
31762
|
ctaButtonClassName
|
|
31922
31763
|
}) {
|
|
31923
|
-
const renderMembers =
|
|
31764
|
+
const renderMembers = React28.useMemo(() => {
|
|
31924
31765
|
if (membersSlot) return membersSlot;
|
|
31925
31766
|
if (!members || members.length === 0) return null;
|
|
31926
31767
|
return members.map((member) => /* @__PURE__ */ jsxs(
|
|
@@ -31975,7 +31816,7 @@ function TeamCompactGrid({
|
|
|
31975
31816
|
member.id
|
|
31976
31817
|
));
|
|
31977
31818
|
}, [membersSlot, members, background, memberCardClassName, avatarClassName, memberNameClassName, memberRoleClassName, departmentBadgeClassName]);
|
|
31978
|
-
const renderCta =
|
|
31819
|
+
const renderCta = React28.useMemo(() => {
|
|
31979
31820
|
if (ctaSlot) return ctaSlot;
|
|
31980
31821
|
return /* @__PURE__ */ jsxs(
|
|
31981
31822
|
"div",
|
|
@@ -32079,7 +31920,7 @@ function TeamInvestorShowcase({
|
|
|
32079
31920
|
investorCompanyClassName,
|
|
32080
31921
|
optixFlowConfig
|
|
32081
31922
|
}) {
|
|
32082
|
-
const renderInvestors =
|
|
31923
|
+
const renderInvestors = React28.useMemo(() => {
|
|
32083
31924
|
if (investorsSlot) return investorsSlot;
|
|
32084
31925
|
if (!investors || investors.length === 0) return null;
|
|
32085
31926
|
return investors.map((investor) => /* @__PURE__ */ jsxs("div", { className: investorCardClassName, children: [
|
|
@@ -32153,7 +31994,7 @@ function TeamCarouselExperience({
|
|
|
32153
31994
|
memberRoleClassName,
|
|
32154
31995
|
optixFlowConfig
|
|
32155
31996
|
}) {
|
|
32156
|
-
const renderMembers =
|
|
31997
|
+
const renderMembers = React28.useMemo(() => {
|
|
32157
31998
|
if (membersSlot) return membersSlot;
|
|
32158
31999
|
if (!members || members.length === 0) return null;
|
|
32159
32000
|
return members.map((member, idx) => /* @__PURE__ */ jsx(CarouselItem, { className: "max-w-72", children: /* @__PURE__ */ jsxs(
|
|
@@ -32303,20 +32144,20 @@ function TeamFilterableSearch({
|
|
|
32303
32144
|
emptyStateClassName,
|
|
32304
32145
|
emptyStateMessage
|
|
32305
32146
|
}) {
|
|
32306
|
-
const [searchQuery, setSearchQuery] =
|
|
32307
|
-
const [selectedDepartment, setSelectedDepartment] =
|
|
32308
|
-
const departments =
|
|
32147
|
+
const [searchQuery, setSearchQuery] = React28.useState("");
|
|
32148
|
+
const [selectedDepartment, setSelectedDepartment] = React28.useState("All");
|
|
32149
|
+
const departments = React28.useMemo(() => {
|
|
32309
32150
|
const depts = new Set(members.map((m) => m.department));
|
|
32310
32151
|
return ["All", ...Array.from(depts)];
|
|
32311
32152
|
}, [members]);
|
|
32312
|
-
const filteredMembers =
|
|
32153
|
+
const filteredMembers = React28.useMemo(() => {
|
|
32313
32154
|
return members.filter((member) => {
|
|
32314
32155
|
const matchesSearch = searchQuery === "" || member.name.toLowerCase().includes(searchQuery.toLowerCase()) || member.role.toLowerCase().includes(searchQuery.toLowerCase()) || member.description.toLowerCase().includes(searchQuery.toLowerCase());
|
|
32315
32156
|
const matchesDepartment = selectedDepartment === "All" || member.department === selectedDepartment;
|
|
32316
32157
|
return matchesSearch && matchesDepartment;
|
|
32317
32158
|
});
|
|
32318
32159
|
}, [members, searchQuery, selectedDepartment]);
|
|
32319
|
-
const renderFilters =
|
|
32160
|
+
const renderFilters = React28.useMemo(() => {
|
|
32320
32161
|
if (filtersSlot) return filtersSlot;
|
|
32321
32162
|
return /* @__PURE__ */ jsxs(
|
|
32322
32163
|
"div",
|
|
@@ -32371,7 +32212,7 @@ function TeamFilterableSearch({
|
|
|
32371
32212
|
selectedDepartment,
|
|
32372
32213
|
filterButtonClassName
|
|
32373
32214
|
]);
|
|
32374
|
-
const renderMembers =
|
|
32215
|
+
const renderMembers = React28.useMemo(() => {
|
|
32375
32216
|
if (membersSlot) return membersSlot;
|
|
32376
32217
|
return filteredMembers.map((member) => /* @__PURE__ */ jsx(
|
|
32377
32218
|
"div",
|
|
@@ -32558,7 +32399,7 @@ function TeamCompactCta({
|
|
|
32558
32399
|
memberRoleClassName,
|
|
32559
32400
|
ctaClassName
|
|
32560
32401
|
}) {
|
|
32561
|
-
const renderMembers =
|
|
32402
|
+
const renderMembers = React28.useMemo(() => {
|
|
32562
32403
|
if (membersSlot) return membersSlot;
|
|
32563
32404
|
if (!members || members.length === 0) return null;
|
|
32564
32405
|
return members.map((member) => /* @__PURE__ */ jsxs(
|
|
@@ -32586,7 +32427,7 @@ function TeamCompactCta({
|
|
|
32586
32427
|
member.id
|
|
32587
32428
|
));
|
|
32588
32429
|
}, [membersSlot, members, memberCardClassName, avatarClassName, memberNameClassName, memberRoleClassName, background]);
|
|
32589
|
-
const renderCta =
|
|
32430
|
+
const renderCta = React28.useMemo(() => {
|
|
32590
32431
|
if (ctaSlot) return ctaSlot;
|
|
32591
32432
|
return /* @__PURE__ */ jsx(
|
|
32592
32433
|
Pressable,
|
|
@@ -32677,7 +32518,7 @@ function TeamHoverHighlight({
|
|
|
32677
32518
|
socialLinksClassName,
|
|
32678
32519
|
optixFlowConfig
|
|
32679
32520
|
}) {
|
|
32680
|
-
const renderMembers =
|
|
32521
|
+
const renderMembers = React28.useMemo(() => {
|
|
32681
32522
|
if (membersSlot) return membersSlot;
|
|
32682
32523
|
if (!members || members.length === 0) return null;
|
|
32683
32524
|
return members.map((member) => /* @__PURE__ */ jsxs(
|
|
@@ -32826,7 +32667,7 @@ function TeamSocialCards({
|
|
|
32826
32667
|
socialLinksClassName,
|
|
32827
32668
|
optixFlowConfig
|
|
32828
32669
|
}) {
|
|
32829
|
-
const renderMembers =
|
|
32670
|
+
const renderMembers = React28.useMemo(() => {
|
|
32830
32671
|
if (membersSlot) return membersSlot;
|
|
32831
32672
|
if (!members || members.length === 0) return null;
|
|
32832
32673
|
return members.map((member) => /* @__PURE__ */ jsx(
|
|
@@ -32996,7 +32837,7 @@ function TeamGridAnimated({
|
|
|
32996
32837
|
"hsl(var(--muted))",
|
|
32997
32838
|
"hsl(var(--warning)/0.2)"
|
|
32998
32839
|
];
|
|
32999
|
-
const renderMembers =
|
|
32840
|
+
const renderMembers = React28.useMemo(() => {
|
|
33000
32841
|
if (membersSlot) return membersSlot;
|
|
33001
32842
|
if (!members || members.length === 0) return null;
|
|
33002
32843
|
return members.map((member, index) => /* @__PURE__ */ jsxs(
|
|
@@ -33096,7 +32937,7 @@ function TeamGridAnimated({
|
|
|
33096
32937
|
memberDesignationClassName,
|
|
33097
32938
|
socialLinksClassName
|
|
33098
32939
|
]);
|
|
33099
|
-
const renderSocialLinksMain =
|
|
32940
|
+
const renderSocialLinksMain = React28.useMemo(() => {
|
|
33100
32941
|
if (socialLinksMainSlot) return socialLinksMainSlot;
|
|
33101
32942
|
if (!socialLinksMain || socialLinksMain.length === 0) return null;
|
|
33102
32943
|
return /* @__PURE__ */ jsxs("div", { className: "flex w-full items-center justify-center gap-4 py-4 md:justify-center", children: [
|
|
@@ -33213,7 +33054,7 @@ function TeamDepartmentSections({
|
|
|
33213
33054
|
memberRoleClassName,
|
|
33214
33055
|
optixFlowConfig
|
|
33215
33056
|
}) {
|
|
33216
|
-
const renderDepartments =
|
|
33057
|
+
const renderDepartments = React28.useMemo(() => {
|
|
33217
33058
|
if (departmentsSlot) return departmentsSlot;
|
|
33218
33059
|
if (!departments || departments.length === 0) return null;
|
|
33219
33060
|
return departments.map((department, deptIndex) => /* @__PURE__ */ jsxs(
|
|
@@ -33317,7 +33158,7 @@ function TeamAlternatingBios({
|
|
|
33317
33158
|
socialLinksClassName,
|
|
33318
33159
|
optixFlowConfig
|
|
33319
33160
|
}) {
|
|
33320
|
-
const renderMembers =
|
|
33161
|
+
const renderMembers = React28.useMemo(() => {
|
|
33321
33162
|
if (membersSlot) return membersSlot;
|
|
33322
33163
|
if (!members || members.length === 0) return null;
|
|
33323
33164
|
return members.map((member, index) => /* @__PURE__ */ jsxs(
|
|
@@ -33499,7 +33340,7 @@ function TeamAvatarSocial({
|
|
|
33499
33340
|
memberRoleClassName,
|
|
33500
33341
|
socialLinksClassName
|
|
33501
33342
|
}) {
|
|
33502
|
-
const renderMembers =
|
|
33343
|
+
const renderMembers = React28.useMemo(() => {
|
|
33503
33344
|
if (membersSlot) return membersSlot;
|
|
33504
33345
|
if (!members || members.length === 0) return null;
|
|
33505
33346
|
return members.map((member) => /* @__PURE__ */ jsxs(
|
|
@@ -33642,7 +33483,7 @@ function TeamHoverOverlay({
|
|
|
33642
33483
|
socialLinksClassName,
|
|
33643
33484
|
optixFlowConfig
|
|
33644
33485
|
}) {
|
|
33645
|
-
const renderMembers =
|
|
33486
|
+
const renderMembers = React28.useMemo(() => {
|
|
33646
33487
|
if (membersSlot) return membersSlot;
|
|
33647
33488
|
if (!members || members.length === 0) return null;
|
|
33648
33489
|
return members.map((member) => /* @__PURE__ */ jsx(
|
|
@@ -33818,14 +33659,14 @@ function TeamRoleFilter({
|
|
|
33818
33659
|
socialLinksClassName,
|
|
33819
33660
|
optixFlowConfig
|
|
33820
33661
|
}) {
|
|
33821
|
-
const [selectedRole, setSelectedRole] =
|
|
33822
|
-
const filteredMembers =
|
|
33662
|
+
const [selectedRole, setSelectedRole] = React28.useState("All");
|
|
33663
|
+
const filteredMembers = React28.useMemo(() => {
|
|
33823
33664
|
if (!members) return [];
|
|
33824
33665
|
return members.filter(
|
|
33825
33666
|
(member) => selectedRole === "All" ? true : member.role === selectedRole
|
|
33826
33667
|
);
|
|
33827
33668
|
}, [members, selectedRole]);
|
|
33828
|
-
const renderRoles =
|
|
33669
|
+
const renderRoles = React28.useMemo(() => {
|
|
33829
33670
|
if (rolesSlot) return rolesSlot;
|
|
33830
33671
|
if (!roles) return null;
|
|
33831
33672
|
return /* @__PURE__ */ jsx(
|
|
@@ -33849,7 +33690,7 @@ function TeamRoleFilter({
|
|
|
33849
33690
|
}
|
|
33850
33691
|
);
|
|
33851
33692
|
}, [rolesSlot, filtersClassName, roles, selectedRole, filterButtonClassName]);
|
|
33852
|
-
const renderMembers =
|
|
33693
|
+
const renderMembers = React28.useMemo(() => {
|
|
33853
33694
|
if (membersSlot) return membersSlot;
|
|
33854
33695
|
return filteredMembers.map((member) => /* @__PURE__ */ jsx(
|
|
33855
33696
|
Card,
|
|
@@ -34009,7 +33850,7 @@ function TeamContactCards({
|
|
|
34009
33850
|
socialLinksClassName,
|
|
34010
33851
|
optixFlowConfig
|
|
34011
33852
|
}) {
|
|
34012
|
-
const getStatusColor =
|
|
33853
|
+
const getStatusColor = React28.useCallback((status) => {
|
|
34013
33854
|
switch (status) {
|
|
34014
33855
|
case "active":
|
|
34015
33856
|
return "bg-success";
|
|
@@ -34019,7 +33860,7 @@ function TeamContactCards({
|
|
|
34019
33860
|
return getTextColor(background, "muted");
|
|
34020
33861
|
}
|
|
34021
33862
|
}, [background]);
|
|
34022
|
-
const renderMembers =
|
|
33863
|
+
const renderMembers = React28.useMemo(() => {
|
|
34023
33864
|
if (membersSlot) return membersSlot;
|
|
34024
33865
|
if (!members || members.length === 0) return null;
|
|
34025
33866
|
return members.map((member) => /* @__PURE__ */ jsx(Card, { className: cn("p-0", memberCardClassName), children: /* @__PURE__ */ jsxs(CardContent, { className: "p-6!", children: [
|
|
@@ -34226,7 +34067,7 @@ function TeamLargeImages({
|
|
|
34226
34067
|
socialLinksClassName,
|
|
34227
34068
|
optixFlowConfig
|
|
34228
34069
|
}) {
|
|
34229
|
-
const renderMembers =
|
|
34070
|
+
const renderMembers = React28.useMemo(() => {
|
|
34230
34071
|
if (membersSlot) return membersSlot;
|
|
34231
34072
|
if (!members || members.length === 0) return null;
|
|
34232
34073
|
return members.map((member) => /* @__PURE__ */ jsxs(
|
|
@@ -34401,7 +34242,7 @@ function TeamSkillBadges({
|
|
|
34401
34242
|
socialLinksClassName,
|
|
34402
34243
|
optixFlowConfig
|
|
34403
34244
|
}) {
|
|
34404
|
-
const renderMembers =
|
|
34245
|
+
const renderMembers = React28.useMemo(() => {
|
|
34405
34246
|
if (membersSlot) return membersSlot;
|
|
34406
34247
|
if (!members || members.length === 0) return null;
|
|
34407
34248
|
return members.map((member) => /* @__PURE__ */ jsx(
|
|
@@ -34591,7 +34432,7 @@ function TeamTestimonialStats({
|
|
|
34591
34432
|
socialLinksClassName,
|
|
34592
34433
|
optixFlowConfig
|
|
34593
34434
|
}) {
|
|
34594
|
-
const renderMembers =
|
|
34435
|
+
const renderMembers = React28.useMemo(() => {
|
|
34595
34436
|
if (membersSlot) return membersSlot;
|
|
34596
34437
|
if (!members || members.length === 0) return null;
|
|
34597
34438
|
return members.map((member) => /* @__PURE__ */ jsx(
|
|
@@ -38735,7 +38576,7 @@ function BlogGridAuthorCardsComponent({
|
|
|
38735
38576
|
pattern,
|
|
38736
38577
|
patternOpacity
|
|
38737
38578
|
}) {
|
|
38738
|
-
const viewAllActionContent =
|
|
38579
|
+
const viewAllActionContent = React28.useMemo(() => {
|
|
38739
38580
|
if (viewAllSlot) return viewAllSlot;
|
|
38740
38581
|
if (!viewAllAction) return null;
|
|
38741
38582
|
const {
|
|
@@ -38760,7 +38601,7 @@ function BlogGridAuthorCardsComponent({
|
|
|
38760
38601
|
}
|
|
38761
38602
|
);
|
|
38762
38603
|
}, [viewAllSlot, viewAllAction]);
|
|
38763
|
-
const postsContent =
|
|
38604
|
+
const postsContent = React28.useMemo(() => {
|
|
38764
38605
|
if (postsSlot) return postsSlot;
|
|
38765
38606
|
if (!posts || posts.length === 0) return null;
|
|
38766
38607
|
return posts.map((post) => {
|
|
@@ -38872,7 +38713,7 @@ function BlogCardsTaglineCta({
|
|
|
38872
38713
|
pattern,
|
|
38873
38714
|
patternOpacity
|
|
38874
38715
|
}) {
|
|
38875
|
-
const ctaActionContent =
|
|
38716
|
+
const ctaActionContent = React28.useMemo(() => {
|
|
38876
38717
|
if (ctaSlot) return ctaSlot;
|
|
38877
38718
|
if (!ctaAction) return null;
|
|
38878
38719
|
const {
|
|
@@ -38900,7 +38741,7 @@ function BlogCardsTaglineCta({
|
|
|
38900
38741
|
}
|
|
38901
38742
|
);
|
|
38902
38743
|
}, [ctaSlot, ctaAction, ctaClassName]);
|
|
38903
|
-
const postsContent =
|
|
38744
|
+
const postsContent = React28.useMemo(() => {
|
|
38904
38745
|
if (postsSlot) return postsSlot;
|
|
38905
38746
|
if (!posts || posts.length === 0) return null;
|
|
38906
38747
|
return posts.map((post) => {
|
|
@@ -39046,7 +38887,7 @@ function BlogCardsReadTime({
|
|
|
39046
38887
|
pattern,
|
|
39047
38888
|
patternOpacity
|
|
39048
38889
|
}) {
|
|
39049
|
-
const renderedViewAllAction =
|
|
38890
|
+
const renderedViewAllAction = React28.useMemo(() => {
|
|
39050
38891
|
if (viewAllSlot) return viewAllSlot;
|
|
39051
38892
|
if (!viewAllAction) return null;
|
|
39052
38893
|
const {
|
|
@@ -39063,7 +38904,7 @@ function BlogCardsReadTime({
|
|
|
39063
38904
|
iconAfter
|
|
39064
38905
|
] }) });
|
|
39065
38906
|
}, [viewAllSlot, viewAllAction]);
|
|
39066
|
-
const renderedPosts =
|
|
38907
|
+
const renderedPosts = React28.useMemo(() => {
|
|
39067
38908
|
if (postsSlot) return postsSlot;
|
|
39068
38909
|
if (!posts || posts.length === 0) return null;
|
|
39069
38910
|
return posts.map((post) => {
|
|
@@ -39200,7 +39041,7 @@ function BlogCategoryOverlay({
|
|
|
39200
39041
|
pattern,
|
|
39201
39042
|
patternOpacity
|
|
39202
39043
|
}) {
|
|
39203
|
-
const viewAllActionContent =
|
|
39044
|
+
const viewAllActionContent = React28.useMemo(() => {
|
|
39204
39045
|
if (viewAllSlot) return viewAllSlot;
|
|
39205
39046
|
if (!viewAllAction) return null;
|
|
39206
39047
|
const {
|
|
@@ -39228,7 +39069,7 @@ function BlogCategoryOverlay({
|
|
|
39228
39069
|
}
|
|
39229
39070
|
);
|
|
39230
39071
|
}, [viewAllSlot, viewAllAction, viewAllClassName]);
|
|
39231
|
-
const postsContent =
|
|
39072
|
+
const postsContent = React28.useMemo(() => {
|
|
39232
39073
|
if (postsSlot) return postsSlot;
|
|
39233
39074
|
if (!posts || posts.length === 0) return null;
|
|
39234
39075
|
return posts.map((post) => {
|
|
@@ -39376,7 +39217,7 @@ function BlogFeaturedPopular({
|
|
|
39376
39217
|
}) {
|
|
39377
39218
|
const featuredPost = posts?.[0];
|
|
39378
39219
|
const popularPosts = posts?.slice(1);
|
|
39379
|
-
const renderedFeaturedPost =
|
|
39220
|
+
const renderedFeaturedPost = React28.useMemo(() => {
|
|
39380
39221
|
if (featuredSlot) return featuredSlot;
|
|
39381
39222
|
if (!featuredPost) return null;
|
|
39382
39223
|
const postHref = featuredPost.href || featuredPost.url || featuredPost.link;
|
|
@@ -39428,7 +39269,7 @@ function BlogFeaturedPopular({
|
|
|
39428
39269
|
featuredContentClassName,
|
|
39429
39270
|
optixFlowConfig
|
|
39430
39271
|
]);
|
|
39431
|
-
const renderedPopularPosts =
|
|
39272
|
+
const renderedPopularPosts = React28.useMemo(() => {
|
|
39432
39273
|
if (postsSlot) return postsSlot;
|
|
39433
39274
|
if (!popularPosts || popularPosts.length === 0) return null;
|
|
39434
39275
|
return popularPosts.map((post) => {
|
|
@@ -39545,7 +39386,7 @@ function BlogRelatedArticles({
|
|
|
39545
39386
|
pattern,
|
|
39546
39387
|
patternOpacity
|
|
39547
39388
|
}) {
|
|
39548
|
-
const renderedSeeAllAction =
|
|
39389
|
+
const renderedSeeAllAction = React28.useMemo(() => {
|
|
39549
39390
|
if (seeAllSlot) return seeAllSlot;
|
|
39550
39391
|
if (!seeAllAction) return null;
|
|
39551
39392
|
const {
|
|
@@ -39574,7 +39415,7 @@ function BlogRelatedArticles({
|
|
|
39574
39415
|
}
|
|
39575
39416
|
);
|
|
39576
39417
|
}, [seeAllSlot, seeAllAction, seeAllClassName]);
|
|
39577
|
-
const renderedArticles =
|
|
39418
|
+
const renderedArticles = React28.useMemo(() => {
|
|
39578
39419
|
if (articlesSlot) return articlesSlot;
|
|
39579
39420
|
if (!articles || articles.length === 0) return null;
|
|
39580
39421
|
return articles.map((item) => {
|
|
@@ -39882,7 +39723,7 @@ function BlogHorizontalCards({
|
|
|
39882
39723
|
pattern,
|
|
39883
39724
|
patternOpacity
|
|
39884
39725
|
}) {
|
|
39885
|
-
const ctaContent =
|
|
39726
|
+
const ctaContent = React28.useMemo(() => {
|
|
39886
39727
|
if (ctaSlot) return ctaSlot;
|
|
39887
39728
|
if (!ctaAction) return null;
|
|
39888
39729
|
const {
|
|
@@ -39907,7 +39748,7 @@ function BlogHorizontalCards({
|
|
|
39907
39748
|
}
|
|
39908
39749
|
);
|
|
39909
39750
|
}, [ctaSlot, ctaAction]);
|
|
39910
|
-
const postsContent =
|
|
39751
|
+
const postsContent = React28.useMemo(() => {
|
|
39911
39752
|
if (postsSlot) return postsSlot;
|
|
39912
39753
|
if (!posts || posts.length === 0) return null;
|
|
39913
39754
|
return posts.map((post) => {
|
|
@@ -40129,7 +39970,7 @@ function Label({
|
|
|
40129
39970
|
);
|
|
40130
39971
|
}
|
|
40131
39972
|
var POSTS_PER_PAGE = 6;
|
|
40132
|
-
var BlogCard =
|
|
39973
|
+
var BlogCard = React28.memo(function BlogCard2({
|
|
40133
39974
|
post,
|
|
40134
39975
|
optixFlowConfig,
|
|
40135
39976
|
className
|
|
@@ -40168,7 +40009,7 @@ var BlogCard = React25.memo(function BlogCard2({
|
|
|
40168
40009
|
] })
|
|
40169
40010
|
] }) });
|
|
40170
40011
|
});
|
|
40171
|
-
var FilterForm =
|
|
40012
|
+
var FilterForm = React28.memo(function FilterForm2({
|
|
40172
40013
|
categories,
|
|
40173
40014
|
selectedCategories,
|
|
40174
40015
|
onCategoryChange,
|
|
@@ -40201,7 +40042,7 @@ var FilterForm = React25.memo(function FilterForm2({
|
|
|
40201
40042
|
}
|
|
40202
40043
|
);
|
|
40203
40044
|
});
|
|
40204
|
-
var BreadcrumbBlog =
|
|
40045
|
+
var BreadcrumbBlog = React28.memo(function BreadcrumbBlog2({
|
|
40205
40046
|
breadcrumb
|
|
40206
40047
|
}) {
|
|
40207
40048
|
return /* @__PURE__ */ jsx(Breadcrumb, { children: /* @__PURE__ */ jsx(BreadcrumbList, { children: breadcrumb.map((item, i) => {
|
|
@@ -40283,12 +40124,12 @@ function BlogFilteredResultsComponent({
|
|
|
40283
40124
|
}, [posts, selectedCategories]);
|
|
40284
40125
|
const postsToDisplay = filteredPosts.length > 0 ? filteredPosts : posts || [];
|
|
40285
40126
|
const hasMore = visibleCount < postsToDisplay.length;
|
|
40286
|
-
const breadcrumbContent =
|
|
40127
|
+
const breadcrumbContent = React28.useMemo(() => {
|
|
40287
40128
|
if (breadcrumbSlot) return breadcrumbSlot;
|
|
40288
40129
|
if (!breadcrumb || breadcrumb.length === 0) return null;
|
|
40289
40130
|
return /* @__PURE__ */ jsx(BreadcrumbBlog, { breadcrumb });
|
|
40290
40131
|
}, [breadcrumbSlot, breadcrumb]);
|
|
40291
|
-
const primaryPostContent =
|
|
40132
|
+
const primaryPostContent = React28.useMemo(() => {
|
|
40292
40133
|
if (primaryPostSlot) return primaryPostSlot;
|
|
40293
40134
|
if (!primaryPost) return null;
|
|
40294
40135
|
return /* @__PURE__ */ jsx(
|
|
@@ -40300,7 +40141,7 @@ function BlogFilteredResultsComponent({
|
|
|
40300
40141
|
}
|
|
40301
40142
|
);
|
|
40302
40143
|
}, [primaryPostSlot, primaryPost, optixFlowConfig, postCardClassName]);
|
|
40303
|
-
const categoriesContent =
|
|
40144
|
+
const categoriesContent = React28.useMemo(() => {
|
|
40304
40145
|
if (categoriesSlot) return categoriesSlot;
|
|
40305
40146
|
if (!categories || categories.length === 0) return null;
|
|
40306
40147
|
return /* @__PURE__ */ jsx(
|
|
@@ -40319,7 +40160,7 @@ function BlogFilteredResultsComponent({
|
|
|
40319
40160
|
handleCategoryChange,
|
|
40320
40161
|
categoriesClassName
|
|
40321
40162
|
]);
|
|
40322
|
-
const postsContent =
|
|
40163
|
+
const postsContent = React28.useMemo(() => {
|
|
40323
40164
|
if (postsSlot) return postsSlot;
|
|
40324
40165
|
return postsToDisplay.slice(0, visibleCount).map((post) => {
|
|
40325
40166
|
const postKey = post.id || String(post.title) || Math.random().toString();
|
|
@@ -40340,7 +40181,7 @@ function BlogFilteredResultsComponent({
|
|
|
40340
40181
|
optixFlowConfig,
|
|
40341
40182
|
postCardClassName
|
|
40342
40183
|
]);
|
|
40343
|
-
const loadMoreContent =
|
|
40184
|
+
const loadMoreContent = React28.useMemo(() => {
|
|
40344
40185
|
if (loadMoreSlot) return loadMoreSlot;
|
|
40345
40186
|
if (!loadMoreAction || !hasMore) return null;
|
|
40346
40187
|
const {
|
|
@@ -40466,7 +40307,7 @@ function BlogMasonryFeaturedComponent({
|
|
|
40466
40307
|
}) {
|
|
40467
40308
|
const featuredPost = posts?.[0];
|
|
40468
40309
|
const otherPosts = posts?.slice(1);
|
|
40469
|
-
const featuredPostContent =
|
|
40310
|
+
const featuredPostContent = React28.useMemo(() => {
|
|
40470
40311
|
if (featuredSlot) return featuredSlot;
|
|
40471
40312
|
if (!featuredPost) return null;
|
|
40472
40313
|
const postHref = featuredPost.href || featuredPost.url || featuredPost.link || "#";
|
|
@@ -40516,7 +40357,7 @@ function BlogMasonryFeaturedComponent({
|
|
|
40516
40357
|
featuredImageClassName,
|
|
40517
40358
|
optixFlowConfig
|
|
40518
40359
|
]);
|
|
40519
|
-
const otherPostsContent =
|
|
40360
|
+
const otherPostsContent = React28.useMemo(() => {
|
|
40520
40361
|
if (postsSlot) return postsSlot;
|
|
40521
40362
|
if (!otherPosts || otherPosts.length === 0) return null;
|
|
40522
40363
|
return otherPosts.map((post) => {
|
|
@@ -40605,7 +40446,7 @@ function BlogHorizontalTimelineComponent({
|
|
|
40605
40446
|
pattern,
|
|
40606
40447
|
patternOpacity
|
|
40607
40448
|
}) {
|
|
40608
|
-
const renderPosts =
|
|
40449
|
+
const renderPosts = React28.useMemo(() => {
|
|
40609
40450
|
if (postsSlot) return postsSlot;
|
|
40610
40451
|
if (!posts || posts.length === 0) return null;
|
|
40611
40452
|
return posts.map((post, index) => {
|
|
@@ -40730,7 +40571,7 @@ function BlogGridNinePosts({
|
|
|
40730
40571
|
pattern,
|
|
40731
40572
|
patternOpacity
|
|
40732
40573
|
}) {
|
|
40733
|
-
const renderedCtaAction =
|
|
40574
|
+
const renderedCtaAction = React28.useMemo(() => {
|
|
40734
40575
|
if (ctaSlot) return ctaSlot;
|
|
40735
40576
|
if (!ctaAction) return null;
|
|
40736
40577
|
const {
|
|
@@ -40755,7 +40596,7 @@ function BlogGridNinePosts({
|
|
|
40755
40596
|
}
|
|
40756
40597
|
);
|
|
40757
40598
|
}, [ctaSlot, ctaAction]);
|
|
40758
|
-
const renderedPosts =
|
|
40599
|
+
const renderedPosts = React28.useMemo(() => {
|
|
40759
40600
|
if (postsSlot) return postsSlot;
|
|
40760
40601
|
if (!posts || posts.length === 0) return null;
|
|
40761
40602
|
return posts.map((post) => {
|
|
@@ -40853,9 +40694,9 @@ var AppleCarousel = ({
|
|
|
40853
40694
|
className,
|
|
40854
40695
|
containerClassName
|
|
40855
40696
|
}) => {
|
|
40856
|
-
const carouselRef =
|
|
40857
|
-
const [canScrollLeft, setCanScrollLeft] =
|
|
40858
|
-
const [canScrollRight, setCanScrollRight] =
|
|
40697
|
+
const carouselRef = React28__default.useRef(null);
|
|
40698
|
+
const [canScrollLeft, setCanScrollLeft] = React28__default.useState(false);
|
|
40699
|
+
const [canScrollRight, setCanScrollRight] = React28__default.useState(true);
|
|
40859
40700
|
const [currentIndex, setCurrentIndex] = useState(0);
|
|
40860
40701
|
useEffect(() => {
|
|
40861
40702
|
if (carouselRef.current) {
|
|
@@ -41092,7 +40933,7 @@ function BlogCarouselAppleComponent({
|
|
|
41092
40933
|
containerClassName,
|
|
41093
40934
|
cardClassName
|
|
41094
40935
|
}) {
|
|
41095
|
-
const carouselCards =
|
|
40936
|
+
const carouselCards = React28.useMemo(() => {
|
|
41096
40937
|
if (!posts || posts.length === 0) return [];
|
|
41097
40938
|
return posts.map(
|
|
41098
40939
|
(post, idx) => ({
|
|
@@ -41104,7 +40945,7 @@ function BlogCarouselAppleComponent({
|
|
|
41104
40945
|
})
|
|
41105
40946
|
);
|
|
41106
40947
|
}, [posts]);
|
|
41107
|
-
const cardElements =
|
|
40948
|
+
const cardElements = React28.useMemo(() => {
|
|
41108
40949
|
if (!posts || posts.length === 0) return [];
|
|
41109
40950
|
return carouselCards.map((card, index) => {
|
|
41110
40951
|
const post = posts[index];
|
|
@@ -41189,7 +41030,7 @@ function ArticleHeroProseComponent({
|
|
|
41189
41030
|
description,
|
|
41190
41031
|
authorImage
|
|
41191
41032
|
} = post ?? {};
|
|
41192
|
-
const authorContent =
|
|
41033
|
+
const authorContent = React28.useMemo(() => {
|
|
41193
41034
|
if (authorSlot) return authorSlot;
|
|
41194
41035
|
if (!authorName) return null;
|
|
41195
41036
|
return /* @__PURE__ */ jsxs(
|
|
@@ -41223,7 +41064,7 @@ function ArticleHeroProseComponent({
|
|
|
41223
41064
|
dateFormat,
|
|
41224
41065
|
authorClassName
|
|
41225
41066
|
]);
|
|
41226
|
-
const heroMediaContent =
|
|
41067
|
+
const heroMediaContent = React28.useMemo(() => {
|
|
41227
41068
|
if (heroMediaSlot) return heroMediaSlot;
|
|
41228
41069
|
if (!image) return null;
|
|
41229
41070
|
return /* @__PURE__ */ jsx(
|
|
@@ -41324,7 +41165,7 @@ function ArticleSidebarStickyComponent({
|
|
|
41324
41165
|
pattern,
|
|
41325
41166
|
patternOpacity
|
|
41326
41167
|
}) {
|
|
41327
|
-
const backLinkContent =
|
|
41168
|
+
const backLinkContent = React28.useMemo(() => {
|
|
41328
41169
|
if (backLinkSlot) return backLinkSlot;
|
|
41329
41170
|
if (!backHref && !backText) return null;
|
|
41330
41171
|
return /* @__PURE__ */ jsxs(
|
|
@@ -41342,7 +41183,7 @@ function ArticleSidebarStickyComponent({
|
|
|
41342
41183
|
}
|
|
41343
41184
|
);
|
|
41344
41185
|
}, [backLinkSlot, backHref, backText, backIcon, backLinkClassName]);
|
|
41345
|
-
const renderAuthor =
|
|
41186
|
+
const renderAuthor = React28.useCallback(
|
|
41346
41187
|
(isMobile = false) => {
|
|
41347
41188
|
if (authorSlot) return authorSlot;
|
|
41348
41189
|
if (!authorName) return null;
|
|
@@ -41374,7 +41215,7 @@ function ArticleSidebarStickyComponent({
|
|
|
41374
41215
|
authorClassName
|
|
41375
41216
|
]
|
|
41376
41217
|
);
|
|
41377
|
-
const heroMediaContent =
|
|
41218
|
+
const heroMediaContent = React28.useMemo(() => {
|
|
41378
41219
|
if (heroMediaSlot) return heroMediaSlot;
|
|
41379
41220
|
if (!heroImageSrc) return null;
|
|
41380
41221
|
return /* @__PURE__ */ jsx(
|
|
@@ -41481,10 +41322,10 @@ function ArticleTocSidebarComponent({
|
|
|
41481
41322
|
patternOpacity
|
|
41482
41323
|
}) {
|
|
41483
41324
|
const ctaActions = ctaActionsProp ?? (ctaButtonText ? [{ label: ctaButtonText, href: ctaButtonHref || "#", variant: "default", className: "w-full" }] : []);
|
|
41484
|
-
const [activeSection, setActiveSection] =
|
|
41325
|
+
const [activeSection, setActiveSection] = React28.useState(
|
|
41485
41326
|
sections?.[0]?.id || ""
|
|
41486
41327
|
);
|
|
41487
|
-
|
|
41328
|
+
React28.useEffect(() => {
|
|
41488
41329
|
if (!enableTocTracking || !sections || sections.length === 0) return;
|
|
41489
41330
|
const observer = new IntersectionObserver(
|
|
41490
41331
|
(entries) => {
|
|
@@ -41502,12 +41343,12 @@ function ArticleTocSidebarComponent({
|
|
|
41502
41343
|
});
|
|
41503
41344
|
return () => observer.disconnect();
|
|
41504
41345
|
}, [sections, enableTocTracking]);
|
|
41505
|
-
const categoryContent =
|
|
41346
|
+
const categoryContent = React28.useMemo(() => {
|
|
41506
41347
|
if (categorySlot) return categorySlot;
|
|
41507
41348
|
if (!category) return null;
|
|
41508
41349
|
return /* @__PURE__ */ jsx(Badge, { variant: "secondary", children: category });
|
|
41509
41350
|
}, [categorySlot, category]);
|
|
41510
|
-
const authorContent =
|
|
41351
|
+
const authorContent = React28.useMemo(() => {
|
|
41511
41352
|
if (authorSlot) return authorSlot;
|
|
41512
41353
|
if (!authorName) return null;
|
|
41513
41354
|
return /* @__PURE__ */ jsxs("div", { className: cn("mt-6 flex items-center gap-4", authorClassName), children: [
|
|
@@ -41527,7 +41368,7 @@ function ArticleTocSidebarComponent({
|
|
|
41527
41368
|
] })
|
|
41528
41369
|
] });
|
|
41529
41370
|
}, [authorSlot, authorName, authorImage, authorHref, publishDate, readTime, authorClassName]);
|
|
41530
|
-
const heroMediaContent =
|
|
41371
|
+
const heroMediaContent = React28.useMemo(() => {
|
|
41531
41372
|
if (heroMediaSlot) return heroMediaSlot;
|
|
41532
41373
|
if (!heroImageSrc) return null;
|
|
41533
41374
|
return /* @__PURE__ */ jsx(
|
|
@@ -41540,7 +41381,7 @@ function ArticleTocSidebarComponent({
|
|
|
41540
41381
|
}
|
|
41541
41382
|
);
|
|
41542
41383
|
}, [heroMediaSlot, heroImageSrc, heroImageAlt, heroImageClassName, optixFlowConfig]);
|
|
41543
|
-
const tocContent =
|
|
41384
|
+
const tocContent = React28.useMemo(() => {
|
|
41544
41385
|
if (tocSlot) return tocSlot;
|
|
41545
41386
|
if (!sections || sections.length === 0) return null;
|
|
41546
41387
|
return /* @__PURE__ */ jsxs("div", { className: cn("rounded-lg border p-4", tocClassName), children: [
|
|
@@ -41548,7 +41389,7 @@ function ArticleTocSidebarComponent({
|
|
|
41548
41389
|
/* @__PURE__ */ jsx("nav", { className: "space-y-2", children: sections.map((section) => {
|
|
41549
41390
|
const isActive = activeSection === section.id;
|
|
41550
41391
|
if (renderSectionLink) {
|
|
41551
|
-
return /* @__PURE__ */ jsx(
|
|
41392
|
+
return /* @__PURE__ */ jsx(React28.Fragment, { children: renderSectionLink(section, isActive) }, section.id);
|
|
41552
41393
|
}
|
|
41553
41394
|
return /* @__PURE__ */ jsx(
|
|
41554
41395
|
Pressable,
|
|
@@ -41565,7 +41406,7 @@ function ArticleTocSidebarComponent({
|
|
|
41565
41406
|
}) })
|
|
41566
41407
|
] });
|
|
41567
41408
|
}, [tocSlot, sections, activeSection, renderSectionLink, tocClassName]);
|
|
41568
|
-
const ctaContent =
|
|
41409
|
+
const ctaContent = React28.useMemo(() => {
|
|
41569
41410
|
if (ctaSlot) return ctaSlot;
|
|
41570
41411
|
if (!ctaTitle && !ctaDescription && (!ctaActions || ctaActions.length === 0)) return null;
|
|
41571
41412
|
return /* @__PURE__ */ jsxs("div", { className: cn("rounded-lg border p-4", getNestedCardBg(background, "subtle"), getNestedCardTextColor(background), ctaClassName), children: [
|
|
@@ -41654,11 +41495,11 @@ function ArticleBreadcrumbSocialComponent({
|
|
|
41654
41495
|
patternOpacity
|
|
41655
41496
|
}) {
|
|
41656
41497
|
const author = authorProp ?? (authorName ? { name: authorName, image: authorImage, role: authorRole } : void 0);
|
|
41657
|
-
const [activeSection, setActiveSection] =
|
|
41498
|
+
const [activeSection, setActiveSection] = React28.useState(
|
|
41658
41499
|
sections?.[0]?.id || ""
|
|
41659
41500
|
);
|
|
41660
|
-
const [showBackToTop, setShowBackToTop] =
|
|
41661
|
-
|
|
41501
|
+
const [showBackToTop, setShowBackToTop] = React28.useState(false);
|
|
41502
|
+
React28.useEffect(() => {
|
|
41662
41503
|
if (!enableTocTracking || !sections || sections.length === 0) return;
|
|
41663
41504
|
const observer = new IntersectionObserver(
|
|
41664
41505
|
(entries) => {
|
|
@@ -41676,7 +41517,7 @@ function ArticleBreadcrumbSocialComponent({
|
|
|
41676
41517
|
});
|
|
41677
41518
|
return () => observer.disconnect();
|
|
41678
41519
|
}, [sections, enableTocTracking]);
|
|
41679
|
-
|
|
41520
|
+
React28.useEffect(() => {
|
|
41680
41521
|
if (!enableBackToTop) return;
|
|
41681
41522
|
const handleScroll = () => {
|
|
41682
41523
|
setShowBackToTop(window.scrollY > 400);
|
|
@@ -41684,15 +41525,15 @@ function ArticleBreadcrumbSocialComponent({
|
|
|
41684
41525
|
window.addEventListener("scroll", handleScroll);
|
|
41685
41526
|
return () => window.removeEventListener("scroll", handleScroll);
|
|
41686
41527
|
}, [enableBackToTop]);
|
|
41687
|
-
const scrollToTop =
|
|
41528
|
+
const scrollToTop = React28.useCallback(() => {
|
|
41688
41529
|
window.scrollTo({ top: 0, behavior: "smooth" });
|
|
41689
41530
|
}, []);
|
|
41690
|
-
const breadcrumbsContent =
|
|
41531
|
+
const breadcrumbsContent = React28.useMemo(() => {
|
|
41691
41532
|
if (breadcrumbsSlot) return breadcrumbsSlot;
|
|
41692
41533
|
if (!breadcrumbs || breadcrumbs.length === 0) return null;
|
|
41693
41534
|
return /* @__PURE__ */ jsx(Breadcrumb, { className: cn("mb-8", breadcrumbClassName), children: /* @__PURE__ */ jsxs(BreadcrumbList, { children: [
|
|
41694
41535
|
/* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbLink, { asChild: true, children: /* @__PURE__ */ jsx(Pressable, { href: "#", children: /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/home", size: 16 }) }) }) }),
|
|
41695
|
-
breadcrumbs.map((crumb, index) => /* @__PURE__ */ jsxs(
|
|
41536
|
+
breadcrumbs.map((crumb, index) => /* @__PURE__ */ jsxs(React28.Fragment, { children: [
|
|
41696
41537
|
/* @__PURE__ */ jsx(BreadcrumbSeparator, {}),
|
|
41697
41538
|
/* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbLink, { asChild: true, children: /* @__PURE__ */ jsx(Pressable, { href: crumb.href, children: crumb.label }) }) })
|
|
41698
41539
|
] }, index)),
|
|
@@ -41702,7 +41543,7 @@ function ArticleBreadcrumbSocialComponent({
|
|
|
41702
41543
|
] })
|
|
41703
41544
|
] }) });
|
|
41704
41545
|
}, [breadcrumbsSlot, breadcrumbs, currentPage, breadcrumbClassName]);
|
|
41705
|
-
const authorContent =
|
|
41546
|
+
const authorContent = React28.useMemo(() => {
|
|
41706
41547
|
if (authorSlot) return authorSlot;
|
|
41707
41548
|
if (!author) return null;
|
|
41708
41549
|
return /* @__PURE__ */ jsxs(
|
|
@@ -41725,7 +41566,7 @@ function ArticleBreadcrumbSocialComponent({
|
|
|
41725
41566
|
}
|
|
41726
41567
|
);
|
|
41727
41568
|
}, [authorSlot, author, publishDate, readTime, authorClassName]);
|
|
41728
|
-
const heroMediaContent =
|
|
41569
|
+
const heroMediaContent = React28.useMemo(() => {
|
|
41729
41570
|
if (heroMediaSlot) return heroMediaSlot;
|
|
41730
41571
|
if (!heroImageSrc) return null;
|
|
41731
41572
|
return /* @__PURE__ */ jsx(
|
|
@@ -41747,7 +41588,7 @@ function ArticleBreadcrumbSocialComponent({
|
|
|
41747
41588
|
heroImageClassName,
|
|
41748
41589
|
optixFlowConfig
|
|
41749
41590
|
]);
|
|
41750
|
-
const tocContent =
|
|
41591
|
+
const tocContent = React28.useMemo(() => {
|
|
41751
41592
|
if (tocSlot) return tocSlot;
|
|
41752
41593
|
if (!sections || sections.length === 0) return null;
|
|
41753
41594
|
return /* @__PURE__ */ jsxs("div", { className: cn("rounded-lg border p-4", tocClassName), children: [
|
|
@@ -41755,7 +41596,7 @@ function ArticleBreadcrumbSocialComponent({
|
|
|
41755
41596
|
/* @__PURE__ */ jsx("nav", { className: "space-y-2", children: sections.map((section) => {
|
|
41756
41597
|
const isActive = activeSection === section.id;
|
|
41757
41598
|
if (renderSectionLink) {
|
|
41758
|
-
return /* @__PURE__ */ jsx(
|
|
41599
|
+
return /* @__PURE__ */ jsx(React28.Fragment, { children: renderSectionLink(section, isActive) }, section.id);
|
|
41759
41600
|
}
|
|
41760
41601
|
return /* @__PURE__ */ jsx(
|
|
41761
41602
|
Pressable,
|
|
@@ -41860,11 +41701,11 @@ function ArticleCompactTocComponent({
|
|
|
41860
41701
|
pattern,
|
|
41861
41702
|
patternOpacity
|
|
41862
41703
|
}) {
|
|
41863
|
-
const [activeSection, setActiveSection] =
|
|
41704
|
+
const [activeSection, setActiveSection] = React28.useState(
|
|
41864
41705
|
sections?.[0]?.id || ""
|
|
41865
41706
|
);
|
|
41866
|
-
const [isTocOpen, setIsTocOpen] =
|
|
41867
|
-
|
|
41707
|
+
const [isTocOpen, setIsTocOpen] = React28.useState(false);
|
|
41708
|
+
React28.useEffect(() => {
|
|
41868
41709
|
if (!enableTocTracking) return;
|
|
41869
41710
|
const observer = new IntersectionObserver(
|
|
41870
41711
|
(entries) => {
|
|
@@ -41882,12 +41723,12 @@ function ArticleCompactTocComponent({
|
|
|
41882
41723
|
});
|
|
41883
41724
|
return () => observer.disconnect();
|
|
41884
41725
|
}, [sections, enableTocTracking]);
|
|
41885
|
-
const breadcrumbsContent =
|
|
41726
|
+
const breadcrumbsContent = React28.useMemo(() => {
|
|
41886
41727
|
if (breadcrumbsSlot) return breadcrumbsSlot;
|
|
41887
41728
|
if (!breadcrumbs && !currentPage) return null;
|
|
41888
41729
|
return /* @__PURE__ */ jsx(Breadcrumb, { className: cn("mb-6 md:mb-20", breadcrumbClassName), children: /* @__PURE__ */ jsxs(BreadcrumbList, { children: [
|
|
41889
41730
|
/* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbLink, { asChild: true, children: /* @__PURE__ */ jsx(Pressable, { href: "#", children: /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/home", size: 16 }) }) }) }),
|
|
41890
|
-
breadcrumbs?.map((crumb, index) => /* @__PURE__ */ jsxs(
|
|
41731
|
+
breadcrumbs?.map((crumb, index) => /* @__PURE__ */ jsxs(React28.Fragment, { children: [
|
|
41891
41732
|
/* @__PURE__ */ jsx(BreadcrumbSeparator, {}),
|
|
41892
41733
|
/* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbLink, { asChild: true, children: /* @__PURE__ */ jsx(Pressable, { href: crumb.href, children: crumb.label }) }) })
|
|
41893
41734
|
] }, index)),
|
|
@@ -41895,7 +41736,7 @@ function ArticleCompactTocComponent({
|
|
|
41895
41736
|
/* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbPage, { children: currentPage }) })
|
|
41896
41737
|
] }) });
|
|
41897
41738
|
}, [breadcrumbsSlot, breadcrumbs, currentPage, breadcrumbClassName]);
|
|
41898
|
-
const shareContent =
|
|
41739
|
+
const shareContent = React28.useMemo(() => {
|
|
41899
41740
|
if (shareSlot) return shareSlot;
|
|
41900
41741
|
if (!socialLinks || socialLinks.length === 0) return null;
|
|
41901
41742
|
return /* @__PURE__ */ jsxs("div", { className: cn("mt-6 flex items-center gap-2", shareClassName), children: [
|
|
@@ -41912,13 +41753,13 @@ function ArticleCompactTocComponent({
|
|
|
41912
41753
|
))
|
|
41913
41754
|
] });
|
|
41914
41755
|
}, [shareSlot, socialLinks, shareClassName]);
|
|
41915
|
-
const renderTocLinks =
|
|
41756
|
+
const renderTocLinks = React28.useCallback(
|
|
41916
41757
|
(onLinkClick) => {
|
|
41917
41758
|
if (!sections) return null;
|
|
41918
41759
|
return sections.map((section) => {
|
|
41919
41760
|
const isActive = activeSection === section.id;
|
|
41920
41761
|
if (renderSectionLink) {
|
|
41921
|
-
return /* @__PURE__ */ jsx(
|
|
41762
|
+
return /* @__PURE__ */ jsx(React28.Fragment, { children: renderSectionLink(section, isActive) }, section.id);
|
|
41922
41763
|
}
|
|
41923
41764
|
return /* @__PURE__ */ jsx(
|
|
41924
41765
|
Pressable,
|
|
@@ -41937,7 +41778,7 @@ function ArticleCompactTocComponent({
|
|
|
41937
41778
|
},
|
|
41938
41779
|
[sections, activeSection, renderSectionLink]
|
|
41939
41780
|
);
|
|
41940
|
-
const tocContent =
|
|
41781
|
+
const tocContent = React28.useMemo(() => {
|
|
41941
41782
|
if (tocSlot) return tocSlot;
|
|
41942
41783
|
if (!sections || sections.length === 0) return null;
|
|
41943
41784
|
return /* @__PURE__ */ jsx("div", { className: "mb-8 lg:hidden", children: /* @__PURE__ */ jsxs(Popover, { open: isTocOpen, onOpenChange: setIsTocOpen, children: [
|
|
@@ -41970,7 +41811,7 @@ function ArticleCompactTocComponent({
|
|
|
41970
41811
|
)
|
|
41971
41812
|
] }) });
|
|
41972
41813
|
}, [tocSlot, sections, isTocOpen, tocClassName, renderTocLinks]);
|
|
41973
|
-
const desktopTocContent =
|
|
41814
|
+
const desktopTocContent = React28.useMemo(() => {
|
|
41974
41815
|
if (tocSlot) return null;
|
|
41975
41816
|
if (!sections || sections.length === 0) return null;
|
|
41976
41817
|
return /* @__PURE__ */ jsx(
|
|
@@ -41987,7 +41828,7 @@ function ArticleCompactTocComponent({
|
|
|
41987
41828
|
}
|
|
41988
41829
|
);
|
|
41989
41830
|
}, [tocSlot, sections, tocClassName, renderTocLinks]);
|
|
41990
|
-
const heroMediaContent =
|
|
41831
|
+
const heroMediaContent = React28.useMemo(() => {
|
|
41991
41832
|
if (heroMediaSlot) return heroMediaSlot;
|
|
41992
41833
|
if (!heroImageSrc) return null;
|
|
41993
41834
|
return /* @__PURE__ */ jsx(
|
|
@@ -42117,10 +41958,10 @@ function ArticleChaptersAuthorComponent({
|
|
|
42117
41958
|
variant: "default"
|
|
42118
41959
|
}
|
|
42119
41960
|
] : []);
|
|
42120
|
-
const [activeChapter, setActiveChapter] =
|
|
41961
|
+
const [activeChapter, setActiveChapter] = React28.useState(
|
|
42121
41962
|
chapters?.[0]?.id || ""
|
|
42122
41963
|
);
|
|
42123
|
-
|
|
41964
|
+
React28.useEffect(() => {
|
|
42124
41965
|
if (!enableChapterTracking || !chapters || chapters.length === 0) return;
|
|
42125
41966
|
const observer = new IntersectionObserver(
|
|
42126
41967
|
(entries) => {
|
|
@@ -42138,12 +41979,12 @@ function ArticleChaptersAuthorComponent({
|
|
|
42138
41979
|
});
|
|
42139
41980
|
return () => observer.disconnect();
|
|
42140
41981
|
}, [chapters, enableChapterTracking]);
|
|
42141
|
-
const breadcrumbsContent =
|
|
41982
|
+
const breadcrumbsContent = React28.useMemo(() => {
|
|
42142
41983
|
if (breadcrumbsSlot) return breadcrumbsSlot;
|
|
42143
41984
|
if (!breadcrumbs || breadcrumbs.length === 0) return null;
|
|
42144
41985
|
return /* @__PURE__ */ jsx(Breadcrumb, { className: cn("mb-8 md:mb-20", breadcrumbClassName), children: /* @__PURE__ */ jsxs(BreadcrumbList, { children: [
|
|
42145
41986
|
/* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbLink, { asChild: true, children: /* @__PURE__ */ jsx(Pressable, { href: "#", children: /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/home", size: 16 }) }) }) }),
|
|
42146
|
-
breadcrumbs.map((crumb, index) => /* @__PURE__ */ jsxs(
|
|
41987
|
+
breadcrumbs.map((crumb, index) => /* @__PURE__ */ jsxs(React28.Fragment, { children: [
|
|
42147
41988
|
/* @__PURE__ */ jsx(BreadcrumbSeparator, {}),
|
|
42148
41989
|
/* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbLink, { asChild: true, children: /* @__PURE__ */ jsx(Pressable, { href: crumb.href, children: crumb.label }) }) })
|
|
42149
41990
|
] }, index)),
|
|
@@ -42151,7 +41992,7 @@ function ArticleChaptersAuthorComponent({
|
|
|
42151
41992
|
/* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbPage, { children: typeof currentPage === "string" ? currentPage : currentPage }) })
|
|
42152
41993
|
] }) });
|
|
42153
41994
|
}, [breadcrumbsSlot, breadcrumbs, currentPage, breadcrumbClassName]);
|
|
42154
|
-
const chaptersNavContent =
|
|
41995
|
+
const chaptersNavContent = React28.useMemo(() => {
|
|
42155
41996
|
if (chaptersSlot) return chaptersSlot;
|
|
42156
41997
|
if (!chapters || chapters.length === 0) return null;
|
|
42157
41998
|
return /* @__PURE__ */ jsxs("div", { className: cn("rounded-lg border p-4", chaptersClassName), children: [
|
|
@@ -42159,7 +42000,7 @@ function ArticleChaptersAuthorComponent({
|
|
|
42159
42000
|
/* @__PURE__ */ jsx("nav", { className: "space-y-2", children: chapters.map((chapter) => {
|
|
42160
42001
|
const isActive = activeChapter === chapter.id;
|
|
42161
42002
|
if (renderChapterLink) {
|
|
42162
|
-
return /* @__PURE__ */ jsx(
|
|
42003
|
+
return /* @__PURE__ */ jsx(React28.Fragment, { children: renderChapterLink(chapter, isActive) }, chapter.id);
|
|
42163
42004
|
}
|
|
42164
42005
|
return /* @__PURE__ */ jsxs(
|
|
42165
42006
|
Pressable,
|
|
@@ -42185,7 +42026,7 @@ function ArticleChaptersAuthorComponent({
|
|
|
42185
42026
|
renderChapterLink,
|
|
42186
42027
|
chaptersClassName
|
|
42187
42028
|
]);
|
|
42188
|
-
const authorCardContent =
|
|
42029
|
+
const authorCardContent = React28.useMemo(() => {
|
|
42189
42030
|
if (authorSlot) return authorSlot;
|
|
42190
42031
|
if (!author) return null;
|
|
42191
42032
|
let socialLinksContent = null;
|
|
@@ -42246,7 +42087,7 @@ function ArticleChaptersAuthorComponent({
|
|
|
42246
42087
|
socialLinksContent
|
|
42247
42088
|
] });
|
|
42248
42089
|
}, [authorSlot, author, authorClassName]);
|
|
42249
|
-
const heroMediaContent =
|
|
42090
|
+
const heroMediaContent = React28.useMemo(() => {
|
|
42250
42091
|
if (heroMediaSlot) return heroMediaSlot;
|
|
42251
42092
|
if (!heroImageSrc) return null;
|
|
42252
42093
|
return /* @__PURE__ */ jsx(
|
|
@@ -42268,7 +42109,7 @@ function ArticleChaptersAuthorComponent({
|
|
|
42268
42109
|
heroImageClassName,
|
|
42269
42110
|
optixFlowConfig
|
|
42270
42111
|
]);
|
|
42271
|
-
const conclusionContent =
|
|
42112
|
+
const conclusionContent = React28.useMemo(() => {
|
|
42272
42113
|
if (conclusionSlot) return conclusionSlot;
|
|
42273
42114
|
if (!conclusionTitle && !conclusionDescription && (!conclusionActions || conclusionActions.length === 0))
|
|
42274
42115
|
return null;
|
|
@@ -42420,7 +42261,7 @@ function ArticleSplitAnimatedComponent({
|
|
|
42420
42261
|
}
|
|
42421
42262
|
] : []);
|
|
42422
42263
|
const MotionWrapper = enableAnimations ? motion.div : "div";
|
|
42423
|
-
const categoryContent =
|
|
42264
|
+
const categoryContent = React28.useMemo(() => {
|
|
42424
42265
|
if (categorySlot) return categorySlot;
|
|
42425
42266
|
if (!category) return null;
|
|
42426
42267
|
return /* @__PURE__ */ jsx(
|
|
@@ -42435,7 +42276,7 @@ function ArticleSplitAnimatedComponent({
|
|
|
42435
42276
|
}
|
|
42436
42277
|
);
|
|
42437
42278
|
}, [categorySlot, category, categoryHref, categoryClassName]);
|
|
42438
|
-
const heroMediaContent =
|
|
42279
|
+
const heroMediaContent = React28.useMemo(() => {
|
|
42439
42280
|
if (heroMediaSlot) return heroMediaSlot;
|
|
42440
42281
|
if (!image) return null;
|
|
42441
42282
|
return /* @__PURE__ */ jsx(
|
|
@@ -42448,7 +42289,7 @@ function ArticleSplitAnimatedComponent({
|
|
|
42448
42289
|
}
|
|
42449
42290
|
);
|
|
42450
42291
|
}, [heroMediaSlot, image, imageAlt, title, optixFlowConfig]);
|
|
42451
|
-
const authorContent =
|
|
42292
|
+
const authorContent = React28.useMemo(() => {
|
|
42452
42293
|
if (authorSlot) return authorSlot;
|
|
42453
42294
|
if (!authorName) return null;
|
|
42454
42295
|
return /* @__PURE__ */ jsxs("div", { className: cn("mt-8 flex items-center gap-4", authorClassName), children: [
|
|
@@ -42476,7 +42317,7 @@ function ArticleSplitAnimatedComponent({
|
|
|
42476
42317
|
authorRole,
|
|
42477
42318
|
authorClassName
|
|
42478
42319
|
]);
|
|
42479
|
-
const ctaContent =
|
|
42320
|
+
const ctaContent = React28.useMemo(() => {
|
|
42480
42321
|
if (ctaSlot) return ctaSlot;
|
|
42481
42322
|
if (!ctaActions || ctaActions.length === 0) return null;
|
|
42482
42323
|
return /* @__PURE__ */ jsx("div", { className: cn("mt-8 flex flex-wrap gap-3", ctaClassName), children: ctaActions.map((action, index) => {
|
|
@@ -43933,7 +43774,7 @@ function FaqSidebarNavigation({
|
|
|
43933
43774
|
accordionTriggerClassName,
|
|
43934
43775
|
accordionContentClassName
|
|
43935
43776
|
}) {
|
|
43936
|
-
const [activeCategory, setActiveCategory] =
|
|
43777
|
+
const [activeCategory, setActiveCategory] = React28.useState(
|
|
43937
43778
|
categories && categories.length > 1 ? "all" : categories?.[0]?.id || ""
|
|
43938
43779
|
);
|
|
43939
43780
|
const filteredCategories = useMemo(() => {
|
|
@@ -44822,7 +44663,7 @@ function FaqSplitHero({
|
|
|
44822
44663
|
imageArea
|
|
44823
44664
|
] }) });
|
|
44824
44665
|
}
|
|
44825
|
-
var Controls =
|
|
44666
|
+
var Controls = React28.memo(
|
|
44826
44667
|
({
|
|
44827
44668
|
handleNext,
|
|
44828
44669
|
handlePrevious,
|
|
@@ -44853,7 +44694,7 @@ var Controls = React25.memo(
|
|
|
44853
44694
|
] });
|
|
44854
44695
|
}
|
|
44855
44696
|
);
|
|
44856
|
-
var FeatureCard =
|
|
44697
|
+
var FeatureCard = React28.memo(
|
|
44857
44698
|
({ feature, isActive, onClick }) => {
|
|
44858
44699
|
const variants2 = useMemo(
|
|
44859
44700
|
() => ({
|
|
@@ -44961,7 +44802,7 @@ var FeatureCard = React25.memo(
|
|
|
44961
44802
|
) });
|
|
44962
44803
|
}
|
|
44963
44804
|
);
|
|
44964
|
-
var FeaturesDesktop =
|
|
44805
|
+
var FeaturesDesktop = React28.memo(
|
|
44965
44806
|
({
|
|
44966
44807
|
features,
|
|
44967
44808
|
handleNext,
|
|
@@ -44995,7 +44836,7 @@ var FeaturesDesktop = React25.memo(
|
|
|
44995
44836
|
] });
|
|
44996
44837
|
}
|
|
44997
44838
|
);
|
|
44998
|
-
var FeaturesMobile =
|
|
44839
|
+
var FeaturesMobile = React28.memo(
|
|
44999
44840
|
({
|
|
45000
44841
|
features,
|
|
45001
44842
|
handleNext,
|
|
@@ -45086,8 +44927,8 @@ function FeatureAnimatedCarousel({
|
|
|
45086
44927
|
spacing = "py-12 md:py-32",
|
|
45087
44928
|
containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8"
|
|
45088
44929
|
}) {
|
|
45089
|
-
const [activeIndex, setActiveIndex] =
|
|
45090
|
-
const [direction, setDirection] =
|
|
44930
|
+
const [activeIndex, setActiveIndex] = React28.useState(0);
|
|
44931
|
+
const [direction, setDirection] = React28.useState(1);
|
|
45091
44932
|
const handleNext = useCallback(() => {
|
|
45092
44933
|
if (features && activeIndex < features.length - 1) {
|
|
45093
44934
|
setDirection(1);
|
|
@@ -45949,7 +45790,7 @@ function FooterInfoCardsAccordion({
|
|
|
45949
45790
|
patternOpacity,
|
|
45950
45791
|
optixFlowConfig
|
|
45951
45792
|
}) {
|
|
45952
|
-
const [email, setEmail] =
|
|
45793
|
+
const [email, setEmail] = React28.useState("");
|
|
45953
45794
|
(/* @__PURE__ */ new Date()).getFullYear();
|
|
45954
45795
|
const handleSubmit = (e) => {
|
|
45955
45796
|
e.preventDefault();
|
|
@@ -46254,13 +46095,13 @@ function CaseStudiesImageGrid({
|
|
|
46254
46095
|
patternOpacity,
|
|
46255
46096
|
optixFlowConfig
|
|
46256
46097
|
}) {
|
|
46257
|
-
const getGridClass =
|
|
46098
|
+
const getGridClass = React28.useCallback((index) => {
|
|
46258
46099
|
if (index === 0 || index === 4) {
|
|
46259
46100
|
return "row-span-2 aspect-square lg:aspect-auto";
|
|
46260
46101
|
}
|
|
46261
46102
|
return "aspect-3/2 md:aspect-2/1";
|
|
46262
46103
|
}, []);
|
|
46263
|
-
const renderedItems =
|
|
46104
|
+
const renderedItems = React28.useMemo(() => {
|
|
46264
46105
|
if (itemsSlot) return itemsSlot;
|
|
46265
46106
|
if (!items || items.length === 0) return null;
|
|
46266
46107
|
return items.map((item, index) => /* @__PURE__ */ jsxs(
|
|
@@ -46346,7 +46187,7 @@ function CaseStudiesTestimonialStats({
|
|
|
46346
46187
|
patternOpacity,
|
|
46347
46188
|
optixFlowConfig
|
|
46348
46189
|
}) {
|
|
46349
|
-
const renderedTestimonials =
|
|
46190
|
+
const renderedTestimonials = React28.useMemo(() => {
|
|
46350
46191
|
if (testimonialsSlot) return testimonialsSlot;
|
|
46351
46192
|
if (!testimonials || testimonials.length === 0) return null;
|
|
46352
46193
|
return testimonials.map((testimonial, index) => /* @__PURE__ */ jsxs("div", { className: testimonialItemClassName, children: [
|
|
@@ -49819,7 +49660,7 @@ function CaseStudiesFeaturedBorder({
|
|
|
49819
49660
|
patternOpacity,
|
|
49820
49661
|
optixFlowConfig
|
|
49821
49662
|
}) {
|
|
49822
|
-
const renderedFeatured =
|
|
49663
|
+
const renderedFeatured = React28.useMemo(() => {
|
|
49823
49664
|
if (featuredSlot) return featuredSlot;
|
|
49824
49665
|
if (!featuredCaseStudy) return null;
|
|
49825
49666
|
return /* @__PURE__ */ jsxs(
|
|
@@ -49893,7 +49734,7 @@ function CaseStudiesFeaturedBorder({
|
|
|
49893
49734
|
featuredImageClassName,
|
|
49894
49735
|
optixFlowConfig
|
|
49895
49736
|
]);
|
|
49896
|
-
const renderedCaseStudies =
|
|
49737
|
+
const renderedCaseStudies = React28.useMemo(() => {
|
|
49897
49738
|
if (caseStudiesSlot) return caseStudiesSlot;
|
|
49898
49739
|
if (!caseStudies || caseStudies.length === 0) return null;
|
|
49899
49740
|
return caseStudies.map((item, idx) => /* @__PURE__ */ jsxs(
|
|
@@ -50002,7 +49843,7 @@ function CaseStudiesStatsCard({
|
|
|
50002
49843
|
patternOpacity,
|
|
50003
49844
|
optixFlowConfig
|
|
50004
49845
|
}) {
|
|
50005
|
-
const renderedStats =
|
|
49846
|
+
const renderedStats = React28.useMemo(() => {
|
|
50006
49847
|
if (statsSlot) return statsSlot;
|
|
50007
49848
|
if (!stats || stats.length === 0) return null;
|
|
50008
49849
|
return /* @__PURE__ */ jsx("div", { className: cn("flex w-full flex-col gap-8 sm:flex-row", statsClassName), children: stats.map((item, i) => /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-1", children: [
|
|
@@ -50010,7 +49851,7 @@ function CaseStudiesStatsCard({
|
|
|
50010
49851
|
/* @__PURE__ */ jsx("div", { className: "text-sm font-medium text-muted-foreground", children: item.text })
|
|
50011
49852
|
] }, `stats-${i}`)) });
|
|
50012
49853
|
}, [statsSlot, stats, statsClassName]);
|
|
50013
|
-
const renderedAuthor =
|
|
49854
|
+
const renderedAuthor = React28.useMemo(() => {
|
|
50014
49855
|
if (authorSlot) return authorSlot;
|
|
50015
49856
|
if (!author) return null;
|
|
50016
49857
|
return /* @__PURE__ */ jsxs("div", { className: cn("flex items-center gap-2.5", authorClassName), children: [
|
|
@@ -50024,7 +49865,7 @@ function CaseStudiesStatsCard({
|
|
|
50024
49865
|
] })
|
|
50025
49866
|
] });
|
|
50026
49867
|
}, [authorSlot, author, authorClassName]);
|
|
50027
|
-
const renderedActions =
|
|
49868
|
+
const renderedActions = React28.useMemo(() => {
|
|
50028
49869
|
if (actionsSlot) return actionsSlot;
|
|
50029
49870
|
if (!actions || actions.length === 0) return null;
|
|
50030
49871
|
return /* @__PURE__ */ jsx("div", { className: cn("shrink-0", actionsClassName), children: actions.map((action, index) => {
|
|
@@ -51328,7 +51169,7 @@ function HeroImageLeftContent({
|
|
|
51328
51169
|
}
|
|
51329
51170
|
);
|
|
51330
51171
|
}
|
|
51331
|
-
var
|
|
51172
|
+
var DEFAULT_STYLE_RULES7 = {
|
|
51332
51173
|
formContainer: "",
|
|
51333
51174
|
fieldsContainer: "",
|
|
51334
51175
|
fieldClassName: "",
|
|
@@ -51399,17 +51240,17 @@ function HeroImageSlider({
|
|
|
51399
51240
|
privacyNoticeClassName,
|
|
51400
51241
|
gridClassName
|
|
51401
51242
|
}) {
|
|
51402
|
-
const formStyleRules =
|
|
51243
|
+
const formStyleRules = React28.useMemo(() => {
|
|
51403
51244
|
return {
|
|
51404
|
-
formContainer: formEngineSetup?.formLayoutSettings?.styleRules?.formContainer ??
|
|
51405
|
-
fieldsContainer: formEngineSetup?.formLayoutSettings?.styleRules?.fieldsContainer ??
|
|
51406
|
-
fieldClassName: formEngineSetup?.formLayoutSettings?.styleRules?.fieldClassName ??
|
|
51407
|
-
formClassName: formEngineSetup?.formLayoutSettings?.styleRules?.formClassName ??
|
|
51408
|
-
successMessageClassName: formEngineSetup?.formLayoutSettings?.styleRules?.successMessageClassName ??
|
|
51409
|
-
errorMessageClassName: formEngineSetup?.formLayoutSettings?.styleRules?.errorMessageClassName ??
|
|
51245
|
+
formContainer: formEngineSetup?.formLayoutSettings?.styleRules?.formContainer ?? DEFAULT_STYLE_RULES7.formContainer,
|
|
51246
|
+
fieldsContainer: formEngineSetup?.formLayoutSettings?.styleRules?.fieldsContainer ?? DEFAULT_STYLE_RULES7.fieldsContainer,
|
|
51247
|
+
fieldClassName: formEngineSetup?.formLayoutSettings?.styleRules?.fieldClassName ?? DEFAULT_STYLE_RULES7.fieldClassName,
|
|
51248
|
+
formClassName: formEngineSetup?.formLayoutSettings?.styleRules?.formClassName ?? DEFAULT_STYLE_RULES7.formClassName,
|
|
51249
|
+
successMessageClassName: formEngineSetup?.formLayoutSettings?.styleRules?.successMessageClassName ?? DEFAULT_STYLE_RULES7.successMessageClassName,
|
|
51250
|
+
errorMessageClassName: formEngineSetup?.formLayoutSettings?.styleRules?.errorMessageClassName ?? DEFAULT_STYLE_RULES7.errorMessageClassName
|
|
51410
51251
|
};
|
|
51411
51252
|
}, [formEngineSetup?.formLayoutSettings?.styleRules]);
|
|
51412
|
-
const formFields =
|
|
51253
|
+
const formFields = React28.useMemo(() => {
|
|
51413
51254
|
if (formEngineSetup && formEngineSetup?.fields && formEngineSetup?.fields?.length > 0) {
|
|
51414
51255
|
return formEngineSetup.fields;
|
|
51415
51256
|
} else {
|
|
@@ -57172,7 +57013,7 @@ function HeroSplitImageNewsletter({
|
|
|
57172
57013
|
onError,
|
|
57173
57014
|
uploadTokens
|
|
57174
57015
|
});
|
|
57175
|
-
const renderForm =
|
|
57016
|
+
const renderForm = React28.useMemo(() => {
|
|
57176
57017
|
if (formSlot) return formSlot;
|
|
57177
57018
|
if (!formFields || formFields.length === 0) return null;
|
|
57178
57019
|
const defaultButtonAction = {
|
|
@@ -57251,7 +57092,7 @@ function HeroSplitImageNewsletter({
|
|
|
57251
57092
|
resetUpload,
|
|
57252
57093
|
resetSubmissionState
|
|
57253
57094
|
]);
|
|
57254
|
-
const renderImage =
|
|
57095
|
+
const renderImage = React28.useMemo(() => {
|
|
57255
57096
|
if (imageSlot) return imageSlot;
|
|
57256
57097
|
if (!image) return null;
|
|
57257
57098
|
return /* @__PURE__ */ jsx("div", { className: "relative lg:w-1/2", children: /* @__PURE__ */ jsx(
|
|
@@ -58679,7 +58520,7 @@ function HeroSaasDashboardPreview({
|
|
|
58679
58520
|
onError,
|
|
58680
58521
|
uploadTokens
|
|
58681
58522
|
});
|
|
58682
|
-
const renderBadge =
|
|
58523
|
+
const renderBadge = React28.useMemo(() => {
|
|
58683
58524
|
if (badgeSlot) return badgeSlot;
|
|
58684
58525
|
return /* @__PURE__ */ jsxs(
|
|
58685
58526
|
"div",
|
|
@@ -58694,7 +58535,7 @@ function HeroSaasDashboardPreview({
|
|
|
58694
58535
|
}
|
|
58695
58536
|
);
|
|
58696
58537
|
}, [badgeSlot, badgeIcon, badgeText]);
|
|
58697
|
-
const renderForm =
|
|
58538
|
+
const renderForm = React28.useMemo(() => {
|
|
58698
58539
|
if (formSlot) return formSlot;
|
|
58699
58540
|
const defaultButtonAction = {
|
|
58700
58541
|
label: "Start Free Trial",
|
|
@@ -58769,7 +58610,7 @@ function HeroSaasDashboardPreview({
|
|
|
58769
58610
|
resetUpload,
|
|
58770
58611
|
resetSubmissionState
|
|
58771
58612
|
]);
|
|
58772
|
-
const renderBrowserPreview =
|
|
58613
|
+
const renderBrowserPreview = React28.useMemo(() => {
|
|
58773
58614
|
if (browserPreviewSlot) return browserPreviewSlot;
|
|
58774
58615
|
if (!browserPreview) return null;
|
|
58775
58616
|
return /* @__PURE__ */ jsxs("div", { className: cn("relative mt-12 md:mt-20", previewClassName), children: [
|
|
@@ -61020,7 +60861,7 @@ function HeroEcommerceProductShowcase({
|
|
|
61020
60861
|
"flex flex-col md:flex-row items-center gap-4 md:gap-6 pt-8 md:pt-12",
|
|
61021
60862
|
statsClassName
|
|
61022
60863
|
),
|
|
61023
|
-
children: stats.map((stat, index) => /* @__PURE__ */ jsxs(
|
|
60864
|
+
children: stats.map((stat, index) => /* @__PURE__ */ jsxs(React28.Fragment, { children: [
|
|
61024
60865
|
index > 0 && /* @__PURE__ */ jsx("div", { className: "h-12 w-px bg-border hidden md:flex" }),
|
|
61025
60866
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 justify-between flex-row md:flex-col text-left md:text-center w-full md:w-fit border md:border-none rounded-xl md:rounded-none p-4 md:p-0", children: [
|
|
61026
60867
|
/* @__PURE__ */ jsxs(
|
|
@@ -61426,7 +61267,7 @@ function HeroPricingComparison({
|
|
|
61426
61267
|
}
|
|
61427
61268
|
);
|
|
61428
61269
|
}
|
|
61429
|
-
var
|
|
61270
|
+
var DEFAULT_STYLE_RULES8 = {
|
|
61430
61271
|
formContainer: "mt-10 flex justify-center items-center w-full max-w-md flex-col gap-4 sm:flex-row",
|
|
61431
61272
|
fieldsContainer: "",
|
|
61432
61273
|
fieldClassName: "",
|
|
@@ -61464,24 +61305,24 @@ function HeroNewsletterMinimal({
|
|
|
61464
61305
|
disclaimerClassName,
|
|
61465
61306
|
statsClassName
|
|
61466
61307
|
}) {
|
|
61467
|
-
const formStyleRules =
|
|
61308
|
+
const formStyleRules = React28.useMemo(() => {
|
|
61468
61309
|
return {
|
|
61469
|
-
formContainer: formEngineSetup?.formLayoutSettings?.styleRules?.formContainer ??
|
|
61470
|
-
fieldsContainer: formEngineSetup?.formLayoutSettings?.styleRules?.fieldsContainer ??
|
|
61471
|
-
fieldClassName: formEngineSetup?.formLayoutSettings?.styleRules?.fieldClassName ??
|
|
61472
|
-
formClassName: formEngineSetup?.formLayoutSettings?.styleRules?.formClassName ??
|
|
61473
|
-
successMessageClassName: formEngineSetup?.formLayoutSettings?.styleRules?.successMessageClassName ??
|
|
61474
|
-
errorMessageClassName: formEngineSetup?.formLayoutSettings?.styleRules?.errorMessageClassName ??
|
|
61310
|
+
formContainer: formEngineSetup?.formLayoutSettings?.styleRules?.formContainer ?? DEFAULT_STYLE_RULES8.formContainer,
|
|
61311
|
+
fieldsContainer: formEngineSetup?.formLayoutSettings?.styleRules?.fieldsContainer ?? DEFAULT_STYLE_RULES8.fieldsContainer,
|
|
61312
|
+
fieldClassName: formEngineSetup?.formLayoutSettings?.styleRules?.fieldClassName ?? DEFAULT_STYLE_RULES8.fieldClassName,
|
|
61313
|
+
formClassName: formEngineSetup?.formLayoutSettings?.styleRules?.formClassName ?? DEFAULT_STYLE_RULES8.formClassName,
|
|
61314
|
+
successMessageClassName: formEngineSetup?.formLayoutSettings?.styleRules?.successMessageClassName ?? DEFAULT_STYLE_RULES8.successMessageClassName,
|
|
61315
|
+
errorMessageClassName: formEngineSetup?.formLayoutSettings?.styleRules?.errorMessageClassName ?? DEFAULT_STYLE_RULES8.errorMessageClassName
|
|
61475
61316
|
};
|
|
61476
61317
|
}, [formEngineSetup?.formLayoutSettings?.styleRules]);
|
|
61477
|
-
const formFields =
|
|
61318
|
+
const formFields = React28.useMemo(() => {
|
|
61478
61319
|
if (formEngineSetup && formEngineSetup?.fields && formEngineSetup?.fields?.length > 0) {
|
|
61479
61320
|
return formEngineSetup.fields;
|
|
61480
61321
|
} else {
|
|
61481
61322
|
return DEFAULT_FORM_FIELDS45;
|
|
61482
61323
|
}
|
|
61483
61324
|
}, [formEngineSetup?.fields]);
|
|
61484
|
-
const renderStats =
|
|
61325
|
+
const renderStats = React28.useMemo(() => {
|
|
61485
61326
|
if (statsSlot) return statsSlot;
|
|
61486
61327
|
if (!stats || stats.length === 0) return null;
|
|
61487
61328
|
return stats.map((stat, index) => /* @__PURE__ */ jsx("div", { className: cn("flex items-center", stat.className), children: /* @__PURE__ */ jsxs("div", { className: "text-center", children: [
|
|
@@ -61507,7 +61348,7 @@ function HeroNewsletterMinimal({
|
|
|
61507
61348
|
/* @__PURE__ */ jsx("div", { className: cn("text-sm"), children: stat.label })
|
|
61508
61349
|
] }) }, index));
|
|
61509
61350
|
}, [statsSlot, stats]);
|
|
61510
|
-
const renderForm =
|
|
61351
|
+
const renderForm = React28.useMemo(() => {
|
|
61511
61352
|
if (formSlot) return formSlot;
|
|
61512
61353
|
if (!formEngineSetup) return null;
|
|
61513
61354
|
const defaultButtonAction = {
|
|
@@ -61674,7 +61515,7 @@ function HeroComingSoonCountdown({
|
|
|
61674
61515
|
formClassName,
|
|
61675
61516
|
socialLinksClassName
|
|
61676
61517
|
}) {
|
|
61677
|
-
const [timeLeft, setTimeLeft] =
|
|
61518
|
+
const [timeLeft, setTimeLeft] = React28.useState(null);
|
|
61678
61519
|
const {
|
|
61679
61520
|
uploadTokens,
|
|
61680
61521
|
uploadProgress,
|
|
@@ -61694,7 +61535,7 @@ function HeroComingSoonCountdown({
|
|
|
61694
61535
|
onError,
|
|
61695
61536
|
uploadTokens
|
|
61696
61537
|
});
|
|
61697
|
-
const calculateTimeLeft =
|
|
61538
|
+
const calculateTimeLeft = React28.useCallback(() => {
|
|
61698
61539
|
if (!countdownDate) return null;
|
|
61699
61540
|
const now = Date.now();
|
|
61700
61541
|
const target = countdownDate.getTime();
|
|
@@ -61707,7 +61548,7 @@ function HeroComingSoonCountdown({
|
|
|
61707
61548
|
seconds: Math.floor(diff % (1e3 * 60) / 1e3)
|
|
61708
61549
|
};
|
|
61709
61550
|
}, [countdownDate]);
|
|
61710
|
-
|
|
61551
|
+
React28.useEffect(() => {
|
|
61711
61552
|
setTimeLeft(calculateTimeLeft());
|
|
61712
61553
|
if (!countdownDate) return;
|
|
61713
61554
|
const timer = setInterval(() => {
|
|
@@ -61718,7 +61559,7 @@ function HeroComingSoonCountdown({
|
|
|
61718
61559
|
return () => clearInterval(timer);
|
|
61719
61560
|
}, [countdownDate, calculateTimeLeft]);
|
|
61720
61561
|
const showCountdown = countdownSlot || timeLeft;
|
|
61721
|
-
const renderForm =
|
|
61562
|
+
const renderForm = React28.useMemo(() => {
|
|
61722
61563
|
if (formSlot) return formSlot;
|
|
61723
61564
|
const defaultButtonAction = {
|
|
61724
61565
|
label: "Notify Me",
|
|
@@ -61794,7 +61635,7 @@ function HeroComingSoonCountdown({
|
|
|
61794
61635
|
resetUpload,
|
|
61795
61636
|
resetSubmissionState
|
|
61796
61637
|
]);
|
|
61797
|
-
const renderSocialLinks =
|
|
61638
|
+
const renderSocialLinks = React28.useMemo(() => {
|
|
61798
61639
|
if (socialLinksSlot) return socialLinksSlot;
|
|
61799
61640
|
if (!socialLinks || socialLinks.length === 0) return null;
|
|
61800
61641
|
return socialLinks.map((link, index) => /* @__PURE__ */ jsx(
|
|
@@ -61926,7 +61767,7 @@ function HeroEventRegistration({
|
|
|
61926
61767
|
"flex flex-col md:flex-row items-center gap-4 md:gap-6 pt-8 md:pt-12 w-full md:w-fit",
|
|
61927
61768
|
statsClassName
|
|
61928
61769
|
),
|
|
61929
|
-
children: stats.map((stat, index) => /* @__PURE__ */ jsxs(
|
|
61770
|
+
children: stats.map((stat, index) => /* @__PURE__ */ jsxs(React28.Fragment, { children: [
|
|
61930
61771
|
index > 0 && /* @__PURE__ */ jsx("div", { className: "h-12 w-px bg-border hidden md:flex" }),
|
|
61931
61772
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 justify-between flex-row md:flex-col text-left md:text-center w-full md:w-fit border md:border-none rounded-xl md:rounded-none p-4 md:p-0", children: [
|
|
61932
61773
|
/* @__PURE__ */ jsxs(
|
|
@@ -62266,7 +62107,7 @@ function ComparisonTableTwoColumn({
|
|
|
62266
62107
|
patternOpacity,
|
|
62267
62108
|
optixFlowConfig
|
|
62268
62109
|
}) {
|
|
62269
|
-
const tableContent =
|
|
62110
|
+
const tableContent = React28.useMemo(() => {
|
|
62270
62111
|
if (tableSlot) return tableSlot;
|
|
62271
62112
|
if (!rows || rows.length === 0) return null;
|
|
62272
62113
|
return /* @__PURE__ */ jsx("div", { className: cn("-mr-4 overflow-x-auto", tableWrapperClassName), children: /* @__PURE__ */ jsx("div", { className: "min-w-2xl overflow-hidden", children: /* @__PURE__ */ jsxs(
|
|
@@ -62296,7 +62137,7 @@ function ComparisonTableTwoColumn({
|
|
|
62296
62137
|
optixFlowConfig
|
|
62297
62138
|
}
|
|
62298
62139
|
) : optionBLabel && (typeof optionBLabel === "string" ? /* @__PURE__ */ jsx("span", { className: "text-lg font-semibold", children: optionBLabel }) : optionBLabel) }),
|
|
62299
|
-
rows.map((row, idx) => /* @__PURE__ */ jsxs(
|
|
62140
|
+
rows.map((row, idx) => /* @__PURE__ */ jsxs(React28.Fragment, { children: [
|
|
62300
62141
|
/* @__PURE__ */ jsx("div", { className: "flex items-center border-b p-3 text-base font-medium md:p-4 md:text-lg", children: row.label }),
|
|
62301
62142
|
/* @__PURE__ */ jsx("div", { className: cn("border-b bg-success/5 p-3 md:p-6", optionACellClassName), children: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
62302
62143
|
row.hasIcon && /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/circle-check-big", size: 20, className: "text-success" }),
|
|
@@ -62325,14 +62166,14 @@ function ComparisonTableTwoColumn({
|
|
|
62325
62166
|
optionBLabel,
|
|
62326
62167
|
optixFlowConfig
|
|
62327
62168
|
]);
|
|
62328
|
-
const headingContent =
|
|
62169
|
+
const headingContent = React28.useMemo(() => {
|
|
62329
62170
|
if (!heading) return null;
|
|
62330
62171
|
if (typeof heading === "string") {
|
|
62331
62172
|
return /* @__PURE__ */ jsx("h1", { className: cn("mb-8 text-3xl font-bold md:mb-12 md:text-5xl", headingClassName), children: heading });
|
|
62332
62173
|
}
|
|
62333
62174
|
return /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading });
|
|
62334
62175
|
}, [heading, headingClassName]);
|
|
62335
|
-
const descriptionContent =
|
|
62176
|
+
const descriptionContent = React28.useMemo(() => {
|
|
62336
62177
|
if (!description) return null;
|
|
62337
62178
|
if (typeof description === "string") {
|
|
62338
62179
|
return /* @__PURE__ */ jsx("p", { className: cn("mb-8 text-muted-foreground md:text-lg", descriptionClassName), children: description });
|
|
@@ -62379,7 +62220,7 @@ function ComparisonFeatureCards({
|
|
|
62379
62220
|
patternOpacity,
|
|
62380
62221
|
optixFlowConfig
|
|
62381
62222
|
}) {
|
|
62382
|
-
const renderCard =
|
|
62223
|
+
const renderCard = React28.useCallback(
|
|
62383
62224
|
(product, isHighlighted) => /* @__PURE__ */ jsxs(
|
|
62384
62225
|
"div",
|
|
62385
62226
|
{
|
|
@@ -62435,7 +62276,7 @@ function ComparisonFeatureCards({
|
|
|
62435
62276
|
),
|
|
62436
62277
|
[cardClassName, optixFlowConfig]
|
|
62437
62278
|
);
|
|
62438
|
-
const cardsContent =
|
|
62279
|
+
const cardsContent = React28.useMemo(() => {
|
|
62439
62280
|
if (cardsSlot) return cardsSlot;
|
|
62440
62281
|
if (!productA || !productB) return null;
|
|
62441
62282
|
return /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
@@ -62443,28 +62284,28 @@ function ComparisonFeatureCards({
|
|
|
62443
62284
|
renderCard(productB, productB.highlighted ?? false)
|
|
62444
62285
|
] });
|
|
62445
62286
|
}, [cardsSlot, productA, productB, renderCard]);
|
|
62446
|
-
const headingContent =
|
|
62287
|
+
const headingContent = React28.useMemo(() => {
|
|
62447
62288
|
if (!heading) return null;
|
|
62448
62289
|
if (typeof heading === "string") {
|
|
62449
62290
|
return /* @__PURE__ */ jsx("h1", { className: cn("mb-6 text-4xl font-semibold md:text-7xl", headingClassName), children: heading });
|
|
62450
62291
|
}
|
|
62451
62292
|
return /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading });
|
|
62452
62293
|
}, [heading, headingClassName]);
|
|
62453
|
-
const descriptionContent =
|
|
62294
|
+
const descriptionContent = React28.useMemo(() => {
|
|
62454
62295
|
if (!description) return null;
|
|
62455
62296
|
if (typeof description === "string") {
|
|
62456
62297
|
return /* @__PURE__ */ jsx("p", { className: cn("mx-auto max-w-4xl text-muted-foreground md:text-xl", descriptionClassName), children: description });
|
|
62457
62298
|
}
|
|
62458
62299
|
return /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description });
|
|
62459
62300
|
}, [description, descriptionClassName]);
|
|
62460
|
-
const suitabilityContent =
|
|
62301
|
+
const suitabilityContent = React28.useMemo(() => {
|
|
62461
62302
|
if (!suitabilityTitle && !suitabilityDescription) return null;
|
|
62462
62303
|
return /* @__PURE__ */ jsxs("div", { className: suitabilityClassName, children: [
|
|
62463
62304
|
suitabilityTitle && (typeof suitabilityTitle === "string" ? /* @__PURE__ */ jsx("h2", { className: "mb-4 text-3xl font-semibold", children: suitabilityTitle }) : suitabilityTitle),
|
|
62464
62305
|
suitabilityDescription && (typeof suitabilityDescription === "string" ? /* @__PURE__ */ jsx("p", { className: "leading-6 text-muted-foreground md:text-lg", children: suitabilityDescription }) : suitabilityDescription)
|
|
62465
62306
|
] });
|
|
62466
62307
|
}, [suitabilityTitle, suitabilityDescription, suitabilityClassName]);
|
|
62467
|
-
const differencesContent =
|
|
62308
|
+
const differencesContent = React28.useMemo(() => {
|
|
62468
62309
|
if (!differencesTitle && !differencesDescription) return null;
|
|
62469
62310
|
return /* @__PURE__ */ jsxs("div", { className: cn("mt-16", differencesClassName), children: [
|
|
62470
62311
|
differencesTitle && (typeof differencesTitle === "string" ? /* @__PURE__ */ jsx("h2", { className: "mb-4 text-3xl font-semibold", children: differencesTitle }) : differencesTitle),
|
|
@@ -62512,7 +62353,7 @@ function ComparisonGridBadges({
|
|
|
62512
62353
|
pattern,
|
|
62513
62354
|
patternOpacity
|
|
62514
62355
|
}) {
|
|
62515
|
-
const featuresContent =
|
|
62356
|
+
const featuresContent = React28.useMemo(() => {
|
|
62516
62357
|
if (featuresSlot) return featuresSlot;
|
|
62517
62358
|
if (!features || features.length === 0) return null;
|
|
62518
62359
|
return features.map((feature, idx) => /* @__PURE__ */ jsxs(
|
|
@@ -62559,14 +62400,14 @@ function ComparisonGridBadges({
|
|
|
62559
62400
|
idx
|
|
62560
62401
|
));
|
|
62561
62402
|
}, [featuresSlot, features, featureCardClassName, badgeClassName, optionALabel, optionBLabel]);
|
|
62562
|
-
const headingContent =
|
|
62403
|
+
const headingContent = React28.useMemo(() => {
|
|
62563
62404
|
if (!heading) return null;
|
|
62564
62405
|
if (typeof heading === "string") {
|
|
62565
62406
|
return /* @__PURE__ */ jsx("h2", { className: cn("mb-4 text-3xl font-bold md:text-5xl", headingClassName), children: heading });
|
|
62566
62407
|
}
|
|
62567
62408
|
return /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading });
|
|
62568
62409
|
}, [heading, headingClassName]);
|
|
62569
|
-
const descriptionContent =
|
|
62410
|
+
const descriptionContent = React28.useMemo(() => {
|
|
62570
62411
|
if (!description) return null;
|
|
62571
62412
|
if (typeof description === "string") {
|
|
62572
62413
|
return /* @__PURE__ */ jsx("p", { className: cn("mx-auto max-w-2xl text-muted-foreground md:text-lg", descriptionClassName), children: description });
|
|
@@ -62614,7 +62455,7 @@ function ComparisonMetricsRows({
|
|
|
62614
62455
|
pattern,
|
|
62615
62456
|
patternOpacity
|
|
62616
62457
|
}) {
|
|
62617
|
-
const metricsContent =
|
|
62458
|
+
const metricsContent = React28.useMemo(() => {
|
|
62618
62459
|
if (metricsSlot) return metricsSlot;
|
|
62619
62460
|
if (!metrics || metrics.length === 0) return null;
|
|
62620
62461
|
return /* @__PURE__ */ jsx(
|
|
@@ -62654,7 +62495,7 @@ function ComparisonMetricsRows({
|
|
|
62654
62495
|
}
|
|
62655
62496
|
);
|
|
62656
62497
|
}, [metricsSlot, metrics, metricsClassName, metricRowClassName]);
|
|
62657
|
-
const actionsContent =
|
|
62498
|
+
const actionsContent = React28.useMemo(() => {
|
|
62658
62499
|
if (actionsSlot) return actionsSlot;
|
|
62659
62500
|
if (!actions || actions.length === 0) return null;
|
|
62660
62501
|
return /* @__PURE__ */ jsx("div", { className: cn("flex justify-end", actionsClassName), children: actions.map((action, idx) => /* @__PURE__ */ jsxs(
|
|
@@ -62675,7 +62516,7 @@ function ComparisonMetricsRows({
|
|
|
62675
62516
|
idx
|
|
62676
62517
|
)) });
|
|
62677
62518
|
}, [actionsSlot, actions, actionsClassName]);
|
|
62678
|
-
const headingContent =
|
|
62519
|
+
const headingContent = React28.useMemo(() => {
|
|
62679
62520
|
if (!heading) return null;
|
|
62680
62521
|
if (typeof heading === "string") {
|
|
62681
62522
|
return /* @__PURE__ */ jsx(
|
|
@@ -62691,7 +62532,7 @@ function ComparisonMetricsRows({
|
|
|
62691
62532
|
}
|
|
62692
62533
|
return /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading });
|
|
62693
62534
|
}, [heading, headingClassName]);
|
|
62694
|
-
const descriptionContent =
|
|
62535
|
+
const descriptionContent = React28.useMemo(() => {
|
|
62695
62536
|
if (!description) return null;
|
|
62696
62537
|
if (typeof description === "string") {
|
|
62697
62538
|
return /* @__PURE__ */ jsx("p", { className: cn("text-muted-foreground md:text-lg", descriptionClassName), children: description });
|
|
@@ -62754,7 +62595,7 @@ function ComparisonImageCards({
|
|
|
62754
62595
|
patternOpacity,
|
|
62755
62596
|
optixFlowConfig
|
|
62756
62597
|
}) {
|
|
62757
|
-
const renderCard =
|
|
62598
|
+
const renderCard = React28.useCallback(
|
|
62758
62599
|
(option) => /* @__PURE__ */ jsx("div", { className: cn("relative h-full", cardClassName), children: /* @__PURE__ */ jsxs("div", { className: cn(
|
|
62759
62600
|
"relative aspect-4/5 min-h-[400px] overflow-hidden rounded-2xl sm:aspect-[0.9] sm:min-h-[480px] sm:rounded-3xl md:min-h-[520px]",
|
|
62760
62601
|
getNestedCardBg(background, "accent"),
|
|
@@ -62778,7 +62619,7 @@ function ComparisonImageCards({
|
|
|
62778
62619
|
] }) }),
|
|
62779
62620
|
[cardClassName, optixFlowConfig]
|
|
62780
62621
|
);
|
|
62781
|
-
const cardsContent =
|
|
62622
|
+
const cardsContent = React28.useMemo(() => {
|
|
62782
62623
|
if (cardsSlot) return cardsSlot;
|
|
62783
62624
|
if (!optionA || !optionB) return null;
|
|
62784
62625
|
return /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
@@ -62796,14 +62637,14 @@ function ComparisonImageCards({
|
|
|
62796
62637
|
)
|
|
62797
62638
|
] });
|
|
62798
62639
|
}, [cardsSlot, optionA, optionB, dividerText, dividerClassName, renderCard]);
|
|
62799
|
-
const headingContent =
|
|
62640
|
+
const headingContent = React28.useMemo(() => {
|
|
62800
62641
|
if (!heading) return null;
|
|
62801
62642
|
if (typeof heading === "string") {
|
|
62802
62643
|
return /* @__PURE__ */ jsx("h2", { className: cn("text-3xl font-medium sm:text-4xl md:text-5xl lg:text-6xl", headingClassName), children: heading });
|
|
62803
62644
|
}
|
|
62804
62645
|
return /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading });
|
|
62805
62646
|
}, [heading, headingClassName]);
|
|
62806
|
-
const descriptionContent =
|
|
62647
|
+
const descriptionContent = React28.useMemo(() => {
|
|
62807
62648
|
if (!description) return null;
|
|
62808
62649
|
if (typeof description === "string") {
|
|
62809
62650
|
return /* @__PURE__ */ jsx("p", { className: cn("mx-auto mt-4 max-w-3xl text-lg text-muted-foreground sm:mt-6 sm:text-xl", descriptionClassName), children: description });
|
|
@@ -62933,7 +62774,7 @@ function ComparisonTableTabs({
|
|
|
62933
62774
|
patternOpacity
|
|
62934
62775
|
}) {
|
|
62935
62776
|
const [selectedTab, setSelectedTab] = useState(models?.[0]?.name || "");
|
|
62936
|
-
const renderStatusIcon =
|
|
62777
|
+
const renderStatusIcon = React28.useCallback((status) => {
|
|
62937
62778
|
if (status === "positive") {
|
|
62938
62779
|
return /* @__PURE__ */ jsx("span", { className: "flex size-8 items-center justify-center rounded-full border bg-success/10", children: /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/circle-check", size: 16, className: "text-success" }) });
|
|
62939
62780
|
}
|
|
@@ -62942,7 +62783,7 @@ function ComparisonTableTabs({
|
|
|
62942
62783
|
}
|
|
62943
62784
|
return /* @__PURE__ */ jsx("span", { className: "flex size-8 items-center justify-center rounded-full border bg-accent/10", children: /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/circle-minus", size: 16, className: "text-accent" }) });
|
|
62944
62785
|
}, []);
|
|
62945
|
-
const tableContent =
|
|
62786
|
+
const tableContent = React28.useMemo(() => {
|
|
62946
62787
|
if (tableSlot) return tableSlot;
|
|
62947
62788
|
if (!models || models.length === 0 || !features || features.length === 0) return null;
|
|
62948
62789
|
return /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
@@ -63001,14 +62842,14 @@ function ComparisonTableTabs({
|
|
|
63001
62842
|
] }) })
|
|
63002
62843
|
] });
|
|
63003
62844
|
}, [tableSlot, models, features, tabsClassName, tableClassName, tableHeaderClassName, tableCellClassName, selectedTab, renderStatusIcon]);
|
|
63004
|
-
const headingContent =
|
|
62845
|
+
const headingContent = React28.useMemo(() => {
|
|
63005
62846
|
if (!heading) return null;
|
|
63006
62847
|
if (typeof heading === "string") {
|
|
63007
62848
|
return /* @__PURE__ */ jsx("h2", { className: cn("text-3xl font-bold md:text-4xl lg:text-5xl", headingClassName), children: heading });
|
|
63008
62849
|
}
|
|
63009
62850
|
return /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading });
|
|
63010
62851
|
}, [heading, headingClassName]);
|
|
63011
|
-
const descriptionContent =
|
|
62852
|
+
const descriptionContent = React28.useMemo(() => {
|
|
63012
62853
|
if (!description) return null;
|
|
63013
62854
|
if (typeof description === "string") {
|
|
63014
62855
|
return /* @__PURE__ */ jsx("p", { className: cn("mt-4 text-muted-foreground md:text-lg", descriptionClassName), children: description });
|
|
@@ -63099,7 +62940,7 @@ function ComparisonTableTooltips({
|
|
|
63099
62940
|
pattern,
|
|
63100
62941
|
patternOpacity
|
|
63101
62942
|
}) {
|
|
63102
|
-
const renderCellContent =
|
|
62943
|
+
const renderCellContent = React28.useCallback(
|
|
63103
62944
|
(cell, isHighlighted) => {
|
|
63104
62945
|
if (typeof cell === "string") {
|
|
63105
62946
|
return cell;
|
|
@@ -63126,7 +62967,7 @@ function ComparisonTableTooltips({
|
|
|
63126
62967
|
},
|
|
63127
62968
|
[]
|
|
63128
62969
|
);
|
|
63129
|
-
const tableContent =
|
|
62970
|
+
const tableContent = React28.useMemo(() => {
|
|
63130
62971
|
if (tableSlot) return tableSlot;
|
|
63131
62972
|
if (!rows || rows.length === 0) return null;
|
|
63132
62973
|
return /* @__PURE__ */ jsxs(Table, { className: cn("rounded border text-left shadow-lg", tableClassName), children: [
|
|
@@ -63152,14 +62993,14 @@ function ComparisonTableTooltips({
|
|
|
63152
62993
|
] }, idx)) })
|
|
63153
62994
|
] });
|
|
63154
62995
|
}, [tableSlot, rows, tableClassName, tableHeaderClassName, tableCellClassName, optionALabel, optionBLabel, renderCellContent]);
|
|
63155
|
-
const headingContent =
|
|
62996
|
+
const headingContent = React28.useMemo(() => {
|
|
63156
62997
|
if (!heading) return null;
|
|
63157
62998
|
if (typeof heading === "string") {
|
|
63158
62999
|
return /* @__PURE__ */ jsx("h2", { className: cn("mb-4 text-center text-4xl font-semibold", headingClassName), children: heading });
|
|
63159
63000
|
}
|
|
63160
63001
|
return /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading });
|
|
63161
63002
|
}, [heading, headingClassName]);
|
|
63162
|
-
const descriptionContent =
|
|
63003
|
+
const descriptionContent = React28.useMemo(() => {
|
|
63163
63004
|
if (!description) return null;
|
|
63164
63005
|
if (typeof description === "string") {
|
|
63165
63006
|
return /* @__PURE__ */ jsx("p", { className: cn("mb-8 text-center text-muted-foreground", descriptionClassName), children: description });
|
|
@@ -63201,7 +63042,7 @@ function ComparisonFeatureGrid({
|
|
|
63201
63042
|
pattern,
|
|
63202
63043
|
patternOpacity
|
|
63203
63044
|
}) {
|
|
63204
|
-
const renderStatusIcon =
|
|
63045
|
+
const renderStatusIcon = React28.useCallback((status) => {
|
|
63205
63046
|
if (status === true) {
|
|
63206
63047
|
return /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/check", size: 20, className: "text-success" });
|
|
63207
63048
|
}
|
|
@@ -63210,7 +63051,7 @@ function ComparisonFeatureGrid({
|
|
|
63210
63051
|
}
|
|
63211
63052
|
return /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/x", size: 20, className: "text-destructive" });
|
|
63212
63053
|
}, []);
|
|
63213
|
-
const gridContent =
|
|
63054
|
+
const gridContent = React28.useMemo(() => {
|
|
63214
63055
|
if (gridSlot) return gridSlot;
|
|
63215
63056
|
if (!features || features.length === 0) return null;
|
|
63216
63057
|
return /* @__PURE__ */ jsxs(
|
|
@@ -63276,14 +63117,14 @@ function ComparisonFeatureGrid({
|
|
|
63276
63117
|
optionBLabel,
|
|
63277
63118
|
renderStatusIcon
|
|
63278
63119
|
]);
|
|
63279
|
-
const headingContent =
|
|
63120
|
+
const headingContent = React28.useMemo(() => {
|
|
63280
63121
|
if (!heading) return null;
|
|
63281
63122
|
if (typeof heading === "string") {
|
|
63282
63123
|
return /* @__PURE__ */ jsx("h2", { className: cn("mb-4 text-center text-4xl font-semibold", headingClassName), children: heading });
|
|
63283
63124
|
}
|
|
63284
63125
|
return /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading });
|
|
63285
63126
|
}, [heading, headingClassName]);
|
|
63286
|
-
const descriptionContent =
|
|
63127
|
+
const descriptionContent = React28.useMemo(() => {
|
|
63287
63128
|
if (!description) return null;
|
|
63288
63129
|
if (typeof description === "string") {
|
|
63289
63130
|
return /* @__PURE__ */ jsx("p", { className: cn("mb-8 text-center text-muted-foreground", descriptionClassName), children: description });
|
|
@@ -63327,7 +63168,7 @@ function ComparisonAiModels({
|
|
|
63327
63168
|
optixFlowConfig
|
|
63328
63169
|
}) {
|
|
63329
63170
|
const [hoveredModel, setHoveredModel] = useState(null);
|
|
63330
|
-
const renderStatusIcon =
|
|
63171
|
+
const renderStatusIcon = React28.useCallback((status) => {
|
|
63331
63172
|
if (status === "best") {
|
|
63332
63173
|
return /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/circle-check", size: 16, className: "text-success" });
|
|
63333
63174
|
}
|
|
@@ -63336,7 +63177,7 @@ function ComparisonAiModels({
|
|
|
63336
63177
|
}
|
|
63337
63178
|
return /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/minus", size: 16, className: "text-muted-foreground" });
|
|
63338
63179
|
}, []);
|
|
63339
|
-
const getCellClassName =
|
|
63180
|
+
const getCellClassName = React28.useCallback(
|
|
63340
63181
|
(status, modelKey) => {
|
|
63341
63182
|
const baseClass = "cursor-pointer py-4 text-center font-medium transition-all duration-300";
|
|
63342
63183
|
let statusClass = "";
|
|
@@ -63357,7 +63198,7 @@ function ComparisonAiModels({
|
|
|
63357
63198
|
},
|
|
63358
63199
|
[hoveredModel]
|
|
63359
63200
|
);
|
|
63360
|
-
const getSummaryCardClassName =
|
|
63201
|
+
const getSummaryCardClassName = React28.useCallback(
|
|
63361
63202
|
(modelKey) => {
|
|
63362
63203
|
const baseClass = "rounded border border-border/30 bg-background/50 p-3 transition-all duration-300";
|
|
63363
63204
|
if (hoveredModel === modelKey) {
|
|
@@ -63372,7 +63213,7 @@ function ComparisonAiModels({
|
|
|
63372
63213
|
},
|
|
63373
63214
|
[hoveredModel]
|
|
63374
63215
|
);
|
|
63375
|
-
const tableContent =
|
|
63216
|
+
const tableContent = React28.useMemo(() => {
|
|
63376
63217
|
if (tableSlot) return tableSlot;
|
|
63377
63218
|
if (!models || !comparisonData || comparisonData.length === 0) return null;
|
|
63378
63219
|
return /* @__PURE__ */ jsx(
|
|
@@ -63450,7 +63291,7 @@ function ComparisonAiModels({
|
|
|
63450
63291
|
getCellClassName,
|
|
63451
63292
|
renderStatusIcon
|
|
63452
63293
|
]);
|
|
63453
|
-
const analysisContent =
|
|
63294
|
+
const analysisContent = React28.useMemo(() => {
|
|
63454
63295
|
if (analysisSlot) return analysisSlot;
|
|
63455
63296
|
if (!models) return null;
|
|
63456
63297
|
return /* @__PURE__ */ jsx("div", { className: cn(
|
|
@@ -63491,14 +63332,14 @@ function ComparisonAiModels({
|
|
|
63491
63332
|
] })
|
|
63492
63333
|
] }) });
|
|
63493
63334
|
}, [analysisSlot, models, analysisClassName, getSummaryCardClassName]);
|
|
63494
|
-
const headingContent =
|
|
63335
|
+
const headingContent = React28.useMemo(() => {
|
|
63495
63336
|
if (!heading) return null;
|
|
63496
63337
|
if (typeof heading === "string") {
|
|
63497
63338
|
return /* @__PURE__ */ jsx("h2", { className: cn("text-3xl font-bold md:text-4xl lg:text-5xl", headingClassName), children: heading });
|
|
63498
63339
|
}
|
|
63499
63340
|
return /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading });
|
|
63500
63341
|
}, [heading, headingClassName]);
|
|
63501
|
-
const descriptionContent =
|
|
63342
|
+
const descriptionContent = React28.useMemo(() => {
|
|
63502
63343
|
if (!description) return null;
|
|
63503
63344
|
if (typeof description === "string") {
|
|
63504
63345
|
return /* @__PURE__ */ jsx("p", { className: cn("mt-4 text-muted-foreground md:text-lg", descriptionClassName), children: description });
|
|
@@ -63548,7 +63389,7 @@ function ComparisonLegacyModern({
|
|
|
63548
63389
|
pattern,
|
|
63549
63390
|
patternOpacity
|
|
63550
63391
|
}) {
|
|
63551
|
-
const columnsContent =
|
|
63392
|
+
const columnsContent = React28.useMemo(() => {
|
|
63552
63393
|
if (columnsSlot) return columnsSlot;
|
|
63553
63394
|
if (!legacyFeatures || legacyFeatures.length === 0 || !modernFeatures || modernFeatures.length === 0)
|
|
63554
63395
|
return null;
|
|
@@ -63560,7 +63401,7 @@ function ComparisonLegacyModern({
|
|
|
63560
63401
|
legacyColumnClassName
|
|
63561
63402
|
), children: [
|
|
63562
63403
|
legacyTitle && (typeof legacyTitle === "string" ? /* @__PURE__ */ jsx("h3", { className: "text-2xl font-medium", children: legacyTitle }) : legacyTitle),
|
|
63563
|
-
/* @__PURE__ */ jsx("ul", { className: "mt-9 space-y-3", children: legacyFeatures.map((feature, idx) => /* @__PURE__ */ jsxs(
|
|
63404
|
+
/* @__PURE__ */ jsx("ul", { className: "mt-9 space-y-3", children: legacyFeatures.map((feature, idx) => /* @__PURE__ */ jsxs(React28.Fragment, { children: [
|
|
63564
63405
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
63565
63406
|
/* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/x", size: 16, className: "my-1.5 shrink-0 text-muted-foreground" }),
|
|
63566
63407
|
/* @__PURE__ */ jsx("li", { className: "text-sm", children: feature.text })
|
|
@@ -63577,7 +63418,7 @@ function ComparisonLegacyModern({
|
|
|
63577
63418
|
),
|
|
63578
63419
|
children: [
|
|
63579
63420
|
modernTitle && (typeof modernTitle === "string" ? /* @__PURE__ */ jsx("h3", { className: "text-2xl font-medium", children: modernTitle }) : modernTitle),
|
|
63580
|
-
/* @__PURE__ */ jsx("ul", { className: "mt-9 space-y-3", children: modernFeatures.map((feature, idx) => /* @__PURE__ */ jsxs(
|
|
63421
|
+
/* @__PURE__ */ jsx("ul", { className: "mt-9 space-y-3", children: modernFeatures.map((feature, idx) => /* @__PURE__ */ jsxs(React28.Fragment, { children: [
|
|
63581
63422
|
/* @__PURE__ */ jsxs("li", { className: "flex items-center gap-2 text-sm", children: [
|
|
63582
63423
|
/* @__PURE__ */ jsx("span", { className: "text-lg", children: feature.emoji }),
|
|
63583
63424
|
feature.text
|
|
@@ -63589,7 +63430,7 @@ function ComparisonLegacyModern({
|
|
|
63589
63430
|
)
|
|
63590
63431
|
] });
|
|
63591
63432
|
}, [columnsSlot, legacyFeatures, modernFeatures, legacyTitle, modernTitle, legacyColumnClassName, modernColumnClassName]);
|
|
63592
|
-
const headingContent =
|
|
63433
|
+
const headingContent = React28.useMemo(() => {
|
|
63593
63434
|
if (!heading && !headingHighlight) return null;
|
|
63594
63435
|
return /* @__PURE__ */ jsxs("h2", { className: cn("text-4xl font-medium md:text-5xl lg:text-7xl", headingClassName), children: [
|
|
63595
63436
|
heading && (typeof heading === "string" ? /* @__PURE__ */ jsxs("span", { className: "text-muted-foreground", children: [
|
|
@@ -63602,7 +63443,7 @@ function ComparisonLegacyModern({
|
|
|
63602
63443
|
] }) : headingHighlight)
|
|
63603
63444
|
] });
|
|
63604
63445
|
}, [heading, headingHighlight, headingClassName, headingHighlightClassName]);
|
|
63605
|
-
const descriptionContent =
|
|
63446
|
+
const descriptionContent = React28.useMemo(() => {
|
|
63606
63447
|
if (!description) return null;
|
|
63607
63448
|
if (typeof description === "string") {
|
|
63608
63449
|
return /* @__PURE__ */ jsx("p", { className: cn("text-lg", descriptionClassName), children: description });
|
|
@@ -63775,7 +63616,7 @@ var NavbarMobileMenu = ({
|
|
|
63775
63616
|
closeIconClassName,
|
|
63776
63617
|
title = "Mobile Navigation"
|
|
63777
63618
|
}) => {
|
|
63778
|
-
|
|
63619
|
+
React28.useEffect(() => {
|
|
63779
63620
|
if (open) {
|
|
63780
63621
|
const originalOverflow = document.body.style.overflow;
|
|
63781
63622
|
document.body.style.overflow = "hidden";
|
|
@@ -64004,7 +63845,7 @@ var NavbarDropdownMenu = ({
|
|
|
64004
63845
|
patternOpacity,
|
|
64005
63846
|
optixFlowConfig
|
|
64006
63847
|
}) => {
|
|
64007
|
-
const [open, setOpen] =
|
|
63848
|
+
const [open, setOpen] = React28.useState(false);
|
|
64008
63849
|
const renderAuthActions = useMemo(() => {
|
|
64009
63850
|
if (authActionsSlot) return authActionsSlot;
|
|
64010
63851
|
if (!authActions || authActions.length === 0) return null;
|
|
@@ -64230,7 +64071,7 @@ var NavbarCenteredMenu = ({
|
|
|
64230
64071
|
patternOpacity,
|
|
64231
64072
|
optixFlowConfig
|
|
64232
64073
|
}) => {
|
|
64233
|
-
const [open, setOpen] =
|
|
64074
|
+
const [open, setOpen] = React28.useState(false);
|
|
64234
64075
|
const renderAuthActions = useMemo(() => {
|
|
64235
64076
|
if (authActionsSlot) return authActionsSlot;
|
|
64236
64077
|
if (!authActions || authActions.length === 0) return null;
|
|
@@ -64370,7 +64211,7 @@ var DesktopMenuItem = ({
|
|
|
64370
64211
|
index,
|
|
64371
64212
|
optixFlowConfig
|
|
64372
64213
|
}) => {
|
|
64373
|
-
const imagesRef =
|
|
64214
|
+
const imagesRef = React28.useRef([]);
|
|
64374
64215
|
const layout = link.layout || "simple-grid";
|
|
64375
64216
|
const handleMouseEnter = (event) => {
|
|
64376
64217
|
const index2 = Number(event.currentTarget.getAttribute("data-index"));
|
|
@@ -65605,7 +65446,7 @@ var NavbarFeatureGrid = ({
|
|
|
65605
65446
|
patternOpacity,
|
|
65606
65447
|
optixFlowConfig
|
|
65607
65448
|
}) => {
|
|
65608
|
-
const [open, setOpen] =
|
|
65449
|
+
const [open, setOpen] = React28.useState(false);
|
|
65609
65450
|
const renderAuthActions = useMemo(() => {
|
|
65610
65451
|
if (authActionsSlot) return authActionsSlot;
|
|
65611
65452
|
if (!authActions || authActions.length === 0) return null;
|
|
@@ -68815,7 +68656,7 @@ var DesktopMenuItem7 = ({
|
|
|
68815
68656
|
if (item.groups && item.groups.length > 0) {
|
|
68816
68657
|
return /* @__PURE__ */ jsxs(NavigationMenuItem, { value: `${index}`, children: [
|
|
68817
68658
|
/* @__PURE__ */ jsx(NavigationMenuTrigger, { children: item.label }),
|
|
68818
|
-
/* @__PURE__ */ jsx(NavigationMenuContent, { className: "p-0", children: /* @__PURE__ */ jsx("div", { className: "flex", children: item.groups.map((group, groupIndex) => /* @__PURE__ */ jsxs(
|
|
68659
|
+
/* @__PURE__ */ jsx(NavigationMenuContent, { className: "p-0", children: /* @__PURE__ */ jsx("div", { className: "flex", children: item.groups.map((group, groupIndex) => /* @__PURE__ */ jsxs(React28.Fragment, { children: [
|
|
68819
68660
|
groupIndex > 0 && /* @__PURE__ */ jsx(
|
|
68820
68661
|
Separator,
|
|
68821
68662
|
{
|
|
@@ -69567,7 +69408,7 @@ var NavbarSimpleLinks = ({
|
|
|
69567
69408
|
const renderNavItems = useMemo(() => {
|
|
69568
69409
|
if (navItemsSlot) return navItemsSlot;
|
|
69569
69410
|
if (!navItems || navItems.length === 0) return null;
|
|
69570
|
-
return navItems.map((item) => /* @__PURE__ */ jsx(
|
|
69411
|
+
return navItems.map((item) => /* @__PURE__ */ jsx(React28.Fragment, { children: /* @__PURE__ */ jsx(NavigationMenuItem, { children: /* @__PURE__ */ jsx(
|
|
69571
69412
|
NavigationMenuLink,
|
|
69572
69413
|
{
|
|
69573
69414
|
"data-nav-item": item.name,
|
|
@@ -74596,7 +74437,7 @@ function PricingFullComparison({
|
|
|
74596
74437
|
resolvedPlanIds[index]
|
|
74597
74438
|
))
|
|
74598
74439
|
] }) }),
|
|
74599
|
-
/* @__PURE__ */ jsx("tbody", { children: categories.map((category) => /* @__PURE__ */ jsxs(
|
|
74440
|
+
/* @__PURE__ */ jsx("tbody", { children: categories.map((category) => /* @__PURE__ */ jsxs(React28.Fragment, { children: [
|
|
74600
74441
|
/* @__PURE__ */ jsx("tr", { className: cn(getNestedCardBg(background), getNestedCardTextColor(background), categoryRowClassName), children: /* @__PURE__ */ jsx(
|
|
74601
74442
|
"td",
|
|
74602
74443
|
{
|
|
@@ -79197,9 +79038,9 @@ function ProcessStickySteps({
|
|
|
79197
79038
|
);
|
|
79198
79039
|
}
|
|
79199
79040
|
var usePrevious = (value) => {
|
|
79200
|
-
const [prev, setPrev] =
|
|
79201
|
-
const ref =
|
|
79202
|
-
|
|
79041
|
+
const [prev, setPrev] = React28.useState(void 0);
|
|
79042
|
+
const ref = React28.useRef(value);
|
|
79043
|
+
React28.useEffect(() => {
|
|
79203
79044
|
setPrev(ref.current);
|
|
79204
79045
|
ref.current = value;
|
|
79205
79046
|
}, [value]);
|
|
@@ -79212,12 +79053,12 @@ var ProcessCard = ({
|
|
|
79212
79053
|
itemClassName,
|
|
79213
79054
|
background
|
|
79214
79055
|
}) => {
|
|
79215
|
-
const ref =
|
|
79056
|
+
const ref = React28.useRef(null);
|
|
79216
79057
|
const itemInView = useInView(ref, {
|
|
79217
79058
|
amount: 0,
|
|
79218
79059
|
margin: "0px 0px -60% 0px"
|
|
79219
79060
|
});
|
|
79220
|
-
|
|
79061
|
+
React28.useEffect(() => {
|
|
79221
79062
|
if (itemInView) {
|
|
79222
79063
|
setActive(index);
|
|
79223
79064
|
}
|
|
@@ -79267,7 +79108,7 @@ function ProcessScrollImage({
|
|
|
79267
79108
|
ctaText,
|
|
79268
79109
|
ctaUrl
|
|
79269
79110
|
}) {
|
|
79270
|
-
const [active, setActive] =
|
|
79111
|
+
const [active, setActive] = React28.useState(0);
|
|
79271
79112
|
const previousActive = usePrevious(active);
|
|
79272
79113
|
const resolvedHeading = title ?? heading;
|
|
79273
79114
|
const resolvedActions = actions ?? (ctaText && ctaUrl ? [
|
|
@@ -79451,7 +79292,7 @@ var ProcessCard2 = ({
|
|
|
79451
79292
|
hoverImageClassName,
|
|
79452
79293
|
background
|
|
79453
79294
|
}) => {
|
|
79454
|
-
const [isHovered, setIsHovered] =
|
|
79295
|
+
const [isHovered, setIsHovered] = React28.useState(false);
|
|
79455
79296
|
const titleText = typeof step.title === "string" ? step.title : `Step ${index + 1}`;
|
|
79456
79297
|
return /* @__PURE__ */ jsxs(
|
|
79457
79298
|
"li",
|
|
@@ -79775,7 +79616,7 @@ function ProcessExpandableTimeline({
|
|
|
79775
79616
|
// Backwards compatibility
|
|
79776
79617
|
title
|
|
79777
79618
|
}) {
|
|
79778
|
-
const [expandedIndex, setExpandedIndex] =
|
|
79619
|
+
const [expandedIndex, setExpandedIndex] = React28.useState(null);
|
|
79779
79620
|
const resolvedHeading = title ?? heading;
|
|
79780
79621
|
const toggleExpand = (index) => {
|
|
79781
79622
|
setExpandedIndex(expandedIndex === index ? null : index);
|
|
@@ -84546,7 +84387,7 @@ function ListAchievementsShowcase({
|
|
|
84546
84387
|
if (!items || items.length === 0) return null;
|
|
84547
84388
|
return /* @__PURE__ */ jsxs("div", { className: cn("flex flex-col", itemsClassName), children: [
|
|
84548
84389
|
/* @__PURE__ */ jsx(Separator, {}),
|
|
84549
|
-
items.map((item, index) => /* @__PURE__ */ jsxs(
|
|
84390
|
+
items.map((item, index) => /* @__PURE__ */ jsxs(React28.Fragment, { children: [
|
|
84550
84391
|
/* @__PURE__ */ jsxs(
|
|
84551
84392
|
"div",
|
|
84552
84393
|
{
|
|
@@ -84666,7 +84507,7 @@ function ListCareerTimeline({
|
|
|
84666
84507
|
const renderExperiences = useMemo(() => {
|
|
84667
84508
|
if (experiencesSlot) return experiencesSlot;
|
|
84668
84509
|
if (!experiences || experiences.length === 0) return null;
|
|
84669
|
-
return /* @__PURE__ */ jsx("div", { className: experiencesClassName, children: experiences.map((experience, idx) => /* @__PURE__ */ jsxs(
|
|
84510
|
+
return /* @__PURE__ */ jsx("div", { className: experiencesClassName, children: experiences.map((experience, idx) => /* @__PURE__ */ jsxs(React28.Fragment, { children: [
|
|
84670
84511
|
/* @__PURE__ */ jsx(Separator, {}),
|
|
84671
84512
|
/* @__PURE__ */ jsxs(
|
|
84672
84513
|
"div",
|
|
@@ -84687,7 +84528,7 @@ function ListCareerTimeline({
|
|
|
84687
84528
|
const renderAwards = useMemo(() => {
|
|
84688
84529
|
if (awardsSlot) return awardsSlot;
|
|
84689
84530
|
if (!awards || awards.length === 0) return null;
|
|
84690
|
-
return /* @__PURE__ */ jsx("div", { className: awardsClassName, children: awards.map((award, idx) => /* @__PURE__ */ jsxs(
|
|
84531
|
+
return /* @__PURE__ */ jsx("div", { className: awardsClassName, children: awards.map((award, idx) => /* @__PURE__ */ jsxs(React28.Fragment, { children: [
|
|
84691
84532
|
/* @__PURE__ */ jsx(Separator, {}),
|
|
84692
84533
|
/* @__PURE__ */ jsxs(
|
|
84693
84534
|
"div",
|
|
@@ -84822,7 +84663,7 @@ function ListMetricsDashboard({
|
|
|
84822
84663
|
activeCategory: controlledActiveCategory,
|
|
84823
84664
|
onActiveCategoryChange
|
|
84824
84665
|
}) {
|
|
84825
|
-
const [internalActiveTab, setInternalActiveTab] =
|
|
84666
|
+
const [internalActiveTab, setInternalActiveTab] = React28.useState("all");
|
|
84826
84667
|
const activeTab = controlledActiveCategory ?? internalActiveTab;
|
|
84827
84668
|
const handleTabChange = (value) => {
|
|
84828
84669
|
if (onActiveCategoryChange) {
|
|
@@ -85306,7 +85147,7 @@ function ListSearchableGrid({
|
|
|
85306
85147
|
searchTerm: controlledSearchTerm,
|
|
85307
85148
|
onSearchTermChange
|
|
85308
85149
|
}) {
|
|
85309
|
-
const [internalSearchTerm, setInternalSearchTerm] =
|
|
85150
|
+
const [internalSearchTerm, setInternalSearchTerm] = React28.useState("");
|
|
85310
85151
|
const searchTerm = controlledSearchTerm ?? internalSearchTerm;
|
|
85311
85152
|
const handleSearchChange = (value) => {
|
|
85312
85153
|
if (onSearchTermChange) {
|
|
@@ -85315,7 +85156,7 @@ function ListSearchableGrid({
|
|
|
85315
85156
|
setInternalSearchTerm(value);
|
|
85316
85157
|
}
|
|
85317
85158
|
};
|
|
85318
|
-
const filteredItems =
|
|
85159
|
+
const filteredItems = React28.useMemo(() => {
|
|
85319
85160
|
if (!searchTerm) {
|
|
85320
85161
|
return items ?? [];
|
|
85321
85162
|
}
|
|
@@ -85478,7 +85319,7 @@ function ListSearchableGrid({
|
|
|
85478
85319
|
}
|
|
85479
85320
|
);
|
|
85480
85321
|
}
|
|
85481
|
-
var { useMemo: useMemo445 } =
|
|
85322
|
+
var { useMemo: useMemo445 } = React28;
|
|
85482
85323
|
function OfferModalNewsletterDiscount({
|
|
85483
85324
|
title,
|
|
85484
85325
|
emailPlaceholder,
|
|
@@ -85627,7 +85468,7 @@ function OfferModalNewsletterDiscount({
|
|
|
85627
85468
|
}
|
|
85628
85469
|
) });
|
|
85629
85470
|
}
|
|
85630
|
-
var { useMemo: useMemo446 } =
|
|
85471
|
+
var { useMemo: useMemo446 } = React28;
|
|
85631
85472
|
function OfferModalMembershipImage({
|
|
85632
85473
|
overline,
|
|
85633
85474
|
title,
|
|
@@ -85916,7 +85757,7 @@ function SheetDescription({
|
|
|
85916
85757
|
}
|
|
85917
85758
|
);
|
|
85918
85759
|
}
|
|
85919
|
-
var { useMemo: useMemo447 } =
|
|
85760
|
+
var { useMemo: useMemo447 } = React28;
|
|
85920
85761
|
function OfferModalSheetNewsletter({
|
|
85921
85762
|
logo,
|
|
85922
85763
|
logoSlot,
|
|
@@ -86665,10 +86506,10 @@ function ProjectDetailSidebarNavigation(props) {
|
|
|
86665
86506
|
heroImageClassName,
|
|
86666
86507
|
metadataClassName
|
|
86667
86508
|
} = props;
|
|
86668
|
-
const [activeSection, setActiveSection] =
|
|
86509
|
+
const [activeSection, setActiveSection] = React28.useState(
|
|
86669
86510
|
sections?.[0]?.id || ""
|
|
86670
86511
|
);
|
|
86671
|
-
|
|
86512
|
+
React28.useEffect(() => {
|
|
86672
86513
|
const handleScroll = () => {
|
|
86673
86514
|
const sectionElements = sections?.map(
|
|
86674
86515
|
(section) => document.getElementById(section.id)
|
|
@@ -89528,7 +89369,7 @@ function ProjectDetailTabbedCaseStudy(props) {
|
|
|
89528
89369
|
testimonialClassName,
|
|
89529
89370
|
toolsClassName
|
|
89530
89371
|
} = props;
|
|
89531
|
-
const [activeTab, setActiveTab] =
|
|
89372
|
+
const [activeTab, setActiveTab] = React28.useState(tabs?.[0]?.id || "");
|
|
89532
89373
|
const renderedBackAction = useMemo(() => {
|
|
89533
89374
|
if (backActionSlot) return backActionSlot;
|
|
89534
89375
|
if (!backAction) return null;
|
|
@@ -89916,7 +89757,7 @@ function RevealImage({
|
|
|
89916
89757
|
index,
|
|
89917
89758
|
optixFlowConfig
|
|
89918
89759
|
}) {
|
|
89919
|
-
const ref =
|
|
89760
|
+
const ref = React28.useRef(null);
|
|
89920
89761
|
const { scrollYProgress } = useScroll({
|
|
89921
89762
|
target: ref,
|
|
89922
89763
|
offset: ["start end", "end start"]
|
|
@@ -90111,7 +89952,7 @@ function ParallaxSection({
|
|
|
90111
89952
|
index,
|
|
90112
89953
|
optixFlowConfig
|
|
90113
89954
|
}) {
|
|
90114
|
-
const ref =
|
|
89955
|
+
const ref = React28.useRef(null);
|
|
90115
89956
|
const { scrollYProgress } = useScroll({
|
|
90116
89957
|
target: ref,
|
|
90117
89958
|
offset: ["start end", "end start"]
|
|
@@ -90184,7 +90025,7 @@ function ProjectDetailParallaxScroll(props) {
|
|
|
90184
90025
|
heroImageClassName,
|
|
90185
90026
|
sectionsClassName
|
|
90186
90027
|
} = props;
|
|
90187
|
-
const heroRef =
|
|
90028
|
+
const heroRef = React28.useRef(null);
|
|
90188
90029
|
const { scrollYProgress } = useScroll({
|
|
90189
90030
|
target: heroRef,
|
|
90190
90031
|
offset: ["start start", "end start"]
|
|
@@ -90722,7 +90563,7 @@ function IndustriesExpandableShowcase({
|
|
|
90722
90563
|
patternClassName,
|
|
90723
90564
|
optixFlowConfig
|
|
90724
90565
|
}) {
|
|
90725
|
-
const [activeContractor, setActiveContractor] =
|
|
90566
|
+
const [activeContractor, setActiveContractor] = React28.useState(
|
|
90726
90567
|
contractors?.[0]?.id || ""
|
|
90727
90568
|
);
|
|
90728
90569
|
const handleContractorHover = (contractorId) => {
|
|
@@ -91375,7 +91216,7 @@ function ResourceDetailDocumentSidebar({
|
|
|
91375
91216
|
}) {
|
|
91376
91217
|
const renderedBreadcrumbs = useMemo(() => {
|
|
91377
91218
|
if (breadcrumbsSlot) return breadcrumbsSlot;
|
|
91378
|
-
return /* @__PURE__ */ jsx(Breadcrumb, { className: breadcrumbsClassName, children: /* @__PURE__ */ jsx(BreadcrumbList, { children: breadcrumbs?.map((crumb, index) => /* @__PURE__ */ jsxs(
|
|
91219
|
+
return /* @__PURE__ */ jsx(Breadcrumb, { className: breadcrumbsClassName, children: /* @__PURE__ */ jsx(BreadcrumbList, { children: breadcrumbs?.map((crumb, index) => /* @__PURE__ */ jsxs(React28.Fragment, { children: [
|
|
91379
91220
|
/* @__PURE__ */ jsx(BreadcrumbItem, { children: !crumb.href ? /* @__PURE__ */ jsx(BreadcrumbPage, { children: typeof crumb.label === "string" ? crumb.label : crumb.label }) : /* @__PURE__ */ jsx(BreadcrumbLink, { href: crumb.href, children: index === 0 ? /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/home", size: 16 }) : typeof crumb.label === "string" ? crumb.label : crumb.label }) }),
|
|
91380
91221
|
index < (breadcrumbs?.length || 0) - 1 && /* @__PURE__ */ jsx(BreadcrumbSeparator, {})
|
|
91381
91222
|
] }, index)) }) });
|
|
@@ -94776,8 +94617,8 @@ function ServicesListTableHover({
|
|
|
94776
94617
|
patternOpacity,
|
|
94777
94618
|
optixFlowConfig
|
|
94778
94619
|
}) {
|
|
94779
|
-
const [hoveredIndex, setHoveredIndex] =
|
|
94780
|
-
const [mousePosition, setMousePosition] =
|
|
94620
|
+
const [hoveredIndex, setHoveredIndex] = React28.useState(null);
|
|
94621
|
+
const [mousePosition, setMousePosition] = React28.useState({ x: 0, y: 0 });
|
|
94781
94622
|
const handleMouseMove = (e) => {
|
|
94782
94623
|
setMousePosition({ x: e.clientX, y: e.clientY });
|
|
94783
94624
|
};
|
|
@@ -95027,7 +94868,7 @@ function ServicesListStickyImage({
|
|
|
95027
94868
|
patternOpacity,
|
|
95028
94869
|
optixFlowConfig
|
|
95029
94870
|
}) {
|
|
95030
|
-
const [activeIndex, setActiveIndex] =
|
|
94871
|
+
const [activeIndex, setActiveIndex] = React28.useState(0);
|
|
95031
94872
|
const renderServices = () => {
|
|
95032
94873
|
if (servicesSlot) return servicesSlot;
|
|
95033
94874
|
if (!services || services.length === 0) return null;
|
|
@@ -95279,8 +95120,8 @@ function ServicesListVideoShowcase({
|
|
|
95279
95120
|
patternOpacity,
|
|
95280
95121
|
optixFlowConfig
|
|
95281
95122
|
}) {
|
|
95282
|
-
const [playingIndex, setPlayingIndex] =
|
|
95283
|
-
const videoRefs =
|
|
95123
|
+
const [playingIndex, setPlayingIndex] = React28.useState(null);
|
|
95124
|
+
const videoRefs = React28.useRef([]);
|
|
95284
95125
|
const handleMouseEnter = (index) => {
|
|
95285
95126
|
setPlayingIndex(index);
|
|
95286
95127
|
videoRefs.current[index]?.play();
|
|
@@ -98573,7 +98414,7 @@ function StatsCircularProgress({
|
|
|
98573
98414
|
statInfoClassName
|
|
98574
98415
|
}) {
|
|
98575
98416
|
const effectiveDefaultCategory = defaultCategory || (categories && categories.length > 0 ? categories[0].id : "");
|
|
98576
|
-
const [category, setCategory] =
|
|
98417
|
+
const [category, setCategory] = React28.useState(effectiveDefaultCategory);
|
|
98577
98418
|
const badgeContent = useMemo(() => {
|
|
98578
98419
|
if (badgeSlot) return badgeSlot;
|
|
98579
98420
|
if (!badge) return null;
|
|
@@ -98866,8 +98707,8 @@ function StatsCardGroup({
|
|
|
98866
98707
|
);
|
|
98867
98708
|
}
|
|
98868
98709
|
function useAnimatedCounter(endValue, duration = 2e3, isVisible) {
|
|
98869
|
-
const [count, setCount] =
|
|
98870
|
-
|
|
98710
|
+
const [count, setCount] = React28.useState(0);
|
|
98711
|
+
React28.useEffect(() => {
|
|
98871
98712
|
if (!isVisible) return;
|
|
98872
98713
|
let startTime = null;
|
|
98873
98714
|
let animationFrame;
|
|
@@ -98955,9 +98796,9 @@ function StatsAnimatedCounter({
|
|
|
98955
98796
|
statLabelClassName,
|
|
98956
98797
|
statIconClassName
|
|
98957
98798
|
}) {
|
|
98958
|
-
const [isVisible, setIsVisible] =
|
|
98959
|
-
const sectionRef =
|
|
98960
|
-
|
|
98799
|
+
const [isVisible, setIsVisible] = React28.useState(false);
|
|
98800
|
+
const sectionRef = React28.useRef(null);
|
|
98801
|
+
React28.useEffect(() => {
|
|
98961
98802
|
const observer = new IntersectionObserver(
|
|
98962
98803
|
([entry]) => {
|
|
98963
98804
|
if (entry.isIntersecting) {
|
|
@@ -99045,8 +98886,8 @@ function StatsAnimatedCounter({
|
|
|
99045
98886
|
);
|
|
99046
98887
|
}
|
|
99047
98888
|
function useNumberTicker(endValue, duration = 2500, isVisible, decimals = 0) {
|
|
99048
|
-
const [displayValue, setDisplayValue] =
|
|
99049
|
-
|
|
98889
|
+
const [displayValue, setDisplayValue] = React28.useState("0");
|
|
98890
|
+
React28.useEffect(() => {
|
|
99050
98891
|
if (!isVisible) return;
|
|
99051
98892
|
let startTime = null;
|
|
99052
98893
|
let animationFrame;
|
|
@@ -99161,9 +99002,9 @@ function StatsNumberTicker({
|
|
|
99161
99002
|
statLabelClassName,
|
|
99162
99003
|
statDescriptionClassName
|
|
99163
99004
|
}) {
|
|
99164
|
-
const [isVisible, setIsVisible] =
|
|
99165
|
-
const sectionRef =
|
|
99166
|
-
|
|
99005
|
+
const [isVisible, setIsVisible] = React28.useState(false);
|
|
99006
|
+
const sectionRef = React28.useRef(null);
|
|
99007
|
+
React28.useEffect(() => {
|
|
99167
99008
|
const observer = new IntersectionObserver(
|
|
99168
99009
|
([entry]) => {
|
|
99169
99010
|
if (entry.isIntersecting) {
|
|
@@ -99422,9 +99263,9 @@ function StatsBarComparison({
|
|
|
99422
99263
|
barValueClassName,
|
|
99423
99264
|
barTrackClassName
|
|
99424
99265
|
}) {
|
|
99425
|
-
const [isVisible, setIsVisible] =
|
|
99426
|
-
const sectionRef =
|
|
99427
|
-
|
|
99266
|
+
const [isVisible, setIsVisible] = React28.useState(!animate);
|
|
99267
|
+
const sectionRef = React28.useRef(null);
|
|
99268
|
+
React28.useEffect(() => {
|
|
99428
99269
|
if (!animate) return;
|
|
99429
99270
|
const observer = new IntersectionObserver(
|
|
99430
99271
|
([entry]) => {
|
|
@@ -99602,7 +99443,7 @@ function TimelineVerticalIconDashed({
|
|
|
99602
99443
|
"mx-auto flex flex-col items-center justify-center text-center sm:max-w-xl",
|
|
99603
99444
|
stepsClassName
|
|
99604
99445
|
),
|
|
99605
|
-
children: steps.map((step, index) => /* @__PURE__ */ jsxs(
|
|
99446
|
+
children: steps.map((step, index) => /* @__PURE__ */ jsxs(React28.Fragment, { children: [
|
|
99606
99447
|
/* @__PURE__ */ jsxs("div", { className: cn("flex flex-col items-center", stepClassName), children: [
|
|
99607
99448
|
/* @__PURE__ */ jsx(
|
|
99608
99449
|
"span",
|
|
@@ -99869,7 +99710,7 @@ function TimelineTwoColumnFeatured({
|
|
|
99869
99710
|
style,
|
|
99870
99711
|
optixFlowConfig
|
|
99871
99712
|
}) {
|
|
99872
|
-
const renderActions =
|
|
99713
|
+
const renderActions = React28.useMemo(() => {
|
|
99873
99714
|
if (actionsSlot) {
|
|
99874
99715
|
return actionsSlot;
|
|
99875
99716
|
}
|
|
@@ -99997,7 +99838,7 @@ function TimelineTwoColumnFeatured({
|
|
|
99997
99838
|
}
|
|
99998
99839
|
);
|
|
99999
99840
|
}
|
|
100000
|
-
var DiagonalPattern =
|
|
99841
|
+
var DiagonalPattern = React28.memo(({
|
|
100001
99842
|
className,
|
|
100002
99843
|
patternOpacity = 0.15
|
|
100003
99844
|
}) => {
|
|
@@ -100036,7 +99877,7 @@ function TimelineAlternatingDiagonal({
|
|
|
100036
99877
|
style,
|
|
100037
99878
|
optixFlowConfig
|
|
100038
99879
|
}) {
|
|
100039
|
-
const renderedBadge =
|
|
99880
|
+
const renderedBadge = React28.useMemo(() => {
|
|
100040
99881
|
if (badgeSlot) {
|
|
100041
99882
|
return badgeSlot;
|
|
100042
99883
|
}
|
|
@@ -100414,7 +100255,7 @@ function TimelineProductivityList({
|
|
|
100414
100255
|
}
|
|
100415
100256
|
);
|
|
100416
100257
|
}
|
|
100417
|
-
var ProcessBar =
|
|
100258
|
+
var ProcessBar = React28.memo(({ currentStep, steps }) => /* @__PURE__ */ jsx("div", { className: "relative w-full scale-75", children: /* @__PURE__ */ jsx("div", { className: "flex items-center justify-between", children: steps.map((step, index) => /* @__PURE__ */ jsxs(React28.Fragment, { children: [
|
|
100418
100259
|
/* @__PURE__ */ jsx("div", { className: "flex flex-col items-center", children: /* @__PURE__ */ jsx(
|
|
100419
100260
|
motion.div,
|
|
100420
100261
|
{
|
|
@@ -100441,7 +100282,7 @@ var ProcessBar = React25.memo(({ currentStep, steps }) => /* @__PURE__ */ jsx("d
|
|
|
100441
100282
|
)
|
|
100442
100283
|
] })
|
|
100443
100284
|
] }, index)) }) }));
|
|
100444
|
-
var StepperContent =
|
|
100285
|
+
var StepperContent = React28.memo(({ step, optixFlowConfig, imageClassName, descriptionClassName, background }) => {
|
|
100445
100286
|
return /* @__PURE__ */ jsxs("div", { className: cn("my-4 flex min-h-[400px] w-full flex-col items-center justify-center overflow-hidden rounded-2xl p-6 text-center", getNestedCardBg(background), getNestedCardTextColor(background)), children: [
|
|
100446
100287
|
/* @__PURE__ */ jsx(
|
|
100447
100288
|
motion.div,
|
|
@@ -100474,7 +100315,7 @@ var StepperContent = React25.memo(({ step, optixFlowConfig, imageClassName, desc
|
|
|
100474
100315
|
)
|
|
100475
100316
|
] });
|
|
100476
100317
|
});
|
|
100477
|
-
var NavButtons =
|
|
100318
|
+
var NavButtons = React28.memo(({ handlePrev, handleNext }) => /* @__PURE__ */ jsxs("div", { className: "flex w-full justify-end gap-3 tracking-tight", children: [
|
|
100478
100319
|
/* @__PURE__ */ jsxs(
|
|
100479
100320
|
Pressable,
|
|
100480
100321
|
{
|
|
@@ -100525,10 +100366,10 @@ function TimelineStepperAnimated({
|
|
|
100525
100366
|
}) {
|
|
100526
100367
|
const safeInitialStep = (steps?.length ?? 0) > 0 ? Math.max(0, Math.min(initialStep ?? 0, (steps?.length ?? 1) - 1)) : 0;
|
|
100527
100368
|
const [currentStep, setCurrentStep] = useState(safeInitialStep);
|
|
100528
|
-
const handleNext =
|
|
100369
|
+
const handleNext = React28.useCallback(() => {
|
|
100529
100370
|
setCurrentStep((prev) => Math.min(prev + 1, (steps?.length ?? 1) - 1));
|
|
100530
100371
|
}, [steps?.length]);
|
|
100531
|
-
const handlePrev =
|
|
100372
|
+
const handlePrev = React28.useCallback(() => {
|
|
100532
100373
|
setCurrentStep((prev) => Math.max(prev - 1, 0));
|
|
100533
100374
|
}, []);
|
|
100534
100375
|
const safeCurrentStep = (steps?.length ?? 0) > 0 ? Math.max(0, Math.min(currentStep, (steps?.length ?? 1) - 1)) : 0;
|
|
@@ -101237,7 +101078,7 @@ function TimelineTabbedPhases({
|
|
|
101237
101078
|
style,
|
|
101238
101079
|
optixFlowConfig
|
|
101239
101080
|
}) {
|
|
101240
|
-
const renderDownloadButton =
|
|
101081
|
+
const renderDownloadButton = React28.useMemo(() => {
|
|
101241
101082
|
if (downloadSlot) {
|
|
101242
101083
|
return downloadSlot;
|
|
101243
101084
|
}
|
|
@@ -101457,7 +101298,7 @@ function TimelineProductLaunch({
|
|
|
101457
101298
|
id,
|
|
101458
101299
|
style
|
|
101459
101300
|
}) {
|
|
101460
|
-
const renderCta =
|
|
101301
|
+
const renderCta = React28.useMemo(() => {
|
|
101461
101302
|
if (ctaSlot) {
|
|
101462
101303
|
return ctaSlot;
|
|
101463
101304
|
}
|
|
@@ -101922,9 +101763,9 @@ function LinkTreeBlock({
|
|
|
101922
101763
|
}) {
|
|
101923
101764
|
const resolvedBackground = background;
|
|
101924
101765
|
const resolvedPattern = pattern ?? backgroundPattern;
|
|
101925
|
-
const [lightboxOpen, setLightboxOpen] =
|
|
101926
|
-
const [lightboxIndex, setLightboxIndex] =
|
|
101927
|
-
const lightboxItems =
|
|
101766
|
+
const [lightboxOpen, setLightboxOpen] = React28.useState(false);
|
|
101767
|
+
const [lightboxIndex, setLightboxIndex] = React28.useState(0);
|
|
101768
|
+
const lightboxItems = React28.useMemo(() => {
|
|
101928
101769
|
if (!mediaGallery || mediaGallery.length === 0) return [];
|
|
101929
101770
|
return mediaGallery.slice(0, mediaGalleryLimit).map((item, index) => ({
|
|
101930
101771
|
id: item.id ?? `media-${index}`,
|
|
@@ -101936,11 +101777,11 @@ function LinkTreeBlock({
|
|
|
101936
101777
|
share: true
|
|
101937
101778
|
}));
|
|
101938
101779
|
}, [mediaGallery, mediaGalleryLimit]);
|
|
101939
|
-
const handleMediaClick =
|
|
101780
|
+
const handleMediaClick = React28.useCallback((index) => {
|
|
101940
101781
|
setLightboxIndex(index);
|
|
101941
101782
|
setLightboxOpen(true);
|
|
101942
101783
|
}, []);
|
|
101943
|
-
const handleLightboxClose =
|
|
101784
|
+
const handleLightboxClose = React28.useCallback(() => {
|
|
101944
101785
|
setLightboxOpen(false);
|
|
101945
101786
|
}, []);
|
|
101946
101787
|
const resolveImage = (value, fallbackAlt) => {
|
|
@@ -101952,7 +101793,7 @@ function LinkTreeBlock({
|
|
|
101952
101793
|
};
|
|
101953
101794
|
const nameForAlt = typeof brandName === "string" ? brandName : "Brand avatar";
|
|
101954
101795
|
const resolvedAvatar = resolveImage(brandAvatar || brandLogo, nameForAlt) || resolveImage(blockBrandedIconsAndPlaceholders.avatar1, nameForAlt);
|
|
101955
|
-
const renderBrandHeader =
|
|
101796
|
+
const renderBrandHeader = React28.useMemo(() => {
|
|
101956
101797
|
if (brandSlot) return brandSlot;
|
|
101957
101798
|
return /* @__PURE__ */ jsxs(
|
|
101958
101799
|
"div",
|
|
@@ -102039,7 +101880,7 @@ function LinkTreeBlock({
|
|
|
102039
101880
|
brandTagline,
|
|
102040
101881
|
taglineClassName
|
|
102041
101882
|
]);
|
|
102042
|
-
const renderLinks =
|
|
101883
|
+
const renderLinks = React28.useMemo(() => {
|
|
102043
101884
|
if (linksSlot) return linksSlot;
|
|
102044
101885
|
if (!links || links.length === 0) return null;
|
|
102045
101886
|
return /* @__PURE__ */ jsx("div", { className: cn("space-y-3", linksClassName), children: links.map((link, index) => {
|
|
@@ -102156,7 +101997,7 @@ function LinkTreeBlock({
|
|
|
102156
101997
|
linkBadgeClassName,
|
|
102157
101998
|
linkChevronClassName
|
|
102158
101999
|
]);
|
|
102159
|
-
const renderMediaGallery =
|
|
102000
|
+
const renderMediaGallery = React28.useMemo(() => {
|
|
102160
102001
|
if (mediaGallerySlot) return mediaGallerySlot;
|
|
102161
102002
|
if (!mediaGallery || mediaGallery.length === 0) return null;
|
|
102162
102003
|
const items = mediaGallery.slice(0, mediaGalleryLimit);
|
|
@@ -102270,7 +102111,7 @@ function LinkTreeBlock({
|
|
|
102270
102111
|
mediaGalleryOverlayClassName,
|
|
102271
102112
|
mediaGalleryPlayIconClassName
|
|
102272
102113
|
]);
|
|
102273
|
-
const renderSocialLinks =
|
|
102114
|
+
const renderSocialLinks = React28.useMemo(() => {
|
|
102274
102115
|
if (socialLinksSlot) return socialLinksSlot;
|
|
102275
102116
|
if (!socialLinks || socialLinks.length === 0) return null;
|
|
102276
102117
|
return /* @__PURE__ */ jsx(
|
|
@@ -102316,7 +102157,7 @@ function LinkTreeBlock({
|
|
|
102316
102157
|
socialIconClassName,
|
|
102317
102158
|
socialLinkClassName
|
|
102318
102159
|
]);
|
|
102319
|
-
const renderFooter =
|
|
102160
|
+
const renderFooter = React28.useMemo(() => {
|
|
102320
102161
|
if (footerSlot) return footerSlot;
|
|
102321
102162
|
if (!footerAction) return null;
|
|
102322
102163
|
const resolvedFooterAction = footerAction;
|
|
@@ -105215,11 +105056,16 @@ var BLOCK_REGISTRY = {
|
|
|
105215
105056
|
props: "ContactCardProps",
|
|
105216
105057
|
exampleUsage: `
|
|
105217
105058
|
<ContactCard
|
|
105218
|
-
heading="Get
|
|
105219
|
-
description="We'd love to hear from you"
|
|
105220
|
-
formHeading="Contact us"
|
|
105059
|
+
heading="Get In Touch"
|
|
105060
|
+
description="We'd love to hear from you. Send us a message and we'll respond as soon as possible."
|
|
105221
105061
|
buttonText="Send Message"
|
|
105222
|
-
|
|
105062
|
+
contactOptions={[
|
|
105063
|
+
{ icon: "Phone", info: "+1 (555) 987-6543", href: "tel:+15559876543" },
|
|
105064
|
+
{ icon: "Mail", info: "support@example.com", href: "mailto:support@example.com" },
|
|
105065
|
+
{ icon: "MapPin", info: "456 Business Ave, New York, NY 10001" },
|
|
105066
|
+
{ icon: "Clock", info: "Mon-Fri: 9 AM - 6 PM EST" },
|
|
105067
|
+
]}
|
|
105068
|
+
formEngineSetup={{ formConfig: { endpoint: "/api/contact", format: "json" } }}
|
|
105223
105069
|
/>
|
|
105224
105070
|
`.trim()
|
|
105225
105071
|
},
|
|
@@ -105320,7 +105166,7 @@ var BLOCK_REGISTRY = {
|
|
|
105320
105166
|
heading="Contact Us"
|
|
105321
105167
|
description="Any questions or remarks? Just write us a message!"
|
|
105322
105168
|
buttonText="Send Message"
|
|
105323
|
-
|
|
105169
|
+
formEngineSetup={{ formConfig: { endpoint: "/api/contact", format: "json" } }}
|
|
105324
105170
|
/>
|
|
105325
105171
|
`.trim()
|
|
105326
105172
|
},
|
|
@@ -105371,7 +105217,7 @@ var BLOCK_REGISTRY = {
|
|
|
105371
105217
|
heading="Emergency Contact"
|
|
105372
105218
|
description="We're here to help 24/7"
|
|
105373
105219
|
buttonText="Submit Emergency Request"
|
|
105374
|
-
|
|
105220
|
+
formEngineSetup={{ formConfig: { endpoint: "/api/emergency", format: "json" } }}
|
|
105375
105221
|
/>
|
|
105376
105222
|
`.trim()
|
|
105377
105223
|
},
|
|
@@ -105403,7 +105249,16 @@ var BLOCK_REGISTRY = {
|
|
|
105403
105249
|
id: "contact-faq",
|
|
105404
105250
|
name: "Contact FAQ",
|
|
105405
105251
|
description: "A two-column contact form with an FAQ accordion sidebar. Displays frequently asked questions alongside a contact form so visitors can find answers before submitting inquiries. Falls back to a single-column centered layout when no FAQ items are provided.",
|
|
105406
|
-
semanticTags: [
|
|
105252
|
+
semanticTags: [
|
|
105253
|
+
"contact",
|
|
105254
|
+
"faq",
|
|
105255
|
+
"questions",
|
|
105256
|
+
"inquiry",
|
|
105257
|
+
"form",
|
|
105258
|
+
"support",
|
|
105259
|
+
"accordion",
|
|
105260
|
+
"two-column"
|
|
105261
|
+
],
|
|
105407
105262
|
category: "contact",
|
|
105408
105263
|
component: ContactFaq,
|
|
105409
105264
|
props: "ContactFaqProps",
|
|
@@ -105496,17 +105351,29 @@ var BLOCK_REGISTRY = {
|
|
|
105496
105351
|
"contact-image": {
|
|
105497
105352
|
id: "contact-image",
|
|
105498
105353
|
name: "Contact Image",
|
|
105499
|
-
description: "
|
|
105500
|
-
semanticTags: [
|
|
105354
|
+
description: "Split-layout contact form with an image panel featuring overlay contact items (phone, email, etc.) on the left and a form with heading on the right. Modern, professional design with motion animations.",
|
|
105355
|
+
semanticTags: [
|
|
105356
|
+
"contact",
|
|
105357
|
+
"form",
|
|
105358
|
+
"image",
|
|
105359
|
+
"split-layout",
|
|
105360
|
+
"overlay",
|
|
105361
|
+
"modern"
|
|
105362
|
+
],
|
|
105501
105363
|
category: "contact",
|
|
105502
105364
|
component: ContactImage,
|
|
105503
105365
|
props: "ContactImageProps",
|
|
105504
105366
|
exampleUsage: `
|
|
105505
105367
|
<ContactImage
|
|
105506
|
-
|
|
105507
|
-
|
|
105508
|
-
|
|
105509
|
-
|
|
105368
|
+
eyebrow="Get in Touch"
|
|
105369
|
+
heading="Contact Us"
|
|
105370
|
+
description="We'd love to hear from you."
|
|
105371
|
+
image={{ src: "/office.jpg", alt: "Our office" }}
|
|
105372
|
+
contactOverlays={[
|
|
105373
|
+
{ icon: "lucide/phone", label: "Phone", title: "+1 (555) 987-6543", href: "tel:+15559876543" },
|
|
105374
|
+
{ icon: "lucide/mail", label: "Email", title: "support@example.com", href: "mailto:support@example.com" },
|
|
105375
|
+
]}
|
|
105376
|
+
formEngineSetup={{ formConfig: { endpoint: "/api/contact", format: "json" } }}
|
|
105510
105377
|
/>
|
|
105511
105378
|
`.trim()
|
|
105512
105379
|
},
|