@opensite/ui 2.2.1 → 2.2.3
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/contact-card.cjs +3 -32
- package/dist/contact-card.d.cts +2 -10
- package/dist/contact-card.d.ts +2 -10
- package/dist/contact-card.js +4 -33
- package/dist/{contact-dark-tweUQnN1.d.ts → contact-dark-0gEH_OJl.d.ts} +1 -10
- package/dist/{contact-dark-VpMwwNkH.d.cts → contact-dark-BCQefo1j.d.cts} +1 -10
- package/dist/contact-dark.cjs +3 -32
- package/dist/contact-dark.d.cts +1 -1
- package/dist/contact-dark.d.ts +1 -1
- package/dist/contact-dark.js +4 -33
- package/dist/contact-emergency.cjs +4 -33
- package/dist/contact-emergency.d.cts +1 -9
- package/dist/contact-emergency.d.ts +1 -9
- package/dist/contact-emergency.js +6 -35
- package/dist/contact-faq.cjs +10 -38
- package/dist/contact-faq.d.cts +1 -9
- package/dist/contact-faq.d.ts +1 -9
- package/dist/contact-faq.js +7 -38
- package/dist/contact-image.cjs +8 -37
- package/dist/contact-image.d.cts +1 -9
- package/dist/contact-image.d.ts +1 -9
- package/dist/contact-image.js +9 -38
- package/dist/contact-vendor.cjs +8 -44
- package/dist/contact-vendor.js +6 -27
- package/dist/hero-image-slider.cjs +15 -30
- package/dist/hero-image-slider.js +15 -30
- package/dist/hero-newsletter-minimal.cjs +17 -34
- package/dist/hero-newsletter-minimal.js +17 -34
- package/dist/registry.cjs +1713 -1911
- package/dist/registry.js +471 -669
- 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, useEffect, useRef, startTransition, useContext } from 'react';
|
|
3
3
|
import { clsx } from 'clsx';
|
|
4
4
|
import { twMerge } from 'tailwind-merge';
|
|
5
5
|
import { jsx, jsxs, Fragment as Fragment$1 } from 'react/jsx-runtime';
|
|
@@ -140,7 +140,7 @@ var maxWidthStyles = {
|
|
|
140
140
|
"4xl": "max-w-[1536px]",
|
|
141
141
|
full: "max-w-full"
|
|
142
142
|
};
|
|
143
|
-
var Container =
|
|
143
|
+
var Container = 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);
|
|
@@ -2657,7 +2657,7 @@ var platformIconMap = {
|
|
|
2657
2657
|
dribbble: "cib/dribbble",
|
|
2658
2658
|
unknown: "icon-park-solid/circular-connection"
|
|
2659
2659
|
};
|
|
2660
|
-
var SocialLinkIcon =
|
|
2660
|
+
var SocialLinkIcon = React25.forwardRef(
|
|
2661
2661
|
({
|
|
2662
2662
|
platformName,
|
|
2663
2663
|
label,
|
|
@@ -2670,13 +2670,13 @@ var SocialLinkIcon = React28.forwardRef(
|
|
|
2670
2670
|
...pressableProps
|
|
2671
2671
|
}, ref) => {
|
|
2672
2672
|
const platform = usePlatformFromUrl(href);
|
|
2673
|
-
const smartPlatformName =
|
|
2673
|
+
const smartPlatformName = React25.useMemo(() => {
|
|
2674
2674
|
return platform || platformName;
|
|
2675
2675
|
}, [platform, platformName]);
|
|
2676
|
-
const iconName =
|
|
2676
|
+
const iconName = React25.useMemo(() => {
|
|
2677
2677
|
return iconNameOverride || platformIconMap[smartPlatformName];
|
|
2678
2678
|
}, [iconNameOverride, smartPlatformName]);
|
|
2679
|
-
const accessibleLabel =
|
|
2679
|
+
const accessibleLabel = React25.useMemo(() => {
|
|
2680
2680
|
return label || platformName;
|
|
2681
2681
|
}, [label, platformName]);
|
|
2682
2682
|
return /* @__PURE__ */ jsx(
|
|
@@ -3101,7 +3101,7 @@ function AboutExpandableValues({
|
|
|
3101
3101
|
pattern,
|
|
3102
3102
|
patternOpacity
|
|
3103
3103
|
}) {
|
|
3104
|
-
const [expandedValue, setExpandedValue] =
|
|
3104
|
+
const [expandedValue, setExpandedValue] = React25.useState(null);
|
|
3105
3105
|
const toggleExpand = useCallback((id) => {
|
|
3106
3106
|
setExpandedValue((prev) => prev === id ? null : id);
|
|
3107
3107
|
}, []);
|
|
@@ -3355,7 +3355,7 @@ function CommunityInitiatives({
|
|
|
3355
3355
|
pattern,
|
|
3356
3356
|
patternOpacity
|
|
3357
3357
|
}) {
|
|
3358
|
-
const [activeCategory, setActiveCategory] =
|
|
3358
|
+
const [activeCategory, setActiveCategory] = React25.useState(
|
|
3359
3359
|
categories?.[0]?.id || ""
|
|
3360
3360
|
);
|
|
3361
3361
|
const currentCategory = categories?.find((category) => category.id === activeCategory) || categories?.[0];
|
|
@@ -3628,7 +3628,7 @@ function AboutCultureTabs({
|
|
|
3628
3628
|
patternOpacity
|
|
3629
3629
|
}) {
|
|
3630
3630
|
const resolvedAspects = aspects ?? [];
|
|
3631
|
-
const [activeTab, setActiveTab] =
|
|
3631
|
+
const [activeTab, setActiveTab] = React25.useState(
|
|
3632
3632
|
resolvedAspects[0]?.id || ""
|
|
3633
3633
|
);
|
|
3634
3634
|
const ctaImagesContent = useMemo(() => {
|
|
@@ -4127,7 +4127,7 @@ function BannerDeliveryCountdown({
|
|
|
4127
4127
|
}, [prefixText, timerContent, middleText, deliveryDateContent]);
|
|
4128
4128
|
return /* @__PURE__ */ jsx(Section, { background, spacing: "none", className: cn("bg-accent text-accent-foreground", className), children: /* @__PURE__ */ jsx("div", { className: cn("container py-2.5", containerClassName), children: /* @__PURE__ */ jsx("div", { className: cn("flex flex-wrap items-center justify-center gap-3 text-sm", contentClassName), children: /* @__PURE__ */ jsxs("div", { className: cn("flex items-center gap-2", messageClassName), children: [
|
|
4129
4129
|
iconContent,
|
|
4130
|
-
messageParts.length > 0 && /* @__PURE__ */ jsx("span", { children: messageParts.map((part, index) => /* @__PURE__ */ jsxs(
|
|
4130
|
+
messageParts.length > 0 && /* @__PURE__ */ jsx("span", { children: messageParts.map((part, index) => /* @__PURE__ */ jsxs(React25.Fragment, { children: [
|
|
4131
4131
|
index > 0 ? " " : null,
|
|
4132
4132
|
part
|
|
4133
4133
|
] }, index)) })
|
|
@@ -5398,8 +5398,8 @@ var BrandAttribution = ({
|
|
|
5398
5398
|
}
|
|
5399
5399
|
const { prefix = "", anchorText, href, suffix = "" } = options[optionIndex];
|
|
5400
5400
|
const ContainerEl = variant;
|
|
5401
|
-
const [trackedHref, setTrackedHref] =
|
|
5402
|
-
|
|
5401
|
+
const [trackedHref, setTrackedHref] = React25.useState(href);
|
|
5402
|
+
React25.useEffect(() => {
|
|
5403
5403
|
setTrackedHref(buildTrackedHref(href));
|
|
5404
5404
|
}, [href]);
|
|
5405
5405
|
return /* @__PURE__ */ jsxs(ContainerEl, { className: containerClassName, children: [
|
|
@@ -5542,7 +5542,7 @@ function FooterSocialNewsletter({
|
|
|
5542
5542
|
onError,
|
|
5543
5543
|
uploadTokens
|
|
5544
5544
|
});
|
|
5545
|
-
const renderForm =
|
|
5545
|
+
const renderForm = React25.useMemo(() => {
|
|
5546
5546
|
if (formSlot) return formSlot;
|
|
5547
5547
|
const defaultButtonAction = {
|
|
5548
5548
|
label: "Subscribe",
|
|
@@ -5876,7 +5876,7 @@ function FooterSimpleCentered({
|
|
|
5876
5876
|
]);
|
|
5877
5877
|
const bottomLinksContent = useMemo(() => {
|
|
5878
5878
|
if (!bottomLinks || bottomLinks.length === 0) return null;
|
|
5879
|
-
return bottomLinks.map((link, idx) => /* @__PURE__ */ jsx(
|
|
5879
|
+
return bottomLinks.map((link, idx) => /* @__PURE__ */ jsx(React25.Fragment, { children: /* @__PURE__ */ jsx(
|
|
5880
5880
|
Pressable,
|
|
5881
5881
|
{
|
|
5882
5882
|
href: link.href,
|
|
@@ -8501,7 +8501,7 @@ function AboutInteractiveTabs({
|
|
|
8501
8501
|
pattern,
|
|
8502
8502
|
patternOpacity
|
|
8503
8503
|
}) {
|
|
8504
|
-
const [activeTab, setActiveTab] =
|
|
8504
|
+
const [activeTab, setActiveTab] = React25.useState(tabs?.[0]?.id ?? "");
|
|
8505
8505
|
const activeContent = useMemo(() => {
|
|
8506
8506
|
return tabs?.find((tab) => tab.id === activeTab)?.content;
|
|
8507
8507
|
}, [tabs, activeTab]);
|
|
@@ -12532,7 +12532,7 @@ function CtaVideoBackgroundHero({
|
|
|
12532
12532
|
pattern,
|
|
12533
12533
|
patternOpacity
|
|
12534
12534
|
}) {
|
|
12535
|
-
const [isModalOpen, setIsModalOpen] =
|
|
12535
|
+
const [isModalOpen, setIsModalOpen] = React25.useState(false);
|
|
12536
12536
|
const handleOpenModal = () => {
|
|
12537
12537
|
setIsModalOpen(true);
|
|
12538
12538
|
onModalOpen?.();
|
|
@@ -12720,7 +12720,7 @@ function CtaWorkflowTabs({
|
|
|
12720
12720
|
patternOpacity,
|
|
12721
12721
|
optixFlowConfig
|
|
12722
12722
|
}) {
|
|
12723
|
-
const [activeTab, setActiveTab] =
|
|
12723
|
+
const [activeTab, setActiveTab] = React25.useState(tabs?.[0]?.id || "");
|
|
12724
12724
|
const activeTabData = tabs?.find((tab) => tab.id === activeTab) || tabs?.[0];
|
|
12725
12725
|
const actionsContent = useMemo(() => {
|
|
12726
12726
|
if (actionsSlot) return actionsSlot;
|
|
@@ -13333,7 +13333,7 @@ function ContactFloatingBanner({
|
|
|
13333
13333
|
pattern,
|
|
13334
13334
|
patternOpacity
|
|
13335
13335
|
}) {
|
|
13336
|
-
const actionsContent =
|
|
13336
|
+
const actionsContent = React25.useMemo(() => {
|
|
13337
13337
|
if (actionsSlot) return actionsSlot;
|
|
13338
13338
|
if (actions && actions.length > 0) {
|
|
13339
13339
|
return actions.map((action, index) => {
|
|
@@ -13735,8 +13735,6 @@ var DEFAULT_FORM_FIELDS3 = [
|
|
|
13735
13735
|
function ContactCard({
|
|
13736
13736
|
heading = "Get In Touch",
|
|
13737
13737
|
description = "We'd love to hear from you. Send us a message and we'll respond as soon as possible.",
|
|
13738
|
-
buttonText = "Send Message",
|
|
13739
|
-
buttonIcon,
|
|
13740
13738
|
contactOptions,
|
|
13741
13739
|
contactOptionsSlot,
|
|
13742
13740
|
socialLinks,
|
|
@@ -13757,23 +13755,7 @@ function ContactCard({
|
|
|
13757
13755
|
pattern,
|
|
13758
13756
|
patternOpacity
|
|
13759
13757
|
}) {
|
|
13760
|
-
const
|
|
13761
|
-
return {
|
|
13762
|
-
formContainer: formEngineSetup?.formLayoutSettings?.styleRules?.formContainer ?? DEFAULT_STYLE_RULES.formContainer,
|
|
13763
|
-
fieldsContainer: formEngineSetup?.formLayoutSettings?.styleRules?.fieldsContainer ?? DEFAULT_STYLE_RULES.fieldsContainer,
|
|
13764
|
-
fieldClassName: formEngineSetup?.formLayoutSettings?.styleRules?.fieldClassName ?? DEFAULT_STYLE_RULES.fieldClassName,
|
|
13765
|
-
formClassName: formEngineSetup?.formLayoutSettings?.styleRules?.formClassName ?? DEFAULT_STYLE_RULES.formClassName,
|
|
13766
|
-
successMessageClassName: formEngineSetup?.formLayoutSettings?.styleRules?.successMessageClassName ?? DEFAULT_STYLE_RULES.successMessageClassName,
|
|
13767
|
-
errorMessageClassName: formEngineSetup?.formLayoutSettings?.styleRules?.errorMessageClassName ?? DEFAULT_STYLE_RULES.errorMessageClassName
|
|
13768
|
-
};
|
|
13769
|
-
}, [formEngineSetup?.formLayoutSettings?.styleRules]);
|
|
13770
|
-
const formFields = React28.useMemo(() => {
|
|
13771
|
-
if (formEngineSetup?.fields && formEngineSetup.fields.length > 0) {
|
|
13772
|
-
return formEngineSetup.fields;
|
|
13773
|
-
}
|
|
13774
|
-
return DEFAULT_FORM_FIELDS3;
|
|
13775
|
-
}, [formEngineSetup?.fields]);
|
|
13776
|
-
const contactOptionsContent = React28.useMemo(() => {
|
|
13758
|
+
const contactOptionsContent = React25.useMemo(() => {
|
|
13777
13759
|
if (contactOptionsSlot) return contactOptionsSlot;
|
|
13778
13760
|
if (contactOptions && contactOptions.length > 0) {
|
|
13779
13761
|
return contactOptions.map((option, key) => /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-4", children: [
|
|
@@ -13797,7 +13779,7 @@ function ContactCard({
|
|
|
13797
13779
|
}
|
|
13798
13780
|
return null;
|
|
13799
13781
|
}, [contactOptionsSlot, contactOptions]);
|
|
13800
|
-
const socialLinksContent =
|
|
13782
|
+
const socialLinksContent = React25.useMemo(() => {
|
|
13801
13783
|
if (socialLinksSlot) return socialLinksSlot;
|
|
13802
13784
|
if (socialLinks && socialLinks.length > 0) {
|
|
13803
13785
|
return socialLinks.map((social, key) => /* @__PURE__ */ jsx(
|
|
@@ -13837,20 +13819,9 @@ function ContactCard({
|
|
|
13837
13819
|
/* @__PURE__ */ jsx(Card, { className: cn("order-2 lg:order-1 pt-0 pb-0", cardClassName), children: /* @__PURE__ */ jsx(CardContent, { className: cn("p-6 lg:p-8", cardContentClassName), children: formEngineSetup ? /* @__PURE__ */ jsx(
|
|
13838
13820
|
FormEngine,
|
|
13839
13821
|
{
|
|
13840
|
-
|
|
13841
|
-
|
|
13842
|
-
|
|
13843
|
-
formLayout: "standard",
|
|
13844
|
-
submitButtonSetup: {
|
|
13845
|
-
...formEngineSetup.formLayoutSettings?.submitButtonSetup,
|
|
13846
|
-
submitLabel: /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
13847
|
-
buttonIcon,
|
|
13848
|
-
buttonText
|
|
13849
|
-
] })
|
|
13850
|
-
},
|
|
13851
|
-
styleRules: formStyleRules
|
|
13852
|
-
},
|
|
13853
|
-
fields: formFields
|
|
13822
|
+
formEngineSetup,
|
|
13823
|
+
defaultFields: DEFAULT_FORM_FIELDS3,
|
|
13824
|
+
defaultStyleRules: DEFAULT_STYLE_RULES
|
|
13854
13825
|
}
|
|
13855
13826
|
) : null }) }),
|
|
13856
13827
|
/* @__PURE__ */ jsxs(
|
|
@@ -14374,7 +14345,7 @@ function ContactCatering({
|
|
|
14374
14345
|
onSuccess,
|
|
14375
14346
|
onError
|
|
14376
14347
|
});
|
|
14377
|
-
const actionsContent =
|
|
14348
|
+
const actionsContent = React25.useMemo(() => {
|
|
14378
14349
|
if (actionsSlot) return actionsSlot;
|
|
14379
14350
|
if (actions && actions.length > 0) {
|
|
14380
14351
|
return actions.map((action, index) => {
|
|
@@ -14618,7 +14589,7 @@ function ContactConsultation({
|
|
|
14618
14589
|
onSuccess,
|
|
14619
14590
|
onError
|
|
14620
14591
|
});
|
|
14621
|
-
const actionsContent =
|
|
14592
|
+
const actionsContent = React25.useMemo(() => {
|
|
14622
14593
|
if (actionsSlot) return actionsSlot;
|
|
14623
14594
|
if (actions && actions.length > 0) {
|
|
14624
14595
|
return actions.map((action, index) => {
|
|
@@ -14769,8 +14740,6 @@ function ContactDark({
|
|
|
14769
14740
|
description,
|
|
14770
14741
|
contactHeading = "Contact Information",
|
|
14771
14742
|
contactDescription = "Fill up the form and our team will get back to you within 24 hours.",
|
|
14772
|
-
buttonText = "Submit",
|
|
14773
|
-
buttonIcon,
|
|
14774
14743
|
contactOptions,
|
|
14775
14744
|
contactOptionsSlot,
|
|
14776
14745
|
socialLinks,
|
|
@@ -14791,23 +14760,7 @@ function ContactDark({
|
|
|
14791
14760
|
pattern,
|
|
14792
14761
|
patternOpacity
|
|
14793
14762
|
}) {
|
|
14794
|
-
const
|
|
14795
|
-
return {
|
|
14796
|
-
formContainer: formEngineSetup?.formLayoutSettings?.styleRules?.formContainer ?? DEFAULT_STYLE_RULES2.formContainer,
|
|
14797
|
-
fieldsContainer: formEngineSetup?.formLayoutSettings?.styleRules?.fieldsContainer ?? DEFAULT_STYLE_RULES2.fieldsContainer,
|
|
14798
|
-
fieldClassName: formEngineSetup?.formLayoutSettings?.styleRules?.fieldClassName ?? DEFAULT_STYLE_RULES2.fieldClassName,
|
|
14799
|
-
formClassName: formEngineSetup?.formLayoutSettings?.styleRules?.formClassName ?? DEFAULT_STYLE_RULES2.formClassName,
|
|
14800
|
-
successMessageClassName: formEngineSetup?.formLayoutSettings?.styleRules?.successMessageClassName ?? DEFAULT_STYLE_RULES2.successMessageClassName,
|
|
14801
|
-
errorMessageClassName: formEngineSetup?.formLayoutSettings?.styleRules?.errorMessageClassName ?? DEFAULT_STYLE_RULES2.errorMessageClassName
|
|
14802
|
-
};
|
|
14803
|
-
}, [formEngineSetup?.formLayoutSettings?.styleRules]);
|
|
14804
|
-
const formFields = React28.useMemo(() => {
|
|
14805
|
-
if (formEngineSetup?.fields && formEngineSetup.fields.length > 0) {
|
|
14806
|
-
return formEngineSetup.fields;
|
|
14807
|
-
}
|
|
14808
|
-
return DEFAULT_FORM_FIELDS7;
|
|
14809
|
-
}, [formEngineSetup?.fields]);
|
|
14810
|
-
const contactOptionsContent = React28.useMemo(() => {
|
|
14763
|
+
const contactOptionsContent = React25.useMemo(() => {
|
|
14811
14764
|
if (contactOptionsSlot) return contactOptionsSlot;
|
|
14812
14765
|
if (contactOptions && contactOptions.length > 0) {
|
|
14813
14766
|
return contactOptions.map((option, key) => /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3", children: [
|
|
@@ -14831,7 +14784,7 @@ function ContactDark({
|
|
|
14831
14784
|
}
|
|
14832
14785
|
return null;
|
|
14833
14786
|
}, [contactOptionsSlot, contactOptions]);
|
|
14834
|
-
const socialLinksContent =
|
|
14787
|
+
const socialLinksContent = React25.useMemo(() => {
|
|
14835
14788
|
if (socialLinksSlot) return socialLinksSlot;
|
|
14836
14789
|
if (socialLinks && socialLinks.length > 0) {
|
|
14837
14790
|
return socialLinks.map((social, key) => /* @__PURE__ */ jsx(
|
|
@@ -14872,20 +14825,9 @@ function ContactDark({
|
|
|
14872
14825
|
/* @__PURE__ */ jsx("div", { className: cn("p-6 lg:p-12", formPanelClassName), children: formEngineSetup ? /* @__PURE__ */ jsx(
|
|
14873
14826
|
FormEngine,
|
|
14874
14827
|
{
|
|
14875
|
-
|
|
14876
|
-
|
|
14877
|
-
|
|
14878
|
-
formLayout: "standard",
|
|
14879
|
-
submitButtonSetup: {
|
|
14880
|
-
...formEngineSetup.formLayoutSettings?.submitButtonSetup,
|
|
14881
|
-
submitLabel: /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
14882
|
-
buttonIcon,
|
|
14883
|
-
buttonText
|
|
14884
|
-
] })
|
|
14885
|
-
},
|
|
14886
|
-
styleRules: formStyleRules
|
|
14887
|
-
},
|
|
14888
|
-
fields: formFields
|
|
14828
|
+
formEngineSetup,
|
|
14829
|
+
defaultFields: DEFAULT_FORM_FIELDS7,
|
|
14830
|
+
defaultStyleRules: DEFAULT_STYLE_RULES2
|
|
14889
14831
|
}
|
|
14890
14832
|
) : null }),
|
|
14891
14833
|
/* @__PURE__ */ jsxs(
|
|
@@ -15386,8 +15328,6 @@ function ContactEmergency({
|
|
|
15386
15328
|
heading,
|
|
15387
15329
|
description,
|
|
15388
15330
|
contactItems,
|
|
15389
|
-
buttonText = "Submit Emergency Request",
|
|
15390
|
-
buttonIcon,
|
|
15391
15331
|
formEngineSetup,
|
|
15392
15332
|
className,
|
|
15393
15333
|
headerClassName,
|
|
@@ -15399,22 +15339,6 @@ function ContactEmergency({
|
|
|
15399
15339
|
pattern,
|
|
15400
15340
|
patternOpacity
|
|
15401
15341
|
}) {
|
|
15402
|
-
const formStyleRules = React28.useMemo(() => {
|
|
15403
|
-
return {
|
|
15404
|
-
formContainer: formEngineSetup?.formLayoutSettings?.styleRules?.formContainer ?? DEFAULT_STYLE_RULES3.formContainer,
|
|
15405
|
-
fieldsContainer: formEngineSetup?.formLayoutSettings?.styleRules?.fieldsContainer ?? DEFAULT_STYLE_RULES3.fieldsContainer,
|
|
15406
|
-
fieldClassName: formEngineSetup?.formLayoutSettings?.styleRules?.fieldClassName ?? DEFAULT_STYLE_RULES3.fieldClassName,
|
|
15407
|
-
formClassName: formEngineSetup?.formLayoutSettings?.styleRules?.formClassName ?? DEFAULT_STYLE_RULES3.formClassName,
|
|
15408
|
-
successMessageClassName: formEngineSetup?.formLayoutSettings?.styleRules?.successMessageClassName ?? DEFAULT_STYLE_RULES3.successMessageClassName,
|
|
15409
|
-
errorMessageClassName: formEngineSetup?.formLayoutSettings?.styleRules?.errorMessageClassName ?? DEFAULT_STYLE_RULES3.errorMessageClassName
|
|
15410
|
-
};
|
|
15411
|
-
}, [formEngineSetup?.formLayoutSettings?.styleRules]);
|
|
15412
|
-
const formFields = React28.useMemo(() => {
|
|
15413
|
-
if (formEngineSetup?.fields && formEngineSetup.fields.length > 0) {
|
|
15414
|
-
return formEngineSetup.fields;
|
|
15415
|
-
}
|
|
15416
|
-
return DEFAULT_FORM_FIELDS9;
|
|
15417
|
-
}, [formEngineSetup?.fields]);
|
|
15418
15342
|
return /* @__PURE__ */ jsx(
|
|
15419
15343
|
Section,
|
|
15420
15344
|
{
|
|
@@ -15488,20 +15412,9 @@ function ContactEmergency({
|
|
|
15488
15412
|
/* @__PURE__ */ jsx("div", { className: "p-6", children: formEngineSetup ? /* @__PURE__ */ jsx(
|
|
15489
15413
|
FormEngine,
|
|
15490
15414
|
{
|
|
15491
|
-
|
|
15492
|
-
|
|
15493
|
-
|
|
15494
|
-
formLayout: "standard",
|
|
15495
|
-
submitButtonSetup: {
|
|
15496
|
-
...formEngineSetup.formLayoutSettings?.submitButtonSetup,
|
|
15497
|
-
submitLabel: /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
15498
|
-
buttonIcon,
|
|
15499
|
-
buttonText
|
|
15500
|
-
] })
|
|
15501
|
-
},
|
|
15502
|
-
styleRules: formStyleRules
|
|
15503
|
-
},
|
|
15504
|
-
fields: formFields
|
|
15415
|
+
formEngineSetup,
|
|
15416
|
+
defaultFields: DEFAULT_FORM_FIELDS9,
|
|
15417
|
+
defaultStyleRules: DEFAULT_STYLE_RULES3
|
|
15505
15418
|
}
|
|
15506
15419
|
) : null })
|
|
15507
15420
|
] })
|
|
@@ -15829,8 +15742,6 @@ function ContactFaq({
|
|
|
15829
15742
|
heading,
|
|
15830
15743
|
description,
|
|
15831
15744
|
formHeading,
|
|
15832
|
-
buttonText = "Submit",
|
|
15833
|
-
buttonIcon,
|
|
15834
15745
|
items,
|
|
15835
15746
|
itemsSlot,
|
|
15836
15747
|
faqHeading,
|
|
@@ -15855,23 +15766,6 @@ function ContactFaq({
|
|
|
15855
15766
|
pattern,
|
|
15856
15767
|
patternOpacity
|
|
15857
15768
|
}) {
|
|
15858
|
-
const formStyleRules = React28.useMemo(() => {
|
|
15859
|
-
return {
|
|
15860
|
-
formContainer: formEngineSetup?.formLayoutSettings?.styleRules?.formContainer ?? DEFAULT_STYLE_RULES4.formContainer,
|
|
15861
|
-
fieldsContainer: formEngineSetup?.formLayoutSettings?.styleRules?.fieldsContainer ?? DEFAULT_STYLE_RULES4.fieldsContainer,
|
|
15862
|
-
fieldClassName: formEngineSetup?.formLayoutSettings?.styleRules?.fieldClassName ?? DEFAULT_STYLE_RULES4.fieldClassName,
|
|
15863
|
-
formClassName: formEngineSetup?.formLayoutSettings?.styleRules?.formClassName ?? DEFAULT_STYLE_RULES4.formClassName,
|
|
15864
|
-
successMessageClassName: formEngineSetup?.formLayoutSettings?.styleRules?.successMessageClassName ?? DEFAULT_STYLE_RULES4.successMessageClassName,
|
|
15865
|
-
errorMessageClassName: formEngineSetup?.formLayoutSettings?.styleRules?.errorMessageClassName ?? DEFAULT_STYLE_RULES4.errorMessageClassName
|
|
15866
|
-
};
|
|
15867
|
-
}, [formEngineSetup?.formLayoutSettings?.styleRules]);
|
|
15868
|
-
const formFields = React28.useMemo(() => {
|
|
15869
|
-
if (formEngineSetup && formEngineSetup?.fields && formEngineSetup?.fields?.length > 0) {
|
|
15870
|
-
return formEngineSetup.fields;
|
|
15871
|
-
} else {
|
|
15872
|
-
return DEFAULT_FORM_FIELDS11;
|
|
15873
|
-
}
|
|
15874
|
-
}, [formEngineSetup?.fields]);
|
|
15875
15769
|
const hasFaqItems = itemsSlot || items && items.length > 0;
|
|
15876
15770
|
const faqContent = useMemo(() => {
|
|
15877
15771
|
if (itemsSlot) return itemsSlot;
|
|
@@ -15969,20 +15863,9 @@ function ContactFaq({
|
|
|
15969
15863
|
formEngineSetup ? /* @__PURE__ */ jsx(
|
|
15970
15864
|
FormEngine,
|
|
15971
15865
|
{
|
|
15972
|
-
|
|
15973
|
-
|
|
15974
|
-
|
|
15975
|
-
formLayout: "standard",
|
|
15976
|
-
submitButtonSetup: {
|
|
15977
|
-
...formEngineSetup.formLayoutSettings?.submitButtonSetup,
|
|
15978
|
-
submitLabel: /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
15979
|
-
buttonIcon,
|
|
15980
|
-
buttonText
|
|
15981
|
-
] })
|
|
15982
|
-
},
|
|
15983
|
-
styleRules: formStyleRules
|
|
15984
|
-
},
|
|
15985
|
-
fields: formFields
|
|
15866
|
+
formEngineSetup,
|
|
15867
|
+
defaultFields: DEFAULT_FORM_FIELDS11,
|
|
15868
|
+
defaultStyleRules: DEFAULT_STYLE_RULES4
|
|
15986
15869
|
}
|
|
15987
15870
|
) : null
|
|
15988
15871
|
] }) }),
|
|
@@ -16707,8 +16590,6 @@ function ContactImage({
|
|
|
16707
16590
|
eyebrow,
|
|
16708
16591
|
heading,
|
|
16709
16592
|
description,
|
|
16710
|
-
buttonText = "Send Message",
|
|
16711
|
-
buttonIcon,
|
|
16712
16593
|
image,
|
|
16713
16594
|
contactOverlays,
|
|
16714
16595
|
contactOverlaysSlot,
|
|
@@ -16727,23 +16608,7 @@ function ContactImage({
|
|
|
16727
16608
|
patternOpacity,
|
|
16728
16609
|
optixFlowConfig
|
|
16729
16610
|
}) {
|
|
16730
|
-
const
|
|
16731
|
-
return {
|
|
16732
|
-
formContainer: formEngineSetup?.formLayoutSettings?.styleRules?.formContainer ?? DEFAULT_STYLE_RULES5.formContainer,
|
|
16733
|
-
fieldsContainer: formEngineSetup?.formLayoutSettings?.styleRules?.fieldsContainer ?? DEFAULT_STYLE_RULES5.fieldsContainer,
|
|
16734
|
-
fieldClassName: formEngineSetup?.formLayoutSettings?.styleRules?.fieldClassName ?? DEFAULT_STYLE_RULES5.fieldClassName,
|
|
16735
|
-
formClassName: formEngineSetup?.formLayoutSettings?.styleRules?.formClassName ?? DEFAULT_STYLE_RULES5.formClassName,
|
|
16736
|
-
successMessageClassName: formEngineSetup?.formLayoutSettings?.styleRules?.successMessageClassName ?? DEFAULT_STYLE_RULES5.successMessageClassName,
|
|
16737
|
-
errorMessageClassName: formEngineSetup?.formLayoutSettings?.styleRules?.errorMessageClassName ?? DEFAULT_STYLE_RULES5.errorMessageClassName
|
|
16738
|
-
};
|
|
16739
|
-
}, [formEngineSetup?.formLayoutSettings?.styleRules]);
|
|
16740
|
-
const formFields = React28.useMemo(() => {
|
|
16741
|
-
if (formEngineSetup?.fields && formEngineSetup.fields.length > 0) {
|
|
16742
|
-
return formEngineSetup.fields;
|
|
16743
|
-
}
|
|
16744
|
-
return DEFAULT_FORM_FIELDS15;
|
|
16745
|
-
}, [formEngineSetup?.fields]);
|
|
16746
|
-
const contactOverlaysContent = React28.useMemo(() => {
|
|
16611
|
+
const contactOverlaysContent = React25.useMemo(() => {
|
|
16747
16612
|
if (contactOverlaysSlot) return contactOverlaysSlot;
|
|
16748
16613
|
if (!contactOverlays || contactOverlays.length === 0) return null;
|
|
16749
16614
|
return /* @__PURE__ */ jsx("div", { className: cn("flex flex-col gap-3", contactOverlaysClassName), children: contactOverlays.map((item, index) => {
|
|
@@ -16862,20 +16727,9 @@ function ContactImage({
|
|
|
16862
16727
|
/* @__PURE__ */ jsx("div", { className: "mt-8", children: formEngineSetup ? /* @__PURE__ */ jsx(
|
|
16863
16728
|
FormEngine,
|
|
16864
16729
|
{
|
|
16865
|
-
|
|
16866
|
-
|
|
16867
|
-
|
|
16868
|
-
formLayout: "standard",
|
|
16869
|
-
submitButtonSetup: {
|
|
16870
|
-
...formEngineSetup.formLayoutSettings?.submitButtonSetup,
|
|
16871
|
-
submitLabel: /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
16872
|
-
buttonIcon,
|
|
16873
|
-
buttonText
|
|
16874
|
-
] })
|
|
16875
|
-
},
|
|
16876
|
-
styleRules: formStyleRules
|
|
16877
|
-
},
|
|
16878
|
-
fields: formFields
|
|
16730
|
+
formEngineSetup,
|
|
16731
|
+
defaultFields: DEFAULT_FORM_FIELDS15,
|
|
16732
|
+
defaultStyleRules: DEFAULT_STYLE_RULES5
|
|
16879
16733
|
}
|
|
16880
16734
|
) : null })
|
|
16881
16735
|
]
|
|
@@ -21729,23 +21583,6 @@ function ContactVendor({
|
|
|
21729
21583
|
pattern,
|
|
21730
21584
|
patternOpacity = 0.1
|
|
21731
21585
|
}) {
|
|
21732
|
-
const formStyleRules = React28.useMemo(() => {
|
|
21733
|
-
return {
|
|
21734
|
-
formContainer: formEngineSetup?.formLayoutSettings?.styleRules?.formContainer ?? DEFAULT_STYLE_RULES6.formContainer,
|
|
21735
|
-
fieldsContainer: formEngineSetup?.formLayoutSettings?.styleRules?.fieldsContainer ?? DEFAULT_STYLE_RULES6.fieldsContainer,
|
|
21736
|
-
fieldClassName: formEngineSetup?.formLayoutSettings?.styleRules?.fieldClassName ?? DEFAULT_STYLE_RULES6.fieldClassName,
|
|
21737
|
-
formClassName: formEngineSetup?.formLayoutSettings?.styleRules?.formClassName ?? DEFAULT_STYLE_RULES6.formClassName,
|
|
21738
|
-
successMessageClassName: formEngineSetup?.formLayoutSettings?.styleRules?.successMessageClassName ?? DEFAULT_STYLE_RULES6.successMessageClassName,
|
|
21739
|
-
errorMessageClassName: formEngineSetup?.formLayoutSettings?.styleRules?.errorMessageClassName ?? DEFAULT_STYLE_RULES6.errorMessageClassName
|
|
21740
|
-
};
|
|
21741
|
-
}, [formEngineSetup?.formLayoutSettings?.styleRules]);
|
|
21742
|
-
const formFields = React28.useMemo(() => {
|
|
21743
|
-
if (formEngineSetup && formEngineSetup?.fields && formEngineSetup?.fields?.length > 0) {
|
|
21744
|
-
return formEngineSetup.fields;
|
|
21745
|
-
} else {
|
|
21746
|
-
return DEFAULT_FORM_FIELDS38;
|
|
21747
|
-
}
|
|
21748
|
-
}, [formEngineSetup?.fields]);
|
|
21749
21586
|
return /* @__PURE__ */ jsx(
|
|
21750
21587
|
Section,
|
|
21751
21588
|
{
|
|
@@ -21781,12 +21618,9 @@ function ContactVendor({
|
|
|
21781
21618
|
/* @__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(
|
|
21782
21619
|
FormEngine,
|
|
21783
21620
|
{
|
|
21784
|
-
|
|
21785
|
-
|
|
21786
|
-
|
|
21787
|
-
styleRules: formStyleRules
|
|
21788
|
-
},
|
|
21789
|
-
fields: formFields
|
|
21621
|
+
formEngineSetup,
|
|
21622
|
+
defaultFields: DEFAULT_FORM_FIELDS38,
|
|
21623
|
+
defaultStyleRules: DEFAULT_STYLE_RULES6
|
|
21790
21624
|
}
|
|
21791
21625
|
) : null }) })
|
|
21792
21626
|
] })
|
|
@@ -22555,16 +22389,16 @@ function CarouselAnimatedSections({
|
|
|
22555
22389
|
pattern = "diagonalCrossBasic",
|
|
22556
22390
|
patternOpacity = 0.033
|
|
22557
22391
|
}) {
|
|
22558
|
-
const [currentIndex, setCurrentIndex] =
|
|
22559
|
-
const [direction, setDirection] =
|
|
22560
|
-
const [isAnimating, setIsAnimating] =
|
|
22561
|
-
const goToNext =
|
|
22392
|
+
const [currentIndex, setCurrentIndex] = React25.useState(0);
|
|
22393
|
+
const [direction, setDirection] = React25.useState(0);
|
|
22394
|
+
const [isAnimating, setIsAnimating] = React25.useState(false);
|
|
22395
|
+
const goToNext = React25.useCallback(() => {
|
|
22562
22396
|
if (isAnimating || currentIndex >= (sections?.length ?? 0) - 1) return;
|
|
22563
22397
|
setIsAnimating(true);
|
|
22564
22398
|
setDirection(1);
|
|
22565
22399
|
setCurrentIndex((prev) => prev + 1);
|
|
22566
22400
|
}, [currentIndex, isAnimating, sections?.length]);
|
|
22567
|
-
const goToPrev =
|
|
22401
|
+
const goToPrev = React25.useCallback(() => {
|
|
22568
22402
|
if (isAnimating || currentIndex <= 0) return;
|
|
22569
22403
|
setIsAnimating(true);
|
|
22570
22404
|
setDirection(-1);
|
|
@@ -22576,7 +22410,7 @@ function CarouselAnimatedSections({
|
|
|
22576
22410
|
setDirection(index > currentIndex ? 1 : -1);
|
|
22577
22411
|
setCurrentIndex(index);
|
|
22578
22412
|
};
|
|
22579
|
-
|
|
22413
|
+
React25.useEffect(() => {
|
|
22580
22414
|
const handleKeyDown = (e) => {
|
|
22581
22415
|
if (e.key === "ArrowDown" || e.key === "ArrowRight") {
|
|
22582
22416
|
goToNext();
|
|
@@ -22602,7 +22436,7 @@ function CarouselAnimatedSections({
|
|
|
22602
22436
|
})
|
|
22603
22437
|
};
|
|
22604
22438
|
const currentSection = sections?.[currentIndex];
|
|
22605
|
-
const actionElements =
|
|
22439
|
+
const actionElements = React25.useMemo(() => {
|
|
22606
22440
|
if (actionsSlot) return actionsSlot;
|
|
22607
22441
|
if (actions && actions.length > 0) {
|
|
22608
22442
|
return actions.map((action, index) => /* @__PURE__ */ jsxs(
|
|
@@ -22850,11 +22684,11 @@ function CarouselAutoProgressSlides({
|
|
|
22850
22684
|
pattern,
|
|
22851
22685
|
patternOpacity
|
|
22852
22686
|
}) {
|
|
22853
|
-
const [currentIndex, setCurrentIndex] =
|
|
22687
|
+
const [currentIndex, setCurrentIndex] = React25.useState(0);
|
|
22854
22688
|
const progress = useMotionValue(100);
|
|
22855
|
-
const [direction, setDirection] =
|
|
22689
|
+
const [direction, setDirection] = React25.useState(1);
|
|
22856
22690
|
const clipPath = useMotionTemplate`inset(0 ${progress}% 0 0 round 10px)`;
|
|
22857
|
-
|
|
22691
|
+
React25.useEffect(() => {
|
|
22858
22692
|
const interval = setInterval(() => {
|
|
22859
22693
|
const currentProgress = progress.get();
|
|
22860
22694
|
if (currentProgress > 0) {
|
|
@@ -23033,22 +22867,22 @@ function CarouselAutoProgressSlides({
|
|
|
23033
22867
|
);
|
|
23034
22868
|
}
|
|
23035
22869
|
function useDotButton(emblaApi) {
|
|
23036
|
-
const [selectedIndex, setSelectedIndex] =
|
|
23037
|
-
const [scrollSnaps, setScrollSnaps] =
|
|
23038
|
-
const onDotButtonClick =
|
|
22870
|
+
const [selectedIndex, setSelectedIndex] = React25.useState(0);
|
|
22871
|
+
const [scrollSnaps, setScrollSnaps] = React25.useState([]);
|
|
22872
|
+
const onDotButtonClick = React25.useCallback(
|
|
23039
22873
|
(index) => {
|
|
23040
22874
|
if (!emblaApi) return;
|
|
23041
22875
|
emblaApi.scrollTo(index);
|
|
23042
22876
|
},
|
|
23043
22877
|
[emblaApi]
|
|
23044
22878
|
);
|
|
23045
|
-
const onInit =
|
|
22879
|
+
const onInit = React25.useCallback((api) => {
|
|
23046
22880
|
setScrollSnaps(api.scrollSnapList());
|
|
23047
22881
|
}, []);
|
|
23048
|
-
const onSelect =
|
|
22882
|
+
const onSelect = React25.useCallback((api) => {
|
|
23049
22883
|
setSelectedIndex(api.selectedScrollSnap());
|
|
23050
22884
|
}, []);
|
|
23051
|
-
|
|
22885
|
+
React25.useEffect(() => {
|
|
23052
22886
|
if (!emblaApi) return;
|
|
23053
22887
|
onInit(emblaApi);
|
|
23054
22888
|
onSelect(emblaApi);
|
|
@@ -23057,8 +22891,8 @@ function useDotButton(emblaApi) {
|
|
|
23057
22891
|
return { selectedIndex, scrollSnaps, onDotButtonClick };
|
|
23058
22892
|
}
|
|
23059
22893
|
function useAutoplay(emblaApi) {
|
|
23060
|
-
const [autoplayIsPlaying, setAutoplayIsPlaying] =
|
|
23061
|
-
const onAutoplayButtonClick =
|
|
22894
|
+
const [autoplayIsPlaying, setAutoplayIsPlaying] = React25.useState(false);
|
|
22895
|
+
const onAutoplayButtonClick = React25.useCallback(
|
|
23062
22896
|
(callback) => {
|
|
23063
22897
|
const autoplay = emblaApi?.plugins()?.autoplay;
|
|
23064
22898
|
if (!autoplay) return;
|
|
@@ -23068,13 +22902,13 @@ function useAutoplay(emblaApi) {
|
|
|
23068
22902
|
},
|
|
23069
22903
|
[emblaApi]
|
|
23070
22904
|
);
|
|
23071
|
-
const toggleAutoplay =
|
|
22905
|
+
const toggleAutoplay = React25.useCallback(() => {
|
|
23072
22906
|
const autoplay = emblaApi?.plugins()?.autoplay;
|
|
23073
22907
|
if (!autoplay) return;
|
|
23074
22908
|
const playOrStop = autoplay.isPlaying() ? autoplay.stop : autoplay.play;
|
|
23075
22909
|
playOrStop();
|
|
23076
22910
|
}, [emblaApi]);
|
|
23077
|
-
|
|
22911
|
+
React25.useEffect(() => {
|
|
23078
22912
|
const autoplay = emblaApi?.plugins()?.autoplay;
|
|
23079
22913
|
if (!autoplay) return;
|
|
23080
22914
|
setAutoplayIsPlaying(autoplay.isPlaying());
|
|
@@ -23083,11 +22917,11 @@ function useAutoplay(emblaApi) {
|
|
|
23083
22917
|
return { autoplayIsPlaying, toggleAutoplay, onAutoplayButtonClick };
|
|
23084
22918
|
}
|
|
23085
22919
|
function useAutoplayProgress(emblaApi, progressNode) {
|
|
23086
|
-
const [showAutoplayProgress, setShowAutoplayProgress] =
|
|
23087
|
-
const animationName =
|
|
23088
|
-
const timeoutId =
|
|
23089
|
-
const rafId =
|
|
23090
|
-
const startProgress =
|
|
22920
|
+
const [showAutoplayProgress, setShowAutoplayProgress] = React25.useState(false);
|
|
22921
|
+
const animationName = React25.useRef("");
|
|
22922
|
+
const timeoutId = React25.useRef(0);
|
|
22923
|
+
const rafId = React25.useRef(0);
|
|
22924
|
+
const startProgress = React25.useCallback(
|
|
23091
22925
|
(timeUntilNext) => {
|
|
23092
22926
|
const node = progressNode.current;
|
|
23093
22927
|
if (!node || timeUntilNext === null) return;
|
|
@@ -23107,12 +22941,12 @@ function useAutoplayProgress(emblaApi, progressNode) {
|
|
|
23107
22941
|
},
|
|
23108
22942
|
[progressNode]
|
|
23109
22943
|
);
|
|
23110
|
-
|
|
22944
|
+
React25.useEffect(() => {
|
|
23111
22945
|
const autoplay = emblaApi?.plugins()?.autoplay;
|
|
23112
22946
|
if (!autoplay) return;
|
|
23113
22947
|
emblaApi.on("autoplay:timerset", () => startProgress(autoplay.timeUntilNext())).on("autoplay:timerstopped", () => setShowAutoplayProgress(false));
|
|
23114
22948
|
}, [emblaApi, startProgress]);
|
|
23115
|
-
|
|
22949
|
+
React25.useEffect(() => {
|
|
23116
22950
|
return () => {
|
|
23117
22951
|
cancelAnimationFrame(rafId.current);
|
|
23118
22952
|
clearTimeout(timeoutId.current);
|
|
@@ -23139,7 +22973,7 @@ function CarouselAutoplayProgress({
|
|
|
23139
22973
|
pattern,
|
|
23140
22974
|
patternOpacity
|
|
23141
22975
|
}) {
|
|
23142
|
-
const progressNode =
|
|
22976
|
+
const progressNode = React25.useRef(null);
|
|
23143
22977
|
const [emblaRef, emblaApi] = useEmblaCarousel(options, [
|
|
23144
22978
|
Autoplay({ playOnInit: true, delay: autoplayDelay })
|
|
23145
22979
|
]);
|
|
@@ -23262,20 +23096,20 @@ function CarouselFeatureBadge({
|
|
|
23262
23096
|
containerMaxWidth = "2xl"
|
|
23263
23097
|
}) {
|
|
23264
23098
|
const [emblaRef, emblaApi] = useEmblaCarousel();
|
|
23265
|
-
const [canScrollPrev, setCanScrollPrev] =
|
|
23266
|
-
const [canScrollNext, setCanScrollNext] =
|
|
23267
|
-
const scrollPrev =
|
|
23099
|
+
const [canScrollPrev, setCanScrollPrev] = React25.useState(false);
|
|
23100
|
+
const [canScrollNext, setCanScrollNext] = React25.useState(false);
|
|
23101
|
+
const scrollPrev = React25.useCallback(() => {
|
|
23268
23102
|
emblaApi?.scrollPrev();
|
|
23269
23103
|
}, [emblaApi]);
|
|
23270
|
-
const scrollNext =
|
|
23104
|
+
const scrollNext = React25.useCallback(() => {
|
|
23271
23105
|
emblaApi?.scrollNext();
|
|
23272
23106
|
}, [emblaApi]);
|
|
23273
|
-
const onSelect =
|
|
23107
|
+
const onSelect = React25.useCallback(() => {
|
|
23274
23108
|
if (!emblaApi) return;
|
|
23275
23109
|
setCanScrollPrev(emblaApi.canScrollPrev());
|
|
23276
23110
|
setCanScrollNext(emblaApi.canScrollNext());
|
|
23277
23111
|
}, [emblaApi]);
|
|
23278
|
-
|
|
23112
|
+
React25.useEffect(() => {
|
|
23279
23113
|
if (!emblaApi) return;
|
|
23280
23114
|
onSelect();
|
|
23281
23115
|
emblaApi.on("reInit", onSelect);
|
|
@@ -23395,10 +23229,10 @@ function CarouselFullscreenScrollFx({
|
|
|
23395
23229
|
pattern = "diagonalCrossBasic",
|
|
23396
23230
|
patternOpacity = 0.033
|
|
23397
23231
|
}) {
|
|
23398
|
-
const containerRef =
|
|
23399
|
-
const scrollContainerRef =
|
|
23400
|
-
const [activeIndex, setActiveIndex] =
|
|
23401
|
-
|
|
23232
|
+
const containerRef = React25.useRef(null);
|
|
23233
|
+
const scrollContainerRef = React25.useRef(null);
|
|
23234
|
+
const [activeIndex, setActiveIndex] = React25.useState(0);
|
|
23235
|
+
React25.useEffect(() => {
|
|
23402
23236
|
const scrollContainer = scrollContainerRef.current;
|
|
23403
23237
|
if (!scrollContainer || !slides?.length) return;
|
|
23404
23238
|
const handleScroll = () => {
|
|
@@ -23410,7 +23244,7 @@ function CarouselFullscreenScrollFx({
|
|
|
23410
23244
|
scrollContainer.addEventListener("scroll", handleScroll);
|
|
23411
23245
|
return () => scrollContainer.removeEventListener("scroll", handleScroll);
|
|
23412
23246
|
}, [slides]);
|
|
23413
|
-
const scrollToSlide =
|
|
23247
|
+
const scrollToSlide = React25.useCallback((index) => {
|
|
23414
23248
|
const scrollContainer = scrollContainerRef.current;
|
|
23415
23249
|
if (!scrollContainer) return;
|
|
23416
23250
|
const slideHeight = scrollContainer.clientHeight;
|
|
@@ -23493,7 +23327,7 @@ function CarouselFullscreenScrollFx({
|
|
|
23493
23327
|
className: "flex h-screen flex-col snap-y snap-mandatory overflow-x-hidden overflow-y-auto scroll-smooth",
|
|
23494
23328
|
style: { scrollbarWidth: "none", msOverflowStyle: "none" },
|
|
23495
23329
|
children: slidesSlot ? slidesSlot : slides?.map((slide, index) => {
|
|
23496
|
-
const renderActions =
|
|
23330
|
+
const renderActions = React25.useMemo(() => {
|
|
23497
23331
|
if (!slide.actions || slide.actions.length === 0) return null;
|
|
23498
23332
|
return slide.actions.map((action, actionIndex) => {
|
|
23499
23333
|
const {
|
|
@@ -23626,25 +23460,25 @@ function CarouselGalleryThumbnails({
|
|
|
23626
23460
|
patternOpacity,
|
|
23627
23461
|
slideMediaBrightness = "100"
|
|
23628
23462
|
}) {
|
|
23629
|
-
const [currentIndex, setCurrentIndex] =
|
|
23630
|
-
const prevSlide =
|
|
23463
|
+
const [currentIndex, setCurrentIndex] = React25.useState(0);
|
|
23464
|
+
const prevSlide = React25.useCallback(() => {
|
|
23631
23465
|
setCurrentIndex(
|
|
23632
23466
|
(prev) => prev === 0 ? (images?.length ?? 0) - 1 : prev - 1
|
|
23633
23467
|
);
|
|
23634
23468
|
}, [images?.length]);
|
|
23635
|
-
const nextSlide =
|
|
23469
|
+
const nextSlide = React25.useCallback(() => {
|
|
23636
23470
|
setCurrentIndex(
|
|
23637
23471
|
(prev) => prev === (images?.length ?? 0) - 1 ? 0 : prev + 1
|
|
23638
23472
|
);
|
|
23639
23473
|
}, [images?.length]);
|
|
23640
|
-
|
|
23474
|
+
React25.useEffect(() => {
|
|
23641
23475
|
if (!autoPlay) return;
|
|
23642
23476
|
const interval = setInterval(() => {
|
|
23643
23477
|
nextSlide();
|
|
23644
23478
|
}, autoPlayInterval);
|
|
23645
23479
|
return () => clearInterval(interval);
|
|
23646
23480
|
}, [currentIndex, autoPlay, autoPlayInterval, nextSlide]);
|
|
23647
|
-
|
|
23481
|
+
React25.useEffect(() => {
|
|
23648
23482
|
const handleKeyDown = (e) => {
|
|
23649
23483
|
if (e.key === "ArrowRight") {
|
|
23650
23484
|
nextSlide();
|
|
@@ -23789,9 +23623,9 @@ function CarouselHorizontalCards({
|
|
|
23789
23623
|
pattern,
|
|
23790
23624
|
patternOpacity
|
|
23791
23625
|
}) {
|
|
23792
|
-
const carouselRef =
|
|
23793
|
-
const [isAtStart, setIsAtStart] =
|
|
23794
|
-
const [isAtEnd, setIsAtEnd] =
|
|
23626
|
+
const carouselRef = React25.useRef(null);
|
|
23627
|
+
const [isAtStart, setIsAtStart] = React25.useState(true);
|
|
23628
|
+
const [isAtEnd, setIsAtEnd] = React25.useState(false);
|
|
23795
23629
|
const scrollLeft = () => {
|
|
23796
23630
|
if (carouselRef.current) {
|
|
23797
23631
|
carouselRef.current.scrollBy({ left: -300, behavior: "smooth" });
|
|
@@ -23802,7 +23636,7 @@ function CarouselHorizontalCards({
|
|
|
23802
23636
|
carouselRef.current.scrollBy({ left: 300, behavior: "smooth" });
|
|
23803
23637
|
}
|
|
23804
23638
|
};
|
|
23805
|
-
|
|
23639
|
+
React25.useEffect(() => {
|
|
23806
23640
|
const checkScrollPosition = () => {
|
|
23807
23641
|
if (carouselRef.current) {
|
|
23808
23642
|
const { scrollLeft: scrollLeft2, scrollWidth, clientWidth } = carouselRef.current;
|
|
@@ -24002,13 +23836,13 @@ function CarouselImageHero({
|
|
|
24002
23836
|
pattern,
|
|
24003
23837
|
patternOpacity
|
|
24004
23838
|
}) {
|
|
24005
|
-
const hasImages =
|
|
23839
|
+
const hasImages = React25.useMemo(() => {
|
|
24006
23840
|
return images && images?.length > 0;
|
|
24007
23841
|
}, [images]);
|
|
24008
|
-
const [currentImageIndex, setCurrentImageIndex] =
|
|
23842
|
+
const [currentImageIndex, setCurrentImageIndex] = React25.useState(0);
|
|
24009
23843
|
const progress = useMotionValue(100);
|
|
24010
23844
|
const clipPath = useMotionTemplate`inset(0 ${progress}% 0 0 round 10px)`;
|
|
24011
|
-
|
|
23845
|
+
React25.useEffect(() => {
|
|
24012
23846
|
if (!hasImages || (images?.length ?? 0) < 2) return;
|
|
24013
23847
|
const tickInterval = autoPlayInterval / 100;
|
|
24014
23848
|
const interval = setInterval(() => {
|
|
@@ -24030,19 +23864,19 @@ function CarouselImageHero({
|
|
|
24030
23864
|
autoPlayInterval,
|
|
24031
23865
|
hasImages
|
|
24032
23866
|
]);
|
|
24033
|
-
const handlePrev =
|
|
23867
|
+
const handlePrev = React25.useCallback(() => {
|
|
24034
23868
|
progress.set(100);
|
|
24035
23869
|
setCurrentImageIndex(
|
|
24036
23870
|
(prevIndex) => prevIndex > 0 ? prevIndex - 1 : (images?.length ?? 1) - 1
|
|
24037
23871
|
);
|
|
24038
23872
|
}, [images?.length, progress]);
|
|
24039
|
-
const handleNext =
|
|
23873
|
+
const handleNext = React25.useCallback(() => {
|
|
24040
23874
|
progress.set(100);
|
|
24041
23875
|
setCurrentImageIndex(
|
|
24042
23876
|
(prevIndex) => prevIndex < (images?.length ?? 0) - 1 ? prevIndex + 1 : 0
|
|
24043
23877
|
);
|
|
24044
23878
|
}, [images?.length, progress]);
|
|
24045
|
-
const handleDotClick =
|
|
23879
|
+
const handleDotClick = React25.useCallback(
|
|
24046
23880
|
(index) => {
|
|
24047
23881
|
progress.set(100);
|
|
24048
23882
|
setCurrentImageIndex(index);
|
|
@@ -24219,8 +24053,8 @@ function CarouselMultiStepShowcase({
|
|
|
24219
24053
|
pattern,
|
|
24220
24054
|
patternOpacity
|
|
24221
24055
|
}) {
|
|
24222
|
-
const [activeStep, setActiveStep] =
|
|
24223
|
-
const [direction, setDirection] =
|
|
24056
|
+
const [activeStep, setActiveStep] = React25.useState(0);
|
|
24057
|
+
const [direction, setDirection] = React25.useState(0);
|
|
24224
24058
|
const goToStep = (index) => {
|
|
24225
24059
|
setDirection(index > activeStep ? 1 : -1);
|
|
24226
24060
|
setActiveStep(index);
|
|
@@ -24512,9 +24346,9 @@ function CarouselPortfolioHero({
|
|
|
24512
24346
|
patternOpacity,
|
|
24513
24347
|
slideMediaBrightness = "50"
|
|
24514
24348
|
}) {
|
|
24515
|
-
const [currentIndex, setCurrentIndex] =
|
|
24516
|
-
const intervalRef =
|
|
24517
|
-
const resetInterval =
|
|
24349
|
+
const [currentIndex, setCurrentIndex] = React25.useState(0);
|
|
24350
|
+
const intervalRef = React25.useRef(null);
|
|
24351
|
+
const resetInterval = React25.useCallback(() => {
|
|
24518
24352
|
if (intervalRef.current) {
|
|
24519
24353
|
clearInterval(intervalRef.current);
|
|
24520
24354
|
}
|
|
@@ -24522,17 +24356,17 @@ function CarouselPortfolioHero({
|
|
|
24522
24356
|
setCurrentIndex((prevIndex) => (prevIndex + 1) % (slides?.length ?? 1));
|
|
24523
24357
|
}, autoPlayInterval);
|
|
24524
24358
|
}, [autoPlayInterval, slides?.length]);
|
|
24525
|
-
const goToNext =
|
|
24359
|
+
const goToNext = React25.useCallback(() => {
|
|
24526
24360
|
setCurrentIndex((prevIndex) => (prevIndex + 1) % (slides?.length ?? 1));
|
|
24527
24361
|
resetInterval();
|
|
24528
24362
|
}, [slides?.length, resetInterval]);
|
|
24529
|
-
const goToPrev =
|
|
24363
|
+
const goToPrev = React25.useCallback(() => {
|
|
24530
24364
|
setCurrentIndex(
|
|
24531
24365
|
(prevIndex) => (prevIndex - 1 + (slides?.length ?? 1)) % (slides?.length ?? 1)
|
|
24532
24366
|
);
|
|
24533
24367
|
resetInterval();
|
|
24534
24368
|
}, [slides?.length, resetInterval]);
|
|
24535
|
-
|
|
24369
|
+
React25.useEffect(() => {
|
|
24536
24370
|
resetInterval();
|
|
24537
24371
|
return () => {
|
|
24538
24372
|
if (intervalRef.current) {
|
|
@@ -24724,9 +24558,9 @@ function CarouselProductFeatureShowcase({
|
|
|
24724
24558
|
pattern,
|
|
24725
24559
|
patternOpacity
|
|
24726
24560
|
}) {
|
|
24727
|
-
const [activeIndex, setActiveIndex] =
|
|
24728
|
-
const [activeColorIndex, setActiveColorIndex] =
|
|
24729
|
-
const [direction, setDirection] =
|
|
24561
|
+
const [activeIndex, setActiveIndex] = React25.useState(0);
|
|
24562
|
+
const [activeColorIndex, setActiveColorIndex] = React25.useState(0);
|
|
24563
|
+
const [direction, setDirection] = React25.useState(0);
|
|
24730
24564
|
const activeFeature = features?.[activeIndex];
|
|
24731
24565
|
const goToNext = () => {
|
|
24732
24566
|
setDirection(1);
|
|
@@ -24946,9 +24780,9 @@ function CarouselProductFeatureShowcase({
|
|
|
24946
24780
|
}
|
|
24947
24781
|
);
|
|
24948
24782
|
}
|
|
24949
|
-
var ProgressSliderContext =
|
|
24783
|
+
var ProgressSliderContext = React25.createContext(void 0);
|
|
24950
24784
|
function useProgressSliderContext() {
|
|
24951
|
-
const context =
|
|
24785
|
+
const context = React25.useContext(ProgressSliderContext);
|
|
24952
24786
|
if (!context) {
|
|
24953
24787
|
throw new Error(
|
|
24954
24788
|
"useProgressSliderContext must be used within a ProgressSlider"
|
|
@@ -25034,19 +24868,19 @@ function CarouselProgressSlider({
|
|
|
25034
24868
|
pattern,
|
|
25035
24869
|
patternOpacity
|
|
25036
24870
|
}) {
|
|
25037
|
-
const [active, setActive] =
|
|
25038
|
-
const [progress, setProgress] =
|
|
25039
|
-
const [isFastForward, setIsFastForward] =
|
|
25040
|
-
const [isPaused, setIsPaused] =
|
|
25041
|
-
const frame =
|
|
25042
|
-
const firstFrameTime =
|
|
25043
|
-
const targetValue =
|
|
25044
|
-
const pausedProgress =
|
|
25045
|
-
const sliderValues =
|
|
24871
|
+
const [active, setActive] = React25.useState(slides?.[0]?.id ?? "");
|
|
24872
|
+
const [progress, setProgress] = React25.useState(0);
|
|
24873
|
+
const [isFastForward, setIsFastForward] = React25.useState(false);
|
|
24874
|
+
const [isPaused, setIsPaused] = React25.useState(false);
|
|
24875
|
+
const frame = React25.useRef(0);
|
|
24876
|
+
const firstFrameTime = React25.useRef(performance.now());
|
|
24877
|
+
const targetValue = React25.useRef(null);
|
|
24878
|
+
const pausedProgress = React25.useRef(0);
|
|
24879
|
+
const sliderValues = React25.useMemo(
|
|
25046
24880
|
() => slides?.map((slide) => slide.id),
|
|
25047
24881
|
[slides]
|
|
25048
24882
|
);
|
|
25049
|
-
|
|
24883
|
+
React25.useEffect(() => {
|
|
25050
24884
|
if ((sliderValues?.length ?? 0) > 0 && !isPaused) {
|
|
25051
24885
|
firstFrameTime.current = performance.now();
|
|
25052
24886
|
if (pausedProgress.current > 0) {
|
|
@@ -25211,11 +25045,11 @@ function CarouselScrollingFeatureShowcase({
|
|
|
25211
25045
|
pattern,
|
|
25212
25046
|
patternOpacity
|
|
25213
25047
|
}) {
|
|
25214
|
-
const [activeFeature, setActiveFeature] =
|
|
25048
|
+
const [activeFeature, setActiveFeature] = React25.useState(
|
|
25215
25049
|
features?.[0]?.id ?? ""
|
|
25216
25050
|
);
|
|
25217
|
-
const featureRefs =
|
|
25218
|
-
|
|
25051
|
+
const featureRefs = React25.useRef(/* @__PURE__ */ new Map());
|
|
25052
|
+
React25.useEffect(() => {
|
|
25219
25053
|
if (!features || features.length === 0) return;
|
|
25220
25054
|
const observerOptions = {
|
|
25221
25055
|
root: null,
|
|
@@ -26140,9 +25974,9 @@ function FeatureChecklistImage({
|
|
|
26140
25974
|
}
|
|
26141
25975
|
);
|
|
26142
25976
|
}
|
|
26143
|
-
var CarouselContext =
|
|
25977
|
+
var CarouselContext = React25.createContext(null);
|
|
26144
25978
|
function useCarousel() {
|
|
26145
|
-
const context =
|
|
25979
|
+
const context = React25.useContext(CarouselContext);
|
|
26146
25980
|
if (!context) {
|
|
26147
25981
|
throw new Error("useCarousel must be used within a <Carousel />");
|
|
26148
25982
|
}
|
|
@@ -26164,20 +25998,20 @@ function Carousel({
|
|
|
26164
25998
|
},
|
|
26165
25999
|
plugins
|
|
26166
26000
|
);
|
|
26167
|
-
const [canScrollPrev, setCanScrollPrev] =
|
|
26168
|
-
const [canScrollNext, setCanScrollNext] =
|
|
26169
|
-
const onSelect =
|
|
26001
|
+
const [canScrollPrev, setCanScrollPrev] = React25.useState(false);
|
|
26002
|
+
const [canScrollNext, setCanScrollNext] = React25.useState(false);
|
|
26003
|
+
const onSelect = React25.useCallback((api2) => {
|
|
26170
26004
|
if (!api2) return;
|
|
26171
26005
|
setCanScrollPrev(api2.canScrollPrev());
|
|
26172
26006
|
setCanScrollNext(api2.canScrollNext());
|
|
26173
26007
|
}, []);
|
|
26174
|
-
const scrollPrev =
|
|
26008
|
+
const scrollPrev = React25.useCallback(() => {
|
|
26175
26009
|
api?.scrollPrev();
|
|
26176
26010
|
}, [api]);
|
|
26177
|
-
const scrollNext =
|
|
26011
|
+
const scrollNext = React25.useCallback(() => {
|
|
26178
26012
|
api?.scrollNext();
|
|
26179
26013
|
}, [api]);
|
|
26180
|
-
const handleKeyDown =
|
|
26014
|
+
const handleKeyDown = React25.useCallback(
|
|
26181
26015
|
(event) => {
|
|
26182
26016
|
if (event.key === "ArrowLeft") {
|
|
26183
26017
|
event.preventDefault();
|
|
@@ -26189,11 +26023,11 @@ function Carousel({
|
|
|
26189
26023
|
},
|
|
26190
26024
|
[scrollPrev, scrollNext]
|
|
26191
26025
|
);
|
|
26192
|
-
|
|
26026
|
+
React25.useEffect(() => {
|
|
26193
26027
|
if (!api || !setApi) return;
|
|
26194
26028
|
setApi(api);
|
|
26195
26029
|
}, [api, setApi]);
|
|
26196
|
-
|
|
26030
|
+
React25.useEffect(() => {
|
|
26197
26031
|
if (!api) return;
|
|
26198
26032
|
onSelect(api);
|
|
26199
26033
|
api.on("reInit", onSelect);
|
|
@@ -27117,7 +26951,7 @@ function FeatureThreeColumnValues({
|
|
|
27117
26951
|
patternOpacity,
|
|
27118
26952
|
patternClassName
|
|
27119
26953
|
}) {
|
|
27120
|
-
const renderValueIcon =
|
|
26954
|
+
const renderValueIcon = React25.useCallback(
|
|
27121
26955
|
(value) => {
|
|
27122
26956
|
if (value.icon) return value.icon;
|
|
27123
26957
|
if (value.iconName)
|
|
@@ -27619,7 +27453,7 @@ function FeatureTabbedContentImage({
|
|
|
27619
27453
|
patternOpacity,
|
|
27620
27454
|
patternClassName
|
|
27621
27455
|
}) {
|
|
27622
|
-
const renderFeatures =
|
|
27456
|
+
const renderFeatures = React25.useCallback(
|
|
27623
27457
|
(slide) => {
|
|
27624
27458
|
if (slide.featuresSlot) return slide.featuresSlot;
|
|
27625
27459
|
if (!slide.features || slide.features.length === 0) return null;
|
|
@@ -27643,7 +27477,7 @@ function FeatureTabbedContentImage({
|
|
|
27643
27477
|
},
|
|
27644
27478
|
[]
|
|
27645
27479
|
);
|
|
27646
|
-
const renderActions =
|
|
27480
|
+
const renderActions = React25.useCallback(
|
|
27647
27481
|
(slide) => {
|
|
27648
27482
|
if (slide.actionsSlot) return slide.actionsSlot;
|
|
27649
27483
|
if (!slide.actions || slide.actions.length === 0) return null;
|
|
@@ -27686,7 +27520,7 @@ function FeatureTabbedContentImage({
|
|
|
27686
27520
|
},
|
|
27687
27521
|
[]
|
|
27688
27522
|
);
|
|
27689
|
-
const renderImage =
|
|
27523
|
+
const renderImage = React25.useCallback(
|
|
27690
27524
|
(slide) => {
|
|
27691
27525
|
if (slide.imageSlot) return slide.imageSlot;
|
|
27692
27526
|
if (!slide.image) return null;
|
|
@@ -27922,7 +27756,7 @@ function FeatureUtilityCardsGrid({
|
|
|
27922
27756
|
}
|
|
27923
27757
|
);
|
|
27924
27758
|
}, [learnMoreSlot, learnMoreAction, background]);
|
|
27925
|
-
const renderUtilityImage =
|
|
27759
|
+
const renderUtilityImage = React25.useCallback(
|
|
27926
27760
|
(utility) => {
|
|
27927
27761
|
if (utility.imageSlot) return utility.imageSlot;
|
|
27928
27762
|
if (utility.image) {
|
|
@@ -28100,7 +27934,7 @@ function FeatureBentoUtilities({
|
|
|
28100
27934
|
patternOpacity,
|
|
28101
27935
|
patternClassName
|
|
28102
27936
|
}) {
|
|
28103
|
-
const renderCard =
|
|
27937
|
+
const renderCard = React25.useCallback(
|
|
28104
27938
|
(card, index) => {
|
|
28105
27939
|
const hasImage = card.imageSrc || card.imageSlot;
|
|
28106
27940
|
const cardClasses = cn(
|
|
@@ -28156,7 +27990,7 @@ function FeatureBentoUtilities({
|
|
|
28156
27990
|
},
|
|
28157
27991
|
[optixFlowConfig]
|
|
28158
27992
|
);
|
|
28159
|
-
const renderColumn =
|
|
27993
|
+
const renderColumn = React25.useCallback(
|
|
28160
27994
|
(cards, slot) => {
|
|
28161
27995
|
if (slot) return slot;
|
|
28162
27996
|
if (!cards || cards.length === 0) return null;
|
|
@@ -29402,7 +29236,7 @@ function FeatureBentoImageGrid({
|
|
|
29402
29236
|
patternOpacity,
|
|
29403
29237
|
patternClassName
|
|
29404
29238
|
}) {
|
|
29405
|
-
const renderItemIcon =
|
|
29239
|
+
const renderItemIcon = React25.useCallback(
|
|
29406
29240
|
(item) => {
|
|
29407
29241
|
if (item.icon) return item.icon;
|
|
29408
29242
|
if (item.iconName) return /* @__PURE__ */ jsx(DynamicIcon, { name: item.iconName, size: 24 });
|
|
@@ -29410,7 +29244,7 @@ function FeatureBentoImageGrid({
|
|
|
29410
29244
|
},
|
|
29411
29245
|
[]
|
|
29412
29246
|
);
|
|
29413
|
-
const renderItemImage =
|
|
29247
|
+
const renderItemImage = React25.useCallback(
|
|
29414
29248
|
(item, imageClassName) => {
|
|
29415
29249
|
if (item.imageSlot) return item.imageSlot;
|
|
29416
29250
|
if (item.imageSrc) {
|
|
@@ -29429,7 +29263,7 @@ function FeatureBentoImageGrid({
|
|
|
29429
29263
|
},
|
|
29430
29264
|
[optixFlowConfig]
|
|
29431
29265
|
);
|
|
29432
|
-
const renderLargeCard =
|
|
29266
|
+
const renderLargeCard = React25.useCallback(
|
|
29433
29267
|
(item) => {
|
|
29434
29268
|
const iconContent = renderItemIcon(item);
|
|
29435
29269
|
const hasIconBadgeContent = iconContent || item.iconBadge;
|
|
@@ -29517,7 +29351,7 @@ function FeatureBentoImageGrid({
|
|
|
29517
29351
|
},
|
|
29518
29352
|
[largeCardClassName, renderItemImage, renderItemIcon]
|
|
29519
29353
|
);
|
|
29520
|
-
const renderSmallCard =
|
|
29354
|
+
const renderSmallCard = React25.useCallback(
|
|
29521
29355
|
(item, index) => {
|
|
29522
29356
|
const iconContent = renderItemIcon(item);
|
|
29523
29357
|
const hasIconBadgeContent = iconContent || item.iconBadge;
|
|
@@ -30132,7 +29966,7 @@ function FeatureAccordionImage({
|
|
|
30132
29966
|
patternOpacity,
|
|
30133
29967
|
patternClassName
|
|
30134
29968
|
}) {
|
|
30135
|
-
const [activeItem, setActiveItem] =
|
|
29969
|
+
const [activeItem, setActiveItem] = React25.useState(defaultValue || "item-0");
|
|
30136
29970
|
const activeIndex = parseInt(activeItem.replace("item-", ""), 10) || 0;
|
|
30137
29971
|
const currentImage = items?.[activeIndex] || items?.[0];
|
|
30138
29972
|
const accordionItemsContent = useMemo(() => {
|
|
@@ -30281,7 +30115,7 @@ function FeatureCapabilitiesGrid({
|
|
|
30281
30115
|
patternOpacity,
|
|
30282
30116
|
patternClassName
|
|
30283
30117
|
}) {
|
|
30284
|
-
const renderItemIcon =
|
|
30118
|
+
const renderItemIcon = React25.useCallback(
|
|
30285
30119
|
(item) => {
|
|
30286
30120
|
if (item.icon) return item.icon;
|
|
30287
30121
|
if (item.iconName) return /* @__PURE__ */ jsx(DynamicIcon, { name: item.iconName, size: 20 });
|
|
@@ -30433,7 +30267,7 @@ function FeatureCapabilitiesGrid({
|
|
|
30433
30267
|
}
|
|
30434
30268
|
);
|
|
30435
30269
|
}
|
|
30436
|
-
var TeamMemberBackgroundImageCard =
|
|
30270
|
+
var TeamMemberBackgroundImageCard = React25.forwardRef(
|
|
30437
30271
|
({ className, imageUrl, imageAlt, children, optixFlowConfig, background, ...props }, ref) => {
|
|
30438
30272
|
return /* @__PURE__ */ jsxs(
|
|
30439
30273
|
"div",
|
|
@@ -30481,7 +30315,7 @@ function TeamMediaShowcase({
|
|
|
30481
30315
|
actionClassName,
|
|
30482
30316
|
optixFlowConfig
|
|
30483
30317
|
}) {
|
|
30484
|
-
const renderItems =
|
|
30318
|
+
const renderItems = React25.useMemo(() => {
|
|
30485
30319
|
if (itemsSlot) return itemsSlot;
|
|
30486
30320
|
return items.map((member, idx) => {
|
|
30487
30321
|
const imageAlt = member.imageAlt || (member.name && typeof member.name === "string" && member.name.trim() !== "" ? member.name : `member-${idx}`);
|
|
@@ -30579,7 +30413,7 @@ function TeamSimpleGrid({
|
|
|
30579
30413
|
memberNameClassName,
|
|
30580
30414
|
memberRoleClassName
|
|
30581
30415
|
}) {
|
|
30582
|
-
const renderMembers =
|
|
30416
|
+
const renderMembers = React25.useMemo(() => {
|
|
30583
30417
|
if (membersSlot) return membersSlot;
|
|
30584
30418
|
if (!members || members.length === 0) return null;
|
|
30585
30419
|
return members.map((member) => /* @__PURE__ */ jsxs(
|
|
@@ -30741,7 +30575,7 @@ function FooterBrandLinksContact({
|
|
|
30741
30575
|
linkListClassName,
|
|
30742
30576
|
linkItemClassName
|
|
30743
30577
|
]);
|
|
30744
|
-
const contactItemsContent =
|
|
30578
|
+
const contactItemsContent = React25.useMemo(() => {
|
|
30745
30579
|
if (!contactItems || contactItems.length === 0) return null;
|
|
30746
30580
|
return contactItems.map((item, idx) => /* @__PURE__ */ jsxs(
|
|
30747
30581
|
"div",
|
|
@@ -31099,7 +30933,7 @@ function TeamSocialGrid({
|
|
|
31099
30933
|
memberRoleClassName,
|
|
31100
30934
|
socialLinksClassName
|
|
31101
30935
|
}) {
|
|
31102
|
-
const renderMembers =
|
|
30936
|
+
const renderMembers = React25.useMemo(() => {
|
|
31103
30937
|
if (membersSlot) return membersSlot;
|
|
31104
30938
|
if (!members || members.length === 0) return null;
|
|
31105
30939
|
return members.map((member) => /* @__PURE__ */ jsxs(
|
|
@@ -31235,7 +31069,7 @@ function TeamGradientCards({
|
|
|
31235
31069
|
memberRoleClassName,
|
|
31236
31070
|
socialLinksClassName
|
|
31237
31071
|
}) {
|
|
31238
|
-
const renderMembers =
|
|
31072
|
+
const renderMembers = React25.useMemo(() => {
|
|
31239
31073
|
if (membersSlot) return membersSlot;
|
|
31240
31074
|
if (!members || members.length === 0) return null;
|
|
31241
31075
|
return members.map((member) => /* @__PURE__ */ jsx(
|
|
@@ -31391,7 +31225,7 @@ function TeamBioBadges({
|
|
|
31391
31225
|
memberBioClassName,
|
|
31392
31226
|
socialLinksClassName
|
|
31393
31227
|
}) {
|
|
31394
|
-
const renderMembers =
|
|
31228
|
+
const renderMembers = React25.useMemo(() => {
|
|
31395
31229
|
if (membersSlot) return membersSlot;
|
|
31396
31230
|
if (!members || members.length === 0) return null;
|
|
31397
31231
|
return members.map((member) => /* @__PURE__ */ jsxs(
|
|
@@ -31568,7 +31402,7 @@ function TeamExpertiseCards({
|
|
|
31568
31402
|
ctaDescriptionClassName,
|
|
31569
31403
|
ctaButtonClassName
|
|
31570
31404
|
}) {
|
|
31571
|
-
const renderMembers =
|
|
31405
|
+
const renderMembers = React25.useMemo(() => {
|
|
31572
31406
|
if (membersSlot) return membersSlot;
|
|
31573
31407
|
if (!members || members.length === 0) return null;
|
|
31574
31408
|
return members.map((member) => /* @__PURE__ */ jsx(
|
|
@@ -31645,7 +31479,7 @@ function TeamExpertiseCards({
|
|
|
31645
31479
|
member.id
|
|
31646
31480
|
));
|
|
31647
31481
|
}, [membersSlot, members, background, memberCardClassName, avatarClassName, memberNameClassName, memberRoleClassName, departmentBadgeClassName, memberDescriptionClassName, expertiseClassName]);
|
|
31648
|
-
const renderCta =
|
|
31482
|
+
const renderCta = React25.useMemo(() => {
|
|
31649
31483
|
if (ctaSlot) return ctaSlot;
|
|
31650
31484
|
return /* @__PURE__ */ jsxs(
|
|
31651
31485
|
"div",
|
|
@@ -31761,7 +31595,7 @@ function TeamCompactGrid({
|
|
|
31761
31595
|
ctaDescriptionClassName,
|
|
31762
31596
|
ctaButtonClassName
|
|
31763
31597
|
}) {
|
|
31764
|
-
const renderMembers =
|
|
31598
|
+
const renderMembers = React25.useMemo(() => {
|
|
31765
31599
|
if (membersSlot) return membersSlot;
|
|
31766
31600
|
if (!members || members.length === 0) return null;
|
|
31767
31601
|
return members.map((member) => /* @__PURE__ */ jsxs(
|
|
@@ -31816,7 +31650,7 @@ function TeamCompactGrid({
|
|
|
31816
31650
|
member.id
|
|
31817
31651
|
));
|
|
31818
31652
|
}, [membersSlot, members, background, memberCardClassName, avatarClassName, memberNameClassName, memberRoleClassName, departmentBadgeClassName]);
|
|
31819
|
-
const renderCta =
|
|
31653
|
+
const renderCta = React25.useMemo(() => {
|
|
31820
31654
|
if (ctaSlot) return ctaSlot;
|
|
31821
31655
|
return /* @__PURE__ */ jsxs(
|
|
31822
31656
|
"div",
|
|
@@ -31920,7 +31754,7 @@ function TeamInvestorShowcase({
|
|
|
31920
31754
|
investorCompanyClassName,
|
|
31921
31755
|
optixFlowConfig
|
|
31922
31756
|
}) {
|
|
31923
|
-
const renderInvestors =
|
|
31757
|
+
const renderInvestors = React25.useMemo(() => {
|
|
31924
31758
|
if (investorsSlot) return investorsSlot;
|
|
31925
31759
|
if (!investors || investors.length === 0) return null;
|
|
31926
31760
|
return investors.map((investor) => /* @__PURE__ */ jsxs("div", { className: investorCardClassName, children: [
|
|
@@ -31994,7 +31828,7 @@ function TeamCarouselExperience({
|
|
|
31994
31828
|
memberRoleClassName,
|
|
31995
31829
|
optixFlowConfig
|
|
31996
31830
|
}) {
|
|
31997
|
-
const renderMembers =
|
|
31831
|
+
const renderMembers = React25.useMemo(() => {
|
|
31998
31832
|
if (membersSlot) return membersSlot;
|
|
31999
31833
|
if (!members || members.length === 0) return null;
|
|
32000
31834
|
return members.map((member, idx) => /* @__PURE__ */ jsx(CarouselItem, { className: "max-w-72", children: /* @__PURE__ */ jsxs(
|
|
@@ -32144,20 +31978,20 @@ function TeamFilterableSearch({
|
|
|
32144
31978
|
emptyStateClassName,
|
|
32145
31979
|
emptyStateMessage
|
|
32146
31980
|
}) {
|
|
32147
|
-
const [searchQuery, setSearchQuery] =
|
|
32148
|
-
const [selectedDepartment, setSelectedDepartment] =
|
|
32149
|
-
const departments =
|
|
31981
|
+
const [searchQuery, setSearchQuery] = React25.useState("");
|
|
31982
|
+
const [selectedDepartment, setSelectedDepartment] = React25.useState("All");
|
|
31983
|
+
const departments = React25.useMemo(() => {
|
|
32150
31984
|
const depts = new Set(members.map((m) => m.department));
|
|
32151
31985
|
return ["All", ...Array.from(depts)];
|
|
32152
31986
|
}, [members]);
|
|
32153
|
-
const filteredMembers =
|
|
31987
|
+
const filteredMembers = React25.useMemo(() => {
|
|
32154
31988
|
return members.filter((member) => {
|
|
32155
31989
|
const matchesSearch = searchQuery === "" || member.name.toLowerCase().includes(searchQuery.toLowerCase()) || member.role.toLowerCase().includes(searchQuery.toLowerCase()) || member.description.toLowerCase().includes(searchQuery.toLowerCase());
|
|
32156
31990
|
const matchesDepartment = selectedDepartment === "All" || member.department === selectedDepartment;
|
|
32157
31991
|
return matchesSearch && matchesDepartment;
|
|
32158
31992
|
});
|
|
32159
31993
|
}, [members, searchQuery, selectedDepartment]);
|
|
32160
|
-
const renderFilters =
|
|
31994
|
+
const renderFilters = React25.useMemo(() => {
|
|
32161
31995
|
if (filtersSlot) return filtersSlot;
|
|
32162
31996
|
return /* @__PURE__ */ jsxs(
|
|
32163
31997
|
"div",
|
|
@@ -32212,7 +32046,7 @@ function TeamFilterableSearch({
|
|
|
32212
32046
|
selectedDepartment,
|
|
32213
32047
|
filterButtonClassName
|
|
32214
32048
|
]);
|
|
32215
|
-
const renderMembers =
|
|
32049
|
+
const renderMembers = React25.useMemo(() => {
|
|
32216
32050
|
if (membersSlot) return membersSlot;
|
|
32217
32051
|
return filteredMembers.map((member) => /* @__PURE__ */ jsx(
|
|
32218
32052
|
"div",
|
|
@@ -32399,7 +32233,7 @@ function TeamCompactCta({
|
|
|
32399
32233
|
memberRoleClassName,
|
|
32400
32234
|
ctaClassName
|
|
32401
32235
|
}) {
|
|
32402
|
-
const renderMembers =
|
|
32236
|
+
const renderMembers = React25.useMemo(() => {
|
|
32403
32237
|
if (membersSlot) return membersSlot;
|
|
32404
32238
|
if (!members || members.length === 0) return null;
|
|
32405
32239
|
return members.map((member) => /* @__PURE__ */ jsxs(
|
|
@@ -32427,7 +32261,7 @@ function TeamCompactCta({
|
|
|
32427
32261
|
member.id
|
|
32428
32262
|
));
|
|
32429
32263
|
}, [membersSlot, members, memberCardClassName, avatarClassName, memberNameClassName, memberRoleClassName, background]);
|
|
32430
|
-
const renderCta =
|
|
32264
|
+
const renderCta = React25.useMemo(() => {
|
|
32431
32265
|
if (ctaSlot) return ctaSlot;
|
|
32432
32266
|
return /* @__PURE__ */ jsx(
|
|
32433
32267
|
Pressable,
|
|
@@ -32518,7 +32352,7 @@ function TeamHoverHighlight({
|
|
|
32518
32352
|
socialLinksClassName,
|
|
32519
32353
|
optixFlowConfig
|
|
32520
32354
|
}) {
|
|
32521
|
-
const renderMembers =
|
|
32355
|
+
const renderMembers = React25.useMemo(() => {
|
|
32522
32356
|
if (membersSlot) return membersSlot;
|
|
32523
32357
|
if (!members || members.length === 0) return null;
|
|
32524
32358
|
return members.map((member) => /* @__PURE__ */ jsxs(
|
|
@@ -32667,7 +32501,7 @@ function TeamSocialCards({
|
|
|
32667
32501
|
socialLinksClassName,
|
|
32668
32502
|
optixFlowConfig
|
|
32669
32503
|
}) {
|
|
32670
|
-
const renderMembers =
|
|
32504
|
+
const renderMembers = React25.useMemo(() => {
|
|
32671
32505
|
if (membersSlot) return membersSlot;
|
|
32672
32506
|
if (!members || members.length === 0) return null;
|
|
32673
32507
|
return members.map((member) => /* @__PURE__ */ jsx(
|
|
@@ -32837,7 +32671,7 @@ function TeamGridAnimated({
|
|
|
32837
32671
|
"hsl(var(--muted))",
|
|
32838
32672
|
"hsl(var(--warning)/0.2)"
|
|
32839
32673
|
];
|
|
32840
|
-
const renderMembers =
|
|
32674
|
+
const renderMembers = React25.useMemo(() => {
|
|
32841
32675
|
if (membersSlot) return membersSlot;
|
|
32842
32676
|
if (!members || members.length === 0) return null;
|
|
32843
32677
|
return members.map((member, index) => /* @__PURE__ */ jsxs(
|
|
@@ -32937,7 +32771,7 @@ function TeamGridAnimated({
|
|
|
32937
32771
|
memberDesignationClassName,
|
|
32938
32772
|
socialLinksClassName
|
|
32939
32773
|
]);
|
|
32940
|
-
const renderSocialLinksMain =
|
|
32774
|
+
const renderSocialLinksMain = React25.useMemo(() => {
|
|
32941
32775
|
if (socialLinksMainSlot) return socialLinksMainSlot;
|
|
32942
32776
|
if (!socialLinksMain || socialLinksMain.length === 0) return null;
|
|
32943
32777
|
return /* @__PURE__ */ jsxs("div", { className: "flex w-full items-center justify-center gap-4 py-4 md:justify-center", children: [
|
|
@@ -33054,7 +32888,7 @@ function TeamDepartmentSections({
|
|
|
33054
32888
|
memberRoleClassName,
|
|
33055
32889
|
optixFlowConfig
|
|
33056
32890
|
}) {
|
|
33057
|
-
const renderDepartments =
|
|
32891
|
+
const renderDepartments = React25.useMemo(() => {
|
|
33058
32892
|
if (departmentsSlot) return departmentsSlot;
|
|
33059
32893
|
if (!departments || departments.length === 0) return null;
|
|
33060
32894
|
return departments.map((department, deptIndex) => /* @__PURE__ */ jsxs(
|
|
@@ -33158,7 +32992,7 @@ function TeamAlternatingBios({
|
|
|
33158
32992
|
socialLinksClassName,
|
|
33159
32993
|
optixFlowConfig
|
|
33160
32994
|
}) {
|
|
33161
|
-
const renderMembers =
|
|
32995
|
+
const renderMembers = React25.useMemo(() => {
|
|
33162
32996
|
if (membersSlot) return membersSlot;
|
|
33163
32997
|
if (!members || members.length === 0) return null;
|
|
33164
32998
|
return members.map((member, index) => /* @__PURE__ */ jsxs(
|
|
@@ -33340,7 +33174,7 @@ function TeamAvatarSocial({
|
|
|
33340
33174
|
memberRoleClassName,
|
|
33341
33175
|
socialLinksClassName
|
|
33342
33176
|
}) {
|
|
33343
|
-
const renderMembers =
|
|
33177
|
+
const renderMembers = React25.useMemo(() => {
|
|
33344
33178
|
if (membersSlot) return membersSlot;
|
|
33345
33179
|
if (!members || members.length === 0) return null;
|
|
33346
33180
|
return members.map((member) => /* @__PURE__ */ jsxs(
|
|
@@ -33483,7 +33317,7 @@ function TeamHoverOverlay({
|
|
|
33483
33317
|
socialLinksClassName,
|
|
33484
33318
|
optixFlowConfig
|
|
33485
33319
|
}) {
|
|
33486
|
-
const renderMembers =
|
|
33320
|
+
const renderMembers = React25.useMemo(() => {
|
|
33487
33321
|
if (membersSlot) return membersSlot;
|
|
33488
33322
|
if (!members || members.length === 0) return null;
|
|
33489
33323
|
return members.map((member) => /* @__PURE__ */ jsx(
|
|
@@ -33659,14 +33493,14 @@ function TeamRoleFilter({
|
|
|
33659
33493
|
socialLinksClassName,
|
|
33660
33494
|
optixFlowConfig
|
|
33661
33495
|
}) {
|
|
33662
|
-
const [selectedRole, setSelectedRole] =
|
|
33663
|
-
const filteredMembers =
|
|
33496
|
+
const [selectedRole, setSelectedRole] = React25.useState("All");
|
|
33497
|
+
const filteredMembers = React25.useMemo(() => {
|
|
33664
33498
|
if (!members) return [];
|
|
33665
33499
|
return members.filter(
|
|
33666
33500
|
(member) => selectedRole === "All" ? true : member.role === selectedRole
|
|
33667
33501
|
);
|
|
33668
33502
|
}, [members, selectedRole]);
|
|
33669
|
-
const renderRoles =
|
|
33503
|
+
const renderRoles = React25.useMemo(() => {
|
|
33670
33504
|
if (rolesSlot) return rolesSlot;
|
|
33671
33505
|
if (!roles) return null;
|
|
33672
33506
|
return /* @__PURE__ */ jsx(
|
|
@@ -33690,7 +33524,7 @@ function TeamRoleFilter({
|
|
|
33690
33524
|
}
|
|
33691
33525
|
);
|
|
33692
33526
|
}, [rolesSlot, filtersClassName, roles, selectedRole, filterButtonClassName]);
|
|
33693
|
-
const renderMembers =
|
|
33527
|
+
const renderMembers = React25.useMemo(() => {
|
|
33694
33528
|
if (membersSlot) return membersSlot;
|
|
33695
33529
|
return filteredMembers.map((member) => /* @__PURE__ */ jsx(
|
|
33696
33530
|
Card,
|
|
@@ -33850,7 +33684,7 @@ function TeamContactCards({
|
|
|
33850
33684
|
socialLinksClassName,
|
|
33851
33685
|
optixFlowConfig
|
|
33852
33686
|
}) {
|
|
33853
|
-
const getStatusColor =
|
|
33687
|
+
const getStatusColor = React25.useCallback((status) => {
|
|
33854
33688
|
switch (status) {
|
|
33855
33689
|
case "active":
|
|
33856
33690
|
return "bg-success";
|
|
@@ -33860,7 +33694,7 @@ function TeamContactCards({
|
|
|
33860
33694
|
return getTextColor(background, "muted");
|
|
33861
33695
|
}
|
|
33862
33696
|
}, [background]);
|
|
33863
|
-
const renderMembers =
|
|
33697
|
+
const renderMembers = React25.useMemo(() => {
|
|
33864
33698
|
if (membersSlot) return membersSlot;
|
|
33865
33699
|
if (!members || members.length === 0) return null;
|
|
33866
33700
|
return members.map((member) => /* @__PURE__ */ jsx(Card, { className: cn("p-0", memberCardClassName), children: /* @__PURE__ */ jsxs(CardContent, { className: "p-6!", children: [
|
|
@@ -34067,7 +33901,7 @@ function TeamLargeImages({
|
|
|
34067
33901
|
socialLinksClassName,
|
|
34068
33902
|
optixFlowConfig
|
|
34069
33903
|
}) {
|
|
34070
|
-
const renderMembers =
|
|
33904
|
+
const renderMembers = React25.useMemo(() => {
|
|
34071
33905
|
if (membersSlot) return membersSlot;
|
|
34072
33906
|
if (!members || members.length === 0) return null;
|
|
34073
33907
|
return members.map((member) => /* @__PURE__ */ jsxs(
|
|
@@ -34242,7 +34076,7 @@ function TeamSkillBadges({
|
|
|
34242
34076
|
socialLinksClassName,
|
|
34243
34077
|
optixFlowConfig
|
|
34244
34078
|
}) {
|
|
34245
|
-
const renderMembers =
|
|
34079
|
+
const renderMembers = React25.useMemo(() => {
|
|
34246
34080
|
if (membersSlot) return membersSlot;
|
|
34247
34081
|
if (!members || members.length === 0) return null;
|
|
34248
34082
|
return members.map((member) => /* @__PURE__ */ jsx(
|
|
@@ -34432,7 +34266,7 @@ function TeamTestimonialStats({
|
|
|
34432
34266
|
socialLinksClassName,
|
|
34433
34267
|
optixFlowConfig
|
|
34434
34268
|
}) {
|
|
34435
|
-
const renderMembers =
|
|
34269
|
+
const renderMembers = React25.useMemo(() => {
|
|
34436
34270
|
if (membersSlot) return membersSlot;
|
|
34437
34271
|
if (!members || members.length === 0) return null;
|
|
34438
34272
|
return members.map((member) => /* @__PURE__ */ jsx(
|
|
@@ -38576,7 +38410,7 @@ function BlogGridAuthorCardsComponent({
|
|
|
38576
38410
|
pattern,
|
|
38577
38411
|
patternOpacity
|
|
38578
38412
|
}) {
|
|
38579
|
-
const viewAllActionContent =
|
|
38413
|
+
const viewAllActionContent = React25.useMemo(() => {
|
|
38580
38414
|
if (viewAllSlot) return viewAllSlot;
|
|
38581
38415
|
if (!viewAllAction) return null;
|
|
38582
38416
|
const {
|
|
@@ -38601,7 +38435,7 @@ function BlogGridAuthorCardsComponent({
|
|
|
38601
38435
|
}
|
|
38602
38436
|
);
|
|
38603
38437
|
}, [viewAllSlot, viewAllAction]);
|
|
38604
|
-
const postsContent =
|
|
38438
|
+
const postsContent = React25.useMemo(() => {
|
|
38605
38439
|
if (postsSlot) return postsSlot;
|
|
38606
38440
|
if (!posts || posts.length === 0) return null;
|
|
38607
38441
|
return posts.map((post) => {
|
|
@@ -38713,7 +38547,7 @@ function BlogCardsTaglineCta({
|
|
|
38713
38547
|
pattern,
|
|
38714
38548
|
patternOpacity
|
|
38715
38549
|
}) {
|
|
38716
|
-
const ctaActionContent =
|
|
38550
|
+
const ctaActionContent = React25.useMemo(() => {
|
|
38717
38551
|
if (ctaSlot) return ctaSlot;
|
|
38718
38552
|
if (!ctaAction) return null;
|
|
38719
38553
|
const {
|
|
@@ -38741,7 +38575,7 @@ function BlogCardsTaglineCta({
|
|
|
38741
38575
|
}
|
|
38742
38576
|
);
|
|
38743
38577
|
}, [ctaSlot, ctaAction, ctaClassName]);
|
|
38744
|
-
const postsContent =
|
|
38578
|
+
const postsContent = React25.useMemo(() => {
|
|
38745
38579
|
if (postsSlot) return postsSlot;
|
|
38746
38580
|
if (!posts || posts.length === 0) return null;
|
|
38747
38581
|
return posts.map((post) => {
|
|
@@ -38887,7 +38721,7 @@ function BlogCardsReadTime({
|
|
|
38887
38721
|
pattern,
|
|
38888
38722
|
patternOpacity
|
|
38889
38723
|
}) {
|
|
38890
|
-
const renderedViewAllAction =
|
|
38724
|
+
const renderedViewAllAction = React25.useMemo(() => {
|
|
38891
38725
|
if (viewAllSlot) return viewAllSlot;
|
|
38892
38726
|
if (!viewAllAction) return null;
|
|
38893
38727
|
const {
|
|
@@ -38904,7 +38738,7 @@ function BlogCardsReadTime({
|
|
|
38904
38738
|
iconAfter
|
|
38905
38739
|
] }) });
|
|
38906
38740
|
}, [viewAllSlot, viewAllAction]);
|
|
38907
|
-
const renderedPosts =
|
|
38741
|
+
const renderedPosts = React25.useMemo(() => {
|
|
38908
38742
|
if (postsSlot) return postsSlot;
|
|
38909
38743
|
if (!posts || posts.length === 0) return null;
|
|
38910
38744
|
return posts.map((post) => {
|
|
@@ -39041,7 +38875,7 @@ function BlogCategoryOverlay({
|
|
|
39041
38875
|
pattern,
|
|
39042
38876
|
patternOpacity
|
|
39043
38877
|
}) {
|
|
39044
|
-
const viewAllActionContent =
|
|
38878
|
+
const viewAllActionContent = React25.useMemo(() => {
|
|
39045
38879
|
if (viewAllSlot) return viewAllSlot;
|
|
39046
38880
|
if (!viewAllAction) return null;
|
|
39047
38881
|
const {
|
|
@@ -39069,7 +38903,7 @@ function BlogCategoryOverlay({
|
|
|
39069
38903
|
}
|
|
39070
38904
|
);
|
|
39071
38905
|
}, [viewAllSlot, viewAllAction, viewAllClassName]);
|
|
39072
|
-
const postsContent =
|
|
38906
|
+
const postsContent = React25.useMemo(() => {
|
|
39073
38907
|
if (postsSlot) return postsSlot;
|
|
39074
38908
|
if (!posts || posts.length === 0) return null;
|
|
39075
38909
|
return posts.map((post) => {
|
|
@@ -39217,7 +39051,7 @@ function BlogFeaturedPopular({
|
|
|
39217
39051
|
}) {
|
|
39218
39052
|
const featuredPost = posts?.[0];
|
|
39219
39053
|
const popularPosts = posts?.slice(1);
|
|
39220
|
-
const renderedFeaturedPost =
|
|
39054
|
+
const renderedFeaturedPost = React25.useMemo(() => {
|
|
39221
39055
|
if (featuredSlot) return featuredSlot;
|
|
39222
39056
|
if (!featuredPost) return null;
|
|
39223
39057
|
const postHref = featuredPost.href || featuredPost.url || featuredPost.link;
|
|
@@ -39269,7 +39103,7 @@ function BlogFeaturedPopular({
|
|
|
39269
39103
|
featuredContentClassName,
|
|
39270
39104
|
optixFlowConfig
|
|
39271
39105
|
]);
|
|
39272
|
-
const renderedPopularPosts =
|
|
39106
|
+
const renderedPopularPosts = React25.useMemo(() => {
|
|
39273
39107
|
if (postsSlot) return postsSlot;
|
|
39274
39108
|
if (!popularPosts || popularPosts.length === 0) return null;
|
|
39275
39109
|
return popularPosts.map((post) => {
|
|
@@ -39386,7 +39220,7 @@ function BlogRelatedArticles({
|
|
|
39386
39220
|
pattern,
|
|
39387
39221
|
patternOpacity
|
|
39388
39222
|
}) {
|
|
39389
|
-
const renderedSeeAllAction =
|
|
39223
|
+
const renderedSeeAllAction = React25.useMemo(() => {
|
|
39390
39224
|
if (seeAllSlot) return seeAllSlot;
|
|
39391
39225
|
if (!seeAllAction) return null;
|
|
39392
39226
|
const {
|
|
@@ -39415,7 +39249,7 @@ function BlogRelatedArticles({
|
|
|
39415
39249
|
}
|
|
39416
39250
|
);
|
|
39417
39251
|
}, [seeAllSlot, seeAllAction, seeAllClassName]);
|
|
39418
|
-
const renderedArticles =
|
|
39252
|
+
const renderedArticles = React25.useMemo(() => {
|
|
39419
39253
|
if (articlesSlot) return articlesSlot;
|
|
39420
39254
|
if (!articles || articles.length === 0) return null;
|
|
39421
39255
|
return articles.map((item) => {
|
|
@@ -39723,7 +39557,7 @@ function BlogHorizontalCards({
|
|
|
39723
39557
|
pattern,
|
|
39724
39558
|
patternOpacity
|
|
39725
39559
|
}) {
|
|
39726
|
-
const ctaContent =
|
|
39560
|
+
const ctaContent = React25.useMemo(() => {
|
|
39727
39561
|
if (ctaSlot) return ctaSlot;
|
|
39728
39562
|
if (!ctaAction) return null;
|
|
39729
39563
|
const {
|
|
@@ -39748,7 +39582,7 @@ function BlogHorizontalCards({
|
|
|
39748
39582
|
}
|
|
39749
39583
|
);
|
|
39750
39584
|
}, [ctaSlot, ctaAction]);
|
|
39751
|
-
const postsContent =
|
|
39585
|
+
const postsContent = React25.useMemo(() => {
|
|
39752
39586
|
if (postsSlot) return postsSlot;
|
|
39753
39587
|
if (!posts || posts.length === 0) return null;
|
|
39754
39588
|
return posts.map((post) => {
|
|
@@ -39970,7 +39804,7 @@ function Label({
|
|
|
39970
39804
|
);
|
|
39971
39805
|
}
|
|
39972
39806
|
var POSTS_PER_PAGE = 6;
|
|
39973
|
-
var BlogCard =
|
|
39807
|
+
var BlogCard = React25.memo(function BlogCard2({
|
|
39974
39808
|
post,
|
|
39975
39809
|
optixFlowConfig,
|
|
39976
39810
|
className
|
|
@@ -40009,7 +39843,7 @@ var BlogCard = React28.memo(function BlogCard2({
|
|
|
40009
39843
|
] })
|
|
40010
39844
|
] }) });
|
|
40011
39845
|
});
|
|
40012
|
-
var FilterForm =
|
|
39846
|
+
var FilterForm = React25.memo(function FilterForm2({
|
|
40013
39847
|
categories,
|
|
40014
39848
|
selectedCategories,
|
|
40015
39849
|
onCategoryChange,
|
|
@@ -40042,7 +39876,7 @@ var FilterForm = React28.memo(function FilterForm2({
|
|
|
40042
39876
|
}
|
|
40043
39877
|
);
|
|
40044
39878
|
});
|
|
40045
|
-
var BreadcrumbBlog =
|
|
39879
|
+
var BreadcrumbBlog = React25.memo(function BreadcrumbBlog2({
|
|
40046
39880
|
breadcrumb
|
|
40047
39881
|
}) {
|
|
40048
39882
|
return /* @__PURE__ */ jsx(Breadcrumb, { children: /* @__PURE__ */ jsx(BreadcrumbList, { children: breadcrumb.map((item, i) => {
|
|
@@ -40124,12 +39958,12 @@ function BlogFilteredResultsComponent({
|
|
|
40124
39958
|
}, [posts, selectedCategories]);
|
|
40125
39959
|
const postsToDisplay = filteredPosts.length > 0 ? filteredPosts : posts || [];
|
|
40126
39960
|
const hasMore = visibleCount < postsToDisplay.length;
|
|
40127
|
-
const breadcrumbContent =
|
|
39961
|
+
const breadcrumbContent = React25.useMemo(() => {
|
|
40128
39962
|
if (breadcrumbSlot) return breadcrumbSlot;
|
|
40129
39963
|
if (!breadcrumb || breadcrumb.length === 0) return null;
|
|
40130
39964
|
return /* @__PURE__ */ jsx(BreadcrumbBlog, { breadcrumb });
|
|
40131
39965
|
}, [breadcrumbSlot, breadcrumb]);
|
|
40132
|
-
const primaryPostContent =
|
|
39966
|
+
const primaryPostContent = React25.useMemo(() => {
|
|
40133
39967
|
if (primaryPostSlot) return primaryPostSlot;
|
|
40134
39968
|
if (!primaryPost) return null;
|
|
40135
39969
|
return /* @__PURE__ */ jsx(
|
|
@@ -40141,7 +39975,7 @@ function BlogFilteredResultsComponent({
|
|
|
40141
39975
|
}
|
|
40142
39976
|
);
|
|
40143
39977
|
}, [primaryPostSlot, primaryPost, optixFlowConfig, postCardClassName]);
|
|
40144
|
-
const categoriesContent =
|
|
39978
|
+
const categoriesContent = React25.useMemo(() => {
|
|
40145
39979
|
if (categoriesSlot) return categoriesSlot;
|
|
40146
39980
|
if (!categories || categories.length === 0) return null;
|
|
40147
39981
|
return /* @__PURE__ */ jsx(
|
|
@@ -40160,7 +39994,7 @@ function BlogFilteredResultsComponent({
|
|
|
40160
39994
|
handleCategoryChange,
|
|
40161
39995
|
categoriesClassName
|
|
40162
39996
|
]);
|
|
40163
|
-
const postsContent =
|
|
39997
|
+
const postsContent = React25.useMemo(() => {
|
|
40164
39998
|
if (postsSlot) return postsSlot;
|
|
40165
39999
|
return postsToDisplay.slice(0, visibleCount).map((post) => {
|
|
40166
40000
|
const postKey = post.id || String(post.title) || Math.random().toString();
|
|
@@ -40181,7 +40015,7 @@ function BlogFilteredResultsComponent({
|
|
|
40181
40015
|
optixFlowConfig,
|
|
40182
40016
|
postCardClassName
|
|
40183
40017
|
]);
|
|
40184
|
-
const loadMoreContent =
|
|
40018
|
+
const loadMoreContent = React25.useMemo(() => {
|
|
40185
40019
|
if (loadMoreSlot) return loadMoreSlot;
|
|
40186
40020
|
if (!loadMoreAction || !hasMore) return null;
|
|
40187
40021
|
const {
|
|
@@ -40307,7 +40141,7 @@ function BlogMasonryFeaturedComponent({
|
|
|
40307
40141
|
}) {
|
|
40308
40142
|
const featuredPost = posts?.[0];
|
|
40309
40143
|
const otherPosts = posts?.slice(1);
|
|
40310
|
-
const featuredPostContent =
|
|
40144
|
+
const featuredPostContent = React25.useMemo(() => {
|
|
40311
40145
|
if (featuredSlot) return featuredSlot;
|
|
40312
40146
|
if (!featuredPost) return null;
|
|
40313
40147
|
const postHref = featuredPost.href || featuredPost.url || featuredPost.link || "#";
|
|
@@ -40357,7 +40191,7 @@ function BlogMasonryFeaturedComponent({
|
|
|
40357
40191
|
featuredImageClassName,
|
|
40358
40192
|
optixFlowConfig
|
|
40359
40193
|
]);
|
|
40360
|
-
const otherPostsContent =
|
|
40194
|
+
const otherPostsContent = React25.useMemo(() => {
|
|
40361
40195
|
if (postsSlot) return postsSlot;
|
|
40362
40196
|
if (!otherPosts || otherPosts.length === 0) return null;
|
|
40363
40197
|
return otherPosts.map((post) => {
|
|
@@ -40446,7 +40280,7 @@ function BlogHorizontalTimelineComponent({
|
|
|
40446
40280
|
pattern,
|
|
40447
40281
|
patternOpacity
|
|
40448
40282
|
}) {
|
|
40449
|
-
const renderPosts =
|
|
40283
|
+
const renderPosts = React25.useMemo(() => {
|
|
40450
40284
|
if (postsSlot) return postsSlot;
|
|
40451
40285
|
if (!posts || posts.length === 0) return null;
|
|
40452
40286
|
return posts.map((post, index) => {
|
|
@@ -40571,7 +40405,7 @@ function BlogGridNinePosts({
|
|
|
40571
40405
|
pattern,
|
|
40572
40406
|
patternOpacity
|
|
40573
40407
|
}) {
|
|
40574
|
-
const renderedCtaAction =
|
|
40408
|
+
const renderedCtaAction = React25.useMemo(() => {
|
|
40575
40409
|
if (ctaSlot) return ctaSlot;
|
|
40576
40410
|
if (!ctaAction) return null;
|
|
40577
40411
|
const {
|
|
@@ -40596,7 +40430,7 @@ function BlogGridNinePosts({
|
|
|
40596
40430
|
}
|
|
40597
40431
|
);
|
|
40598
40432
|
}, [ctaSlot, ctaAction]);
|
|
40599
|
-
const renderedPosts =
|
|
40433
|
+
const renderedPosts = React25.useMemo(() => {
|
|
40600
40434
|
if (postsSlot) return postsSlot;
|
|
40601
40435
|
if (!posts || posts.length === 0) return null;
|
|
40602
40436
|
return posts.map((post) => {
|
|
@@ -40694,9 +40528,9 @@ var AppleCarousel = ({
|
|
|
40694
40528
|
className,
|
|
40695
40529
|
containerClassName
|
|
40696
40530
|
}) => {
|
|
40697
|
-
const carouselRef =
|
|
40698
|
-
const [canScrollLeft, setCanScrollLeft] =
|
|
40699
|
-
const [canScrollRight, setCanScrollRight] =
|
|
40531
|
+
const carouselRef = React25__default.useRef(null);
|
|
40532
|
+
const [canScrollLeft, setCanScrollLeft] = React25__default.useState(false);
|
|
40533
|
+
const [canScrollRight, setCanScrollRight] = React25__default.useState(true);
|
|
40700
40534
|
const [currentIndex, setCurrentIndex] = useState(0);
|
|
40701
40535
|
useEffect(() => {
|
|
40702
40536
|
if (carouselRef.current) {
|
|
@@ -40933,7 +40767,7 @@ function BlogCarouselAppleComponent({
|
|
|
40933
40767
|
containerClassName,
|
|
40934
40768
|
cardClassName
|
|
40935
40769
|
}) {
|
|
40936
|
-
const carouselCards =
|
|
40770
|
+
const carouselCards = React25.useMemo(() => {
|
|
40937
40771
|
if (!posts || posts.length === 0) return [];
|
|
40938
40772
|
return posts.map(
|
|
40939
40773
|
(post, idx) => ({
|
|
@@ -40945,7 +40779,7 @@ function BlogCarouselAppleComponent({
|
|
|
40945
40779
|
})
|
|
40946
40780
|
);
|
|
40947
40781
|
}, [posts]);
|
|
40948
|
-
const cardElements =
|
|
40782
|
+
const cardElements = React25.useMemo(() => {
|
|
40949
40783
|
if (!posts || posts.length === 0) return [];
|
|
40950
40784
|
return carouselCards.map((card, index) => {
|
|
40951
40785
|
const post = posts[index];
|
|
@@ -41030,7 +40864,7 @@ function ArticleHeroProseComponent({
|
|
|
41030
40864
|
description,
|
|
41031
40865
|
authorImage
|
|
41032
40866
|
} = post ?? {};
|
|
41033
|
-
const authorContent =
|
|
40867
|
+
const authorContent = React25.useMemo(() => {
|
|
41034
40868
|
if (authorSlot) return authorSlot;
|
|
41035
40869
|
if (!authorName) return null;
|
|
41036
40870
|
return /* @__PURE__ */ jsxs(
|
|
@@ -41064,7 +40898,7 @@ function ArticleHeroProseComponent({
|
|
|
41064
40898
|
dateFormat,
|
|
41065
40899
|
authorClassName
|
|
41066
40900
|
]);
|
|
41067
|
-
const heroMediaContent =
|
|
40901
|
+
const heroMediaContent = React25.useMemo(() => {
|
|
41068
40902
|
if (heroMediaSlot) return heroMediaSlot;
|
|
41069
40903
|
if (!image) return null;
|
|
41070
40904
|
return /* @__PURE__ */ jsx(
|
|
@@ -41165,7 +40999,7 @@ function ArticleSidebarStickyComponent({
|
|
|
41165
40999
|
pattern,
|
|
41166
41000
|
patternOpacity
|
|
41167
41001
|
}) {
|
|
41168
|
-
const backLinkContent =
|
|
41002
|
+
const backLinkContent = React25.useMemo(() => {
|
|
41169
41003
|
if (backLinkSlot) return backLinkSlot;
|
|
41170
41004
|
if (!backHref && !backText) return null;
|
|
41171
41005
|
return /* @__PURE__ */ jsxs(
|
|
@@ -41183,7 +41017,7 @@ function ArticleSidebarStickyComponent({
|
|
|
41183
41017
|
}
|
|
41184
41018
|
);
|
|
41185
41019
|
}, [backLinkSlot, backHref, backText, backIcon, backLinkClassName]);
|
|
41186
|
-
const renderAuthor =
|
|
41020
|
+
const renderAuthor = React25.useCallback(
|
|
41187
41021
|
(isMobile = false) => {
|
|
41188
41022
|
if (authorSlot) return authorSlot;
|
|
41189
41023
|
if (!authorName) return null;
|
|
@@ -41215,7 +41049,7 @@ function ArticleSidebarStickyComponent({
|
|
|
41215
41049
|
authorClassName
|
|
41216
41050
|
]
|
|
41217
41051
|
);
|
|
41218
|
-
const heroMediaContent =
|
|
41052
|
+
const heroMediaContent = React25.useMemo(() => {
|
|
41219
41053
|
if (heroMediaSlot) return heroMediaSlot;
|
|
41220
41054
|
if (!heroImageSrc) return null;
|
|
41221
41055
|
return /* @__PURE__ */ jsx(
|
|
@@ -41322,10 +41156,10 @@ function ArticleTocSidebarComponent({
|
|
|
41322
41156
|
patternOpacity
|
|
41323
41157
|
}) {
|
|
41324
41158
|
const ctaActions = ctaActionsProp ?? (ctaButtonText ? [{ label: ctaButtonText, href: ctaButtonHref || "#", variant: "default", className: "w-full" }] : []);
|
|
41325
|
-
const [activeSection, setActiveSection] =
|
|
41159
|
+
const [activeSection, setActiveSection] = React25.useState(
|
|
41326
41160
|
sections?.[0]?.id || ""
|
|
41327
41161
|
);
|
|
41328
|
-
|
|
41162
|
+
React25.useEffect(() => {
|
|
41329
41163
|
if (!enableTocTracking || !sections || sections.length === 0) return;
|
|
41330
41164
|
const observer = new IntersectionObserver(
|
|
41331
41165
|
(entries) => {
|
|
@@ -41343,12 +41177,12 @@ function ArticleTocSidebarComponent({
|
|
|
41343
41177
|
});
|
|
41344
41178
|
return () => observer.disconnect();
|
|
41345
41179
|
}, [sections, enableTocTracking]);
|
|
41346
|
-
const categoryContent =
|
|
41180
|
+
const categoryContent = React25.useMemo(() => {
|
|
41347
41181
|
if (categorySlot) return categorySlot;
|
|
41348
41182
|
if (!category) return null;
|
|
41349
41183
|
return /* @__PURE__ */ jsx(Badge, { variant: "secondary", children: category });
|
|
41350
41184
|
}, [categorySlot, category]);
|
|
41351
|
-
const authorContent =
|
|
41185
|
+
const authorContent = React25.useMemo(() => {
|
|
41352
41186
|
if (authorSlot) return authorSlot;
|
|
41353
41187
|
if (!authorName) return null;
|
|
41354
41188
|
return /* @__PURE__ */ jsxs("div", { className: cn("mt-6 flex items-center gap-4", authorClassName), children: [
|
|
@@ -41368,7 +41202,7 @@ function ArticleTocSidebarComponent({
|
|
|
41368
41202
|
] })
|
|
41369
41203
|
] });
|
|
41370
41204
|
}, [authorSlot, authorName, authorImage, authorHref, publishDate, readTime, authorClassName]);
|
|
41371
|
-
const heroMediaContent =
|
|
41205
|
+
const heroMediaContent = React25.useMemo(() => {
|
|
41372
41206
|
if (heroMediaSlot) return heroMediaSlot;
|
|
41373
41207
|
if (!heroImageSrc) return null;
|
|
41374
41208
|
return /* @__PURE__ */ jsx(
|
|
@@ -41381,7 +41215,7 @@ function ArticleTocSidebarComponent({
|
|
|
41381
41215
|
}
|
|
41382
41216
|
);
|
|
41383
41217
|
}, [heroMediaSlot, heroImageSrc, heroImageAlt, heroImageClassName, optixFlowConfig]);
|
|
41384
|
-
const tocContent =
|
|
41218
|
+
const tocContent = React25.useMemo(() => {
|
|
41385
41219
|
if (tocSlot) return tocSlot;
|
|
41386
41220
|
if (!sections || sections.length === 0) return null;
|
|
41387
41221
|
return /* @__PURE__ */ jsxs("div", { className: cn("rounded-lg border p-4", tocClassName), children: [
|
|
@@ -41389,7 +41223,7 @@ function ArticleTocSidebarComponent({
|
|
|
41389
41223
|
/* @__PURE__ */ jsx("nav", { className: "space-y-2", children: sections.map((section) => {
|
|
41390
41224
|
const isActive = activeSection === section.id;
|
|
41391
41225
|
if (renderSectionLink) {
|
|
41392
|
-
return /* @__PURE__ */ jsx(
|
|
41226
|
+
return /* @__PURE__ */ jsx(React25.Fragment, { children: renderSectionLink(section, isActive) }, section.id);
|
|
41393
41227
|
}
|
|
41394
41228
|
return /* @__PURE__ */ jsx(
|
|
41395
41229
|
Pressable,
|
|
@@ -41406,7 +41240,7 @@ function ArticleTocSidebarComponent({
|
|
|
41406
41240
|
}) })
|
|
41407
41241
|
] });
|
|
41408
41242
|
}, [tocSlot, sections, activeSection, renderSectionLink, tocClassName]);
|
|
41409
|
-
const ctaContent =
|
|
41243
|
+
const ctaContent = React25.useMemo(() => {
|
|
41410
41244
|
if (ctaSlot) return ctaSlot;
|
|
41411
41245
|
if (!ctaTitle && !ctaDescription && (!ctaActions || ctaActions.length === 0)) return null;
|
|
41412
41246
|
return /* @__PURE__ */ jsxs("div", { className: cn("rounded-lg border p-4", getNestedCardBg(background, "subtle"), getNestedCardTextColor(background), ctaClassName), children: [
|
|
@@ -41495,11 +41329,11 @@ function ArticleBreadcrumbSocialComponent({
|
|
|
41495
41329
|
patternOpacity
|
|
41496
41330
|
}) {
|
|
41497
41331
|
const author = authorProp ?? (authorName ? { name: authorName, image: authorImage, role: authorRole } : void 0);
|
|
41498
|
-
const [activeSection, setActiveSection] =
|
|
41332
|
+
const [activeSection, setActiveSection] = React25.useState(
|
|
41499
41333
|
sections?.[0]?.id || ""
|
|
41500
41334
|
);
|
|
41501
|
-
const [showBackToTop, setShowBackToTop] =
|
|
41502
|
-
|
|
41335
|
+
const [showBackToTop, setShowBackToTop] = React25.useState(false);
|
|
41336
|
+
React25.useEffect(() => {
|
|
41503
41337
|
if (!enableTocTracking || !sections || sections.length === 0) return;
|
|
41504
41338
|
const observer = new IntersectionObserver(
|
|
41505
41339
|
(entries) => {
|
|
@@ -41517,7 +41351,7 @@ function ArticleBreadcrumbSocialComponent({
|
|
|
41517
41351
|
});
|
|
41518
41352
|
return () => observer.disconnect();
|
|
41519
41353
|
}, [sections, enableTocTracking]);
|
|
41520
|
-
|
|
41354
|
+
React25.useEffect(() => {
|
|
41521
41355
|
if (!enableBackToTop) return;
|
|
41522
41356
|
const handleScroll = () => {
|
|
41523
41357
|
setShowBackToTop(window.scrollY > 400);
|
|
@@ -41525,15 +41359,15 @@ function ArticleBreadcrumbSocialComponent({
|
|
|
41525
41359
|
window.addEventListener("scroll", handleScroll);
|
|
41526
41360
|
return () => window.removeEventListener("scroll", handleScroll);
|
|
41527
41361
|
}, [enableBackToTop]);
|
|
41528
|
-
const scrollToTop =
|
|
41362
|
+
const scrollToTop = React25.useCallback(() => {
|
|
41529
41363
|
window.scrollTo({ top: 0, behavior: "smooth" });
|
|
41530
41364
|
}, []);
|
|
41531
|
-
const breadcrumbsContent =
|
|
41365
|
+
const breadcrumbsContent = React25.useMemo(() => {
|
|
41532
41366
|
if (breadcrumbsSlot) return breadcrumbsSlot;
|
|
41533
41367
|
if (!breadcrumbs || breadcrumbs.length === 0) return null;
|
|
41534
41368
|
return /* @__PURE__ */ jsx(Breadcrumb, { className: cn("mb-8", breadcrumbClassName), children: /* @__PURE__ */ jsxs(BreadcrumbList, { children: [
|
|
41535
41369
|
/* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbLink, { asChild: true, children: /* @__PURE__ */ jsx(Pressable, { href: "#", children: /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/home", size: 16 }) }) }) }),
|
|
41536
|
-
breadcrumbs.map((crumb, index) => /* @__PURE__ */ jsxs(
|
|
41370
|
+
breadcrumbs.map((crumb, index) => /* @__PURE__ */ jsxs(React25.Fragment, { children: [
|
|
41537
41371
|
/* @__PURE__ */ jsx(BreadcrumbSeparator, {}),
|
|
41538
41372
|
/* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbLink, { asChild: true, children: /* @__PURE__ */ jsx(Pressable, { href: crumb.href, children: crumb.label }) }) })
|
|
41539
41373
|
] }, index)),
|
|
@@ -41543,7 +41377,7 @@ function ArticleBreadcrumbSocialComponent({
|
|
|
41543
41377
|
] })
|
|
41544
41378
|
] }) });
|
|
41545
41379
|
}, [breadcrumbsSlot, breadcrumbs, currentPage, breadcrumbClassName]);
|
|
41546
|
-
const authorContent =
|
|
41380
|
+
const authorContent = React25.useMemo(() => {
|
|
41547
41381
|
if (authorSlot) return authorSlot;
|
|
41548
41382
|
if (!author) return null;
|
|
41549
41383
|
return /* @__PURE__ */ jsxs(
|
|
@@ -41566,7 +41400,7 @@ function ArticleBreadcrumbSocialComponent({
|
|
|
41566
41400
|
}
|
|
41567
41401
|
);
|
|
41568
41402
|
}, [authorSlot, author, publishDate, readTime, authorClassName]);
|
|
41569
|
-
const heroMediaContent =
|
|
41403
|
+
const heroMediaContent = React25.useMemo(() => {
|
|
41570
41404
|
if (heroMediaSlot) return heroMediaSlot;
|
|
41571
41405
|
if (!heroImageSrc) return null;
|
|
41572
41406
|
return /* @__PURE__ */ jsx(
|
|
@@ -41588,7 +41422,7 @@ function ArticleBreadcrumbSocialComponent({
|
|
|
41588
41422
|
heroImageClassName,
|
|
41589
41423
|
optixFlowConfig
|
|
41590
41424
|
]);
|
|
41591
|
-
const tocContent =
|
|
41425
|
+
const tocContent = React25.useMemo(() => {
|
|
41592
41426
|
if (tocSlot) return tocSlot;
|
|
41593
41427
|
if (!sections || sections.length === 0) return null;
|
|
41594
41428
|
return /* @__PURE__ */ jsxs("div", { className: cn("rounded-lg border p-4", tocClassName), children: [
|
|
@@ -41596,7 +41430,7 @@ function ArticleBreadcrumbSocialComponent({
|
|
|
41596
41430
|
/* @__PURE__ */ jsx("nav", { className: "space-y-2", children: sections.map((section) => {
|
|
41597
41431
|
const isActive = activeSection === section.id;
|
|
41598
41432
|
if (renderSectionLink) {
|
|
41599
|
-
return /* @__PURE__ */ jsx(
|
|
41433
|
+
return /* @__PURE__ */ jsx(React25.Fragment, { children: renderSectionLink(section, isActive) }, section.id);
|
|
41600
41434
|
}
|
|
41601
41435
|
return /* @__PURE__ */ jsx(
|
|
41602
41436
|
Pressable,
|
|
@@ -41701,11 +41535,11 @@ function ArticleCompactTocComponent({
|
|
|
41701
41535
|
pattern,
|
|
41702
41536
|
patternOpacity
|
|
41703
41537
|
}) {
|
|
41704
|
-
const [activeSection, setActiveSection] =
|
|
41538
|
+
const [activeSection, setActiveSection] = React25.useState(
|
|
41705
41539
|
sections?.[0]?.id || ""
|
|
41706
41540
|
);
|
|
41707
|
-
const [isTocOpen, setIsTocOpen] =
|
|
41708
|
-
|
|
41541
|
+
const [isTocOpen, setIsTocOpen] = React25.useState(false);
|
|
41542
|
+
React25.useEffect(() => {
|
|
41709
41543
|
if (!enableTocTracking) return;
|
|
41710
41544
|
const observer = new IntersectionObserver(
|
|
41711
41545
|
(entries) => {
|
|
@@ -41723,12 +41557,12 @@ function ArticleCompactTocComponent({
|
|
|
41723
41557
|
});
|
|
41724
41558
|
return () => observer.disconnect();
|
|
41725
41559
|
}, [sections, enableTocTracking]);
|
|
41726
|
-
const breadcrumbsContent =
|
|
41560
|
+
const breadcrumbsContent = React25.useMemo(() => {
|
|
41727
41561
|
if (breadcrumbsSlot) return breadcrumbsSlot;
|
|
41728
41562
|
if (!breadcrumbs && !currentPage) return null;
|
|
41729
41563
|
return /* @__PURE__ */ jsx(Breadcrumb, { className: cn("mb-6 md:mb-20", breadcrumbClassName), children: /* @__PURE__ */ jsxs(BreadcrumbList, { children: [
|
|
41730
41564
|
/* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbLink, { asChild: true, children: /* @__PURE__ */ jsx(Pressable, { href: "#", children: /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/home", size: 16 }) }) }) }),
|
|
41731
|
-
breadcrumbs?.map((crumb, index) => /* @__PURE__ */ jsxs(
|
|
41565
|
+
breadcrumbs?.map((crumb, index) => /* @__PURE__ */ jsxs(React25.Fragment, { children: [
|
|
41732
41566
|
/* @__PURE__ */ jsx(BreadcrumbSeparator, {}),
|
|
41733
41567
|
/* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbLink, { asChild: true, children: /* @__PURE__ */ jsx(Pressable, { href: crumb.href, children: crumb.label }) }) })
|
|
41734
41568
|
] }, index)),
|
|
@@ -41736,7 +41570,7 @@ function ArticleCompactTocComponent({
|
|
|
41736
41570
|
/* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbPage, { children: currentPage }) })
|
|
41737
41571
|
] }) });
|
|
41738
41572
|
}, [breadcrumbsSlot, breadcrumbs, currentPage, breadcrumbClassName]);
|
|
41739
|
-
const shareContent =
|
|
41573
|
+
const shareContent = React25.useMemo(() => {
|
|
41740
41574
|
if (shareSlot) return shareSlot;
|
|
41741
41575
|
if (!socialLinks || socialLinks.length === 0) return null;
|
|
41742
41576
|
return /* @__PURE__ */ jsxs("div", { className: cn("mt-6 flex items-center gap-2", shareClassName), children: [
|
|
@@ -41753,13 +41587,13 @@ function ArticleCompactTocComponent({
|
|
|
41753
41587
|
))
|
|
41754
41588
|
] });
|
|
41755
41589
|
}, [shareSlot, socialLinks, shareClassName]);
|
|
41756
|
-
const renderTocLinks =
|
|
41590
|
+
const renderTocLinks = React25.useCallback(
|
|
41757
41591
|
(onLinkClick) => {
|
|
41758
41592
|
if (!sections) return null;
|
|
41759
41593
|
return sections.map((section) => {
|
|
41760
41594
|
const isActive = activeSection === section.id;
|
|
41761
41595
|
if (renderSectionLink) {
|
|
41762
|
-
return /* @__PURE__ */ jsx(
|
|
41596
|
+
return /* @__PURE__ */ jsx(React25.Fragment, { children: renderSectionLink(section, isActive) }, section.id);
|
|
41763
41597
|
}
|
|
41764
41598
|
return /* @__PURE__ */ jsx(
|
|
41765
41599
|
Pressable,
|
|
@@ -41778,7 +41612,7 @@ function ArticleCompactTocComponent({
|
|
|
41778
41612
|
},
|
|
41779
41613
|
[sections, activeSection, renderSectionLink]
|
|
41780
41614
|
);
|
|
41781
|
-
const tocContent =
|
|
41615
|
+
const tocContent = React25.useMemo(() => {
|
|
41782
41616
|
if (tocSlot) return tocSlot;
|
|
41783
41617
|
if (!sections || sections.length === 0) return null;
|
|
41784
41618
|
return /* @__PURE__ */ jsx("div", { className: "mb-8 lg:hidden", children: /* @__PURE__ */ jsxs(Popover, { open: isTocOpen, onOpenChange: setIsTocOpen, children: [
|
|
@@ -41811,7 +41645,7 @@ function ArticleCompactTocComponent({
|
|
|
41811
41645
|
)
|
|
41812
41646
|
] }) });
|
|
41813
41647
|
}, [tocSlot, sections, isTocOpen, tocClassName, renderTocLinks]);
|
|
41814
|
-
const desktopTocContent =
|
|
41648
|
+
const desktopTocContent = React25.useMemo(() => {
|
|
41815
41649
|
if (tocSlot) return null;
|
|
41816
41650
|
if (!sections || sections.length === 0) return null;
|
|
41817
41651
|
return /* @__PURE__ */ jsx(
|
|
@@ -41828,7 +41662,7 @@ function ArticleCompactTocComponent({
|
|
|
41828
41662
|
}
|
|
41829
41663
|
);
|
|
41830
41664
|
}, [tocSlot, sections, tocClassName, renderTocLinks]);
|
|
41831
|
-
const heroMediaContent =
|
|
41665
|
+
const heroMediaContent = React25.useMemo(() => {
|
|
41832
41666
|
if (heroMediaSlot) return heroMediaSlot;
|
|
41833
41667
|
if (!heroImageSrc) return null;
|
|
41834
41668
|
return /* @__PURE__ */ jsx(
|
|
@@ -41958,10 +41792,10 @@ function ArticleChaptersAuthorComponent({
|
|
|
41958
41792
|
variant: "default"
|
|
41959
41793
|
}
|
|
41960
41794
|
] : []);
|
|
41961
|
-
const [activeChapter, setActiveChapter] =
|
|
41795
|
+
const [activeChapter, setActiveChapter] = React25.useState(
|
|
41962
41796
|
chapters?.[0]?.id || ""
|
|
41963
41797
|
);
|
|
41964
|
-
|
|
41798
|
+
React25.useEffect(() => {
|
|
41965
41799
|
if (!enableChapterTracking || !chapters || chapters.length === 0) return;
|
|
41966
41800
|
const observer = new IntersectionObserver(
|
|
41967
41801
|
(entries) => {
|
|
@@ -41979,12 +41813,12 @@ function ArticleChaptersAuthorComponent({
|
|
|
41979
41813
|
});
|
|
41980
41814
|
return () => observer.disconnect();
|
|
41981
41815
|
}, [chapters, enableChapterTracking]);
|
|
41982
|
-
const breadcrumbsContent =
|
|
41816
|
+
const breadcrumbsContent = React25.useMemo(() => {
|
|
41983
41817
|
if (breadcrumbsSlot) return breadcrumbsSlot;
|
|
41984
41818
|
if (!breadcrumbs || breadcrumbs.length === 0) return null;
|
|
41985
41819
|
return /* @__PURE__ */ jsx(Breadcrumb, { className: cn("mb-8 md:mb-20", breadcrumbClassName), children: /* @__PURE__ */ jsxs(BreadcrumbList, { children: [
|
|
41986
41820
|
/* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbLink, { asChild: true, children: /* @__PURE__ */ jsx(Pressable, { href: "#", children: /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/home", size: 16 }) }) }) }),
|
|
41987
|
-
breadcrumbs.map((crumb, index) => /* @__PURE__ */ jsxs(
|
|
41821
|
+
breadcrumbs.map((crumb, index) => /* @__PURE__ */ jsxs(React25.Fragment, { children: [
|
|
41988
41822
|
/* @__PURE__ */ jsx(BreadcrumbSeparator, {}),
|
|
41989
41823
|
/* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbLink, { asChild: true, children: /* @__PURE__ */ jsx(Pressable, { href: crumb.href, children: crumb.label }) }) })
|
|
41990
41824
|
] }, index)),
|
|
@@ -41992,7 +41826,7 @@ function ArticleChaptersAuthorComponent({
|
|
|
41992
41826
|
/* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbPage, { children: typeof currentPage === "string" ? currentPage : currentPage }) })
|
|
41993
41827
|
] }) });
|
|
41994
41828
|
}, [breadcrumbsSlot, breadcrumbs, currentPage, breadcrumbClassName]);
|
|
41995
|
-
const chaptersNavContent =
|
|
41829
|
+
const chaptersNavContent = React25.useMemo(() => {
|
|
41996
41830
|
if (chaptersSlot) return chaptersSlot;
|
|
41997
41831
|
if (!chapters || chapters.length === 0) return null;
|
|
41998
41832
|
return /* @__PURE__ */ jsxs("div", { className: cn("rounded-lg border p-4", chaptersClassName), children: [
|
|
@@ -42000,7 +41834,7 @@ function ArticleChaptersAuthorComponent({
|
|
|
42000
41834
|
/* @__PURE__ */ jsx("nav", { className: "space-y-2", children: chapters.map((chapter) => {
|
|
42001
41835
|
const isActive = activeChapter === chapter.id;
|
|
42002
41836
|
if (renderChapterLink) {
|
|
42003
|
-
return /* @__PURE__ */ jsx(
|
|
41837
|
+
return /* @__PURE__ */ jsx(React25.Fragment, { children: renderChapterLink(chapter, isActive) }, chapter.id);
|
|
42004
41838
|
}
|
|
42005
41839
|
return /* @__PURE__ */ jsxs(
|
|
42006
41840
|
Pressable,
|
|
@@ -42026,7 +41860,7 @@ function ArticleChaptersAuthorComponent({
|
|
|
42026
41860
|
renderChapterLink,
|
|
42027
41861
|
chaptersClassName
|
|
42028
41862
|
]);
|
|
42029
|
-
const authorCardContent =
|
|
41863
|
+
const authorCardContent = React25.useMemo(() => {
|
|
42030
41864
|
if (authorSlot) return authorSlot;
|
|
42031
41865
|
if (!author) return null;
|
|
42032
41866
|
let socialLinksContent = null;
|
|
@@ -42087,7 +41921,7 @@ function ArticleChaptersAuthorComponent({
|
|
|
42087
41921
|
socialLinksContent
|
|
42088
41922
|
] });
|
|
42089
41923
|
}, [authorSlot, author, authorClassName]);
|
|
42090
|
-
const heroMediaContent =
|
|
41924
|
+
const heroMediaContent = React25.useMemo(() => {
|
|
42091
41925
|
if (heroMediaSlot) return heroMediaSlot;
|
|
42092
41926
|
if (!heroImageSrc) return null;
|
|
42093
41927
|
return /* @__PURE__ */ jsx(
|
|
@@ -42109,7 +41943,7 @@ function ArticleChaptersAuthorComponent({
|
|
|
42109
41943
|
heroImageClassName,
|
|
42110
41944
|
optixFlowConfig
|
|
42111
41945
|
]);
|
|
42112
|
-
const conclusionContent =
|
|
41946
|
+
const conclusionContent = React25.useMemo(() => {
|
|
42113
41947
|
if (conclusionSlot) return conclusionSlot;
|
|
42114
41948
|
if (!conclusionTitle && !conclusionDescription && (!conclusionActions || conclusionActions.length === 0))
|
|
42115
41949
|
return null;
|
|
@@ -42261,7 +42095,7 @@ function ArticleSplitAnimatedComponent({
|
|
|
42261
42095
|
}
|
|
42262
42096
|
] : []);
|
|
42263
42097
|
const MotionWrapper = enableAnimations ? motion.div : "div";
|
|
42264
|
-
const categoryContent =
|
|
42098
|
+
const categoryContent = React25.useMemo(() => {
|
|
42265
42099
|
if (categorySlot) return categorySlot;
|
|
42266
42100
|
if (!category) return null;
|
|
42267
42101
|
return /* @__PURE__ */ jsx(
|
|
@@ -42276,7 +42110,7 @@ function ArticleSplitAnimatedComponent({
|
|
|
42276
42110
|
}
|
|
42277
42111
|
);
|
|
42278
42112
|
}, [categorySlot, category, categoryHref, categoryClassName]);
|
|
42279
|
-
const heroMediaContent =
|
|
42113
|
+
const heroMediaContent = React25.useMemo(() => {
|
|
42280
42114
|
if (heroMediaSlot) return heroMediaSlot;
|
|
42281
42115
|
if (!image) return null;
|
|
42282
42116
|
return /* @__PURE__ */ jsx(
|
|
@@ -42289,7 +42123,7 @@ function ArticleSplitAnimatedComponent({
|
|
|
42289
42123
|
}
|
|
42290
42124
|
);
|
|
42291
42125
|
}, [heroMediaSlot, image, imageAlt, title, optixFlowConfig]);
|
|
42292
|
-
const authorContent =
|
|
42126
|
+
const authorContent = React25.useMemo(() => {
|
|
42293
42127
|
if (authorSlot) return authorSlot;
|
|
42294
42128
|
if (!authorName) return null;
|
|
42295
42129
|
return /* @__PURE__ */ jsxs("div", { className: cn("mt-8 flex items-center gap-4", authorClassName), children: [
|
|
@@ -42317,7 +42151,7 @@ function ArticleSplitAnimatedComponent({
|
|
|
42317
42151
|
authorRole,
|
|
42318
42152
|
authorClassName
|
|
42319
42153
|
]);
|
|
42320
|
-
const ctaContent =
|
|
42154
|
+
const ctaContent = React25.useMemo(() => {
|
|
42321
42155
|
if (ctaSlot) return ctaSlot;
|
|
42322
42156
|
if (!ctaActions || ctaActions.length === 0) return null;
|
|
42323
42157
|
return /* @__PURE__ */ jsx("div", { className: cn("mt-8 flex flex-wrap gap-3", ctaClassName), children: ctaActions.map((action, index) => {
|
|
@@ -43774,7 +43608,7 @@ function FaqSidebarNavigation({
|
|
|
43774
43608
|
accordionTriggerClassName,
|
|
43775
43609
|
accordionContentClassName
|
|
43776
43610
|
}) {
|
|
43777
|
-
const [activeCategory, setActiveCategory] =
|
|
43611
|
+
const [activeCategory, setActiveCategory] = React25.useState(
|
|
43778
43612
|
categories && categories.length > 1 ? "all" : categories?.[0]?.id || ""
|
|
43779
43613
|
);
|
|
43780
43614
|
const filteredCategories = useMemo(() => {
|
|
@@ -44663,7 +44497,7 @@ function FaqSplitHero({
|
|
|
44663
44497
|
imageArea
|
|
44664
44498
|
] }) });
|
|
44665
44499
|
}
|
|
44666
|
-
var Controls =
|
|
44500
|
+
var Controls = React25.memo(
|
|
44667
44501
|
({
|
|
44668
44502
|
handleNext,
|
|
44669
44503
|
handlePrevious,
|
|
@@ -44694,7 +44528,7 @@ var Controls = React28.memo(
|
|
|
44694
44528
|
] });
|
|
44695
44529
|
}
|
|
44696
44530
|
);
|
|
44697
|
-
var FeatureCard =
|
|
44531
|
+
var FeatureCard = React25.memo(
|
|
44698
44532
|
({ feature, isActive, onClick }) => {
|
|
44699
44533
|
const variants2 = useMemo(
|
|
44700
44534
|
() => ({
|
|
@@ -44802,7 +44636,7 @@ var FeatureCard = React28.memo(
|
|
|
44802
44636
|
) });
|
|
44803
44637
|
}
|
|
44804
44638
|
);
|
|
44805
|
-
var FeaturesDesktop =
|
|
44639
|
+
var FeaturesDesktop = React25.memo(
|
|
44806
44640
|
({
|
|
44807
44641
|
features,
|
|
44808
44642
|
handleNext,
|
|
@@ -44836,7 +44670,7 @@ var FeaturesDesktop = React28.memo(
|
|
|
44836
44670
|
] });
|
|
44837
44671
|
}
|
|
44838
44672
|
);
|
|
44839
|
-
var FeaturesMobile =
|
|
44673
|
+
var FeaturesMobile = React25.memo(
|
|
44840
44674
|
({
|
|
44841
44675
|
features,
|
|
44842
44676
|
handleNext,
|
|
@@ -44927,8 +44761,8 @@ function FeatureAnimatedCarousel({
|
|
|
44927
44761
|
spacing = "py-12 md:py-32",
|
|
44928
44762
|
containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8"
|
|
44929
44763
|
}) {
|
|
44930
|
-
const [activeIndex, setActiveIndex] =
|
|
44931
|
-
const [direction, setDirection] =
|
|
44764
|
+
const [activeIndex, setActiveIndex] = React25.useState(0);
|
|
44765
|
+
const [direction, setDirection] = React25.useState(1);
|
|
44932
44766
|
const handleNext = useCallback(() => {
|
|
44933
44767
|
if (features && activeIndex < features.length - 1) {
|
|
44934
44768
|
setDirection(1);
|
|
@@ -45790,7 +45624,7 @@ function FooterInfoCardsAccordion({
|
|
|
45790
45624
|
patternOpacity,
|
|
45791
45625
|
optixFlowConfig
|
|
45792
45626
|
}) {
|
|
45793
|
-
const [email, setEmail] =
|
|
45627
|
+
const [email, setEmail] = React25.useState("");
|
|
45794
45628
|
(/* @__PURE__ */ new Date()).getFullYear();
|
|
45795
45629
|
const handleSubmit = (e) => {
|
|
45796
45630
|
e.preventDefault();
|
|
@@ -46095,13 +45929,13 @@ function CaseStudiesImageGrid({
|
|
|
46095
45929
|
patternOpacity,
|
|
46096
45930
|
optixFlowConfig
|
|
46097
45931
|
}) {
|
|
46098
|
-
const getGridClass =
|
|
45932
|
+
const getGridClass = React25.useCallback((index) => {
|
|
46099
45933
|
if (index === 0 || index === 4) {
|
|
46100
45934
|
return "row-span-2 aspect-square lg:aspect-auto";
|
|
46101
45935
|
}
|
|
46102
45936
|
return "aspect-3/2 md:aspect-2/1";
|
|
46103
45937
|
}, []);
|
|
46104
|
-
const renderedItems =
|
|
45938
|
+
const renderedItems = React25.useMemo(() => {
|
|
46105
45939
|
if (itemsSlot) return itemsSlot;
|
|
46106
45940
|
if (!items || items.length === 0) return null;
|
|
46107
45941
|
return items.map((item, index) => /* @__PURE__ */ jsxs(
|
|
@@ -46187,7 +46021,7 @@ function CaseStudiesTestimonialStats({
|
|
|
46187
46021
|
patternOpacity,
|
|
46188
46022
|
optixFlowConfig
|
|
46189
46023
|
}) {
|
|
46190
|
-
const renderedTestimonials =
|
|
46024
|
+
const renderedTestimonials = React25.useMemo(() => {
|
|
46191
46025
|
if (testimonialsSlot) return testimonialsSlot;
|
|
46192
46026
|
if (!testimonials || testimonials.length === 0) return null;
|
|
46193
46027
|
return testimonials.map((testimonial, index) => /* @__PURE__ */ jsxs("div", { className: testimonialItemClassName, children: [
|
|
@@ -49660,7 +49494,7 @@ function CaseStudiesFeaturedBorder({
|
|
|
49660
49494
|
patternOpacity,
|
|
49661
49495
|
optixFlowConfig
|
|
49662
49496
|
}) {
|
|
49663
|
-
const renderedFeatured =
|
|
49497
|
+
const renderedFeatured = React25.useMemo(() => {
|
|
49664
49498
|
if (featuredSlot) return featuredSlot;
|
|
49665
49499
|
if (!featuredCaseStudy) return null;
|
|
49666
49500
|
return /* @__PURE__ */ jsxs(
|
|
@@ -49734,7 +49568,7 @@ function CaseStudiesFeaturedBorder({
|
|
|
49734
49568
|
featuredImageClassName,
|
|
49735
49569
|
optixFlowConfig
|
|
49736
49570
|
]);
|
|
49737
|
-
const renderedCaseStudies =
|
|
49571
|
+
const renderedCaseStudies = React25.useMemo(() => {
|
|
49738
49572
|
if (caseStudiesSlot) return caseStudiesSlot;
|
|
49739
49573
|
if (!caseStudies || caseStudies.length === 0) return null;
|
|
49740
49574
|
return caseStudies.map((item, idx) => /* @__PURE__ */ jsxs(
|
|
@@ -49843,7 +49677,7 @@ function CaseStudiesStatsCard({
|
|
|
49843
49677
|
patternOpacity,
|
|
49844
49678
|
optixFlowConfig
|
|
49845
49679
|
}) {
|
|
49846
|
-
const renderedStats =
|
|
49680
|
+
const renderedStats = React25.useMemo(() => {
|
|
49847
49681
|
if (statsSlot) return statsSlot;
|
|
49848
49682
|
if (!stats || stats.length === 0) return null;
|
|
49849
49683
|
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: [
|
|
@@ -49851,7 +49685,7 @@ function CaseStudiesStatsCard({
|
|
|
49851
49685
|
/* @__PURE__ */ jsx("div", { className: "text-sm font-medium text-muted-foreground", children: item.text })
|
|
49852
49686
|
] }, `stats-${i}`)) });
|
|
49853
49687
|
}, [statsSlot, stats, statsClassName]);
|
|
49854
|
-
const renderedAuthor =
|
|
49688
|
+
const renderedAuthor = React25.useMemo(() => {
|
|
49855
49689
|
if (authorSlot) return authorSlot;
|
|
49856
49690
|
if (!author) return null;
|
|
49857
49691
|
return /* @__PURE__ */ jsxs("div", { className: cn("flex items-center gap-2.5", authorClassName), children: [
|
|
@@ -49865,7 +49699,7 @@ function CaseStudiesStatsCard({
|
|
|
49865
49699
|
] })
|
|
49866
49700
|
] });
|
|
49867
49701
|
}, [authorSlot, author, authorClassName]);
|
|
49868
|
-
const renderedActions =
|
|
49702
|
+
const renderedActions = React25.useMemo(() => {
|
|
49869
49703
|
if (actionsSlot) return actionsSlot;
|
|
49870
49704
|
if (!actions || actions.length === 0) return null;
|
|
49871
49705
|
return /* @__PURE__ */ jsx("div", { className: cn("shrink-0", actionsClassName), children: actions.map((action, index) => {
|
|
@@ -51240,23 +51074,6 @@ function HeroImageSlider({
|
|
|
51240
51074
|
privacyNoticeClassName,
|
|
51241
51075
|
gridClassName
|
|
51242
51076
|
}) {
|
|
51243
|
-
const formStyleRules = React28.useMemo(() => {
|
|
51244
|
-
return {
|
|
51245
|
-
formContainer: formEngineSetup?.formLayoutSettings?.styleRules?.formContainer ?? DEFAULT_STYLE_RULES7.formContainer,
|
|
51246
|
-
fieldsContainer: formEngineSetup?.formLayoutSettings?.styleRules?.fieldsContainer ?? DEFAULT_STYLE_RULES7.fieldsContainer,
|
|
51247
|
-
fieldClassName: formEngineSetup?.formLayoutSettings?.styleRules?.fieldClassName ?? DEFAULT_STYLE_RULES7.fieldClassName,
|
|
51248
|
-
formClassName: formEngineSetup?.formLayoutSettings?.styleRules?.formClassName ?? DEFAULT_STYLE_RULES7.formClassName,
|
|
51249
|
-
successMessageClassName: formEngineSetup?.formLayoutSettings?.styleRules?.successMessageClassName ?? DEFAULT_STYLE_RULES7.successMessageClassName,
|
|
51250
|
-
errorMessageClassName: formEngineSetup?.formLayoutSettings?.styleRules?.errorMessageClassName ?? DEFAULT_STYLE_RULES7.errorMessageClassName
|
|
51251
|
-
};
|
|
51252
|
-
}, [formEngineSetup?.formLayoutSettings?.styleRules]);
|
|
51253
|
-
const formFields = React28.useMemo(() => {
|
|
51254
|
-
if (formEngineSetup && formEngineSetup?.fields && formEngineSetup?.fields?.length > 0) {
|
|
51255
|
-
return formEngineSetup.fields;
|
|
51256
|
-
} else {
|
|
51257
|
-
return DEFAULT_FORM_FIELDS42;
|
|
51258
|
-
}
|
|
51259
|
-
}, [formEngineSetup?.fields]);
|
|
51260
51077
|
const renderActions = useMemo(() => {
|
|
51261
51078
|
if (actionsSlot) return actionsSlot;
|
|
51262
51079
|
if (!actions || actions.length === 0) return null;
|
|
@@ -51415,20 +51232,22 @@ function HeroImageSlider({
|
|
|
51415
51232
|
/* @__PURE__ */ jsx(
|
|
51416
51233
|
FormEngine,
|
|
51417
51234
|
{
|
|
51418
|
-
|
|
51419
|
-
|
|
51420
|
-
|
|
51421
|
-
|
|
51422
|
-
|
|
51423
|
-
|
|
51424
|
-
|
|
51425
|
-
|
|
51426
|
-
|
|
51427
|
-
|
|
51428
|
-
|
|
51429
|
-
|
|
51235
|
+
formEngineSetup: {
|
|
51236
|
+
...formEngineSetup,
|
|
51237
|
+
formLayoutSettings: {
|
|
51238
|
+
...formEngineSetup?.formLayoutSettings,
|
|
51239
|
+
formLayout: "standard",
|
|
51240
|
+
submitButtonSetup: {
|
|
51241
|
+
...formEngineSetup?.formLayoutSettings?.submitButtonSetup,
|
|
51242
|
+
submitLabel: /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
51243
|
+
buttonIcon,
|
|
51244
|
+
buttonText
|
|
51245
|
+
] })
|
|
51246
|
+
}
|
|
51247
|
+
}
|
|
51430
51248
|
},
|
|
51431
|
-
|
|
51249
|
+
defaultFields: DEFAULT_FORM_FIELDS42,
|
|
51250
|
+
defaultStyleRules: DEFAULT_STYLE_RULES7
|
|
51432
51251
|
}
|
|
51433
51252
|
),
|
|
51434
51253
|
privacyNotice && /* @__PURE__ */ jsx(
|
|
@@ -57013,7 +56832,7 @@ function HeroSplitImageNewsletter({
|
|
|
57013
56832
|
onError,
|
|
57014
56833
|
uploadTokens
|
|
57015
56834
|
});
|
|
57016
|
-
const renderForm =
|
|
56835
|
+
const renderForm = React25.useMemo(() => {
|
|
57017
56836
|
if (formSlot) return formSlot;
|
|
57018
56837
|
if (!formFields || formFields.length === 0) return null;
|
|
57019
56838
|
const defaultButtonAction = {
|
|
@@ -57092,7 +56911,7 @@ function HeroSplitImageNewsletter({
|
|
|
57092
56911
|
resetUpload,
|
|
57093
56912
|
resetSubmissionState
|
|
57094
56913
|
]);
|
|
57095
|
-
const renderImage =
|
|
56914
|
+
const renderImage = React25.useMemo(() => {
|
|
57096
56915
|
if (imageSlot) return imageSlot;
|
|
57097
56916
|
if (!image) return null;
|
|
57098
56917
|
return /* @__PURE__ */ jsx("div", { className: "relative lg:w-1/2", children: /* @__PURE__ */ jsx(
|
|
@@ -58520,7 +58339,7 @@ function HeroSaasDashboardPreview({
|
|
|
58520
58339
|
onError,
|
|
58521
58340
|
uploadTokens
|
|
58522
58341
|
});
|
|
58523
|
-
const renderBadge =
|
|
58342
|
+
const renderBadge = React25.useMemo(() => {
|
|
58524
58343
|
if (badgeSlot) return badgeSlot;
|
|
58525
58344
|
return /* @__PURE__ */ jsxs(
|
|
58526
58345
|
"div",
|
|
@@ -58535,7 +58354,7 @@ function HeroSaasDashboardPreview({
|
|
|
58535
58354
|
}
|
|
58536
58355
|
);
|
|
58537
58356
|
}, [badgeSlot, badgeIcon, badgeText]);
|
|
58538
|
-
const renderForm =
|
|
58357
|
+
const renderForm = React25.useMemo(() => {
|
|
58539
58358
|
if (formSlot) return formSlot;
|
|
58540
58359
|
const defaultButtonAction = {
|
|
58541
58360
|
label: "Start Free Trial",
|
|
@@ -58610,7 +58429,7 @@ function HeroSaasDashboardPreview({
|
|
|
58610
58429
|
resetUpload,
|
|
58611
58430
|
resetSubmissionState
|
|
58612
58431
|
]);
|
|
58613
|
-
const renderBrowserPreview =
|
|
58432
|
+
const renderBrowserPreview = React25.useMemo(() => {
|
|
58614
58433
|
if (browserPreviewSlot) return browserPreviewSlot;
|
|
58615
58434
|
if (!browserPreview) return null;
|
|
58616
58435
|
return /* @__PURE__ */ jsxs("div", { className: cn("relative mt-12 md:mt-20", previewClassName), children: [
|
|
@@ -60861,7 +60680,7 @@ function HeroEcommerceProductShowcase({
|
|
|
60861
60680
|
"flex flex-col md:flex-row items-center gap-4 md:gap-6 pt-8 md:pt-12",
|
|
60862
60681
|
statsClassName
|
|
60863
60682
|
),
|
|
60864
|
-
children: stats.map((stat, index) => /* @__PURE__ */ jsxs(
|
|
60683
|
+
children: stats.map((stat, index) => /* @__PURE__ */ jsxs(React25.Fragment, { children: [
|
|
60865
60684
|
index > 0 && /* @__PURE__ */ jsx("div", { className: "h-12 w-px bg-border hidden md:flex" }),
|
|
60866
60685
|
/* @__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: [
|
|
60867
60686
|
/* @__PURE__ */ jsxs(
|
|
@@ -61305,24 +61124,7 @@ function HeroNewsletterMinimal({
|
|
|
61305
61124
|
disclaimerClassName,
|
|
61306
61125
|
statsClassName
|
|
61307
61126
|
}) {
|
|
61308
|
-
const
|
|
61309
|
-
return {
|
|
61310
|
-
formContainer: formEngineSetup?.formLayoutSettings?.styleRules?.formContainer ?? DEFAULT_STYLE_RULES8.formContainer,
|
|
61311
|
-
fieldsContainer: formEngineSetup?.formLayoutSettings?.styleRules?.fieldsContainer ?? DEFAULT_STYLE_RULES8.fieldsContainer,
|
|
61312
|
-
fieldClassName: formEngineSetup?.formLayoutSettings?.styleRules?.fieldClassName ?? DEFAULT_STYLE_RULES8.fieldClassName,
|
|
61313
|
-
formClassName: formEngineSetup?.formLayoutSettings?.styleRules?.formClassName ?? DEFAULT_STYLE_RULES8.formClassName,
|
|
61314
|
-
successMessageClassName: formEngineSetup?.formLayoutSettings?.styleRules?.successMessageClassName ?? DEFAULT_STYLE_RULES8.successMessageClassName,
|
|
61315
|
-
errorMessageClassName: formEngineSetup?.formLayoutSettings?.styleRules?.errorMessageClassName ?? DEFAULT_STYLE_RULES8.errorMessageClassName
|
|
61316
|
-
};
|
|
61317
|
-
}, [formEngineSetup?.formLayoutSettings?.styleRules]);
|
|
61318
|
-
const formFields = React28.useMemo(() => {
|
|
61319
|
-
if (formEngineSetup && formEngineSetup?.fields && formEngineSetup?.fields?.length > 0) {
|
|
61320
|
-
return formEngineSetup.fields;
|
|
61321
|
-
} else {
|
|
61322
|
-
return DEFAULT_FORM_FIELDS45;
|
|
61323
|
-
}
|
|
61324
|
-
}, [formEngineSetup?.fields]);
|
|
61325
|
-
const renderStats = React28.useMemo(() => {
|
|
61127
|
+
const renderStats = React25.useMemo(() => {
|
|
61326
61128
|
if (statsSlot) return statsSlot;
|
|
61327
61129
|
if (!stats || stats.length === 0) return null;
|
|
61328
61130
|
return stats.map((stat, index) => /* @__PURE__ */ jsx("div", { className: cn("flex items-center", stat.className), children: /* @__PURE__ */ jsxs("div", { className: "text-center", children: [
|
|
@@ -61348,7 +61150,7 @@ function HeroNewsletterMinimal({
|
|
|
61348
61150
|
/* @__PURE__ */ jsx("div", { className: cn("text-sm"), children: stat.label })
|
|
61349
61151
|
] }) }, index));
|
|
61350
61152
|
}, [statsSlot, stats]);
|
|
61351
|
-
const renderForm =
|
|
61153
|
+
const renderForm = React25.useMemo(() => {
|
|
61352
61154
|
if (formSlot) return formSlot;
|
|
61353
61155
|
if (!formEngineSetup) return null;
|
|
61354
61156
|
const defaultButtonAction = {
|
|
@@ -61360,22 +61162,24 @@ function HeroNewsletterMinimal({
|
|
|
61360
61162
|
/* @__PURE__ */ jsx(
|
|
61361
61163
|
FormEngine,
|
|
61362
61164
|
{
|
|
61363
|
-
|
|
61364
|
-
|
|
61365
|
-
|
|
61366
|
-
|
|
61367
|
-
|
|
61368
|
-
|
|
61369
|
-
|
|
61370
|
-
|
|
61371
|
-
|
|
61372
|
-
|
|
61373
|
-
|
|
61374
|
-
|
|
61375
|
-
|
|
61376
|
-
|
|
61165
|
+
formEngineSetup: {
|
|
61166
|
+
...formEngineSetup,
|
|
61167
|
+
formLayoutSettings: {
|
|
61168
|
+
...formEngineSetup.formLayoutSettings,
|
|
61169
|
+
formLayout: "button-group",
|
|
61170
|
+
buttonGroupSetup: {
|
|
61171
|
+
...formEngineSetup.formLayoutSettings?.buttonGroupSetup,
|
|
61172
|
+
size: "lg",
|
|
61173
|
+
submitLabel: /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
61174
|
+
action.label,
|
|
61175
|
+
action.iconAfter
|
|
61176
|
+
] }),
|
|
61177
|
+
submitVariant: action.variant || "default"
|
|
61178
|
+
}
|
|
61179
|
+
}
|
|
61377
61180
|
},
|
|
61378
|
-
|
|
61181
|
+
defaultFields: DEFAULT_FORM_FIELDS45,
|
|
61182
|
+
defaultStyleRules: DEFAULT_STYLE_RULES8
|
|
61379
61183
|
}
|
|
61380
61184
|
),
|
|
61381
61185
|
helperText && (typeof helperText === "string" ? /* @__PURE__ */ jsx("p", { className: cn("text-sm mt-2 text-center"), children: helperText }) : helperText)
|
|
@@ -61384,8 +61188,6 @@ function HeroNewsletterMinimal({
|
|
|
61384
61188
|
formSlot,
|
|
61385
61189
|
formEngineSetup,
|
|
61386
61190
|
buttonAction,
|
|
61387
|
-
formFields,
|
|
61388
|
-
formStyleRules,
|
|
61389
61191
|
helperText
|
|
61390
61192
|
]);
|
|
61391
61193
|
return /* @__PURE__ */ jsx(
|
|
@@ -61515,7 +61317,7 @@ function HeroComingSoonCountdown({
|
|
|
61515
61317
|
formClassName,
|
|
61516
61318
|
socialLinksClassName
|
|
61517
61319
|
}) {
|
|
61518
|
-
const [timeLeft, setTimeLeft] =
|
|
61320
|
+
const [timeLeft, setTimeLeft] = React25.useState(null);
|
|
61519
61321
|
const {
|
|
61520
61322
|
uploadTokens,
|
|
61521
61323
|
uploadProgress,
|
|
@@ -61535,7 +61337,7 @@ function HeroComingSoonCountdown({
|
|
|
61535
61337
|
onError,
|
|
61536
61338
|
uploadTokens
|
|
61537
61339
|
});
|
|
61538
|
-
const calculateTimeLeft =
|
|
61340
|
+
const calculateTimeLeft = React25.useCallback(() => {
|
|
61539
61341
|
if (!countdownDate) return null;
|
|
61540
61342
|
const now = Date.now();
|
|
61541
61343
|
const target = countdownDate.getTime();
|
|
@@ -61548,7 +61350,7 @@ function HeroComingSoonCountdown({
|
|
|
61548
61350
|
seconds: Math.floor(diff % (1e3 * 60) / 1e3)
|
|
61549
61351
|
};
|
|
61550
61352
|
}, [countdownDate]);
|
|
61551
|
-
|
|
61353
|
+
React25.useEffect(() => {
|
|
61552
61354
|
setTimeLeft(calculateTimeLeft());
|
|
61553
61355
|
if (!countdownDate) return;
|
|
61554
61356
|
const timer = setInterval(() => {
|
|
@@ -61559,7 +61361,7 @@ function HeroComingSoonCountdown({
|
|
|
61559
61361
|
return () => clearInterval(timer);
|
|
61560
61362
|
}, [countdownDate, calculateTimeLeft]);
|
|
61561
61363
|
const showCountdown = countdownSlot || timeLeft;
|
|
61562
|
-
const renderForm =
|
|
61364
|
+
const renderForm = React25.useMemo(() => {
|
|
61563
61365
|
if (formSlot) return formSlot;
|
|
61564
61366
|
const defaultButtonAction = {
|
|
61565
61367
|
label: "Notify Me",
|
|
@@ -61635,7 +61437,7 @@ function HeroComingSoonCountdown({
|
|
|
61635
61437
|
resetUpload,
|
|
61636
61438
|
resetSubmissionState
|
|
61637
61439
|
]);
|
|
61638
|
-
const renderSocialLinks =
|
|
61440
|
+
const renderSocialLinks = React25.useMemo(() => {
|
|
61639
61441
|
if (socialLinksSlot) return socialLinksSlot;
|
|
61640
61442
|
if (!socialLinks || socialLinks.length === 0) return null;
|
|
61641
61443
|
return socialLinks.map((link, index) => /* @__PURE__ */ jsx(
|
|
@@ -61767,7 +61569,7 @@ function HeroEventRegistration({
|
|
|
61767
61569
|
"flex flex-col md:flex-row items-center gap-4 md:gap-6 pt-8 md:pt-12 w-full md:w-fit",
|
|
61768
61570
|
statsClassName
|
|
61769
61571
|
),
|
|
61770
|
-
children: stats.map((stat, index) => /* @__PURE__ */ jsxs(
|
|
61572
|
+
children: stats.map((stat, index) => /* @__PURE__ */ jsxs(React25.Fragment, { children: [
|
|
61771
61573
|
index > 0 && /* @__PURE__ */ jsx("div", { className: "h-12 w-px bg-border hidden md:flex" }),
|
|
61772
61574
|
/* @__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: [
|
|
61773
61575
|
/* @__PURE__ */ jsxs(
|
|
@@ -62107,7 +61909,7 @@ function ComparisonTableTwoColumn({
|
|
|
62107
61909
|
patternOpacity,
|
|
62108
61910
|
optixFlowConfig
|
|
62109
61911
|
}) {
|
|
62110
|
-
const tableContent =
|
|
61912
|
+
const tableContent = React25.useMemo(() => {
|
|
62111
61913
|
if (tableSlot) return tableSlot;
|
|
62112
61914
|
if (!rows || rows.length === 0) return null;
|
|
62113
61915
|
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(
|
|
@@ -62137,7 +61939,7 @@ function ComparisonTableTwoColumn({
|
|
|
62137
61939
|
optixFlowConfig
|
|
62138
61940
|
}
|
|
62139
61941
|
) : optionBLabel && (typeof optionBLabel === "string" ? /* @__PURE__ */ jsx("span", { className: "text-lg font-semibold", children: optionBLabel }) : optionBLabel) }),
|
|
62140
|
-
rows.map((row, idx) => /* @__PURE__ */ jsxs(
|
|
61942
|
+
rows.map((row, idx) => /* @__PURE__ */ jsxs(React25.Fragment, { children: [
|
|
62141
61943
|
/* @__PURE__ */ jsx("div", { className: "flex items-center border-b p-3 text-base font-medium md:p-4 md:text-lg", children: row.label }),
|
|
62142
61944
|
/* @__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: [
|
|
62143
61945
|
row.hasIcon && /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/circle-check-big", size: 20, className: "text-success" }),
|
|
@@ -62166,14 +61968,14 @@ function ComparisonTableTwoColumn({
|
|
|
62166
61968
|
optionBLabel,
|
|
62167
61969
|
optixFlowConfig
|
|
62168
61970
|
]);
|
|
62169
|
-
const headingContent =
|
|
61971
|
+
const headingContent = React25.useMemo(() => {
|
|
62170
61972
|
if (!heading) return null;
|
|
62171
61973
|
if (typeof heading === "string") {
|
|
62172
61974
|
return /* @__PURE__ */ jsx("h1", { className: cn("mb-8 text-3xl font-bold md:mb-12 md:text-5xl", headingClassName), children: heading });
|
|
62173
61975
|
}
|
|
62174
61976
|
return /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading });
|
|
62175
61977
|
}, [heading, headingClassName]);
|
|
62176
|
-
const descriptionContent =
|
|
61978
|
+
const descriptionContent = React25.useMemo(() => {
|
|
62177
61979
|
if (!description) return null;
|
|
62178
61980
|
if (typeof description === "string") {
|
|
62179
61981
|
return /* @__PURE__ */ jsx("p", { className: cn("mb-8 text-muted-foreground md:text-lg", descriptionClassName), children: description });
|
|
@@ -62220,7 +62022,7 @@ function ComparisonFeatureCards({
|
|
|
62220
62022
|
patternOpacity,
|
|
62221
62023
|
optixFlowConfig
|
|
62222
62024
|
}) {
|
|
62223
|
-
const renderCard =
|
|
62025
|
+
const renderCard = React25.useCallback(
|
|
62224
62026
|
(product, isHighlighted) => /* @__PURE__ */ jsxs(
|
|
62225
62027
|
"div",
|
|
62226
62028
|
{
|
|
@@ -62276,7 +62078,7 @@ function ComparisonFeatureCards({
|
|
|
62276
62078
|
),
|
|
62277
62079
|
[cardClassName, optixFlowConfig]
|
|
62278
62080
|
);
|
|
62279
|
-
const cardsContent =
|
|
62081
|
+
const cardsContent = React25.useMemo(() => {
|
|
62280
62082
|
if (cardsSlot) return cardsSlot;
|
|
62281
62083
|
if (!productA || !productB) return null;
|
|
62282
62084
|
return /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
@@ -62284,28 +62086,28 @@ function ComparisonFeatureCards({
|
|
|
62284
62086
|
renderCard(productB, productB.highlighted ?? false)
|
|
62285
62087
|
] });
|
|
62286
62088
|
}, [cardsSlot, productA, productB, renderCard]);
|
|
62287
|
-
const headingContent =
|
|
62089
|
+
const headingContent = React25.useMemo(() => {
|
|
62288
62090
|
if (!heading) return null;
|
|
62289
62091
|
if (typeof heading === "string") {
|
|
62290
62092
|
return /* @__PURE__ */ jsx("h1", { className: cn("mb-6 text-4xl font-semibold md:text-7xl", headingClassName), children: heading });
|
|
62291
62093
|
}
|
|
62292
62094
|
return /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading });
|
|
62293
62095
|
}, [heading, headingClassName]);
|
|
62294
|
-
const descriptionContent =
|
|
62096
|
+
const descriptionContent = React25.useMemo(() => {
|
|
62295
62097
|
if (!description) return null;
|
|
62296
62098
|
if (typeof description === "string") {
|
|
62297
62099
|
return /* @__PURE__ */ jsx("p", { className: cn("mx-auto max-w-4xl text-muted-foreground md:text-xl", descriptionClassName), children: description });
|
|
62298
62100
|
}
|
|
62299
62101
|
return /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description });
|
|
62300
62102
|
}, [description, descriptionClassName]);
|
|
62301
|
-
const suitabilityContent =
|
|
62103
|
+
const suitabilityContent = React25.useMemo(() => {
|
|
62302
62104
|
if (!suitabilityTitle && !suitabilityDescription) return null;
|
|
62303
62105
|
return /* @__PURE__ */ jsxs("div", { className: suitabilityClassName, children: [
|
|
62304
62106
|
suitabilityTitle && (typeof suitabilityTitle === "string" ? /* @__PURE__ */ jsx("h2", { className: "mb-4 text-3xl font-semibold", children: suitabilityTitle }) : suitabilityTitle),
|
|
62305
62107
|
suitabilityDescription && (typeof suitabilityDescription === "string" ? /* @__PURE__ */ jsx("p", { className: "leading-6 text-muted-foreground md:text-lg", children: suitabilityDescription }) : suitabilityDescription)
|
|
62306
62108
|
] });
|
|
62307
62109
|
}, [suitabilityTitle, suitabilityDescription, suitabilityClassName]);
|
|
62308
|
-
const differencesContent =
|
|
62110
|
+
const differencesContent = React25.useMemo(() => {
|
|
62309
62111
|
if (!differencesTitle && !differencesDescription) return null;
|
|
62310
62112
|
return /* @__PURE__ */ jsxs("div", { className: cn("mt-16", differencesClassName), children: [
|
|
62311
62113
|
differencesTitle && (typeof differencesTitle === "string" ? /* @__PURE__ */ jsx("h2", { className: "mb-4 text-3xl font-semibold", children: differencesTitle }) : differencesTitle),
|
|
@@ -62353,7 +62155,7 @@ function ComparisonGridBadges({
|
|
|
62353
62155
|
pattern,
|
|
62354
62156
|
patternOpacity
|
|
62355
62157
|
}) {
|
|
62356
|
-
const featuresContent =
|
|
62158
|
+
const featuresContent = React25.useMemo(() => {
|
|
62357
62159
|
if (featuresSlot) return featuresSlot;
|
|
62358
62160
|
if (!features || features.length === 0) return null;
|
|
62359
62161
|
return features.map((feature, idx) => /* @__PURE__ */ jsxs(
|
|
@@ -62400,14 +62202,14 @@ function ComparisonGridBadges({
|
|
|
62400
62202
|
idx
|
|
62401
62203
|
));
|
|
62402
62204
|
}, [featuresSlot, features, featureCardClassName, badgeClassName, optionALabel, optionBLabel]);
|
|
62403
|
-
const headingContent =
|
|
62205
|
+
const headingContent = React25.useMemo(() => {
|
|
62404
62206
|
if (!heading) return null;
|
|
62405
62207
|
if (typeof heading === "string") {
|
|
62406
62208
|
return /* @__PURE__ */ jsx("h2", { className: cn("mb-4 text-3xl font-bold md:text-5xl", headingClassName), children: heading });
|
|
62407
62209
|
}
|
|
62408
62210
|
return /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading });
|
|
62409
62211
|
}, [heading, headingClassName]);
|
|
62410
|
-
const descriptionContent =
|
|
62212
|
+
const descriptionContent = React25.useMemo(() => {
|
|
62411
62213
|
if (!description) return null;
|
|
62412
62214
|
if (typeof description === "string") {
|
|
62413
62215
|
return /* @__PURE__ */ jsx("p", { className: cn("mx-auto max-w-2xl text-muted-foreground md:text-lg", descriptionClassName), children: description });
|
|
@@ -62455,7 +62257,7 @@ function ComparisonMetricsRows({
|
|
|
62455
62257
|
pattern,
|
|
62456
62258
|
patternOpacity
|
|
62457
62259
|
}) {
|
|
62458
|
-
const metricsContent =
|
|
62260
|
+
const metricsContent = React25.useMemo(() => {
|
|
62459
62261
|
if (metricsSlot) return metricsSlot;
|
|
62460
62262
|
if (!metrics || metrics.length === 0) return null;
|
|
62461
62263
|
return /* @__PURE__ */ jsx(
|
|
@@ -62495,7 +62297,7 @@ function ComparisonMetricsRows({
|
|
|
62495
62297
|
}
|
|
62496
62298
|
);
|
|
62497
62299
|
}, [metricsSlot, metrics, metricsClassName, metricRowClassName]);
|
|
62498
|
-
const actionsContent =
|
|
62300
|
+
const actionsContent = React25.useMemo(() => {
|
|
62499
62301
|
if (actionsSlot) return actionsSlot;
|
|
62500
62302
|
if (!actions || actions.length === 0) return null;
|
|
62501
62303
|
return /* @__PURE__ */ jsx("div", { className: cn("flex justify-end", actionsClassName), children: actions.map((action, idx) => /* @__PURE__ */ jsxs(
|
|
@@ -62516,7 +62318,7 @@ function ComparisonMetricsRows({
|
|
|
62516
62318
|
idx
|
|
62517
62319
|
)) });
|
|
62518
62320
|
}, [actionsSlot, actions, actionsClassName]);
|
|
62519
|
-
const headingContent =
|
|
62321
|
+
const headingContent = React25.useMemo(() => {
|
|
62520
62322
|
if (!heading) return null;
|
|
62521
62323
|
if (typeof heading === "string") {
|
|
62522
62324
|
return /* @__PURE__ */ jsx(
|
|
@@ -62532,7 +62334,7 @@ function ComparisonMetricsRows({
|
|
|
62532
62334
|
}
|
|
62533
62335
|
return /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading });
|
|
62534
62336
|
}, [heading, headingClassName]);
|
|
62535
|
-
const descriptionContent =
|
|
62337
|
+
const descriptionContent = React25.useMemo(() => {
|
|
62536
62338
|
if (!description) return null;
|
|
62537
62339
|
if (typeof description === "string") {
|
|
62538
62340
|
return /* @__PURE__ */ jsx("p", { className: cn("text-muted-foreground md:text-lg", descriptionClassName), children: description });
|
|
@@ -62595,7 +62397,7 @@ function ComparisonImageCards({
|
|
|
62595
62397
|
patternOpacity,
|
|
62596
62398
|
optixFlowConfig
|
|
62597
62399
|
}) {
|
|
62598
|
-
const renderCard =
|
|
62400
|
+
const renderCard = React25.useCallback(
|
|
62599
62401
|
(option) => /* @__PURE__ */ jsx("div", { className: cn("relative h-full", cardClassName), children: /* @__PURE__ */ jsxs("div", { className: cn(
|
|
62600
62402
|
"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]",
|
|
62601
62403
|
getNestedCardBg(background, "accent"),
|
|
@@ -62619,7 +62421,7 @@ function ComparisonImageCards({
|
|
|
62619
62421
|
] }) }),
|
|
62620
62422
|
[cardClassName, optixFlowConfig]
|
|
62621
62423
|
);
|
|
62622
|
-
const cardsContent =
|
|
62424
|
+
const cardsContent = React25.useMemo(() => {
|
|
62623
62425
|
if (cardsSlot) return cardsSlot;
|
|
62624
62426
|
if (!optionA || !optionB) return null;
|
|
62625
62427
|
return /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
@@ -62637,14 +62439,14 @@ function ComparisonImageCards({
|
|
|
62637
62439
|
)
|
|
62638
62440
|
] });
|
|
62639
62441
|
}, [cardsSlot, optionA, optionB, dividerText, dividerClassName, renderCard]);
|
|
62640
|
-
const headingContent =
|
|
62442
|
+
const headingContent = React25.useMemo(() => {
|
|
62641
62443
|
if (!heading) return null;
|
|
62642
62444
|
if (typeof heading === "string") {
|
|
62643
62445
|
return /* @__PURE__ */ jsx("h2", { className: cn("text-3xl font-medium sm:text-4xl md:text-5xl lg:text-6xl", headingClassName), children: heading });
|
|
62644
62446
|
}
|
|
62645
62447
|
return /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading });
|
|
62646
62448
|
}, [heading, headingClassName]);
|
|
62647
|
-
const descriptionContent =
|
|
62449
|
+
const descriptionContent = React25.useMemo(() => {
|
|
62648
62450
|
if (!description) return null;
|
|
62649
62451
|
if (typeof description === "string") {
|
|
62650
62452
|
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 });
|
|
@@ -62774,7 +62576,7 @@ function ComparisonTableTabs({
|
|
|
62774
62576
|
patternOpacity
|
|
62775
62577
|
}) {
|
|
62776
62578
|
const [selectedTab, setSelectedTab] = useState(models?.[0]?.name || "");
|
|
62777
|
-
const renderStatusIcon =
|
|
62579
|
+
const renderStatusIcon = React25.useCallback((status) => {
|
|
62778
62580
|
if (status === "positive") {
|
|
62779
62581
|
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" }) });
|
|
62780
62582
|
}
|
|
@@ -62783,7 +62585,7 @@ function ComparisonTableTabs({
|
|
|
62783
62585
|
}
|
|
62784
62586
|
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" }) });
|
|
62785
62587
|
}, []);
|
|
62786
|
-
const tableContent =
|
|
62588
|
+
const tableContent = React25.useMemo(() => {
|
|
62787
62589
|
if (tableSlot) return tableSlot;
|
|
62788
62590
|
if (!models || models.length === 0 || !features || features.length === 0) return null;
|
|
62789
62591
|
return /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
@@ -62842,14 +62644,14 @@ function ComparisonTableTabs({
|
|
|
62842
62644
|
] }) })
|
|
62843
62645
|
] });
|
|
62844
62646
|
}, [tableSlot, models, features, tabsClassName, tableClassName, tableHeaderClassName, tableCellClassName, selectedTab, renderStatusIcon]);
|
|
62845
|
-
const headingContent =
|
|
62647
|
+
const headingContent = React25.useMemo(() => {
|
|
62846
62648
|
if (!heading) return null;
|
|
62847
62649
|
if (typeof heading === "string") {
|
|
62848
62650
|
return /* @__PURE__ */ jsx("h2", { className: cn("text-3xl font-bold md:text-4xl lg:text-5xl", headingClassName), children: heading });
|
|
62849
62651
|
}
|
|
62850
62652
|
return /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading });
|
|
62851
62653
|
}, [heading, headingClassName]);
|
|
62852
|
-
const descriptionContent =
|
|
62654
|
+
const descriptionContent = React25.useMemo(() => {
|
|
62853
62655
|
if (!description) return null;
|
|
62854
62656
|
if (typeof description === "string") {
|
|
62855
62657
|
return /* @__PURE__ */ jsx("p", { className: cn("mt-4 text-muted-foreground md:text-lg", descriptionClassName), children: description });
|
|
@@ -62940,7 +62742,7 @@ function ComparisonTableTooltips({
|
|
|
62940
62742
|
pattern,
|
|
62941
62743
|
patternOpacity
|
|
62942
62744
|
}) {
|
|
62943
|
-
const renderCellContent =
|
|
62745
|
+
const renderCellContent = React25.useCallback(
|
|
62944
62746
|
(cell, isHighlighted) => {
|
|
62945
62747
|
if (typeof cell === "string") {
|
|
62946
62748
|
return cell;
|
|
@@ -62967,7 +62769,7 @@ function ComparisonTableTooltips({
|
|
|
62967
62769
|
},
|
|
62968
62770
|
[]
|
|
62969
62771
|
);
|
|
62970
|
-
const tableContent =
|
|
62772
|
+
const tableContent = React25.useMemo(() => {
|
|
62971
62773
|
if (tableSlot) return tableSlot;
|
|
62972
62774
|
if (!rows || rows.length === 0) return null;
|
|
62973
62775
|
return /* @__PURE__ */ jsxs(Table, { className: cn("rounded border text-left shadow-lg", tableClassName), children: [
|
|
@@ -62993,14 +62795,14 @@ function ComparisonTableTooltips({
|
|
|
62993
62795
|
] }, idx)) })
|
|
62994
62796
|
] });
|
|
62995
62797
|
}, [tableSlot, rows, tableClassName, tableHeaderClassName, tableCellClassName, optionALabel, optionBLabel, renderCellContent]);
|
|
62996
|
-
const headingContent =
|
|
62798
|
+
const headingContent = React25.useMemo(() => {
|
|
62997
62799
|
if (!heading) return null;
|
|
62998
62800
|
if (typeof heading === "string") {
|
|
62999
62801
|
return /* @__PURE__ */ jsx("h2", { className: cn("mb-4 text-center text-4xl font-semibold", headingClassName), children: heading });
|
|
63000
62802
|
}
|
|
63001
62803
|
return /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading });
|
|
63002
62804
|
}, [heading, headingClassName]);
|
|
63003
|
-
const descriptionContent =
|
|
62805
|
+
const descriptionContent = React25.useMemo(() => {
|
|
63004
62806
|
if (!description) return null;
|
|
63005
62807
|
if (typeof description === "string") {
|
|
63006
62808
|
return /* @__PURE__ */ jsx("p", { className: cn("mb-8 text-center text-muted-foreground", descriptionClassName), children: description });
|
|
@@ -63042,7 +62844,7 @@ function ComparisonFeatureGrid({
|
|
|
63042
62844
|
pattern,
|
|
63043
62845
|
patternOpacity
|
|
63044
62846
|
}) {
|
|
63045
|
-
const renderStatusIcon =
|
|
62847
|
+
const renderStatusIcon = React25.useCallback((status) => {
|
|
63046
62848
|
if (status === true) {
|
|
63047
62849
|
return /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/check", size: 20, className: "text-success" });
|
|
63048
62850
|
}
|
|
@@ -63051,7 +62853,7 @@ function ComparisonFeatureGrid({
|
|
|
63051
62853
|
}
|
|
63052
62854
|
return /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/x", size: 20, className: "text-destructive" });
|
|
63053
62855
|
}, []);
|
|
63054
|
-
const gridContent =
|
|
62856
|
+
const gridContent = React25.useMemo(() => {
|
|
63055
62857
|
if (gridSlot) return gridSlot;
|
|
63056
62858
|
if (!features || features.length === 0) return null;
|
|
63057
62859
|
return /* @__PURE__ */ jsxs(
|
|
@@ -63117,14 +62919,14 @@ function ComparisonFeatureGrid({
|
|
|
63117
62919
|
optionBLabel,
|
|
63118
62920
|
renderStatusIcon
|
|
63119
62921
|
]);
|
|
63120
|
-
const headingContent =
|
|
62922
|
+
const headingContent = React25.useMemo(() => {
|
|
63121
62923
|
if (!heading) return null;
|
|
63122
62924
|
if (typeof heading === "string") {
|
|
63123
62925
|
return /* @__PURE__ */ jsx("h2", { className: cn("mb-4 text-center text-4xl font-semibold", headingClassName), children: heading });
|
|
63124
62926
|
}
|
|
63125
62927
|
return /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading });
|
|
63126
62928
|
}, [heading, headingClassName]);
|
|
63127
|
-
const descriptionContent =
|
|
62929
|
+
const descriptionContent = React25.useMemo(() => {
|
|
63128
62930
|
if (!description) return null;
|
|
63129
62931
|
if (typeof description === "string") {
|
|
63130
62932
|
return /* @__PURE__ */ jsx("p", { className: cn("mb-8 text-center text-muted-foreground", descriptionClassName), children: description });
|
|
@@ -63168,7 +62970,7 @@ function ComparisonAiModels({
|
|
|
63168
62970
|
optixFlowConfig
|
|
63169
62971
|
}) {
|
|
63170
62972
|
const [hoveredModel, setHoveredModel] = useState(null);
|
|
63171
|
-
const renderStatusIcon =
|
|
62973
|
+
const renderStatusIcon = React25.useCallback((status) => {
|
|
63172
62974
|
if (status === "best") {
|
|
63173
62975
|
return /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/circle-check", size: 16, className: "text-success" });
|
|
63174
62976
|
}
|
|
@@ -63177,7 +62979,7 @@ function ComparisonAiModels({
|
|
|
63177
62979
|
}
|
|
63178
62980
|
return /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/minus", size: 16, className: "text-muted-foreground" });
|
|
63179
62981
|
}, []);
|
|
63180
|
-
const getCellClassName =
|
|
62982
|
+
const getCellClassName = React25.useCallback(
|
|
63181
62983
|
(status, modelKey) => {
|
|
63182
62984
|
const baseClass = "cursor-pointer py-4 text-center font-medium transition-all duration-300";
|
|
63183
62985
|
let statusClass = "";
|
|
@@ -63198,7 +63000,7 @@ function ComparisonAiModels({
|
|
|
63198
63000
|
},
|
|
63199
63001
|
[hoveredModel]
|
|
63200
63002
|
);
|
|
63201
|
-
const getSummaryCardClassName =
|
|
63003
|
+
const getSummaryCardClassName = React25.useCallback(
|
|
63202
63004
|
(modelKey) => {
|
|
63203
63005
|
const baseClass = "rounded border border-border/30 bg-background/50 p-3 transition-all duration-300";
|
|
63204
63006
|
if (hoveredModel === modelKey) {
|
|
@@ -63213,7 +63015,7 @@ function ComparisonAiModels({
|
|
|
63213
63015
|
},
|
|
63214
63016
|
[hoveredModel]
|
|
63215
63017
|
);
|
|
63216
|
-
const tableContent =
|
|
63018
|
+
const tableContent = React25.useMemo(() => {
|
|
63217
63019
|
if (tableSlot) return tableSlot;
|
|
63218
63020
|
if (!models || !comparisonData || comparisonData.length === 0) return null;
|
|
63219
63021
|
return /* @__PURE__ */ jsx(
|
|
@@ -63291,7 +63093,7 @@ function ComparisonAiModels({
|
|
|
63291
63093
|
getCellClassName,
|
|
63292
63094
|
renderStatusIcon
|
|
63293
63095
|
]);
|
|
63294
|
-
const analysisContent =
|
|
63096
|
+
const analysisContent = React25.useMemo(() => {
|
|
63295
63097
|
if (analysisSlot) return analysisSlot;
|
|
63296
63098
|
if (!models) return null;
|
|
63297
63099
|
return /* @__PURE__ */ jsx("div", { className: cn(
|
|
@@ -63332,14 +63134,14 @@ function ComparisonAiModels({
|
|
|
63332
63134
|
] })
|
|
63333
63135
|
] }) });
|
|
63334
63136
|
}, [analysisSlot, models, analysisClassName, getSummaryCardClassName]);
|
|
63335
|
-
const headingContent =
|
|
63137
|
+
const headingContent = React25.useMemo(() => {
|
|
63336
63138
|
if (!heading) return null;
|
|
63337
63139
|
if (typeof heading === "string") {
|
|
63338
63140
|
return /* @__PURE__ */ jsx("h2", { className: cn("text-3xl font-bold md:text-4xl lg:text-5xl", headingClassName), children: heading });
|
|
63339
63141
|
}
|
|
63340
63142
|
return /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading });
|
|
63341
63143
|
}, [heading, headingClassName]);
|
|
63342
|
-
const descriptionContent =
|
|
63144
|
+
const descriptionContent = React25.useMemo(() => {
|
|
63343
63145
|
if (!description) return null;
|
|
63344
63146
|
if (typeof description === "string") {
|
|
63345
63147
|
return /* @__PURE__ */ jsx("p", { className: cn("mt-4 text-muted-foreground md:text-lg", descriptionClassName), children: description });
|
|
@@ -63389,7 +63191,7 @@ function ComparisonLegacyModern({
|
|
|
63389
63191
|
pattern,
|
|
63390
63192
|
patternOpacity
|
|
63391
63193
|
}) {
|
|
63392
|
-
const columnsContent =
|
|
63194
|
+
const columnsContent = React25.useMemo(() => {
|
|
63393
63195
|
if (columnsSlot) return columnsSlot;
|
|
63394
63196
|
if (!legacyFeatures || legacyFeatures.length === 0 || !modernFeatures || modernFeatures.length === 0)
|
|
63395
63197
|
return null;
|
|
@@ -63401,7 +63203,7 @@ function ComparisonLegacyModern({
|
|
|
63401
63203
|
legacyColumnClassName
|
|
63402
63204
|
), children: [
|
|
63403
63205
|
legacyTitle && (typeof legacyTitle === "string" ? /* @__PURE__ */ jsx("h3", { className: "text-2xl font-medium", children: legacyTitle }) : legacyTitle),
|
|
63404
|
-
/* @__PURE__ */ jsx("ul", { className: "mt-9 space-y-3", children: legacyFeatures.map((feature, idx) => /* @__PURE__ */ jsxs(
|
|
63206
|
+
/* @__PURE__ */ jsx("ul", { className: "mt-9 space-y-3", children: legacyFeatures.map((feature, idx) => /* @__PURE__ */ jsxs(React25.Fragment, { children: [
|
|
63405
63207
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
63406
63208
|
/* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/x", size: 16, className: "my-1.5 shrink-0 text-muted-foreground" }),
|
|
63407
63209
|
/* @__PURE__ */ jsx("li", { className: "text-sm", children: feature.text })
|
|
@@ -63418,7 +63220,7 @@ function ComparisonLegacyModern({
|
|
|
63418
63220
|
),
|
|
63419
63221
|
children: [
|
|
63420
63222
|
modernTitle && (typeof modernTitle === "string" ? /* @__PURE__ */ jsx("h3", { className: "text-2xl font-medium", children: modernTitle }) : modernTitle),
|
|
63421
|
-
/* @__PURE__ */ jsx("ul", { className: "mt-9 space-y-3", children: modernFeatures.map((feature, idx) => /* @__PURE__ */ jsxs(
|
|
63223
|
+
/* @__PURE__ */ jsx("ul", { className: "mt-9 space-y-3", children: modernFeatures.map((feature, idx) => /* @__PURE__ */ jsxs(React25.Fragment, { children: [
|
|
63422
63224
|
/* @__PURE__ */ jsxs("li", { className: "flex items-center gap-2 text-sm", children: [
|
|
63423
63225
|
/* @__PURE__ */ jsx("span", { className: "text-lg", children: feature.emoji }),
|
|
63424
63226
|
feature.text
|
|
@@ -63430,7 +63232,7 @@ function ComparisonLegacyModern({
|
|
|
63430
63232
|
)
|
|
63431
63233
|
] });
|
|
63432
63234
|
}, [columnsSlot, legacyFeatures, modernFeatures, legacyTitle, modernTitle, legacyColumnClassName, modernColumnClassName]);
|
|
63433
|
-
const headingContent =
|
|
63235
|
+
const headingContent = React25.useMemo(() => {
|
|
63434
63236
|
if (!heading && !headingHighlight) return null;
|
|
63435
63237
|
return /* @__PURE__ */ jsxs("h2", { className: cn("text-4xl font-medium md:text-5xl lg:text-7xl", headingClassName), children: [
|
|
63436
63238
|
heading && (typeof heading === "string" ? /* @__PURE__ */ jsxs("span", { className: "text-muted-foreground", children: [
|
|
@@ -63443,7 +63245,7 @@ function ComparisonLegacyModern({
|
|
|
63443
63245
|
] }) : headingHighlight)
|
|
63444
63246
|
] });
|
|
63445
63247
|
}, [heading, headingHighlight, headingClassName, headingHighlightClassName]);
|
|
63446
|
-
const descriptionContent =
|
|
63248
|
+
const descriptionContent = React25.useMemo(() => {
|
|
63447
63249
|
if (!description) return null;
|
|
63448
63250
|
if (typeof description === "string") {
|
|
63449
63251
|
return /* @__PURE__ */ jsx("p", { className: cn("text-lg", descriptionClassName), children: description });
|
|
@@ -63616,7 +63418,7 @@ var NavbarMobileMenu = ({
|
|
|
63616
63418
|
closeIconClassName,
|
|
63617
63419
|
title = "Mobile Navigation"
|
|
63618
63420
|
}) => {
|
|
63619
|
-
|
|
63421
|
+
React25.useEffect(() => {
|
|
63620
63422
|
if (open) {
|
|
63621
63423
|
const originalOverflow = document.body.style.overflow;
|
|
63622
63424
|
document.body.style.overflow = "hidden";
|
|
@@ -63845,7 +63647,7 @@ var NavbarDropdownMenu = ({
|
|
|
63845
63647
|
patternOpacity,
|
|
63846
63648
|
optixFlowConfig
|
|
63847
63649
|
}) => {
|
|
63848
|
-
const [open, setOpen] =
|
|
63650
|
+
const [open, setOpen] = React25.useState(false);
|
|
63849
63651
|
const renderAuthActions = useMemo(() => {
|
|
63850
63652
|
if (authActionsSlot) return authActionsSlot;
|
|
63851
63653
|
if (!authActions || authActions.length === 0) return null;
|
|
@@ -64071,7 +63873,7 @@ var NavbarCenteredMenu = ({
|
|
|
64071
63873
|
patternOpacity,
|
|
64072
63874
|
optixFlowConfig
|
|
64073
63875
|
}) => {
|
|
64074
|
-
const [open, setOpen] =
|
|
63876
|
+
const [open, setOpen] = React25.useState(false);
|
|
64075
63877
|
const renderAuthActions = useMemo(() => {
|
|
64076
63878
|
if (authActionsSlot) return authActionsSlot;
|
|
64077
63879
|
if (!authActions || authActions.length === 0) return null;
|
|
@@ -64211,7 +64013,7 @@ var DesktopMenuItem = ({
|
|
|
64211
64013
|
index,
|
|
64212
64014
|
optixFlowConfig
|
|
64213
64015
|
}) => {
|
|
64214
|
-
const imagesRef =
|
|
64016
|
+
const imagesRef = React25.useRef([]);
|
|
64215
64017
|
const layout = link.layout || "simple-grid";
|
|
64216
64018
|
const handleMouseEnter = (event) => {
|
|
64217
64019
|
const index2 = Number(event.currentTarget.getAttribute("data-index"));
|
|
@@ -65446,7 +65248,7 @@ var NavbarFeatureGrid = ({
|
|
|
65446
65248
|
patternOpacity,
|
|
65447
65249
|
optixFlowConfig
|
|
65448
65250
|
}) => {
|
|
65449
|
-
const [open, setOpen] =
|
|
65251
|
+
const [open, setOpen] = React25.useState(false);
|
|
65450
65252
|
const renderAuthActions = useMemo(() => {
|
|
65451
65253
|
if (authActionsSlot) return authActionsSlot;
|
|
65452
65254
|
if (!authActions || authActions.length === 0) return null;
|
|
@@ -68656,7 +68458,7 @@ var DesktopMenuItem7 = ({
|
|
|
68656
68458
|
if (item.groups && item.groups.length > 0) {
|
|
68657
68459
|
return /* @__PURE__ */ jsxs(NavigationMenuItem, { value: `${index}`, children: [
|
|
68658
68460
|
/* @__PURE__ */ jsx(NavigationMenuTrigger, { children: item.label }),
|
|
68659
|
-
/* @__PURE__ */ jsx(NavigationMenuContent, { className: "p-0", children: /* @__PURE__ */ jsx("div", { className: "flex", children: item.groups.map((group, groupIndex) => /* @__PURE__ */ jsxs(
|
|
68461
|
+
/* @__PURE__ */ jsx(NavigationMenuContent, { className: "p-0", children: /* @__PURE__ */ jsx("div", { className: "flex", children: item.groups.map((group, groupIndex) => /* @__PURE__ */ jsxs(React25.Fragment, { children: [
|
|
68660
68462
|
groupIndex > 0 && /* @__PURE__ */ jsx(
|
|
68661
68463
|
Separator,
|
|
68662
68464
|
{
|
|
@@ -69408,7 +69210,7 @@ var NavbarSimpleLinks = ({
|
|
|
69408
69210
|
const renderNavItems = useMemo(() => {
|
|
69409
69211
|
if (navItemsSlot) return navItemsSlot;
|
|
69410
69212
|
if (!navItems || navItems.length === 0) return null;
|
|
69411
|
-
return navItems.map((item) => /* @__PURE__ */ jsx(
|
|
69213
|
+
return navItems.map((item) => /* @__PURE__ */ jsx(React25.Fragment, { children: /* @__PURE__ */ jsx(NavigationMenuItem, { children: /* @__PURE__ */ jsx(
|
|
69412
69214
|
NavigationMenuLink,
|
|
69413
69215
|
{
|
|
69414
69216
|
"data-nav-item": item.name,
|
|
@@ -74437,7 +74239,7 @@ function PricingFullComparison({
|
|
|
74437
74239
|
resolvedPlanIds[index]
|
|
74438
74240
|
))
|
|
74439
74241
|
] }) }),
|
|
74440
|
-
/* @__PURE__ */ jsx("tbody", { children: categories.map((category) => /* @__PURE__ */ jsxs(
|
|
74242
|
+
/* @__PURE__ */ jsx("tbody", { children: categories.map((category) => /* @__PURE__ */ jsxs(React25.Fragment, { children: [
|
|
74441
74243
|
/* @__PURE__ */ jsx("tr", { className: cn(getNestedCardBg(background), getNestedCardTextColor(background), categoryRowClassName), children: /* @__PURE__ */ jsx(
|
|
74442
74244
|
"td",
|
|
74443
74245
|
{
|
|
@@ -79038,9 +78840,9 @@ function ProcessStickySteps({
|
|
|
79038
78840
|
);
|
|
79039
78841
|
}
|
|
79040
78842
|
var usePrevious = (value) => {
|
|
79041
|
-
const [prev, setPrev] =
|
|
79042
|
-
const ref =
|
|
79043
|
-
|
|
78843
|
+
const [prev, setPrev] = React25.useState(void 0);
|
|
78844
|
+
const ref = React25.useRef(value);
|
|
78845
|
+
React25.useEffect(() => {
|
|
79044
78846
|
setPrev(ref.current);
|
|
79045
78847
|
ref.current = value;
|
|
79046
78848
|
}, [value]);
|
|
@@ -79053,12 +78855,12 @@ var ProcessCard = ({
|
|
|
79053
78855
|
itemClassName,
|
|
79054
78856
|
background
|
|
79055
78857
|
}) => {
|
|
79056
|
-
const ref =
|
|
78858
|
+
const ref = React25.useRef(null);
|
|
79057
78859
|
const itemInView = useInView(ref, {
|
|
79058
78860
|
amount: 0,
|
|
79059
78861
|
margin: "0px 0px -60% 0px"
|
|
79060
78862
|
});
|
|
79061
|
-
|
|
78863
|
+
React25.useEffect(() => {
|
|
79062
78864
|
if (itemInView) {
|
|
79063
78865
|
setActive(index);
|
|
79064
78866
|
}
|
|
@@ -79108,7 +78910,7 @@ function ProcessScrollImage({
|
|
|
79108
78910
|
ctaText,
|
|
79109
78911
|
ctaUrl
|
|
79110
78912
|
}) {
|
|
79111
|
-
const [active, setActive] =
|
|
78913
|
+
const [active, setActive] = React25.useState(0);
|
|
79112
78914
|
const previousActive = usePrevious(active);
|
|
79113
78915
|
const resolvedHeading = title ?? heading;
|
|
79114
78916
|
const resolvedActions = actions ?? (ctaText && ctaUrl ? [
|
|
@@ -79292,7 +79094,7 @@ var ProcessCard2 = ({
|
|
|
79292
79094
|
hoverImageClassName,
|
|
79293
79095
|
background
|
|
79294
79096
|
}) => {
|
|
79295
|
-
const [isHovered, setIsHovered] =
|
|
79097
|
+
const [isHovered, setIsHovered] = React25.useState(false);
|
|
79296
79098
|
const titleText = typeof step.title === "string" ? step.title : `Step ${index + 1}`;
|
|
79297
79099
|
return /* @__PURE__ */ jsxs(
|
|
79298
79100
|
"li",
|
|
@@ -79616,7 +79418,7 @@ function ProcessExpandableTimeline({
|
|
|
79616
79418
|
// Backwards compatibility
|
|
79617
79419
|
title
|
|
79618
79420
|
}) {
|
|
79619
|
-
const [expandedIndex, setExpandedIndex] =
|
|
79421
|
+
const [expandedIndex, setExpandedIndex] = React25.useState(null);
|
|
79620
79422
|
const resolvedHeading = title ?? heading;
|
|
79621
79423
|
const toggleExpand = (index) => {
|
|
79622
79424
|
setExpandedIndex(expandedIndex === index ? null : index);
|
|
@@ -84387,7 +84189,7 @@ function ListAchievementsShowcase({
|
|
|
84387
84189
|
if (!items || items.length === 0) return null;
|
|
84388
84190
|
return /* @__PURE__ */ jsxs("div", { className: cn("flex flex-col", itemsClassName), children: [
|
|
84389
84191
|
/* @__PURE__ */ jsx(Separator, {}),
|
|
84390
|
-
items.map((item, index) => /* @__PURE__ */ jsxs(
|
|
84192
|
+
items.map((item, index) => /* @__PURE__ */ jsxs(React25.Fragment, { children: [
|
|
84391
84193
|
/* @__PURE__ */ jsxs(
|
|
84392
84194
|
"div",
|
|
84393
84195
|
{
|
|
@@ -84507,7 +84309,7 @@ function ListCareerTimeline({
|
|
|
84507
84309
|
const renderExperiences = useMemo(() => {
|
|
84508
84310
|
if (experiencesSlot) return experiencesSlot;
|
|
84509
84311
|
if (!experiences || experiences.length === 0) return null;
|
|
84510
|
-
return /* @__PURE__ */ jsx("div", { className: experiencesClassName, children: experiences.map((experience, idx) => /* @__PURE__ */ jsxs(
|
|
84312
|
+
return /* @__PURE__ */ jsx("div", { className: experiencesClassName, children: experiences.map((experience, idx) => /* @__PURE__ */ jsxs(React25.Fragment, { children: [
|
|
84511
84313
|
/* @__PURE__ */ jsx(Separator, {}),
|
|
84512
84314
|
/* @__PURE__ */ jsxs(
|
|
84513
84315
|
"div",
|
|
@@ -84528,7 +84330,7 @@ function ListCareerTimeline({
|
|
|
84528
84330
|
const renderAwards = useMemo(() => {
|
|
84529
84331
|
if (awardsSlot) return awardsSlot;
|
|
84530
84332
|
if (!awards || awards.length === 0) return null;
|
|
84531
|
-
return /* @__PURE__ */ jsx("div", { className: awardsClassName, children: awards.map((award, idx) => /* @__PURE__ */ jsxs(
|
|
84333
|
+
return /* @__PURE__ */ jsx("div", { className: awardsClassName, children: awards.map((award, idx) => /* @__PURE__ */ jsxs(React25.Fragment, { children: [
|
|
84532
84334
|
/* @__PURE__ */ jsx(Separator, {}),
|
|
84533
84335
|
/* @__PURE__ */ jsxs(
|
|
84534
84336
|
"div",
|
|
@@ -84663,7 +84465,7 @@ function ListMetricsDashboard({
|
|
|
84663
84465
|
activeCategory: controlledActiveCategory,
|
|
84664
84466
|
onActiveCategoryChange
|
|
84665
84467
|
}) {
|
|
84666
|
-
const [internalActiveTab, setInternalActiveTab] =
|
|
84468
|
+
const [internalActiveTab, setInternalActiveTab] = React25.useState("all");
|
|
84667
84469
|
const activeTab = controlledActiveCategory ?? internalActiveTab;
|
|
84668
84470
|
const handleTabChange = (value) => {
|
|
84669
84471
|
if (onActiveCategoryChange) {
|
|
@@ -85147,7 +84949,7 @@ function ListSearchableGrid({
|
|
|
85147
84949
|
searchTerm: controlledSearchTerm,
|
|
85148
84950
|
onSearchTermChange
|
|
85149
84951
|
}) {
|
|
85150
|
-
const [internalSearchTerm, setInternalSearchTerm] =
|
|
84952
|
+
const [internalSearchTerm, setInternalSearchTerm] = React25.useState("");
|
|
85151
84953
|
const searchTerm = controlledSearchTerm ?? internalSearchTerm;
|
|
85152
84954
|
const handleSearchChange = (value) => {
|
|
85153
84955
|
if (onSearchTermChange) {
|
|
@@ -85156,7 +84958,7 @@ function ListSearchableGrid({
|
|
|
85156
84958
|
setInternalSearchTerm(value);
|
|
85157
84959
|
}
|
|
85158
84960
|
};
|
|
85159
|
-
const filteredItems =
|
|
84961
|
+
const filteredItems = React25.useMemo(() => {
|
|
85160
84962
|
if (!searchTerm) {
|
|
85161
84963
|
return items ?? [];
|
|
85162
84964
|
}
|
|
@@ -85319,7 +85121,7 @@ function ListSearchableGrid({
|
|
|
85319
85121
|
}
|
|
85320
85122
|
);
|
|
85321
85123
|
}
|
|
85322
|
-
var { useMemo:
|
|
85124
|
+
var { useMemo: useMemo441 } = React25;
|
|
85323
85125
|
function OfferModalNewsletterDiscount({
|
|
85324
85126
|
title,
|
|
85325
85127
|
emailPlaceholder,
|
|
@@ -85387,7 +85189,7 @@ function OfferModalNewsletterDiscount({
|
|
|
85387
85189
|
});
|
|
85388
85190
|
const formMethod = formConfig?.method?.toLowerCase() === "get" ? "get" : "post";
|
|
85389
85191
|
const dialogProps = open !== void 0 ? { open, onOpenChange } : { defaultOpen };
|
|
85390
|
-
const renderCloseButton =
|
|
85192
|
+
const renderCloseButton = useMemo441(() => {
|
|
85391
85193
|
if (closeButtonSlot) return closeButtonSlot;
|
|
85392
85194
|
if (!closeButtonText) return null;
|
|
85393
85195
|
return /* @__PURE__ */ jsx("div", { className: "absolute end-1.5 top-1.5", children: /* @__PURE__ */ jsx(DialogClose, { asChild: true, children: /* @__PURE__ */ jsx(
|
|
@@ -85401,12 +85203,12 @@ function OfferModalNewsletterDiscount({
|
|
|
85401
85203
|
}
|
|
85402
85204
|
) }) });
|
|
85403
85205
|
}, [closeButtonSlot, closeButtonText, closeClassName]);
|
|
85404
|
-
const renderHeader =
|
|
85206
|
+
const renderHeader = useMemo441(() => {
|
|
85405
85207
|
if (headerSlot) return headerSlot;
|
|
85406
85208
|
if (!title) return null;
|
|
85407
85209
|
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 }) });
|
|
85408
85210
|
}, [headerSlot, title, headerClassName, titleClassName]);
|
|
85409
|
-
const renderForm =
|
|
85211
|
+
const renderForm = useMemo441(() => {
|
|
85410
85212
|
if (formSlot) return formSlot;
|
|
85411
85213
|
return /* @__PURE__ */ jsxs(
|
|
85412
85214
|
Form,
|
|
@@ -85468,7 +85270,7 @@ function OfferModalNewsletterDiscount({
|
|
|
85468
85270
|
}
|
|
85469
85271
|
) });
|
|
85470
85272
|
}
|
|
85471
|
-
var { useMemo:
|
|
85273
|
+
var { useMemo: useMemo442 } = React25;
|
|
85472
85274
|
function OfferModalMembershipImage({
|
|
85473
85275
|
overline,
|
|
85474
85276
|
title,
|
|
@@ -85545,7 +85347,7 @@ function OfferModalMembershipImage({
|
|
|
85545
85347
|
});
|
|
85546
85348
|
const formMethod = formConfig?.method?.toLowerCase() === "get" ? "get" : "post";
|
|
85547
85349
|
const dialogProps = open !== void 0 ? { open, onOpenChange } : { defaultOpen };
|
|
85548
|
-
const renderImage =
|
|
85350
|
+
const renderImage = useMemo442(() => {
|
|
85549
85351
|
if (imageSlot) return imageSlot;
|
|
85550
85352
|
if (!image) return null;
|
|
85551
85353
|
return /* @__PURE__ */ jsx("div", { className: cn("max-h-[290px] h-full overflow-hidden max-lg:hidden", imageWrapperClassName), children: /* @__PURE__ */ jsx(
|
|
@@ -85558,7 +85360,7 @@ function OfferModalMembershipImage({
|
|
|
85558
85360
|
}
|
|
85559
85361
|
) });
|
|
85560
85362
|
}, [imageSlot, image, imageWrapperClassName, imageClassName, optixFlowConfig]);
|
|
85561
|
-
const renderCloseButton =
|
|
85363
|
+
const renderCloseButton = useMemo442(() => {
|
|
85562
85364
|
if (closeButtonSlot) return closeButtonSlot;
|
|
85563
85365
|
return /* @__PURE__ */ jsx("div", { className: "absolute -end-px -top-px z-10", children: /* @__PURE__ */ jsx(DialogClose, { asChild: true, children: /* @__PURE__ */ jsx(
|
|
85564
85366
|
Pressable,
|
|
@@ -85574,7 +85376,7 @@ function OfferModalMembershipImage({
|
|
|
85574
85376
|
}
|
|
85575
85377
|
) }) });
|
|
85576
85378
|
}, [closeButtonSlot, closeClassName]);
|
|
85577
|
-
const renderForm =
|
|
85379
|
+
const renderForm = useMemo442(() => {
|
|
85578
85380
|
if (formSlot) return formSlot;
|
|
85579
85381
|
return /* @__PURE__ */ jsxs(
|
|
85580
85382
|
Form,
|
|
@@ -85637,7 +85439,7 @@ function OfferModalMembershipImage({
|
|
|
85637
85439
|
}
|
|
85638
85440
|
);
|
|
85639
85441
|
}, [formSlot, form, formConfig, formMethod, emailPlaceholder, inputClassName, submitClassName, buttonText, formClassName]);
|
|
85640
|
-
const renderFooter =
|
|
85442
|
+
const renderFooter = useMemo442(() => {
|
|
85641
85443
|
if (footerSlot) return footerSlot;
|
|
85642
85444
|
if (!description) return null;
|
|
85643
85445
|
return /* @__PURE__ */ jsx(DialogFooter, { className: footerClassName, children: /* @__PURE__ */ jsx(DialogDescription, { className: cn("text-muted-foreground text-center text-xs leading-relaxed", descriptionClassName), children: description }) });
|
|
@@ -85757,7 +85559,7 @@ function SheetDescription({
|
|
|
85757
85559
|
}
|
|
85758
85560
|
);
|
|
85759
85561
|
}
|
|
85760
|
-
var { useMemo:
|
|
85562
|
+
var { useMemo: useMemo443 } = React25;
|
|
85761
85563
|
function OfferModalSheetNewsletter({
|
|
85762
85564
|
logo,
|
|
85763
85565
|
logoSlot,
|
|
@@ -85840,7 +85642,7 @@ function OfferModalSheetNewsletter({
|
|
|
85840
85642
|
});
|
|
85841
85643
|
const formMethod = formConfig?.method?.toLowerCase() === "get" ? "get" : "post";
|
|
85842
85644
|
const sheetProps = open !== void 0 ? { open, onOpenChange } : { defaultOpen };
|
|
85843
|
-
const renderLogo =
|
|
85645
|
+
const renderLogo = useMemo443(() => {
|
|
85844
85646
|
if (logoSlot) return logoSlot;
|
|
85845
85647
|
if (!logo) return null;
|
|
85846
85648
|
const logoSrc = typeof logo.src === "string" ? logo.src : logo.src.light;
|
|
@@ -85854,7 +85656,7 @@ function OfferModalSheetNewsletter({
|
|
|
85854
85656
|
}
|
|
85855
85657
|
);
|
|
85856
85658
|
}, [logoSlot, logo, logoClassName, optixFlowConfig]);
|
|
85857
|
-
const renderHeader =
|
|
85659
|
+
const renderHeader = useMemo443(() => {
|
|
85858
85660
|
if (headerSlot) return headerSlot;
|
|
85859
85661
|
return /* @__PURE__ */ jsxs(SheetHeader, { className: cn("gap-8 p-0", headerClassName), children: [
|
|
85860
85662
|
renderLogo,
|
|
@@ -85864,7 +85666,7 @@ function OfferModalSheetNewsletter({
|
|
|
85864
85666
|
] })
|
|
85865
85667
|
] });
|
|
85866
85668
|
}, [headerSlot, renderLogo, headerClassName, title, titleClassName, description, descriptionClassName]);
|
|
85867
|
-
const renderForm =
|
|
85669
|
+
const renderForm = useMemo443(() => {
|
|
85868
85670
|
if (formSlot) return formSlot;
|
|
85869
85671
|
return /* @__PURE__ */ jsx(
|
|
85870
85672
|
Form,
|
|
@@ -85912,7 +85714,7 @@ function OfferModalSheetNewsletter({
|
|
|
85912
85714
|
}
|
|
85913
85715
|
);
|
|
85914
85716
|
}, [formSlot, form, formConfig, formMethod, emailPlaceholder, inputClassName, submitClassName, buttonText, formClassName]);
|
|
85915
|
-
const renderLegal =
|
|
85717
|
+
const renderLegal = useMemo443(() => {
|
|
85916
85718
|
if (legalSlot) return legalSlot;
|
|
85917
85719
|
if (!termsUrl || !termsText || !privacyUrl || !privacyText) return null;
|
|
85918
85720
|
return /* @__PURE__ */ jsxs("p", { className: cn("text-muted-foreground text-xs", legalClassName), children: [
|
|
@@ -85926,7 +85728,7 @@ function OfferModalSheetNewsletter({
|
|
|
85926
85728
|
"."
|
|
85927
85729
|
] });
|
|
85928
85730
|
}, [legalSlot, termsUrl, termsText, privacyUrl, privacyText, legalClassName]);
|
|
85929
|
-
const renderImage =
|
|
85731
|
+
const renderImage = useMemo443(() => {
|
|
85930
85732
|
if (imageSlot) return imageSlot;
|
|
85931
85733
|
if (!image) return null;
|
|
85932
85734
|
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(
|
|
@@ -86506,10 +86308,10 @@ function ProjectDetailSidebarNavigation(props) {
|
|
|
86506
86308
|
heroImageClassName,
|
|
86507
86309
|
metadataClassName
|
|
86508
86310
|
} = props;
|
|
86509
|
-
const [activeSection, setActiveSection] =
|
|
86311
|
+
const [activeSection, setActiveSection] = React25.useState(
|
|
86510
86312
|
sections?.[0]?.id || ""
|
|
86511
86313
|
);
|
|
86512
|
-
|
|
86314
|
+
React25.useEffect(() => {
|
|
86513
86315
|
const handleScroll = () => {
|
|
86514
86316
|
const sectionElements = sections?.map(
|
|
86515
86317
|
(section) => document.getElementById(section.id)
|
|
@@ -89369,7 +89171,7 @@ function ProjectDetailTabbedCaseStudy(props) {
|
|
|
89369
89171
|
testimonialClassName,
|
|
89370
89172
|
toolsClassName
|
|
89371
89173
|
} = props;
|
|
89372
|
-
const [activeTab, setActiveTab] =
|
|
89174
|
+
const [activeTab, setActiveTab] = React25.useState(tabs?.[0]?.id || "");
|
|
89373
89175
|
const renderedBackAction = useMemo(() => {
|
|
89374
89176
|
if (backActionSlot) return backActionSlot;
|
|
89375
89177
|
if (!backAction) return null;
|
|
@@ -89757,7 +89559,7 @@ function RevealImage({
|
|
|
89757
89559
|
index,
|
|
89758
89560
|
optixFlowConfig
|
|
89759
89561
|
}) {
|
|
89760
|
-
const ref =
|
|
89562
|
+
const ref = React25.useRef(null);
|
|
89761
89563
|
const { scrollYProgress } = useScroll({
|
|
89762
89564
|
target: ref,
|
|
89763
89565
|
offset: ["start end", "end start"]
|
|
@@ -89952,7 +89754,7 @@ function ParallaxSection({
|
|
|
89952
89754
|
index,
|
|
89953
89755
|
optixFlowConfig
|
|
89954
89756
|
}) {
|
|
89955
|
-
const ref =
|
|
89757
|
+
const ref = React25.useRef(null);
|
|
89956
89758
|
const { scrollYProgress } = useScroll({
|
|
89957
89759
|
target: ref,
|
|
89958
89760
|
offset: ["start end", "end start"]
|
|
@@ -90025,7 +89827,7 @@ function ProjectDetailParallaxScroll(props) {
|
|
|
90025
89827
|
heroImageClassName,
|
|
90026
89828
|
sectionsClassName
|
|
90027
89829
|
} = props;
|
|
90028
|
-
const heroRef =
|
|
89830
|
+
const heroRef = React25.useRef(null);
|
|
90029
89831
|
const { scrollYProgress } = useScroll({
|
|
90030
89832
|
target: heroRef,
|
|
90031
89833
|
offset: ["start start", "end start"]
|
|
@@ -90563,7 +90365,7 @@ function IndustriesExpandableShowcase({
|
|
|
90563
90365
|
patternClassName,
|
|
90564
90366
|
optixFlowConfig
|
|
90565
90367
|
}) {
|
|
90566
|
-
const [activeContractor, setActiveContractor] =
|
|
90368
|
+
const [activeContractor, setActiveContractor] = React25.useState(
|
|
90567
90369
|
contractors?.[0]?.id || ""
|
|
90568
90370
|
);
|
|
90569
90371
|
const handleContractorHover = (contractorId) => {
|
|
@@ -91216,7 +91018,7 @@ function ResourceDetailDocumentSidebar({
|
|
|
91216
91018
|
}) {
|
|
91217
91019
|
const renderedBreadcrumbs = useMemo(() => {
|
|
91218
91020
|
if (breadcrumbsSlot) return breadcrumbsSlot;
|
|
91219
|
-
return /* @__PURE__ */ jsx(Breadcrumb, { className: breadcrumbsClassName, children: /* @__PURE__ */ jsx(BreadcrumbList, { children: breadcrumbs?.map((crumb, index) => /* @__PURE__ */ jsxs(
|
|
91021
|
+
return /* @__PURE__ */ jsx(Breadcrumb, { className: breadcrumbsClassName, children: /* @__PURE__ */ jsx(BreadcrumbList, { children: breadcrumbs?.map((crumb, index) => /* @__PURE__ */ jsxs(React25.Fragment, { children: [
|
|
91220
91022
|
/* @__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 }) }),
|
|
91221
91023
|
index < (breadcrumbs?.length || 0) - 1 && /* @__PURE__ */ jsx(BreadcrumbSeparator, {})
|
|
91222
91024
|
] }, index)) }) });
|
|
@@ -94617,8 +94419,8 @@ function ServicesListTableHover({
|
|
|
94617
94419
|
patternOpacity,
|
|
94618
94420
|
optixFlowConfig
|
|
94619
94421
|
}) {
|
|
94620
|
-
const [hoveredIndex, setHoveredIndex] =
|
|
94621
|
-
const [mousePosition, setMousePosition] =
|
|
94422
|
+
const [hoveredIndex, setHoveredIndex] = React25.useState(null);
|
|
94423
|
+
const [mousePosition, setMousePosition] = React25.useState({ x: 0, y: 0 });
|
|
94622
94424
|
const handleMouseMove = (e) => {
|
|
94623
94425
|
setMousePosition({ x: e.clientX, y: e.clientY });
|
|
94624
94426
|
};
|
|
@@ -94868,7 +94670,7 @@ function ServicesListStickyImage({
|
|
|
94868
94670
|
patternOpacity,
|
|
94869
94671
|
optixFlowConfig
|
|
94870
94672
|
}) {
|
|
94871
|
-
const [activeIndex, setActiveIndex] =
|
|
94673
|
+
const [activeIndex, setActiveIndex] = React25.useState(0);
|
|
94872
94674
|
const renderServices = () => {
|
|
94873
94675
|
if (servicesSlot) return servicesSlot;
|
|
94874
94676
|
if (!services || services.length === 0) return null;
|
|
@@ -95120,8 +94922,8 @@ function ServicesListVideoShowcase({
|
|
|
95120
94922
|
patternOpacity,
|
|
95121
94923
|
optixFlowConfig
|
|
95122
94924
|
}) {
|
|
95123
|
-
const [playingIndex, setPlayingIndex] =
|
|
95124
|
-
const videoRefs =
|
|
94925
|
+
const [playingIndex, setPlayingIndex] = React25.useState(null);
|
|
94926
|
+
const videoRefs = React25.useRef([]);
|
|
95125
94927
|
const handleMouseEnter = (index) => {
|
|
95126
94928
|
setPlayingIndex(index);
|
|
95127
94929
|
videoRefs.current[index]?.play();
|
|
@@ -98414,7 +98216,7 @@ function StatsCircularProgress({
|
|
|
98414
98216
|
statInfoClassName
|
|
98415
98217
|
}) {
|
|
98416
98218
|
const effectiveDefaultCategory = defaultCategory || (categories && categories.length > 0 ? categories[0].id : "");
|
|
98417
|
-
const [category, setCategory] =
|
|
98219
|
+
const [category, setCategory] = React25.useState(effectiveDefaultCategory);
|
|
98418
98220
|
const badgeContent = useMemo(() => {
|
|
98419
98221
|
if (badgeSlot) return badgeSlot;
|
|
98420
98222
|
if (!badge) return null;
|
|
@@ -98707,8 +98509,8 @@ function StatsCardGroup({
|
|
|
98707
98509
|
);
|
|
98708
98510
|
}
|
|
98709
98511
|
function useAnimatedCounter(endValue, duration = 2e3, isVisible) {
|
|
98710
|
-
const [count, setCount] =
|
|
98711
|
-
|
|
98512
|
+
const [count, setCount] = React25.useState(0);
|
|
98513
|
+
React25.useEffect(() => {
|
|
98712
98514
|
if (!isVisible) return;
|
|
98713
98515
|
let startTime = null;
|
|
98714
98516
|
let animationFrame;
|
|
@@ -98796,9 +98598,9 @@ function StatsAnimatedCounter({
|
|
|
98796
98598
|
statLabelClassName,
|
|
98797
98599
|
statIconClassName
|
|
98798
98600
|
}) {
|
|
98799
|
-
const [isVisible, setIsVisible] =
|
|
98800
|
-
const sectionRef =
|
|
98801
|
-
|
|
98601
|
+
const [isVisible, setIsVisible] = React25.useState(false);
|
|
98602
|
+
const sectionRef = React25.useRef(null);
|
|
98603
|
+
React25.useEffect(() => {
|
|
98802
98604
|
const observer = new IntersectionObserver(
|
|
98803
98605
|
([entry]) => {
|
|
98804
98606
|
if (entry.isIntersecting) {
|
|
@@ -98886,8 +98688,8 @@ function StatsAnimatedCounter({
|
|
|
98886
98688
|
);
|
|
98887
98689
|
}
|
|
98888
98690
|
function useNumberTicker(endValue, duration = 2500, isVisible, decimals = 0) {
|
|
98889
|
-
const [displayValue, setDisplayValue] =
|
|
98890
|
-
|
|
98691
|
+
const [displayValue, setDisplayValue] = React25.useState("0");
|
|
98692
|
+
React25.useEffect(() => {
|
|
98891
98693
|
if (!isVisible) return;
|
|
98892
98694
|
let startTime = null;
|
|
98893
98695
|
let animationFrame;
|
|
@@ -99002,9 +98804,9 @@ function StatsNumberTicker({
|
|
|
99002
98804
|
statLabelClassName,
|
|
99003
98805
|
statDescriptionClassName
|
|
99004
98806
|
}) {
|
|
99005
|
-
const [isVisible, setIsVisible] =
|
|
99006
|
-
const sectionRef =
|
|
99007
|
-
|
|
98807
|
+
const [isVisible, setIsVisible] = React25.useState(false);
|
|
98808
|
+
const sectionRef = React25.useRef(null);
|
|
98809
|
+
React25.useEffect(() => {
|
|
99008
98810
|
const observer = new IntersectionObserver(
|
|
99009
98811
|
([entry]) => {
|
|
99010
98812
|
if (entry.isIntersecting) {
|
|
@@ -99263,9 +99065,9 @@ function StatsBarComparison({
|
|
|
99263
99065
|
barValueClassName,
|
|
99264
99066
|
barTrackClassName
|
|
99265
99067
|
}) {
|
|
99266
|
-
const [isVisible, setIsVisible] =
|
|
99267
|
-
const sectionRef =
|
|
99268
|
-
|
|
99068
|
+
const [isVisible, setIsVisible] = React25.useState(!animate);
|
|
99069
|
+
const sectionRef = React25.useRef(null);
|
|
99070
|
+
React25.useEffect(() => {
|
|
99269
99071
|
if (!animate) return;
|
|
99270
99072
|
const observer = new IntersectionObserver(
|
|
99271
99073
|
([entry]) => {
|
|
@@ -99443,7 +99245,7 @@ function TimelineVerticalIconDashed({
|
|
|
99443
99245
|
"mx-auto flex flex-col items-center justify-center text-center sm:max-w-xl",
|
|
99444
99246
|
stepsClassName
|
|
99445
99247
|
),
|
|
99446
|
-
children: steps.map((step, index) => /* @__PURE__ */ jsxs(
|
|
99248
|
+
children: steps.map((step, index) => /* @__PURE__ */ jsxs(React25.Fragment, { children: [
|
|
99447
99249
|
/* @__PURE__ */ jsxs("div", { className: cn("flex flex-col items-center", stepClassName), children: [
|
|
99448
99250
|
/* @__PURE__ */ jsx(
|
|
99449
99251
|
"span",
|
|
@@ -99710,7 +99512,7 @@ function TimelineTwoColumnFeatured({
|
|
|
99710
99512
|
style,
|
|
99711
99513
|
optixFlowConfig
|
|
99712
99514
|
}) {
|
|
99713
|
-
const renderActions =
|
|
99515
|
+
const renderActions = React25.useMemo(() => {
|
|
99714
99516
|
if (actionsSlot) {
|
|
99715
99517
|
return actionsSlot;
|
|
99716
99518
|
}
|
|
@@ -99838,7 +99640,7 @@ function TimelineTwoColumnFeatured({
|
|
|
99838
99640
|
}
|
|
99839
99641
|
);
|
|
99840
99642
|
}
|
|
99841
|
-
var DiagonalPattern =
|
|
99643
|
+
var DiagonalPattern = React25.memo(({
|
|
99842
99644
|
className,
|
|
99843
99645
|
patternOpacity = 0.15
|
|
99844
99646
|
}) => {
|
|
@@ -99877,7 +99679,7 @@ function TimelineAlternatingDiagonal({
|
|
|
99877
99679
|
style,
|
|
99878
99680
|
optixFlowConfig
|
|
99879
99681
|
}) {
|
|
99880
|
-
const renderedBadge =
|
|
99682
|
+
const renderedBadge = React25.useMemo(() => {
|
|
99881
99683
|
if (badgeSlot) {
|
|
99882
99684
|
return badgeSlot;
|
|
99883
99685
|
}
|
|
@@ -100255,7 +100057,7 @@ function TimelineProductivityList({
|
|
|
100255
100057
|
}
|
|
100256
100058
|
);
|
|
100257
100059
|
}
|
|
100258
|
-
var ProcessBar =
|
|
100060
|
+
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: [
|
|
100259
100061
|
/* @__PURE__ */ jsx("div", { className: "flex flex-col items-center", children: /* @__PURE__ */ jsx(
|
|
100260
100062
|
motion.div,
|
|
100261
100063
|
{
|
|
@@ -100282,7 +100084,7 @@ var ProcessBar = React28.memo(({ currentStep, steps }) => /* @__PURE__ */ jsx("d
|
|
|
100282
100084
|
)
|
|
100283
100085
|
] })
|
|
100284
100086
|
] }, index)) }) }));
|
|
100285
|
-
var StepperContent =
|
|
100087
|
+
var StepperContent = React25.memo(({ step, optixFlowConfig, imageClassName, descriptionClassName, background }) => {
|
|
100286
100088
|
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: [
|
|
100287
100089
|
/* @__PURE__ */ jsx(
|
|
100288
100090
|
motion.div,
|
|
@@ -100315,7 +100117,7 @@ var StepperContent = React28.memo(({ step, optixFlowConfig, imageClassName, desc
|
|
|
100315
100117
|
)
|
|
100316
100118
|
] });
|
|
100317
100119
|
});
|
|
100318
|
-
var NavButtons =
|
|
100120
|
+
var NavButtons = React25.memo(({ handlePrev, handleNext }) => /* @__PURE__ */ jsxs("div", { className: "flex w-full justify-end gap-3 tracking-tight", children: [
|
|
100319
100121
|
/* @__PURE__ */ jsxs(
|
|
100320
100122
|
Pressable,
|
|
100321
100123
|
{
|
|
@@ -100366,10 +100168,10 @@ function TimelineStepperAnimated({
|
|
|
100366
100168
|
}) {
|
|
100367
100169
|
const safeInitialStep = (steps?.length ?? 0) > 0 ? Math.max(0, Math.min(initialStep ?? 0, (steps?.length ?? 1) - 1)) : 0;
|
|
100368
100170
|
const [currentStep, setCurrentStep] = useState(safeInitialStep);
|
|
100369
|
-
const handleNext =
|
|
100171
|
+
const handleNext = React25.useCallback(() => {
|
|
100370
100172
|
setCurrentStep((prev) => Math.min(prev + 1, (steps?.length ?? 1) - 1));
|
|
100371
100173
|
}, [steps?.length]);
|
|
100372
|
-
const handlePrev =
|
|
100174
|
+
const handlePrev = React25.useCallback(() => {
|
|
100373
100175
|
setCurrentStep((prev) => Math.max(prev - 1, 0));
|
|
100374
100176
|
}, []);
|
|
100375
100177
|
const safeCurrentStep = (steps?.length ?? 0) > 0 ? Math.max(0, Math.min(currentStep, (steps?.length ?? 1) - 1)) : 0;
|
|
@@ -101078,7 +100880,7 @@ function TimelineTabbedPhases({
|
|
|
101078
100880
|
style,
|
|
101079
100881
|
optixFlowConfig
|
|
101080
100882
|
}) {
|
|
101081
|
-
const renderDownloadButton =
|
|
100883
|
+
const renderDownloadButton = React25.useMemo(() => {
|
|
101082
100884
|
if (downloadSlot) {
|
|
101083
100885
|
return downloadSlot;
|
|
101084
100886
|
}
|
|
@@ -101298,7 +101100,7 @@ function TimelineProductLaunch({
|
|
|
101298
101100
|
id,
|
|
101299
101101
|
style
|
|
101300
101102
|
}) {
|
|
101301
|
-
const renderCta =
|
|
101103
|
+
const renderCta = React25.useMemo(() => {
|
|
101302
101104
|
if (ctaSlot) {
|
|
101303
101105
|
return ctaSlot;
|
|
101304
101106
|
}
|
|
@@ -101763,9 +101565,9 @@ function LinkTreeBlock({
|
|
|
101763
101565
|
}) {
|
|
101764
101566
|
const resolvedBackground = background;
|
|
101765
101567
|
const resolvedPattern = pattern ?? backgroundPattern;
|
|
101766
|
-
const [lightboxOpen, setLightboxOpen] =
|
|
101767
|
-
const [lightboxIndex, setLightboxIndex] =
|
|
101768
|
-
const lightboxItems =
|
|
101568
|
+
const [lightboxOpen, setLightboxOpen] = React25.useState(false);
|
|
101569
|
+
const [lightboxIndex, setLightboxIndex] = React25.useState(0);
|
|
101570
|
+
const lightboxItems = React25.useMemo(() => {
|
|
101769
101571
|
if (!mediaGallery || mediaGallery.length === 0) return [];
|
|
101770
101572
|
return mediaGallery.slice(0, mediaGalleryLimit).map((item, index) => ({
|
|
101771
101573
|
id: item.id ?? `media-${index}`,
|
|
@@ -101777,11 +101579,11 @@ function LinkTreeBlock({
|
|
|
101777
101579
|
share: true
|
|
101778
101580
|
}));
|
|
101779
101581
|
}, [mediaGallery, mediaGalleryLimit]);
|
|
101780
|
-
const handleMediaClick =
|
|
101582
|
+
const handleMediaClick = React25.useCallback((index) => {
|
|
101781
101583
|
setLightboxIndex(index);
|
|
101782
101584
|
setLightboxOpen(true);
|
|
101783
101585
|
}, []);
|
|
101784
|
-
const handleLightboxClose =
|
|
101586
|
+
const handleLightboxClose = React25.useCallback(() => {
|
|
101785
101587
|
setLightboxOpen(false);
|
|
101786
101588
|
}, []);
|
|
101787
101589
|
const resolveImage = (value, fallbackAlt) => {
|
|
@@ -101793,7 +101595,7 @@ function LinkTreeBlock({
|
|
|
101793
101595
|
};
|
|
101794
101596
|
const nameForAlt = typeof brandName === "string" ? brandName : "Brand avatar";
|
|
101795
101597
|
const resolvedAvatar = resolveImage(brandAvatar || brandLogo, nameForAlt) || resolveImage(blockBrandedIconsAndPlaceholders.avatar1, nameForAlt);
|
|
101796
|
-
const renderBrandHeader =
|
|
101598
|
+
const renderBrandHeader = React25.useMemo(() => {
|
|
101797
101599
|
if (brandSlot) return brandSlot;
|
|
101798
101600
|
return /* @__PURE__ */ jsxs(
|
|
101799
101601
|
"div",
|
|
@@ -101880,7 +101682,7 @@ function LinkTreeBlock({
|
|
|
101880
101682
|
brandTagline,
|
|
101881
101683
|
taglineClassName
|
|
101882
101684
|
]);
|
|
101883
|
-
const renderLinks =
|
|
101685
|
+
const renderLinks = React25.useMemo(() => {
|
|
101884
101686
|
if (linksSlot) return linksSlot;
|
|
101885
101687
|
if (!links || links.length === 0) return null;
|
|
101886
101688
|
return /* @__PURE__ */ jsx("div", { className: cn("space-y-3", linksClassName), children: links.map((link, index) => {
|
|
@@ -101997,7 +101799,7 @@ function LinkTreeBlock({
|
|
|
101997
101799
|
linkBadgeClassName,
|
|
101998
101800
|
linkChevronClassName
|
|
101999
101801
|
]);
|
|
102000
|
-
const renderMediaGallery =
|
|
101802
|
+
const renderMediaGallery = React25.useMemo(() => {
|
|
102001
101803
|
if (mediaGallerySlot) return mediaGallerySlot;
|
|
102002
101804
|
if (!mediaGallery || mediaGallery.length === 0) return null;
|
|
102003
101805
|
const items = mediaGallery.slice(0, mediaGalleryLimit);
|
|
@@ -102111,7 +101913,7 @@ function LinkTreeBlock({
|
|
|
102111
101913
|
mediaGalleryOverlayClassName,
|
|
102112
101914
|
mediaGalleryPlayIconClassName
|
|
102113
101915
|
]);
|
|
102114
|
-
const renderSocialLinks =
|
|
101916
|
+
const renderSocialLinks = React25.useMemo(() => {
|
|
102115
101917
|
if (socialLinksSlot) return socialLinksSlot;
|
|
102116
101918
|
if (!socialLinks || socialLinks.length === 0) return null;
|
|
102117
101919
|
return /* @__PURE__ */ jsx(
|
|
@@ -102157,7 +101959,7 @@ function LinkTreeBlock({
|
|
|
102157
101959
|
socialIconClassName,
|
|
102158
101960
|
socialLinkClassName
|
|
102159
101961
|
]);
|
|
102160
|
-
const renderFooter =
|
|
101962
|
+
const renderFooter = React25.useMemo(() => {
|
|
102161
101963
|
if (footerSlot) return footerSlot;
|
|
102162
101964
|
if (!footerAction) return null;
|
|
102163
101965
|
const resolvedFooterAction = footerAction;
|