@opensite/ui 2.1.3 → 2.1.5
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-culture-tabs.cjs +931 -835
- package/dist/about-culture-tabs.js +930 -834
- package/dist/components.cjs +197 -104
- package/dist/components.js +197 -104
- package/dist/contact-faq.cjs +39 -47
- package/dist/contact-faq.d.cts +4 -42
- package/dist/contact-faq.d.ts +4 -42
- package/dist/contact-faq.js +39 -44
- package/dist/contact-vendor.cjs +57 -60
- package/dist/contact-vendor.d.cts +7 -37
- package/dist/contact-vendor.d.ts +7 -37
- package/dist/contact-vendor.js +42 -60
- package/dist/hero-newsletter-minimal.cjs +71 -95
- package/dist/hero-newsletter-minimal.d.cts +4 -28
- package/dist/hero-newsletter-minimal.d.ts +4 -28
- package/dist/hero-newsletter-minimal.js +72 -96
- package/dist/hero-saas-dashboard-preview.cjs +4 -4
- package/dist/hero-saas-dashboard-preview.js +4 -4
- package/dist/index.cjs +196 -103
- package/dist/index.js +196 -103
- package/dist/registry.cjs +1936 -1956
- package/dist/registry.js +696 -716
- package/package.json +2 -2
package/dist/registry.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import * as
|
|
2
|
-
import
|
|
1
|
+
import * as React25 from 'react';
|
|
2
|
+
import React25__default, { Fragment, createContext, useMemo, forwardRef, useCallback, useState, useRef, useEffect, 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 = React25__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 = React25__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 = React25.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 = React25.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 = React25.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 = React25.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 = React25.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 = React25.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] = React25.useState(
|
|
2332
2332
|
() => normalizeIndex(startIndex, images.length)
|
|
2333
2333
|
);
|
|
2334
|
-
const handleNext =
|
|
2334
|
+
const handleNext = React25.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 = React25.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
|
+
React25.useEffect(() => {
|
|
2351
2351
|
if (!hasImages) return;
|
|
2352
2352
|
setCurrentIndex(normalizeIndex(startIndex, images.length));
|
|
2353
2353
|
}, [startIndex, images.length, hasImages]);
|
|
2354
|
-
|
|
2354
|
+
React25.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
|
+
React25.useEffect(() => {
|
|
2369
2369
|
if (!autoplay || images.length < 2) return;
|
|
2370
2370
|
const interval = window.setInterval(handleNext, autoplayIntervalMs);
|
|
2371
2371
|
return () => window.clearInterval(interval);
|
|
@@ -2650,7 +2650,7 @@ var platformIconMap = {
|
|
|
2650
2650
|
dribbble: "cib/dribbble",
|
|
2651
2651
|
unknown: "icon-park-solid/circular-connection"
|
|
2652
2652
|
};
|
|
2653
|
-
var SocialLinkIcon =
|
|
2653
|
+
var SocialLinkIcon = React25.forwardRef(
|
|
2654
2654
|
({
|
|
2655
2655
|
platformName,
|
|
2656
2656
|
label,
|
|
@@ -2663,13 +2663,13 @@ var SocialLinkIcon = React23.forwardRef(
|
|
|
2663
2663
|
...pressableProps
|
|
2664
2664
|
}, ref) => {
|
|
2665
2665
|
const platform = usePlatformFromUrl(href);
|
|
2666
|
-
const smartPlatformName =
|
|
2666
|
+
const smartPlatformName = React25.useMemo(() => {
|
|
2667
2667
|
return platform || platformName;
|
|
2668
2668
|
}, [platform, platformName]);
|
|
2669
|
-
const iconName =
|
|
2669
|
+
const iconName = React25.useMemo(() => {
|
|
2670
2670
|
return iconNameOverride || platformIconMap[smartPlatformName];
|
|
2671
2671
|
}, [iconNameOverride, smartPlatformName]);
|
|
2672
|
-
const accessibleLabel =
|
|
2672
|
+
const accessibleLabel = React25.useMemo(() => {
|
|
2673
2673
|
return label || platformName;
|
|
2674
2674
|
}, [label, platformName]);
|
|
2675
2675
|
return /* @__PURE__ */ jsx(
|
|
@@ -3094,7 +3094,7 @@ function AboutExpandableValues({
|
|
|
3094
3094
|
pattern,
|
|
3095
3095
|
patternOpacity
|
|
3096
3096
|
}) {
|
|
3097
|
-
const [expandedValue, setExpandedValue] =
|
|
3097
|
+
const [expandedValue, setExpandedValue] = React25.useState(null);
|
|
3098
3098
|
const toggleExpand = useCallback((id) => {
|
|
3099
3099
|
setExpandedValue((prev) => prev === id ? null : id);
|
|
3100
3100
|
}, []);
|
|
@@ -3348,7 +3348,7 @@ function CommunityInitiatives({
|
|
|
3348
3348
|
pattern,
|
|
3349
3349
|
patternOpacity
|
|
3350
3350
|
}) {
|
|
3351
|
-
const [activeCategory, setActiveCategory] =
|
|
3351
|
+
const [activeCategory, setActiveCategory] = React25.useState(
|
|
3352
3352
|
categories?.[0]?.id || ""
|
|
3353
3353
|
);
|
|
3354
3354
|
const currentCategory = categories?.find((category) => category.id === activeCategory) || categories?.[0];
|
|
@@ -3604,7 +3604,7 @@ function AboutCultureTabs({
|
|
|
3604
3604
|
ctaImages,
|
|
3605
3605
|
ctaImagesSlot,
|
|
3606
3606
|
className,
|
|
3607
|
-
containerClassName,
|
|
3607
|
+
containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
|
|
3608
3608
|
headerClassName,
|
|
3609
3609
|
badgeClassName,
|
|
3610
3610
|
headingClassName,
|
|
@@ -3616,45 +3616,33 @@ function AboutCultureTabs({
|
|
|
3616
3616
|
actionsClassName,
|
|
3617
3617
|
optixFlowConfig,
|
|
3618
3618
|
background,
|
|
3619
|
-
spacing,
|
|
3619
|
+
spacing = "xl",
|
|
3620
3620
|
pattern,
|
|
3621
3621
|
patternOpacity
|
|
3622
3622
|
}) {
|
|
3623
3623
|
const resolvedAspects = aspects ?? [];
|
|
3624
|
-
const [activeTab, setActiveTab] =
|
|
3625
|
-
|
|
3626
|
-
|
|
3627
|
-
if (!actions || actions.length === 0) return null;
|
|
3628
|
-
return actions.map((action, index) => {
|
|
3629
|
-
const { label, icon, iconAfter, children, className: actionClassName, ...pressableProps } = action;
|
|
3630
|
-
return /* @__PURE__ */ jsx(
|
|
3631
|
-
Pressable,
|
|
3632
|
-
{
|
|
3633
|
-
asButton: true,
|
|
3634
|
-
className: actionClassName,
|
|
3635
|
-
...pressableProps,
|
|
3636
|
-
children: children ?? /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
3637
|
-
icon,
|
|
3638
|
-
label,
|
|
3639
|
-
iconAfter
|
|
3640
|
-
] })
|
|
3641
|
-
},
|
|
3642
|
-
index
|
|
3643
|
-
);
|
|
3644
|
-
});
|
|
3645
|
-
}, [actionsSlot, actions]);
|
|
3624
|
+
const [activeTab, setActiveTab] = React25.useState(
|
|
3625
|
+
resolvedAspects[0]?.id || ""
|
|
3626
|
+
);
|
|
3646
3627
|
const ctaImagesContent = useMemo(() => {
|
|
3647
3628
|
if (ctaImagesSlot) return ctaImagesSlot;
|
|
3648
3629
|
if (!ctaImages || ctaImages.length === 0) return null;
|
|
3649
|
-
return ctaImages.map((src, i) => /* @__PURE__ */ jsx(
|
|
3650
|
-
|
|
3630
|
+
return ctaImages.map((src, i) => /* @__PURE__ */ jsx(
|
|
3631
|
+
"div",
|
|
3651
3632
|
{
|
|
3652
|
-
|
|
3653
|
-
|
|
3654
|
-
|
|
3655
|
-
|
|
3656
|
-
|
|
3657
|
-
|
|
3633
|
+
className: "relative aspect-square overflow-hidden rounded-md",
|
|
3634
|
+
children: /* @__PURE__ */ jsx(
|
|
3635
|
+
Img,
|
|
3636
|
+
{
|
|
3637
|
+
src,
|
|
3638
|
+
alt: "Team culture",
|
|
3639
|
+
className: "h-full w-full object-cover",
|
|
3640
|
+
optixFlowConfig
|
|
3641
|
+
}
|
|
3642
|
+
)
|
|
3643
|
+
},
|
|
3644
|
+
i
|
|
3645
|
+
));
|
|
3658
3646
|
}, [ctaImagesSlot, ctaImages, optixFlowConfig]);
|
|
3659
3647
|
return /* @__PURE__ */ jsxs(
|
|
3660
3648
|
Section,
|
|
@@ -3663,14 +3651,32 @@ function AboutCultureTabs({
|
|
|
3663
3651
|
spacing,
|
|
3664
3652
|
pattern,
|
|
3665
3653
|
patternOpacity,
|
|
3666
|
-
className
|
|
3654
|
+
className,
|
|
3667
3655
|
containerClassName,
|
|
3668
3656
|
children: [
|
|
3669
|
-
/* @__PURE__ */ jsxs(
|
|
3670
|
-
|
|
3671
|
-
|
|
3672
|
-
|
|
3673
|
-
|
|
3657
|
+
/* @__PURE__ */ jsxs(
|
|
3658
|
+
"div",
|
|
3659
|
+
{
|
|
3660
|
+
className: cn(
|
|
3661
|
+
"mx-auto mb-12 max-w-full md:max-w-md space-y-4 text-center flex flex-col items-center justify-center",
|
|
3662
|
+
headerClassName
|
|
3663
|
+
),
|
|
3664
|
+
children: [
|
|
3665
|
+
badgeText && (typeof badgeText === "string" ? /* @__PURE__ */ jsx(Badge, { className: cn("px-3 py-1", badgeClassName), children: badgeText }) : badgeText),
|
|
3666
|
+
heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
|
|
3667
|
+
"h2",
|
|
3668
|
+
{
|
|
3669
|
+
className: cn(
|
|
3670
|
+
"text-3xl font-bold tracking-tight md:text-4xl text-pretty",
|
|
3671
|
+
headingClassName
|
|
3672
|
+
),
|
|
3673
|
+
children: heading
|
|
3674
|
+
}
|
|
3675
|
+
) : heading),
|
|
3676
|
+
description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("text-balance", descriptionClassName), children: description }) : description)
|
|
3677
|
+
]
|
|
3678
|
+
}
|
|
3679
|
+
),
|
|
3674
3680
|
aspectsSlot ? aspectsSlot : resolvedAspects.length > 0 ? /* @__PURE__ */ jsxs(
|
|
3675
3681
|
Tabs,
|
|
3676
3682
|
{
|
|
@@ -3683,80 +3689,103 @@ function AboutCultureTabs({
|
|
|
3683
3689
|
TabsTrigger,
|
|
3684
3690
|
{
|
|
3685
3691
|
value: aspect.id,
|
|
3686
|
-
className: cn("px-3 py-2.5"
|
|
3692
|
+
className: cn("px-3 py-2.5"),
|
|
3687
3693
|
children: aspect.title
|
|
3688
3694
|
},
|
|
3689
3695
|
aspect.id
|
|
3690
3696
|
)) }) }),
|
|
3691
|
-
resolvedAspects.map((aspect) => /* @__PURE__ */ jsxs(
|
|
3692
|
-
|
|
3693
|
-
|
|
3694
|
-
|
|
3695
|
-
|
|
3696
|
-
|
|
3697
|
-
|
|
3698
|
-
|
|
3699
|
-
|
|
3700
|
-
|
|
3701
|
-
|
|
3702
|
-
|
|
3703
|
-
|
|
3704
|
-
|
|
3705
|
-
|
|
3706
|
-
|
|
3707
|
-
|
|
3708
|
-
|
|
3709
|
-
|
|
3697
|
+
resolvedAspects.map((aspect) => /* @__PURE__ */ jsxs(
|
|
3698
|
+
TabsContent,
|
|
3699
|
+
{
|
|
3700
|
+
value: aspect.id,
|
|
3701
|
+
className: "space-y-8",
|
|
3702
|
+
children: [
|
|
3703
|
+
/* @__PURE__ */ jsxs("div", { className: "grid gap-6 md:grid-cols-2", children: [
|
|
3704
|
+
/* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
|
|
3705
|
+
/* @__PURE__ */ jsx("h3", { className: "text-2xl font-bold tracking-tight", children: aspect.title }),
|
|
3706
|
+
/* @__PURE__ */ jsx("p", { className: cn("leading-relaxed"), children: aspect.description })
|
|
3707
|
+
] }),
|
|
3708
|
+
/* @__PURE__ */ jsx(Card, { className: "border-0 p-0", children: /* @__PURE__ */ jsxs(CardContent, { className: "space-y-4 p-6 pt-6", children: [
|
|
3709
|
+
/* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/quote", size: 32 }),
|
|
3710
|
+
/* @__PURE__ */ jsxs("p", { className: "italic", children: [
|
|
3711
|
+
'"',
|
|
3712
|
+
aspect.testimonial.quote,
|
|
3713
|
+
'"'
|
|
3714
|
+
] }),
|
|
3715
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3 pt-2", children: [
|
|
3716
|
+
/* @__PURE__ */ jsx("div", { className: "relative h-10 w-10 overflow-hidden rounded-full", children: /* @__PURE__ */ jsx(
|
|
3717
|
+
Img,
|
|
3718
|
+
{
|
|
3719
|
+
src: aspect.testimonial.avatar,
|
|
3720
|
+
alt: aspect.testimonial.author,
|
|
3721
|
+
className: "h-full w-full object-cover",
|
|
3722
|
+
optixFlowConfig
|
|
3723
|
+
}
|
|
3724
|
+
) }),
|
|
3725
|
+
/* @__PURE__ */ jsxs("div", { children: [
|
|
3726
|
+
/* @__PURE__ */ jsx("h4", { className: "text-sm font-medium", children: aspect.testimonial.author }),
|
|
3727
|
+
/* @__PURE__ */ jsx("p", { className: "text-xs", children: aspect.testimonial.role })
|
|
3728
|
+
] })
|
|
3729
|
+
] })
|
|
3730
|
+
] }) })
|
|
3710
3731
|
] }),
|
|
3711
|
-
/* @__PURE__ */
|
|
3712
|
-
|
|
3713
|
-
Img,
|
|
3714
|
-
{
|
|
3715
|
-
src: aspect.testimonial.avatar,
|
|
3716
|
-
alt: aspect.testimonial.author,
|
|
3717
|
-
className: "h-full w-full object-cover",
|
|
3718
|
-
optixFlowConfig
|
|
3719
|
-
}
|
|
3720
|
-
) }),
|
|
3721
|
-
/* @__PURE__ */ jsxs("div", { children: [
|
|
3722
|
-
/* @__PURE__ */ jsx("h4", { className: "text-sm font-medium", children: aspect.testimonial.author }),
|
|
3723
|
-
/* @__PURE__ */ jsx("p", { className: cn("text-xs", getTextColor(background, "muted")), children: aspect.testimonial.role })
|
|
3724
|
-
] })
|
|
3725
|
-
] })
|
|
3726
|
-
] }) })
|
|
3727
|
-
] }),
|
|
3728
|
-
/* @__PURE__ */ jsx("div", { className: "grid grid-cols-1 gap-4 md:grid-cols-3", children: aspect.images.map((image, idx) => /* @__PURE__ */ jsx(
|
|
3729
|
-
"div",
|
|
3730
|
-
{
|
|
3731
|
-
className: "relative aspect-[4/3] overflow-hidden rounded-lg",
|
|
3732
|
-
children: /* @__PURE__ */ jsx(
|
|
3733
|
-
Img,
|
|
3732
|
+
/* @__PURE__ */ jsx("div", { className: "grid grid-cols-1 gap-4 md:grid-cols-3", children: aspect.images.map((image, idx) => /* @__PURE__ */ jsx(
|
|
3733
|
+
"div",
|
|
3734
3734
|
{
|
|
3735
|
-
|
|
3736
|
-
|
|
3737
|
-
|
|
3738
|
-
|
|
3739
|
-
|
|
3740
|
-
|
|
3741
|
-
|
|
3742
|
-
|
|
3743
|
-
|
|
3744
|
-
|
|
3735
|
+
className: "relative aspect-4/3 overflow-hidden rounded-lg",
|
|
3736
|
+
children: /* @__PURE__ */ jsx(
|
|
3737
|
+
Img,
|
|
3738
|
+
{
|
|
3739
|
+
src: image,
|
|
3740
|
+
alt: `${aspect.title} culture`,
|
|
3741
|
+
className: "h-full w-full transform object-cover transition-transform duration-500 hover:scale-105",
|
|
3742
|
+
optixFlowConfig
|
|
3743
|
+
}
|
|
3744
|
+
)
|
|
3745
|
+
},
|
|
3746
|
+
idx
|
|
3747
|
+
)) })
|
|
3748
|
+
]
|
|
3749
|
+
},
|
|
3750
|
+
aspect.id
|
|
3751
|
+
))
|
|
3745
3752
|
]
|
|
3746
3753
|
}
|
|
3747
3754
|
) : null,
|
|
3748
|
-
/* @__PURE__ */ jsxs(
|
|
3749
|
-
|
|
3750
|
-
|
|
3751
|
-
|
|
3752
|
-
|
|
3753
|
-
|
|
3754
|
-
|
|
3755
|
-
|
|
3756
|
-
|
|
3757
|
-
|
|
3758
|
-
|
|
3759
|
-
|
|
3755
|
+
/* @__PURE__ */ jsxs(
|
|
3756
|
+
"div",
|
|
3757
|
+
{
|
|
3758
|
+
className: cn(
|
|
3759
|
+
"relative mt-16 rounded-xl border p-8 md:p-12",
|
|
3760
|
+
ctaClassName
|
|
3761
|
+
),
|
|
3762
|
+
children: [
|
|
3763
|
+
/* @__PURE__ */ jsxs("div", { className: "grid items-center gap-8 md:grid-cols-2", children: [
|
|
3764
|
+
/* @__PURE__ */ jsxs("div", { children: [
|
|
3765
|
+
ctaHeading && (typeof ctaHeading === "string" ? /* @__PURE__ */ jsx(
|
|
3766
|
+
"h3",
|
|
3767
|
+
{
|
|
3768
|
+
className: cn("mb-4 text-2xl font-bold", ctaHeadingClassName),
|
|
3769
|
+
children: ctaHeading
|
|
3770
|
+
}
|
|
3771
|
+
) : ctaHeading),
|
|
3772
|
+
ctaDescription && (typeof ctaDescription === "string" ? /* @__PURE__ */ jsx("p", { className: cn("mb-6", ctaDescriptionClassName), children: ctaDescription }) : ctaDescription),
|
|
3773
|
+
/* @__PURE__ */ jsx(
|
|
3774
|
+
BlockActions,
|
|
3775
|
+
{
|
|
3776
|
+
actions,
|
|
3777
|
+
actionsSlot,
|
|
3778
|
+
actionsClassName
|
|
3779
|
+
}
|
|
3780
|
+
)
|
|
3781
|
+
] }),
|
|
3782
|
+
/* @__PURE__ */ jsx("div", { className: "grid grid-cols-3 gap-2", children: ctaImagesContent })
|
|
3783
|
+
] }),
|
|
3784
|
+
/* @__PURE__ */ jsx("div", { className: "absolute -left-5 -top-5 h-10 w-10 rounded-full bg-primary/10" }),
|
|
3785
|
+
/* @__PURE__ */ jsx("div", { className: "absolute -bottom-5 -right-5 h-10 w-10 rounded-full bg-primary/10" })
|
|
3786
|
+
]
|
|
3787
|
+
}
|
|
3788
|
+
)
|
|
3760
3789
|
]
|
|
3761
3790
|
}
|
|
3762
3791
|
);
|
|
@@ -4434,8 +4463,8 @@ var BrandAttribution = ({
|
|
|
4434
4463
|
}
|
|
4435
4464
|
const { prefix = "", anchorText, href, suffix = "" } = options[optionIndex];
|
|
4436
4465
|
const ContainerEl = variant;
|
|
4437
|
-
const [trackedHref, setTrackedHref] =
|
|
4438
|
-
|
|
4466
|
+
const [trackedHref, setTrackedHref] = React25.useState(href);
|
|
4467
|
+
React25.useEffect(() => {
|
|
4439
4468
|
setTrackedHref(buildTrackedHref(href));
|
|
4440
4469
|
}, [href]);
|
|
4441
4470
|
return /* @__PURE__ */ jsxs(ContainerEl, { className: containerClassName, children: [
|
|
@@ -4578,7 +4607,7 @@ function FooterSocialNewsletter({
|
|
|
4578
4607
|
onError,
|
|
4579
4608
|
uploadTokens
|
|
4580
4609
|
});
|
|
4581
|
-
const renderForm =
|
|
4610
|
+
const renderForm = React25.useMemo(() => {
|
|
4582
4611
|
if (formSlot) return formSlot;
|
|
4583
4612
|
const defaultButtonAction = {
|
|
4584
4613
|
label: "Subscribe",
|
|
@@ -4912,7 +4941,7 @@ function FooterSimpleCentered({
|
|
|
4912
4941
|
]);
|
|
4913
4942
|
const bottomLinksContent = useMemo(() => {
|
|
4914
4943
|
if (!bottomLinks || bottomLinks.length === 0) return null;
|
|
4915
|
-
return bottomLinks.map((link, idx) => /* @__PURE__ */ jsx(
|
|
4944
|
+
return bottomLinks.map((link, idx) => /* @__PURE__ */ jsx(React25.Fragment, { children: /* @__PURE__ */ jsx(
|
|
4916
4945
|
Pressable,
|
|
4917
4946
|
{
|
|
4918
4947
|
href: link.href,
|
|
@@ -7537,7 +7566,7 @@ function AboutInteractiveTabs({
|
|
|
7537
7566
|
pattern,
|
|
7538
7567
|
patternOpacity
|
|
7539
7568
|
}) {
|
|
7540
|
-
const [activeTab, setActiveTab] =
|
|
7569
|
+
const [activeTab, setActiveTab] = React25.useState(tabs?.[0]?.id ?? "");
|
|
7541
7570
|
const activeContent = useMemo(() => {
|
|
7542
7571
|
return tabs?.find((tab) => tab.id === activeTab)?.content;
|
|
7543
7572
|
}, [tabs, activeTab]);
|
|
@@ -11562,7 +11591,7 @@ function CtaVideoBackgroundHero({
|
|
|
11562
11591
|
pattern,
|
|
11563
11592
|
patternOpacity
|
|
11564
11593
|
}) {
|
|
11565
|
-
const [isModalOpen, setIsModalOpen] =
|
|
11594
|
+
const [isModalOpen, setIsModalOpen] = React25.useState(false);
|
|
11566
11595
|
const handleOpenModal = () => {
|
|
11567
11596
|
setIsModalOpen(true);
|
|
11568
11597
|
onModalOpen?.();
|
|
@@ -11750,7 +11779,7 @@ function CtaWorkflowTabs({
|
|
|
11750
11779
|
patternOpacity,
|
|
11751
11780
|
optixFlowConfig
|
|
11752
11781
|
}) {
|
|
11753
|
-
const [activeTab, setActiveTab] =
|
|
11782
|
+
const [activeTab, setActiveTab] = React25.useState(tabs?.[0]?.id || "");
|
|
11754
11783
|
const activeTabData = tabs?.find((tab) => tab.id === activeTab) || tabs?.[0];
|
|
11755
11784
|
const actionsContent = useMemo(() => {
|
|
11756
11785
|
if (actionsSlot) return actionsSlot;
|
|
@@ -12363,7 +12392,7 @@ function ContactFloatingBanner({
|
|
|
12363
12392
|
pattern,
|
|
12364
12393
|
patternOpacity
|
|
12365
12394
|
}) {
|
|
12366
|
-
const actionsContent =
|
|
12395
|
+
const actionsContent = React25.useMemo(() => {
|
|
12367
12396
|
if (actionsSlot) return actionsSlot;
|
|
12368
12397
|
if (actions && actions.length > 0) {
|
|
12369
12398
|
return actions.map((action, index) => {
|
|
@@ -12805,7 +12834,7 @@ function ContactCard({
|
|
|
12805
12834
|
onSuccess,
|
|
12806
12835
|
onError
|
|
12807
12836
|
});
|
|
12808
|
-
const actionsContent =
|
|
12837
|
+
const actionsContent = React25.useMemo(() => {
|
|
12809
12838
|
if (actionsSlot) return actionsSlot;
|
|
12810
12839
|
if (actions && actions.length > 0) {
|
|
12811
12840
|
return actions.map((action, index) => {
|
|
@@ -13397,7 +13426,7 @@ function ContactCatering({
|
|
|
13397
13426
|
onSuccess,
|
|
13398
13427
|
onError
|
|
13399
13428
|
});
|
|
13400
|
-
const actionsContent =
|
|
13429
|
+
const actionsContent = React25.useMemo(() => {
|
|
13401
13430
|
if (actionsSlot) return actionsSlot;
|
|
13402
13431
|
if (actions && actions.length > 0) {
|
|
13403
13432
|
return actions.map((action, index) => {
|
|
@@ -13641,7 +13670,7 @@ function ContactConsultation({
|
|
|
13641
13670
|
onSuccess,
|
|
13642
13671
|
onError
|
|
13643
13672
|
});
|
|
13644
|
-
const actionsContent =
|
|
13673
|
+
const actionsContent = React25.useMemo(() => {
|
|
13645
13674
|
if (actionsSlot) return actionsSlot;
|
|
13646
13675
|
if (actions && actions.length > 0) {
|
|
13647
13676
|
return actions.map((action, index) => {
|
|
@@ -13839,7 +13868,7 @@ function ContactDark({
|
|
|
13839
13868
|
resetOnSuccess: formConfig?.resetOnSuccess !== false,
|
|
13840
13869
|
uploadTokens
|
|
13841
13870
|
});
|
|
13842
|
-
const actionsContent =
|
|
13871
|
+
const actionsContent = React25.useMemo(() => {
|
|
13843
13872
|
if (actionsSlot) return actionsSlot;
|
|
13844
13873
|
if (actions && actions.length > 0) {
|
|
13845
13874
|
return actions.map((action, index) => {
|
|
@@ -13869,7 +13898,7 @@ function ContactDark({
|
|
|
13869
13898
|
}
|
|
13870
13899
|
return null;
|
|
13871
13900
|
}, [actionsSlot, actions]);
|
|
13872
|
-
const contactOptionsContent =
|
|
13901
|
+
const contactOptionsContent = React25.useMemo(() => {
|
|
13873
13902
|
if (contactOptionsSlot) return contactOptionsSlot;
|
|
13874
13903
|
if (contactOptions && contactOptions.length > 0) {
|
|
13875
13904
|
return contactOptions.map((option, key) => /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3", children: [
|
|
@@ -13893,7 +13922,7 @@ function ContactDark({
|
|
|
13893
13922
|
}
|
|
13894
13923
|
return null;
|
|
13895
13924
|
}, [contactOptionsSlot, contactOptions]);
|
|
13896
|
-
const socialLinksContent =
|
|
13925
|
+
const socialLinksContent = React25.useMemo(() => {
|
|
13897
13926
|
if (socialLinksSlot) return socialLinksSlot;
|
|
13898
13927
|
if (socialLinks && socialLinks.length > 0) {
|
|
13899
13928
|
return socialLinks.map((social, key) => /* @__PURE__ */ jsx(
|
|
@@ -14847,6 +14876,14 @@ function AccordionContent({
|
|
|
14847
14876
|
}
|
|
14848
14877
|
);
|
|
14849
14878
|
}
|
|
14879
|
+
var DEFAULT_STYLE_RULES = {
|
|
14880
|
+
formContainer: "",
|
|
14881
|
+
fieldsContainer: "",
|
|
14882
|
+
fieldClassName: "",
|
|
14883
|
+
formClassName: "space-y-6",
|
|
14884
|
+
successMessageClassName: "text-green-600 dark:text-green-400 mt-4 p-3 rounded-md bg-green-50 dark:bg-green-950/20",
|
|
14885
|
+
errorMessageClassName: "text-red-600 dark:text-red-400 mt-4 p-3 rounded-md bg-red-50 dark:bg-red-950/20"
|
|
14886
|
+
};
|
|
14850
14887
|
var DEFAULT_FORM_FIELDS11 = [
|
|
14851
14888
|
{
|
|
14852
14889
|
name: "name",
|
|
@@ -14891,8 +14928,7 @@ function ContactFaq({
|
|
|
14891
14928
|
items,
|
|
14892
14929
|
itemsSlot,
|
|
14893
14930
|
faqHeading,
|
|
14894
|
-
|
|
14895
|
-
successMessage = "Thank you! Your message has been sent successfully.",
|
|
14931
|
+
formEngineSetup,
|
|
14896
14932
|
className,
|
|
14897
14933
|
containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
|
|
14898
14934
|
headerClassName,
|
|
@@ -14901,7 +14937,6 @@ function ContactFaq({
|
|
|
14901
14937
|
cardClassName,
|
|
14902
14938
|
cardContentClassName,
|
|
14903
14939
|
formHeadingClassName,
|
|
14904
|
-
formClassName,
|
|
14905
14940
|
faqHeadingClassName,
|
|
14906
14941
|
faqContainerClassName,
|
|
14907
14942
|
accordionClassName,
|
|
@@ -14909,25 +14944,28 @@ function ContactFaq({
|
|
|
14909
14944
|
accordionTriggerClassName,
|
|
14910
14945
|
accordionContentClassName,
|
|
14911
14946
|
gridClassName,
|
|
14912
|
-
successMessageClassName,
|
|
14913
|
-
errorMessageClassName,
|
|
14914
14947
|
background,
|
|
14915
14948
|
spacing = "py-8 md:py-32",
|
|
14916
14949
|
pattern,
|
|
14917
|
-
patternOpacity
|
|
14918
|
-
formConfig,
|
|
14919
|
-
onSubmit,
|
|
14920
|
-
onSuccess,
|
|
14921
|
-
onError
|
|
14950
|
+
patternOpacity
|
|
14922
14951
|
}) {
|
|
14923
|
-
const {
|
|
14924
|
-
|
|
14925
|
-
|
|
14926
|
-
|
|
14927
|
-
|
|
14928
|
-
|
|
14929
|
-
|
|
14930
|
-
|
|
14952
|
+
const formStyleRules = React25.useMemo(() => {
|
|
14953
|
+
return {
|
|
14954
|
+
formContainer: formEngineSetup?.formLayoutSettings?.styleRules?.formContainer ?? DEFAULT_STYLE_RULES.formContainer,
|
|
14955
|
+
fieldsContainer: formEngineSetup?.formLayoutSettings?.styleRules?.fieldsContainer ?? DEFAULT_STYLE_RULES.fieldsContainer,
|
|
14956
|
+
fieldClassName: formEngineSetup?.formLayoutSettings?.styleRules?.fieldClassName ?? DEFAULT_STYLE_RULES.fieldClassName,
|
|
14957
|
+
formClassName: formEngineSetup?.formLayoutSettings?.styleRules?.formClassName ?? DEFAULT_STYLE_RULES.formClassName,
|
|
14958
|
+
successMessageClassName: formEngineSetup?.formLayoutSettings?.styleRules?.successMessageClassName ?? DEFAULT_STYLE_RULES.successMessageClassName,
|
|
14959
|
+
errorMessageClassName: formEngineSetup?.formLayoutSettings?.styleRules?.errorMessageClassName ?? DEFAULT_STYLE_RULES.errorMessageClassName
|
|
14960
|
+
};
|
|
14961
|
+
}, [formEngineSetup?.formLayoutSettings?.styleRules]);
|
|
14962
|
+
const formFields = React25.useMemo(() => {
|
|
14963
|
+
if (formEngineSetup && formEngineSetup?.fields && formEngineSetup?.fields?.length > 0) {
|
|
14964
|
+
return formEngineSetup.fields;
|
|
14965
|
+
} else {
|
|
14966
|
+
return DEFAULT_FORM_FIELDS11;
|
|
14967
|
+
}
|
|
14968
|
+
}, [formEngineSetup?.fields]);
|
|
14931
14969
|
const hasFaqItems = itemsSlot || items && items.length > 0;
|
|
14932
14970
|
const faqContent = useMemo(() => {
|
|
14933
14971
|
if (itemsSlot) return itemsSlot;
|
|
@@ -15022,40 +15060,25 @@ function ContactFaq({
|
|
|
15022
15060
|
children: formHeading
|
|
15023
15061
|
}
|
|
15024
15062
|
) : /* @__PURE__ */ jsx("div", { className: formHeadingClassName, children: formHeading })),
|
|
15025
|
-
/* @__PURE__ */ jsx(
|
|
15063
|
+
formEngineSetup ? /* @__PURE__ */ jsx(
|
|
15026
15064
|
FormEngine,
|
|
15027
15065
|
{
|
|
15028
|
-
|
|
15029
|
-
fields: formFields,
|
|
15066
|
+
...formEngineSetup,
|
|
15030
15067
|
formLayoutSettings: {
|
|
15068
|
+
...formEngineSetup.formLayoutSettings,
|
|
15031
15069
|
formLayout: "standard",
|
|
15032
15070
|
submitButtonSetup: {
|
|
15071
|
+
...formEngineSetup.formLayoutSettings?.submitButtonSetup,
|
|
15033
15072
|
submitLabel: /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
15034
15073
|
buttonIcon,
|
|
15035
15074
|
buttonText
|
|
15036
15075
|
] })
|
|
15037
15076
|
},
|
|
15038
|
-
styleRules:
|
|
15039
|
-
formClassName: cn("space-y-6", formClassName),
|
|
15040
|
-
successMessageClassName,
|
|
15041
|
-
errorMessageClassName
|
|
15042
|
-
}
|
|
15043
|
-
},
|
|
15044
|
-
successMessage,
|
|
15045
|
-
onSubmit,
|
|
15046
|
-
onSuccess: (data) => {
|
|
15047
|
-
resetUpload();
|
|
15048
|
-
onSuccess?.(data);
|
|
15077
|
+
styleRules: formStyleRules
|
|
15049
15078
|
},
|
|
15050
|
-
|
|
15051
|
-
resetOnSuccess: formConfig?.resetOnSuccess !== false,
|
|
15052
|
-
uploadTokens,
|
|
15053
|
-
uploadProgress,
|
|
15054
|
-
onFileUpload: uploadFiles,
|
|
15055
|
-
onFileRemove: removeFile,
|
|
15056
|
-
isUploading
|
|
15079
|
+
fields: formFields
|
|
15057
15080
|
}
|
|
15058
|
-
)
|
|
15081
|
+
) : null
|
|
15059
15082
|
] }) }),
|
|
15060
15083
|
hasFaqItems && /* @__PURE__ */ jsxs("div", { className: cn("relative", faqContainerClassName), children: [
|
|
15061
15084
|
faqHeading && (typeof faqHeading === "string" ? /* @__PURE__ */ jsx(
|
|
@@ -20718,6 +20741,14 @@ function ContactTenant({
|
|
|
20718
20741
|
}
|
|
20719
20742
|
);
|
|
20720
20743
|
}
|
|
20744
|
+
var DEFAULT_STYLE_RULES2 = {
|
|
20745
|
+
formContainer: "",
|
|
20746
|
+
fieldsContainer: "",
|
|
20747
|
+
fieldClassName: "",
|
|
20748
|
+
formClassName: "space-y-6",
|
|
20749
|
+
successMessageClassName: "text-green-600 dark:text-green-400 mt-4 p-3 rounded-md bg-green-50 dark:bg-green-950/20",
|
|
20750
|
+
errorMessageClassName: "text-red-600 dark:text-red-400 mt-4 p-3 rounded-md bg-red-50 dark:bg-red-950/20"
|
|
20751
|
+
};
|
|
20721
20752
|
var DEFAULT_FORM_FIELDS38 = [
|
|
20722
20753
|
{
|
|
20723
20754
|
name: "first_name",
|
|
@@ -20764,40 +20795,36 @@ var DEFAULT_FORM_FIELDS38 = [
|
|
|
20764
20795
|
function ContactVendor({
|
|
20765
20796
|
heading,
|
|
20766
20797
|
description,
|
|
20767
|
-
buttonText = "Submit",
|
|
20768
|
-
buttonIcon,
|
|
20769
|
-
actions,
|
|
20770
|
-
actionsSlot,
|
|
20771
|
-
formFields = DEFAULT_FORM_FIELDS38,
|
|
20772
|
-
successMessage = "Thank you! Your message has been sent successfully.",
|
|
20773
20798
|
className,
|
|
20799
|
+
formEngineSetup,
|
|
20774
20800
|
containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
|
|
20775
20801
|
headerClassName,
|
|
20776
20802
|
headingClassName,
|
|
20777
20803
|
descriptionClassName,
|
|
20778
20804
|
cardClassName,
|
|
20779
20805
|
cardContentClassName,
|
|
20780
|
-
|
|
20781
|
-
submitClassName,
|
|
20782
|
-
successMessageClassName,
|
|
20783
|
-
errorMessageClassName,
|
|
20784
|
-
background = "white",
|
|
20806
|
+
background,
|
|
20785
20807
|
spacing = "xl",
|
|
20786
20808
|
pattern,
|
|
20787
|
-
patternOpacity = 0.1
|
|
20788
|
-
formConfig,
|
|
20789
|
-
onSubmit,
|
|
20790
|
-
onSuccess,
|
|
20791
|
-
onError
|
|
20809
|
+
patternOpacity = 0.1
|
|
20792
20810
|
}) {
|
|
20793
|
-
const {
|
|
20794
|
-
|
|
20795
|
-
|
|
20796
|
-
|
|
20797
|
-
|
|
20798
|
-
|
|
20799
|
-
|
|
20800
|
-
|
|
20811
|
+
const formStyleRules = React25.useMemo(() => {
|
|
20812
|
+
return {
|
|
20813
|
+
formContainer: formEngineSetup?.formLayoutSettings?.styleRules?.formContainer ?? DEFAULT_STYLE_RULES2.formContainer,
|
|
20814
|
+
fieldsContainer: formEngineSetup?.formLayoutSettings?.styleRules?.fieldsContainer ?? DEFAULT_STYLE_RULES2.fieldsContainer,
|
|
20815
|
+
fieldClassName: formEngineSetup?.formLayoutSettings?.styleRules?.fieldClassName ?? DEFAULT_STYLE_RULES2.fieldClassName,
|
|
20816
|
+
formClassName: formEngineSetup?.formLayoutSettings?.styleRules?.formClassName ?? DEFAULT_STYLE_RULES2.formClassName,
|
|
20817
|
+
successMessageClassName: formEngineSetup?.formLayoutSettings?.styleRules?.successMessageClassName ?? DEFAULT_STYLE_RULES2.successMessageClassName,
|
|
20818
|
+
errorMessageClassName: formEngineSetup?.formLayoutSettings?.styleRules?.errorMessageClassName ?? DEFAULT_STYLE_RULES2.errorMessageClassName
|
|
20819
|
+
};
|
|
20820
|
+
}, [formEngineSetup?.formLayoutSettings?.styleRules]);
|
|
20821
|
+
const formFields = React25.useMemo(() => {
|
|
20822
|
+
if (formEngineSetup && formEngineSetup?.fields && formEngineSetup?.fields?.length > 0) {
|
|
20823
|
+
return formEngineSetup.fields;
|
|
20824
|
+
} else {
|
|
20825
|
+
return DEFAULT_FORM_FIELDS38;
|
|
20826
|
+
}
|
|
20827
|
+
}, [formEngineSetup?.fields]);
|
|
20801
20828
|
return /* @__PURE__ */ jsx(
|
|
20802
20829
|
Section,
|
|
20803
20830
|
{
|
|
@@ -20818,7 +20845,7 @@ function ContactVendor({
|
|
|
20818
20845
|
),
|
|
20819
20846
|
children: heading
|
|
20820
20847
|
}
|
|
20821
|
-
) :
|
|
20848
|
+
) : heading),
|
|
20822
20849
|
description && (typeof description === "string" ? /* @__PURE__ */ jsx(
|
|
20823
20850
|
"p",
|
|
20824
20851
|
{
|
|
@@ -20828,42 +20855,19 @@ function ContactVendor({
|
|
|
20828
20855
|
),
|
|
20829
20856
|
children: description
|
|
20830
20857
|
}
|
|
20831
|
-
) :
|
|
20858
|
+
) : description)
|
|
20832
20859
|
] }),
|
|
20833
|
-
/* @__PURE__ */ jsx(Card, { className: cn("mx-auto max-w-xl", cardClassName), children: /* @__PURE__ */ jsx(CardContent, { className: cn("p-6 lg:p-8", cardContentClassName), children: /* @__PURE__ */ jsx(
|
|
20860
|
+
/* @__PURE__ */ jsx(Card, { className: cn("mx-auto max-w-xl", cardClassName), children: /* @__PURE__ */ jsx(CardContent, { className: cn("p-6 lg:p-8", cardContentClassName), children: formEngineSetup ? /* @__PURE__ */ jsx(
|
|
20834
20861
|
FormEngine,
|
|
20835
20862
|
{
|
|
20836
|
-
|
|
20837
|
-
fields: formFields,
|
|
20863
|
+
...formEngineSetup,
|
|
20838
20864
|
formLayoutSettings: {
|
|
20839
|
-
|
|
20840
|
-
|
|
20841
|
-
submitLabel: /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
20842
|
-
buttonIcon,
|
|
20843
|
-
buttonText
|
|
20844
|
-
] })
|
|
20845
|
-
},
|
|
20846
|
-
styleRules: {
|
|
20847
|
-
formClassName: cn("space-y-4", formClassName),
|
|
20848
|
-
successMessageClassName,
|
|
20849
|
-
errorMessageClassName
|
|
20850
|
-
}
|
|
20865
|
+
...formEngineSetup.formLayoutSettings,
|
|
20866
|
+
styleRules: formStyleRules
|
|
20851
20867
|
},
|
|
20852
|
-
|
|
20853
|
-
onSubmit,
|
|
20854
|
-
onSuccess: (data) => {
|
|
20855
|
-
resetUpload();
|
|
20856
|
-
onSuccess?.(data);
|
|
20857
|
-
},
|
|
20858
|
-
onError,
|
|
20859
|
-
resetOnSuccess: formConfig?.resetOnSuccess !== false,
|
|
20860
|
-
uploadTokens,
|
|
20861
|
-
uploadProgress,
|
|
20862
|
-
onFileUpload: uploadFiles,
|
|
20863
|
-
onFileRemove: removeFile,
|
|
20864
|
-
isUploading
|
|
20868
|
+
fields: formFields
|
|
20865
20869
|
}
|
|
20866
|
-
) }) })
|
|
20870
|
+
) : null }) })
|
|
20867
20871
|
] })
|
|
20868
20872
|
}
|
|
20869
20873
|
);
|
|
@@ -21630,16 +21634,16 @@ function CarouselAnimatedSections({
|
|
|
21630
21634
|
pattern = "diagonalCrossBasic",
|
|
21631
21635
|
patternOpacity = 0.033
|
|
21632
21636
|
}) {
|
|
21633
|
-
const [currentIndex, setCurrentIndex] =
|
|
21634
|
-
const [direction, setDirection] =
|
|
21635
|
-
const [isAnimating, setIsAnimating] =
|
|
21636
|
-
const goToNext =
|
|
21637
|
+
const [currentIndex, setCurrentIndex] = React25.useState(0);
|
|
21638
|
+
const [direction, setDirection] = React25.useState(0);
|
|
21639
|
+
const [isAnimating, setIsAnimating] = React25.useState(false);
|
|
21640
|
+
const goToNext = React25.useCallback(() => {
|
|
21637
21641
|
if (isAnimating || currentIndex >= (sections?.length ?? 0) - 1) return;
|
|
21638
21642
|
setIsAnimating(true);
|
|
21639
21643
|
setDirection(1);
|
|
21640
21644
|
setCurrentIndex((prev) => prev + 1);
|
|
21641
21645
|
}, [currentIndex, isAnimating, sections?.length]);
|
|
21642
|
-
const goToPrev =
|
|
21646
|
+
const goToPrev = React25.useCallback(() => {
|
|
21643
21647
|
if (isAnimating || currentIndex <= 0) return;
|
|
21644
21648
|
setIsAnimating(true);
|
|
21645
21649
|
setDirection(-1);
|
|
@@ -21651,7 +21655,7 @@ function CarouselAnimatedSections({
|
|
|
21651
21655
|
setDirection(index > currentIndex ? 1 : -1);
|
|
21652
21656
|
setCurrentIndex(index);
|
|
21653
21657
|
};
|
|
21654
|
-
|
|
21658
|
+
React25.useEffect(() => {
|
|
21655
21659
|
const handleKeyDown = (e) => {
|
|
21656
21660
|
if (e.key === "ArrowDown" || e.key === "ArrowRight") {
|
|
21657
21661
|
goToNext();
|
|
@@ -21677,7 +21681,7 @@ function CarouselAnimatedSections({
|
|
|
21677
21681
|
})
|
|
21678
21682
|
};
|
|
21679
21683
|
const currentSection = sections?.[currentIndex];
|
|
21680
|
-
const actionElements =
|
|
21684
|
+
const actionElements = React25.useMemo(() => {
|
|
21681
21685
|
if (actionsSlot) return actionsSlot;
|
|
21682
21686
|
if (actions && actions.length > 0) {
|
|
21683
21687
|
return actions.map((action, index) => /* @__PURE__ */ jsxs(
|
|
@@ -21925,11 +21929,11 @@ function CarouselAutoProgressSlides({
|
|
|
21925
21929
|
pattern,
|
|
21926
21930
|
patternOpacity
|
|
21927
21931
|
}) {
|
|
21928
|
-
const [currentIndex, setCurrentIndex] =
|
|
21932
|
+
const [currentIndex, setCurrentIndex] = React25.useState(0);
|
|
21929
21933
|
const progress = useMotionValue(100);
|
|
21930
|
-
const [direction, setDirection] =
|
|
21934
|
+
const [direction, setDirection] = React25.useState(1);
|
|
21931
21935
|
const clipPath = useMotionTemplate`inset(0 ${progress}% 0 0 round 10px)`;
|
|
21932
|
-
|
|
21936
|
+
React25.useEffect(() => {
|
|
21933
21937
|
const interval = setInterval(() => {
|
|
21934
21938
|
const currentProgress = progress.get();
|
|
21935
21939
|
if (currentProgress > 0) {
|
|
@@ -22108,22 +22112,22 @@ function CarouselAutoProgressSlides({
|
|
|
22108
22112
|
);
|
|
22109
22113
|
}
|
|
22110
22114
|
function useDotButton(emblaApi) {
|
|
22111
|
-
const [selectedIndex, setSelectedIndex] =
|
|
22112
|
-
const [scrollSnaps, setScrollSnaps] =
|
|
22113
|
-
const onDotButtonClick =
|
|
22115
|
+
const [selectedIndex, setSelectedIndex] = React25.useState(0);
|
|
22116
|
+
const [scrollSnaps, setScrollSnaps] = React25.useState([]);
|
|
22117
|
+
const onDotButtonClick = React25.useCallback(
|
|
22114
22118
|
(index) => {
|
|
22115
22119
|
if (!emblaApi) return;
|
|
22116
22120
|
emblaApi.scrollTo(index);
|
|
22117
22121
|
},
|
|
22118
22122
|
[emblaApi]
|
|
22119
22123
|
);
|
|
22120
|
-
const onInit =
|
|
22124
|
+
const onInit = React25.useCallback((api) => {
|
|
22121
22125
|
setScrollSnaps(api.scrollSnapList());
|
|
22122
22126
|
}, []);
|
|
22123
|
-
const onSelect =
|
|
22127
|
+
const onSelect = React25.useCallback((api) => {
|
|
22124
22128
|
setSelectedIndex(api.selectedScrollSnap());
|
|
22125
22129
|
}, []);
|
|
22126
|
-
|
|
22130
|
+
React25.useEffect(() => {
|
|
22127
22131
|
if (!emblaApi) return;
|
|
22128
22132
|
onInit(emblaApi);
|
|
22129
22133
|
onSelect(emblaApi);
|
|
@@ -22132,8 +22136,8 @@ function useDotButton(emblaApi) {
|
|
|
22132
22136
|
return { selectedIndex, scrollSnaps, onDotButtonClick };
|
|
22133
22137
|
}
|
|
22134
22138
|
function useAutoplay(emblaApi) {
|
|
22135
|
-
const [autoplayIsPlaying, setAutoplayIsPlaying] =
|
|
22136
|
-
const onAutoplayButtonClick =
|
|
22139
|
+
const [autoplayIsPlaying, setAutoplayIsPlaying] = React25.useState(false);
|
|
22140
|
+
const onAutoplayButtonClick = React25.useCallback(
|
|
22137
22141
|
(callback) => {
|
|
22138
22142
|
const autoplay = emblaApi?.plugins()?.autoplay;
|
|
22139
22143
|
if (!autoplay) return;
|
|
@@ -22143,13 +22147,13 @@ function useAutoplay(emblaApi) {
|
|
|
22143
22147
|
},
|
|
22144
22148
|
[emblaApi]
|
|
22145
22149
|
);
|
|
22146
|
-
const toggleAutoplay =
|
|
22150
|
+
const toggleAutoplay = React25.useCallback(() => {
|
|
22147
22151
|
const autoplay = emblaApi?.plugins()?.autoplay;
|
|
22148
22152
|
if (!autoplay) return;
|
|
22149
22153
|
const playOrStop = autoplay.isPlaying() ? autoplay.stop : autoplay.play;
|
|
22150
22154
|
playOrStop();
|
|
22151
22155
|
}, [emblaApi]);
|
|
22152
|
-
|
|
22156
|
+
React25.useEffect(() => {
|
|
22153
22157
|
const autoplay = emblaApi?.plugins()?.autoplay;
|
|
22154
22158
|
if (!autoplay) return;
|
|
22155
22159
|
setAutoplayIsPlaying(autoplay.isPlaying());
|
|
@@ -22158,11 +22162,11 @@ function useAutoplay(emblaApi) {
|
|
|
22158
22162
|
return { autoplayIsPlaying, toggleAutoplay, onAutoplayButtonClick };
|
|
22159
22163
|
}
|
|
22160
22164
|
function useAutoplayProgress(emblaApi, progressNode) {
|
|
22161
|
-
const [showAutoplayProgress, setShowAutoplayProgress] =
|
|
22162
|
-
const animationName =
|
|
22163
|
-
const timeoutId =
|
|
22164
|
-
const rafId =
|
|
22165
|
-
const startProgress =
|
|
22165
|
+
const [showAutoplayProgress, setShowAutoplayProgress] = React25.useState(false);
|
|
22166
|
+
const animationName = React25.useRef("");
|
|
22167
|
+
const timeoutId = React25.useRef(0);
|
|
22168
|
+
const rafId = React25.useRef(0);
|
|
22169
|
+
const startProgress = React25.useCallback(
|
|
22166
22170
|
(timeUntilNext) => {
|
|
22167
22171
|
const node = progressNode.current;
|
|
22168
22172
|
if (!node || timeUntilNext === null) return;
|
|
@@ -22182,12 +22186,12 @@ function useAutoplayProgress(emblaApi, progressNode) {
|
|
|
22182
22186
|
},
|
|
22183
22187
|
[progressNode]
|
|
22184
22188
|
);
|
|
22185
|
-
|
|
22189
|
+
React25.useEffect(() => {
|
|
22186
22190
|
const autoplay = emblaApi?.plugins()?.autoplay;
|
|
22187
22191
|
if (!autoplay) return;
|
|
22188
22192
|
emblaApi.on("autoplay:timerset", () => startProgress(autoplay.timeUntilNext())).on("autoplay:timerstopped", () => setShowAutoplayProgress(false));
|
|
22189
22193
|
}, [emblaApi, startProgress]);
|
|
22190
|
-
|
|
22194
|
+
React25.useEffect(() => {
|
|
22191
22195
|
return () => {
|
|
22192
22196
|
cancelAnimationFrame(rafId.current);
|
|
22193
22197
|
clearTimeout(timeoutId.current);
|
|
@@ -22214,7 +22218,7 @@ function CarouselAutoplayProgress({
|
|
|
22214
22218
|
pattern,
|
|
22215
22219
|
patternOpacity
|
|
22216
22220
|
}) {
|
|
22217
|
-
const progressNode =
|
|
22221
|
+
const progressNode = React25.useRef(null);
|
|
22218
22222
|
const [emblaRef, emblaApi] = useEmblaCarousel(options, [
|
|
22219
22223
|
Autoplay({ playOnInit: true, delay: autoplayDelay })
|
|
22220
22224
|
]);
|
|
@@ -22337,20 +22341,20 @@ function CarouselFeatureBadge({
|
|
|
22337
22341
|
containerMaxWidth = "2xl"
|
|
22338
22342
|
}) {
|
|
22339
22343
|
const [emblaRef, emblaApi] = useEmblaCarousel();
|
|
22340
|
-
const [canScrollPrev, setCanScrollPrev] =
|
|
22341
|
-
const [canScrollNext, setCanScrollNext] =
|
|
22342
|
-
const scrollPrev =
|
|
22344
|
+
const [canScrollPrev, setCanScrollPrev] = React25.useState(false);
|
|
22345
|
+
const [canScrollNext, setCanScrollNext] = React25.useState(false);
|
|
22346
|
+
const scrollPrev = React25.useCallback(() => {
|
|
22343
22347
|
emblaApi?.scrollPrev();
|
|
22344
22348
|
}, [emblaApi]);
|
|
22345
|
-
const scrollNext =
|
|
22349
|
+
const scrollNext = React25.useCallback(() => {
|
|
22346
22350
|
emblaApi?.scrollNext();
|
|
22347
22351
|
}, [emblaApi]);
|
|
22348
|
-
const onSelect =
|
|
22352
|
+
const onSelect = React25.useCallback(() => {
|
|
22349
22353
|
if (!emblaApi) return;
|
|
22350
22354
|
setCanScrollPrev(emblaApi.canScrollPrev());
|
|
22351
22355
|
setCanScrollNext(emblaApi.canScrollNext());
|
|
22352
22356
|
}, [emblaApi]);
|
|
22353
|
-
|
|
22357
|
+
React25.useEffect(() => {
|
|
22354
22358
|
if (!emblaApi) return;
|
|
22355
22359
|
onSelect();
|
|
22356
22360
|
emblaApi.on("reInit", onSelect);
|
|
@@ -22470,10 +22474,10 @@ function CarouselFullscreenScrollFx({
|
|
|
22470
22474
|
pattern = "diagonalCrossBasic",
|
|
22471
22475
|
patternOpacity = 0.033
|
|
22472
22476
|
}) {
|
|
22473
|
-
const containerRef =
|
|
22474
|
-
const scrollContainerRef =
|
|
22475
|
-
const [activeIndex, setActiveIndex] =
|
|
22476
|
-
|
|
22477
|
+
const containerRef = React25.useRef(null);
|
|
22478
|
+
const scrollContainerRef = React25.useRef(null);
|
|
22479
|
+
const [activeIndex, setActiveIndex] = React25.useState(0);
|
|
22480
|
+
React25.useEffect(() => {
|
|
22477
22481
|
const scrollContainer = scrollContainerRef.current;
|
|
22478
22482
|
if (!scrollContainer || !slides?.length) return;
|
|
22479
22483
|
const handleScroll = () => {
|
|
@@ -22485,7 +22489,7 @@ function CarouselFullscreenScrollFx({
|
|
|
22485
22489
|
scrollContainer.addEventListener("scroll", handleScroll);
|
|
22486
22490
|
return () => scrollContainer.removeEventListener("scroll", handleScroll);
|
|
22487
22491
|
}, [slides]);
|
|
22488
|
-
const scrollToSlide =
|
|
22492
|
+
const scrollToSlide = React25.useCallback((index) => {
|
|
22489
22493
|
const scrollContainer = scrollContainerRef.current;
|
|
22490
22494
|
if (!scrollContainer) return;
|
|
22491
22495
|
const slideHeight = scrollContainer.clientHeight;
|
|
@@ -22568,7 +22572,7 @@ function CarouselFullscreenScrollFx({
|
|
|
22568
22572
|
className: "flex h-screen flex-col snap-y snap-mandatory overflow-x-hidden overflow-y-auto scroll-smooth",
|
|
22569
22573
|
style: { scrollbarWidth: "none", msOverflowStyle: "none" },
|
|
22570
22574
|
children: slidesSlot ? slidesSlot : slides?.map((slide, index) => {
|
|
22571
|
-
const renderActions =
|
|
22575
|
+
const renderActions = React25.useMemo(() => {
|
|
22572
22576
|
if (!slide.actions || slide.actions.length === 0) return null;
|
|
22573
22577
|
return slide.actions.map((action, actionIndex) => {
|
|
22574
22578
|
const {
|
|
@@ -22701,25 +22705,25 @@ function CarouselGalleryThumbnails({
|
|
|
22701
22705
|
patternOpacity,
|
|
22702
22706
|
slideMediaBrightness = "100"
|
|
22703
22707
|
}) {
|
|
22704
|
-
const [currentIndex, setCurrentIndex] =
|
|
22705
|
-
const prevSlide =
|
|
22708
|
+
const [currentIndex, setCurrentIndex] = React25.useState(0);
|
|
22709
|
+
const prevSlide = React25.useCallback(() => {
|
|
22706
22710
|
setCurrentIndex(
|
|
22707
22711
|
(prev) => prev === 0 ? (images?.length ?? 0) - 1 : prev - 1
|
|
22708
22712
|
);
|
|
22709
22713
|
}, [images?.length]);
|
|
22710
|
-
const nextSlide =
|
|
22714
|
+
const nextSlide = React25.useCallback(() => {
|
|
22711
22715
|
setCurrentIndex(
|
|
22712
22716
|
(prev) => prev === (images?.length ?? 0) - 1 ? 0 : prev + 1
|
|
22713
22717
|
);
|
|
22714
22718
|
}, [images?.length]);
|
|
22715
|
-
|
|
22719
|
+
React25.useEffect(() => {
|
|
22716
22720
|
if (!autoPlay) return;
|
|
22717
22721
|
const interval = setInterval(() => {
|
|
22718
22722
|
nextSlide();
|
|
22719
22723
|
}, autoPlayInterval);
|
|
22720
22724
|
return () => clearInterval(interval);
|
|
22721
22725
|
}, [currentIndex, autoPlay, autoPlayInterval, nextSlide]);
|
|
22722
|
-
|
|
22726
|
+
React25.useEffect(() => {
|
|
22723
22727
|
const handleKeyDown = (e) => {
|
|
22724
22728
|
if (e.key === "ArrowRight") {
|
|
22725
22729
|
nextSlide();
|
|
@@ -22864,9 +22868,9 @@ function CarouselHorizontalCards({
|
|
|
22864
22868
|
pattern,
|
|
22865
22869
|
patternOpacity
|
|
22866
22870
|
}) {
|
|
22867
|
-
const carouselRef =
|
|
22868
|
-
const [isAtStart, setIsAtStart] =
|
|
22869
|
-
const [isAtEnd, setIsAtEnd] =
|
|
22871
|
+
const carouselRef = React25.useRef(null);
|
|
22872
|
+
const [isAtStart, setIsAtStart] = React25.useState(true);
|
|
22873
|
+
const [isAtEnd, setIsAtEnd] = React25.useState(false);
|
|
22870
22874
|
const scrollLeft = () => {
|
|
22871
22875
|
if (carouselRef.current) {
|
|
22872
22876
|
carouselRef.current.scrollBy({ left: -300, behavior: "smooth" });
|
|
@@ -22877,7 +22881,7 @@ function CarouselHorizontalCards({
|
|
|
22877
22881
|
carouselRef.current.scrollBy({ left: 300, behavior: "smooth" });
|
|
22878
22882
|
}
|
|
22879
22883
|
};
|
|
22880
|
-
|
|
22884
|
+
React25.useEffect(() => {
|
|
22881
22885
|
const checkScrollPosition = () => {
|
|
22882
22886
|
if (carouselRef.current) {
|
|
22883
22887
|
const { scrollLeft: scrollLeft2, scrollWidth, clientWidth } = carouselRef.current;
|
|
@@ -23077,22 +23081,22 @@ function CarouselImageHero({
|
|
|
23077
23081
|
pattern,
|
|
23078
23082
|
patternOpacity
|
|
23079
23083
|
}) {
|
|
23080
|
-
const [currentImageIndex, setCurrentImageIndex] =
|
|
23081
|
-
const intervalRef =
|
|
23082
|
-
const goToNext =
|
|
23084
|
+
const [currentImageIndex, setCurrentImageIndex] = React25.useState(0);
|
|
23085
|
+
const intervalRef = React25.useRef(null);
|
|
23086
|
+
const goToNext = React25.useCallback(() => {
|
|
23083
23087
|
setCurrentImageIndex((prevIndex) => (prevIndex + 1) % (images?.length ?? 1));
|
|
23084
23088
|
}, [images?.length]);
|
|
23085
|
-
const resetInterval =
|
|
23089
|
+
const resetInterval = React25.useCallback(() => {
|
|
23086
23090
|
if (intervalRef.current) {
|
|
23087
23091
|
clearInterval(intervalRef.current);
|
|
23088
23092
|
}
|
|
23089
23093
|
intervalRef.current = setInterval(goToNext, autoPlayInterval);
|
|
23090
23094
|
}, [goToNext, autoPlayInterval]);
|
|
23091
|
-
const goToSlide =
|
|
23095
|
+
const goToSlide = React25.useCallback((index) => {
|
|
23092
23096
|
setCurrentImageIndex(index);
|
|
23093
23097
|
resetInterval();
|
|
23094
23098
|
}, [resetInterval]);
|
|
23095
|
-
|
|
23099
|
+
React25.useEffect(() => {
|
|
23096
23100
|
resetInterval();
|
|
23097
23101
|
return () => {
|
|
23098
23102
|
if (intervalRef.current) {
|
|
@@ -23265,8 +23269,8 @@ function CarouselMultiStepShowcase({
|
|
|
23265
23269
|
pattern,
|
|
23266
23270
|
patternOpacity
|
|
23267
23271
|
}) {
|
|
23268
|
-
const [activeStep, setActiveStep] =
|
|
23269
|
-
const [direction, setDirection] =
|
|
23272
|
+
const [activeStep, setActiveStep] = React25.useState(0);
|
|
23273
|
+
const [direction, setDirection] = React25.useState(0);
|
|
23270
23274
|
const goToStep = (index) => {
|
|
23271
23275
|
setDirection(index > activeStep ? 1 : -1);
|
|
23272
23276
|
setActiveStep(index);
|
|
@@ -23558,9 +23562,9 @@ function CarouselPortfolioHero({
|
|
|
23558
23562
|
patternOpacity,
|
|
23559
23563
|
slideMediaBrightness = "50"
|
|
23560
23564
|
}) {
|
|
23561
|
-
const [currentIndex, setCurrentIndex] =
|
|
23562
|
-
const intervalRef =
|
|
23563
|
-
const resetInterval =
|
|
23565
|
+
const [currentIndex, setCurrentIndex] = React25.useState(0);
|
|
23566
|
+
const intervalRef = React25.useRef(null);
|
|
23567
|
+
const resetInterval = React25.useCallback(() => {
|
|
23564
23568
|
if (intervalRef.current) {
|
|
23565
23569
|
clearInterval(intervalRef.current);
|
|
23566
23570
|
}
|
|
@@ -23568,17 +23572,17 @@ function CarouselPortfolioHero({
|
|
|
23568
23572
|
setCurrentIndex((prevIndex) => (prevIndex + 1) % (slides?.length ?? 1));
|
|
23569
23573
|
}, autoPlayInterval);
|
|
23570
23574
|
}, [autoPlayInterval, slides?.length]);
|
|
23571
|
-
const goToNext =
|
|
23575
|
+
const goToNext = React25.useCallback(() => {
|
|
23572
23576
|
setCurrentIndex((prevIndex) => (prevIndex + 1) % (slides?.length ?? 1));
|
|
23573
23577
|
resetInterval();
|
|
23574
23578
|
}, [slides?.length, resetInterval]);
|
|
23575
|
-
const goToPrev =
|
|
23579
|
+
const goToPrev = React25.useCallback(() => {
|
|
23576
23580
|
setCurrentIndex(
|
|
23577
23581
|
(prevIndex) => (prevIndex - 1 + (slides?.length ?? 1)) % (slides?.length ?? 1)
|
|
23578
23582
|
);
|
|
23579
23583
|
resetInterval();
|
|
23580
23584
|
}, [slides?.length, resetInterval]);
|
|
23581
|
-
|
|
23585
|
+
React25.useEffect(() => {
|
|
23582
23586
|
resetInterval();
|
|
23583
23587
|
return () => {
|
|
23584
23588
|
if (intervalRef.current) {
|
|
@@ -23770,9 +23774,9 @@ function CarouselProductFeatureShowcase({
|
|
|
23770
23774
|
pattern,
|
|
23771
23775
|
patternOpacity
|
|
23772
23776
|
}) {
|
|
23773
|
-
const [activeIndex, setActiveIndex] =
|
|
23774
|
-
const [activeColorIndex, setActiveColorIndex] =
|
|
23775
|
-
const [direction, setDirection] =
|
|
23777
|
+
const [activeIndex, setActiveIndex] = React25.useState(0);
|
|
23778
|
+
const [activeColorIndex, setActiveColorIndex] = React25.useState(0);
|
|
23779
|
+
const [direction, setDirection] = React25.useState(0);
|
|
23776
23780
|
const activeFeature = features?.[activeIndex];
|
|
23777
23781
|
const goToNext = () => {
|
|
23778
23782
|
setDirection(1);
|
|
@@ -23992,9 +23996,9 @@ function CarouselProductFeatureShowcase({
|
|
|
23992
23996
|
}
|
|
23993
23997
|
);
|
|
23994
23998
|
}
|
|
23995
|
-
var ProgressSliderContext =
|
|
23999
|
+
var ProgressSliderContext = React25.createContext(void 0);
|
|
23996
24000
|
function useProgressSliderContext() {
|
|
23997
|
-
const context =
|
|
24001
|
+
const context = React25.useContext(ProgressSliderContext);
|
|
23998
24002
|
if (!context) {
|
|
23999
24003
|
throw new Error(
|
|
24000
24004
|
"useProgressSliderContext must be used within a ProgressSlider"
|
|
@@ -24080,19 +24084,19 @@ function CarouselProgressSlider({
|
|
|
24080
24084
|
pattern,
|
|
24081
24085
|
patternOpacity
|
|
24082
24086
|
}) {
|
|
24083
|
-
const [active, setActive] =
|
|
24084
|
-
const [progress, setProgress] =
|
|
24085
|
-
const [isFastForward, setIsFastForward] =
|
|
24086
|
-
const [isPaused, setIsPaused] =
|
|
24087
|
-
const frame =
|
|
24088
|
-
const firstFrameTime =
|
|
24089
|
-
const targetValue =
|
|
24090
|
-
const pausedProgress =
|
|
24091
|
-
const sliderValues =
|
|
24087
|
+
const [active, setActive] = React25.useState(slides?.[0]?.id ?? "");
|
|
24088
|
+
const [progress, setProgress] = React25.useState(0);
|
|
24089
|
+
const [isFastForward, setIsFastForward] = React25.useState(false);
|
|
24090
|
+
const [isPaused, setIsPaused] = React25.useState(false);
|
|
24091
|
+
const frame = React25.useRef(0);
|
|
24092
|
+
const firstFrameTime = React25.useRef(performance.now());
|
|
24093
|
+
const targetValue = React25.useRef(null);
|
|
24094
|
+
const pausedProgress = React25.useRef(0);
|
|
24095
|
+
const sliderValues = React25.useMemo(
|
|
24092
24096
|
() => slides?.map((slide) => slide.id),
|
|
24093
24097
|
[slides]
|
|
24094
24098
|
);
|
|
24095
|
-
|
|
24099
|
+
React25.useEffect(() => {
|
|
24096
24100
|
if ((sliderValues?.length ?? 0) > 0 && !isPaused) {
|
|
24097
24101
|
firstFrameTime.current = performance.now();
|
|
24098
24102
|
if (pausedProgress.current > 0) {
|
|
@@ -24257,11 +24261,11 @@ function CarouselScrollingFeatureShowcase({
|
|
|
24257
24261
|
pattern,
|
|
24258
24262
|
patternOpacity
|
|
24259
24263
|
}) {
|
|
24260
|
-
const [activeFeature, setActiveFeature] =
|
|
24264
|
+
const [activeFeature, setActiveFeature] = React25.useState(
|
|
24261
24265
|
features?.[0]?.id ?? ""
|
|
24262
24266
|
);
|
|
24263
|
-
const featureRefs =
|
|
24264
|
-
|
|
24267
|
+
const featureRefs = React25.useRef(/* @__PURE__ */ new Map());
|
|
24268
|
+
React25.useEffect(() => {
|
|
24265
24269
|
if (!features || features.length === 0) return;
|
|
24266
24270
|
const observerOptions = {
|
|
24267
24271
|
root: null,
|
|
@@ -25186,9 +25190,9 @@ function FeatureChecklistImage({
|
|
|
25186
25190
|
}
|
|
25187
25191
|
);
|
|
25188
25192
|
}
|
|
25189
|
-
var CarouselContext =
|
|
25193
|
+
var CarouselContext = React25.createContext(null);
|
|
25190
25194
|
function useCarousel() {
|
|
25191
|
-
const context =
|
|
25195
|
+
const context = React25.useContext(CarouselContext);
|
|
25192
25196
|
if (!context) {
|
|
25193
25197
|
throw new Error("useCarousel must be used within a <Carousel />");
|
|
25194
25198
|
}
|
|
@@ -25210,20 +25214,20 @@ function Carousel({
|
|
|
25210
25214
|
},
|
|
25211
25215
|
plugins
|
|
25212
25216
|
);
|
|
25213
|
-
const [canScrollPrev, setCanScrollPrev] =
|
|
25214
|
-
const [canScrollNext, setCanScrollNext] =
|
|
25215
|
-
const onSelect =
|
|
25217
|
+
const [canScrollPrev, setCanScrollPrev] = React25.useState(false);
|
|
25218
|
+
const [canScrollNext, setCanScrollNext] = React25.useState(false);
|
|
25219
|
+
const onSelect = React25.useCallback((api2) => {
|
|
25216
25220
|
if (!api2) return;
|
|
25217
25221
|
setCanScrollPrev(api2.canScrollPrev());
|
|
25218
25222
|
setCanScrollNext(api2.canScrollNext());
|
|
25219
25223
|
}, []);
|
|
25220
|
-
const scrollPrev =
|
|
25224
|
+
const scrollPrev = React25.useCallback(() => {
|
|
25221
25225
|
api?.scrollPrev();
|
|
25222
25226
|
}, [api]);
|
|
25223
|
-
const scrollNext =
|
|
25227
|
+
const scrollNext = React25.useCallback(() => {
|
|
25224
25228
|
api?.scrollNext();
|
|
25225
25229
|
}, [api]);
|
|
25226
|
-
const handleKeyDown =
|
|
25230
|
+
const handleKeyDown = React25.useCallback(
|
|
25227
25231
|
(event) => {
|
|
25228
25232
|
if (event.key === "ArrowLeft") {
|
|
25229
25233
|
event.preventDefault();
|
|
@@ -25235,11 +25239,11 @@ function Carousel({
|
|
|
25235
25239
|
},
|
|
25236
25240
|
[scrollPrev, scrollNext]
|
|
25237
25241
|
);
|
|
25238
|
-
|
|
25242
|
+
React25.useEffect(() => {
|
|
25239
25243
|
if (!api || !setApi) return;
|
|
25240
25244
|
setApi(api);
|
|
25241
25245
|
}, [api, setApi]);
|
|
25242
|
-
|
|
25246
|
+
React25.useEffect(() => {
|
|
25243
25247
|
if (!api) return;
|
|
25244
25248
|
onSelect(api);
|
|
25245
25249
|
api.on("reInit", onSelect);
|
|
@@ -26163,7 +26167,7 @@ function FeatureThreeColumnValues({
|
|
|
26163
26167
|
patternOpacity,
|
|
26164
26168
|
patternClassName
|
|
26165
26169
|
}) {
|
|
26166
|
-
const renderValueIcon =
|
|
26170
|
+
const renderValueIcon = React25.useCallback(
|
|
26167
26171
|
(value) => {
|
|
26168
26172
|
if (value.icon) return value.icon;
|
|
26169
26173
|
if (value.iconName)
|
|
@@ -26665,7 +26669,7 @@ function FeatureTabbedContentImage({
|
|
|
26665
26669
|
patternOpacity,
|
|
26666
26670
|
patternClassName
|
|
26667
26671
|
}) {
|
|
26668
|
-
const renderFeatures =
|
|
26672
|
+
const renderFeatures = React25.useCallback(
|
|
26669
26673
|
(slide) => {
|
|
26670
26674
|
if (slide.featuresSlot) return slide.featuresSlot;
|
|
26671
26675
|
if (!slide.features || slide.features.length === 0) return null;
|
|
@@ -26689,7 +26693,7 @@ function FeatureTabbedContentImage({
|
|
|
26689
26693
|
},
|
|
26690
26694
|
[]
|
|
26691
26695
|
);
|
|
26692
|
-
const renderActions =
|
|
26696
|
+
const renderActions = React25.useCallback(
|
|
26693
26697
|
(slide) => {
|
|
26694
26698
|
if (slide.actionsSlot) return slide.actionsSlot;
|
|
26695
26699
|
if (!slide.actions || slide.actions.length === 0) return null;
|
|
@@ -26732,7 +26736,7 @@ function FeatureTabbedContentImage({
|
|
|
26732
26736
|
},
|
|
26733
26737
|
[]
|
|
26734
26738
|
);
|
|
26735
|
-
const renderImage =
|
|
26739
|
+
const renderImage = React25.useCallback(
|
|
26736
26740
|
(slide) => {
|
|
26737
26741
|
if (slide.imageSlot) return slide.imageSlot;
|
|
26738
26742
|
if (!slide.image) return null;
|
|
@@ -26968,7 +26972,7 @@ function FeatureUtilityCardsGrid({
|
|
|
26968
26972
|
}
|
|
26969
26973
|
);
|
|
26970
26974
|
}, [learnMoreSlot, learnMoreAction, background]);
|
|
26971
|
-
const renderUtilityImage =
|
|
26975
|
+
const renderUtilityImage = React25.useCallback(
|
|
26972
26976
|
(utility) => {
|
|
26973
26977
|
if (utility.imageSlot) return utility.imageSlot;
|
|
26974
26978
|
if (utility.image) {
|
|
@@ -27146,7 +27150,7 @@ function FeatureBentoUtilities({
|
|
|
27146
27150
|
patternOpacity,
|
|
27147
27151
|
patternClassName
|
|
27148
27152
|
}) {
|
|
27149
|
-
const renderCard =
|
|
27153
|
+
const renderCard = React25.useCallback(
|
|
27150
27154
|
(card, index) => {
|
|
27151
27155
|
const hasImage = card.imageSrc || card.imageSlot;
|
|
27152
27156
|
const cardClasses = cn(
|
|
@@ -27202,7 +27206,7 @@ function FeatureBentoUtilities({
|
|
|
27202
27206
|
},
|
|
27203
27207
|
[optixFlowConfig]
|
|
27204
27208
|
);
|
|
27205
|
-
const renderColumn =
|
|
27209
|
+
const renderColumn = React25.useCallback(
|
|
27206
27210
|
(cards, slot) => {
|
|
27207
27211
|
if (slot) return slot;
|
|
27208
27212
|
if (!cards || cards.length === 0) return null;
|
|
@@ -28448,7 +28452,7 @@ function FeatureBentoImageGrid({
|
|
|
28448
28452
|
patternOpacity,
|
|
28449
28453
|
patternClassName
|
|
28450
28454
|
}) {
|
|
28451
|
-
const renderItemIcon =
|
|
28455
|
+
const renderItemIcon = React25.useCallback(
|
|
28452
28456
|
(item) => {
|
|
28453
28457
|
if (item.icon) return item.icon;
|
|
28454
28458
|
if (item.iconName) return /* @__PURE__ */ jsx(DynamicIcon, { name: item.iconName, size: 24 });
|
|
@@ -28456,7 +28460,7 @@ function FeatureBentoImageGrid({
|
|
|
28456
28460
|
},
|
|
28457
28461
|
[]
|
|
28458
28462
|
);
|
|
28459
|
-
const renderItemImage =
|
|
28463
|
+
const renderItemImage = React25.useCallback(
|
|
28460
28464
|
(item, imageClassName) => {
|
|
28461
28465
|
if (item.imageSlot) return item.imageSlot;
|
|
28462
28466
|
if (item.imageSrc) {
|
|
@@ -28475,7 +28479,7 @@ function FeatureBentoImageGrid({
|
|
|
28475
28479
|
},
|
|
28476
28480
|
[optixFlowConfig]
|
|
28477
28481
|
);
|
|
28478
|
-
const renderLargeCard =
|
|
28482
|
+
const renderLargeCard = React25.useCallback(
|
|
28479
28483
|
(item) => {
|
|
28480
28484
|
const iconContent = renderItemIcon(item);
|
|
28481
28485
|
const hasIconBadgeContent = iconContent || item.iconBadge;
|
|
@@ -28563,7 +28567,7 @@ function FeatureBentoImageGrid({
|
|
|
28563
28567
|
},
|
|
28564
28568
|
[largeCardClassName, renderItemImage, renderItemIcon]
|
|
28565
28569
|
);
|
|
28566
|
-
const renderSmallCard =
|
|
28570
|
+
const renderSmallCard = React25.useCallback(
|
|
28567
28571
|
(item, index) => {
|
|
28568
28572
|
const iconContent = renderItemIcon(item);
|
|
28569
28573
|
const hasIconBadgeContent = iconContent || item.iconBadge;
|
|
@@ -29178,7 +29182,7 @@ function FeatureAccordionImage({
|
|
|
29178
29182
|
patternOpacity,
|
|
29179
29183
|
patternClassName
|
|
29180
29184
|
}) {
|
|
29181
|
-
const [activeItem, setActiveItem] =
|
|
29185
|
+
const [activeItem, setActiveItem] = React25.useState(defaultValue || "item-0");
|
|
29182
29186
|
const activeIndex = parseInt(activeItem.replace("item-", ""), 10) || 0;
|
|
29183
29187
|
const currentImage = items?.[activeIndex] || items?.[0];
|
|
29184
29188
|
const accordionItemsContent = useMemo(() => {
|
|
@@ -29327,7 +29331,7 @@ function FeatureCapabilitiesGrid({
|
|
|
29327
29331
|
patternOpacity,
|
|
29328
29332
|
patternClassName
|
|
29329
29333
|
}) {
|
|
29330
|
-
const renderItemIcon =
|
|
29334
|
+
const renderItemIcon = React25.useCallback(
|
|
29331
29335
|
(item) => {
|
|
29332
29336
|
if (item.icon) return item.icon;
|
|
29333
29337
|
if (item.iconName) return /* @__PURE__ */ jsx(DynamicIcon, { name: item.iconName, size: 20 });
|
|
@@ -29479,7 +29483,7 @@ function FeatureCapabilitiesGrid({
|
|
|
29479
29483
|
}
|
|
29480
29484
|
);
|
|
29481
29485
|
}
|
|
29482
|
-
var TeamMemberBackgroundImageCard =
|
|
29486
|
+
var TeamMemberBackgroundImageCard = React25.forwardRef(
|
|
29483
29487
|
({ className, imageUrl, imageAlt, children, optixFlowConfig, background, ...props }, ref) => {
|
|
29484
29488
|
return /* @__PURE__ */ jsxs(
|
|
29485
29489
|
"div",
|
|
@@ -29527,7 +29531,7 @@ function TeamMediaShowcase({
|
|
|
29527
29531
|
actionClassName,
|
|
29528
29532
|
optixFlowConfig
|
|
29529
29533
|
}) {
|
|
29530
|
-
const renderItems =
|
|
29534
|
+
const renderItems = React25.useMemo(() => {
|
|
29531
29535
|
if (itemsSlot) return itemsSlot;
|
|
29532
29536
|
return items.map((member, idx) => {
|
|
29533
29537
|
const imageAlt = member.imageAlt || (member.name && typeof member.name === "string" && member.name.trim() !== "" ? member.name : `member-${idx}`);
|
|
@@ -29625,7 +29629,7 @@ function TeamSimpleGrid({
|
|
|
29625
29629
|
memberNameClassName,
|
|
29626
29630
|
memberRoleClassName
|
|
29627
29631
|
}) {
|
|
29628
|
-
const renderMembers =
|
|
29632
|
+
const renderMembers = React25.useMemo(() => {
|
|
29629
29633
|
if (membersSlot) return membersSlot;
|
|
29630
29634
|
if (!members || members.length === 0) return null;
|
|
29631
29635
|
return members.map((member) => /* @__PURE__ */ jsxs(
|
|
@@ -29787,7 +29791,7 @@ function FooterBrandLinksContact({
|
|
|
29787
29791
|
linkListClassName,
|
|
29788
29792
|
linkItemClassName
|
|
29789
29793
|
]);
|
|
29790
|
-
const contactItemsContent =
|
|
29794
|
+
const contactItemsContent = React25.useMemo(() => {
|
|
29791
29795
|
if (!contactItems || contactItems.length === 0) return null;
|
|
29792
29796
|
return contactItems.map((item, idx) => /* @__PURE__ */ jsxs(
|
|
29793
29797
|
"div",
|
|
@@ -30145,7 +30149,7 @@ function TeamSocialGrid({
|
|
|
30145
30149
|
memberRoleClassName,
|
|
30146
30150
|
socialLinksClassName
|
|
30147
30151
|
}) {
|
|
30148
|
-
const renderMembers =
|
|
30152
|
+
const renderMembers = React25.useMemo(() => {
|
|
30149
30153
|
if (membersSlot) return membersSlot;
|
|
30150
30154
|
if (!members || members.length === 0) return null;
|
|
30151
30155
|
return members.map((member) => /* @__PURE__ */ jsxs(
|
|
@@ -30297,7 +30301,7 @@ function TeamGradientCards({
|
|
|
30297
30301
|
memberRoleClassName,
|
|
30298
30302
|
socialLinksClassName
|
|
30299
30303
|
}) {
|
|
30300
|
-
const renderMembers =
|
|
30304
|
+
const renderMembers = React25.useMemo(() => {
|
|
30301
30305
|
if (membersSlot) return membersSlot;
|
|
30302
30306
|
if (!members || members.length === 0) return null;
|
|
30303
30307
|
return members.map((member) => /* @__PURE__ */ jsx(
|
|
@@ -30453,7 +30457,7 @@ function TeamBioBadges({
|
|
|
30453
30457
|
memberBioClassName,
|
|
30454
30458
|
socialLinksClassName
|
|
30455
30459
|
}) {
|
|
30456
|
-
const renderMembers =
|
|
30460
|
+
const renderMembers = React25.useMemo(() => {
|
|
30457
30461
|
if (membersSlot) return membersSlot;
|
|
30458
30462
|
if (!members || members.length === 0) return null;
|
|
30459
30463
|
return members.map((member) => /* @__PURE__ */ jsxs(
|
|
@@ -30630,7 +30634,7 @@ function TeamExpertiseCards({
|
|
|
30630
30634
|
ctaDescriptionClassName,
|
|
30631
30635
|
ctaButtonClassName
|
|
30632
30636
|
}) {
|
|
30633
|
-
const renderMembers =
|
|
30637
|
+
const renderMembers = React25.useMemo(() => {
|
|
30634
30638
|
if (membersSlot) return membersSlot;
|
|
30635
30639
|
if (!members || members.length === 0) return null;
|
|
30636
30640
|
return members.map((member) => /* @__PURE__ */ jsx(
|
|
@@ -30707,7 +30711,7 @@ function TeamExpertiseCards({
|
|
|
30707
30711
|
member.id
|
|
30708
30712
|
));
|
|
30709
30713
|
}, [membersSlot, members, background, memberCardClassName, avatarClassName, memberNameClassName, memberRoleClassName, departmentBadgeClassName, memberDescriptionClassName, expertiseClassName]);
|
|
30710
|
-
const renderCta =
|
|
30714
|
+
const renderCta = React25.useMemo(() => {
|
|
30711
30715
|
if (ctaSlot) return ctaSlot;
|
|
30712
30716
|
return /* @__PURE__ */ jsxs(
|
|
30713
30717
|
"div",
|
|
@@ -30823,7 +30827,7 @@ function TeamCompactGrid({
|
|
|
30823
30827
|
ctaDescriptionClassName,
|
|
30824
30828
|
ctaButtonClassName
|
|
30825
30829
|
}) {
|
|
30826
|
-
const renderMembers =
|
|
30830
|
+
const renderMembers = React25.useMemo(() => {
|
|
30827
30831
|
if (membersSlot) return membersSlot;
|
|
30828
30832
|
if (!members || members.length === 0) return null;
|
|
30829
30833
|
return members.map((member) => /* @__PURE__ */ jsxs(
|
|
@@ -30878,7 +30882,7 @@ function TeamCompactGrid({
|
|
|
30878
30882
|
member.id
|
|
30879
30883
|
));
|
|
30880
30884
|
}, [membersSlot, members, background, memberCardClassName, avatarClassName, memberNameClassName, memberRoleClassName, departmentBadgeClassName]);
|
|
30881
|
-
const renderCta =
|
|
30885
|
+
const renderCta = React25.useMemo(() => {
|
|
30882
30886
|
if (ctaSlot) return ctaSlot;
|
|
30883
30887
|
return /* @__PURE__ */ jsxs(
|
|
30884
30888
|
"div",
|
|
@@ -30982,7 +30986,7 @@ function TeamInvestorShowcase({
|
|
|
30982
30986
|
investorCompanyClassName,
|
|
30983
30987
|
optixFlowConfig
|
|
30984
30988
|
}) {
|
|
30985
|
-
const renderInvestors =
|
|
30989
|
+
const renderInvestors = React25.useMemo(() => {
|
|
30986
30990
|
if (investorsSlot) return investorsSlot;
|
|
30987
30991
|
if (!investors || investors.length === 0) return null;
|
|
30988
30992
|
return investors.map((investor) => /* @__PURE__ */ jsxs("div", { className: investorCardClassName, children: [
|
|
@@ -31056,7 +31060,7 @@ function TeamCarouselExperience({
|
|
|
31056
31060
|
memberRoleClassName,
|
|
31057
31061
|
optixFlowConfig
|
|
31058
31062
|
}) {
|
|
31059
|
-
const renderMembers =
|
|
31063
|
+
const renderMembers = React25.useMemo(() => {
|
|
31060
31064
|
if (membersSlot) return membersSlot;
|
|
31061
31065
|
if (!members || members.length === 0) return null;
|
|
31062
31066
|
return members.map((member, idx) => /* @__PURE__ */ jsx(CarouselItem, { className: "max-w-72", children: /* @__PURE__ */ jsxs(
|
|
@@ -31206,20 +31210,20 @@ function TeamFilterableSearch({
|
|
|
31206
31210
|
emptyStateClassName,
|
|
31207
31211
|
emptyStateMessage
|
|
31208
31212
|
}) {
|
|
31209
|
-
const [searchQuery, setSearchQuery] =
|
|
31210
|
-
const [selectedDepartment, setSelectedDepartment] =
|
|
31211
|
-
const departments =
|
|
31213
|
+
const [searchQuery, setSearchQuery] = React25.useState("");
|
|
31214
|
+
const [selectedDepartment, setSelectedDepartment] = React25.useState("All");
|
|
31215
|
+
const departments = React25.useMemo(() => {
|
|
31212
31216
|
const depts = new Set(members.map((m) => m.department));
|
|
31213
31217
|
return ["All", ...Array.from(depts)];
|
|
31214
31218
|
}, [members]);
|
|
31215
|
-
const filteredMembers =
|
|
31219
|
+
const filteredMembers = React25.useMemo(() => {
|
|
31216
31220
|
return members.filter((member) => {
|
|
31217
31221
|
const matchesSearch = searchQuery === "" || member.name.toLowerCase().includes(searchQuery.toLowerCase()) || member.role.toLowerCase().includes(searchQuery.toLowerCase()) || member.description.toLowerCase().includes(searchQuery.toLowerCase());
|
|
31218
31222
|
const matchesDepartment = selectedDepartment === "All" || member.department === selectedDepartment;
|
|
31219
31223
|
return matchesSearch && matchesDepartment;
|
|
31220
31224
|
});
|
|
31221
31225
|
}, [members, searchQuery, selectedDepartment]);
|
|
31222
|
-
const renderFilters =
|
|
31226
|
+
const renderFilters = React25.useMemo(() => {
|
|
31223
31227
|
if (filtersSlot) return filtersSlot;
|
|
31224
31228
|
return /* @__PURE__ */ jsxs(
|
|
31225
31229
|
"div",
|
|
@@ -31274,7 +31278,7 @@ function TeamFilterableSearch({
|
|
|
31274
31278
|
selectedDepartment,
|
|
31275
31279
|
filterButtonClassName
|
|
31276
31280
|
]);
|
|
31277
|
-
const renderMembers =
|
|
31281
|
+
const renderMembers = React25.useMemo(() => {
|
|
31278
31282
|
if (membersSlot) return membersSlot;
|
|
31279
31283
|
return filteredMembers.map((member) => /* @__PURE__ */ jsx(
|
|
31280
31284
|
"div",
|
|
@@ -31461,7 +31465,7 @@ function TeamCompactCta({
|
|
|
31461
31465
|
memberRoleClassName,
|
|
31462
31466
|
ctaClassName
|
|
31463
31467
|
}) {
|
|
31464
|
-
const renderMembers =
|
|
31468
|
+
const renderMembers = React25.useMemo(() => {
|
|
31465
31469
|
if (membersSlot) return membersSlot;
|
|
31466
31470
|
if (!members || members.length === 0) return null;
|
|
31467
31471
|
return members.map((member) => /* @__PURE__ */ jsxs(
|
|
@@ -31489,7 +31493,7 @@ function TeamCompactCta({
|
|
|
31489
31493
|
member.id
|
|
31490
31494
|
));
|
|
31491
31495
|
}, [membersSlot, members, memberCardClassName, avatarClassName, memberNameClassName, memberRoleClassName, background]);
|
|
31492
|
-
const renderCta =
|
|
31496
|
+
const renderCta = React25.useMemo(() => {
|
|
31493
31497
|
if (ctaSlot) return ctaSlot;
|
|
31494
31498
|
return /* @__PURE__ */ jsx(
|
|
31495
31499
|
Pressable,
|
|
@@ -31580,7 +31584,7 @@ function TeamHoverHighlight({
|
|
|
31580
31584
|
socialLinksClassName,
|
|
31581
31585
|
optixFlowConfig
|
|
31582
31586
|
}) {
|
|
31583
|
-
const renderMembers =
|
|
31587
|
+
const renderMembers = React25.useMemo(() => {
|
|
31584
31588
|
if (membersSlot) return membersSlot;
|
|
31585
31589
|
if (!members || members.length === 0) return null;
|
|
31586
31590
|
return members.map((member) => /* @__PURE__ */ jsxs(
|
|
@@ -31729,7 +31733,7 @@ function TeamSocialCards({
|
|
|
31729
31733
|
socialLinksClassName,
|
|
31730
31734
|
optixFlowConfig
|
|
31731
31735
|
}) {
|
|
31732
|
-
const renderMembers =
|
|
31736
|
+
const renderMembers = React25.useMemo(() => {
|
|
31733
31737
|
if (membersSlot) return membersSlot;
|
|
31734
31738
|
if (!members || members.length === 0) return null;
|
|
31735
31739
|
return members.map((member) => /* @__PURE__ */ jsx(
|
|
@@ -31899,7 +31903,7 @@ function TeamGridAnimated({
|
|
|
31899
31903
|
"hsl(var(--muted))",
|
|
31900
31904
|
"hsl(var(--warning)/0.2)"
|
|
31901
31905
|
];
|
|
31902
|
-
const renderMembers =
|
|
31906
|
+
const renderMembers = React25.useMemo(() => {
|
|
31903
31907
|
if (membersSlot) return membersSlot;
|
|
31904
31908
|
if (!members || members.length === 0) return null;
|
|
31905
31909
|
return members.map((member, index) => /* @__PURE__ */ jsxs(
|
|
@@ -31999,7 +32003,7 @@ function TeamGridAnimated({
|
|
|
31999
32003
|
memberDesignationClassName,
|
|
32000
32004
|
socialLinksClassName
|
|
32001
32005
|
]);
|
|
32002
|
-
const renderSocialLinksMain =
|
|
32006
|
+
const renderSocialLinksMain = React25.useMemo(() => {
|
|
32003
32007
|
if (socialLinksMainSlot) return socialLinksMainSlot;
|
|
32004
32008
|
if (!socialLinksMain || socialLinksMain.length === 0) return null;
|
|
32005
32009
|
return /* @__PURE__ */ jsxs("div", { className: "flex w-full items-center justify-center gap-4 py-4 md:justify-center", children: [
|
|
@@ -32116,7 +32120,7 @@ function TeamDepartmentSections({
|
|
|
32116
32120
|
memberRoleClassName,
|
|
32117
32121
|
optixFlowConfig
|
|
32118
32122
|
}) {
|
|
32119
|
-
const renderDepartments =
|
|
32123
|
+
const renderDepartments = React25.useMemo(() => {
|
|
32120
32124
|
if (departmentsSlot) return departmentsSlot;
|
|
32121
32125
|
if (!departments || departments.length === 0) return null;
|
|
32122
32126
|
return departments.map((department, deptIndex) => /* @__PURE__ */ jsxs(
|
|
@@ -32220,7 +32224,7 @@ function TeamAlternatingBios({
|
|
|
32220
32224
|
socialLinksClassName,
|
|
32221
32225
|
optixFlowConfig
|
|
32222
32226
|
}) {
|
|
32223
|
-
const renderMembers =
|
|
32227
|
+
const renderMembers = React25.useMemo(() => {
|
|
32224
32228
|
if (membersSlot) return membersSlot;
|
|
32225
32229
|
if (!members || members.length === 0) return null;
|
|
32226
32230
|
return members.map((member, index) => /* @__PURE__ */ jsxs(
|
|
@@ -32402,7 +32406,7 @@ function TeamAvatarSocial({
|
|
|
32402
32406
|
memberRoleClassName,
|
|
32403
32407
|
socialLinksClassName
|
|
32404
32408
|
}) {
|
|
32405
|
-
const renderMembers =
|
|
32409
|
+
const renderMembers = React25.useMemo(() => {
|
|
32406
32410
|
if (membersSlot) return membersSlot;
|
|
32407
32411
|
if (!members || members.length === 0) return null;
|
|
32408
32412
|
return members.map((member) => /* @__PURE__ */ jsxs(
|
|
@@ -32545,7 +32549,7 @@ function TeamHoverOverlay({
|
|
|
32545
32549
|
socialLinksClassName,
|
|
32546
32550
|
optixFlowConfig
|
|
32547
32551
|
}) {
|
|
32548
|
-
const renderMembers =
|
|
32552
|
+
const renderMembers = React25.useMemo(() => {
|
|
32549
32553
|
if (membersSlot) return membersSlot;
|
|
32550
32554
|
if (!members || members.length === 0) return null;
|
|
32551
32555
|
return members.map((member) => /* @__PURE__ */ jsx(
|
|
@@ -32721,14 +32725,14 @@ function TeamRoleFilter({
|
|
|
32721
32725
|
socialLinksClassName,
|
|
32722
32726
|
optixFlowConfig
|
|
32723
32727
|
}) {
|
|
32724
|
-
const [selectedRole, setSelectedRole] =
|
|
32725
|
-
const filteredMembers =
|
|
32728
|
+
const [selectedRole, setSelectedRole] = React25.useState("All");
|
|
32729
|
+
const filteredMembers = React25.useMemo(() => {
|
|
32726
32730
|
if (!members) return [];
|
|
32727
32731
|
return members.filter(
|
|
32728
32732
|
(member) => selectedRole === "All" ? true : member.role === selectedRole
|
|
32729
32733
|
);
|
|
32730
32734
|
}, [members, selectedRole]);
|
|
32731
|
-
const renderRoles =
|
|
32735
|
+
const renderRoles = React25.useMemo(() => {
|
|
32732
32736
|
if (rolesSlot) return rolesSlot;
|
|
32733
32737
|
if (!roles) return null;
|
|
32734
32738
|
return /* @__PURE__ */ jsx(
|
|
@@ -32752,7 +32756,7 @@ function TeamRoleFilter({
|
|
|
32752
32756
|
}
|
|
32753
32757
|
);
|
|
32754
32758
|
}, [rolesSlot, filtersClassName, roles, selectedRole, filterButtonClassName]);
|
|
32755
|
-
const renderMembers =
|
|
32759
|
+
const renderMembers = React25.useMemo(() => {
|
|
32756
32760
|
if (membersSlot) return membersSlot;
|
|
32757
32761
|
return filteredMembers.map((member) => /* @__PURE__ */ jsx(
|
|
32758
32762
|
Card,
|
|
@@ -32912,7 +32916,7 @@ function TeamContactCards({
|
|
|
32912
32916
|
socialLinksClassName,
|
|
32913
32917
|
optixFlowConfig
|
|
32914
32918
|
}) {
|
|
32915
|
-
const getStatusColor =
|
|
32919
|
+
const getStatusColor = React25.useCallback((status) => {
|
|
32916
32920
|
switch (status) {
|
|
32917
32921
|
case "active":
|
|
32918
32922
|
return "bg-success";
|
|
@@ -32922,7 +32926,7 @@ function TeamContactCards({
|
|
|
32922
32926
|
return getTextColor(background, "muted");
|
|
32923
32927
|
}
|
|
32924
32928
|
}, [background]);
|
|
32925
|
-
const renderMembers =
|
|
32929
|
+
const renderMembers = React25.useMemo(() => {
|
|
32926
32930
|
if (membersSlot) return membersSlot;
|
|
32927
32931
|
if (!members || members.length === 0) return null;
|
|
32928
32932
|
return members.map((member) => /* @__PURE__ */ jsx(Card, { className: cn("p-0", memberCardClassName), children: /* @__PURE__ */ jsxs(CardContent, { className: "p-6!", children: [
|
|
@@ -33129,7 +33133,7 @@ function TeamLargeImages({
|
|
|
33129
33133
|
socialLinksClassName,
|
|
33130
33134
|
optixFlowConfig
|
|
33131
33135
|
}) {
|
|
33132
|
-
const renderMembers =
|
|
33136
|
+
const renderMembers = React25.useMemo(() => {
|
|
33133
33137
|
if (membersSlot) return membersSlot;
|
|
33134
33138
|
if (!members || members.length === 0) return null;
|
|
33135
33139
|
return members.map((member) => /* @__PURE__ */ jsxs(
|
|
@@ -33304,7 +33308,7 @@ function TeamSkillBadges({
|
|
|
33304
33308
|
socialLinksClassName,
|
|
33305
33309
|
optixFlowConfig
|
|
33306
33310
|
}) {
|
|
33307
|
-
const renderMembers =
|
|
33311
|
+
const renderMembers = React25.useMemo(() => {
|
|
33308
33312
|
if (membersSlot) return membersSlot;
|
|
33309
33313
|
if (!members || members.length === 0) return null;
|
|
33310
33314
|
return members.map((member) => /* @__PURE__ */ jsx(
|
|
@@ -33494,7 +33498,7 @@ function TeamTestimonialStats({
|
|
|
33494
33498
|
socialLinksClassName,
|
|
33495
33499
|
optixFlowConfig
|
|
33496
33500
|
}) {
|
|
33497
|
-
const renderMembers =
|
|
33501
|
+
const renderMembers = React25.useMemo(() => {
|
|
33498
33502
|
if (membersSlot) return membersSlot;
|
|
33499
33503
|
if (!members || members.length === 0) return null;
|
|
33500
33504
|
return members.map((member) => /* @__PURE__ */ jsx(
|
|
@@ -37638,7 +37642,7 @@ function BlogGridAuthorCardsComponent({
|
|
|
37638
37642
|
pattern,
|
|
37639
37643
|
patternOpacity
|
|
37640
37644
|
}) {
|
|
37641
|
-
const viewAllActionContent =
|
|
37645
|
+
const viewAllActionContent = React25.useMemo(() => {
|
|
37642
37646
|
if (viewAllSlot) return viewAllSlot;
|
|
37643
37647
|
if (!viewAllAction) return null;
|
|
37644
37648
|
const {
|
|
@@ -37663,7 +37667,7 @@ function BlogGridAuthorCardsComponent({
|
|
|
37663
37667
|
}
|
|
37664
37668
|
);
|
|
37665
37669
|
}, [viewAllSlot, viewAllAction]);
|
|
37666
|
-
const postsContent =
|
|
37670
|
+
const postsContent = React25.useMemo(() => {
|
|
37667
37671
|
if (postsSlot) return postsSlot;
|
|
37668
37672
|
if (!posts || posts.length === 0) return null;
|
|
37669
37673
|
return posts.map((post) => {
|
|
@@ -37775,7 +37779,7 @@ function BlogCardsTaglineCta({
|
|
|
37775
37779
|
pattern,
|
|
37776
37780
|
patternOpacity
|
|
37777
37781
|
}) {
|
|
37778
|
-
const ctaActionContent =
|
|
37782
|
+
const ctaActionContent = React25.useMemo(() => {
|
|
37779
37783
|
if (ctaSlot) return ctaSlot;
|
|
37780
37784
|
if (!ctaAction) return null;
|
|
37781
37785
|
const {
|
|
@@ -37803,7 +37807,7 @@ function BlogCardsTaglineCta({
|
|
|
37803
37807
|
}
|
|
37804
37808
|
);
|
|
37805
37809
|
}, [ctaSlot, ctaAction, ctaClassName]);
|
|
37806
|
-
const postsContent =
|
|
37810
|
+
const postsContent = React25.useMemo(() => {
|
|
37807
37811
|
if (postsSlot) return postsSlot;
|
|
37808
37812
|
if (!posts || posts.length === 0) return null;
|
|
37809
37813
|
return posts.map((post) => {
|
|
@@ -37949,7 +37953,7 @@ function BlogCardsReadTime({
|
|
|
37949
37953
|
pattern,
|
|
37950
37954
|
patternOpacity
|
|
37951
37955
|
}) {
|
|
37952
|
-
const renderedViewAllAction =
|
|
37956
|
+
const renderedViewAllAction = React25.useMemo(() => {
|
|
37953
37957
|
if (viewAllSlot) return viewAllSlot;
|
|
37954
37958
|
if (!viewAllAction) return null;
|
|
37955
37959
|
const {
|
|
@@ -37966,7 +37970,7 @@ function BlogCardsReadTime({
|
|
|
37966
37970
|
iconAfter
|
|
37967
37971
|
] }) });
|
|
37968
37972
|
}, [viewAllSlot, viewAllAction]);
|
|
37969
|
-
const renderedPosts =
|
|
37973
|
+
const renderedPosts = React25.useMemo(() => {
|
|
37970
37974
|
if (postsSlot) return postsSlot;
|
|
37971
37975
|
if (!posts || posts.length === 0) return null;
|
|
37972
37976
|
return posts.map((post) => {
|
|
@@ -38103,7 +38107,7 @@ function BlogCategoryOverlay({
|
|
|
38103
38107
|
pattern,
|
|
38104
38108
|
patternOpacity
|
|
38105
38109
|
}) {
|
|
38106
|
-
const viewAllActionContent =
|
|
38110
|
+
const viewAllActionContent = React25.useMemo(() => {
|
|
38107
38111
|
if (viewAllSlot) return viewAllSlot;
|
|
38108
38112
|
if (!viewAllAction) return null;
|
|
38109
38113
|
const {
|
|
@@ -38131,7 +38135,7 @@ function BlogCategoryOverlay({
|
|
|
38131
38135
|
}
|
|
38132
38136
|
);
|
|
38133
38137
|
}, [viewAllSlot, viewAllAction, viewAllClassName]);
|
|
38134
|
-
const postsContent =
|
|
38138
|
+
const postsContent = React25.useMemo(() => {
|
|
38135
38139
|
if (postsSlot) return postsSlot;
|
|
38136
38140
|
if (!posts || posts.length === 0) return null;
|
|
38137
38141
|
return posts.map((post) => {
|
|
@@ -38279,7 +38283,7 @@ function BlogFeaturedPopular({
|
|
|
38279
38283
|
}) {
|
|
38280
38284
|
const featuredPost = posts?.[0];
|
|
38281
38285
|
const popularPosts = posts?.slice(1);
|
|
38282
|
-
const renderedFeaturedPost =
|
|
38286
|
+
const renderedFeaturedPost = React25.useMemo(() => {
|
|
38283
38287
|
if (featuredSlot) return featuredSlot;
|
|
38284
38288
|
if (!featuredPost) return null;
|
|
38285
38289
|
const postHref = featuredPost.href || featuredPost.url || featuredPost.link;
|
|
@@ -38331,7 +38335,7 @@ function BlogFeaturedPopular({
|
|
|
38331
38335
|
featuredContentClassName,
|
|
38332
38336
|
optixFlowConfig
|
|
38333
38337
|
]);
|
|
38334
|
-
const renderedPopularPosts =
|
|
38338
|
+
const renderedPopularPosts = React25.useMemo(() => {
|
|
38335
38339
|
if (postsSlot) return postsSlot;
|
|
38336
38340
|
if (!popularPosts || popularPosts.length === 0) return null;
|
|
38337
38341
|
return popularPosts.map((post) => {
|
|
@@ -38448,7 +38452,7 @@ function BlogRelatedArticles({
|
|
|
38448
38452
|
pattern,
|
|
38449
38453
|
patternOpacity
|
|
38450
38454
|
}) {
|
|
38451
|
-
const renderedSeeAllAction =
|
|
38455
|
+
const renderedSeeAllAction = React25.useMemo(() => {
|
|
38452
38456
|
if (seeAllSlot) return seeAllSlot;
|
|
38453
38457
|
if (!seeAllAction) return null;
|
|
38454
38458
|
const {
|
|
@@ -38477,7 +38481,7 @@ function BlogRelatedArticles({
|
|
|
38477
38481
|
}
|
|
38478
38482
|
);
|
|
38479
38483
|
}, [seeAllSlot, seeAllAction, seeAllClassName]);
|
|
38480
|
-
const renderedArticles =
|
|
38484
|
+
const renderedArticles = React25.useMemo(() => {
|
|
38481
38485
|
if (articlesSlot) return articlesSlot;
|
|
38482
38486
|
if (!articles || articles.length === 0) return null;
|
|
38483
38487
|
return articles.map((item) => {
|
|
@@ -38785,7 +38789,7 @@ function BlogHorizontalCards({
|
|
|
38785
38789
|
pattern,
|
|
38786
38790
|
patternOpacity
|
|
38787
38791
|
}) {
|
|
38788
|
-
const ctaContent =
|
|
38792
|
+
const ctaContent = React25.useMemo(() => {
|
|
38789
38793
|
if (ctaSlot) return ctaSlot;
|
|
38790
38794
|
if (!ctaAction) return null;
|
|
38791
38795
|
const {
|
|
@@ -38810,7 +38814,7 @@ function BlogHorizontalCards({
|
|
|
38810
38814
|
}
|
|
38811
38815
|
);
|
|
38812
38816
|
}, [ctaSlot, ctaAction]);
|
|
38813
|
-
const postsContent =
|
|
38817
|
+
const postsContent = React25.useMemo(() => {
|
|
38814
38818
|
if (postsSlot) return postsSlot;
|
|
38815
38819
|
if (!posts || posts.length === 0) return null;
|
|
38816
38820
|
return posts.map((post) => {
|
|
@@ -39032,7 +39036,7 @@ function Label({
|
|
|
39032
39036
|
);
|
|
39033
39037
|
}
|
|
39034
39038
|
var POSTS_PER_PAGE = 6;
|
|
39035
|
-
var BlogCard =
|
|
39039
|
+
var BlogCard = React25.memo(function BlogCard2({
|
|
39036
39040
|
post,
|
|
39037
39041
|
optixFlowConfig,
|
|
39038
39042
|
className
|
|
@@ -39071,7 +39075,7 @@ var BlogCard = React23.memo(function BlogCard2({
|
|
|
39071
39075
|
] })
|
|
39072
39076
|
] }) });
|
|
39073
39077
|
});
|
|
39074
|
-
var FilterForm =
|
|
39078
|
+
var FilterForm = React25.memo(function FilterForm2({
|
|
39075
39079
|
categories,
|
|
39076
39080
|
selectedCategories,
|
|
39077
39081
|
onCategoryChange,
|
|
@@ -39104,7 +39108,7 @@ var FilterForm = React23.memo(function FilterForm2({
|
|
|
39104
39108
|
}
|
|
39105
39109
|
);
|
|
39106
39110
|
});
|
|
39107
|
-
var BreadcrumbBlog =
|
|
39111
|
+
var BreadcrumbBlog = React25.memo(function BreadcrumbBlog2({
|
|
39108
39112
|
breadcrumb
|
|
39109
39113
|
}) {
|
|
39110
39114
|
return /* @__PURE__ */ jsx(Breadcrumb, { children: /* @__PURE__ */ jsx(BreadcrumbList, { children: breadcrumb.map((item, i) => {
|
|
@@ -39186,12 +39190,12 @@ function BlogFilteredResultsComponent({
|
|
|
39186
39190
|
}, [posts, selectedCategories]);
|
|
39187
39191
|
const postsToDisplay = filteredPosts.length > 0 ? filteredPosts : posts || [];
|
|
39188
39192
|
const hasMore = visibleCount < postsToDisplay.length;
|
|
39189
|
-
const breadcrumbContent =
|
|
39193
|
+
const breadcrumbContent = React25.useMemo(() => {
|
|
39190
39194
|
if (breadcrumbSlot) return breadcrumbSlot;
|
|
39191
39195
|
if (!breadcrumb || breadcrumb.length === 0) return null;
|
|
39192
39196
|
return /* @__PURE__ */ jsx(BreadcrumbBlog, { breadcrumb });
|
|
39193
39197
|
}, [breadcrumbSlot, breadcrumb]);
|
|
39194
|
-
const primaryPostContent =
|
|
39198
|
+
const primaryPostContent = React25.useMemo(() => {
|
|
39195
39199
|
if (primaryPostSlot) return primaryPostSlot;
|
|
39196
39200
|
if (!primaryPost) return null;
|
|
39197
39201
|
return /* @__PURE__ */ jsx(
|
|
@@ -39203,7 +39207,7 @@ function BlogFilteredResultsComponent({
|
|
|
39203
39207
|
}
|
|
39204
39208
|
);
|
|
39205
39209
|
}, [primaryPostSlot, primaryPost, optixFlowConfig, postCardClassName]);
|
|
39206
|
-
const categoriesContent =
|
|
39210
|
+
const categoriesContent = React25.useMemo(() => {
|
|
39207
39211
|
if (categoriesSlot) return categoriesSlot;
|
|
39208
39212
|
if (!categories || categories.length === 0) return null;
|
|
39209
39213
|
return /* @__PURE__ */ jsx(
|
|
@@ -39222,7 +39226,7 @@ function BlogFilteredResultsComponent({
|
|
|
39222
39226
|
handleCategoryChange,
|
|
39223
39227
|
categoriesClassName
|
|
39224
39228
|
]);
|
|
39225
|
-
const postsContent =
|
|
39229
|
+
const postsContent = React25.useMemo(() => {
|
|
39226
39230
|
if (postsSlot) return postsSlot;
|
|
39227
39231
|
return postsToDisplay.slice(0, visibleCount).map((post) => {
|
|
39228
39232
|
const postKey = post.id || String(post.title) || Math.random().toString();
|
|
@@ -39243,7 +39247,7 @@ function BlogFilteredResultsComponent({
|
|
|
39243
39247
|
optixFlowConfig,
|
|
39244
39248
|
postCardClassName
|
|
39245
39249
|
]);
|
|
39246
|
-
const loadMoreContent =
|
|
39250
|
+
const loadMoreContent = React25.useMemo(() => {
|
|
39247
39251
|
if (loadMoreSlot) return loadMoreSlot;
|
|
39248
39252
|
if (!loadMoreAction || !hasMore) return null;
|
|
39249
39253
|
const {
|
|
@@ -39369,7 +39373,7 @@ function BlogMasonryFeaturedComponent({
|
|
|
39369
39373
|
}) {
|
|
39370
39374
|
const featuredPost = posts?.[0];
|
|
39371
39375
|
const otherPosts = posts?.slice(1);
|
|
39372
|
-
const featuredPostContent =
|
|
39376
|
+
const featuredPostContent = React25.useMemo(() => {
|
|
39373
39377
|
if (featuredSlot) return featuredSlot;
|
|
39374
39378
|
if (!featuredPost) return null;
|
|
39375
39379
|
const postHref = featuredPost.href || featuredPost.url || featuredPost.link || "#";
|
|
@@ -39419,7 +39423,7 @@ function BlogMasonryFeaturedComponent({
|
|
|
39419
39423
|
featuredImageClassName,
|
|
39420
39424
|
optixFlowConfig
|
|
39421
39425
|
]);
|
|
39422
|
-
const otherPostsContent =
|
|
39426
|
+
const otherPostsContent = React25.useMemo(() => {
|
|
39423
39427
|
if (postsSlot) return postsSlot;
|
|
39424
39428
|
if (!otherPosts || otherPosts.length === 0) return null;
|
|
39425
39429
|
return otherPosts.map((post) => {
|
|
@@ -39508,7 +39512,7 @@ function BlogHorizontalTimelineComponent({
|
|
|
39508
39512
|
pattern,
|
|
39509
39513
|
patternOpacity
|
|
39510
39514
|
}) {
|
|
39511
|
-
const renderPosts =
|
|
39515
|
+
const renderPosts = React25.useMemo(() => {
|
|
39512
39516
|
if (postsSlot) return postsSlot;
|
|
39513
39517
|
if (!posts || posts.length === 0) return null;
|
|
39514
39518
|
return posts.map((post, index) => {
|
|
@@ -39633,7 +39637,7 @@ function BlogGridNinePosts({
|
|
|
39633
39637
|
pattern,
|
|
39634
39638
|
patternOpacity
|
|
39635
39639
|
}) {
|
|
39636
|
-
const renderedCtaAction =
|
|
39640
|
+
const renderedCtaAction = React25.useMemo(() => {
|
|
39637
39641
|
if (ctaSlot) return ctaSlot;
|
|
39638
39642
|
if (!ctaAction) return null;
|
|
39639
39643
|
const {
|
|
@@ -39658,7 +39662,7 @@ function BlogGridNinePosts({
|
|
|
39658
39662
|
}
|
|
39659
39663
|
);
|
|
39660
39664
|
}, [ctaSlot, ctaAction]);
|
|
39661
|
-
const renderedPosts =
|
|
39665
|
+
const renderedPosts = React25.useMemo(() => {
|
|
39662
39666
|
if (postsSlot) return postsSlot;
|
|
39663
39667
|
if (!posts || posts.length === 0) return null;
|
|
39664
39668
|
return posts.map((post) => {
|
|
@@ -39756,9 +39760,9 @@ var AppleCarousel = ({
|
|
|
39756
39760
|
className,
|
|
39757
39761
|
containerClassName
|
|
39758
39762
|
}) => {
|
|
39759
|
-
const carouselRef =
|
|
39760
|
-
const [canScrollLeft, setCanScrollLeft] =
|
|
39761
|
-
const [canScrollRight, setCanScrollRight] =
|
|
39763
|
+
const carouselRef = React25__default.useRef(null);
|
|
39764
|
+
const [canScrollLeft, setCanScrollLeft] = React25__default.useState(false);
|
|
39765
|
+
const [canScrollRight, setCanScrollRight] = React25__default.useState(true);
|
|
39762
39766
|
const [currentIndex, setCurrentIndex] = useState(0);
|
|
39763
39767
|
useEffect(() => {
|
|
39764
39768
|
if (carouselRef.current) {
|
|
@@ -39995,7 +39999,7 @@ function BlogCarouselAppleComponent({
|
|
|
39995
39999
|
containerClassName,
|
|
39996
40000
|
cardClassName
|
|
39997
40001
|
}) {
|
|
39998
|
-
const carouselCards =
|
|
40002
|
+
const carouselCards = React25.useMemo(() => {
|
|
39999
40003
|
if (!posts || posts.length === 0) return [];
|
|
40000
40004
|
return posts.map(
|
|
40001
40005
|
(post, idx) => ({
|
|
@@ -40007,7 +40011,7 @@ function BlogCarouselAppleComponent({
|
|
|
40007
40011
|
})
|
|
40008
40012
|
);
|
|
40009
40013
|
}, [posts]);
|
|
40010
|
-
const cardElements =
|
|
40014
|
+
const cardElements = React25.useMemo(() => {
|
|
40011
40015
|
if (!posts || posts.length === 0) return [];
|
|
40012
40016
|
return carouselCards.map((card, index) => {
|
|
40013
40017
|
const post = posts[index];
|
|
@@ -40092,7 +40096,7 @@ function ArticleHeroProseComponent({
|
|
|
40092
40096
|
description,
|
|
40093
40097
|
authorImage
|
|
40094
40098
|
} = post ?? {};
|
|
40095
|
-
const authorContent =
|
|
40099
|
+
const authorContent = React25.useMemo(() => {
|
|
40096
40100
|
if (authorSlot) return authorSlot;
|
|
40097
40101
|
if (!authorName) return null;
|
|
40098
40102
|
return /* @__PURE__ */ jsxs(
|
|
@@ -40126,7 +40130,7 @@ function ArticleHeroProseComponent({
|
|
|
40126
40130
|
dateFormat,
|
|
40127
40131
|
authorClassName
|
|
40128
40132
|
]);
|
|
40129
|
-
const heroMediaContent =
|
|
40133
|
+
const heroMediaContent = React25.useMemo(() => {
|
|
40130
40134
|
if (heroMediaSlot) return heroMediaSlot;
|
|
40131
40135
|
if (!image) return null;
|
|
40132
40136
|
return /* @__PURE__ */ jsx(
|
|
@@ -40227,7 +40231,7 @@ function ArticleSidebarStickyComponent({
|
|
|
40227
40231
|
pattern,
|
|
40228
40232
|
patternOpacity
|
|
40229
40233
|
}) {
|
|
40230
|
-
const backLinkContent =
|
|
40234
|
+
const backLinkContent = React25.useMemo(() => {
|
|
40231
40235
|
if (backLinkSlot) return backLinkSlot;
|
|
40232
40236
|
if (!backHref && !backText) return null;
|
|
40233
40237
|
return /* @__PURE__ */ jsxs(
|
|
@@ -40245,7 +40249,7 @@ function ArticleSidebarStickyComponent({
|
|
|
40245
40249
|
}
|
|
40246
40250
|
);
|
|
40247
40251
|
}, [backLinkSlot, backHref, backText, backIcon, backLinkClassName]);
|
|
40248
|
-
const renderAuthor =
|
|
40252
|
+
const renderAuthor = React25.useCallback(
|
|
40249
40253
|
(isMobile = false) => {
|
|
40250
40254
|
if (authorSlot) return authorSlot;
|
|
40251
40255
|
if (!authorName) return null;
|
|
@@ -40277,7 +40281,7 @@ function ArticleSidebarStickyComponent({
|
|
|
40277
40281
|
authorClassName
|
|
40278
40282
|
]
|
|
40279
40283
|
);
|
|
40280
|
-
const heroMediaContent =
|
|
40284
|
+
const heroMediaContent = React25.useMemo(() => {
|
|
40281
40285
|
if (heroMediaSlot) return heroMediaSlot;
|
|
40282
40286
|
if (!heroImageSrc) return null;
|
|
40283
40287
|
return /* @__PURE__ */ jsx(
|
|
@@ -40384,10 +40388,10 @@ function ArticleTocSidebarComponent({
|
|
|
40384
40388
|
patternOpacity
|
|
40385
40389
|
}) {
|
|
40386
40390
|
const ctaActions = ctaActionsProp ?? (ctaButtonText ? [{ label: ctaButtonText, href: ctaButtonHref || "#", variant: "default", className: "w-full" }] : []);
|
|
40387
|
-
const [activeSection, setActiveSection] =
|
|
40391
|
+
const [activeSection, setActiveSection] = React25.useState(
|
|
40388
40392
|
sections?.[0]?.id || ""
|
|
40389
40393
|
);
|
|
40390
|
-
|
|
40394
|
+
React25.useEffect(() => {
|
|
40391
40395
|
if (!enableTocTracking || !sections || sections.length === 0) return;
|
|
40392
40396
|
const observer = new IntersectionObserver(
|
|
40393
40397
|
(entries) => {
|
|
@@ -40405,12 +40409,12 @@ function ArticleTocSidebarComponent({
|
|
|
40405
40409
|
});
|
|
40406
40410
|
return () => observer.disconnect();
|
|
40407
40411
|
}, [sections, enableTocTracking]);
|
|
40408
|
-
const categoryContent =
|
|
40412
|
+
const categoryContent = React25.useMemo(() => {
|
|
40409
40413
|
if (categorySlot) return categorySlot;
|
|
40410
40414
|
if (!category) return null;
|
|
40411
40415
|
return /* @__PURE__ */ jsx(Badge, { variant: "secondary", children: category });
|
|
40412
40416
|
}, [categorySlot, category]);
|
|
40413
|
-
const authorContent =
|
|
40417
|
+
const authorContent = React25.useMemo(() => {
|
|
40414
40418
|
if (authorSlot) return authorSlot;
|
|
40415
40419
|
if (!authorName) return null;
|
|
40416
40420
|
return /* @__PURE__ */ jsxs("div", { className: cn("mt-6 flex items-center gap-4", authorClassName), children: [
|
|
@@ -40430,7 +40434,7 @@ function ArticleTocSidebarComponent({
|
|
|
40430
40434
|
] })
|
|
40431
40435
|
] });
|
|
40432
40436
|
}, [authorSlot, authorName, authorImage, authorHref, publishDate, readTime, authorClassName]);
|
|
40433
|
-
const heroMediaContent =
|
|
40437
|
+
const heroMediaContent = React25.useMemo(() => {
|
|
40434
40438
|
if (heroMediaSlot) return heroMediaSlot;
|
|
40435
40439
|
if (!heroImageSrc) return null;
|
|
40436
40440
|
return /* @__PURE__ */ jsx(
|
|
@@ -40443,7 +40447,7 @@ function ArticleTocSidebarComponent({
|
|
|
40443
40447
|
}
|
|
40444
40448
|
);
|
|
40445
40449
|
}, [heroMediaSlot, heroImageSrc, heroImageAlt, heroImageClassName, optixFlowConfig]);
|
|
40446
|
-
const tocContent =
|
|
40450
|
+
const tocContent = React25.useMemo(() => {
|
|
40447
40451
|
if (tocSlot) return tocSlot;
|
|
40448
40452
|
if (!sections || sections.length === 0) return null;
|
|
40449
40453
|
return /* @__PURE__ */ jsxs("div", { className: cn("rounded-lg border p-4", tocClassName), children: [
|
|
@@ -40451,7 +40455,7 @@ function ArticleTocSidebarComponent({
|
|
|
40451
40455
|
/* @__PURE__ */ jsx("nav", { className: "space-y-2", children: sections.map((section) => {
|
|
40452
40456
|
const isActive = activeSection === section.id;
|
|
40453
40457
|
if (renderSectionLink) {
|
|
40454
|
-
return /* @__PURE__ */ jsx(
|
|
40458
|
+
return /* @__PURE__ */ jsx(React25.Fragment, { children: renderSectionLink(section, isActive) }, section.id);
|
|
40455
40459
|
}
|
|
40456
40460
|
return /* @__PURE__ */ jsx(
|
|
40457
40461
|
Pressable,
|
|
@@ -40468,7 +40472,7 @@ function ArticleTocSidebarComponent({
|
|
|
40468
40472
|
}) })
|
|
40469
40473
|
] });
|
|
40470
40474
|
}, [tocSlot, sections, activeSection, renderSectionLink, tocClassName]);
|
|
40471
|
-
const ctaContent =
|
|
40475
|
+
const ctaContent = React25.useMemo(() => {
|
|
40472
40476
|
if (ctaSlot) return ctaSlot;
|
|
40473
40477
|
if (!ctaTitle && !ctaDescription && (!ctaActions || ctaActions.length === 0)) return null;
|
|
40474
40478
|
return /* @__PURE__ */ jsxs("div", { className: cn("rounded-lg border p-4", getNestedCardBg(background, "subtle"), getNestedCardTextColor(background), ctaClassName), children: [
|
|
@@ -40557,11 +40561,11 @@ function ArticleBreadcrumbSocialComponent({
|
|
|
40557
40561
|
patternOpacity
|
|
40558
40562
|
}) {
|
|
40559
40563
|
const author = authorProp ?? (authorName ? { name: authorName, image: authorImage, role: authorRole } : void 0);
|
|
40560
|
-
const [activeSection, setActiveSection] =
|
|
40564
|
+
const [activeSection, setActiveSection] = React25.useState(
|
|
40561
40565
|
sections?.[0]?.id || ""
|
|
40562
40566
|
);
|
|
40563
|
-
const [showBackToTop, setShowBackToTop] =
|
|
40564
|
-
|
|
40567
|
+
const [showBackToTop, setShowBackToTop] = React25.useState(false);
|
|
40568
|
+
React25.useEffect(() => {
|
|
40565
40569
|
if (!enableTocTracking || !sections || sections.length === 0) return;
|
|
40566
40570
|
const observer = new IntersectionObserver(
|
|
40567
40571
|
(entries) => {
|
|
@@ -40579,7 +40583,7 @@ function ArticleBreadcrumbSocialComponent({
|
|
|
40579
40583
|
});
|
|
40580
40584
|
return () => observer.disconnect();
|
|
40581
40585
|
}, [sections, enableTocTracking]);
|
|
40582
|
-
|
|
40586
|
+
React25.useEffect(() => {
|
|
40583
40587
|
if (!enableBackToTop) return;
|
|
40584
40588
|
const handleScroll = () => {
|
|
40585
40589
|
setShowBackToTop(window.scrollY > 400);
|
|
@@ -40587,15 +40591,15 @@ function ArticleBreadcrumbSocialComponent({
|
|
|
40587
40591
|
window.addEventListener("scroll", handleScroll);
|
|
40588
40592
|
return () => window.removeEventListener("scroll", handleScroll);
|
|
40589
40593
|
}, [enableBackToTop]);
|
|
40590
|
-
const scrollToTop =
|
|
40594
|
+
const scrollToTop = React25.useCallback(() => {
|
|
40591
40595
|
window.scrollTo({ top: 0, behavior: "smooth" });
|
|
40592
40596
|
}, []);
|
|
40593
|
-
const breadcrumbsContent =
|
|
40597
|
+
const breadcrumbsContent = React25.useMemo(() => {
|
|
40594
40598
|
if (breadcrumbsSlot) return breadcrumbsSlot;
|
|
40595
40599
|
if (!breadcrumbs || breadcrumbs.length === 0) return null;
|
|
40596
40600
|
return /* @__PURE__ */ jsx(Breadcrumb, { className: cn("mb-8", breadcrumbClassName), children: /* @__PURE__ */ jsxs(BreadcrumbList, { children: [
|
|
40597
40601
|
/* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbLink, { asChild: true, children: /* @__PURE__ */ jsx(Pressable, { href: "#", children: /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/home", size: 16 }) }) }) }),
|
|
40598
|
-
breadcrumbs.map((crumb, index) => /* @__PURE__ */ jsxs(
|
|
40602
|
+
breadcrumbs.map((crumb, index) => /* @__PURE__ */ jsxs(React25.Fragment, { children: [
|
|
40599
40603
|
/* @__PURE__ */ jsx(BreadcrumbSeparator, {}),
|
|
40600
40604
|
/* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbLink, { asChild: true, children: /* @__PURE__ */ jsx(Pressable, { href: crumb.href, children: crumb.label }) }) })
|
|
40601
40605
|
] }, index)),
|
|
@@ -40605,7 +40609,7 @@ function ArticleBreadcrumbSocialComponent({
|
|
|
40605
40609
|
] })
|
|
40606
40610
|
] }) });
|
|
40607
40611
|
}, [breadcrumbsSlot, breadcrumbs, currentPage, breadcrumbClassName]);
|
|
40608
|
-
const authorContent =
|
|
40612
|
+
const authorContent = React25.useMemo(() => {
|
|
40609
40613
|
if (authorSlot) return authorSlot;
|
|
40610
40614
|
if (!author) return null;
|
|
40611
40615
|
return /* @__PURE__ */ jsxs(
|
|
@@ -40628,7 +40632,7 @@ function ArticleBreadcrumbSocialComponent({
|
|
|
40628
40632
|
}
|
|
40629
40633
|
);
|
|
40630
40634
|
}, [authorSlot, author, publishDate, readTime, authorClassName]);
|
|
40631
|
-
const heroMediaContent =
|
|
40635
|
+
const heroMediaContent = React25.useMemo(() => {
|
|
40632
40636
|
if (heroMediaSlot) return heroMediaSlot;
|
|
40633
40637
|
if (!heroImageSrc) return null;
|
|
40634
40638
|
return /* @__PURE__ */ jsx(
|
|
@@ -40650,7 +40654,7 @@ function ArticleBreadcrumbSocialComponent({
|
|
|
40650
40654
|
heroImageClassName,
|
|
40651
40655
|
optixFlowConfig
|
|
40652
40656
|
]);
|
|
40653
|
-
const tocContent =
|
|
40657
|
+
const tocContent = React25.useMemo(() => {
|
|
40654
40658
|
if (tocSlot) return tocSlot;
|
|
40655
40659
|
if (!sections || sections.length === 0) return null;
|
|
40656
40660
|
return /* @__PURE__ */ jsxs("div", { className: cn("rounded-lg border p-4", tocClassName), children: [
|
|
@@ -40658,7 +40662,7 @@ function ArticleBreadcrumbSocialComponent({
|
|
|
40658
40662
|
/* @__PURE__ */ jsx("nav", { className: "space-y-2", children: sections.map((section) => {
|
|
40659
40663
|
const isActive = activeSection === section.id;
|
|
40660
40664
|
if (renderSectionLink) {
|
|
40661
|
-
return /* @__PURE__ */ jsx(
|
|
40665
|
+
return /* @__PURE__ */ jsx(React25.Fragment, { children: renderSectionLink(section, isActive) }, section.id);
|
|
40662
40666
|
}
|
|
40663
40667
|
return /* @__PURE__ */ jsx(
|
|
40664
40668
|
Pressable,
|
|
@@ -40763,11 +40767,11 @@ function ArticleCompactTocComponent({
|
|
|
40763
40767
|
pattern,
|
|
40764
40768
|
patternOpacity
|
|
40765
40769
|
}) {
|
|
40766
|
-
const [activeSection, setActiveSection] =
|
|
40770
|
+
const [activeSection, setActiveSection] = React25.useState(
|
|
40767
40771
|
sections?.[0]?.id || ""
|
|
40768
40772
|
);
|
|
40769
|
-
const [isTocOpen, setIsTocOpen] =
|
|
40770
|
-
|
|
40773
|
+
const [isTocOpen, setIsTocOpen] = React25.useState(false);
|
|
40774
|
+
React25.useEffect(() => {
|
|
40771
40775
|
if (!enableTocTracking) return;
|
|
40772
40776
|
const observer = new IntersectionObserver(
|
|
40773
40777
|
(entries) => {
|
|
@@ -40785,12 +40789,12 @@ function ArticleCompactTocComponent({
|
|
|
40785
40789
|
});
|
|
40786
40790
|
return () => observer.disconnect();
|
|
40787
40791
|
}, [sections, enableTocTracking]);
|
|
40788
|
-
const breadcrumbsContent =
|
|
40792
|
+
const breadcrumbsContent = React25.useMemo(() => {
|
|
40789
40793
|
if (breadcrumbsSlot) return breadcrumbsSlot;
|
|
40790
40794
|
if (!breadcrumbs && !currentPage) return null;
|
|
40791
40795
|
return /* @__PURE__ */ jsx(Breadcrumb, { className: cn("mb-6 md:mb-20", breadcrumbClassName), children: /* @__PURE__ */ jsxs(BreadcrumbList, { children: [
|
|
40792
40796
|
/* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbLink, { asChild: true, children: /* @__PURE__ */ jsx(Pressable, { href: "#", children: /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/home", size: 16 }) }) }) }),
|
|
40793
|
-
breadcrumbs?.map((crumb, index) => /* @__PURE__ */ jsxs(
|
|
40797
|
+
breadcrumbs?.map((crumb, index) => /* @__PURE__ */ jsxs(React25.Fragment, { children: [
|
|
40794
40798
|
/* @__PURE__ */ jsx(BreadcrumbSeparator, {}),
|
|
40795
40799
|
/* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbLink, { asChild: true, children: /* @__PURE__ */ jsx(Pressable, { href: crumb.href, children: crumb.label }) }) })
|
|
40796
40800
|
] }, index)),
|
|
@@ -40798,7 +40802,7 @@ function ArticleCompactTocComponent({
|
|
|
40798
40802
|
/* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbPage, { children: currentPage }) })
|
|
40799
40803
|
] }) });
|
|
40800
40804
|
}, [breadcrumbsSlot, breadcrumbs, currentPage, breadcrumbClassName]);
|
|
40801
|
-
const shareContent =
|
|
40805
|
+
const shareContent = React25.useMemo(() => {
|
|
40802
40806
|
if (shareSlot) return shareSlot;
|
|
40803
40807
|
if (!socialLinks || socialLinks.length === 0) return null;
|
|
40804
40808
|
return /* @__PURE__ */ jsxs("div", { className: cn("mt-6 flex items-center gap-2", shareClassName), children: [
|
|
@@ -40815,13 +40819,13 @@ function ArticleCompactTocComponent({
|
|
|
40815
40819
|
))
|
|
40816
40820
|
] });
|
|
40817
40821
|
}, [shareSlot, socialLinks, shareClassName]);
|
|
40818
|
-
const renderTocLinks =
|
|
40822
|
+
const renderTocLinks = React25.useCallback(
|
|
40819
40823
|
(onLinkClick) => {
|
|
40820
40824
|
if (!sections) return null;
|
|
40821
40825
|
return sections.map((section) => {
|
|
40822
40826
|
const isActive = activeSection === section.id;
|
|
40823
40827
|
if (renderSectionLink) {
|
|
40824
|
-
return /* @__PURE__ */ jsx(
|
|
40828
|
+
return /* @__PURE__ */ jsx(React25.Fragment, { children: renderSectionLink(section, isActive) }, section.id);
|
|
40825
40829
|
}
|
|
40826
40830
|
return /* @__PURE__ */ jsx(
|
|
40827
40831
|
Pressable,
|
|
@@ -40840,7 +40844,7 @@ function ArticleCompactTocComponent({
|
|
|
40840
40844
|
},
|
|
40841
40845
|
[sections, activeSection, renderSectionLink]
|
|
40842
40846
|
);
|
|
40843
|
-
const tocContent =
|
|
40847
|
+
const tocContent = React25.useMemo(() => {
|
|
40844
40848
|
if (tocSlot) return tocSlot;
|
|
40845
40849
|
if (!sections || sections.length === 0) return null;
|
|
40846
40850
|
return /* @__PURE__ */ jsx("div", { className: "mb-8 lg:hidden", children: /* @__PURE__ */ jsxs(Popover, { open: isTocOpen, onOpenChange: setIsTocOpen, children: [
|
|
@@ -40873,7 +40877,7 @@ function ArticleCompactTocComponent({
|
|
|
40873
40877
|
)
|
|
40874
40878
|
] }) });
|
|
40875
40879
|
}, [tocSlot, sections, isTocOpen, tocClassName, renderTocLinks]);
|
|
40876
|
-
const desktopTocContent =
|
|
40880
|
+
const desktopTocContent = React25.useMemo(() => {
|
|
40877
40881
|
if (tocSlot) return null;
|
|
40878
40882
|
if (!sections || sections.length === 0) return null;
|
|
40879
40883
|
return /* @__PURE__ */ jsx(
|
|
@@ -40890,7 +40894,7 @@ function ArticleCompactTocComponent({
|
|
|
40890
40894
|
}
|
|
40891
40895
|
);
|
|
40892
40896
|
}, [tocSlot, sections, tocClassName, renderTocLinks]);
|
|
40893
|
-
const heroMediaContent =
|
|
40897
|
+
const heroMediaContent = React25.useMemo(() => {
|
|
40894
40898
|
if (heroMediaSlot) return heroMediaSlot;
|
|
40895
40899
|
if (!heroImageSrc) return null;
|
|
40896
40900
|
return /* @__PURE__ */ jsx(
|
|
@@ -41020,10 +41024,10 @@ function ArticleChaptersAuthorComponent({
|
|
|
41020
41024
|
variant: "default"
|
|
41021
41025
|
}
|
|
41022
41026
|
] : []);
|
|
41023
|
-
const [activeChapter, setActiveChapter] =
|
|
41027
|
+
const [activeChapter, setActiveChapter] = React25.useState(
|
|
41024
41028
|
chapters?.[0]?.id || ""
|
|
41025
41029
|
);
|
|
41026
|
-
|
|
41030
|
+
React25.useEffect(() => {
|
|
41027
41031
|
if (!enableChapterTracking || !chapters || chapters.length === 0) return;
|
|
41028
41032
|
const observer = new IntersectionObserver(
|
|
41029
41033
|
(entries) => {
|
|
@@ -41041,12 +41045,12 @@ function ArticleChaptersAuthorComponent({
|
|
|
41041
41045
|
});
|
|
41042
41046
|
return () => observer.disconnect();
|
|
41043
41047
|
}, [chapters, enableChapterTracking]);
|
|
41044
|
-
const breadcrumbsContent =
|
|
41048
|
+
const breadcrumbsContent = React25.useMemo(() => {
|
|
41045
41049
|
if (breadcrumbsSlot) return breadcrumbsSlot;
|
|
41046
41050
|
if (!breadcrumbs || breadcrumbs.length === 0) return null;
|
|
41047
41051
|
return /* @__PURE__ */ jsx(Breadcrumb, { className: cn("mb-8 md:mb-20", breadcrumbClassName), children: /* @__PURE__ */ jsxs(BreadcrumbList, { children: [
|
|
41048
41052
|
/* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbLink, { asChild: true, children: /* @__PURE__ */ jsx(Pressable, { href: "#", children: /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/home", size: 16 }) }) }) }),
|
|
41049
|
-
breadcrumbs.map((crumb, index) => /* @__PURE__ */ jsxs(
|
|
41053
|
+
breadcrumbs.map((crumb, index) => /* @__PURE__ */ jsxs(React25.Fragment, { children: [
|
|
41050
41054
|
/* @__PURE__ */ jsx(BreadcrumbSeparator, {}),
|
|
41051
41055
|
/* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbLink, { asChild: true, children: /* @__PURE__ */ jsx(Pressable, { href: crumb.href, children: crumb.label }) }) })
|
|
41052
41056
|
] }, index)),
|
|
@@ -41054,7 +41058,7 @@ function ArticleChaptersAuthorComponent({
|
|
|
41054
41058
|
/* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbPage, { children: typeof currentPage === "string" ? currentPage : currentPage }) })
|
|
41055
41059
|
] }) });
|
|
41056
41060
|
}, [breadcrumbsSlot, breadcrumbs, currentPage, breadcrumbClassName]);
|
|
41057
|
-
const chaptersNavContent =
|
|
41061
|
+
const chaptersNavContent = React25.useMemo(() => {
|
|
41058
41062
|
if (chaptersSlot) return chaptersSlot;
|
|
41059
41063
|
if (!chapters || chapters.length === 0) return null;
|
|
41060
41064
|
return /* @__PURE__ */ jsxs("div", { className: cn("rounded-lg border p-4", chaptersClassName), children: [
|
|
@@ -41062,7 +41066,7 @@ function ArticleChaptersAuthorComponent({
|
|
|
41062
41066
|
/* @__PURE__ */ jsx("nav", { className: "space-y-2", children: chapters.map((chapter) => {
|
|
41063
41067
|
const isActive = activeChapter === chapter.id;
|
|
41064
41068
|
if (renderChapterLink) {
|
|
41065
|
-
return /* @__PURE__ */ jsx(
|
|
41069
|
+
return /* @__PURE__ */ jsx(React25.Fragment, { children: renderChapterLink(chapter, isActive) }, chapter.id);
|
|
41066
41070
|
}
|
|
41067
41071
|
return /* @__PURE__ */ jsxs(
|
|
41068
41072
|
Pressable,
|
|
@@ -41088,7 +41092,7 @@ function ArticleChaptersAuthorComponent({
|
|
|
41088
41092
|
renderChapterLink,
|
|
41089
41093
|
chaptersClassName
|
|
41090
41094
|
]);
|
|
41091
|
-
const authorCardContent =
|
|
41095
|
+
const authorCardContent = React25.useMemo(() => {
|
|
41092
41096
|
if (authorSlot) return authorSlot;
|
|
41093
41097
|
if (!author) return null;
|
|
41094
41098
|
let socialLinksContent = null;
|
|
@@ -41149,7 +41153,7 @@ function ArticleChaptersAuthorComponent({
|
|
|
41149
41153
|
socialLinksContent
|
|
41150
41154
|
] });
|
|
41151
41155
|
}, [authorSlot, author, authorClassName]);
|
|
41152
|
-
const heroMediaContent =
|
|
41156
|
+
const heroMediaContent = React25.useMemo(() => {
|
|
41153
41157
|
if (heroMediaSlot) return heroMediaSlot;
|
|
41154
41158
|
if (!heroImageSrc) return null;
|
|
41155
41159
|
return /* @__PURE__ */ jsx(
|
|
@@ -41171,7 +41175,7 @@ function ArticleChaptersAuthorComponent({
|
|
|
41171
41175
|
heroImageClassName,
|
|
41172
41176
|
optixFlowConfig
|
|
41173
41177
|
]);
|
|
41174
|
-
const conclusionContent =
|
|
41178
|
+
const conclusionContent = React25.useMemo(() => {
|
|
41175
41179
|
if (conclusionSlot) return conclusionSlot;
|
|
41176
41180
|
if (!conclusionTitle && !conclusionDescription && (!conclusionActions || conclusionActions.length === 0))
|
|
41177
41181
|
return null;
|
|
@@ -41316,7 +41320,7 @@ function ArticleSplitAnimatedComponent({
|
|
|
41316
41320
|
}) {
|
|
41317
41321
|
const ctaActions = ctaActionsProp ?? (ctaText ? [{ label: ctaText, href: ctaHref || "#", variant: "default", size: "lg" }] : []);
|
|
41318
41322
|
const MotionWrapper = enableAnimations ? motion.div : "div";
|
|
41319
|
-
const categoryContent =
|
|
41323
|
+
const categoryContent = React25.useMemo(() => {
|
|
41320
41324
|
if (categorySlot) return categorySlot;
|
|
41321
41325
|
if (!category) return null;
|
|
41322
41326
|
return /* @__PURE__ */ jsx(
|
|
@@ -41331,7 +41335,7 @@ function ArticleSplitAnimatedComponent({
|
|
|
41331
41335
|
}
|
|
41332
41336
|
);
|
|
41333
41337
|
}, [categorySlot, category, categoryHref, categoryClassName]);
|
|
41334
|
-
const heroMediaContent =
|
|
41338
|
+
const heroMediaContent = React25.useMemo(() => {
|
|
41335
41339
|
if (heroMediaSlot) return heroMediaSlot;
|
|
41336
41340
|
if (!image) return null;
|
|
41337
41341
|
return /* @__PURE__ */ jsx(
|
|
@@ -41344,7 +41348,7 @@ function ArticleSplitAnimatedComponent({
|
|
|
41344
41348
|
}
|
|
41345
41349
|
);
|
|
41346
41350
|
}, [heroMediaSlot, image, imageAlt, title, optixFlowConfig]);
|
|
41347
|
-
const authorContent =
|
|
41351
|
+
const authorContent = React25.useMemo(() => {
|
|
41348
41352
|
if (authorSlot) return authorSlot;
|
|
41349
41353
|
if (!authorName) return null;
|
|
41350
41354
|
return /* @__PURE__ */ jsxs("div", { className: cn("mt-8 flex items-center gap-4", authorClassName), children: [
|
|
@@ -41358,7 +41362,7 @@ function ArticleSplitAnimatedComponent({
|
|
|
41358
41362
|
] })
|
|
41359
41363
|
] });
|
|
41360
41364
|
}, [authorSlot, authorName, authorImage, authorHref, authorRole, authorClassName]);
|
|
41361
|
-
const ctaContent =
|
|
41365
|
+
const ctaContent = React25.useMemo(() => {
|
|
41362
41366
|
if (ctaSlot) return ctaSlot;
|
|
41363
41367
|
if (!ctaActions || ctaActions.length === 0) return null;
|
|
41364
41368
|
return /* @__PURE__ */ jsx("div", { className: cn("mt-8 flex flex-wrap gap-3", ctaClassName), children: ctaActions.map((action, index) => {
|
|
@@ -42781,7 +42785,7 @@ function FaqSidebarNavigation({
|
|
|
42781
42785
|
accordionTriggerClassName,
|
|
42782
42786
|
accordionContentClassName
|
|
42783
42787
|
}) {
|
|
42784
|
-
const [activeCategory, setActiveCategory] =
|
|
42788
|
+
const [activeCategory, setActiveCategory] = React25.useState(
|
|
42785
42789
|
categories && categories.length > 1 ? "all" : categories?.[0]?.id || ""
|
|
42786
42790
|
);
|
|
42787
42791
|
const filteredCategories = useMemo(() => {
|
|
@@ -43670,7 +43674,7 @@ function FaqSplitHero({
|
|
|
43670
43674
|
imageArea
|
|
43671
43675
|
] }) });
|
|
43672
43676
|
}
|
|
43673
|
-
var Controls =
|
|
43677
|
+
var Controls = React25.memo(
|
|
43674
43678
|
({
|
|
43675
43679
|
handleNext,
|
|
43676
43680
|
handlePrevious,
|
|
@@ -43701,7 +43705,7 @@ var Controls = React23.memo(
|
|
|
43701
43705
|
] });
|
|
43702
43706
|
}
|
|
43703
43707
|
);
|
|
43704
|
-
var FeatureCard =
|
|
43708
|
+
var FeatureCard = React25.memo(
|
|
43705
43709
|
({ feature, isActive, onClick }) => {
|
|
43706
43710
|
const variants2 = useMemo(
|
|
43707
43711
|
() => ({
|
|
@@ -43809,7 +43813,7 @@ var FeatureCard = React23.memo(
|
|
|
43809
43813
|
) });
|
|
43810
43814
|
}
|
|
43811
43815
|
);
|
|
43812
|
-
var FeaturesDesktop =
|
|
43816
|
+
var FeaturesDesktop = React25.memo(
|
|
43813
43817
|
({
|
|
43814
43818
|
features,
|
|
43815
43819
|
handleNext,
|
|
@@ -43843,7 +43847,7 @@ var FeaturesDesktop = React23.memo(
|
|
|
43843
43847
|
] });
|
|
43844
43848
|
}
|
|
43845
43849
|
);
|
|
43846
|
-
var FeaturesMobile =
|
|
43850
|
+
var FeaturesMobile = React25.memo(
|
|
43847
43851
|
({
|
|
43848
43852
|
features,
|
|
43849
43853
|
handleNext,
|
|
@@ -43934,8 +43938,8 @@ function FeatureAnimatedCarousel({
|
|
|
43934
43938
|
spacing = "py-12 md:py-32",
|
|
43935
43939
|
containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8"
|
|
43936
43940
|
}) {
|
|
43937
|
-
const [activeIndex, setActiveIndex] =
|
|
43938
|
-
const [direction, setDirection] =
|
|
43941
|
+
const [activeIndex, setActiveIndex] = React25.useState(0);
|
|
43942
|
+
const [direction, setDirection] = React25.useState(1);
|
|
43939
43943
|
const handleNext = useCallback(() => {
|
|
43940
43944
|
if (features && activeIndex < features.length - 1) {
|
|
43941
43945
|
setDirection(1);
|
|
@@ -44797,7 +44801,7 @@ function FooterInfoCardsAccordion({
|
|
|
44797
44801
|
patternOpacity,
|
|
44798
44802
|
optixFlowConfig
|
|
44799
44803
|
}) {
|
|
44800
|
-
const [email, setEmail] =
|
|
44804
|
+
const [email, setEmail] = React25.useState("");
|
|
44801
44805
|
(/* @__PURE__ */ new Date()).getFullYear();
|
|
44802
44806
|
const handleSubmit = (e) => {
|
|
44803
44807
|
e.preventDefault();
|
|
@@ -45102,13 +45106,13 @@ function CaseStudiesImageGrid({
|
|
|
45102
45106
|
patternOpacity,
|
|
45103
45107
|
optixFlowConfig
|
|
45104
45108
|
}) {
|
|
45105
|
-
const getGridClass =
|
|
45109
|
+
const getGridClass = React25.useCallback((index) => {
|
|
45106
45110
|
if (index === 0 || index === 4) {
|
|
45107
45111
|
return "row-span-2 aspect-square lg:aspect-auto";
|
|
45108
45112
|
}
|
|
45109
45113
|
return "aspect-3/2 md:aspect-2/1";
|
|
45110
45114
|
}, []);
|
|
45111
|
-
const renderedItems =
|
|
45115
|
+
const renderedItems = React25.useMemo(() => {
|
|
45112
45116
|
if (itemsSlot) return itemsSlot;
|
|
45113
45117
|
if (!items || items.length === 0) return null;
|
|
45114
45118
|
return items.map((item, index) => /* @__PURE__ */ jsxs(
|
|
@@ -45194,7 +45198,7 @@ function CaseStudiesTestimonialStats({
|
|
|
45194
45198
|
patternOpacity,
|
|
45195
45199
|
optixFlowConfig
|
|
45196
45200
|
}) {
|
|
45197
|
-
const renderedTestimonials =
|
|
45201
|
+
const renderedTestimonials = React25.useMemo(() => {
|
|
45198
45202
|
if (testimonialsSlot) return testimonialsSlot;
|
|
45199
45203
|
if (!testimonials || testimonials.length === 0) return null;
|
|
45200
45204
|
return testimonials.map((testimonial, index) => /* @__PURE__ */ jsxs("div", { className: testimonialItemClassName, children: [
|
|
@@ -48667,7 +48671,7 @@ function CaseStudiesFeaturedBorder({
|
|
|
48667
48671
|
patternOpacity,
|
|
48668
48672
|
optixFlowConfig
|
|
48669
48673
|
}) {
|
|
48670
|
-
const renderedFeatured =
|
|
48674
|
+
const renderedFeatured = React25.useMemo(() => {
|
|
48671
48675
|
if (featuredSlot) return featuredSlot;
|
|
48672
48676
|
if (!featuredCaseStudy) return null;
|
|
48673
48677
|
return /* @__PURE__ */ jsxs(
|
|
@@ -48741,7 +48745,7 @@ function CaseStudiesFeaturedBorder({
|
|
|
48741
48745
|
featuredImageClassName,
|
|
48742
48746
|
optixFlowConfig
|
|
48743
48747
|
]);
|
|
48744
|
-
const renderedCaseStudies =
|
|
48748
|
+
const renderedCaseStudies = React25.useMemo(() => {
|
|
48745
48749
|
if (caseStudiesSlot) return caseStudiesSlot;
|
|
48746
48750
|
if (!caseStudies || caseStudies.length === 0) return null;
|
|
48747
48751
|
return caseStudies.map((item, idx) => /* @__PURE__ */ jsxs(
|
|
@@ -48850,7 +48854,7 @@ function CaseStudiesStatsCard({
|
|
|
48850
48854
|
patternOpacity,
|
|
48851
48855
|
optixFlowConfig
|
|
48852
48856
|
}) {
|
|
48853
|
-
const renderedStats =
|
|
48857
|
+
const renderedStats = React25.useMemo(() => {
|
|
48854
48858
|
if (statsSlot) return statsSlot;
|
|
48855
48859
|
if (!stats || stats.length === 0) return null;
|
|
48856
48860
|
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: [
|
|
@@ -48858,7 +48862,7 @@ function CaseStudiesStatsCard({
|
|
|
48858
48862
|
/* @__PURE__ */ jsx("div", { className: "text-sm font-medium text-muted-foreground", children: item.text })
|
|
48859
48863
|
] }, `stats-${i}`)) });
|
|
48860
48864
|
}, [statsSlot, stats, statsClassName]);
|
|
48861
|
-
const renderedAuthor =
|
|
48865
|
+
const renderedAuthor = React25.useMemo(() => {
|
|
48862
48866
|
if (authorSlot) return authorSlot;
|
|
48863
48867
|
if (!author) return null;
|
|
48864
48868
|
return /* @__PURE__ */ jsxs("div", { className: cn("flex items-center gap-2.5", authorClassName), children: [
|
|
@@ -48872,7 +48876,7 @@ function CaseStudiesStatsCard({
|
|
|
48872
48876
|
] })
|
|
48873
48877
|
] });
|
|
48874
48878
|
}, [authorSlot, author, authorClassName]);
|
|
48875
|
-
const renderedActions =
|
|
48879
|
+
const renderedActions = React25.useMemo(() => {
|
|
48876
48880
|
if (actionsSlot) return actionsSlot;
|
|
48877
48881
|
if (!actions || actions.length === 0) return null;
|
|
48878
48882
|
return /* @__PURE__ */ jsx("div", { className: cn("shrink-0", actionsClassName), children: actions.map((action, index) => {
|
|
@@ -55913,7 +55917,7 @@ function HeroSplitImageNewsletter({
|
|
|
55913
55917
|
onError,
|
|
55914
55918
|
uploadTokens
|
|
55915
55919
|
});
|
|
55916
|
-
const renderForm =
|
|
55920
|
+
const renderForm = React25.useMemo(() => {
|
|
55917
55921
|
if (formSlot) return formSlot;
|
|
55918
55922
|
if (!formFields || formFields.length === 0) return null;
|
|
55919
55923
|
const defaultButtonAction = {
|
|
@@ -55992,7 +55996,7 @@ function HeroSplitImageNewsletter({
|
|
|
55992
55996
|
resetUpload,
|
|
55993
55997
|
resetSubmissionState
|
|
55994
55998
|
]);
|
|
55995
|
-
const renderImage =
|
|
55999
|
+
const renderImage = React25.useMemo(() => {
|
|
55996
56000
|
if (imageSlot) return imageSlot;
|
|
55997
56001
|
if (!image) return null;
|
|
55998
56002
|
return /* @__PURE__ */ jsx("div", { className: "relative lg:w-1/2", children: /* @__PURE__ */ jsx(
|
|
@@ -57420,7 +57424,7 @@ function HeroSaasDashboardPreview({
|
|
|
57420
57424
|
onError,
|
|
57421
57425
|
uploadTokens
|
|
57422
57426
|
});
|
|
57423
|
-
const renderBadge =
|
|
57427
|
+
const renderBadge = React25.useMemo(() => {
|
|
57424
57428
|
if (badgeSlot) return badgeSlot;
|
|
57425
57429
|
return /* @__PURE__ */ jsxs(
|
|
57426
57430
|
"div",
|
|
@@ -57435,7 +57439,7 @@ function HeroSaasDashboardPreview({
|
|
|
57435
57439
|
}
|
|
57436
57440
|
);
|
|
57437
57441
|
}, [badgeSlot, badgeIcon, badgeText]);
|
|
57438
|
-
const renderForm =
|
|
57442
|
+
const renderForm = React25.useMemo(() => {
|
|
57439
57443
|
if (formSlot) return formSlot;
|
|
57440
57444
|
const defaultButtonAction = {
|
|
57441
57445
|
label: "Start Free Trial",
|
|
@@ -57443,7 +57447,7 @@ function HeroSaasDashboardPreview({
|
|
|
57443
57447
|
className: "h-12"
|
|
57444
57448
|
};
|
|
57445
57449
|
const action = buttonAction || defaultButtonAction;
|
|
57446
|
-
return /* @__PURE__ */ jsx("div", { className: "mt-
|
|
57450
|
+
return /* @__PURE__ */ jsx("div", { className: "mt-4 md:mt-6 w-full flex items-center justify-center", children: /* @__PURE__ */ jsxs(
|
|
57447
57451
|
Form,
|
|
57448
57452
|
{
|
|
57449
57453
|
form,
|
|
@@ -57510,10 +57514,10 @@ function HeroSaasDashboardPreview({
|
|
|
57510
57514
|
resetUpload,
|
|
57511
57515
|
resetSubmissionState
|
|
57512
57516
|
]);
|
|
57513
|
-
const renderBrowserPreview =
|
|
57517
|
+
const renderBrowserPreview = React25.useMemo(() => {
|
|
57514
57518
|
if (browserPreviewSlot) return browserPreviewSlot;
|
|
57515
57519
|
if (!browserPreview) return null;
|
|
57516
|
-
return /* @__PURE__ */ jsxs("div", { className: cn("relative mt-20", previewClassName), children: [
|
|
57520
|
+
return /* @__PURE__ */ jsxs("div", { className: cn("relative mt-12 md:mt-20", previewClassName), children: [
|
|
57517
57521
|
/* @__PURE__ */ jsx("div", { className: "absolute inset-0 z-10 pointer-events-none" }),
|
|
57518
57522
|
/* @__PURE__ */ jsxs(
|
|
57519
57523
|
"div",
|
|
@@ -57561,12 +57565,12 @@ function HeroSaasDashboardPreview({
|
|
|
57561
57565
|
patternOpacity,
|
|
57562
57566
|
className: cn(className),
|
|
57563
57567
|
containerClassName,
|
|
57564
|
-
children: /* @__PURE__ */ jsxs("div", { className: "pt-10 md:pt-0", children: [
|
|
57568
|
+
children: /* @__PURE__ */ jsxs("div", { className: "pt-10 md:pt-0 flex flex-col items-center justify-center", children: [
|
|
57565
57569
|
/* @__PURE__ */ jsxs(
|
|
57566
57570
|
"div",
|
|
57567
57571
|
{
|
|
57568
57572
|
className: cn(
|
|
57569
|
-
"
|
|
57573
|
+
"mx-auto text-center flex flex-col items-center gap-4 md:gap-6 max-w-full md:max-w-md",
|
|
57570
57574
|
headerClassName
|
|
57571
57575
|
),
|
|
57572
57576
|
children: [
|
|
@@ -59761,7 +59765,7 @@ function HeroEcommerceProductShowcase({
|
|
|
59761
59765
|
"flex flex-col md:flex-row items-center gap-4 md:gap-6 pt-8 md:pt-12",
|
|
59762
59766
|
statsClassName
|
|
59763
59767
|
),
|
|
59764
|
-
children: stats.map((stat, index) => /* @__PURE__ */ jsxs(
|
|
59768
|
+
children: stats.map((stat, index) => /* @__PURE__ */ jsxs(React25.Fragment, { children: [
|
|
59765
59769
|
index > 0 && /* @__PURE__ */ jsx("div", { className: "h-12 w-px bg-border hidden md:flex" }),
|
|
59766
59770
|
/* @__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: [
|
|
59767
59771
|
/* @__PURE__ */ jsxs(
|
|
@@ -60167,6 +60171,14 @@ function HeroPricingComparison({
|
|
|
60167
60171
|
}
|
|
60168
60172
|
);
|
|
60169
60173
|
}
|
|
60174
|
+
var DEFAULT_STYLE_RULES3 = {
|
|
60175
|
+
formContainer: "mt-10 flex justify-center items-center w-full max-w-md flex-col gap-4 sm:flex-row",
|
|
60176
|
+
fieldsContainer: "",
|
|
60177
|
+
fieldClassName: "",
|
|
60178
|
+
formClassName: "",
|
|
60179
|
+
successMessageClassName: "text-primary-foreground mt-4 p-3 rounded-md bg-primary",
|
|
60180
|
+
errorMessageClassName: "text-destructive-foreground mt-4 p-3 rounded-md bg-destructive"
|
|
60181
|
+
};
|
|
60170
60182
|
var DEFAULT_FORM_FIELDS44 = [
|
|
60171
60183
|
{
|
|
60172
60184
|
name: "email",
|
|
@@ -60180,12 +60192,7 @@ var DEFAULT_FORM_FIELDS44 = [
|
|
|
60180
60192
|
function HeroNewsletterMinimal({
|
|
60181
60193
|
heading,
|
|
60182
60194
|
description,
|
|
60183
|
-
|
|
60184
|
-
formConfig,
|
|
60185
|
-
onSubmit,
|
|
60186
|
-
onSuccess,
|
|
60187
|
-
onError,
|
|
60188
|
-
successMessage,
|
|
60195
|
+
formEngineSetup,
|
|
60189
60196
|
buttonAction,
|
|
60190
60197
|
helperText,
|
|
60191
60198
|
formSlot,
|
|
@@ -60194,26 +60201,34 @@ function HeroNewsletterMinimal({
|
|
|
60194
60201
|
patternClassName,
|
|
60195
60202
|
statsSlot,
|
|
60196
60203
|
background,
|
|
60197
|
-
containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
|
|
60204
|
+
containerClassName = "pmx-auto w-full max-w-7xl relative z-10 px-6 sm:px-6 md:px-8 lg:px-8 flex flex-col items-center justify-center",
|
|
60198
60205
|
spacing = "xl",
|
|
60199
60206
|
pattern,
|
|
60200
60207
|
patternOpacity,
|
|
60201
60208
|
className,
|
|
60202
60209
|
headingClassName,
|
|
60203
60210
|
descriptionClassName,
|
|
60204
|
-
formClassName,
|
|
60205
60211
|
disclaimerClassName,
|
|
60206
60212
|
statsClassName
|
|
60207
60213
|
}) {
|
|
60208
|
-
const {
|
|
60209
|
-
|
|
60210
|
-
|
|
60211
|
-
|
|
60212
|
-
|
|
60213
|
-
|
|
60214
|
-
|
|
60215
|
-
|
|
60216
|
-
|
|
60214
|
+
const formStyleRules = React25.useMemo(() => {
|
|
60215
|
+
return {
|
|
60216
|
+
formContainer: formEngineSetup?.formLayoutSettings?.styleRules?.formContainer ?? DEFAULT_STYLE_RULES3.formContainer,
|
|
60217
|
+
fieldsContainer: formEngineSetup?.formLayoutSettings?.styleRules?.fieldsContainer ?? DEFAULT_STYLE_RULES3.fieldsContainer,
|
|
60218
|
+
fieldClassName: formEngineSetup?.formLayoutSettings?.styleRules?.fieldClassName ?? DEFAULT_STYLE_RULES3.fieldClassName,
|
|
60219
|
+
formClassName: formEngineSetup?.formLayoutSettings?.styleRules?.formClassName ?? DEFAULT_STYLE_RULES3.formClassName,
|
|
60220
|
+
successMessageClassName: formEngineSetup?.formLayoutSettings?.styleRules?.successMessageClassName ?? DEFAULT_STYLE_RULES3.successMessageClassName,
|
|
60221
|
+
errorMessageClassName: formEngineSetup?.formLayoutSettings?.styleRules?.errorMessageClassName ?? DEFAULT_STYLE_RULES3.errorMessageClassName
|
|
60222
|
+
};
|
|
60223
|
+
}, [formEngineSetup?.formLayoutSettings?.styleRules]);
|
|
60224
|
+
const formFields = React25.useMemo(() => {
|
|
60225
|
+
if (formEngineSetup && formEngineSetup?.fields && formEngineSetup?.fields?.length > 0) {
|
|
60226
|
+
return formEngineSetup.fields;
|
|
60227
|
+
} else {
|
|
60228
|
+
return DEFAULT_FORM_FIELDS44;
|
|
60229
|
+
}
|
|
60230
|
+
}, [formEngineSetup?.fields]);
|
|
60231
|
+
const renderStats = React25.useMemo(() => {
|
|
60217
60232
|
if (statsSlot) return statsSlot;
|
|
60218
60233
|
if (!stats || stats.length === 0) return null;
|
|
60219
60234
|
return stats.map((stat, index) => /* @__PURE__ */ jsx("div", { className: cn("flex items-center", stat.className), children: /* @__PURE__ */ jsxs("div", { className: "text-center", children: [
|
|
@@ -60239,8 +60254,9 @@ function HeroNewsletterMinimal({
|
|
|
60239
60254
|
/* @__PURE__ */ jsx("div", { className: cn("text-sm"), children: stat.label })
|
|
60240
60255
|
] }) }, index));
|
|
60241
60256
|
}, [statsSlot, stats]);
|
|
60242
|
-
const renderForm =
|
|
60257
|
+
const renderForm = React25.useMemo(() => {
|
|
60243
60258
|
if (formSlot) return formSlot;
|
|
60259
|
+
if (!formEngineSetup) return null;
|
|
60244
60260
|
const defaultButtonAction = {
|
|
60245
60261
|
label: "Subscribe",
|
|
60246
60262
|
variant: "default"
|
|
@@ -60250,51 +60266,33 @@ function HeroNewsletterMinimal({
|
|
|
60250
60266
|
/* @__PURE__ */ jsx(
|
|
60251
60267
|
FormEngine,
|
|
60252
60268
|
{
|
|
60253
|
-
|
|
60254
|
-
fields: formFields,
|
|
60269
|
+
...formEngineSetup,
|
|
60255
60270
|
formLayoutSettings: {
|
|
60271
|
+
...formEngineSetup.formLayoutSettings,
|
|
60256
60272
|
formLayout: "button-group",
|
|
60257
60273
|
buttonGroupSetup: {
|
|
60274
|
+
...formEngineSetup.formLayoutSettings?.buttonGroupSetup,
|
|
60258
60275
|
size: "lg",
|
|
60259
60276
|
submitLabel: /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
60260
60277
|
action.label,
|
|
60261
60278
|
action.iconAfter
|
|
60262
60279
|
] }),
|
|
60263
60280
|
submitVariant: action.variant || "default"
|
|
60264
|
-
}
|
|
60265
|
-
|
|
60266
|
-
successMessage,
|
|
60267
|
-
onSubmit,
|
|
60268
|
-
onSuccess: (data) => {
|
|
60269
|
-
resetUpload();
|
|
60270
|
-
onSuccess?.(data);
|
|
60281
|
+
},
|
|
60282
|
+
styleRules: formStyleRules
|
|
60271
60283
|
},
|
|
60272
|
-
|
|
60273
|
-
uploadTokens,
|
|
60274
|
-
uploadProgress,
|
|
60275
|
-
onFileUpload: uploadFiles,
|
|
60276
|
-
onFileRemove: removeFile,
|
|
60277
|
-
isUploading
|
|
60284
|
+
fields: formFields
|
|
60278
60285
|
}
|
|
60279
60286
|
),
|
|
60280
60287
|
helperText && (typeof helperText === "string" ? /* @__PURE__ */ jsx("p", { className: cn("text-sm mt-2 text-center"), children: helperText }) : helperText)
|
|
60281
60288
|
] });
|
|
60282
60289
|
}, [
|
|
60283
60290
|
formSlot,
|
|
60284
|
-
|
|
60285
|
-
formConfig,
|
|
60291
|
+
formEngineSetup,
|
|
60286
60292
|
buttonAction,
|
|
60287
|
-
|
|
60288
|
-
|
|
60289
|
-
|
|
60290
|
-
removeFile,
|
|
60291
|
-
isUploading,
|
|
60292
|
-
successMessage,
|
|
60293
|
-
onSubmit,
|
|
60294
|
-
onSuccess,
|
|
60295
|
-
onError,
|
|
60296
|
-
helperText,
|
|
60297
|
-
resetUpload
|
|
60293
|
+
formFields,
|
|
60294
|
+
formStyleRules,
|
|
60295
|
+
helperText
|
|
60298
60296
|
]);
|
|
60299
60297
|
return /* @__PURE__ */ jsx(
|
|
60300
60298
|
Section,
|
|
@@ -60306,58 +60304,40 @@ function HeroNewsletterMinimal({
|
|
|
60306
60304
|
patternClassName,
|
|
60307
60305
|
className,
|
|
60308
60306
|
containerClassName,
|
|
60309
|
-
children: /* @__PURE__ */ jsxs(
|
|
60310
|
-
"
|
|
60311
|
-
|
|
60312
|
-
|
|
60313
|
-
|
|
60314
|
-
|
|
60315
|
-
|
|
60316
|
-
children: [
|
|
60317
|
-
heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
|
|
60318
|
-
"h1",
|
|
60319
|
-
{
|
|
60320
|
-
className: cn(
|
|
60321
|
-
"max-w-3xl text-5xl font-bold tracking-tight md:text-6xl lg:text-7xl text-pretty",
|
|
60322
|
-
headingClassName
|
|
60323
|
-
),
|
|
60324
|
-
children: heading
|
|
60325
|
-
}
|
|
60326
|
-
) : heading),
|
|
60327
|
-
description && (typeof description === "string" ? /* @__PURE__ */ jsx(
|
|
60328
|
-
"p",
|
|
60329
|
-
{
|
|
60330
|
-
className: cn(
|
|
60331
|
-
"mt-6 max-w-full md:max-w-lg text-lg md:text-xl text-balance",
|
|
60332
|
-
descriptionClassName
|
|
60333
|
-
),
|
|
60334
|
-
children: description
|
|
60335
|
-
}
|
|
60336
|
-
) : description),
|
|
60337
|
-
/* @__PURE__ */ jsx(
|
|
60338
|
-
"div",
|
|
60339
|
-
{
|
|
60340
|
-
className: cn(
|
|
60341
|
-
"mt-10 flex w-full max-w-md flex-col gap-4 sm:flex-row",
|
|
60342
|
-
formClassName
|
|
60343
|
-
),
|
|
60344
|
-
children: renderForm
|
|
60345
|
-
}
|
|
60307
|
+
children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center justify-center", children: [
|
|
60308
|
+
heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
|
|
60309
|
+
"h1",
|
|
60310
|
+
{
|
|
60311
|
+
className: cn(
|
|
60312
|
+
"max-w-3xl text-5xl font-bold tracking-tight md:text-6xl lg:text-7xl text-pretty text-center",
|
|
60313
|
+
headingClassName
|
|
60346
60314
|
),
|
|
60347
|
-
|
|
60348
|
-
|
|
60349
|
-
|
|
60350
|
-
|
|
60351
|
-
|
|
60352
|
-
|
|
60353
|
-
|
|
60354
|
-
|
|
60355
|
-
|
|
60356
|
-
|
|
60357
|
-
|
|
60358
|
-
|
|
60359
|
-
|
|
60360
|
-
|
|
60315
|
+
children: heading
|
|
60316
|
+
}
|
|
60317
|
+
) : heading),
|
|
60318
|
+
description && (typeof description === "string" ? /* @__PURE__ */ jsx(
|
|
60319
|
+
"p",
|
|
60320
|
+
{
|
|
60321
|
+
className: cn(
|
|
60322
|
+
"mt-6 max-w-full md:max-w-lg text-lg md:text-xl text-balance text-center",
|
|
60323
|
+
descriptionClassName
|
|
60324
|
+
),
|
|
60325
|
+
children: description
|
|
60326
|
+
}
|
|
60327
|
+
) : description),
|
|
60328
|
+
renderForm,
|
|
60329
|
+
disclaimer && (typeof disclaimer === "string" ? /* @__PURE__ */ jsx("p", { className: cn("mt-4 text-sm", disclaimerClassName), children: disclaimer }) : disclaimer),
|
|
60330
|
+
(statsSlot || stats && stats.length > 0) && /* @__PURE__ */ jsx(
|
|
60331
|
+
"div",
|
|
60332
|
+
{
|
|
60333
|
+
className: cn(
|
|
60334
|
+
"mt-16 flex flex-wrap items-center justify-center gap-8 md:gap-12",
|
|
60335
|
+
statsClassName
|
|
60336
|
+
),
|
|
60337
|
+
children: renderStats
|
|
60338
|
+
}
|
|
60339
|
+
)
|
|
60340
|
+
] })
|
|
60361
60341
|
}
|
|
60362
60342
|
);
|
|
60363
60343
|
}
|
|
@@ -60441,7 +60421,7 @@ function HeroComingSoonCountdown({
|
|
|
60441
60421
|
formClassName,
|
|
60442
60422
|
socialLinksClassName
|
|
60443
60423
|
}) {
|
|
60444
|
-
const [timeLeft, setTimeLeft] =
|
|
60424
|
+
const [timeLeft, setTimeLeft] = React25.useState(null);
|
|
60445
60425
|
const {
|
|
60446
60426
|
uploadTokens,
|
|
60447
60427
|
uploadProgress,
|
|
@@ -60461,7 +60441,7 @@ function HeroComingSoonCountdown({
|
|
|
60461
60441
|
onError,
|
|
60462
60442
|
uploadTokens
|
|
60463
60443
|
});
|
|
60464
|
-
const calculateTimeLeft =
|
|
60444
|
+
const calculateTimeLeft = React25.useCallback(() => {
|
|
60465
60445
|
if (!countdownDate) return null;
|
|
60466
60446
|
const now = Date.now();
|
|
60467
60447
|
const target = countdownDate.getTime();
|
|
@@ -60474,7 +60454,7 @@ function HeroComingSoonCountdown({
|
|
|
60474
60454
|
seconds: Math.floor(diff % (1e3 * 60) / 1e3)
|
|
60475
60455
|
};
|
|
60476
60456
|
}, [countdownDate]);
|
|
60477
|
-
|
|
60457
|
+
React25.useEffect(() => {
|
|
60478
60458
|
setTimeLeft(calculateTimeLeft());
|
|
60479
60459
|
if (!countdownDate) return;
|
|
60480
60460
|
const timer = setInterval(() => {
|
|
@@ -60485,7 +60465,7 @@ function HeroComingSoonCountdown({
|
|
|
60485
60465
|
return () => clearInterval(timer);
|
|
60486
60466
|
}, [countdownDate, calculateTimeLeft]);
|
|
60487
60467
|
const showCountdown = countdownSlot || timeLeft;
|
|
60488
|
-
const renderForm =
|
|
60468
|
+
const renderForm = React25.useMemo(() => {
|
|
60489
60469
|
if (formSlot) return formSlot;
|
|
60490
60470
|
const defaultButtonAction = {
|
|
60491
60471
|
label: "Notify Me",
|
|
@@ -60561,7 +60541,7 @@ function HeroComingSoonCountdown({
|
|
|
60561
60541
|
resetUpload,
|
|
60562
60542
|
resetSubmissionState
|
|
60563
60543
|
]);
|
|
60564
|
-
const renderSocialLinks =
|
|
60544
|
+
const renderSocialLinks = React25.useMemo(() => {
|
|
60565
60545
|
if (socialLinksSlot) return socialLinksSlot;
|
|
60566
60546
|
if (!socialLinks || socialLinks.length === 0) return null;
|
|
60567
60547
|
return socialLinks.map((link, index) => /* @__PURE__ */ jsx(
|
|
@@ -60693,7 +60673,7 @@ function HeroEventRegistration({
|
|
|
60693
60673
|
"flex flex-col md:flex-row items-center gap-4 md:gap-6 pt-8 md:pt-12 w-full md:w-fit",
|
|
60694
60674
|
statsClassName
|
|
60695
60675
|
),
|
|
60696
|
-
children: stats.map((stat, index) => /* @__PURE__ */ jsxs(
|
|
60676
|
+
children: stats.map((stat, index) => /* @__PURE__ */ jsxs(React25.Fragment, { children: [
|
|
60697
60677
|
index > 0 && /* @__PURE__ */ jsx("div", { className: "h-12 w-px bg-border hidden md:flex" }),
|
|
60698
60678
|
/* @__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: [
|
|
60699
60679
|
/* @__PURE__ */ jsxs(
|
|
@@ -61033,7 +61013,7 @@ function ComparisonTableTwoColumn({
|
|
|
61033
61013
|
patternOpacity,
|
|
61034
61014
|
optixFlowConfig
|
|
61035
61015
|
}) {
|
|
61036
|
-
const tableContent =
|
|
61016
|
+
const tableContent = React25.useMemo(() => {
|
|
61037
61017
|
if (tableSlot) return tableSlot;
|
|
61038
61018
|
if (!rows || rows.length === 0) return null;
|
|
61039
61019
|
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(
|
|
@@ -61063,7 +61043,7 @@ function ComparisonTableTwoColumn({
|
|
|
61063
61043
|
optixFlowConfig
|
|
61064
61044
|
}
|
|
61065
61045
|
) : optionBLabel && (typeof optionBLabel === "string" ? /* @__PURE__ */ jsx("span", { className: "text-lg font-semibold", children: optionBLabel }) : optionBLabel) }),
|
|
61066
|
-
rows.map((row, idx) => /* @__PURE__ */ jsxs(
|
|
61046
|
+
rows.map((row, idx) => /* @__PURE__ */ jsxs(React25.Fragment, { children: [
|
|
61067
61047
|
/* @__PURE__ */ jsx("div", { className: "flex items-center border-b p-3 text-base font-medium md:p-4 md:text-lg", children: row.label }),
|
|
61068
61048
|
/* @__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: [
|
|
61069
61049
|
row.hasIcon && /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/circle-check-big", size: 20, className: "text-success" }),
|
|
@@ -61092,14 +61072,14 @@ function ComparisonTableTwoColumn({
|
|
|
61092
61072
|
optionBLabel,
|
|
61093
61073
|
optixFlowConfig
|
|
61094
61074
|
]);
|
|
61095
|
-
const headingContent =
|
|
61075
|
+
const headingContent = React25.useMemo(() => {
|
|
61096
61076
|
if (!heading) return null;
|
|
61097
61077
|
if (typeof heading === "string") {
|
|
61098
61078
|
return /* @__PURE__ */ jsx("h1", { className: cn("mb-8 text-3xl font-bold md:mb-12 md:text-5xl", headingClassName), children: heading });
|
|
61099
61079
|
}
|
|
61100
61080
|
return /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading });
|
|
61101
61081
|
}, [heading, headingClassName]);
|
|
61102
|
-
const descriptionContent =
|
|
61082
|
+
const descriptionContent = React25.useMemo(() => {
|
|
61103
61083
|
if (!description) return null;
|
|
61104
61084
|
if (typeof description === "string") {
|
|
61105
61085
|
return /* @__PURE__ */ jsx("p", { className: cn("mb-8 text-muted-foreground md:text-lg", descriptionClassName), children: description });
|
|
@@ -61146,7 +61126,7 @@ function ComparisonFeatureCards({
|
|
|
61146
61126
|
patternOpacity,
|
|
61147
61127
|
optixFlowConfig
|
|
61148
61128
|
}) {
|
|
61149
|
-
const renderCard =
|
|
61129
|
+
const renderCard = React25.useCallback(
|
|
61150
61130
|
(product, isHighlighted) => /* @__PURE__ */ jsxs(
|
|
61151
61131
|
"div",
|
|
61152
61132
|
{
|
|
@@ -61202,7 +61182,7 @@ function ComparisonFeatureCards({
|
|
|
61202
61182
|
),
|
|
61203
61183
|
[cardClassName, optixFlowConfig]
|
|
61204
61184
|
);
|
|
61205
|
-
const cardsContent =
|
|
61185
|
+
const cardsContent = React25.useMemo(() => {
|
|
61206
61186
|
if (cardsSlot) return cardsSlot;
|
|
61207
61187
|
if (!productA || !productB) return null;
|
|
61208
61188
|
return /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
@@ -61210,28 +61190,28 @@ function ComparisonFeatureCards({
|
|
|
61210
61190
|
renderCard(productB, productB.highlighted ?? false)
|
|
61211
61191
|
] });
|
|
61212
61192
|
}, [cardsSlot, productA, productB, renderCard]);
|
|
61213
|
-
const headingContent =
|
|
61193
|
+
const headingContent = React25.useMemo(() => {
|
|
61214
61194
|
if (!heading) return null;
|
|
61215
61195
|
if (typeof heading === "string") {
|
|
61216
61196
|
return /* @__PURE__ */ jsx("h1", { className: cn("mb-6 text-4xl font-semibold md:text-7xl", headingClassName), children: heading });
|
|
61217
61197
|
}
|
|
61218
61198
|
return /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading });
|
|
61219
61199
|
}, [heading, headingClassName]);
|
|
61220
|
-
const descriptionContent =
|
|
61200
|
+
const descriptionContent = React25.useMemo(() => {
|
|
61221
61201
|
if (!description) return null;
|
|
61222
61202
|
if (typeof description === "string") {
|
|
61223
61203
|
return /* @__PURE__ */ jsx("p", { className: cn("mx-auto max-w-4xl text-muted-foreground md:text-xl", descriptionClassName), children: description });
|
|
61224
61204
|
}
|
|
61225
61205
|
return /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description });
|
|
61226
61206
|
}, [description, descriptionClassName]);
|
|
61227
|
-
const suitabilityContent =
|
|
61207
|
+
const suitabilityContent = React25.useMemo(() => {
|
|
61228
61208
|
if (!suitabilityTitle && !suitabilityDescription) return null;
|
|
61229
61209
|
return /* @__PURE__ */ jsxs("div", { className: suitabilityClassName, children: [
|
|
61230
61210
|
suitabilityTitle && (typeof suitabilityTitle === "string" ? /* @__PURE__ */ jsx("h2", { className: "mb-4 text-3xl font-semibold", children: suitabilityTitle }) : suitabilityTitle),
|
|
61231
61211
|
suitabilityDescription && (typeof suitabilityDescription === "string" ? /* @__PURE__ */ jsx("p", { className: "leading-6 text-muted-foreground md:text-lg", children: suitabilityDescription }) : suitabilityDescription)
|
|
61232
61212
|
] });
|
|
61233
61213
|
}, [suitabilityTitle, suitabilityDescription, suitabilityClassName]);
|
|
61234
|
-
const differencesContent =
|
|
61214
|
+
const differencesContent = React25.useMemo(() => {
|
|
61235
61215
|
if (!differencesTitle && !differencesDescription) return null;
|
|
61236
61216
|
return /* @__PURE__ */ jsxs("div", { className: cn("mt-16", differencesClassName), children: [
|
|
61237
61217
|
differencesTitle && (typeof differencesTitle === "string" ? /* @__PURE__ */ jsx("h2", { className: "mb-4 text-3xl font-semibold", children: differencesTitle }) : differencesTitle),
|
|
@@ -61279,7 +61259,7 @@ function ComparisonGridBadges({
|
|
|
61279
61259
|
pattern,
|
|
61280
61260
|
patternOpacity
|
|
61281
61261
|
}) {
|
|
61282
|
-
const featuresContent =
|
|
61262
|
+
const featuresContent = React25.useMemo(() => {
|
|
61283
61263
|
if (featuresSlot) return featuresSlot;
|
|
61284
61264
|
if (!features || features.length === 0) return null;
|
|
61285
61265
|
return features.map((feature, idx) => /* @__PURE__ */ jsxs(
|
|
@@ -61326,14 +61306,14 @@ function ComparisonGridBadges({
|
|
|
61326
61306
|
idx
|
|
61327
61307
|
));
|
|
61328
61308
|
}, [featuresSlot, features, featureCardClassName, badgeClassName, optionALabel, optionBLabel]);
|
|
61329
|
-
const headingContent =
|
|
61309
|
+
const headingContent = React25.useMemo(() => {
|
|
61330
61310
|
if (!heading) return null;
|
|
61331
61311
|
if (typeof heading === "string") {
|
|
61332
61312
|
return /* @__PURE__ */ jsx("h2", { className: cn("mb-4 text-3xl font-bold md:text-5xl", headingClassName), children: heading });
|
|
61333
61313
|
}
|
|
61334
61314
|
return /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading });
|
|
61335
61315
|
}, [heading, headingClassName]);
|
|
61336
|
-
const descriptionContent =
|
|
61316
|
+
const descriptionContent = React25.useMemo(() => {
|
|
61337
61317
|
if (!description) return null;
|
|
61338
61318
|
if (typeof description === "string") {
|
|
61339
61319
|
return /* @__PURE__ */ jsx("p", { className: cn("mx-auto max-w-2xl text-muted-foreground md:text-lg", descriptionClassName), children: description });
|
|
@@ -61381,7 +61361,7 @@ function ComparisonMetricsRows({
|
|
|
61381
61361
|
pattern,
|
|
61382
61362
|
patternOpacity
|
|
61383
61363
|
}) {
|
|
61384
|
-
const metricsContent =
|
|
61364
|
+
const metricsContent = React25.useMemo(() => {
|
|
61385
61365
|
if (metricsSlot) return metricsSlot;
|
|
61386
61366
|
if (!metrics || metrics.length === 0) return null;
|
|
61387
61367
|
return /* @__PURE__ */ jsx(
|
|
@@ -61421,7 +61401,7 @@ function ComparisonMetricsRows({
|
|
|
61421
61401
|
}
|
|
61422
61402
|
);
|
|
61423
61403
|
}, [metricsSlot, metrics, metricsClassName, metricRowClassName]);
|
|
61424
|
-
const actionsContent =
|
|
61404
|
+
const actionsContent = React25.useMemo(() => {
|
|
61425
61405
|
if (actionsSlot) return actionsSlot;
|
|
61426
61406
|
if (!actions || actions.length === 0) return null;
|
|
61427
61407
|
return /* @__PURE__ */ jsx("div", { className: cn("flex justify-end", actionsClassName), children: actions.map((action, idx) => /* @__PURE__ */ jsxs(
|
|
@@ -61442,7 +61422,7 @@ function ComparisonMetricsRows({
|
|
|
61442
61422
|
idx
|
|
61443
61423
|
)) });
|
|
61444
61424
|
}, [actionsSlot, actions, actionsClassName]);
|
|
61445
|
-
const headingContent =
|
|
61425
|
+
const headingContent = React25.useMemo(() => {
|
|
61446
61426
|
if (!heading) return null;
|
|
61447
61427
|
if (typeof heading === "string") {
|
|
61448
61428
|
return /* @__PURE__ */ jsx(
|
|
@@ -61458,7 +61438,7 @@ function ComparisonMetricsRows({
|
|
|
61458
61438
|
}
|
|
61459
61439
|
return /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading });
|
|
61460
61440
|
}, [heading, headingClassName]);
|
|
61461
|
-
const descriptionContent =
|
|
61441
|
+
const descriptionContent = React25.useMemo(() => {
|
|
61462
61442
|
if (!description) return null;
|
|
61463
61443
|
if (typeof description === "string") {
|
|
61464
61444
|
return /* @__PURE__ */ jsx("p", { className: cn("text-muted-foreground md:text-lg", descriptionClassName), children: description });
|
|
@@ -61521,7 +61501,7 @@ function ComparisonImageCards({
|
|
|
61521
61501
|
patternOpacity,
|
|
61522
61502
|
optixFlowConfig
|
|
61523
61503
|
}) {
|
|
61524
|
-
const renderCard =
|
|
61504
|
+
const renderCard = React25.useCallback(
|
|
61525
61505
|
(option) => /* @__PURE__ */ jsx("div", { className: cn("relative h-full", cardClassName), children: /* @__PURE__ */ jsxs("div", { className: cn(
|
|
61526
61506
|
"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]",
|
|
61527
61507
|
getNestedCardBg(background, "accent"),
|
|
@@ -61545,7 +61525,7 @@ function ComparisonImageCards({
|
|
|
61545
61525
|
] }) }),
|
|
61546
61526
|
[cardClassName, optixFlowConfig]
|
|
61547
61527
|
);
|
|
61548
|
-
const cardsContent =
|
|
61528
|
+
const cardsContent = React25.useMemo(() => {
|
|
61549
61529
|
if (cardsSlot) return cardsSlot;
|
|
61550
61530
|
if (!optionA || !optionB) return null;
|
|
61551
61531
|
return /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
@@ -61563,14 +61543,14 @@ function ComparisonImageCards({
|
|
|
61563
61543
|
)
|
|
61564
61544
|
] });
|
|
61565
61545
|
}, [cardsSlot, optionA, optionB, dividerText, dividerClassName, renderCard]);
|
|
61566
|
-
const headingContent =
|
|
61546
|
+
const headingContent = React25.useMemo(() => {
|
|
61567
61547
|
if (!heading) return null;
|
|
61568
61548
|
if (typeof heading === "string") {
|
|
61569
61549
|
return /* @__PURE__ */ jsx("h2", { className: cn("text-3xl font-medium sm:text-4xl md:text-5xl lg:text-6xl", headingClassName), children: heading });
|
|
61570
61550
|
}
|
|
61571
61551
|
return /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading });
|
|
61572
61552
|
}, [heading, headingClassName]);
|
|
61573
|
-
const descriptionContent =
|
|
61553
|
+
const descriptionContent = React25.useMemo(() => {
|
|
61574
61554
|
if (!description) return null;
|
|
61575
61555
|
if (typeof description === "string") {
|
|
61576
61556
|
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 });
|
|
@@ -61700,7 +61680,7 @@ function ComparisonTableTabs({
|
|
|
61700
61680
|
patternOpacity
|
|
61701
61681
|
}) {
|
|
61702
61682
|
const [selectedTab, setSelectedTab] = useState(models?.[0]?.name || "");
|
|
61703
|
-
const renderStatusIcon =
|
|
61683
|
+
const renderStatusIcon = React25.useCallback((status) => {
|
|
61704
61684
|
if (status === "positive") {
|
|
61705
61685
|
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" }) });
|
|
61706
61686
|
}
|
|
@@ -61709,7 +61689,7 @@ function ComparisonTableTabs({
|
|
|
61709
61689
|
}
|
|
61710
61690
|
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" }) });
|
|
61711
61691
|
}, []);
|
|
61712
|
-
const tableContent =
|
|
61692
|
+
const tableContent = React25.useMemo(() => {
|
|
61713
61693
|
if (tableSlot) return tableSlot;
|
|
61714
61694
|
if (!models || models.length === 0 || !features || features.length === 0) return null;
|
|
61715
61695
|
return /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
@@ -61768,14 +61748,14 @@ function ComparisonTableTabs({
|
|
|
61768
61748
|
] }) })
|
|
61769
61749
|
] });
|
|
61770
61750
|
}, [tableSlot, models, features, tabsClassName, tableClassName, tableHeaderClassName, tableCellClassName, selectedTab, renderStatusIcon]);
|
|
61771
|
-
const headingContent =
|
|
61751
|
+
const headingContent = React25.useMemo(() => {
|
|
61772
61752
|
if (!heading) return null;
|
|
61773
61753
|
if (typeof heading === "string") {
|
|
61774
61754
|
return /* @__PURE__ */ jsx("h2", { className: cn("text-3xl font-bold md:text-4xl lg:text-5xl", headingClassName), children: heading });
|
|
61775
61755
|
}
|
|
61776
61756
|
return /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading });
|
|
61777
61757
|
}, [heading, headingClassName]);
|
|
61778
|
-
const descriptionContent =
|
|
61758
|
+
const descriptionContent = React25.useMemo(() => {
|
|
61779
61759
|
if (!description) return null;
|
|
61780
61760
|
if (typeof description === "string") {
|
|
61781
61761
|
return /* @__PURE__ */ jsx("p", { className: cn("mt-4 text-muted-foreground md:text-lg", descriptionClassName), children: description });
|
|
@@ -61866,7 +61846,7 @@ function ComparisonTableTooltips({
|
|
|
61866
61846
|
pattern,
|
|
61867
61847
|
patternOpacity
|
|
61868
61848
|
}) {
|
|
61869
|
-
const renderCellContent =
|
|
61849
|
+
const renderCellContent = React25.useCallback(
|
|
61870
61850
|
(cell, isHighlighted) => {
|
|
61871
61851
|
if (typeof cell === "string") {
|
|
61872
61852
|
return cell;
|
|
@@ -61893,7 +61873,7 @@ function ComparisonTableTooltips({
|
|
|
61893
61873
|
},
|
|
61894
61874
|
[]
|
|
61895
61875
|
);
|
|
61896
|
-
const tableContent =
|
|
61876
|
+
const tableContent = React25.useMemo(() => {
|
|
61897
61877
|
if (tableSlot) return tableSlot;
|
|
61898
61878
|
if (!rows || rows.length === 0) return null;
|
|
61899
61879
|
return /* @__PURE__ */ jsxs(Table, { className: cn("rounded border text-left shadow-lg", tableClassName), children: [
|
|
@@ -61919,14 +61899,14 @@ function ComparisonTableTooltips({
|
|
|
61919
61899
|
] }, idx)) })
|
|
61920
61900
|
] });
|
|
61921
61901
|
}, [tableSlot, rows, tableClassName, tableHeaderClassName, tableCellClassName, optionALabel, optionBLabel, renderCellContent]);
|
|
61922
|
-
const headingContent =
|
|
61902
|
+
const headingContent = React25.useMemo(() => {
|
|
61923
61903
|
if (!heading) return null;
|
|
61924
61904
|
if (typeof heading === "string") {
|
|
61925
61905
|
return /* @__PURE__ */ jsx("h2", { className: cn("mb-4 text-center text-4xl font-semibold", headingClassName), children: heading });
|
|
61926
61906
|
}
|
|
61927
61907
|
return /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading });
|
|
61928
61908
|
}, [heading, headingClassName]);
|
|
61929
|
-
const descriptionContent =
|
|
61909
|
+
const descriptionContent = React25.useMemo(() => {
|
|
61930
61910
|
if (!description) return null;
|
|
61931
61911
|
if (typeof description === "string") {
|
|
61932
61912
|
return /* @__PURE__ */ jsx("p", { className: cn("mb-8 text-center text-muted-foreground", descriptionClassName), children: description });
|
|
@@ -61968,7 +61948,7 @@ function ComparisonFeatureGrid({
|
|
|
61968
61948
|
pattern,
|
|
61969
61949
|
patternOpacity
|
|
61970
61950
|
}) {
|
|
61971
|
-
const renderStatusIcon =
|
|
61951
|
+
const renderStatusIcon = React25.useCallback((status) => {
|
|
61972
61952
|
if (status === true) {
|
|
61973
61953
|
return /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/check", size: 20, className: "text-success" });
|
|
61974
61954
|
}
|
|
@@ -61977,7 +61957,7 @@ function ComparisonFeatureGrid({
|
|
|
61977
61957
|
}
|
|
61978
61958
|
return /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/x", size: 20, className: "text-destructive" });
|
|
61979
61959
|
}, []);
|
|
61980
|
-
const gridContent =
|
|
61960
|
+
const gridContent = React25.useMemo(() => {
|
|
61981
61961
|
if (gridSlot) return gridSlot;
|
|
61982
61962
|
if (!features || features.length === 0) return null;
|
|
61983
61963
|
return /* @__PURE__ */ jsxs(
|
|
@@ -62043,14 +62023,14 @@ function ComparisonFeatureGrid({
|
|
|
62043
62023
|
optionBLabel,
|
|
62044
62024
|
renderStatusIcon
|
|
62045
62025
|
]);
|
|
62046
|
-
const headingContent =
|
|
62026
|
+
const headingContent = React25.useMemo(() => {
|
|
62047
62027
|
if (!heading) return null;
|
|
62048
62028
|
if (typeof heading === "string") {
|
|
62049
62029
|
return /* @__PURE__ */ jsx("h2", { className: cn("mb-4 text-center text-4xl font-semibold", headingClassName), children: heading });
|
|
62050
62030
|
}
|
|
62051
62031
|
return /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading });
|
|
62052
62032
|
}, [heading, headingClassName]);
|
|
62053
|
-
const descriptionContent =
|
|
62033
|
+
const descriptionContent = React25.useMemo(() => {
|
|
62054
62034
|
if (!description) return null;
|
|
62055
62035
|
if (typeof description === "string") {
|
|
62056
62036
|
return /* @__PURE__ */ jsx("p", { className: cn("mb-8 text-center text-muted-foreground", descriptionClassName), children: description });
|
|
@@ -62094,7 +62074,7 @@ function ComparisonAiModels({
|
|
|
62094
62074
|
optixFlowConfig
|
|
62095
62075
|
}) {
|
|
62096
62076
|
const [hoveredModel, setHoveredModel] = useState(null);
|
|
62097
|
-
const renderStatusIcon =
|
|
62077
|
+
const renderStatusIcon = React25.useCallback((status) => {
|
|
62098
62078
|
if (status === "best") {
|
|
62099
62079
|
return /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/circle-check", size: 16, className: "text-success" });
|
|
62100
62080
|
}
|
|
@@ -62103,7 +62083,7 @@ function ComparisonAiModels({
|
|
|
62103
62083
|
}
|
|
62104
62084
|
return /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/minus", size: 16, className: "text-muted-foreground" });
|
|
62105
62085
|
}, []);
|
|
62106
|
-
const getCellClassName =
|
|
62086
|
+
const getCellClassName = React25.useCallback(
|
|
62107
62087
|
(status, modelKey) => {
|
|
62108
62088
|
const baseClass = "cursor-pointer py-4 text-center font-medium transition-all duration-300";
|
|
62109
62089
|
let statusClass = "";
|
|
@@ -62124,7 +62104,7 @@ function ComparisonAiModels({
|
|
|
62124
62104
|
},
|
|
62125
62105
|
[hoveredModel]
|
|
62126
62106
|
);
|
|
62127
|
-
const getSummaryCardClassName =
|
|
62107
|
+
const getSummaryCardClassName = React25.useCallback(
|
|
62128
62108
|
(modelKey) => {
|
|
62129
62109
|
const baseClass = "rounded border border-border/30 bg-background/50 p-3 transition-all duration-300";
|
|
62130
62110
|
if (hoveredModel === modelKey) {
|
|
@@ -62139,7 +62119,7 @@ function ComparisonAiModels({
|
|
|
62139
62119
|
},
|
|
62140
62120
|
[hoveredModel]
|
|
62141
62121
|
);
|
|
62142
|
-
const tableContent =
|
|
62122
|
+
const tableContent = React25.useMemo(() => {
|
|
62143
62123
|
if (tableSlot) return tableSlot;
|
|
62144
62124
|
if (!models || !comparisonData || comparisonData.length === 0) return null;
|
|
62145
62125
|
return /* @__PURE__ */ jsx(
|
|
@@ -62217,7 +62197,7 @@ function ComparisonAiModels({
|
|
|
62217
62197
|
getCellClassName,
|
|
62218
62198
|
renderStatusIcon
|
|
62219
62199
|
]);
|
|
62220
|
-
const analysisContent =
|
|
62200
|
+
const analysisContent = React25.useMemo(() => {
|
|
62221
62201
|
if (analysisSlot) return analysisSlot;
|
|
62222
62202
|
if (!models) return null;
|
|
62223
62203
|
return /* @__PURE__ */ jsx("div", { className: cn(
|
|
@@ -62258,14 +62238,14 @@ function ComparisonAiModels({
|
|
|
62258
62238
|
] })
|
|
62259
62239
|
] }) });
|
|
62260
62240
|
}, [analysisSlot, models, analysisClassName, getSummaryCardClassName]);
|
|
62261
|
-
const headingContent =
|
|
62241
|
+
const headingContent = React25.useMemo(() => {
|
|
62262
62242
|
if (!heading) return null;
|
|
62263
62243
|
if (typeof heading === "string") {
|
|
62264
62244
|
return /* @__PURE__ */ jsx("h2", { className: cn("text-3xl font-bold md:text-4xl lg:text-5xl", headingClassName), children: heading });
|
|
62265
62245
|
}
|
|
62266
62246
|
return /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading });
|
|
62267
62247
|
}, [heading, headingClassName]);
|
|
62268
|
-
const descriptionContent =
|
|
62248
|
+
const descriptionContent = React25.useMemo(() => {
|
|
62269
62249
|
if (!description) return null;
|
|
62270
62250
|
if (typeof description === "string") {
|
|
62271
62251
|
return /* @__PURE__ */ jsx("p", { className: cn("mt-4 text-muted-foreground md:text-lg", descriptionClassName), children: description });
|
|
@@ -62315,7 +62295,7 @@ function ComparisonLegacyModern({
|
|
|
62315
62295
|
pattern,
|
|
62316
62296
|
patternOpacity
|
|
62317
62297
|
}) {
|
|
62318
|
-
const columnsContent =
|
|
62298
|
+
const columnsContent = React25.useMemo(() => {
|
|
62319
62299
|
if (columnsSlot) return columnsSlot;
|
|
62320
62300
|
if (!legacyFeatures || legacyFeatures.length === 0 || !modernFeatures || modernFeatures.length === 0)
|
|
62321
62301
|
return null;
|
|
@@ -62327,7 +62307,7 @@ function ComparisonLegacyModern({
|
|
|
62327
62307
|
legacyColumnClassName
|
|
62328
62308
|
), children: [
|
|
62329
62309
|
legacyTitle && (typeof legacyTitle === "string" ? /* @__PURE__ */ jsx("h3", { className: "text-2xl font-medium", children: legacyTitle }) : legacyTitle),
|
|
62330
|
-
/* @__PURE__ */ jsx("ul", { className: "mt-9 space-y-3", children: legacyFeatures.map((feature, idx) => /* @__PURE__ */ jsxs(
|
|
62310
|
+
/* @__PURE__ */ jsx("ul", { className: "mt-9 space-y-3", children: legacyFeatures.map((feature, idx) => /* @__PURE__ */ jsxs(React25.Fragment, { children: [
|
|
62331
62311
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
62332
62312
|
/* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/x", size: 16, className: "my-1.5 shrink-0 text-muted-foreground" }),
|
|
62333
62313
|
/* @__PURE__ */ jsx("li", { className: "text-sm", children: feature.text })
|
|
@@ -62344,7 +62324,7 @@ function ComparisonLegacyModern({
|
|
|
62344
62324
|
),
|
|
62345
62325
|
children: [
|
|
62346
62326
|
modernTitle && (typeof modernTitle === "string" ? /* @__PURE__ */ jsx("h3", { className: "text-2xl font-medium", children: modernTitle }) : modernTitle),
|
|
62347
|
-
/* @__PURE__ */ jsx("ul", { className: "mt-9 space-y-3", children: modernFeatures.map((feature, idx) => /* @__PURE__ */ jsxs(
|
|
62327
|
+
/* @__PURE__ */ jsx("ul", { className: "mt-9 space-y-3", children: modernFeatures.map((feature, idx) => /* @__PURE__ */ jsxs(React25.Fragment, { children: [
|
|
62348
62328
|
/* @__PURE__ */ jsxs("li", { className: "flex items-center gap-2 text-sm", children: [
|
|
62349
62329
|
/* @__PURE__ */ jsx("span", { className: "text-lg", children: feature.emoji }),
|
|
62350
62330
|
feature.text
|
|
@@ -62356,7 +62336,7 @@ function ComparisonLegacyModern({
|
|
|
62356
62336
|
)
|
|
62357
62337
|
] });
|
|
62358
62338
|
}, [columnsSlot, legacyFeatures, modernFeatures, legacyTitle, modernTitle, legacyColumnClassName, modernColumnClassName]);
|
|
62359
|
-
const headingContent =
|
|
62339
|
+
const headingContent = React25.useMemo(() => {
|
|
62360
62340
|
if (!heading && !headingHighlight) return null;
|
|
62361
62341
|
return /* @__PURE__ */ jsxs("h2", { className: cn("text-4xl font-medium md:text-5xl lg:text-7xl", headingClassName), children: [
|
|
62362
62342
|
heading && (typeof heading === "string" ? /* @__PURE__ */ jsxs("span", { className: "text-muted-foreground", children: [
|
|
@@ -62369,7 +62349,7 @@ function ComparisonLegacyModern({
|
|
|
62369
62349
|
] }) : headingHighlight)
|
|
62370
62350
|
] });
|
|
62371
62351
|
}, [heading, headingHighlight, headingClassName, headingHighlightClassName]);
|
|
62372
|
-
const descriptionContent =
|
|
62352
|
+
const descriptionContent = React25.useMemo(() => {
|
|
62373
62353
|
if (!description) return null;
|
|
62374
62354
|
if (typeof description === "string") {
|
|
62375
62355
|
return /* @__PURE__ */ jsx("p", { className: cn("text-lg", descriptionClassName), children: description });
|
|
@@ -62542,7 +62522,7 @@ var NavbarMobileMenu = ({
|
|
|
62542
62522
|
closeIconClassName,
|
|
62543
62523
|
title = "Mobile Navigation"
|
|
62544
62524
|
}) => {
|
|
62545
|
-
|
|
62525
|
+
React25.useEffect(() => {
|
|
62546
62526
|
if (open) {
|
|
62547
62527
|
const originalOverflow = document.body.style.overflow;
|
|
62548
62528
|
document.body.style.overflow = "hidden";
|
|
@@ -62771,7 +62751,7 @@ var NavbarDropdownMenu = ({
|
|
|
62771
62751
|
patternOpacity,
|
|
62772
62752
|
optixFlowConfig
|
|
62773
62753
|
}) => {
|
|
62774
|
-
const [open, setOpen] =
|
|
62754
|
+
const [open, setOpen] = React25.useState(false);
|
|
62775
62755
|
const renderAuthActions = useMemo(() => {
|
|
62776
62756
|
if (authActionsSlot) return authActionsSlot;
|
|
62777
62757
|
if (!authActions || authActions.length === 0) return null;
|
|
@@ -62997,7 +62977,7 @@ var NavbarCenteredMenu = ({
|
|
|
62997
62977
|
patternOpacity,
|
|
62998
62978
|
optixFlowConfig
|
|
62999
62979
|
}) => {
|
|
63000
|
-
const [open, setOpen] =
|
|
62980
|
+
const [open, setOpen] = React25.useState(false);
|
|
63001
62981
|
const renderAuthActions = useMemo(() => {
|
|
63002
62982
|
if (authActionsSlot) return authActionsSlot;
|
|
63003
62983
|
if (!authActions || authActions.length === 0) return null;
|
|
@@ -63137,7 +63117,7 @@ var DesktopMenuItem = ({
|
|
|
63137
63117
|
index,
|
|
63138
63118
|
optixFlowConfig
|
|
63139
63119
|
}) => {
|
|
63140
|
-
const imagesRef =
|
|
63120
|
+
const imagesRef = React25.useRef([]);
|
|
63141
63121
|
const layout = link.layout || "simple-grid";
|
|
63142
63122
|
const handleMouseEnter = (event) => {
|
|
63143
63123
|
const index2 = Number(event.currentTarget.getAttribute("data-index"));
|
|
@@ -64372,7 +64352,7 @@ var NavbarFeatureGrid = ({
|
|
|
64372
64352
|
patternOpacity,
|
|
64373
64353
|
optixFlowConfig
|
|
64374
64354
|
}) => {
|
|
64375
|
-
const [open, setOpen] =
|
|
64355
|
+
const [open, setOpen] = React25.useState(false);
|
|
64376
64356
|
const renderAuthActions = useMemo(() => {
|
|
64377
64357
|
if (authActionsSlot) return authActionsSlot;
|
|
64378
64358
|
if (!authActions || authActions.length === 0) return null;
|
|
@@ -67582,7 +67562,7 @@ var DesktopMenuItem7 = ({
|
|
|
67582
67562
|
if (item.groups && item.groups.length > 0) {
|
|
67583
67563
|
return /* @__PURE__ */ jsxs(NavigationMenuItem, { value: `${index}`, children: [
|
|
67584
67564
|
/* @__PURE__ */ jsx(NavigationMenuTrigger, { children: item.label }),
|
|
67585
|
-
/* @__PURE__ */ jsx(NavigationMenuContent, { className: "p-0", children: /* @__PURE__ */ jsx("div", { className: "flex", children: item.groups.map((group, groupIndex) => /* @__PURE__ */ jsxs(
|
|
67565
|
+
/* @__PURE__ */ jsx(NavigationMenuContent, { className: "p-0", children: /* @__PURE__ */ jsx("div", { className: "flex", children: item.groups.map((group, groupIndex) => /* @__PURE__ */ jsxs(React25.Fragment, { children: [
|
|
67586
67566
|
groupIndex > 0 && /* @__PURE__ */ jsx(
|
|
67587
67567
|
Separator,
|
|
67588
67568
|
{
|
|
@@ -68334,7 +68314,7 @@ var NavbarSimpleLinks = ({
|
|
|
68334
68314
|
const renderNavItems = useMemo(() => {
|
|
68335
68315
|
if (navItemsSlot) return navItemsSlot;
|
|
68336
68316
|
if (!navItems || navItems.length === 0) return null;
|
|
68337
|
-
return navItems.map((item) => /* @__PURE__ */ jsx(
|
|
68317
|
+
return navItems.map((item) => /* @__PURE__ */ jsx(React25.Fragment, { children: /* @__PURE__ */ jsx(NavigationMenuItem, { children: /* @__PURE__ */ jsx(
|
|
68338
68318
|
NavigationMenuLink,
|
|
68339
68319
|
{
|
|
68340
68320
|
"data-nav-item": item.name,
|
|
@@ -73363,7 +73343,7 @@ function PricingFullComparison({
|
|
|
73363
73343
|
resolvedPlanIds[index]
|
|
73364
73344
|
))
|
|
73365
73345
|
] }) }),
|
|
73366
|
-
/* @__PURE__ */ jsx("tbody", { children: categories.map((category) => /* @__PURE__ */ jsxs(
|
|
73346
|
+
/* @__PURE__ */ jsx("tbody", { children: categories.map((category) => /* @__PURE__ */ jsxs(React25.Fragment, { children: [
|
|
73367
73347
|
/* @__PURE__ */ jsx("tr", { className: cn(getNestedCardBg(background), getNestedCardTextColor(background), categoryRowClassName), children: /* @__PURE__ */ jsx(
|
|
73368
73348
|
"td",
|
|
73369
73349
|
{
|
|
@@ -77964,9 +77944,9 @@ function ProcessStickySteps({
|
|
|
77964
77944
|
);
|
|
77965
77945
|
}
|
|
77966
77946
|
var usePrevious = (value) => {
|
|
77967
|
-
const [prev, setPrev] =
|
|
77968
|
-
const ref =
|
|
77969
|
-
|
|
77947
|
+
const [prev, setPrev] = React25.useState(void 0);
|
|
77948
|
+
const ref = React25.useRef(value);
|
|
77949
|
+
React25.useEffect(() => {
|
|
77970
77950
|
setPrev(ref.current);
|
|
77971
77951
|
ref.current = value;
|
|
77972
77952
|
}, [value]);
|
|
@@ -77979,12 +77959,12 @@ var ProcessCard = ({
|
|
|
77979
77959
|
itemClassName,
|
|
77980
77960
|
background
|
|
77981
77961
|
}) => {
|
|
77982
|
-
const ref =
|
|
77962
|
+
const ref = React25.useRef(null);
|
|
77983
77963
|
const itemInView = useInView(ref, {
|
|
77984
77964
|
amount: 0,
|
|
77985
77965
|
margin: "0px 0px -60% 0px"
|
|
77986
77966
|
});
|
|
77987
|
-
|
|
77967
|
+
React25.useEffect(() => {
|
|
77988
77968
|
if (itemInView) {
|
|
77989
77969
|
setActive(index);
|
|
77990
77970
|
}
|
|
@@ -78034,7 +78014,7 @@ function ProcessScrollImage({
|
|
|
78034
78014
|
ctaText,
|
|
78035
78015
|
ctaUrl
|
|
78036
78016
|
}) {
|
|
78037
|
-
const [active, setActive] =
|
|
78017
|
+
const [active, setActive] = React25.useState(0);
|
|
78038
78018
|
const previousActive = usePrevious(active);
|
|
78039
78019
|
const resolvedHeading = title ?? heading;
|
|
78040
78020
|
const resolvedActions = actions ?? (ctaText && ctaUrl ? [
|
|
@@ -78218,7 +78198,7 @@ var ProcessCard2 = ({
|
|
|
78218
78198
|
hoverImageClassName,
|
|
78219
78199
|
background
|
|
78220
78200
|
}) => {
|
|
78221
|
-
const [isHovered, setIsHovered] =
|
|
78201
|
+
const [isHovered, setIsHovered] = React25.useState(false);
|
|
78222
78202
|
const titleText = typeof step.title === "string" ? step.title : `Step ${index + 1}`;
|
|
78223
78203
|
return /* @__PURE__ */ jsxs(
|
|
78224
78204
|
"li",
|
|
@@ -78542,7 +78522,7 @@ function ProcessExpandableTimeline({
|
|
|
78542
78522
|
// Backwards compatibility
|
|
78543
78523
|
title
|
|
78544
78524
|
}) {
|
|
78545
|
-
const [expandedIndex, setExpandedIndex] =
|
|
78525
|
+
const [expandedIndex, setExpandedIndex] = React25.useState(null);
|
|
78546
78526
|
const resolvedHeading = title ?? heading;
|
|
78547
78527
|
const toggleExpand = (index) => {
|
|
78548
78528
|
setExpandedIndex(expandedIndex === index ? null : index);
|
|
@@ -83313,7 +83293,7 @@ function ListAchievementsShowcase({
|
|
|
83313
83293
|
if (!items || items.length === 0) return null;
|
|
83314
83294
|
return /* @__PURE__ */ jsxs("div", { className: cn("flex flex-col", itemsClassName), children: [
|
|
83315
83295
|
/* @__PURE__ */ jsx(Separator, {}),
|
|
83316
|
-
items.map((item, index) => /* @__PURE__ */ jsxs(
|
|
83296
|
+
items.map((item, index) => /* @__PURE__ */ jsxs(React25.Fragment, { children: [
|
|
83317
83297
|
/* @__PURE__ */ jsxs(
|
|
83318
83298
|
"div",
|
|
83319
83299
|
{
|
|
@@ -83433,7 +83413,7 @@ function ListCareerTimeline({
|
|
|
83433
83413
|
const renderExperiences = useMemo(() => {
|
|
83434
83414
|
if (experiencesSlot) return experiencesSlot;
|
|
83435
83415
|
if (!experiences || experiences.length === 0) return null;
|
|
83436
|
-
return /* @__PURE__ */ jsx("div", { className: experiencesClassName, children: experiences.map((experience, idx) => /* @__PURE__ */ jsxs(
|
|
83416
|
+
return /* @__PURE__ */ jsx("div", { className: experiencesClassName, children: experiences.map((experience, idx) => /* @__PURE__ */ jsxs(React25.Fragment, { children: [
|
|
83437
83417
|
/* @__PURE__ */ jsx(Separator, {}),
|
|
83438
83418
|
/* @__PURE__ */ jsxs(
|
|
83439
83419
|
"div",
|
|
@@ -83454,7 +83434,7 @@ function ListCareerTimeline({
|
|
|
83454
83434
|
const renderAwards = useMemo(() => {
|
|
83455
83435
|
if (awardsSlot) return awardsSlot;
|
|
83456
83436
|
if (!awards || awards.length === 0) return null;
|
|
83457
|
-
return /* @__PURE__ */ jsx("div", { className: awardsClassName, children: awards.map((award, idx) => /* @__PURE__ */ jsxs(
|
|
83437
|
+
return /* @__PURE__ */ jsx("div", { className: awardsClassName, children: awards.map((award, idx) => /* @__PURE__ */ jsxs(React25.Fragment, { children: [
|
|
83458
83438
|
/* @__PURE__ */ jsx(Separator, {}),
|
|
83459
83439
|
/* @__PURE__ */ jsxs(
|
|
83460
83440
|
"div",
|
|
@@ -83589,7 +83569,7 @@ function ListMetricsDashboard({
|
|
|
83589
83569
|
activeCategory: controlledActiveCategory,
|
|
83590
83570
|
onActiveCategoryChange
|
|
83591
83571
|
}) {
|
|
83592
|
-
const [internalActiveTab, setInternalActiveTab] =
|
|
83572
|
+
const [internalActiveTab, setInternalActiveTab] = React25.useState("all");
|
|
83593
83573
|
const activeTab = controlledActiveCategory ?? internalActiveTab;
|
|
83594
83574
|
const handleTabChange = (value) => {
|
|
83595
83575
|
if (onActiveCategoryChange) {
|
|
@@ -84073,7 +84053,7 @@ function ListSearchableGrid({
|
|
|
84073
84053
|
searchTerm: controlledSearchTerm,
|
|
84074
84054
|
onSearchTermChange
|
|
84075
84055
|
}) {
|
|
84076
|
-
const [internalSearchTerm, setInternalSearchTerm] =
|
|
84056
|
+
const [internalSearchTerm, setInternalSearchTerm] = React25.useState("");
|
|
84077
84057
|
const searchTerm = controlledSearchTerm ?? internalSearchTerm;
|
|
84078
84058
|
const handleSearchChange = (value) => {
|
|
84079
84059
|
if (onSearchTermChange) {
|
|
@@ -84082,7 +84062,7 @@ function ListSearchableGrid({
|
|
|
84082
84062
|
setInternalSearchTerm(value);
|
|
84083
84063
|
}
|
|
84084
84064
|
};
|
|
84085
|
-
const filteredItems =
|
|
84065
|
+
const filteredItems = React25.useMemo(() => {
|
|
84086
84066
|
if (!searchTerm) {
|
|
84087
84067
|
return items ?? [];
|
|
84088
84068
|
}
|
|
@@ -84245,7 +84225,7 @@ function ListSearchableGrid({
|
|
|
84245
84225
|
}
|
|
84246
84226
|
);
|
|
84247
84227
|
}
|
|
84248
|
-
var { useMemo:
|
|
84228
|
+
var { useMemo: useMemo433 } = React25;
|
|
84249
84229
|
function OfferModalNewsletterDiscount({
|
|
84250
84230
|
title,
|
|
84251
84231
|
emailPlaceholder,
|
|
@@ -84313,7 +84293,7 @@ function OfferModalNewsletterDiscount({
|
|
|
84313
84293
|
});
|
|
84314
84294
|
const formMethod = formConfig?.method?.toLowerCase() === "get" ? "get" : "post";
|
|
84315
84295
|
const dialogProps = open !== void 0 ? { open, onOpenChange } : { defaultOpen };
|
|
84316
|
-
const renderCloseButton =
|
|
84296
|
+
const renderCloseButton = useMemo433(() => {
|
|
84317
84297
|
if (closeButtonSlot) return closeButtonSlot;
|
|
84318
84298
|
if (!closeButtonText) return null;
|
|
84319
84299
|
return /* @__PURE__ */ jsx("div", { className: "absolute end-1.5 top-1.5", children: /* @__PURE__ */ jsx(DialogClose, { asChild: true, children: /* @__PURE__ */ jsx(
|
|
@@ -84327,12 +84307,12 @@ function OfferModalNewsletterDiscount({
|
|
|
84327
84307
|
}
|
|
84328
84308
|
) }) });
|
|
84329
84309
|
}, [closeButtonSlot, closeButtonText, closeClassName]);
|
|
84330
|
-
const renderHeader =
|
|
84310
|
+
const renderHeader = useMemo433(() => {
|
|
84331
84311
|
if (headerSlot) return headerSlot;
|
|
84332
84312
|
if (!title) return null;
|
|
84333
84313
|
return /* @__PURE__ */ jsx(DialogHeader, { className: headerClassName, children: typeof title === "string" ? /* @__PURE__ */ jsx(DialogTitle, { className: cn("text-start font-serif text-2xl font-normal leading-snug", titleClassName), children: title }) : /* @__PURE__ */ jsx(DialogTitle, { className: cn("text-start font-serif text-2xl font-normal leading-snug", titleClassName), children: title }) });
|
|
84334
84314
|
}, [headerSlot, title, headerClassName, titleClassName]);
|
|
84335
|
-
const renderForm =
|
|
84315
|
+
const renderForm = useMemo433(() => {
|
|
84336
84316
|
if (formSlot) return formSlot;
|
|
84337
84317
|
return /* @__PURE__ */ jsxs(
|
|
84338
84318
|
Form,
|
|
@@ -84394,7 +84374,7 @@ function OfferModalNewsletterDiscount({
|
|
|
84394
84374
|
}
|
|
84395
84375
|
) });
|
|
84396
84376
|
}
|
|
84397
|
-
var { useMemo:
|
|
84377
|
+
var { useMemo: useMemo434 } = React25;
|
|
84398
84378
|
function OfferModalMembershipImage({
|
|
84399
84379
|
overline,
|
|
84400
84380
|
title,
|
|
@@ -84471,7 +84451,7 @@ function OfferModalMembershipImage({
|
|
|
84471
84451
|
});
|
|
84472
84452
|
const formMethod = formConfig?.method?.toLowerCase() === "get" ? "get" : "post";
|
|
84473
84453
|
const dialogProps = open !== void 0 ? { open, onOpenChange } : { defaultOpen };
|
|
84474
|
-
const renderImage =
|
|
84454
|
+
const renderImage = useMemo434(() => {
|
|
84475
84455
|
if (imageSlot) return imageSlot;
|
|
84476
84456
|
if (!image) return null;
|
|
84477
84457
|
return /* @__PURE__ */ jsx("div", { className: cn("max-h-[290px] h-full overflow-hidden max-lg:hidden", imageWrapperClassName), children: /* @__PURE__ */ jsx(
|
|
@@ -84484,7 +84464,7 @@ function OfferModalMembershipImage({
|
|
|
84484
84464
|
}
|
|
84485
84465
|
) });
|
|
84486
84466
|
}, [imageSlot, image, imageWrapperClassName, imageClassName, optixFlowConfig]);
|
|
84487
|
-
const renderCloseButton =
|
|
84467
|
+
const renderCloseButton = useMemo434(() => {
|
|
84488
84468
|
if (closeButtonSlot) return closeButtonSlot;
|
|
84489
84469
|
return /* @__PURE__ */ jsx("div", { className: "absolute -end-px -top-px z-10", children: /* @__PURE__ */ jsx(DialogClose, { asChild: true, children: /* @__PURE__ */ jsx(
|
|
84490
84470
|
Pressable,
|
|
@@ -84500,7 +84480,7 @@ function OfferModalMembershipImage({
|
|
|
84500
84480
|
}
|
|
84501
84481
|
) }) });
|
|
84502
84482
|
}, [closeButtonSlot, closeClassName]);
|
|
84503
|
-
const renderForm =
|
|
84483
|
+
const renderForm = useMemo434(() => {
|
|
84504
84484
|
if (formSlot) return formSlot;
|
|
84505
84485
|
return /* @__PURE__ */ jsxs(
|
|
84506
84486
|
Form,
|
|
@@ -84563,7 +84543,7 @@ function OfferModalMembershipImage({
|
|
|
84563
84543
|
}
|
|
84564
84544
|
);
|
|
84565
84545
|
}, [formSlot, form, formConfig, formMethod, emailPlaceholder, inputClassName, submitClassName, buttonText, formClassName]);
|
|
84566
|
-
const renderFooter =
|
|
84546
|
+
const renderFooter = useMemo434(() => {
|
|
84567
84547
|
if (footerSlot) return footerSlot;
|
|
84568
84548
|
if (!description) return null;
|
|
84569
84549
|
return /* @__PURE__ */ jsx(DialogFooter, { className: footerClassName, children: /* @__PURE__ */ jsx(DialogDescription, { className: cn("text-muted-foreground text-center text-xs leading-relaxed", descriptionClassName), children: description }) });
|
|
@@ -84683,7 +84663,7 @@ function SheetDescription({
|
|
|
84683
84663
|
}
|
|
84684
84664
|
);
|
|
84685
84665
|
}
|
|
84686
|
-
var { useMemo:
|
|
84666
|
+
var { useMemo: useMemo435 } = React25;
|
|
84687
84667
|
function OfferModalSheetNewsletter({
|
|
84688
84668
|
logo,
|
|
84689
84669
|
logoSlot,
|
|
@@ -84766,7 +84746,7 @@ function OfferModalSheetNewsletter({
|
|
|
84766
84746
|
});
|
|
84767
84747
|
const formMethod = formConfig?.method?.toLowerCase() === "get" ? "get" : "post";
|
|
84768
84748
|
const sheetProps = open !== void 0 ? { open, onOpenChange } : { defaultOpen };
|
|
84769
|
-
const renderLogo =
|
|
84749
|
+
const renderLogo = useMemo435(() => {
|
|
84770
84750
|
if (logoSlot) return logoSlot;
|
|
84771
84751
|
if (!logo) return null;
|
|
84772
84752
|
const logoSrc = typeof logo.src === "string" ? logo.src : logo.src.light;
|
|
@@ -84780,7 +84760,7 @@ function OfferModalSheetNewsletter({
|
|
|
84780
84760
|
}
|
|
84781
84761
|
);
|
|
84782
84762
|
}, [logoSlot, logo, logoClassName, optixFlowConfig]);
|
|
84783
|
-
const renderHeader =
|
|
84763
|
+
const renderHeader = useMemo435(() => {
|
|
84784
84764
|
if (headerSlot) return headerSlot;
|
|
84785
84765
|
return /* @__PURE__ */ jsxs(SheetHeader, { className: cn("gap-8 p-0", headerClassName), children: [
|
|
84786
84766
|
renderLogo,
|
|
@@ -84790,7 +84770,7 @@ function OfferModalSheetNewsletter({
|
|
|
84790
84770
|
] })
|
|
84791
84771
|
] });
|
|
84792
84772
|
}, [headerSlot, renderLogo, headerClassName, title, titleClassName, description, descriptionClassName]);
|
|
84793
|
-
const renderForm =
|
|
84773
|
+
const renderForm = useMemo435(() => {
|
|
84794
84774
|
if (formSlot) return formSlot;
|
|
84795
84775
|
return /* @__PURE__ */ jsx(
|
|
84796
84776
|
Form,
|
|
@@ -84838,7 +84818,7 @@ function OfferModalSheetNewsletter({
|
|
|
84838
84818
|
}
|
|
84839
84819
|
);
|
|
84840
84820
|
}, [formSlot, form, formConfig, formMethod, emailPlaceholder, inputClassName, submitClassName, buttonText, formClassName]);
|
|
84841
|
-
const renderLegal =
|
|
84821
|
+
const renderLegal = useMemo435(() => {
|
|
84842
84822
|
if (legalSlot) return legalSlot;
|
|
84843
84823
|
if (!termsUrl || !termsText || !privacyUrl || !privacyText) return null;
|
|
84844
84824
|
return /* @__PURE__ */ jsxs("p", { className: cn("text-muted-foreground text-xs", legalClassName), children: [
|
|
@@ -84852,7 +84832,7 @@ function OfferModalSheetNewsletter({
|
|
|
84852
84832
|
"."
|
|
84853
84833
|
] });
|
|
84854
84834
|
}, [legalSlot, termsUrl, termsText, privacyUrl, privacyText, legalClassName]);
|
|
84855
|
-
const renderImage =
|
|
84835
|
+
const renderImage = useMemo435(() => {
|
|
84856
84836
|
if (imageSlot) return imageSlot;
|
|
84857
84837
|
if (!image) return null;
|
|
84858
84838
|
return /* @__PURE__ */ jsx("div", { className: cn("h-1/2 basis-1/2", imageWrapperClassName), children: /* @__PURE__ */ jsx(AspectRatio, { ratio: 1, className: "overflow-hidden", children: /* @__PURE__ */ jsx(
|
|
@@ -85432,10 +85412,10 @@ function ProjectDetailSidebarNavigation(props) {
|
|
|
85432
85412
|
heroImageClassName,
|
|
85433
85413
|
metadataClassName
|
|
85434
85414
|
} = props;
|
|
85435
|
-
const [activeSection, setActiveSection] =
|
|
85415
|
+
const [activeSection, setActiveSection] = React25.useState(
|
|
85436
85416
|
sections?.[0]?.id || ""
|
|
85437
85417
|
);
|
|
85438
|
-
|
|
85418
|
+
React25.useEffect(() => {
|
|
85439
85419
|
const handleScroll = () => {
|
|
85440
85420
|
const sectionElements = sections?.map(
|
|
85441
85421
|
(section) => document.getElementById(section.id)
|
|
@@ -88295,7 +88275,7 @@ function ProjectDetailTabbedCaseStudy(props) {
|
|
|
88295
88275
|
testimonialClassName,
|
|
88296
88276
|
toolsClassName
|
|
88297
88277
|
} = props;
|
|
88298
|
-
const [activeTab, setActiveTab] =
|
|
88278
|
+
const [activeTab, setActiveTab] = React25.useState(tabs?.[0]?.id || "");
|
|
88299
88279
|
const renderedBackAction = useMemo(() => {
|
|
88300
88280
|
if (backActionSlot) return backActionSlot;
|
|
88301
88281
|
if (!backAction) return null;
|
|
@@ -88683,7 +88663,7 @@ function RevealImage({
|
|
|
88683
88663
|
index,
|
|
88684
88664
|
optixFlowConfig
|
|
88685
88665
|
}) {
|
|
88686
|
-
const ref =
|
|
88666
|
+
const ref = React25.useRef(null);
|
|
88687
88667
|
const { scrollYProgress } = useScroll({
|
|
88688
88668
|
target: ref,
|
|
88689
88669
|
offset: ["start end", "end start"]
|
|
@@ -88878,7 +88858,7 @@ function ParallaxSection({
|
|
|
88878
88858
|
index,
|
|
88879
88859
|
optixFlowConfig
|
|
88880
88860
|
}) {
|
|
88881
|
-
const ref =
|
|
88861
|
+
const ref = React25.useRef(null);
|
|
88882
88862
|
const { scrollYProgress } = useScroll({
|
|
88883
88863
|
target: ref,
|
|
88884
88864
|
offset: ["start end", "end start"]
|
|
@@ -88951,7 +88931,7 @@ function ProjectDetailParallaxScroll(props) {
|
|
|
88951
88931
|
heroImageClassName,
|
|
88952
88932
|
sectionsClassName
|
|
88953
88933
|
} = props;
|
|
88954
|
-
const heroRef =
|
|
88934
|
+
const heroRef = React25.useRef(null);
|
|
88955
88935
|
const { scrollYProgress } = useScroll({
|
|
88956
88936
|
target: heroRef,
|
|
88957
88937
|
offset: ["start start", "end start"]
|
|
@@ -89281,7 +89261,7 @@ function BannerDeliveryCountdown({
|
|
|
89281
89261
|
}, [prefixText, timerContent, middleText, deliveryDateContent]);
|
|
89282
89262
|
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: [
|
|
89283
89263
|
iconContent,
|
|
89284
|
-
messageParts.length > 0 && /* @__PURE__ */ jsx("span", { children: messageParts.map((part, index) => /* @__PURE__ */ jsxs(
|
|
89264
|
+
messageParts.length > 0 && /* @__PURE__ */ jsx("span", { children: messageParts.map((part, index) => /* @__PURE__ */ jsxs(React25.Fragment, { children: [
|
|
89285
89265
|
index > 0 ? " " : null,
|
|
89286
89266
|
part
|
|
89287
89267
|
] }, index)) })
|
|
@@ -90417,7 +90397,7 @@ function IndustriesExpandableShowcase({
|
|
|
90417
90397
|
patternClassName,
|
|
90418
90398
|
optixFlowConfig
|
|
90419
90399
|
}) {
|
|
90420
|
-
const [activeContractor, setActiveContractor] =
|
|
90400
|
+
const [activeContractor, setActiveContractor] = React25.useState(
|
|
90421
90401
|
contractors?.[0]?.id || ""
|
|
90422
90402
|
);
|
|
90423
90403
|
const handleContractorHover = (contractorId) => {
|
|
@@ -91070,7 +91050,7 @@ function ResourceDetailDocumentSidebar({
|
|
|
91070
91050
|
}) {
|
|
91071
91051
|
const renderedBreadcrumbs = useMemo(() => {
|
|
91072
91052
|
if (breadcrumbsSlot) return breadcrumbsSlot;
|
|
91073
|
-
return /* @__PURE__ */ jsx(Breadcrumb, { className: breadcrumbsClassName, children: /* @__PURE__ */ jsx(BreadcrumbList, { children: breadcrumbs?.map((crumb, index) => /* @__PURE__ */ jsxs(
|
|
91053
|
+
return /* @__PURE__ */ jsx(Breadcrumb, { className: breadcrumbsClassName, children: /* @__PURE__ */ jsx(BreadcrumbList, { children: breadcrumbs?.map((crumb, index) => /* @__PURE__ */ jsxs(React25.Fragment, { children: [
|
|
91074
91054
|
/* @__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 }) }),
|
|
91075
91055
|
index < (breadcrumbs?.length || 0) - 1 && /* @__PURE__ */ jsx(BreadcrumbSeparator, {})
|
|
91076
91056
|
] }, index)) }) });
|
|
@@ -94471,8 +94451,8 @@ function ServicesListTableHover({
|
|
|
94471
94451
|
patternOpacity,
|
|
94472
94452
|
optixFlowConfig
|
|
94473
94453
|
}) {
|
|
94474
|
-
const [hoveredIndex, setHoveredIndex] =
|
|
94475
|
-
const [mousePosition, setMousePosition] =
|
|
94454
|
+
const [hoveredIndex, setHoveredIndex] = React25.useState(null);
|
|
94455
|
+
const [mousePosition, setMousePosition] = React25.useState({ x: 0, y: 0 });
|
|
94476
94456
|
const handleMouseMove = (e) => {
|
|
94477
94457
|
setMousePosition({ x: e.clientX, y: e.clientY });
|
|
94478
94458
|
};
|
|
@@ -94722,7 +94702,7 @@ function ServicesListStickyImage({
|
|
|
94722
94702
|
patternOpacity,
|
|
94723
94703
|
optixFlowConfig
|
|
94724
94704
|
}) {
|
|
94725
|
-
const [activeIndex, setActiveIndex] =
|
|
94705
|
+
const [activeIndex, setActiveIndex] = React25.useState(0);
|
|
94726
94706
|
const renderServices = () => {
|
|
94727
94707
|
if (servicesSlot) return servicesSlot;
|
|
94728
94708
|
if (!services || services.length === 0) return null;
|
|
@@ -94974,8 +94954,8 @@ function ServicesListVideoShowcase({
|
|
|
94974
94954
|
patternOpacity,
|
|
94975
94955
|
optixFlowConfig
|
|
94976
94956
|
}) {
|
|
94977
|
-
const [playingIndex, setPlayingIndex] =
|
|
94978
|
-
const videoRefs =
|
|
94957
|
+
const [playingIndex, setPlayingIndex] = React25.useState(null);
|
|
94958
|
+
const videoRefs = React25.useRef([]);
|
|
94979
94959
|
const handleMouseEnter = (index) => {
|
|
94980
94960
|
setPlayingIndex(index);
|
|
94981
94961
|
videoRefs.current[index]?.play();
|
|
@@ -98268,7 +98248,7 @@ function StatsCircularProgress({
|
|
|
98268
98248
|
statInfoClassName
|
|
98269
98249
|
}) {
|
|
98270
98250
|
const effectiveDefaultCategory = defaultCategory || (categories && categories.length > 0 ? categories[0].id : "");
|
|
98271
|
-
const [category, setCategory] =
|
|
98251
|
+
const [category, setCategory] = React25.useState(effectiveDefaultCategory);
|
|
98272
98252
|
const badgeContent = useMemo(() => {
|
|
98273
98253
|
if (badgeSlot) return badgeSlot;
|
|
98274
98254
|
if (!badge) return null;
|
|
@@ -98561,8 +98541,8 @@ function StatsCardGroup({
|
|
|
98561
98541
|
);
|
|
98562
98542
|
}
|
|
98563
98543
|
function useAnimatedCounter(endValue, duration = 2e3, isVisible) {
|
|
98564
|
-
const [count, setCount] =
|
|
98565
|
-
|
|
98544
|
+
const [count, setCount] = React25.useState(0);
|
|
98545
|
+
React25.useEffect(() => {
|
|
98566
98546
|
if (!isVisible) return;
|
|
98567
98547
|
let startTime = null;
|
|
98568
98548
|
let animationFrame;
|
|
@@ -98650,9 +98630,9 @@ function StatsAnimatedCounter({
|
|
|
98650
98630
|
statLabelClassName,
|
|
98651
98631
|
statIconClassName
|
|
98652
98632
|
}) {
|
|
98653
|
-
const [isVisible, setIsVisible] =
|
|
98654
|
-
const sectionRef =
|
|
98655
|
-
|
|
98633
|
+
const [isVisible, setIsVisible] = React25.useState(false);
|
|
98634
|
+
const sectionRef = React25.useRef(null);
|
|
98635
|
+
React25.useEffect(() => {
|
|
98656
98636
|
const observer = new IntersectionObserver(
|
|
98657
98637
|
([entry]) => {
|
|
98658
98638
|
if (entry.isIntersecting) {
|
|
@@ -98740,8 +98720,8 @@ function StatsAnimatedCounter({
|
|
|
98740
98720
|
);
|
|
98741
98721
|
}
|
|
98742
98722
|
function useNumberTicker(endValue, duration = 2500, isVisible, decimals = 0) {
|
|
98743
|
-
const [displayValue, setDisplayValue] =
|
|
98744
|
-
|
|
98723
|
+
const [displayValue, setDisplayValue] = React25.useState("0");
|
|
98724
|
+
React25.useEffect(() => {
|
|
98745
98725
|
if (!isVisible) return;
|
|
98746
98726
|
let startTime = null;
|
|
98747
98727
|
let animationFrame;
|
|
@@ -98856,9 +98836,9 @@ function StatsNumberTicker({
|
|
|
98856
98836
|
statLabelClassName,
|
|
98857
98837
|
statDescriptionClassName
|
|
98858
98838
|
}) {
|
|
98859
|
-
const [isVisible, setIsVisible] =
|
|
98860
|
-
const sectionRef =
|
|
98861
|
-
|
|
98839
|
+
const [isVisible, setIsVisible] = React25.useState(false);
|
|
98840
|
+
const sectionRef = React25.useRef(null);
|
|
98841
|
+
React25.useEffect(() => {
|
|
98862
98842
|
const observer = new IntersectionObserver(
|
|
98863
98843
|
([entry]) => {
|
|
98864
98844
|
if (entry.isIntersecting) {
|
|
@@ -99117,9 +99097,9 @@ function StatsBarComparison({
|
|
|
99117
99097
|
barValueClassName,
|
|
99118
99098
|
barTrackClassName
|
|
99119
99099
|
}) {
|
|
99120
|
-
const [isVisible, setIsVisible] =
|
|
99121
|
-
const sectionRef =
|
|
99122
|
-
|
|
99100
|
+
const [isVisible, setIsVisible] = React25.useState(!animate);
|
|
99101
|
+
const sectionRef = React25.useRef(null);
|
|
99102
|
+
React25.useEffect(() => {
|
|
99123
99103
|
if (!animate) return;
|
|
99124
99104
|
const observer = new IntersectionObserver(
|
|
99125
99105
|
([entry]) => {
|
|
@@ -99297,7 +99277,7 @@ function TimelineVerticalIconDashed({
|
|
|
99297
99277
|
"mx-auto flex flex-col items-center justify-center text-center sm:max-w-xl",
|
|
99298
99278
|
stepsClassName
|
|
99299
99279
|
),
|
|
99300
|
-
children: steps.map((step, index) => /* @__PURE__ */ jsxs(
|
|
99280
|
+
children: steps.map((step, index) => /* @__PURE__ */ jsxs(React25.Fragment, { children: [
|
|
99301
99281
|
/* @__PURE__ */ jsxs("div", { className: cn("flex flex-col items-center", stepClassName), children: [
|
|
99302
99282
|
/* @__PURE__ */ jsx(
|
|
99303
99283
|
"span",
|
|
@@ -99564,7 +99544,7 @@ function TimelineTwoColumnFeatured({
|
|
|
99564
99544
|
style,
|
|
99565
99545
|
optixFlowConfig
|
|
99566
99546
|
}) {
|
|
99567
|
-
const renderActions =
|
|
99547
|
+
const renderActions = React25.useMemo(() => {
|
|
99568
99548
|
if (actionsSlot) {
|
|
99569
99549
|
return actionsSlot;
|
|
99570
99550
|
}
|
|
@@ -99692,7 +99672,7 @@ function TimelineTwoColumnFeatured({
|
|
|
99692
99672
|
}
|
|
99693
99673
|
);
|
|
99694
99674
|
}
|
|
99695
|
-
var DiagonalPattern =
|
|
99675
|
+
var DiagonalPattern = React25.memo(({
|
|
99696
99676
|
className,
|
|
99697
99677
|
patternOpacity = 0.15
|
|
99698
99678
|
}) => {
|
|
@@ -99731,7 +99711,7 @@ function TimelineAlternatingDiagonal({
|
|
|
99731
99711
|
style,
|
|
99732
99712
|
optixFlowConfig
|
|
99733
99713
|
}) {
|
|
99734
|
-
const renderedBadge =
|
|
99714
|
+
const renderedBadge = React25.useMemo(() => {
|
|
99735
99715
|
if (badgeSlot) {
|
|
99736
99716
|
return badgeSlot;
|
|
99737
99717
|
}
|
|
@@ -100109,7 +100089,7 @@ function TimelineProductivityList({
|
|
|
100109
100089
|
}
|
|
100110
100090
|
);
|
|
100111
100091
|
}
|
|
100112
|
-
var ProcessBar =
|
|
100092
|
+
var ProcessBar = React25.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(React25.Fragment, { children: [
|
|
100113
100093
|
/* @__PURE__ */ jsx("div", { className: "flex flex-col items-center", children: /* @__PURE__ */ jsx(
|
|
100114
100094
|
motion.div,
|
|
100115
100095
|
{
|
|
@@ -100136,7 +100116,7 @@ var ProcessBar = React23.memo(({ currentStep, steps }) => /* @__PURE__ */ jsx("d
|
|
|
100136
100116
|
)
|
|
100137
100117
|
] })
|
|
100138
100118
|
] }, index)) }) }));
|
|
100139
|
-
var StepperContent =
|
|
100119
|
+
var StepperContent = React25.memo(({ step, optixFlowConfig, imageClassName, descriptionClassName, background }) => {
|
|
100140
100120
|
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: [
|
|
100141
100121
|
/* @__PURE__ */ jsx(
|
|
100142
100122
|
motion.div,
|
|
@@ -100169,7 +100149,7 @@ var StepperContent = React23.memo(({ step, optixFlowConfig, imageClassName, desc
|
|
|
100169
100149
|
)
|
|
100170
100150
|
] });
|
|
100171
100151
|
});
|
|
100172
|
-
var NavButtons =
|
|
100152
|
+
var NavButtons = React25.memo(({ handlePrev, handleNext }) => /* @__PURE__ */ jsxs("div", { className: "flex w-full justify-end gap-3 tracking-tight", children: [
|
|
100173
100153
|
/* @__PURE__ */ jsxs(
|
|
100174
100154
|
Pressable,
|
|
100175
100155
|
{
|
|
@@ -100220,10 +100200,10 @@ function TimelineStepperAnimated({
|
|
|
100220
100200
|
}) {
|
|
100221
100201
|
const safeInitialStep = (steps?.length ?? 0) > 0 ? Math.max(0, Math.min(initialStep ?? 0, (steps?.length ?? 1) - 1)) : 0;
|
|
100222
100202
|
const [currentStep, setCurrentStep] = useState(safeInitialStep);
|
|
100223
|
-
const handleNext =
|
|
100203
|
+
const handleNext = React25.useCallback(() => {
|
|
100224
100204
|
setCurrentStep((prev) => Math.min(prev + 1, (steps?.length ?? 1) - 1));
|
|
100225
100205
|
}, [steps?.length]);
|
|
100226
|
-
const handlePrev =
|
|
100206
|
+
const handlePrev = React25.useCallback(() => {
|
|
100227
100207
|
setCurrentStep((prev) => Math.max(prev - 1, 0));
|
|
100228
100208
|
}, []);
|
|
100229
100209
|
const safeCurrentStep = (steps?.length ?? 0) > 0 ? Math.max(0, Math.min(currentStep, (steps?.length ?? 1) - 1)) : 0;
|
|
@@ -100932,7 +100912,7 @@ function TimelineTabbedPhases({
|
|
|
100932
100912
|
style,
|
|
100933
100913
|
optixFlowConfig
|
|
100934
100914
|
}) {
|
|
100935
|
-
const renderDownloadButton =
|
|
100915
|
+
const renderDownloadButton = React25.useMemo(() => {
|
|
100936
100916
|
if (downloadSlot) {
|
|
100937
100917
|
return downloadSlot;
|
|
100938
100918
|
}
|
|
@@ -101152,7 +101132,7 @@ function TimelineProductLaunch({
|
|
|
101152
101132
|
id,
|
|
101153
101133
|
style
|
|
101154
101134
|
}) {
|
|
101155
|
-
const renderCta =
|
|
101135
|
+
const renderCta = React25.useMemo(() => {
|
|
101156
101136
|
if (ctaSlot) {
|
|
101157
101137
|
return ctaSlot;
|
|
101158
101138
|
}
|
|
@@ -101617,9 +101597,9 @@ function LinkTreeBlock({
|
|
|
101617
101597
|
}) {
|
|
101618
101598
|
const resolvedBackground = background;
|
|
101619
101599
|
const resolvedPattern = pattern ?? backgroundPattern;
|
|
101620
|
-
const [lightboxOpen, setLightboxOpen] =
|
|
101621
|
-
const [lightboxIndex, setLightboxIndex] =
|
|
101622
|
-
const lightboxItems =
|
|
101600
|
+
const [lightboxOpen, setLightboxOpen] = React25.useState(false);
|
|
101601
|
+
const [lightboxIndex, setLightboxIndex] = React25.useState(0);
|
|
101602
|
+
const lightboxItems = React25.useMemo(() => {
|
|
101623
101603
|
if (!mediaGallery || mediaGallery.length === 0) return [];
|
|
101624
101604
|
return mediaGallery.slice(0, mediaGalleryLimit).map((item, index) => ({
|
|
101625
101605
|
id: item.id ?? `media-${index}`,
|
|
@@ -101631,11 +101611,11 @@ function LinkTreeBlock({
|
|
|
101631
101611
|
share: true
|
|
101632
101612
|
}));
|
|
101633
101613
|
}, [mediaGallery, mediaGalleryLimit]);
|
|
101634
|
-
const handleMediaClick =
|
|
101614
|
+
const handleMediaClick = React25.useCallback((index) => {
|
|
101635
101615
|
setLightboxIndex(index);
|
|
101636
101616
|
setLightboxOpen(true);
|
|
101637
101617
|
}, []);
|
|
101638
|
-
const handleLightboxClose =
|
|
101618
|
+
const handleLightboxClose = React25.useCallback(() => {
|
|
101639
101619
|
setLightboxOpen(false);
|
|
101640
101620
|
}, []);
|
|
101641
101621
|
const resolveImage = (value, fallbackAlt) => {
|
|
@@ -101647,7 +101627,7 @@ function LinkTreeBlock({
|
|
|
101647
101627
|
};
|
|
101648
101628
|
const nameForAlt = typeof brandName === "string" ? brandName : "Brand avatar";
|
|
101649
101629
|
const resolvedAvatar = resolveImage(brandAvatar || brandLogo, nameForAlt) || resolveImage(blockBrandedIconsAndPlaceholders.avatar1, nameForAlt);
|
|
101650
|
-
const renderBrandHeader =
|
|
101630
|
+
const renderBrandHeader = React25.useMemo(() => {
|
|
101651
101631
|
if (brandSlot) return brandSlot;
|
|
101652
101632
|
return /* @__PURE__ */ jsxs(
|
|
101653
101633
|
"div",
|
|
@@ -101734,7 +101714,7 @@ function LinkTreeBlock({
|
|
|
101734
101714
|
brandTagline,
|
|
101735
101715
|
taglineClassName
|
|
101736
101716
|
]);
|
|
101737
|
-
const renderLinks =
|
|
101717
|
+
const renderLinks = React25.useMemo(() => {
|
|
101738
101718
|
if (linksSlot) return linksSlot;
|
|
101739
101719
|
if (!links || links.length === 0) return null;
|
|
101740
101720
|
return /* @__PURE__ */ jsx("div", { className: cn("space-y-3", linksClassName), children: links.map((link, index) => {
|
|
@@ -101851,7 +101831,7 @@ function LinkTreeBlock({
|
|
|
101851
101831
|
linkBadgeClassName,
|
|
101852
101832
|
linkChevronClassName
|
|
101853
101833
|
]);
|
|
101854
|
-
const renderMediaGallery =
|
|
101834
|
+
const renderMediaGallery = React25.useMemo(() => {
|
|
101855
101835
|
if (mediaGallerySlot) return mediaGallerySlot;
|
|
101856
101836
|
if (!mediaGallery || mediaGallery.length === 0) return null;
|
|
101857
101837
|
const items = mediaGallery.slice(0, mediaGalleryLimit);
|
|
@@ -101965,7 +101945,7 @@ function LinkTreeBlock({
|
|
|
101965
101945
|
mediaGalleryOverlayClassName,
|
|
101966
101946
|
mediaGalleryPlayIconClassName
|
|
101967
101947
|
]);
|
|
101968
|
-
const renderSocialLinks =
|
|
101948
|
+
const renderSocialLinks = React25.useMemo(() => {
|
|
101969
101949
|
if (socialLinksSlot) return socialLinksSlot;
|
|
101970
101950
|
if (!socialLinks || socialLinks.length === 0) return null;
|
|
101971
101951
|
return /* @__PURE__ */ jsx(
|
|
@@ -102011,7 +101991,7 @@ function LinkTreeBlock({
|
|
|
102011
101991
|
socialIconClassName,
|
|
102012
101992
|
socialLinkClassName
|
|
102013
101993
|
]);
|
|
102014
|
-
const renderFooter =
|
|
101994
|
+
const renderFooter = React25.useMemo(() => {
|
|
102015
101995
|
if (footerSlot) return footerSlot;
|
|
102016
101996
|
if (!footerAction) return null;
|
|
102017
101997
|
const resolvedFooterAction = footerAction;
|