@opensite/ui 2.2.1 → 2.2.2
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 +15 -29
- package/dist/contact-card.js +15 -29
- package/dist/contact-dark.cjs +15 -29
- package/dist/contact-dark.js +15 -29
- package/dist/contact-emergency.cjs +16 -30
- package/dist/contact-emergency.js +17 -31
- package/dist/contact-faq.cjs +22 -35
- package/dist/contact-faq.js +18 -34
- package/dist/contact-image.cjs +20 -34
- package/dist/contact-image.js +20 -34
- 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 +1773 -1896
- package/dist/registry.js +531 -654
- 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) => {
|
|
@@ -13757,23 +13757,7 @@ function ContactCard({
|
|
|
13757
13757
|
pattern,
|
|
13758
13758
|
patternOpacity
|
|
13759
13759
|
}) {
|
|
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(() => {
|
|
13760
|
+
const contactOptionsContent = React25.useMemo(() => {
|
|
13777
13761
|
if (contactOptionsSlot) return contactOptionsSlot;
|
|
13778
13762
|
if (contactOptions && contactOptions.length > 0) {
|
|
13779
13763
|
return contactOptions.map((option, key) => /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-4", children: [
|
|
@@ -13797,7 +13781,7 @@ function ContactCard({
|
|
|
13797
13781
|
}
|
|
13798
13782
|
return null;
|
|
13799
13783
|
}, [contactOptionsSlot, contactOptions]);
|
|
13800
|
-
const socialLinksContent =
|
|
13784
|
+
const socialLinksContent = React25.useMemo(() => {
|
|
13801
13785
|
if (socialLinksSlot) return socialLinksSlot;
|
|
13802
13786
|
if (socialLinks && socialLinks.length > 0) {
|
|
13803
13787
|
return socialLinks.map((social, key) => /* @__PURE__ */ jsx(
|
|
@@ -13837,20 +13821,22 @@ function ContactCard({
|
|
|
13837
13821
|
/* @__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
13822
|
FormEngine,
|
|
13839
13823
|
{
|
|
13840
|
-
|
|
13841
|
-
|
|
13842
|
-
|
|
13843
|
-
|
|
13844
|
-
|
|
13845
|
-
|
|
13846
|
-
|
|
13847
|
-
|
|
13848
|
-
|
|
13849
|
-
|
|
13850
|
-
|
|
13851
|
-
|
|
13824
|
+
formEngineSetup: {
|
|
13825
|
+
...formEngineSetup,
|
|
13826
|
+
formLayoutSettings: {
|
|
13827
|
+
...formEngineSetup.formLayoutSettings,
|
|
13828
|
+
formLayout: "standard",
|
|
13829
|
+
submitButtonSetup: {
|
|
13830
|
+
...formEngineSetup.formLayoutSettings?.submitButtonSetup,
|
|
13831
|
+
submitLabel: /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
13832
|
+
buttonIcon,
|
|
13833
|
+
buttonText
|
|
13834
|
+
] })
|
|
13835
|
+
}
|
|
13836
|
+
}
|
|
13852
13837
|
},
|
|
13853
|
-
|
|
13838
|
+
defaultFields: DEFAULT_FORM_FIELDS3,
|
|
13839
|
+
defaultStyleRules: DEFAULT_STYLE_RULES
|
|
13854
13840
|
}
|
|
13855
13841
|
) : null }) }),
|
|
13856
13842
|
/* @__PURE__ */ jsxs(
|
|
@@ -14374,7 +14360,7 @@ function ContactCatering({
|
|
|
14374
14360
|
onSuccess,
|
|
14375
14361
|
onError
|
|
14376
14362
|
});
|
|
14377
|
-
const actionsContent =
|
|
14363
|
+
const actionsContent = React25.useMemo(() => {
|
|
14378
14364
|
if (actionsSlot) return actionsSlot;
|
|
14379
14365
|
if (actions && actions.length > 0) {
|
|
14380
14366
|
return actions.map((action, index) => {
|
|
@@ -14618,7 +14604,7 @@ function ContactConsultation({
|
|
|
14618
14604
|
onSuccess,
|
|
14619
14605
|
onError
|
|
14620
14606
|
});
|
|
14621
|
-
const actionsContent =
|
|
14607
|
+
const actionsContent = React25.useMemo(() => {
|
|
14622
14608
|
if (actionsSlot) return actionsSlot;
|
|
14623
14609
|
if (actions && actions.length > 0) {
|
|
14624
14610
|
return actions.map((action, index) => {
|
|
@@ -14791,23 +14777,7 @@ function ContactDark({
|
|
|
14791
14777
|
pattern,
|
|
14792
14778
|
patternOpacity
|
|
14793
14779
|
}) {
|
|
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(() => {
|
|
14780
|
+
const contactOptionsContent = React25.useMemo(() => {
|
|
14811
14781
|
if (contactOptionsSlot) return contactOptionsSlot;
|
|
14812
14782
|
if (contactOptions && contactOptions.length > 0) {
|
|
14813
14783
|
return contactOptions.map((option, key) => /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3", children: [
|
|
@@ -14831,7 +14801,7 @@ function ContactDark({
|
|
|
14831
14801
|
}
|
|
14832
14802
|
return null;
|
|
14833
14803
|
}, [contactOptionsSlot, contactOptions]);
|
|
14834
|
-
const socialLinksContent =
|
|
14804
|
+
const socialLinksContent = React25.useMemo(() => {
|
|
14835
14805
|
if (socialLinksSlot) return socialLinksSlot;
|
|
14836
14806
|
if (socialLinks && socialLinks.length > 0) {
|
|
14837
14807
|
return socialLinks.map((social, key) => /* @__PURE__ */ jsx(
|
|
@@ -14872,20 +14842,22 @@ function ContactDark({
|
|
|
14872
14842
|
/* @__PURE__ */ jsx("div", { className: cn("p-6 lg:p-12", formPanelClassName), children: formEngineSetup ? /* @__PURE__ */ jsx(
|
|
14873
14843
|
FormEngine,
|
|
14874
14844
|
{
|
|
14875
|
-
|
|
14876
|
-
|
|
14877
|
-
|
|
14878
|
-
|
|
14879
|
-
|
|
14880
|
-
|
|
14881
|
-
|
|
14882
|
-
|
|
14883
|
-
|
|
14884
|
-
|
|
14885
|
-
|
|
14886
|
-
|
|
14845
|
+
formEngineSetup: {
|
|
14846
|
+
...formEngineSetup,
|
|
14847
|
+
formLayoutSettings: {
|
|
14848
|
+
...formEngineSetup.formLayoutSettings,
|
|
14849
|
+
formLayout: "standard",
|
|
14850
|
+
submitButtonSetup: {
|
|
14851
|
+
...formEngineSetup.formLayoutSettings?.submitButtonSetup,
|
|
14852
|
+
submitLabel: /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
14853
|
+
buttonIcon,
|
|
14854
|
+
buttonText
|
|
14855
|
+
] })
|
|
14856
|
+
}
|
|
14857
|
+
}
|
|
14887
14858
|
},
|
|
14888
|
-
|
|
14859
|
+
defaultFields: DEFAULT_FORM_FIELDS7,
|
|
14860
|
+
defaultStyleRules: DEFAULT_STYLE_RULES2
|
|
14889
14861
|
}
|
|
14890
14862
|
) : null }),
|
|
14891
14863
|
/* @__PURE__ */ jsxs(
|
|
@@ -15399,22 +15371,6 @@ function ContactEmergency({
|
|
|
15399
15371
|
pattern,
|
|
15400
15372
|
patternOpacity
|
|
15401
15373
|
}) {
|
|
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
15374
|
return /* @__PURE__ */ jsx(
|
|
15419
15375
|
Section,
|
|
15420
15376
|
{
|
|
@@ -15488,20 +15444,22 @@ function ContactEmergency({
|
|
|
15488
15444
|
/* @__PURE__ */ jsx("div", { className: "p-6", children: formEngineSetup ? /* @__PURE__ */ jsx(
|
|
15489
15445
|
FormEngine,
|
|
15490
15446
|
{
|
|
15491
|
-
|
|
15492
|
-
|
|
15493
|
-
|
|
15494
|
-
|
|
15495
|
-
|
|
15496
|
-
|
|
15497
|
-
|
|
15498
|
-
|
|
15499
|
-
|
|
15500
|
-
|
|
15501
|
-
|
|
15502
|
-
|
|
15447
|
+
formEngineSetup: {
|
|
15448
|
+
...formEngineSetup,
|
|
15449
|
+
formLayoutSettings: {
|
|
15450
|
+
...formEngineSetup.formLayoutSettings,
|
|
15451
|
+
formLayout: "standard",
|
|
15452
|
+
submitButtonSetup: {
|
|
15453
|
+
...formEngineSetup.formLayoutSettings?.submitButtonSetup,
|
|
15454
|
+
submitLabel: /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
15455
|
+
buttonIcon,
|
|
15456
|
+
buttonText
|
|
15457
|
+
] })
|
|
15458
|
+
}
|
|
15459
|
+
}
|
|
15503
15460
|
},
|
|
15504
|
-
|
|
15461
|
+
defaultFields: DEFAULT_FORM_FIELDS9,
|
|
15462
|
+
defaultStyleRules: DEFAULT_STYLE_RULES3
|
|
15505
15463
|
}
|
|
15506
15464
|
) : null })
|
|
15507
15465
|
] })
|
|
@@ -15855,23 +15813,6 @@ function ContactFaq({
|
|
|
15855
15813
|
pattern,
|
|
15856
15814
|
patternOpacity
|
|
15857
15815
|
}) {
|
|
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
15816
|
const hasFaqItems = itemsSlot || items && items.length > 0;
|
|
15876
15817
|
const faqContent = useMemo(() => {
|
|
15877
15818
|
if (itemsSlot) return itemsSlot;
|
|
@@ -15969,20 +15910,22 @@ function ContactFaq({
|
|
|
15969
15910
|
formEngineSetup ? /* @__PURE__ */ jsx(
|
|
15970
15911
|
FormEngine,
|
|
15971
15912
|
{
|
|
15972
|
-
|
|
15973
|
-
|
|
15974
|
-
|
|
15975
|
-
|
|
15976
|
-
|
|
15977
|
-
|
|
15978
|
-
|
|
15979
|
-
|
|
15980
|
-
|
|
15981
|
-
|
|
15982
|
-
|
|
15983
|
-
|
|
15913
|
+
formEngineSetup: {
|
|
15914
|
+
...formEngineSetup,
|
|
15915
|
+
formLayoutSettings: {
|
|
15916
|
+
...formEngineSetup.formLayoutSettings,
|
|
15917
|
+
formLayout: "standard",
|
|
15918
|
+
submitButtonSetup: {
|
|
15919
|
+
...formEngineSetup.formLayoutSettings?.submitButtonSetup,
|
|
15920
|
+
submitLabel: /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
15921
|
+
buttonIcon,
|
|
15922
|
+
buttonText
|
|
15923
|
+
] })
|
|
15924
|
+
}
|
|
15925
|
+
}
|
|
15984
15926
|
},
|
|
15985
|
-
|
|
15927
|
+
defaultFields: DEFAULT_FORM_FIELDS11,
|
|
15928
|
+
defaultStyleRules: DEFAULT_STYLE_RULES4
|
|
15986
15929
|
}
|
|
15987
15930
|
) : null
|
|
15988
15931
|
] }) }),
|
|
@@ -16727,23 +16670,7 @@ function ContactImage({
|
|
|
16727
16670
|
patternOpacity,
|
|
16728
16671
|
optixFlowConfig
|
|
16729
16672
|
}) {
|
|
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(() => {
|
|
16673
|
+
const contactOverlaysContent = React25.useMemo(() => {
|
|
16747
16674
|
if (contactOverlaysSlot) return contactOverlaysSlot;
|
|
16748
16675
|
if (!contactOverlays || contactOverlays.length === 0) return null;
|
|
16749
16676
|
return /* @__PURE__ */ jsx("div", { className: cn("flex flex-col gap-3", contactOverlaysClassName), children: contactOverlays.map((item, index) => {
|
|
@@ -16862,20 +16789,22 @@ function ContactImage({
|
|
|
16862
16789
|
/* @__PURE__ */ jsx("div", { className: "mt-8", children: formEngineSetup ? /* @__PURE__ */ jsx(
|
|
16863
16790
|
FormEngine,
|
|
16864
16791
|
{
|
|
16865
|
-
|
|
16866
|
-
|
|
16867
|
-
|
|
16868
|
-
|
|
16869
|
-
|
|
16870
|
-
|
|
16871
|
-
|
|
16872
|
-
|
|
16873
|
-
|
|
16874
|
-
|
|
16875
|
-
|
|
16876
|
-
|
|
16792
|
+
formEngineSetup: {
|
|
16793
|
+
...formEngineSetup,
|
|
16794
|
+
formLayoutSettings: {
|
|
16795
|
+
...formEngineSetup.formLayoutSettings,
|
|
16796
|
+
formLayout: "standard",
|
|
16797
|
+
submitButtonSetup: {
|
|
16798
|
+
...formEngineSetup.formLayoutSettings?.submitButtonSetup,
|
|
16799
|
+
submitLabel: /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
16800
|
+
buttonIcon,
|
|
16801
|
+
buttonText
|
|
16802
|
+
] })
|
|
16803
|
+
}
|
|
16804
|
+
}
|
|
16877
16805
|
},
|
|
16878
|
-
|
|
16806
|
+
defaultFields: DEFAULT_FORM_FIELDS15,
|
|
16807
|
+
defaultStyleRules: DEFAULT_STYLE_RULES5
|
|
16879
16808
|
}
|
|
16880
16809
|
) : null })
|
|
16881
16810
|
]
|
|
@@ -21729,23 +21658,6 @@ function ContactVendor({
|
|
|
21729
21658
|
pattern,
|
|
21730
21659
|
patternOpacity = 0.1
|
|
21731
21660
|
}) {
|
|
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
21661
|
return /* @__PURE__ */ jsx(
|
|
21750
21662
|
Section,
|
|
21751
21663
|
{
|
|
@@ -21781,12 +21693,9 @@ function ContactVendor({
|
|
|
21781
21693
|
/* @__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
21694
|
FormEngine,
|
|
21783
21695
|
{
|
|
21784
|
-
|
|
21785
|
-
|
|
21786
|
-
|
|
21787
|
-
styleRules: formStyleRules
|
|
21788
|
-
},
|
|
21789
|
-
fields: formFields
|
|
21696
|
+
formEngineSetup,
|
|
21697
|
+
defaultFields: DEFAULT_FORM_FIELDS38,
|
|
21698
|
+
defaultStyleRules: DEFAULT_STYLE_RULES6
|
|
21790
21699
|
}
|
|
21791
21700
|
) : null }) })
|
|
21792
21701
|
] })
|
|
@@ -22555,16 +22464,16 @@ function CarouselAnimatedSections({
|
|
|
22555
22464
|
pattern = "diagonalCrossBasic",
|
|
22556
22465
|
patternOpacity = 0.033
|
|
22557
22466
|
}) {
|
|
22558
|
-
const [currentIndex, setCurrentIndex] =
|
|
22559
|
-
const [direction, setDirection] =
|
|
22560
|
-
const [isAnimating, setIsAnimating] =
|
|
22561
|
-
const goToNext =
|
|
22467
|
+
const [currentIndex, setCurrentIndex] = React25.useState(0);
|
|
22468
|
+
const [direction, setDirection] = React25.useState(0);
|
|
22469
|
+
const [isAnimating, setIsAnimating] = React25.useState(false);
|
|
22470
|
+
const goToNext = React25.useCallback(() => {
|
|
22562
22471
|
if (isAnimating || currentIndex >= (sections?.length ?? 0) - 1) return;
|
|
22563
22472
|
setIsAnimating(true);
|
|
22564
22473
|
setDirection(1);
|
|
22565
22474
|
setCurrentIndex((prev) => prev + 1);
|
|
22566
22475
|
}, [currentIndex, isAnimating, sections?.length]);
|
|
22567
|
-
const goToPrev =
|
|
22476
|
+
const goToPrev = React25.useCallback(() => {
|
|
22568
22477
|
if (isAnimating || currentIndex <= 0) return;
|
|
22569
22478
|
setIsAnimating(true);
|
|
22570
22479
|
setDirection(-1);
|
|
@@ -22576,7 +22485,7 @@ function CarouselAnimatedSections({
|
|
|
22576
22485
|
setDirection(index > currentIndex ? 1 : -1);
|
|
22577
22486
|
setCurrentIndex(index);
|
|
22578
22487
|
};
|
|
22579
|
-
|
|
22488
|
+
React25.useEffect(() => {
|
|
22580
22489
|
const handleKeyDown = (e) => {
|
|
22581
22490
|
if (e.key === "ArrowDown" || e.key === "ArrowRight") {
|
|
22582
22491
|
goToNext();
|
|
@@ -22602,7 +22511,7 @@ function CarouselAnimatedSections({
|
|
|
22602
22511
|
})
|
|
22603
22512
|
};
|
|
22604
22513
|
const currentSection = sections?.[currentIndex];
|
|
22605
|
-
const actionElements =
|
|
22514
|
+
const actionElements = React25.useMemo(() => {
|
|
22606
22515
|
if (actionsSlot) return actionsSlot;
|
|
22607
22516
|
if (actions && actions.length > 0) {
|
|
22608
22517
|
return actions.map((action, index) => /* @__PURE__ */ jsxs(
|
|
@@ -22850,11 +22759,11 @@ function CarouselAutoProgressSlides({
|
|
|
22850
22759
|
pattern,
|
|
22851
22760
|
patternOpacity
|
|
22852
22761
|
}) {
|
|
22853
|
-
const [currentIndex, setCurrentIndex] =
|
|
22762
|
+
const [currentIndex, setCurrentIndex] = React25.useState(0);
|
|
22854
22763
|
const progress = useMotionValue(100);
|
|
22855
|
-
const [direction, setDirection] =
|
|
22764
|
+
const [direction, setDirection] = React25.useState(1);
|
|
22856
22765
|
const clipPath = useMotionTemplate`inset(0 ${progress}% 0 0 round 10px)`;
|
|
22857
|
-
|
|
22766
|
+
React25.useEffect(() => {
|
|
22858
22767
|
const interval = setInterval(() => {
|
|
22859
22768
|
const currentProgress = progress.get();
|
|
22860
22769
|
if (currentProgress > 0) {
|
|
@@ -23033,22 +22942,22 @@ function CarouselAutoProgressSlides({
|
|
|
23033
22942
|
);
|
|
23034
22943
|
}
|
|
23035
22944
|
function useDotButton(emblaApi) {
|
|
23036
|
-
const [selectedIndex, setSelectedIndex] =
|
|
23037
|
-
const [scrollSnaps, setScrollSnaps] =
|
|
23038
|
-
const onDotButtonClick =
|
|
22945
|
+
const [selectedIndex, setSelectedIndex] = React25.useState(0);
|
|
22946
|
+
const [scrollSnaps, setScrollSnaps] = React25.useState([]);
|
|
22947
|
+
const onDotButtonClick = React25.useCallback(
|
|
23039
22948
|
(index) => {
|
|
23040
22949
|
if (!emblaApi) return;
|
|
23041
22950
|
emblaApi.scrollTo(index);
|
|
23042
22951
|
},
|
|
23043
22952
|
[emblaApi]
|
|
23044
22953
|
);
|
|
23045
|
-
const onInit =
|
|
22954
|
+
const onInit = React25.useCallback((api) => {
|
|
23046
22955
|
setScrollSnaps(api.scrollSnapList());
|
|
23047
22956
|
}, []);
|
|
23048
|
-
const onSelect =
|
|
22957
|
+
const onSelect = React25.useCallback((api) => {
|
|
23049
22958
|
setSelectedIndex(api.selectedScrollSnap());
|
|
23050
22959
|
}, []);
|
|
23051
|
-
|
|
22960
|
+
React25.useEffect(() => {
|
|
23052
22961
|
if (!emblaApi) return;
|
|
23053
22962
|
onInit(emblaApi);
|
|
23054
22963
|
onSelect(emblaApi);
|
|
@@ -23057,8 +22966,8 @@ function useDotButton(emblaApi) {
|
|
|
23057
22966
|
return { selectedIndex, scrollSnaps, onDotButtonClick };
|
|
23058
22967
|
}
|
|
23059
22968
|
function useAutoplay(emblaApi) {
|
|
23060
|
-
const [autoplayIsPlaying, setAutoplayIsPlaying] =
|
|
23061
|
-
const onAutoplayButtonClick =
|
|
22969
|
+
const [autoplayIsPlaying, setAutoplayIsPlaying] = React25.useState(false);
|
|
22970
|
+
const onAutoplayButtonClick = React25.useCallback(
|
|
23062
22971
|
(callback) => {
|
|
23063
22972
|
const autoplay = emblaApi?.plugins()?.autoplay;
|
|
23064
22973
|
if (!autoplay) return;
|
|
@@ -23068,13 +22977,13 @@ function useAutoplay(emblaApi) {
|
|
|
23068
22977
|
},
|
|
23069
22978
|
[emblaApi]
|
|
23070
22979
|
);
|
|
23071
|
-
const toggleAutoplay =
|
|
22980
|
+
const toggleAutoplay = React25.useCallback(() => {
|
|
23072
22981
|
const autoplay = emblaApi?.plugins()?.autoplay;
|
|
23073
22982
|
if (!autoplay) return;
|
|
23074
22983
|
const playOrStop = autoplay.isPlaying() ? autoplay.stop : autoplay.play;
|
|
23075
22984
|
playOrStop();
|
|
23076
22985
|
}, [emblaApi]);
|
|
23077
|
-
|
|
22986
|
+
React25.useEffect(() => {
|
|
23078
22987
|
const autoplay = emblaApi?.plugins()?.autoplay;
|
|
23079
22988
|
if (!autoplay) return;
|
|
23080
22989
|
setAutoplayIsPlaying(autoplay.isPlaying());
|
|
@@ -23083,11 +22992,11 @@ function useAutoplay(emblaApi) {
|
|
|
23083
22992
|
return { autoplayIsPlaying, toggleAutoplay, onAutoplayButtonClick };
|
|
23084
22993
|
}
|
|
23085
22994
|
function useAutoplayProgress(emblaApi, progressNode) {
|
|
23086
|
-
const [showAutoplayProgress, setShowAutoplayProgress] =
|
|
23087
|
-
const animationName =
|
|
23088
|
-
const timeoutId =
|
|
23089
|
-
const rafId =
|
|
23090
|
-
const startProgress =
|
|
22995
|
+
const [showAutoplayProgress, setShowAutoplayProgress] = React25.useState(false);
|
|
22996
|
+
const animationName = React25.useRef("");
|
|
22997
|
+
const timeoutId = React25.useRef(0);
|
|
22998
|
+
const rafId = React25.useRef(0);
|
|
22999
|
+
const startProgress = React25.useCallback(
|
|
23091
23000
|
(timeUntilNext) => {
|
|
23092
23001
|
const node = progressNode.current;
|
|
23093
23002
|
if (!node || timeUntilNext === null) return;
|
|
@@ -23107,12 +23016,12 @@ function useAutoplayProgress(emblaApi, progressNode) {
|
|
|
23107
23016
|
},
|
|
23108
23017
|
[progressNode]
|
|
23109
23018
|
);
|
|
23110
|
-
|
|
23019
|
+
React25.useEffect(() => {
|
|
23111
23020
|
const autoplay = emblaApi?.plugins()?.autoplay;
|
|
23112
23021
|
if (!autoplay) return;
|
|
23113
23022
|
emblaApi.on("autoplay:timerset", () => startProgress(autoplay.timeUntilNext())).on("autoplay:timerstopped", () => setShowAutoplayProgress(false));
|
|
23114
23023
|
}, [emblaApi, startProgress]);
|
|
23115
|
-
|
|
23024
|
+
React25.useEffect(() => {
|
|
23116
23025
|
return () => {
|
|
23117
23026
|
cancelAnimationFrame(rafId.current);
|
|
23118
23027
|
clearTimeout(timeoutId.current);
|
|
@@ -23139,7 +23048,7 @@ function CarouselAutoplayProgress({
|
|
|
23139
23048
|
pattern,
|
|
23140
23049
|
patternOpacity
|
|
23141
23050
|
}) {
|
|
23142
|
-
const progressNode =
|
|
23051
|
+
const progressNode = React25.useRef(null);
|
|
23143
23052
|
const [emblaRef, emblaApi] = useEmblaCarousel(options, [
|
|
23144
23053
|
Autoplay({ playOnInit: true, delay: autoplayDelay })
|
|
23145
23054
|
]);
|
|
@@ -23262,20 +23171,20 @@ function CarouselFeatureBadge({
|
|
|
23262
23171
|
containerMaxWidth = "2xl"
|
|
23263
23172
|
}) {
|
|
23264
23173
|
const [emblaRef, emblaApi] = useEmblaCarousel();
|
|
23265
|
-
const [canScrollPrev, setCanScrollPrev] =
|
|
23266
|
-
const [canScrollNext, setCanScrollNext] =
|
|
23267
|
-
const scrollPrev =
|
|
23174
|
+
const [canScrollPrev, setCanScrollPrev] = React25.useState(false);
|
|
23175
|
+
const [canScrollNext, setCanScrollNext] = React25.useState(false);
|
|
23176
|
+
const scrollPrev = React25.useCallback(() => {
|
|
23268
23177
|
emblaApi?.scrollPrev();
|
|
23269
23178
|
}, [emblaApi]);
|
|
23270
|
-
const scrollNext =
|
|
23179
|
+
const scrollNext = React25.useCallback(() => {
|
|
23271
23180
|
emblaApi?.scrollNext();
|
|
23272
23181
|
}, [emblaApi]);
|
|
23273
|
-
const onSelect =
|
|
23182
|
+
const onSelect = React25.useCallback(() => {
|
|
23274
23183
|
if (!emblaApi) return;
|
|
23275
23184
|
setCanScrollPrev(emblaApi.canScrollPrev());
|
|
23276
23185
|
setCanScrollNext(emblaApi.canScrollNext());
|
|
23277
23186
|
}, [emblaApi]);
|
|
23278
|
-
|
|
23187
|
+
React25.useEffect(() => {
|
|
23279
23188
|
if (!emblaApi) return;
|
|
23280
23189
|
onSelect();
|
|
23281
23190
|
emblaApi.on("reInit", onSelect);
|
|
@@ -23395,10 +23304,10 @@ function CarouselFullscreenScrollFx({
|
|
|
23395
23304
|
pattern = "diagonalCrossBasic",
|
|
23396
23305
|
patternOpacity = 0.033
|
|
23397
23306
|
}) {
|
|
23398
|
-
const containerRef =
|
|
23399
|
-
const scrollContainerRef =
|
|
23400
|
-
const [activeIndex, setActiveIndex] =
|
|
23401
|
-
|
|
23307
|
+
const containerRef = React25.useRef(null);
|
|
23308
|
+
const scrollContainerRef = React25.useRef(null);
|
|
23309
|
+
const [activeIndex, setActiveIndex] = React25.useState(0);
|
|
23310
|
+
React25.useEffect(() => {
|
|
23402
23311
|
const scrollContainer = scrollContainerRef.current;
|
|
23403
23312
|
if (!scrollContainer || !slides?.length) return;
|
|
23404
23313
|
const handleScroll = () => {
|
|
@@ -23410,7 +23319,7 @@ function CarouselFullscreenScrollFx({
|
|
|
23410
23319
|
scrollContainer.addEventListener("scroll", handleScroll);
|
|
23411
23320
|
return () => scrollContainer.removeEventListener("scroll", handleScroll);
|
|
23412
23321
|
}, [slides]);
|
|
23413
|
-
const scrollToSlide =
|
|
23322
|
+
const scrollToSlide = React25.useCallback((index) => {
|
|
23414
23323
|
const scrollContainer = scrollContainerRef.current;
|
|
23415
23324
|
if (!scrollContainer) return;
|
|
23416
23325
|
const slideHeight = scrollContainer.clientHeight;
|
|
@@ -23493,7 +23402,7 @@ function CarouselFullscreenScrollFx({
|
|
|
23493
23402
|
className: "flex h-screen flex-col snap-y snap-mandatory overflow-x-hidden overflow-y-auto scroll-smooth",
|
|
23494
23403
|
style: { scrollbarWidth: "none", msOverflowStyle: "none" },
|
|
23495
23404
|
children: slidesSlot ? slidesSlot : slides?.map((slide, index) => {
|
|
23496
|
-
const renderActions =
|
|
23405
|
+
const renderActions = React25.useMemo(() => {
|
|
23497
23406
|
if (!slide.actions || slide.actions.length === 0) return null;
|
|
23498
23407
|
return slide.actions.map((action, actionIndex) => {
|
|
23499
23408
|
const {
|
|
@@ -23626,25 +23535,25 @@ function CarouselGalleryThumbnails({
|
|
|
23626
23535
|
patternOpacity,
|
|
23627
23536
|
slideMediaBrightness = "100"
|
|
23628
23537
|
}) {
|
|
23629
|
-
const [currentIndex, setCurrentIndex] =
|
|
23630
|
-
const prevSlide =
|
|
23538
|
+
const [currentIndex, setCurrentIndex] = React25.useState(0);
|
|
23539
|
+
const prevSlide = React25.useCallback(() => {
|
|
23631
23540
|
setCurrentIndex(
|
|
23632
23541
|
(prev) => prev === 0 ? (images?.length ?? 0) - 1 : prev - 1
|
|
23633
23542
|
);
|
|
23634
23543
|
}, [images?.length]);
|
|
23635
|
-
const nextSlide =
|
|
23544
|
+
const nextSlide = React25.useCallback(() => {
|
|
23636
23545
|
setCurrentIndex(
|
|
23637
23546
|
(prev) => prev === (images?.length ?? 0) - 1 ? 0 : prev + 1
|
|
23638
23547
|
);
|
|
23639
23548
|
}, [images?.length]);
|
|
23640
|
-
|
|
23549
|
+
React25.useEffect(() => {
|
|
23641
23550
|
if (!autoPlay) return;
|
|
23642
23551
|
const interval = setInterval(() => {
|
|
23643
23552
|
nextSlide();
|
|
23644
23553
|
}, autoPlayInterval);
|
|
23645
23554
|
return () => clearInterval(interval);
|
|
23646
23555
|
}, [currentIndex, autoPlay, autoPlayInterval, nextSlide]);
|
|
23647
|
-
|
|
23556
|
+
React25.useEffect(() => {
|
|
23648
23557
|
const handleKeyDown = (e) => {
|
|
23649
23558
|
if (e.key === "ArrowRight") {
|
|
23650
23559
|
nextSlide();
|
|
@@ -23789,9 +23698,9 @@ function CarouselHorizontalCards({
|
|
|
23789
23698
|
pattern,
|
|
23790
23699
|
patternOpacity
|
|
23791
23700
|
}) {
|
|
23792
|
-
const carouselRef =
|
|
23793
|
-
const [isAtStart, setIsAtStart] =
|
|
23794
|
-
const [isAtEnd, setIsAtEnd] =
|
|
23701
|
+
const carouselRef = React25.useRef(null);
|
|
23702
|
+
const [isAtStart, setIsAtStart] = React25.useState(true);
|
|
23703
|
+
const [isAtEnd, setIsAtEnd] = React25.useState(false);
|
|
23795
23704
|
const scrollLeft = () => {
|
|
23796
23705
|
if (carouselRef.current) {
|
|
23797
23706
|
carouselRef.current.scrollBy({ left: -300, behavior: "smooth" });
|
|
@@ -23802,7 +23711,7 @@ function CarouselHorizontalCards({
|
|
|
23802
23711
|
carouselRef.current.scrollBy({ left: 300, behavior: "smooth" });
|
|
23803
23712
|
}
|
|
23804
23713
|
};
|
|
23805
|
-
|
|
23714
|
+
React25.useEffect(() => {
|
|
23806
23715
|
const checkScrollPosition = () => {
|
|
23807
23716
|
if (carouselRef.current) {
|
|
23808
23717
|
const { scrollLeft: scrollLeft2, scrollWidth, clientWidth } = carouselRef.current;
|
|
@@ -24002,13 +23911,13 @@ function CarouselImageHero({
|
|
|
24002
23911
|
pattern,
|
|
24003
23912
|
patternOpacity
|
|
24004
23913
|
}) {
|
|
24005
|
-
const hasImages =
|
|
23914
|
+
const hasImages = React25.useMemo(() => {
|
|
24006
23915
|
return images && images?.length > 0;
|
|
24007
23916
|
}, [images]);
|
|
24008
|
-
const [currentImageIndex, setCurrentImageIndex] =
|
|
23917
|
+
const [currentImageIndex, setCurrentImageIndex] = React25.useState(0);
|
|
24009
23918
|
const progress = useMotionValue(100);
|
|
24010
23919
|
const clipPath = useMotionTemplate`inset(0 ${progress}% 0 0 round 10px)`;
|
|
24011
|
-
|
|
23920
|
+
React25.useEffect(() => {
|
|
24012
23921
|
if (!hasImages || (images?.length ?? 0) < 2) return;
|
|
24013
23922
|
const tickInterval = autoPlayInterval / 100;
|
|
24014
23923
|
const interval = setInterval(() => {
|
|
@@ -24030,19 +23939,19 @@ function CarouselImageHero({
|
|
|
24030
23939
|
autoPlayInterval,
|
|
24031
23940
|
hasImages
|
|
24032
23941
|
]);
|
|
24033
|
-
const handlePrev =
|
|
23942
|
+
const handlePrev = React25.useCallback(() => {
|
|
24034
23943
|
progress.set(100);
|
|
24035
23944
|
setCurrentImageIndex(
|
|
24036
23945
|
(prevIndex) => prevIndex > 0 ? prevIndex - 1 : (images?.length ?? 1) - 1
|
|
24037
23946
|
);
|
|
24038
23947
|
}, [images?.length, progress]);
|
|
24039
|
-
const handleNext =
|
|
23948
|
+
const handleNext = React25.useCallback(() => {
|
|
24040
23949
|
progress.set(100);
|
|
24041
23950
|
setCurrentImageIndex(
|
|
24042
23951
|
(prevIndex) => prevIndex < (images?.length ?? 0) - 1 ? prevIndex + 1 : 0
|
|
24043
23952
|
);
|
|
24044
23953
|
}, [images?.length, progress]);
|
|
24045
|
-
const handleDotClick =
|
|
23954
|
+
const handleDotClick = React25.useCallback(
|
|
24046
23955
|
(index) => {
|
|
24047
23956
|
progress.set(100);
|
|
24048
23957
|
setCurrentImageIndex(index);
|
|
@@ -24219,8 +24128,8 @@ function CarouselMultiStepShowcase({
|
|
|
24219
24128
|
pattern,
|
|
24220
24129
|
patternOpacity
|
|
24221
24130
|
}) {
|
|
24222
|
-
const [activeStep, setActiveStep] =
|
|
24223
|
-
const [direction, setDirection] =
|
|
24131
|
+
const [activeStep, setActiveStep] = React25.useState(0);
|
|
24132
|
+
const [direction, setDirection] = React25.useState(0);
|
|
24224
24133
|
const goToStep = (index) => {
|
|
24225
24134
|
setDirection(index > activeStep ? 1 : -1);
|
|
24226
24135
|
setActiveStep(index);
|
|
@@ -24512,9 +24421,9 @@ function CarouselPortfolioHero({
|
|
|
24512
24421
|
patternOpacity,
|
|
24513
24422
|
slideMediaBrightness = "50"
|
|
24514
24423
|
}) {
|
|
24515
|
-
const [currentIndex, setCurrentIndex] =
|
|
24516
|
-
const intervalRef =
|
|
24517
|
-
const resetInterval =
|
|
24424
|
+
const [currentIndex, setCurrentIndex] = React25.useState(0);
|
|
24425
|
+
const intervalRef = React25.useRef(null);
|
|
24426
|
+
const resetInterval = React25.useCallback(() => {
|
|
24518
24427
|
if (intervalRef.current) {
|
|
24519
24428
|
clearInterval(intervalRef.current);
|
|
24520
24429
|
}
|
|
@@ -24522,17 +24431,17 @@ function CarouselPortfolioHero({
|
|
|
24522
24431
|
setCurrentIndex((prevIndex) => (prevIndex + 1) % (slides?.length ?? 1));
|
|
24523
24432
|
}, autoPlayInterval);
|
|
24524
24433
|
}, [autoPlayInterval, slides?.length]);
|
|
24525
|
-
const goToNext =
|
|
24434
|
+
const goToNext = React25.useCallback(() => {
|
|
24526
24435
|
setCurrentIndex((prevIndex) => (prevIndex + 1) % (slides?.length ?? 1));
|
|
24527
24436
|
resetInterval();
|
|
24528
24437
|
}, [slides?.length, resetInterval]);
|
|
24529
|
-
const goToPrev =
|
|
24438
|
+
const goToPrev = React25.useCallback(() => {
|
|
24530
24439
|
setCurrentIndex(
|
|
24531
24440
|
(prevIndex) => (prevIndex - 1 + (slides?.length ?? 1)) % (slides?.length ?? 1)
|
|
24532
24441
|
);
|
|
24533
24442
|
resetInterval();
|
|
24534
24443
|
}, [slides?.length, resetInterval]);
|
|
24535
|
-
|
|
24444
|
+
React25.useEffect(() => {
|
|
24536
24445
|
resetInterval();
|
|
24537
24446
|
return () => {
|
|
24538
24447
|
if (intervalRef.current) {
|
|
@@ -24724,9 +24633,9 @@ function CarouselProductFeatureShowcase({
|
|
|
24724
24633
|
pattern,
|
|
24725
24634
|
patternOpacity
|
|
24726
24635
|
}) {
|
|
24727
|
-
const [activeIndex, setActiveIndex] =
|
|
24728
|
-
const [activeColorIndex, setActiveColorIndex] =
|
|
24729
|
-
const [direction, setDirection] =
|
|
24636
|
+
const [activeIndex, setActiveIndex] = React25.useState(0);
|
|
24637
|
+
const [activeColorIndex, setActiveColorIndex] = React25.useState(0);
|
|
24638
|
+
const [direction, setDirection] = React25.useState(0);
|
|
24730
24639
|
const activeFeature = features?.[activeIndex];
|
|
24731
24640
|
const goToNext = () => {
|
|
24732
24641
|
setDirection(1);
|
|
@@ -24946,9 +24855,9 @@ function CarouselProductFeatureShowcase({
|
|
|
24946
24855
|
}
|
|
24947
24856
|
);
|
|
24948
24857
|
}
|
|
24949
|
-
var ProgressSliderContext =
|
|
24858
|
+
var ProgressSliderContext = React25.createContext(void 0);
|
|
24950
24859
|
function useProgressSliderContext() {
|
|
24951
|
-
const context =
|
|
24860
|
+
const context = React25.useContext(ProgressSliderContext);
|
|
24952
24861
|
if (!context) {
|
|
24953
24862
|
throw new Error(
|
|
24954
24863
|
"useProgressSliderContext must be used within a ProgressSlider"
|
|
@@ -25034,19 +24943,19 @@ function CarouselProgressSlider({
|
|
|
25034
24943
|
pattern,
|
|
25035
24944
|
patternOpacity
|
|
25036
24945
|
}) {
|
|
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 =
|
|
24946
|
+
const [active, setActive] = React25.useState(slides?.[0]?.id ?? "");
|
|
24947
|
+
const [progress, setProgress] = React25.useState(0);
|
|
24948
|
+
const [isFastForward, setIsFastForward] = React25.useState(false);
|
|
24949
|
+
const [isPaused, setIsPaused] = React25.useState(false);
|
|
24950
|
+
const frame = React25.useRef(0);
|
|
24951
|
+
const firstFrameTime = React25.useRef(performance.now());
|
|
24952
|
+
const targetValue = React25.useRef(null);
|
|
24953
|
+
const pausedProgress = React25.useRef(0);
|
|
24954
|
+
const sliderValues = React25.useMemo(
|
|
25046
24955
|
() => slides?.map((slide) => slide.id),
|
|
25047
24956
|
[slides]
|
|
25048
24957
|
);
|
|
25049
|
-
|
|
24958
|
+
React25.useEffect(() => {
|
|
25050
24959
|
if ((sliderValues?.length ?? 0) > 0 && !isPaused) {
|
|
25051
24960
|
firstFrameTime.current = performance.now();
|
|
25052
24961
|
if (pausedProgress.current > 0) {
|
|
@@ -25211,11 +25120,11 @@ function CarouselScrollingFeatureShowcase({
|
|
|
25211
25120
|
pattern,
|
|
25212
25121
|
patternOpacity
|
|
25213
25122
|
}) {
|
|
25214
|
-
const [activeFeature, setActiveFeature] =
|
|
25123
|
+
const [activeFeature, setActiveFeature] = React25.useState(
|
|
25215
25124
|
features?.[0]?.id ?? ""
|
|
25216
25125
|
);
|
|
25217
|
-
const featureRefs =
|
|
25218
|
-
|
|
25126
|
+
const featureRefs = React25.useRef(/* @__PURE__ */ new Map());
|
|
25127
|
+
React25.useEffect(() => {
|
|
25219
25128
|
if (!features || features.length === 0) return;
|
|
25220
25129
|
const observerOptions = {
|
|
25221
25130
|
root: null,
|
|
@@ -26140,9 +26049,9 @@ function FeatureChecklistImage({
|
|
|
26140
26049
|
}
|
|
26141
26050
|
);
|
|
26142
26051
|
}
|
|
26143
|
-
var CarouselContext =
|
|
26052
|
+
var CarouselContext = React25.createContext(null);
|
|
26144
26053
|
function useCarousel() {
|
|
26145
|
-
const context =
|
|
26054
|
+
const context = React25.useContext(CarouselContext);
|
|
26146
26055
|
if (!context) {
|
|
26147
26056
|
throw new Error("useCarousel must be used within a <Carousel />");
|
|
26148
26057
|
}
|
|
@@ -26164,20 +26073,20 @@ function Carousel({
|
|
|
26164
26073
|
},
|
|
26165
26074
|
plugins
|
|
26166
26075
|
);
|
|
26167
|
-
const [canScrollPrev, setCanScrollPrev] =
|
|
26168
|
-
const [canScrollNext, setCanScrollNext] =
|
|
26169
|
-
const onSelect =
|
|
26076
|
+
const [canScrollPrev, setCanScrollPrev] = React25.useState(false);
|
|
26077
|
+
const [canScrollNext, setCanScrollNext] = React25.useState(false);
|
|
26078
|
+
const onSelect = React25.useCallback((api2) => {
|
|
26170
26079
|
if (!api2) return;
|
|
26171
26080
|
setCanScrollPrev(api2.canScrollPrev());
|
|
26172
26081
|
setCanScrollNext(api2.canScrollNext());
|
|
26173
26082
|
}, []);
|
|
26174
|
-
const scrollPrev =
|
|
26083
|
+
const scrollPrev = React25.useCallback(() => {
|
|
26175
26084
|
api?.scrollPrev();
|
|
26176
26085
|
}, [api]);
|
|
26177
|
-
const scrollNext =
|
|
26086
|
+
const scrollNext = React25.useCallback(() => {
|
|
26178
26087
|
api?.scrollNext();
|
|
26179
26088
|
}, [api]);
|
|
26180
|
-
const handleKeyDown =
|
|
26089
|
+
const handleKeyDown = React25.useCallback(
|
|
26181
26090
|
(event) => {
|
|
26182
26091
|
if (event.key === "ArrowLeft") {
|
|
26183
26092
|
event.preventDefault();
|
|
@@ -26189,11 +26098,11 @@ function Carousel({
|
|
|
26189
26098
|
},
|
|
26190
26099
|
[scrollPrev, scrollNext]
|
|
26191
26100
|
);
|
|
26192
|
-
|
|
26101
|
+
React25.useEffect(() => {
|
|
26193
26102
|
if (!api || !setApi) return;
|
|
26194
26103
|
setApi(api);
|
|
26195
26104
|
}, [api, setApi]);
|
|
26196
|
-
|
|
26105
|
+
React25.useEffect(() => {
|
|
26197
26106
|
if (!api) return;
|
|
26198
26107
|
onSelect(api);
|
|
26199
26108
|
api.on("reInit", onSelect);
|
|
@@ -27117,7 +27026,7 @@ function FeatureThreeColumnValues({
|
|
|
27117
27026
|
patternOpacity,
|
|
27118
27027
|
patternClassName
|
|
27119
27028
|
}) {
|
|
27120
|
-
const renderValueIcon =
|
|
27029
|
+
const renderValueIcon = React25.useCallback(
|
|
27121
27030
|
(value) => {
|
|
27122
27031
|
if (value.icon) return value.icon;
|
|
27123
27032
|
if (value.iconName)
|
|
@@ -27619,7 +27528,7 @@ function FeatureTabbedContentImage({
|
|
|
27619
27528
|
patternOpacity,
|
|
27620
27529
|
patternClassName
|
|
27621
27530
|
}) {
|
|
27622
|
-
const renderFeatures =
|
|
27531
|
+
const renderFeatures = React25.useCallback(
|
|
27623
27532
|
(slide) => {
|
|
27624
27533
|
if (slide.featuresSlot) return slide.featuresSlot;
|
|
27625
27534
|
if (!slide.features || slide.features.length === 0) return null;
|
|
@@ -27643,7 +27552,7 @@ function FeatureTabbedContentImage({
|
|
|
27643
27552
|
},
|
|
27644
27553
|
[]
|
|
27645
27554
|
);
|
|
27646
|
-
const renderActions =
|
|
27555
|
+
const renderActions = React25.useCallback(
|
|
27647
27556
|
(slide) => {
|
|
27648
27557
|
if (slide.actionsSlot) return slide.actionsSlot;
|
|
27649
27558
|
if (!slide.actions || slide.actions.length === 0) return null;
|
|
@@ -27686,7 +27595,7 @@ function FeatureTabbedContentImage({
|
|
|
27686
27595
|
},
|
|
27687
27596
|
[]
|
|
27688
27597
|
);
|
|
27689
|
-
const renderImage =
|
|
27598
|
+
const renderImage = React25.useCallback(
|
|
27690
27599
|
(slide) => {
|
|
27691
27600
|
if (slide.imageSlot) return slide.imageSlot;
|
|
27692
27601
|
if (!slide.image) return null;
|
|
@@ -27922,7 +27831,7 @@ function FeatureUtilityCardsGrid({
|
|
|
27922
27831
|
}
|
|
27923
27832
|
);
|
|
27924
27833
|
}, [learnMoreSlot, learnMoreAction, background]);
|
|
27925
|
-
const renderUtilityImage =
|
|
27834
|
+
const renderUtilityImage = React25.useCallback(
|
|
27926
27835
|
(utility) => {
|
|
27927
27836
|
if (utility.imageSlot) return utility.imageSlot;
|
|
27928
27837
|
if (utility.image) {
|
|
@@ -28100,7 +28009,7 @@ function FeatureBentoUtilities({
|
|
|
28100
28009
|
patternOpacity,
|
|
28101
28010
|
patternClassName
|
|
28102
28011
|
}) {
|
|
28103
|
-
const renderCard =
|
|
28012
|
+
const renderCard = React25.useCallback(
|
|
28104
28013
|
(card, index) => {
|
|
28105
28014
|
const hasImage = card.imageSrc || card.imageSlot;
|
|
28106
28015
|
const cardClasses = cn(
|
|
@@ -28156,7 +28065,7 @@ function FeatureBentoUtilities({
|
|
|
28156
28065
|
},
|
|
28157
28066
|
[optixFlowConfig]
|
|
28158
28067
|
);
|
|
28159
|
-
const renderColumn =
|
|
28068
|
+
const renderColumn = React25.useCallback(
|
|
28160
28069
|
(cards, slot) => {
|
|
28161
28070
|
if (slot) return slot;
|
|
28162
28071
|
if (!cards || cards.length === 0) return null;
|
|
@@ -29402,7 +29311,7 @@ function FeatureBentoImageGrid({
|
|
|
29402
29311
|
patternOpacity,
|
|
29403
29312
|
patternClassName
|
|
29404
29313
|
}) {
|
|
29405
|
-
const renderItemIcon =
|
|
29314
|
+
const renderItemIcon = React25.useCallback(
|
|
29406
29315
|
(item) => {
|
|
29407
29316
|
if (item.icon) return item.icon;
|
|
29408
29317
|
if (item.iconName) return /* @__PURE__ */ jsx(DynamicIcon, { name: item.iconName, size: 24 });
|
|
@@ -29410,7 +29319,7 @@ function FeatureBentoImageGrid({
|
|
|
29410
29319
|
},
|
|
29411
29320
|
[]
|
|
29412
29321
|
);
|
|
29413
|
-
const renderItemImage =
|
|
29322
|
+
const renderItemImage = React25.useCallback(
|
|
29414
29323
|
(item, imageClassName) => {
|
|
29415
29324
|
if (item.imageSlot) return item.imageSlot;
|
|
29416
29325
|
if (item.imageSrc) {
|
|
@@ -29429,7 +29338,7 @@ function FeatureBentoImageGrid({
|
|
|
29429
29338
|
},
|
|
29430
29339
|
[optixFlowConfig]
|
|
29431
29340
|
);
|
|
29432
|
-
const renderLargeCard =
|
|
29341
|
+
const renderLargeCard = React25.useCallback(
|
|
29433
29342
|
(item) => {
|
|
29434
29343
|
const iconContent = renderItemIcon(item);
|
|
29435
29344
|
const hasIconBadgeContent = iconContent || item.iconBadge;
|
|
@@ -29517,7 +29426,7 @@ function FeatureBentoImageGrid({
|
|
|
29517
29426
|
},
|
|
29518
29427
|
[largeCardClassName, renderItemImage, renderItemIcon]
|
|
29519
29428
|
);
|
|
29520
|
-
const renderSmallCard =
|
|
29429
|
+
const renderSmallCard = React25.useCallback(
|
|
29521
29430
|
(item, index) => {
|
|
29522
29431
|
const iconContent = renderItemIcon(item);
|
|
29523
29432
|
const hasIconBadgeContent = iconContent || item.iconBadge;
|
|
@@ -30132,7 +30041,7 @@ function FeatureAccordionImage({
|
|
|
30132
30041
|
patternOpacity,
|
|
30133
30042
|
patternClassName
|
|
30134
30043
|
}) {
|
|
30135
|
-
const [activeItem, setActiveItem] =
|
|
30044
|
+
const [activeItem, setActiveItem] = React25.useState(defaultValue || "item-0");
|
|
30136
30045
|
const activeIndex = parseInt(activeItem.replace("item-", ""), 10) || 0;
|
|
30137
30046
|
const currentImage = items?.[activeIndex] || items?.[0];
|
|
30138
30047
|
const accordionItemsContent = useMemo(() => {
|
|
@@ -30281,7 +30190,7 @@ function FeatureCapabilitiesGrid({
|
|
|
30281
30190
|
patternOpacity,
|
|
30282
30191
|
patternClassName
|
|
30283
30192
|
}) {
|
|
30284
|
-
const renderItemIcon =
|
|
30193
|
+
const renderItemIcon = React25.useCallback(
|
|
30285
30194
|
(item) => {
|
|
30286
30195
|
if (item.icon) return item.icon;
|
|
30287
30196
|
if (item.iconName) return /* @__PURE__ */ jsx(DynamicIcon, { name: item.iconName, size: 20 });
|
|
@@ -30433,7 +30342,7 @@ function FeatureCapabilitiesGrid({
|
|
|
30433
30342
|
}
|
|
30434
30343
|
);
|
|
30435
30344
|
}
|
|
30436
|
-
var TeamMemberBackgroundImageCard =
|
|
30345
|
+
var TeamMemberBackgroundImageCard = React25.forwardRef(
|
|
30437
30346
|
({ className, imageUrl, imageAlt, children, optixFlowConfig, background, ...props }, ref) => {
|
|
30438
30347
|
return /* @__PURE__ */ jsxs(
|
|
30439
30348
|
"div",
|
|
@@ -30481,7 +30390,7 @@ function TeamMediaShowcase({
|
|
|
30481
30390
|
actionClassName,
|
|
30482
30391
|
optixFlowConfig
|
|
30483
30392
|
}) {
|
|
30484
|
-
const renderItems =
|
|
30393
|
+
const renderItems = React25.useMemo(() => {
|
|
30485
30394
|
if (itemsSlot) return itemsSlot;
|
|
30486
30395
|
return items.map((member, idx) => {
|
|
30487
30396
|
const imageAlt = member.imageAlt || (member.name && typeof member.name === "string" && member.name.trim() !== "" ? member.name : `member-${idx}`);
|
|
@@ -30579,7 +30488,7 @@ function TeamSimpleGrid({
|
|
|
30579
30488
|
memberNameClassName,
|
|
30580
30489
|
memberRoleClassName
|
|
30581
30490
|
}) {
|
|
30582
|
-
const renderMembers =
|
|
30491
|
+
const renderMembers = React25.useMemo(() => {
|
|
30583
30492
|
if (membersSlot) return membersSlot;
|
|
30584
30493
|
if (!members || members.length === 0) return null;
|
|
30585
30494
|
return members.map((member) => /* @__PURE__ */ jsxs(
|
|
@@ -30741,7 +30650,7 @@ function FooterBrandLinksContact({
|
|
|
30741
30650
|
linkListClassName,
|
|
30742
30651
|
linkItemClassName
|
|
30743
30652
|
]);
|
|
30744
|
-
const contactItemsContent =
|
|
30653
|
+
const contactItemsContent = React25.useMemo(() => {
|
|
30745
30654
|
if (!contactItems || contactItems.length === 0) return null;
|
|
30746
30655
|
return contactItems.map((item, idx) => /* @__PURE__ */ jsxs(
|
|
30747
30656
|
"div",
|
|
@@ -31099,7 +31008,7 @@ function TeamSocialGrid({
|
|
|
31099
31008
|
memberRoleClassName,
|
|
31100
31009
|
socialLinksClassName
|
|
31101
31010
|
}) {
|
|
31102
|
-
const renderMembers =
|
|
31011
|
+
const renderMembers = React25.useMemo(() => {
|
|
31103
31012
|
if (membersSlot) return membersSlot;
|
|
31104
31013
|
if (!members || members.length === 0) return null;
|
|
31105
31014
|
return members.map((member) => /* @__PURE__ */ jsxs(
|
|
@@ -31235,7 +31144,7 @@ function TeamGradientCards({
|
|
|
31235
31144
|
memberRoleClassName,
|
|
31236
31145
|
socialLinksClassName
|
|
31237
31146
|
}) {
|
|
31238
|
-
const renderMembers =
|
|
31147
|
+
const renderMembers = React25.useMemo(() => {
|
|
31239
31148
|
if (membersSlot) return membersSlot;
|
|
31240
31149
|
if (!members || members.length === 0) return null;
|
|
31241
31150
|
return members.map((member) => /* @__PURE__ */ jsx(
|
|
@@ -31391,7 +31300,7 @@ function TeamBioBadges({
|
|
|
31391
31300
|
memberBioClassName,
|
|
31392
31301
|
socialLinksClassName
|
|
31393
31302
|
}) {
|
|
31394
|
-
const renderMembers =
|
|
31303
|
+
const renderMembers = React25.useMemo(() => {
|
|
31395
31304
|
if (membersSlot) return membersSlot;
|
|
31396
31305
|
if (!members || members.length === 0) return null;
|
|
31397
31306
|
return members.map((member) => /* @__PURE__ */ jsxs(
|
|
@@ -31568,7 +31477,7 @@ function TeamExpertiseCards({
|
|
|
31568
31477
|
ctaDescriptionClassName,
|
|
31569
31478
|
ctaButtonClassName
|
|
31570
31479
|
}) {
|
|
31571
|
-
const renderMembers =
|
|
31480
|
+
const renderMembers = React25.useMemo(() => {
|
|
31572
31481
|
if (membersSlot) return membersSlot;
|
|
31573
31482
|
if (!members || members.length === 0) return null;
|
|
31574
31483
|
return members.map((member) => /* @__PURE__ */ jsx(
|
|
@@ -31645,7 +31554,7 @@ function TeamExpertiseCards({
|
|
|
31645
31554
|
member.id
|
|
31646
31555
|
));
|
|
31647
31556
|
}, [membersSlot, members, background, memberCardClassName, avatarClassName, memberNameClassName, memberRoleClassName, departmentBadgeClassName, memberDescriptionClassName, expertiseClassName]);
|
|
31648
|
-
const renderCta =
|
|
31557
|
+
const renderCta = React25.useMemo(() => {
|
|
31649
31558
|
if (ctaSlot) return ctaSlot;
|
|
31650
31559
|
return /* @__PURE__ */ jsxs(
|
|
31651
31560
|
"div",
|
|
@@ -31761,7 +31670,7 @@ function TeamCompactGrid({
|
|
|
31761
31670
|
ctaDescriptionClassName,
|
|
31762
31671
|
ctaButtonClassName
|
|
31763
31672
|
}) {
|
|
31764
|
-
const renderMembers =
|
|
31673
|
+
const renderMembers = React25.useMemo(() => {
|
|
31765
31674
|
if (membersSlot) return membersSlot;
|
|
31766
31675
|
if (!members || members.length === 0) return null;
|
|
31767
31676
|
return members.map((member) => /* @__PURE__ */ jsxs(
|
|
@@ -31816,7 +31725,7 @@ function TeamCompactGrid({
|
|
|
31816
31725
|
member.id
|
|
31817
31726
|
));
|
|
31818
31727
|
}, [membersSlot, members, background, memberCardClassName, avatarClassName, memberNameClassName, memberRoleClassName, departmentBadgeClassName]);
|
|
31819
|
-
const renderCta =
|
|
31728
|
+
const renderCta = React25.useMemo(() => {
|
|
31820
31729
|
if (ctaSlot) return ctaSlot;
|
|
31821
31730
|
return /* @__PURE__ */ jsxs(
|
|
31822
31731
|
"div",
|
|
@@ -31920,7 +31829,7 @@ function TeamInvestorShowcase({
|
|
|
31920
31829
|
investorCompanyClassName,
|
|
31921
31830
|
optixFlowConfig
|
|
31922
31831
|
}) {
|
|
31923
|
-
const renderInvestors =
|
|
31832
|
+
const renderInvestors = React25.useMemo(() => {
|
|
31924
31833
|
if (investorsSlot) return investorsSlot;
|
|
31925
31834
|
if (!investors || investors.length === 0) return null;
|
|
31926
31835
|
return investors.map((investor) => /* @__PURE__ */ jsxs("div", { className: investorCardClassName, children: [
|
|
@@ -31994,7 +31903,7 @@ function TeamCarouselExperience({
|
|
|
31994
31903
|
memberRoleClassName,
|
|
31995
31904
|
optixFlowConfig
|
|
31996
31905
|
}) {
|
|
31997
|
-
const renderMembers =
|
|
31906
|
+
const renderMembers = React25.useMemo(() => {
|
|
31998
31907
|
if (membersSlot) return membersSlot;
|
|
31999
31908
|
if (!members || members.length === 0) return null;
|
|
32000
31909
|
return members.map((member, idx) => /* @__PURE__ */ jsx(CarouselItem, { className: "max-w-72", children: /* @__PURE__ */ jsxs(
|
|
@@ -32144,20 +32053,20 @@ function TeamFilterableSearch({
|
|
|
32144
32053
|
emptyStateClassName,
|
|
32145
32054
|
emptyStateMessage
|
|
32146
32055
|
}) {
|
|
32147
|
-
const [searchQuery, setSearchQuery] =
|
|
32148
|
-
const [selectedDepartment, setSelectedDepartment] =
|
|
32149
|
-
const departments =
|
|
32056
|
+
const [searchQuery, setSearchQuery] = React25.useState("");
|
|
32057
|
+
const [selectedDepartment, setSelectedDepartment] = React25.useState("All");
|
|
32058
|
+
const departments = React25.useMemo(() => {
|
|
32150
32059
|
const depts = new Set(members.map((m) => m.department));
|
|
32151
32060
|
return ["All", ...Array.from(depts)];
|
|
32152
32061
|
}, [members]);
|
|
32153
|
-
const filteredMembers =
|
|
32062
|
+
const filteredMembers = React25.useMemo(() => {
|
|
32154
32063
|
return members.filter((member) => {
|
|
32155
32064
|
const matchesSearch = searchQuery === "" || member.name.toLowerCase().includes(searchQuery.toLowerCase()) || member.role.toLowerCase().includes(searchQuery.toLowerCase()) || member.description.toLowerCase().includes(searchQuery.toLowerCase());
|
|
32156
32065
|
const matchesDepartment = selectedDepartment === "All" || member.department === selectedDepartment;
|
|
32157
32066
|
return matchesSearch && matchesDepartment;
|
|
32158
32067
|
});
|
|
32159
32068
|
}, [members, searchQuery, selectedDepartment]);
|
|
32160
|
-
const renderFilters =
|
|
32069
|
+
const renderFilters = React25.useMemo(() => {
|
|
32161
32070
|
if (filtersSlot) return filtersSlot;
|
|
32162
32071
|
return /* @__PURE__ */ jsxs(
|
|
32163
32072
|
"div",
|
|
@@ -32212,7 +32121,7 @@ function TeamFilterableSearch({
|
|
|
32212
32121
|
selectedDepartment,
|
|
32213
32122
|
filterButtonClassName
|
|
32214
32123
|
]);
|
|
32215
|
-
const renderMembers =
|
|
32124
|
+
const renderMembers = React25.useMemo(() => {
|
|
32216
32125
|
if (membersSlot) return membersSlot;
|
|
32217
32126
|
return filteredMembers.map((member) => /* @__PURE__ */ jsx(
|
|
32218
32127
|
"div",
|
|
@@ -32399,7 +32308,7 @@ function TeamCompactCta({
|
|
|
32399
32308
|
memberRoleClassName,
|
|
32400
32309
|
ctaClassName
|
|
32401
32310
|
}) {
|
|
32402
|
-
const renderMembers =
|
|
32311
|
+
const renderMembers = React25.useMemo(() => {
|
|
32403
32312
|
if (membersSlot) return membersSlot;
|
|
32404
32313
|
if (!members || members.length === 0) return null;
|
|
32405
32314
|
return members.map((member) => /* @__PURE__ */ jsxs(
|
|
@@ -32427,7 +32336,7 @@ function TeamCompactCta({
|
|
|
32427
32336
|
member.id
|
|
32428
32337
|
));
|
|
32429
32338
|
}, [membersSlot, members, memberCardClassName, avatarClassName, memberNameClassName, memberRoleClassName, background]);
|
|
32430
|
-
const renderCta =
|
|
32339
|
+
const renderCta = React25.useMemo(() => {
|
|
32431
32340
|
if (ctaSlot) return ctaSlot;
|
|
32432
32341
|
return /* @__PURE__ */ jsx(
|
|
32433
32342
|
Pressable,
|
|
@@ -32518,7 +32427,7 @@ function TeamHoverHighlight({
|
|
|
32518
32427
|
socialLinksClassName,
|
|
32519
32428
|
optixFlowConfig
|
|
32520
32429
|
}) {
|
|
32521
|
-
const renderMembers =
|
|
32430
|
+
const renderMembers = React25.useMemo(() => {
|
|
32522
32431
|
if (membersSlot) return membersSlot;
|
|
32523
32432
|
if (!members || members.length === 0) return null;
|
|
32524
32433
|
return members.map((member) => /* @__PURE__ */ jsxs(
|
|
@@ -32667,7 +32576,7 @@ function TeamSocialCards({
|
|
|
32667
32576
|
socialLinksClassName,
|
|
32668
32577
|
optixFlowConfig
|
|
32669
32578
|
}) {
|
|
32670
|
-
const renderMembers =
|
|
32579
|
+
const renderMembers = React25.useMemo(() => {
|
|
32671
32580
|
if (membersSlot) return membersSlot;
|
|
32672
32581
|
if (!members || members.length === 0) return null;
|
|
32673
32582
|
return members.map((member) => /* @__PURE__ */ jsx(
|
|
@@ -32837,7 +32746,7 @@ function TeamGridAnimated({
|
|
|
32837
32746
|
"hsl(var(--muted))",
|
|
32838
32747
|
"hsl(var(--warning)/0.2)"
|
|
32839
32748
|
];
|
|
32840
|
-
const renderMembers =
|
|
32749
|
+
const renderMembers = React25.useMemo(() => {
|
|
32841
32750
|
if (membersSlot) return membersSlot;
|
|
32842
32751
|
if (!members || members.length === 0) return null;
|
|
32843
32752
|
return members.map((member, index) => /* @__PURE__ */ jsxs(
|
|
@@ -32937,7 +32846,7 @@ function TeamGridAnimated({
|
|
|
32937
32846
|
memberDesignationClassName,
|
|
32938
32847
|
socialLinksClassName
|
|
32939
32848
|
]);
|
|
32940
|
-
const renderSocialLinksMain =
|
|
32849
|
+
const renderSocialLinksMain = React25.useMemo(() => {
|
|
32941
32850
|
if (socialLinksMainSlot) return socialLinksMainSlot;
|
|
32942
32851
|
if (!socialLinksMain || socialLinksMain.length === 0) return null;
|
|
32943
32852
|
return /* @__PURE__ */ jsxs("div", { className: "flex w-full items-center justify-center gap-4 py-4 md:justify-center", children: [
|
|
@@ -33054,7 +32963,7 @@ function TeamDepartmentSections({
|
|
|
33054
32963
|
memberRoleClassName,
|
|
33055
32964
|
optixFlowConfig
|
|
33056
32965
|
}) {
|
|
33057
|
-
const renderDepartments =
|
|
32966
|
+
const renderDepartments = React25.useMemo(() => {
|
|
33058
32967
|
if (departmentsSlot) return departmentsSlot;
|
|
33059
32968
|
if (!departments || departments.length === 0) return null;
|
|
33060
32969
|
return departments.map((department, deptIndex) => /* @__PURE__ */ jsxs(
|
|
@@ -33158,7 +33067,7 @@ function TeamAlternatingBios({
|
|
|
33158
33067
|
socialLinksClassName,
|
|
33159
33068
|
optixFlowConfig
|
|
33160
33069
|
}) {
|
|
33161
|
-
const renderMembers =
|
|
33070
|
+
const renderMembers = React25.useMemo(() => {
|
|
33162
33071
|
if (membersSlot) return membersSlot;
|
|
33163
33072
|
if (!members || members.length === 0) return null;
|
|
33164
33073
|
return members.map((member, index) => /* @__PURE__ */ jsxs(
|
|
@@ -33340,7 +33249,7 @@ function TeamAvatarSocial({
|
|
|
33340
33249
|
memberRoleClassName,
|
|
33341
33250
|
socialLinksClassName
|
|
33342
33251
|
}) {
|
|
33343
|
-
const renderMembers =
|
|
33252
|
+
const renderMembers = React25.useMemo(() => {
|
|
33344
33253
|
if (membersSlot) return membersSlot;
|
|
33345
33254
|
if (!members || members.length === 0) return null;
|
|
33346
33255
|
return members.map((member) => /* @__PURE__ */ jsxs(
|
|
@@ -33483,7 +33392,7 @@ function TeamHoverOverlay({
|
|
|
33483
33392
|
socialLinksClassName,
|
|
33484
33393
|
optixFlowConfig
|
|
33485
33394
|
}) {
|
|
33486
|
-
const renderMembers =
|
|
33395
|
+
const renderMembers = React25.useMemo(() => {
|
|
33487
33396
|
if (membersSlot) return membersSlot;
|
|
33488
33397
|
if (!members || members.length === 0) return null;
|
|
33489
33398
|
return members.map((member) => /* @__PURE__ */ jsx(
|
|
@@ -33659,14 +33568,14 @@ function TeamRoleFilter({
|
|
|
33659
33568
|
socialLinksClassName,
|
|
33660
33569
|
optixFlowConfig
|
|
33661
33570
|
}) {
|
|
33662
|
-
const [selectedRole, setSelectedRole] =
|
|
33663
|
-
const filteredMembers =
|
|
33571
|
+
const [selectedRole, setSelectedRole] = React25.useState("All");
|
|
33572
|
+
const filteredMembers = React25.useMemo(() => {
|
|
33664
33573
|
if (!members) return [];
|
|
33665
33574
|
return members.filter(
|
|
33666
33575
|
(member) => selectedRole === "All" ? true : member.role === selectedRole
|
|
33667
33576
|
);
|
|
33668
33577
|
}, [members, selectedRole]);
|
|
33669
|
-
const renderRoles =
|
|
33578
|
+
const renderRoles = React25.useMemo(() => {
|
|
33670
33579
|
if (rolesSlot) return rolesSlot;
|
|
33671
33580
|
if (!roles) return null;
|
|
33672
33581
|
return /* @__PURE__ */ jsx(
|
|
@@ -33690,7 +33599,7 @@ function TeamRoleFilter({
|
|
|
33690
33599
|
}
|
|
33691
33600
|
);
|
|
33692
33601
|
}, [rolesSlot, filtersClassName, roles, selectedRole, filterButtonClassName]);
|
|
33693
|
-
const renderMembers =
|
|
33602
|
+
const renderMembers = React25.useMemo(() => {
|
|
33694
33603
|
if (membersSlot) return membersSlot;
|
|
33695
33604
|
return filteredMembers.map((member) => /* @__PURE__ */ jsx(
|
|
33696
33605
|
Card,
|
|
@@ -33850,7 +33759,7 @@ function TeamContactCards({
|
|
|
33850
33759
|
socialLinksClassName,
|
|
33851
33760
|
optixFlowConfig
|
|
33852
33761
|
}) {
|
|
33853
|
-
const getStatusColor =
|
|
33762
|
+
const getStatusColor = React25.useCallback((status) => {
|
|
33854
33763
|
switch (status) {
|
|
33855
33764
|
case "active":
|
|
33856
33765
|
return "bg-success";
|
|
@@ -33860,7 +33769,7 @@ function TeamContactCards({
|
|
|
33860
33769
|
return getTextColor(background, "muted");
|
|
33861
33770
|
}
|
|
33862
33771
|
}, [background]);
|
|
33863
|
-
const renderMembers =
|
|
33772
|
+
const renderMembers = React25.useMemo(() => {
|
|
33864
33773
|
if (membersSlot) return membersSlot;
|
|
33865
33774
|
if (!members || members.length === 0) return null;
|
|
33866
33775
|
return members.map((member) => /* @__PURE__ */ jsx(Card, { className: cn("p-0", memberCardClassName), children: /* @__PURE__ */ jsxs(CardContent, { className: "p-6!", children: [
|
|
@@ -34067,7 +33976,7 @@ function TeamLargeImages({
|
|
|
34067
33976
|
socialLinksClassName,
|
|
34068
33977
|
optixFlowConfig
|
|
34069
33978
|
}) {
|
|
34070
|
-
const renderMembers =
|
|
33979
|
+
const renderMembers = React25.useMemo(() => {
|
|
34071
33980
|
if (membersSlot) return membersSlot;
|
|
34072
33981
|
if (!members || members.length === 0) return null;
|
|
34073
33982
|
return members.map((member) => /* @__PURE__ */ jsxs(
|
|
@@ -34242,7 +34151,7 @@ function TeamSkillBadges({
|
|
|
34242
34151
|
socialLinksClassName,
|
|
34243
34152
|
optixFlowConfig
|
|
34244
34153
|
}) {
|
|
34245
|
-
const renderMembers =
|
|
34154
|
+
const renderMembers = React25.useMemo(() => {
|
|
34246
34155
|
if (membersSlot) return membersSlot;
|
|
34247
34156
|
if (!members || members.length === 0) return null;
|
|
34248
34157
|
return members.map((member) => /* @__PURE__ */ jsx(
|
|
@@ -34432,7 +34341,7 @@ function TeamTestimonialStats({
|
|
|
34432
34341
|
socialLinksClassName,
|
|
34433
34342
|
optixFlowConfig
|
|
34434
34343
|
}) {
|
|
34435
|
-
const renderMembers =
|
|
34344
|
+
const renderMembers = React25.useMemo(() => {
|
|
34436
34345
|
if (membersSlot) return membersSlot;
|
|
34437
34346
|
if (!members || members.length === 0) return null;
|
|
34438
34347
|
return members.map((member) => /* @__PURE__ */ jsx(
|
|
@@ -38576,7 +38485,7 @@ function BlogGridAuthorCardsComponent({
|
|
|
38576
38485
|
pattern,
|
|
38577
38486
|
patternOpacity
|
|
38578
38487
|
}) {
|
|
38579
|
-
const viewAllActionContent =
|
|
38488
|
+
const viewAllActionContent = React25.useMemo(() => {
|
|
38580
38489
|
if (viewAllSlot) return viewAllSlot;
|
|
38581
38490
|
if (!viewAllAction) return null;
|
|
38582
38491
|
const {
|
|
@@ -38601,7 +38510,7 @@ function BlogGridAuthorCardsComponent({
|
|
|
38601
38510
|
}
|
|
38602
38511
|
);
|
|
38603
38512
|
}, [viewAllSlot, viewAllAction]);
|
|
38604
|
-
const postsContent =
|
|
38513
|
+
const postsContent = React25.useMemo(() => {
|
|
38605
38514
|
if (postsSlot) return postsSlot;
|
|
38606
38515
|
if (!posts || posts.length === 0) return null;
|
|
38607
38516
|
return posts.map((post) => {
|
|
@@ -38713,7 +38622,7 @@ function BlogCardsTaglineCta({
|
|
|
38713
38622
|
pattern,
|
|
38714
38623
|
patternOpacity
|
|
38715
38624
|
}) {
|
|
38716
|
-
const ctaActionContent =
|
|
38625
|
+
const ctaActionContent = React25.useMemo(() => {
|
|
38717
38626
|
if (ctaSlot) return ctaSlot;
|
|
38718
38627
|
if (!ctaAction) return null;
|
|
38719
38628
|
const {
|
|
@@ -38741,7 +38650,7 @@ function BlogCardsTaglineCta({
|
|
|
38741
38650
|
}
|
|
38742
38651
|
);
|
|
38743
38652
|
}, [ctaSlot, ctaAction, ctaClassName]);
|
|
38744
|
-
const postsContent =
|
|
38653
|
+
const postsContent = React25.useMemo(() => {
|
|
38745
38654
|
if (postsSlot) return postsSlot;
|
|
38746
38655
|
if (!posts || posts.length === 0) return null;
|
|
38747
38656
|
return posts.map((post) => {
|
|
@@ -38887,7 +38796,7 @@ function BlogCardsReadTime({
|
|
|
38887
38796
|
pattern,
|
|
38888
38797
|
patternOpacity
|
|
38889
38798
|
}) {
|
|
38890
|
-
const renderedViewAllAction =
|
|
38799
|
+
const renderedViewAllAction = React25.useMemo(() => {
|
|
38891
38800
|
if (viewAllSlot) return viewAllSlot;
|
|
38892
38801
|
if (!viewAllAction) return null;
|
|
38893
38802
|
const {
|
|
@@ -38904,7 +38813,7 @@ function BlogCardsReadTime({
|
|
|
38904
38813
|
iconAfter
|
|
38905
38814
|
] }) });
|
|
38906
38815
|
}, [viewAllSlot, viewAllAction]);
|
|
38907
|
-
const renderedPosts =
|
|
38816
|
+
const renderedPosts = React25.useMemo(() => {
|
|
38908
38817
|
if (postsSlot) return postsSlot;
|
|
38909
38818
|
if (!posts || posts.length === 0) return null;
|
|
38910
38819
|
return posts.map((post) => {
|
|
@@ -39041,7 +38950,7 @@ function BlogCategoryOverlay({
|
|
|
39041
38950
|
pattern,
|
|
39042
38951
|
patternOpacity
|
|
39043
38952
|
}) {
|
|
39044
|
-
const viewAllActionContent =
|
|
38953
|
+
const viewAllActionContent = React25.useMemo(() => {
|
|
39045
38954
|
if (viewAllSlot) return viewAllSlot;
|
|
39046
38955
|
if (!viewAllAction) return null;
|
|
39047
38956
|
const {
|
|
@@ -39069,7 +38978,7 @@ function BlogCategoryOverlay({
|
|
|
39069
38978
|
}
|
|
39070
38979
|
);
|
|
39071
38980
|
}, [viewAllSlot, viewAllAction, viewAllClassName]);
|
|
39072
|
-
const postsContent =
|
|
38981
|
+
const postsContent = React25.useMemo(() => {
|
|
39073
38982
|
if (postsSlot) return postsSlot;
|
|
39074
38983
|
if (!posts || posts.length === 0) return null;
|
|
39075
38984
|
return posts.map((post) => {
|
|
@@ -39217,7 +39126,7 @@ function BlogFeaturedPopular({
|
|
|
39217
39126
|
}) {
|
|
39218
39127
|
const featuredPost = posts?.[0];
|
|
39219
39128
|
const popularPosts = posts?.slice(1);
|
|
39220
|
-
const renderedFeaturedPost =
|
|
39129
|
+
const renderedFeaturedPost = React25.useMemo(() => {
|
|
39221
39130
|
if (featuredSlot) return featuredSlot;
|
|
39222
39131
|
if (!featuredPost) return null;
|
|
39223
39132
|
const postHref = featuredPost.href || featuredPost.url || featuredPost.link;
|
|
@@ -39269,7 +39178,7 @@ function BlogFeaturedPopular({
|
|
|
39269
39178
|
featuredContentClassName,
|
|
39270
39179
|
optixFlowConfig
|
|
39271
39180
|
]);
|
|
39272
|
-
const renderedPopularPosts =
|
|
39181
|
+
const renderedPopularPosts = React25.useMemo(() => {
|
|
39273
39182
|
if (postsSlot) return postsSlot;
|
|
39274
39183
|
if (!popularPosts || popularPosts.length === 0) return null;
|
|
39275
39184
|
return popularPosts.map((post) => {
|
|
@@ -39386,7 +39295,7 @@ function BlogRelatedArticles({
|
|
|
39386
39295
|
pattern,
|
|
39387
39296
|
patternOpacity
|
|
39388
39297
|
}) {
|
|
39389
|
-
const renderedSeeAllAction =
|
|
39298
|
+
const renderedSeeAllAction = React25.useMemo(() => {
|
|
39390
39299
|
if (seeAllSlot) return seeAllSlot;
|
|
39391
39300
|
if (!seeAllAction) return null;
|
|
39392
39301
|
const {
|
|
@@ -39415,7 +39324,7 @@ function BlogRelatedArticles({
|
|
|
39415
39324
|
}
|
|
39416
39325
|
);
|
|
39417
39326
|
}, [seeAllSlot, seeAllAction, seeAllClassName]);
|
|
39418
|
-
const renderedArticles =
|
|
39327
|
+
const renderedArticles = React25.useMemo(() => {
|
|
39419
39328
|
if (articlesSlot) return articlesSlot;
|
|
39420
39329
|
if (!articles || articles.length === 0) return null;
|
|
39421
39330
|
return articles.map((item) => {
|
|
@@ -39723,7 +39632,7 @@ function BlogHorizontalCards({
|
|
|
39723
39632
|
pattern,
|
|
39724
39633
|
patternOpacity
|
|
39725
39634
|
}) {
|
|
39726
|
-
const ctaContent =
|
|
39635
|
+
const ctaContent = React25.useMemo(() => {
|
|
39727
39636
|
if (ctaSlot) return ctaSlot;
|
|
39728
39637
|
if (!ctaAction) return null;
|
|
39729
39638
|
const {
|
|
@@ -39748,7 +39657,7 @@ function BlogHorizontalCards({
|
|
|
39748
39657
|
}
|
|
39749
39658
|
);
|
|
39750
39659
|
}, [ctaSlot, ctaAction]);
|
|
39751
|
-
const postsContent =
|
|
39660
|
+
const postsContent = React25.useMemo(() => {
|
|
39752
39661
|
if (postsSlot) return postsSlot;
|
|
39753
39662
|
if (!posts || posts.length === 0) return null;
|
|
39754
39663
|
return posts.map((post) => {
|
|
@@ -39970,7 +39879,7 @@ function Label({
|
|
|
39970
39879
|
);
|
|
39971
39880
|
}
|
|
39972
39881
|
var POSTS_PER_PAGE = 6;
|
|
39973
|
-
var BlogCard =
|
|
39882
|
+
var BlogCard = React25.memo(function BlogCard2({
|
|
39974
39883
|
post,
|
|
39975
39884
|
optixFlowConfig,
|
|
39976
39885
|
className
|
|
@@ -40009,7 +39918,7 @@ var BlogCard = React28.memo(function BlogCard2({
|
|
|
40009
39918
|
] })
|
|
40010
39919
|
] }) });
|
|
40011
39920
|
});
|
|
40012
|
-
var FilterForm =
|
|
39921
|
+
var FilterForm = React25.memo(function FilterForm2({
|
|
40013
39922
|
categories,
|
|
40014
39923
|
selectedCategories,
|
|
40015
39924
|
onCategoryChange,
|
|
@@ -40042,7 +39951,7 @@ var FilterForm = React28.memo(function FilterForm2({
|
|
|
40042
39951
|
}
|
|
40043
39952
|
);
|
|
40044
39953
|
});
|
|
40045
|
-
var BreadcrumbBlog =
|
|
39954
|
+
var BreadcrumbBlog = React25.memo(function BreadcrumbBlog2({
|
|
40046
39955
|
breadcrumb
|
|
40047
39956
|
}) {
|
|
40048
39957
|
return /* @__PURE__ */ jsx(Breadcrumb, { children: /* @__PURE__ */ jsx(BreadcrumbList, { children: breadcrumb.map((item, i) => {
|
|
@@ -40124,12 +40033,12 @@ function BlogFilteredResultsComponent({
|
|
|
40124
40033
|
}, [posts, selectedCategories]);
|
|
40125
40034
|
const postsToDisplay = filteredPosts.length > 0 ? filteredPosts : posts || [];
|
|
40126
40035
|
const hasMore = visibleCount < postsToDisplay.length;
|
|
40127
|
-
const breadcrumbContent =
|
|
40036
|
+
const breadcrumbContent = React25.useMemo(() => {
|
|
40128
40037
|
if (breadcrumbSlot) return breadcrumbSlot;
|
|
40129
40038
|
if (!breadcrumb || breadcrumb.length === 0) return null;
|
|
40130
40039
|
return /* @__PURE__ */ jsx(BreadcrumbBlog, { breadcrumb });
|
|
40131
40040
|
}, [breadcrumbSlot, breadcrumb]);
|
|
40132
|
-
const primaryPostContent =
|
|
40041
|
+
const primaryPostContent = React25.useMemo(() => {
|
|
40133
40042
|
if (primaryPostSlot) return primaryPostSlot;
|
|
40134
40043
|
if (!primaryPost) return null;
|
|
40135
40044
|
return /* @__PURE__ */ jsx(
|
|
@@ -40141,7 +40050,7 @@ function BlogFilteredResultsComponent({
|
|
|
40141
40050
|
}
|
|
40142
40051
|
);
|
|
40143
40052
|
}, [primaryPostSlot, primaryPost, optixFlowConfig, postCardClassName]);
|
|
40144
|
-
const categoriesContent =
|
|
40053
|
+
const categoriesContent = React25.useMemo(() => {
|
|
40145
40054
|
if (categoriesSlot) return categoriesSlot;
|
|
40146
40055
|
if (!categories || categories.length === 0) return null;
|
|
40147
40056
|
return /* @__PURE__ */ jsx(
|
|
@@ -40160,7 +40069,7 @@ function BlogFilteredResultsComponent({
|
|
|
40160
40069
|
handleCategoryChange,
|
|
40161
40070
|
categoriesClassName
|
|
40162
40071
|
]);
|
|
40163
|
-
const postsContent =
|
|
40072
|
+
const postsContent = React25.useMemo(() => {
|
|
40164
40073
|
if (postsSlot) return postsSlot;
|
|
40165
40074
|
return postsToDisplay.slice(0, visibleCount).map((post) => {
|
|
40166
40075
|
const postKey = post.id || String(post.title) || Math.random().toString();
|
|
@@ -40181,7 +40090,7 @@ function BlogFilteredResultsComponent({
|
|
|
40181
40090
|
optixFlowConfig,
|
|
40182
40091
|
postCardClassName
|
|
40183
40092
|
]);
|
|
40184
|
-
const loadMoreContent =
|
|
40093
|
+
const loadMoreContent = React25.useMemo(() => {
|
|
40185
40094
|
if (loadMoreSlot) return loadMoreSlot;
|
|
40186
40095
|
if (!loadMoreAction || !hasMore) return null;
|
|
40187
40096
|
const {
|
|
@@ -40307,7 +40216,7 @@ function BlogMasonryFeaturedComponent({
|
|
|
40307
40216
|
}) {
|
|
40308
40217
|
const featuredPost = posts?.[0];
|
|
40309
40218
|
const otherPosts = posts?.slice(1);
|
|
40310
|
-
const featuredPostContent =
|
|
40219
|
+
const featuredPostContent = React25.useMemo(() => {
|
|
40311
40220
|
if (featuredSlot) return featuredSlot;
|
|
40312
40221
|
if (!featuredPost) return null;
|
|
40313
40222
|
const postHref = featuredPost.href || featuredPost.url || featuredPost.link || "#";
|
|
@@ -40357,7 +40266,7 @@ function BlogMasonryFeaturedComponent({
|
|
|
40357
40266
|
featuredImageClassName,
|
|
40358
40267
|
optixFlowConfig
|
|
40359
40268
|
]);
|
|
40360
|
-
const otherPostsContent =
|
|
40269
|
+
const otherPostsContent = React25.useMemo(() => {
|
|
40361
40270
|
if (postsSlot) return postsSlot;
|
|
40362
40271
|
if (!otherPosts || otherPosts.length === 0) return null;
|
|
40363
40272
|
return otherPosts.map((post) => {
|
|
@@ -40446,7 +40355,7 @@ function BlogHorizontalTimelineComponent({
|
|
|
40446
40355
|
pattern,
|
|
40447
40356
|
patternOpacity
|
|
40448
40357
|
}) {
|
|
40449
|
-
const renderPosts =
|
|
40358
|
+
const renderPosts = React25.useMemo(() => {
|
|
40450
40359
|
if (postsSlot) return postsSlot;
|
|
40451
40360
|
if (!posts || posts.length === 0) return null;
|
|
40452
40361
|
return posts.map((post, index) => {
|
|
@@ -40571,7 +40480,7 @@ function BlogGridNinePosts({
|
|
|
40571
40480
|
pattern,
|
|
40572
40481
|
patternOpacity
|
|
40573
40482
|
}) {
|
|
40574
|
-
const renderedCtaAction =
|
|
40483
|
+
const renderedCtaAction = React25.useMemo(() => {
|
|
40575
40484
|
if (ctaSlot) return ctaSlot;
|
|
40576
40485
|
if (!ctaAction) return null;
|
|
40577
40486
|
const {
|
|
@@ -40596,7 +40505,7 @@ function BlogGridNinePosts({
|
|
|
40596
40505
|
}
|
|
40597
40506
|
);
|
|
40598
40507
|
}, [ctaSlot, ctaAction]);
|
|
40599
|
-
const renderedPosts =
|
|
40508
|
+
const renderedPosts = React25.useMemo(() => {
|
|
40600
40509
|
if (postsSlot) return postsSlot;
|
|
40601
40510
|
if (!posts || posts.length === 0) return null;
|
|
40602
40511
|
return posts.map((post) => {
|
|
@@ -40694,9 +40603,9 @@ var AppleCarousel = ({
|
|
|
40694
40603
|
className,
|
|
40695
40604
|
containerClassName
|
|
40696
40605
|
}) => {
|
|
40697
|
-
const carouselRef =
|
|
40698
|
-
const [canScrollLeft, setCanScrollLeft] =
|
|
40699
|
-
const [canScrollRight, setCanScrollRight] =
|
|
40606
|
+
const carouselRef = React25__default.useRef(null);
|
|
40607
|
+
const [canScrollLeft, setCanScrollLeft] = React25__default.useState(false);
|
|
40608
|
+
const [canScrollRight, setCanScrollRight] = React25__default.useState(true);
|
|
40700
40609
|
const [currentIndex, setCurrentIndex] = useState(0);
|
|
40701
40610
|
useEffect(() => {
|
|
40702
40611
|
if (carouselRef.current) {
|
|
@@ -40933,7 +40842,7 @@ function BlogCarouselAppleComponent({
|
|
|
40933
40842
|
containerClassName,
|
|
40934
40843
|
cardClassName
|
|
40935
40844
|
}) {
|
|
40936
|
-
const carouselCards =
|
|
40845
|
+
const carouselCards = React25.useMemo(() => {
|
|
40937
40846
|
if (!posts || posts.length === 0) return [];
|
|
40938
40847
|
return posts.map(
|
|
40939
40848
|
(post, idx) => ({
|
|
@@ -40945,7 +40854,7 @@ function BlogCarouselAppleComponent({
|
|
|
40945
40854
|
})
|
|
40946
40855
|
);
|
|
40947
40856
|
}, [posts]);
|
|
40948
|
-
const cardElements =
|
|
40857
|
+
const cardElements = React25.useMemo(() => {
|
|
40949
40858
|
if (!posts || posts.length === 0) return [];
|
|
40950
40859
|
return carouselCards.map((card, index) => {
|
|
40951
40860
|
const post = posts[index];
|
|
@@ -41030,7 +40939,7 @@ function ArticleHeroProseComponent({
|
|
|
41030
40939
|
description,
|
|
41031
40940
|
authorImage
|
|
41032
40941
|
} = post ?? {};
|
|
41033
|
-
const authorContent =
|
|
40942
|
+
const authorContent = React25.useMemo(() => {
|
|
41034
40943
|
if (authorSlot) return authorSlot;
|
|
41035
40944
|
if (!authorName) return null;
|
|
41036
40945
|
return /* @__PURE__ */ jsxs(
|
|
@@ -41064,7 +40973,7 @@ function ArticleHeroProseComponent({
|
|
|
41064
40973
|
dateFormat,
|
|
41065
40974
|
authorClassName
|
|
41066
40975
|
]);
|
|
41067
|
-
const heroMediaContent =
|
|
40976
|
+
const heroMediaContent = React25.useMemo(() => {
|
|
41068
40977
|
if (heroMediaSlot) return heroMediaSlot;
|
|
41069
40978
|
if (!image) return null;
|
|
41070
40979
|
return /* @__PURE__ */ jsx(
|
|
@@ -41165,7 +41074,7 @@ function ArticleSidebarStickyComponent({
|
|
|
41165
41074
|
pattern,
|
|
41166
41075
|
patternOpacity
|
|
41167
41076
|
}) {
|
|
41168
|
-
const backLinkContent =
|
|
41077
|
+
const backLinkContent = React25.useMemo(() => {
|
|
41169
41078
|
if (backLinkSlot) return backLinkSlot;
|
|
41170
41079
|
if (!backHref && !backText) return null;
|
|
41171
41080
|
return /* @__PURE__ */ jsxs(
|
|
@@ -41183,7 +41092,7 @@ function ArticleSidebarStickyComponent({
|
|
|
41183
41092
|
}
|
|
41184
41093
|
);
|
|
41185
41094
|
}, [backLinkSlot, backHref, backText, backIcon, backLinkClassName]);
|
|
41186
|
-
const renderAuthor =
|
|
41095
|
+
const renderAuthor = React25.useCallback(
|
|
41187
41096
|
(isMobile = false) => {
|
|
41188
41097
|
if (authorSlot) return authorSlot;
|
|
41189
41098
|
if (!authorName) return null;
|
|
@@ -41215,7 +41124,7 @@ function ArticleSidebarStickyComponent({
|
|
|
41215
41124
|
authorClassName
|
|
41216
41125
|
]
|
|
41217
41126
|
);
|
|
41218
|
-
const heroMediaContent =
|
|
41127
|
+
const heroMediaContent = React25.useMemo(() => {
|
|
41219
41128
|
if (heroMediaSlot) return heroMediaSlot;
|
|
41220
41129
|
if (!heroImageSrc) return null;
|
|
41221
41130
|
return /* @__PURE__ */ jsx(
|
|
@@ -41322,10 +41231,10 @@ function ArticleTocSidebarComponent({
|
|
|
41322
41231
|
patternOpacity
|
|
41323
41232
|
}) {
|
|
41324
41233
|
const ctaActions = ctaActionsProp ?? (ctaButtonText ? [{ label: ctaButtonText, href: ctaButtonHref || "#", variant: "default", className: "w-full" }] : []);
|
|
41325
|
-
const [activeSection, setActiveSection] =
|
|
41234
|
+
const [activeSection, setActiveSection] = React25.useState(
|
|
41326
41235
|
sections?.[0]?.id || ""
|
|
41327
41236
|
);
|
|
41328
|
-
|
|
41237
|
+
React25.useEffect(() => {
|
|
41329
41238
|
if (!enableTocTracking || !sections || sections.length === 0) return;
|
|
41330
41239
|
const observer = new IntersectionObserver(
|
|
41331
41240
|
(entries) => {
|
|
@@ -41343,12 +41252,12 @@ function ArticleTocSidebarComponent({
|
|
|
41343
41252
|
});
|
|
41344
41253
|
return () => observer.disconnect();
|
|
41345
41254
|
}, [sections, enableTocTracking]);
|
|
41346
|
-
const categoryContent =
|
|
41255
|
+
const categoryContent = React25.useMemo(() => {
|
|
41347
41256
|
if (categorySlot) return categorySlot;
|
|
41348
41257
|
if (!category) return null;
|
|
41349
41258
|
return /* @__PURE__ */ jsx(Badge, { variant: "secondary", children: category });
|
|
41350
41259
|
}, [categorySlot, category]);
|
|
41351
|
-
const authorContent =
|
|
41260
|
+
const authorContent = React25.useMemo(() => {
|
|
41352
41261
|
if (authorSlot) return authorSlot;
|
|
41353
41262
|
if (!authorName) return null;
|
|
41354
41263
|
return /* @__PURE__ */ jsxs("div", { className: cn("mt-6 flex items-center gap-4", authorClassName), children: [
|
|
@@ -41368,7 +41277,7 @@ function ArticleTocSidebarComponent({
|
|
|
41368
41277
|
] })
|
|
41369
41278
|
] });
|
|
41370
41279
|
}, [authorSlot, authorName, authorImage, authorHref, publishDate, readTime, authorClassName]);
|
|
41371
|
-
const heroMediaContent =
|
|
41280
|
+
const heroMediaContent = React25.useMemo(() => {
|
|
41372
41281
|
if (heroMediaSlot) return heroMediaSlot;
|
|
41373
41282
|
if (!heroImageSrc) return null;
|
|
41374
41283
|
return /* @__PURE__ */ jsx(
|
|
@@ -41381,7 +41290,7 @@ function ArticleTocSidebarComponent({
|
|
|
41381
41290
|
}
|
|
41382
41291
|
);
|
|
41383
41292
|
}, [heroMediaSlot, heroImageSrc, heroImageAlt, heroImageClassName, optixFlowConfig]);
|
|
41384
|
-
const tocContent =
|
|
41293
|
+
const tocContent = React25.useMemo(() => {
|
|
41385
41294
|
if (tocSlot) return tocSlot;
|
|
41386
41295
|
if (!sections || sections.length === 0) return null;
|
|
41387
41296
|
return /* @__PURE__ */ jsxs("div", { className: cn("rounded-lg border p-4", tocClassName), children: [
|
|
@@ -41389,7 +41298,7 @@ function ArticleTocSidebarComponent({
|
|
|
41389
41298
|
/* @__PURE__ */ jsx("nav", { className: "space-y-2", children: sections.map((section) => {
|
|
41390
41299
|
const isActive = activeSection === section.id;
|
|
41391
41300
|
if (renderSectionLink) {
|
|
41392
|
-
return /* @__PURE__ */ jsx(
|
|
41301
|
+
return /* @__PURE__ */ jsx(React25.Fragment, { children: renderSectionLink(section, isActive) }, section.id);
|
|
41393
41302
|
}
|
|
41394
41303
|
return /* @__PURE__ */ jsx(
|
|
41395
41304
|
Pressable,
|
|
@@ -41406,7 +41315,7 @@ function ArticleTocSidebarComponent({
|
|
|
41406
41315
|
}) })
|
|
41407
41316
|
] });
|
|
41408
41317
|
}, [tocSlot, sections, activeSection, renderSectionLink, tocClassName]);
|
|
41409
|
-
const ctaContent =
|
|
41318
|
+
const ctaContent = React25.useMemo(() => {
|
|
41410
41319
|
if (ctaSlot) return ctaSlot;
|
|
41411
41320
|
if (!ctaTitle && !ctaDescription && (!ctaActions || ctaActions.length === 0)) return null;
|
|
41412
41321
|
return /* @__PURE__ */ jsxs("div", { className: cn("rounded-lg border p-4", getNestedCardBg(background, "subtle"), getNestedCardTextColor(background), ctaClassName), children: [
|
|
@@ -41495,11 +41404,11 @@ function ArticleBreadcrumbSocialComponent({
|
|
|
41495
41404
|
patternOpacity
|
|
41496
41405
|
}) {
|
|
41497
41406
|
const author = authorProp ?? (authorName ? { name: authorName, image: authorImage, role: authorRole } : void 0);
|
|
41498
|
-
const [activeSection, setActiveSection] =
|
|
41407
|
+
const [activeSection, setActiveSection] = React25.useState(
|
|
41499
41408
|
sections?.[0]?.id || ""
|
|
41500
41409
|
);
|
|
41501
|
-
const [showBackToTop, setShowBackToTop] =
|
|
41502
|
-
|
|
41410
|
+
const [showBackToTop, setShowBackToTop] = React25.useState(false);
|
|
41411
|
+
React25.useEffect(() => {
|
|
41503
41412
|
if (!enableTocTracking || !sections || sections.length === 0) return;
|
|
41504
41413
|
const observer = new IntersectionObserver(
|
|
41505
41414
|
(entries) => {
|
|
@@ -41517,7 +41426,7 @@ function ArticleBreadcrumbSocialComponent({
|
|
|
41517
41426
|
});
|
|
41518
41427
|
return () => observer.disconnect();
|
|
41519
41428
|
}, [sections, enableTocTracking]);
|
|
41520
|
-
|
|
41429
|
+
React25.useEffect(() => {
|
|
41521
41430
|
if (!enableBackToTop) return;
|
|
41522
41431
|
const handleScroll = () => {
|
|
41523
41432
|
setShowBackToTop(window.scrollY > 400);
|
|
@@ -41525,15 +41434,15 @@ function ArticleBreadcrumbSocialComponent({
|
|
|
41525
41434
|
window.addEventListener("scroll", handleScroll);
|
|
41526
41435
|
return () => window.removeEventListener("scroll", handleScroll);
|
|
41527
41436
|
}, [enableBackToTop]);
|
|
41528
|
-
const scrollToTop =
|
|
41437
|
+
const scrollToTop = React25.useCallback(() => {
|
|
41529
41438
|
window.scrollTo({ top: 0, behavior: "smooth" });
|
|
41530
41439
|
}, []);
|
|
41531
|
-
const breadcrumbsContent =
|
|
41440
|
+
const breadcrumbsContent = React25.useMemo(() => {
|
|
41532
41441
|
if (breadcrumbsSlot) return breadcrumbsSlot;
|
|
41533
41442
|
if (!breadcrumbs || breadcrumbs.length === 0) return null;
|
|
41534
41443
|
return /* @__PURE__ */ jsx(Breadcrumb, { className: cn("mb-8", breadcrumbClassName), children: /* @__PURE__ */ jsxs(BreadcrumbList, { children: [
|
|
41535
41444
|
/* @__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(
|
|
41445
|
+
breadcrumbs.map((crumb, index) => /* @__PURE__ */ jsxs(React25.Fragment, { children: [
|
|
41537
41446
|
/* @__PURE__ */ jsx(BreadcrumbSeparator, {}),
|
|
41538
41447
|
/* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbLink, { asChild: true, children: /* @__PURE__ */ jsx(Pressable, { href: crumb.href, children: crumb.label }) }) })
|
|
41539
41448
|
] }, index)),
|
|
@@ -41543,7 +41452,7 @@ function ArticleBreadcrumbSocialComponent({
|
|
|
41543
41452
|
] })
|
|
41544
41453
|
] }) });
|
|
41545
41454
|
}, [breadcrumbsSlot, breadcrumbs, currentPage, breadcrumbClassName]);
|
|
41546
|
-
const authorContent =
|
|
41455
|
+
const authorContent = React25.useMemo(() => {
|
|
41547
41456
|
if (authorSlot) return authorSlot;
|
|
41548
41457
|
if (!author) return null;
|
|
41549
41458
|
return /* @__PURE__ */ jsxs(
|
|
@@ -41566,7 +41475,7 @@ function ArticleBreadcrumbSocialComponent({
|
|
|
41566
41475
|
}
|
|
41567
41476
|
);
|
|
41568
41477
|
}, [authorSlot, author, publishDate, readTime, authorClassName]);
|
|
41569
|
-
const heroMediaContent =
|
|
41478
|
+
const heroMediaContent = React25.useMemo(() => {
|
|
41570
41479
|
if (heroMediaSlot) return heroMediaSlot;
|
|
41571
41480
|
if (!heroImageSrc) return null;
|
|
41572
41481
|
return /* @__PURE__ */ jsx(
|
|
@@ -41588,7 +41497,7 @@ function ArticleBreadcrumbSocialComponent({
|
|
|
41588
41497
|
heroImageClassName,
|
|
41589
41498
|
optixFlowConfig
|
|
41590
41499
|
]);
|
|
41591
|
-
const tocContent =
|
|
41500
|
+
const tocContent = React25.useMemo(() => {
|
|
41592
41501
|
if (tocSlot) return tocSlot;
|
|
41593
41502
|
if (!sections || sections.length === 0) return null;
|
|
41594
41503
|
return /* @__PURE__ */ jsxs("div", { className: cn("rounded-lg border p-4", tocClassName), children: [
|
|
@@ -41596,7 +41505,7 @@ function ArticleBreadcrumbSocialComponent({
|
|
|
41596
41505
|
/* @__PURE__ */ jsx("nav", { className: "space-y-2", children: sections.map((section) => {
|
|
41597
41506
|
const isActive = activeSection === section.id;
|
|
41598
41507
|
if (renderSectionLink) {
|
|
41599
|
-
return /* @__PURE__ */ jsx(
|
|
41508
|
+
return /* @__PURE__ */ jsx(React25.Fragment, { children: renderSectionLink(section, isActive) }, section.id);
|
|
41600
41509
|
}
|
|
41601
41510
|
return /* @__PURE__ */ jsx(
|
|
41602
41511
|
Pressable,
|
|
@@ -41701,11 +41610,11 @@ function ArticleCompactTocComponent({
|
|
|
41701
41610
|
pattern,
|
|
41702
41611
|
patternOpacity
|
|
41703
41612
|
}) {
|
|
41704
|
-
const [activeSection, setActiveSection] =
|
|
41613
|
+
const [activeSection, setActiveSection] = React25.useState(
|
|
41705
41614
|
sections?.[0]?.id || ""
|
|
41706
41615
|
);
|
|
41707
|
-
const [isTocOpen, setIsTocOpen] =
|
|
41708
|
-
|
|
41616
|
+
const [isTocOpen, setIsTocOpen] = React25.useState(false);
|
|
41617
|
+
React25.useEffect(() => {
|
|
41709
41618
|
if (!enableTocTracking) return;
|
|
41710
41619
|
const observer = new IntersectionObserver(
|
|
41711
41620
|
(entries) => {
|
|
@@ -41723,12 +41632,12 @@ function ArticleCompactTocComponent({
|
|
|
41723
41632
|
});
|
|
41724
41633
|
return () => observer.disconnect();
|
|
41725
41634
|
}, [sections, enableTocTracking]);
|
|
41726
|
-
const breadcrumbsContent =
|
|
41635
|
+
const breadcrumbsContent = React25.useMemo(() => {
|
|
41727
41636
|
if (breadcrumbsSlot) return breadcrumbsSlot;
|
|
41728
41637
|
if (!breadcrumbs && !currentPage) return null;
|
|
41729
41638
|
return /* @__PURE__ */ jsx(Breadcrumb, { className: cn("mb-6 md:mb-20", breadcrumbClassName), children: /* @__PURE__ */ jsxs(BreadcrumbList, { children: [
|
|
41730
41639
|
/* @__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(
|
|
41640
|
+
breadcrumbs?.map((crumb, index) => /* @__PURE__ */ jsxs(React25.Fragment, { children: [
|
|
41732
41641
|
/* @__PURE__ */ jsx(BreadcrumbSeparator, {}),
|
|
41733
41642
|
/* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbLink, { asChild: true, children: /* @__PURE__ */ jsx(Pressable, { href: crumb.href, children: crumb.label }) }) })
|
|
41734
41643
|
] }, index)),
|
|
@@ -41736,7 +41645,7 @@ function ArticleCompactTocComponent({
|
|
|
41736
41645
|
/* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbPage, { children: currentPage }) })
|
|
41737
41646
|
] }) });
|
|
41738
41647
|
}, [breadcrumbsSlot, breadcrumbs, currentPage, breadcrumbClassName]);
|
|
41739
|
-
const shareContent =
|
|
41648
|
+
const shareContent = React25.useMemo(() => {
|
|
41740
41649
|
if (shareSlot) return shareSlot;
|
|
41741
41650
|
if (!socialLinks || socialLinks.length === 0) return null;
|
|
41742
41651
|
return /* @__PURE__ */ jsxs("div", { className: cn("mt-6 flex items-center gap-2", shareClassName), children: [
|
|
@@ -41753,13 +41662,13 @@ function ArticleCompactTocComponent({
|
|
|
41753
41662
|
))
|
|
41754
41663
|
] });
|
|
41755
41664
|
}, [shareSlot, socialLinks, shareClassName]);
|
|
41756
|
-
const renderTocLinks =
|
|
41665
|
+
const renderTocLinks = React25.useCallback(
|
|
41757
41666
|
(onLinkClick) => {
|
|
41758
41667
|
if (!sections) return null;
|
|
41759
41668
|
return sections.map((section) => {
|
|
41760
41669
|
const isActive = activeSection === section.id;
|
|
41761
41670
|
if (renderSectionLink) {
|
|
41762
|
-
return /* @__PURE__ */ jsx(
|
|
41671
|
+
return /* @__PURE__ */ jsx(React25.Fragment, { children: renderSectionLink(section, isActive) }, section.id);
|
|
41763
41672
|
}
|
|
41764
41673
|
return /* @__PURE__ */ jsx(
|
|
41765
41674
|
Pressable,
|
|
@@ -41778,7 +41687,7 @@ function ArticleCompactTocComponent({
|
|
|
41778
41687
|
},
|
|
41779
41688
|
[sections, activeSection, renderSectionLink]
|
|
41780
41689
|
);
|
|
41781
|
-
const tocContent =
|
|
41690
|
+
const tocContent = React25.useMemo(() => {
|
|
41782
41691
|
if (tocSlot) return tocSlot;
|
|
41783
41692
|
if (!sections || sections.length === 0) return null;
|
|
41784
41693
|
return /* @__PURE__ */ jsx("div", { className: "mb-8 lg:hidden", children: /* @__PURE__ */ jsxs(Popover, { open: isTocOpen, onOpenChange: setIsTocOpen, children: [
|
|
@@ -41811,7 +41720,7 @@ function ArticleCompactTocComponent({
|
|
|
41811
41720
|
)
|
|
41812
41721
|
] }) });
|
|
41813
41722
|
}, [tocSlot, sections, isTocOpen, tocClassName, renderTocLinks]);
|
|
41814
|
-
const desktopTocContent =
|
|
41723
|
+
const desktopTocContent = React25.useMemo(() => {
|
|
41815
41724
|
if (tocSlot) return null;
|
|
41816
41725
|
if (!sections || sections.length === 0) return null;
|
|
41817
41726
|
return /* @__PURE__ */ jsx(
|
|
@@ -41828,7 +41737,7 @@ function ArticleCompactTocComponent({
|
|
|
41828
41737
|
}
|
|
41829
41738
|
);
|
|
41830
41739
|
}, [tocSlot, sections, tocClassName, renderTocLinks]);
|
|
41831
|
-
const heroMediaContent =
|
|
41740
|
+
const heroMediaContent = React25.useMemo(() => {
|
|
41832
41741
|
if (heroMediaSlot) return heroMediaSlot;
|
|
41833
41742
|
if (!heroImageSrc) return null;
|
|
41834
41743
|
return /* @__PURE__ */ jsx(
|
|
@@ -41958,10 +41867,10 @@ function ArticleChaptersAuthorComponent({
|
|
|
41958
41867
|
variant: "default"
|
|
41959
41868
|
}
|
|
41960
41869
|
] : []);
|
|
41961
|
-
const [activeChapter, setActiveChapter] =
|
|
41870
|
+
const [activeChapter, setActiveChapter] = React25.useState(
|
|
41962
41871
|
chapters?.[0]?.id || ""
|
|
41963
41872
|
);
|
|
41964
|
-
|
|
41873
|
+
React25.useEffect(() => {
|
|
41965
41874
|
if (!enableChapterTracking || !chapters || chapters.length === 0) return;
|
|
41966
41875
|
const observer = new IntersectionObserver(
|
|
41967
41876
|
(entries) => {
|
|
@@ -41979,12 +41888,12 @@ function ArticleChaptersAuthorComponent({
|
|
|
41979
41888
|
});
|
|
41980
41889
|
return () => observer.disconnect();
|
|
41981
41890
|
}, [chapters, enableChapterTracking]);
|
|
41982
|
-
const breadcrumbsContent =
|
|
41891
|
+
const breadcrumbsContent = React25.useMemo(() => {
|
|
41983
41892
|
if (breadcrumbsSlot) return breadcrumbsSlot;
|
|
41984
41893
|
if (!breadcrumbs || breadcrumbs.length === 0) return null;
|
|
41985
41894
|
return /* @__PURE__ */ jsx(Breadcrumb, { className: cn("mb-8 md:mb-20", breadcrumbClassName), children: /* @__PURE__ */ jsxs(BreadcrumbList, { children: [
|
|
41986
41895
|
/* @__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(
|
|
41896
|
+
breadcrumbs.map((crumb, index) => /* @__PURE__ */ jsxs(React25.Fragment, { children: [
|
|
41988
41897
|
/* @__PURE__ */ jsx(BreadcrumbSeparator, {}),
|
|
41989
41898
|
/* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbLink, { asChild: true, children: /* @__PURE__ */ jsx(Pressable, { href: crumb.href, children: crumb.label }) }) })
|
|
41990
41899
|
] }, index)),
|
|
@@ -41992,7 +41901,7 @@ function ArticleChaptersAuthorComponent({
|
|
|
41992
41901
|
/* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbPage, { children: typeof currentPage === "string" ? currentPage : currentPage }) })
|
|
41993
41902
|
] }) });
|
|
41994
41903
|
}, [breadcrumbsSlot, breadcrumbs, currentPage, breadcrumbClassName]);
|
|
41995
|
-
const chaptersNavContent =
|
|
41904
|
+
const chaptersNavContent = React25.useMemo(() => {
|
|
41996
41905
|
if (chaptersSlot) return chaptersSlot;
|
|
41997
41906
|
if (!chapters || chapters.length === 0) return null;
|
|
41998
41907
|
return /* @__PURE__ */ jsxs("div", { className: cn("rounded-lg border p-4", chaptersClassName), children: [
|
|
@@ -42000,7 +41909,7 @@ function ArticleChaptersAuthorComponent({
|
|
|
42000
41909
|
/* @__PURE__ */ jsx("nav", { className: "space-y-2", children: chapters.map((chapter) => {
|
|
42001
41910
|
const isActive = activeChapter === chapter.id;
|
|
42002
41911
|
if (renderChapterLink) {
|
|
42003
|
-
return /* @__PURE__ */ jsx(
|
|
41912
|
+
return /* @__PURE__ */ jsx(React25.Fragment, { children: renderChapterLink(chapter, isActive) }, chapter.id);
|
|
42004
41913
|
}
|
|
42005
41914
|
return /* @__PURE__ */ jsxs(
|
|
42006
41915
|
Pressable,
|
|
@@ -42026,7 +41935,7 @@ function ArticleChaptersAuthorComponent({
|
|
|
42026
41935
|
renderChapterLink,
|
|
42027
41936
|
chaptersClassName
|
|
42028
41937
|
]);
|
|
42029
|
-
const authorCardContent =
|
|
41938
|
+
const authorCardContent = React25.useMemo(() => {
|
|
42030
41939
|
if (authorSlot) return authorSlot;
|
|
42031
41940
|
if (!author) return null;
|
|
42032
41941
|
let socialLinksContent = null;
|
|
@@ -42087,7 +41996,7 @@ function ArticleChaptersAuthorComponent({
|
|
|
42087
41996
|
socialLinksContent
|
|
42088
41997
|
] });
|
|
42089
41998
|
}, [authorSlot, author, authorClassName]);
|
|
42090
|
-
const heroMediaContent =
|
|
41999
|
+
const heroMediaContent = React25.useMemo(() => {
|
|
42091
42000
|
if (heroMediaSlot) return heroMediaSlot;
|
|
42092
42001
|
if (!heroImageSrc) return null;
|
|
42093
42002
|
return /* @__PURE__ */ jsx(
|
|
@@ -42109,7 +42018,7 @@ function ArticleChaptersAuthorComponent({
|
|
|
42109
42018
|
heroImageClassName,
|
|
42110
42019
|
optixFlowConfig
|
|
42111
42020
|
]);
|
|
42112
|
-
const conclusionContent =
|
|
42021
|
+
const conclusionContent = React25.useMemo(() => {
|
|
42113
42022
|
if (conclusionSlot) return conclusionSlot;
|
|
42114
42023
|
if (!conclusionTitle && !conclusionDescription && (!conclusionActions || conclusionActions.length === 0))
|
|
42115
42024
|
return null;
|
|
@@ -42261,7 +42170,7 @@ function ArticleSplitAnimatedComponent({
|
|
|
42261
42170
|
}
|
|
42262
42171
|
] : []);
|
|
42263
42172
|
const MotionWrapper = enableAnimations ? motion.div : "div";
|
|
42264
|
-
const categoryContent =
|
|
42173
|
+
const categoryContent = React25.useMemo(() => {
|
|
42265
42174
|
if (categorySlot) return categorySlot;
|
|
42266
42175
|
if (!category) return null;
|
|
42267
42176
|
return /* @__PURE__ */ jsx(
|
|
@@ -42276,7 +42185,7 @@ function ArticleSplitAnimatedComponent({
|
|
|
42276
42185
|
}
|
|
42277
42186
|
);
|
|
42278
42187
|
}, [categorySlot, category, categoryHref, categoryClassName]);
|
|
42279
|
-
const heroMediaContent =
|
|
42188
|
+
const heroMediaContent = React25.useMemo(() => {
|
|
42280
42189
|
if (heroMediaSlot) return heroMediaSlot;
|
|
42281
42190
|
if (!image) return null;
|
|
42282
42191
|
return /* @__PURE__ */ jsx(
|
|
@@ -42289,7 +42198,7 @@ function ArticleSplitAnimatedComponent({
|
|
|
42289
42198
|
}
|
|
42290
42199
|
);
|
|
42291
42200
|
}, [heroMediaSlot, image, imageAlt, title, optixFlowConfig]);
|
|
42292
|
-
const authorContent =
|
|
42201
|
+
const authorContent = React25.useMemo(() => {
|
|
42293
42202
|
if (authorSlot) return authorSlot;
|
|
42294
42203
|
if (!authorName) return null;
|
|
42295
42204
|
return /* @__PURE__ */ jsxs("div", { className: cn("mt-8 flex items-center gap-4", authorClassName), children: [
|
|
@@ -42317,7 +42226,7 @@ function ArticleSplitAnimatedComponent({
|
|
|
42317
42226
|
authorRole,
|
|
42318
42227
|
authorClassName
|
|
42319
42228
|
]);
|
|
42320
|
-
const ctaContent =
|
|
42229
|
+
const ctaContent = React25.useMemo(() => {
|
|
42321
42230
|
if (ctaSlot) return ctaSlot;
|
|
42322
42231
|
if (!ctaActions || ctaActions.length === 0) return null;
|
|
42323
42232
|
return /* @__PURE__ */ jsx("div", { className: cn("mt-8 flex flex-wrap gap-3", ctaClassName), children: ctaActions.map((action, index) => {
|
|
@@ -43774,7 +43683,7 @@ function FaqSidebarNavigation({
|
|
|
43774
43683
|
accordionTriggerClassName,
|
|
43775
43684
|
accordionContentClassName
|
|
43776
43685
|
}) {
|
|
43777
|
-
const [activeCategory, setActiveCategory] =
|
|
43686
|
+
const [activeCategory, setActiveCategory] = React25.useState(
|
|
43778
43687
|
categories && categories.length > 1 ? "all" : categories?.[0]?.id || ""
|
|
43779
43688
|
);
|
|
43780
43689
|
const filteredCategories = useMemo(() => {
|
|
@@ -44663,7 +44572,7 @@ function FaqSplitHero({
|
|
|
44663
44572
|
imageArea
|
|
44664
44573
|
] }) });
|
|
44665
44574
|
}
|
|
44666
|
-
var Controls =
|
|
44575
|
+
var Controls = React25.memo(
|
|
44667
44576
|
({
|
|
44668
44577
|
handleNext,
|
|
44669
44578
|
handlePrevious,
|
|
@@ -44694,7 +44603,7 @@ var Controls = React28.memo(
|
|
|
44694
44603
|
] });
|
|
44695
44604
|
}
|
|
44696
44605
|
);
|
|
44697
|
-
var FeatureCard =
|
|
44606
|
+
var FeatureCard = React25.memo(
|
|
44698
44607
|
({ feature, isActive, onClick }) => {
|
|
44699
44608
|
const variants2 = useMemo(
|
|
44700
44609
|
() => ({
|
|
@@ -44802,7 +44711,7 @@ var FeatureCard = React28.memo(
|
|
|
44802
44711
|
) });
|
|
44803
44712
|
}
|
|
44804
44713
|
);
|
|
44805
|
-
var FeaturesDesktop =
|
|
44714
|
+
var FeaturesDesktop = React25.memo(
|
|
44806
44715
|
({
|
|
44807
44716
|
features,
|
|
44808
44717
|
handleNext,
|
|
@@ -44836,7 +44745,7 @@ var FeaturesDesktop = React28.memo(
|
|
|
44836
44745
|
] });
|
|
44837
44746
|
}
|
|
44838
44747
|
);
|
|
44839
|
-
var FeaturesMobile =
|
|
44748
|
+
var FeaturesMobile = React25.memo(
|
|
44840
44749
|
({
|
|
44841
44750
|
features,
|
|
44842
44751
|
handleNext,
|
|
@@ -44927,8 +44836,8 @@ function FeatureAnimatedCarousel({
|
|
|
44927
44836
|
spacing = "py-12 md:py-32",
|
|
44928
44837
|
containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8"
|
|
44929
44838
|
}) {
|
|
44930
|
-
const [activeIndex, setActiveIndex] =
|
|
44931
|
-
const [direction, setDirection] =
|
|
44839
|
+
const [activeIndex, setActiveIndex] = React25.useState(0);
|
|
44840
|
+
const [direction, setDirection] = React25.useState(1);
|
|
44932
44841
|
const handleNext = useCallback(() => {
|
|
44933
44842
|
if (features && activeIndex < features.length - 1) {
|
|
44934
44843
|
setDirection(1);
|
|
@@ -45790,7 +45699,7 @@ function FooterInfoCardsAccordion({
|
|
|
45790
45699
|
patternOpacity,
|
|
45791
45700
|
optixFlowConfig
|
|
45792
45701
|
}) {
|
|
45793
|
-
const [email, setEmail] =
|
|
45702
|
+
const [email, setEmail] = React25.useState("");
|
|
45794
45703
|
(/* @__PURE__ */ new Date()).getFullYear();
|
|
45795
45704
|
const handleSubmit = (e) => {
|
|
45796
45705
|
e.preventDefault();
|
|
@@ -46095,13 +46004,13 @@ function CaseStudiesImageGrid({
|
|
|
46095
46004
|
patternOpacity,
|
|
46096
46005
|
optixFlowConfig
|
|
46097
46006
|
}) {
|
|
46098
|
-
const getGridClass =
|
|
46007
|
+
const getGridClass = React25.useCallback((index) => {
|
|
46099
46008
|
if (index === 0 || index === 4) {
|
|
46100
46009
|
return "row-span-2 aspect-square lg:aspect-auto";
|
|
46101
46010
|
}
|
|
46102
46011
|
return "aspect-3/2 md:aspect-2/1";
|
|
46103
46012
|
}, []);
|
|
46104
|
-
const renderedItems =
|
|
46013
|
+
const renderedItems = React25.useMemo(() => {
|
|
46105
46014
|
if (itemsSlot) return itemsSlot;
|
|
46106
46015
|
if (!items || items.length === 0) return null;
|
|
46107
46016
|
return items.map((item, index) => /* @__PURE__ */ jsxs(
|
|
@@ -46187,7 +46096,7 @@ function CaseStudiesTestimonialStats({
|
|
|
46187
46096
|
patternOpacity,
|
|
46188
46097
|
optixFlowConfig
|
|
46189
46098
|
}) {
|
|
46190
|
-
const renderedTestimonials =
|
|
46099
|
+
const renderedTestimonials = React25.useMemo(() => {
|
|
46191
46100
|
if (testimonialsSlot) return testimonialsSlot;
|
|
46192
46101
|
if (!testimonials || testimonials.length === 0) return null;
|
|
46193
46102
|
return testimonials.map((testimonial, index) => /* @__PURE__ */ jsxs("div", { className: testimonialItemClassName, children: [
|
|
@@ -49660,7 +49569,7 @@ function CaseStudiesFeaturedBorder({
|
|
|
49660
49569
|
patternOpacity,
|
|
49661
49570
|
optixFlowConfig
|
|
49662
49571
|
}) {
|
|
49663
|
-
const renderedFeatured =
|
|
49572
|
+
const renderedFeatured = React25.useMemo(() => {
|
|
49664
49573
|
if (featuredSlot) return featuredSlot;
|
|
49665
49574
|
if (!featuredCaseStudy) return null;
|
|
49666
49575
|
return /* @__PURE__ */ jsxs(
|
|
@@ -49734,7 +49643,7 @@ function CaseStudiesFeaturedBorder({
|
|
|
49734
49643
|
featuredImageClassName,
|
|
49735
49644
|
optixFlowConfig
|
|
49736
49645
|
]);
|
|
49737
|
-
const renderedCaseStudies =
|
|
49646
|
+
const renderedCaseStudies = React25.useMemo(() => {
|
|
49738
49647
|
if (caseStudiesSlot) return caseStudiesSlot;
|
|
49739
49648
|
if (!caseStudies || caseStudies.length === 0) return null;
|
|
49740
49649
|
return caseStudies.map((item, idx) => /* @__PURE__ */ jsxs(
|
|
@@ -49843,7 +49752,7 @@ function CaseStudiesStatsCard({
|
|
|
49843
49752
|
patternOpacity,
|
|
49844
49753
|
optixFlowConfig
|
|
49845
49754
|
}) {
|
|
49846
|
-
const renderedStats =
|
|
49755
|
+
const renderedStats = React25.useMemo(() => {
|
|
49847
49756
|
if (statsSlot) return statsSlot;
|
|
49848
49757
|
if (!stats || stats.length === 0) return null;
|
|
49849
49758
|
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 +49760,7 @@ function CaseStudiesStatsCard({
|
|
|
49851
49760
|
/* @__PURE__ */ jsx("div", { className: "text-sm font-medium text-muted-foreground", children: item.text })
|
|
49852
49761
|
] }, `stats-${i}`)) });
|
|
49853
49762
|
}, [statsSlot, stats, statsClassName]);
|
|
49854
|
-
const renderedAuthor =
|
|
49763
|
+
const renderedAuthor = React25.useMemo(() => {
|
|
49855
49764
|
if (authorSlot) return authorSlot;
|
|
49856
49765
|
if (!author) return null;
|
|
49857
49766
|
return /* @__PURE__ */ jsxs("div", { className: cn("flex items-center gap-2.5", authorClassName), children: [
|
|
@@ -49865,7 +49774,7 @@ function CaseStudiesStatsCard({
|
|
|
49865
49774
|
] })
|
|
49866
49775
|
] });
|
|
49867
49776
|
}, [authorSlot, author, authorClassName]);
|
|
49868
|
-
const renderedActions =
|
|
49777
|
+
const renderedActions = React25.useMemo(() => {
|
|
49869
49778
|
if (actionsSlot) return actionsSlot;
|
|
49870
49779
|
if (!actions || actions.length === 0) return null;
|
|
49871
49780
|
return /* @__PURE__ */ jsx("div", { className: cn("shrink-0", actionsClassName), children: actions.map((action, index) => {
|
|
@@ -51240,23 +51149,6 @@ function HeroImageSlider({
|
|
|
51240
51149
|
privacyNoticeClassName,
|
|
51241
51150
|
gridClassName
|
|
51242
51151
|
}) {
|
|
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
51152
|
const renderActions = useMemo(() => {
|
|
51261
51153
|
if (actionsSlot) return actionsSlot;
|
|
51262
51154
|
if (!actions || actions.length === 0) return null;
|
|
@@ -51415,20 +51307,22 @@ function HeroImageSlider({
|
|
|
51415
51307
|
/* @__PURE__ */ jsx(
|
|
51416
51308
|
FormEngine,
|
|
51417
51309
|
{
|
|
51418
|
-
|
|
51419
|
-
|
|
51420
|
-
|
|
51421
|
-
|
|
51422
|
-
|
|
51423
|
-
|
|
51424
|
-
|
|
51425
|
-
|
|
51426
|
-
|
|
51427
|
-
|
|
51428
|
-
|
|
51429
|
-
|
|
51310
|
+
formEngineSetup: {
|
|
51311
|
+
...formEngineSetup,
|
|
51312
|
+
formLayoutSettings: {
|
|
51313
|
+
...formEngineSetup?.formLayoutSettings,
|
|
51314
|
+
formLayout: "standard",
|
|
51315
|
+
submitButtonSetup: {
|
|
51316
|
+
...formEngineSetup?.formLayoutSettings?.submitButtonSetup,
|
|
51317
|
+
submitLabel: /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
51318
|
+
buttonIcon,
|
|
51319
|
+
buttonText
|
|
51320
|
+
] })
|
|
51321
|
+
}
|
|
51322
|
+
}
|
|
51430
51323
|
},
|
|
51431
|
-
|
|
51324
|
+
defaultFields: DEFAULT_FORM_FIELDS42,
|
|
51325
|
+
defaultStyleRules: DEFAULT_STYLE_RULES7
|
|
51432
51326
|
}
|
|
51433
51327
|
),
|
|
51434
51328
|
privacyNotice && /* @__PURE__ */ jsx(
|
|
@@ -57013,7 +56907,7 @@ function HeroSplitImageNewsletter({
|
|
|
57013
56907
|
onError,
|
|
57014
56908
|
uploadTokens
|
|
57015
56909
|
});
|
|
57016
|
-
const renderForm =
|
|
56910
|
+
const renderForm = React25.useMemo(() => {
|
|
57017
56911
|
if (formSlot) return formSlot;
|
|
57018
56912
|
if (!formFields || formFields.length === 0) return null;
|
|
57019
56913
|
const defaultButtonAction = {
|
|
@@ -57092,7 +56986,7 @@ function HeroSplitImageNewsletter({
|
|
|
57092
56986
|
resetUpload,
|
|
57093
56987
|
resetSubmissionState
|
|
57094
56988
|
]);
|
|
57095
|
-
const renderImage =
|
|
56989
|
+
const renderImage = React25.useMemo(() => {
|
|
57096
56990
|
if (imageSlot) return imageSlot;
|
|
57097
56991
|
if (!image) return null;
|
|
57098
56992
|
return /* @__PURE__ */ jsx("div", { className: "relative lg:w-1/2", children: /* @__PURE__ */ jsx(
|
|
@@ -58520,7 +58414,7 @@ function HeroSaasDashboardPreview({
|
|
|
58520
58414
|
onError,
|
|
58521
58415
|
uploadTokens
|
|
58522
58416
|
});
|
|
58523
|
-
const renderBadge =
|
|
58417
|
+
const renderBadge = React25.useMemo(() => {
|
|
58524
58418
|
if (badgeSlot) return badgeSlot;
|
|
58525
58419
|
return /* @__PURE__ */ jsxs(
|
|
58526
58420
|
"div",
|
|
@@ -58535,7 +58429,7 @@ function HeroSaasDashboardPreview({
|
|
|
58535
58429
|
}
|
|
58536
58430
|
);
|
|
58537
58431
|
}, [badgeSlot, badgeIcon, badgeText]);
|
|
58538
|
-
const renderForm =
|
|
58432
|
+
const renderForm = React25.useMemo(() => {
|
|
58539
58433
|
if (formSlot) return formSlot;
|
|
58540
58434
|
const defaultButtonAction = {
|
|
58541
58435
|
label: "Start Free Trial",
|
|
@@ -58610,7 +58504,7 @@ function HeroSaasDashboardPreview({
|
|
|
58610
58504
|
resetUpload,
|
|
58611
58505
|
resetSubmissionState
|
|
58612
58506
|
]);
|
|
58613
|
-
const renderBrowserPreview =
|
|
58507
|
+
const renderBrowserPreview = React25.useMemo(() => {
|
|
58614
58508
|
if (browserPreviewSlot) return browserPreviewSlot;
|
|
58615
58509
|
if (!browserPreview) return null;
|
|
58616
58510
|
return /* @__PURE__ */ jsxs("div", { className: cn("relative mt-12 md:mt-20", previewClassName), children: [
|
|
@@ -60861,7 +60755,7 @@ function HeroEcommerceProductShowcase({
|
|
|
60861
60755
|
"flex flex-col md:flex-row items-center gap-4 md:gap-6 pt-8 md:pt-12",
|
|
60862
60756
|
statsClassName
|
|
60863
60757
|
),
|
|
60864
|
-
children: stats.map((stat, index) => /* @__PURE__ */ jsxs(
|
|
60758
|
+
children: stats.map((stat, index) => /* @__PURE__ */ jsxs(React25.Fragment, { children: [
|
|
60865
60759
|
index > 0 && /* @__PURE__ */ jsx("div", { className: "h-12 w-px bg-border hidden md:flex" }),
|
|
60866
60760
|
/* @__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
60761
|
/* @__PURE__ */ jsxs(
|
|
@@ -61305,24 +61199,7 @@ function HeroNewsletterMinimal({
|
|
|
61305
61199
|
disclaimerClassName,
|
|
61306
61200
|
statsClassName
|
|
61307
61201
|
}) {
|
|
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(() => {
|
|
61202
|
+
const renderStats = React25.useMemo(() => {
|
|
61326
61203
|
if (statsSlot) return statsSlot;
|
|
61327
61204
|
if (!stats || stats.length === 0) return null;
|
|
61328
61205
|
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 +61225,7 @@ function HeroNewsletterMinimal({
|
|
|
61348
61225
|
/* @__PURE__ */ jsx("div", { className: cn("text-sm"), children: stat.label })
|
|
61349
61226
|
] }) }, index));
|
|
61350
61227
|
}, [statsSlot, stats]);
|
|
61351
|
-
const renderForm =
|
|
61228
|
+
const renderForm = React25.useMemo(() => {
|
|
61352
61229
|
if (formSlot) return formSlot;
|
|
61353
61230
|
if (!formEngineSetup) return null;
|
|
61354
61231
|
const defaultButtonAction = {
|
|
@@ -61360,22 +61237,24 @@ function HeroNewsletterMinimal({
|
|
|
61360
61237
|
/* @__PURE__ */ jsx(
|
|
61361
61238
|
FormEngine,
|
|
61362
61239
|
{
|
|
61363
|
-
|
|
61364
|
-
|
|
61365
|
-
|
|
61366
|
-
|
|
61367
|
-
|
|
61368
|
-
|
|
61369
|
-
|
|
61370
|
-
|
|
61371
|
-
|
|
61372
|
-
|
|
61373
|
-
|
|
61374
|
-
|
|
61375
|
-
|
|
61376
|
-
|
|
61240
|
+
formEngineSetup: {
|
|
61241
|
+
...formEngineSetup,
|
|
61242
|
+
formLayoutSettings: {
|
|
61243
|
+
...formEngineSetup.formLayoutSettings,
|
|
61244
|
+
formLayout: "button-group",
|
|
61245
|
+
buttonGroupSetup: {
|
|
61246
|
+
...formEngineSetup.formLayoutSettings?.buttonGroupSetup,
|
|
61247
|
+
size: "lg",
|
|
61248
|
+
submitLabel: /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
61249
|
+
action.label,
|
|
61250
|
+
action.iconAfter
|
|
61251
|
+
] }),
|
|
61252
|
+
submitVariant: action.variant || "default"
|
|
61253
|
+
}
|
|
61254
|
+
}
|
|
61377
61255
|
},
|
|
61378
|
-
|
|
61256
|
+
defaultFields: DEFAULT_FORM_FIELDS45,
|
|
61257
|
+
defaultStyleRules: DEFAULT_STYLE_RULES8
|
|
61379
61258
|
}
|
|
61380
61259
|
),
|
|
61381
61260
|
helperText && (typeof helperText === "string" ? /* @__PURE__ */ jsx("p", { className: cn("text-sm mt-2 text-center"), children: helperText }) : helperText)
|
|
@@ -61384,8 +61263,6 @@ function HeroNewsletterMinimal({
|
|
|
61384
61263
|
formSlot,
|
|
61385
61264
|
formEngineSetup,
|
|
61386
61265
|
buttonAction,
|
|
61387
|
-
formFields,
|
|
61388
|
-
formStyleRules,
|
|
61389
61266
|
helperText
|
|
61390
61267
|
]);
|
|
61391
61268
|
return /* @__PURE__ */ jsx(
|
|
@@ -61515,7 +61392,7 @@ function HeroComingSoonCountdown({
|
|
|
61515
61392
|
formClassName,
|
|
61516
61393
|
socialLinksClassName
|
|
61517
61394
|
}) {
|
|
61518
|
-
const [timeLeft, setTimeLeft] =
|
|
61395
|
+
const [timeLeft, setTimeLeft] = React25.useState(null);
|
|
61519
61396
|
const {
|
|
61520
61397
|
uploadTokens,
|
|
61521
61398
|
uploadProgress,
|
|
@@ -61535,7 +61412,7 @@ function HeroComingSoonCountdown({
|
|
|
61535
61412
|
onError,
|
|
61536
61413
|
uploadTokens
|
|
61537
61414
|
});
|
|
61538
|
-
const calculateTimeLeft =
|
|
61415
|
+
const calculateTimeLeft = React25.useCallback(() => {
|
|
61539
61416
|
if (!countdownDate) return null;
|
|
61540
61417
|
const now = Date.now();
|
|
61541
61418
|
const target = countdownDate.getTime();
|
|
@@ -61548,7 +61425,7 @@ function HeroComingSoonCountdown({
|
|
|
61548
61425
|
seconds: Math.floor(diff % (1e3 * 60) / 1e3)
|
|
61549
61426
|
};
|
|
61550
61427
|
}, [countdownDate]);
|
|
61551
|
-
|
|
61428
|
+
React25.useEffect(() => {
|
|
61552
61429
|
setTimeLeft(calculateTimeLeft());
|
|
61553
61430
|
if (!countdownDate) return;
|
|
61554
61431
|
const timer = setInterval(() => {
|
|
@@ -61559,7 +61436,7 @@ function HeroComingSoonCountdown({
|
|
|
61559
61436
|
return () => clearInterval(timer);
|
|
61560
61437
|
}, [countdownDate, calculateTimeLeft]);
|
|
61561
61438
|
const showCountdown = countdownSlot || timeLeft;
|
|
61562
|
-
const renderForm =
|
|
61439
|
+
const renderForm = React25.useMemo(() => {
|
|
61563
61440
|
if (formSlot) return formSlot;
|
|
61564
61441
|
const defaultButtonAction = {
|
|
61565
61442
|
label: "Notify Me",
|
|
@@ -61635,7 +61512,7 @@ function HeroComingSoonCountdown({
|
|
|
61635
61512
|
resetUpload,
|
|
61636
61513
|
resetSubmissionState
|
|
61637
61514
|
]);
|
|
61638
|
-
const renderSocialLinks =
|
|
61515
|
+
const renderSocialLinks = React25.useMemo(() => {
|
|
61639
61516
|
if (socialLinksSlot) return socialLinksSlot;
|
|
61640
61517
|
if (!socialLinks || socialLinks.length === 0) return null;
|
|
61641
61518
|
return socialLinks.map((link, index) => /* @__PURE__ */ jsx(
|
|
@@ -61767,7 +61644,7 @@ function HeroEventRegistration({
|
|
|
61767
61644
|
"flex flex-col md:flex-row items-center gap-4 md:gap-6 pt-8 md:pt-12 w-full md:w-fit",
|
|
61768
61645
|
statsClassName
|
|
61769
61646
|
),
|
|
61770
|
-
children: stats.map((stat, index) => /* @__PURE__ */ jsxs(
|
|
61647
|
+
children: stats.map((stat, index) => /* @__PURE__ */ jsxs(React25.Fragment, { children: [
|
|
61771
61648
|
index > 0 && /* @__PURE__ */ jsx("div", { className: "h-12 w-px bg-border hidden md:flex" }),
|
|
61772
61649
|
/* @__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
61650
|
/* @__PURE__ */ jsxs(
|
|
@@ -62107,7 +61984,7 @@ function ComparisonTableTwoColumn({
|
|
|
62107
61984
|
patternOpacity,
|
|
62108
61985
|
optixFlowConfig
|
|
62109
61986
|
}) {
|
|
62110
|
-
const tableContent =
|
|
61987
|
+
const tableContent = React25.useMemo(() => {
|
|
62111
61988
|
if (tableSlot) return tableSlot;
|
|
62112
61989
|
if (!rows || rows.length === 0) return null;
|
|
62113
61990
|
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 +62014,7 @@ function ComparisonTableTwoColumn({
|
|
|
62137
62014
|
optixFlowConfig
|
|
62138
62015
|
}
|
|
62139
62016
|
) : optionBLabel && (typeof optionBLabel === "string" ? /* @__PURE__ */ jsx("span", { className: "text-lg font-semibold", children: optionBLabel }) : optionBLabel) }),
|
|
62140
|
-
rows.map((row, idx) => /* @__PURE__ */ jsxs(
|
|
62017
|
+
rows.map((row, idx) => /* @__PURE__ */ jsxs(React25.Fragment, { children: [
|
|
62141
62018
|
/* @__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
62019
|
/* @__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
62020
|
row.hasIcon && /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/circle-check-big", size: 20, className: "text-success" }),
|
|
@@ -62166,14 +62043,14 @@ function ComparisonTableTwoColumn({
|
|
|
62166
62043
|
optionBLabel,
|
|
62167
62044
|
optixFlowConfig
|
|
62168
62045
|
]);
|
|
62169
|
-
const headingContent =
|
|
62046
|
+
const headingContent = React25.useMemo(() => {
|
|
62170
62047
|
if (!heading) return null;
|
|
62171
62048
|
if (typeof heading === "string") {
|
|
62172
62049
|
return /* @__PURE__ */ jsx("h1", { className: cn("mb-8 text-3xl font-bold md:mb-12 md:text-5xl", headingClassName), children: heading });
|
|
62173
62050
|
}
|
|
62174
62051
|
return /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading });
|
|
62175
62052
|
}, [heading, headingClassName]);
|
|
62176
|
-
const descriptionContent =
|
|
62053
|
+
const descriptionContent = React25.useMemo(() => {
|
|
62177
62054
|
if (!description) return null;
|
|
62178
62055
|
if (typeof description === "string") {
|
|
62179
62056
|
return /* @__PURE__ */ jsx("p", { className: cn("mb-8 text-muted-foreground md:text-lg", descriptionClassName), children: description });
|
|
@@ -62220,7 +62097,7 @@ function ComparisonFeatureCards({
|
|
|
62220
62097
|
patternOpacity,
|
|
62221
62098
|
optixFlowConfig
|
|
62222
62099
|
}) {
|
|
62223
|
-
const renderCard =
|
|
62100
|
+
const renderCard = React25.useCallback(
|
|
62224
62101
|
(product, isHighlighted) => /* @__PURE__ */ jsxs(
|
|
62225
62102
|
"div",
|
|
62226
62103
|
{
|
|
@@ -62276,7 +62153,7 @@ function ComparisonFeatureCards({
|
|
|
62276
62153
|
),
|
|
62277
62154
|
[cardClassName, optixFlowConfig]
|
|
62278
62155
|
);
|
|
62279
|
-
const cardsContent =
|
|
62156
|
+
const cardsContent = React25.useMemo(() => {
|
|
62280
62157
|
if (cardsSlot) return cardsSlot;
|
|
62281
62158
|
if (!productA || !productB) return null;
|
|
62282
62159
|
return /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
@@ -62284,28 +62161,28 @@ function ComparisonFeatureCards({
|
|
|
62284
62161
|
renderCard(productB, productB.highlighted ?? false)
|
|
62285
62162
|
] });
|
|
62286
62163
|
}, [cardsSlot, productA, productB, renderCard]);
|
|
62287
|
-
const headingContent =
|
|
62164
|
+
const headingContent = React25.useMemo(() => {
|
|
62288
62165
|
if (!heading) return null;
|
|
62289
62166
|
if (typeof heading === "string") {
|
|
62290
62167
|
return /* @__PURE__ */ jsx("h1", { className: cn("mb-6 text-4xl font-semibold md:text-7xl", headingClassName), children: heading });
|
|
62291
62168
|
}
|
|
62292
62169
|
return /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading });
|
|
62293
62170
|
}, [heading, headingClassName]);
|
|
62294
|
-
const descriptionContent =
|
|
62171
|
+
const descriptionContent = React25.useMemo(() => {
|
|
62295
62172
|
if (!description) return null;
|
|
62296
62173
|
if (typeof description === "string") {
|
|
62297
62174
|
return /* @__PURE__ */ jsx("p", { className: cn("mx-auto max-w-4xl text-muted-foreground md:text-xl", descriptionClassName), children: description });
|
|
62298
62175
|
}
|
|
62299
62176
|
return /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description });
|
|
62300
62177
|
}, [description, descriptionClassName]);
|
|
62301
|
-
const suitabilityContent =
|
|
62178
|
+
const suitabilityContent = React25.useMemo(() => {
|
|
62302
62179
|
if (!suitabilityTitle && !suitabilityDescription) return null;
|
|
62303
62180
|
return /* @__PURE__ */ jsxs("div", { className: suitabilityClassName, children: [
|
|
62304
62181
|
suitabilityTitle && (typeof suitabilityTitle === "string" ? /* @__PURE__ */ jsx("h2", { className: "mb-4 text-3xl font-semibold", children: suitabilityTitle }) : suitabilityTitle),
|
|
62305
62182
|
suitabilityDescription && (typeof suitabilityDescription === "string" ? /* @__PURE__ */ jsx("p", { className: "leading-6 text-muted-foreground md:text-lg", children: suitabilityDescription }) : suitabilityDescription)
|
|
62306
62183
|
] });
|
|
62307
62184
|
}, [suitabilityTitle, suitabilityDescription, suitabilityClassName]);
|
|
62308
|
-
const differencesContent =
|
|
62185
|
+
const differencesContent = React25.useMemo(() => {
|
|
62309
62186
|
if (!differencesTitle && !differencesDescription) return null;
|
|
62310
62187
|
return /* @__PURE__ */ jsxs("div", { className: cn("mt-16", differencesClassName), children: [
|
|
62311
62188
|
differencesTitle && (typeof differencesTitle === "string" ? /* @__PURE__ */ jsx("h2", { className: "mb-4 text-3xl font-semibold", children: differencesTitle }) : differencesTitle),
|
|
@@ -62353,7 +62230,7 @@ function ComparisonGridBadges({
|
|
|
62353
62230
|
pattern,
|
|
62354
62231
|
patternOpacity
|
|
62355
62232
|
}) {
|
|
62356
|
-
const featuresContent =
|
|
62233
|
+
const featuresContent = React25.useMemo(() => {
|
|
62357
62234
|
if (featuresSlot) return featuresSlot;
|
|
62358
62235
|
if (!features || features.length === 0) return null;
|
|
62359
62236
|
return features.map((feature, idx) => /* @__PURE__ */ jsxs(
|
|
@@ -62400,14 +62277,14 @@ function ComparisonGridBadges({
|
|
|
62400
62277
|
idx
|
|
62401
62278
|
));
|
|
62402
62279
|
}, [featuresSlot, features, featureCardClassName, badgeClassName, optionALabel, optionBLabel]);
|
|
62403
|
-
const headingContent =
|
|
62280
|
+
const headingContent = React25.useMemo(() => {
|
|
62404
62281
|
if (!heading) return null;
|
|
62405
62282
|
if (typeof heading === "string") {
|
|
62406
62283
|
return /* @__PURE__ */ jsx("h2", { className: cn("mb-4 text-3xl font-bold md:text-5xl", headingClassName), children: heading });
|
|
62407
62284
|
}
|
|
62408
62285
|
return /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading });
|
|
62409
62286
|
}, [heading, headingClassName]);
|
|
62410
|
-
const descriptionContent =
|
|
62287
|
+
const descriptionContent = React25.useMemo(() => {
|
|
62411
62288
|
if (!description) return null;
|
|
62412
62289
|
if (typeof description === "string") {
|
|
62413
62290
|
return /* @__PURE__ */ jsx("p", { className: cn("mx-auto max-w-2xl text-muted-foreground md:text-lg", descriptionClassName), children: description });
|
|
@@ -62455,7 +62332,7 @@ function ComparisonMetricsRows({
|
|
|
62455
62332
|
pattern,
|
|
62456
62333
|
patternOpacity
|
|
62457
62334
|
}) {
|
|
62458
|
-
const metricsContent =
|
|
62335
|
+
const metricsContent = React25.useMemo(() => {
|
|
62459
62336
|
if (metricsSlot) return metricsSlot;
|
|
62460
62337
|
if (!metrics || metrics.length === 0) return null;
|
|
62461
62338
|
return /* @__PURE__ */ jsx(
|
|
@@ -62495,7 +62372,7 @@ function ComparisonMetricsRows({
|
|
|
62495
62372
|
}
|
|
62496
62373
|
);
|
|
62497
62374
|
}, [metricsSlot, metrics, metricsClassName, metricRowClassName]);
|
|
62498
|
-
const actionsContent =
|
|
62375
|
+
const actionsContent = React25.useMemo(() => {
|
|
62499
62376
|
if (actionsSlot) return actionsSlot;
|
|
62500
62377
|
if (!actions || actions.length === 0) return null;
|
|
62501
62378
|
return /* @__PURE__ */ jsx("div", { className: cn("flex justify-end", actionsClassName), children: actions.map((action, idx) => /* @__PURE__ */ jsxs(
|
|
@@ -62516,7 +62393,7 @@ function ComparisonMetricsRows({
|
|
|
62516
62393
|
idx
|
|
62517
62394
|
)) });
|
|
62518
62395
|
}, [actionsSlot, actions, actionsClassName]);
|
|
62519
|
-
const headingContent =
|
|
62396
|
+
const headingContent = React25.useMemo(() => {
|
|
62520
62397
|
if (!heading) return null;
|
|
62521
62398
|
if (typeof heading === "string") {
|
|
62522
62399
|
return /* @__PURE__ */ jsx(
|
|
@@ -62532,7 +62409,7 @@ function ComparisonMetricsRows({
|
|
|
62532
62409
|
}
|
|
62533
62410
|
return /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading });
|
|
62534
62411
|
}, [heading, headingClassName]);
|
|
62535
|
-
const descriptionContent =
|
|
62412
|
+
const descriptionContent = React25.useMemo(() => {
|
|
62536
62413
|
if (!description) return null;
|
|
62537
62414
|
if (typeof description === "string") {
|
|
62538
62415
|
return /* @__PURE__ */ jsx("p", { className: cn("text-muted-foreground md:text-lg", descriptionClassName), children: description });
|
|
@@ -62595,7 +62472,7 @@ function ComparisonImageCards({
|
|
|
62595
62472
|
patternOpacity,
|
|
62596
62473
|
optixFlowConfig
|
|
62597
62474
|
}) {
|
|
62598
|
-
const renderCard =
|
|
62475
|
+
const renderCard = React25.useCallback(
|
|
62599
62476
|
(option) => /* @__PURE__ */ jsx("div", { className: cn("relative h-full", cardClassName), children: /* @__PURE__ */ jsxs("div", { className: cn(
|
|
62600
62477
|
"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
62478
|
getNestedCardBg(background, "accent"),
|
|
@@ -62619,7 +62496,7 @@ function ComparisonImageCards({
|
|
|
62619
62496
|
] }) }),
|
|
62620
62497
|
[cardClassName, optixFlowConfig]
|
|
62621
62498
|
);
|
|
62622
|
-
const cardsContent =
|
|
62499
|
+
const cardsContent = React25.useMemo(() => {
|
|
62623
62500
|
if (cardsSlot) return cardsSlot;
|
|
62624
62501
|
if (!optionA || !optionB) return null;
|
|
62625
62502
|
return /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
@@ -62637,14 +62514,14 @@ function ComparisonImageCards({
|
|
|
62637
62514
|
)
|
|
62638
62515
|
] });
|
|
62639
62516
|
}, [cardsSlot, optionA, optionB, dividerText, dividerClassName, renderCard]);
|
|
62640
|
-
const headingContent =
|
|
62517
|
+
const headingContent = React25.useMemo(() => {
|
|
62641
62518
|
if (!heading) return null;
|
|
62642
62519
|
if (typeof heading === "string") {
|
|
62643
62520
|
return /* @__PURE__ */ jsx("h2", { className: cn("text-3xl font-medium sm:text-4xl md:text-5xl lg:text-6xl", headingClassName), children: heading });
|
|
62644
62521
|
}
|
|
62645
62522
|
return /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading });
|
|
62646
62523
|
}, [heading, headingClassName]);
|
|
62647
|
-
const descriptionContent =
|
|
62524
|
+
const descriptionContent = React25.useMemo(() => {
|
|
62648
62525
|
if (!description) return null;
|
|
62649
62526
|
if (typeof description === "string") {
|
|
62650
62527
|
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 +62651,7 @@ function ComparisonTableTabs({
|
|
|
62774
62651
|
patternOpacity
|
|
62775
62652
|
}) {
|
|
62776
62653
|
const [selectedTab, setSelectedTab] = useState(models?.[0]?.name || "");
|
|
62777
|
-
const renderStatusIcon =
|
|
62654
|
+
const renderStatusIcon = React25.useCallback((status) => {
|
|
62778
62655
|
if (status === "positive") {
|
|
62779
62656
|
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
62657
|
}
|
|
@@ -62783,7 +62660,7 @@ function ComparisonTableTabs({
|
|
|
62783
62660
|
}
|
|
62784
62661
|
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
62662
|
}, []);
|
|
62786
|
-
const tableContent =
|
|
62663
|
+
const tableContent = React25.useMemo(() => {
|
|
62787
62664
|
if (tableSlot) return tableSlot;
|
|
62788
62665
|
if (!models || models.length === 0 || !features || features.length === 0) return null;
|
|
62789
62666
|
return /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
@@ -62842,14 +62719,14 @@ function ComparisonTableTabs({
|
|
|
62842
62719
|
] }) })
|
|
62843
62720
|
] });
|
|
62844
62721
|
}, [tableSlot, models, features, tabsClassName, tableClassName, tableHeaderClassName, tableCellClassName, selectedTab, renderStatusIcon]);
|
|
62845
|
-
const headingContent =
|
|
62722
|
+
const headingContent = React25.useMemo(() => {
|
|
62846
62723
|
if (!heading) return null;
|
|
62847
62724
|
if (typeof heading === "string") {
|
|
62848
62725
|
return /* @__PURE__ */ jsx("h2", { className: cn("text-3xl font-bold md:text-4xl lg:text-5xl", headingClassName), children: heading });
|
|
62849
62726
|
}
|
|
62850
62727
|
return /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading });
|
|
62851
62728
|
}, [heading, headingClassName]);
|
|
62852
|
-
const descriptionContent =
|
|
62729
|
+
const descriptionContent = React25.useMemo(() => {
|
|
62853
62730
|
if (!description) return null;
|
|
62854
62731
|
if (typeof description === "string") {
|
|
62855
62732
|
return /* @__PURE__ */ jsx("p", { className: cn("mt-4 text-muted-foreground md:text-lg", descriptionClassName), children: description });
|
|
@@ -62940,7 +62817,7 @@ function ComparisonTableTooltips({
|
|
|
62940
62817
|
pattern,
|
|
62941
62818
|
patternOpacity
|
|
62942
62819
|
}) {
|
|
62943
|
-
const renderCellContent =
|
|
62820
|
+
const renderCellContent = React25.useCallback(
|
|
62944
62821
|
(cell, isHighlighted) => {
|
|
62945
62822
|
if (typeof cell === "string") {
|
|
62946
62823
|
return cell;
|
|
@@ -62967,7 +62844,7 @@ function ComparisonTableTooltips({
|
|
|
62967
62844
|
},
|
|
62968
62845
|
[]
|
|
62969
62846
|
);
|
|
62970
|
-
const tableContent =
|
|
62847
|
+
const tableContent = React25.useMemo(() => {
|
|
62971
62848
|
if (tableSlot) return tableSlot;
|
|
62972
62849
|
if (!rows || rows.length === 0) return null;
|
|
62973
62850
|
return /* @__PURE__ */ jsxs(Table, { className: cn("rounded border text-left shadow-lg", tableClassName), children: [
|
|
@@ -62993,14 +62870,14 @@ function ComparisonTableTooltips({
|
|
|
62993
62870
|
] }, idx)) })
|
|
62994
62871
|
] });
|
|
62995
62872
|
}, [tableSlot, rows, tableClassName, tableHeaderClassName, tableCellClassName, optionALabel, optionBLabel, renderCellContent]);
|
|
62996
|
-
const headingContent =
|
|
62873
|
+
const headingContent = React25.useMemo(() => {
|
|
62997
62874
|
if (!heading) return null;
|
|
62998
62875
|
if (typeof heading === "string") {
|
|
62999
62876
|
return /* @__PURE__ */ jsx("h2", { className: cn("mb-4 text-center text-4xl font-semibold", headingClassName), children: heading });
|
|
63000
62877
|
}
|
|
63001
62878
|
return /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading });
|
|
63002
62879
|
}, [heading, headingClassName]);
|
|
63003
|
-
const descriptionContent =
|
|
62880
|
+
const descriptionContent = React25.useMemo(() => {
|
|
63004
62881
|
if (!description) return null;
|
|
63005
62882
|
if (typeof description === "string") {
|
|
63006
62883
|
return /* @__PURE__ */ jsx("p", { className: cn("mb-8 text-center text-muted-foreground", descriptionClassName), children: description });
|
|
@@ -63042,7 +62919,7 @@ function ComparisonFeatureGrid({
|
|
|
63042
62919
|
pattern,
|
|
63043
62920
|
patternOpacity
|
|
63044
62921
|
}) {
|
|
63045
|
-
const renderStatusIcon =
|
|
62922
|
+
const renderStatusIcon = React25.useCallback((status) => {
|
|
63046
62923
|
if (status === true) {
|
|
63047
62924
|
return /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/check", size: 20, className: "text-success" });
|
|
63048
62925
|
}
|
|
@@ -63051,7 +62928,7 @@ function ComparisonFeatureGrid({
|
|
|
63051
62928
|
}
|
|
63052
62929
|
return /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/x", size: 20, className: "text-destructive" });
|
|
63053
62930
|
}, []);
|
|
63054
|
-
const gridContent =
|
|
62931
|
+
const gridContent = React25.useMemo(() => {
|
|
63055
62932
|
if (gridSlot) return gridSlot;
|
|
63056
62933
|
if (!features || features.length === 0) return null;
|
|
63057
62934
|
return /* @__PURE__ */ jsxs(
|
|
@@ -63117,14 +62994,14 @@ function ComparisonFeatureGrid({
|
|
|
63117
62994
|
optionBLabel,
|
|
63118
62995
|
renderStatusIcon
|
|
63119
62996
|
]);
|
|
63120
|
-
const headingContent =
|
|
62997
|
+
const headingContent = React25.useMemo(() => {
|
|
63121
62998
|
if (!heading) return null;
|
|
63122
62999
|
if (typeof heading === "string") {
|
|
63123
63000
|
return /* @__PURE__ */ jsx("h2", { className: cn("mb-4 text-center text-4xl font-semibold", headingClassName), children: heading });
|
|
63124
63001
|
}
|
|
63125
63002
|
return /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading });
|
|
63126
63003
|
}, [heading, headingClassName]);
|
|
63127
|
-
const descriptionContent =
|
|
63004
|
+
const descriptionContent = React25.useMemo(() => {
|
|
63128
63005
|
if (!description) return null;
|
|
63129
63006
|
if (typeof description === "string") {
|
|
63130
63007
|
return /* @__PURE__ */ jsx("p", { className: cn("mb-8 text-center text-muted-foreground", descriptionClassName), children: description });
|
|
@@ -63168,7 +63045,7 @@ function ComparisonAiModels({
|
|
|
63168
63045
|
optixFlowConfig
|
|
63169
63046
|
}) {
|
|
63170
63047
|
const [hoveredModel, setHoveredModel] = useState(null);
|
|
63171
|
-
const renderStatusIcon =
|
|
63048
|
+
const renderStatusIcon = React25.useCallback((status) => {
|
|
63172
63049
|
if (status === "best") {
|
|
63173
63050
|
return /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/circle-check", size: 16, className: "text-success" });
|
|
63174
63051
|
}
|
|
@@ -63177,7 +63054,7 @@ function ComparisonAiModels({
|
|
|
63177
63054
|
}
|
|
63178
63055
|
return /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/minus", size: 16, className: "text-muted-foreground" });
|
|
63179
63056
|
}, []);
|
|
63180
|
-
const getCellClassName =
|
|
63057
|
+
const getCellClassName = React25.useCallback(
|
|
63181
63058
|
(status, modelKey) => {
|
|
63182
63059
|
const baseClass = "cursor-pointer py-4 text-center font-medium transition-all duration-300";
|
|
63183
63060
|
let statusClass = "";
|
|
@@ -63198,7 +63075,7 @@ function ComparisonAiModels({
|
|
|
63198
63075
|
},
|
|
63199
63076
|
[hoveredModel]
|
|
63200
63077
|
);
|
|
63201
|
-
const getSummaryCardClassName =
|
|
63078
|
+
const getSummaryCardClassName = React25.useCallback(
|
|
63202
63079
|
(modelKey) => {
|
|
63203
63080
|
const baseClass = "rounded border border-border/30 bg-background/50 p-3 transition-all duration-300";
|
|
63204
63081
|
if (hoveredModel === modelKey) {
|
|
@@ -63213,7 +63090,7 @@ function ComparisonAiModels({
|
|
|
63213
63090
|
},
|
|
63214
63091
|
[hoveredModel]
|
|
63215
63092
|
);
|
|
63216
|
-
const tableContent =
|
|
63093
|
+
const tableContent = React25.useMemo(() => {
|
|
63217
63094
|
if (tableSlot) return tableSlot;
|
|
63218
63095
|
if (!models || !comparisonData || comparisonData.length === 0) return null;
|
|
63219
63096
|
return /* @__PURE__ */ jsx(
|
|
@@ -63291,7 +63168,7 @@ function ComparisonAiModels({
|
|
|
63291
63168
|
getCellClassName,
|
|
63292
63169
|
renderStatusIcon
|
|
63293
63170
|
]);
|
|
63294
|
-
const analysisContent =
|
|
63171
|
+
const analysisContent = React25.useMemo(() => {
|
|
63295
63172
|
if (analysisSlot) return analysisSlot;
|
|
63296
63173
|
if (!models) return null;
|
|
63297
63174
|
return /* @__PURE__ */ jsx("div", { className: cn(
|
|
@@ -63332,14 +63209,14 @@ function ComparisonAiModels({
|
|
|
63332
63209
|
] })
|
|
63333
63210
|
] }) });
|
|
63334
63211
|
}, [analysisSlot, models, analysisClassName, getSummaryCardClassName]);
|
|
63335
|
-
const headingContent =
|
|
63212
|
+
const headingContent = React25.useMemo(() => {
|
|
63336
63213
|
if (!heading) return null;
|
|
63337
63214
|
if (typeof heading === "string") {
|
|
63338
63215
|
return /* @__PURE__ */ jsx("h2", { className: cn("text-3xl font-bold md:text-4xl lg:text-5xl", headingClassName), children: heading });
|
|
63339
63216
|
}
|
|
63340
63217
|
return /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading });
|
|
63341
63218
|
}, [heading, headingClassName]);
|
|
63342
|
-
const descriptionContent =
|
|
63219
|
+
const descriptionContent = React25.useMemo(() => {
|
|
63343
63220
|
if (!description) return null;
|
|
63344
63221
|
if (typeof description === "string") {
|
|
63345
63222
|
return /* @__PURE__ */ jsx("p", { className: cn("mt-4 text-muted-foreground md:text-lg", descriptionClassName), children: description });
|
|
@@ -63389,7 +63266,7 @@ function ComparisonLegacyModern({
|
|
|
63389
63266
|
pattern,
|
|
63390
63267
|
patternOpacity
|
|
63391
63268
|
}) {
|
|
63392
|
-
const columnsContent =
|
|
63269
|
+
const columnsContent = React25.useMemo(() => {
|
|
63393
63270
|
if (columnsSlot) return columnsSlot;
|
|
63394
63271
|
if (!legacyFeatures || legacyFeatures.length === 0 || !modernFeatures || modernFeatures.length === 0)
|
|
63395
63272
|
return null;
|
|
@@ -63401,7 +63278,7 @@ function ComparisonLegacyModern({
|
|
|
63401
63278
|
legacyColumnClassName
|
|
63402
63279
|
), children: [
|
|
63403
63280
|
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(
|
|
63281
|
+
/* @__PURE__ */ jsx("ul", { className: "mt-9 space-y-3", children: legacyFeatures.map((feature, idx) => /* @__PURE__ */ jsxs(React25.Fragment, { children: [
|
|
63405
63282
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
63406
63283
|
/* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/x", size: 16, className: "my-1.5 shrink-0 text-muted-foreground" }),
|
|
63407
63284
|
/* @__PURE__ */ jsx("li", { className: "text-sm", children: feature.text })
|
|
@@ -63418,7 +63295,7 @@ function ComparisonLegacyModern({
|
|
|
63418
63295
|
),
|
|
63419
63296
|
children: [
|
|
63420
63297
|
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(
|
|
63298
|
+
/* @__PURE__ */ jsx("ul", { className: "mt-9 space-y-3", children: modernFeatures.map((feature, idx) => /* @__PURE__ */ jsxs(React25.Fragment, { children: [
|
|
63422
63299
|
/* @__PURE__ */ jsxs("li", { className: "flex items-center gap-2 text-sm", children: [
|
|
63423
63300
|
/* @__PURE__ */ jsx("span", { className: "text-lg", children: feature.emoji }),
|
|
63424
63301
|
feature.text
|
|
@@ -63430,7 +63307,7 @@ function ComparisonLegacyModern({
|
|
|
63430
63307
|
)
|
|
63431
63308
|
] });
|
|
63432
63309
|
}, [columnsSlot, legacyFeatures, modernFeatures, legacyTitle, modernTitle, legacyColumnClassName, modernColumnClassName]);
|
|
63433
|
-
const headingContent =
|
|
63310
|
+
const headingContent = React25.useMemo(() => {
|
|
63434
63311
|
if (!heading && !headingHighlight) return null;
|
|
63435
63312
|
return /* @__PURE__ */ jsxs("h2", { className: cn("text-4xl font-medium md:text-5xl lg:text-7xl", headingClassName), children: [
|
|
63436
63313
|
heading && (typeof heading === "string" ? /* @__PURE__ */ jsxs("span", { className: "text-muted-foreground", children: [
|
|
@@ -63443,7 +63320,7 @@ function ComparisonLegacyModern({
|
|
|
63443
63320
|
] }) : headingHighlight)
|
|
63444
63321
|
] });
|
|
63445
63322
|
}, [heading, headingHighlight, headingClassName, headingHighlightClassName]);
|
|
63446
|
-
const descriptionContent =
|
|
63323
|
+
const descriptionContent = React25.useMemo(() => {
|
|
63447
63324
|
if (!description) return null;
|
|
63448
63325
|
if (typeof description === "string") {
|
|
63449
63326
|
return /* @__PURE__ */ jsx("p", { className: cn("text-lg", descriptionClassName), children: description });
|
|
@@ -63616,7 +63493,7 @@ var NavbarMobileMenu = ({
|
|
|
63616
63493
|
closeIconClassName,
|
|
63617
63494
|
title = "Mobile Navigation"
|
|
63618
63495
|
}) => {
|
|
63619
|
-
|
|
63496
|
+
React25.useEffect(() => {
|
|
63620
63497
|
if (open) {
|
|
63621
63498
|
const originalOverflow = document.body.style.overflow;
|
|
63622
63499
|
document.body.style.overflow = "hidden";
|
|
@@ -63845,7 +63722,7 @@ var NavbarDropdownMenu = ({
|
|
|
63845
63722
|
patternOpacity,
|
|
63846
63723
|
optixFlowConfig
|
|
63847
63724
|
}) => {
|
|
63848
|
-
const [open, setOpen] =
|
|
63725
|
+
const [open, setOpen] = React25.useState(false);
|
|
63849
63726
|
const renderAuthActions = useMemo(() => {
|
|
63850
63727
|
if (authActionsSlot) return authActionsSlot;
|
|
63851
63728
|
if (!authActions || authActions.length === 0) return null;
|
|
@@ -64071,7 +63948,7 @@ var NavbarCenteredMenu = ({
|
|
|
64071
63948
|
patternOpacity,
|
|
64072
63949
|
optixFlowConfig
|
|
64073
63950
|
}) => {
|
|
64074
|
-
const [open, setOpen] =
|
|
63951
|
+
const [open, setOpen] = React25.useState(false);
|
|
64075
63952
|
const renderAuthActions = useMemo(() => {
|
|
64076
63953
|
if (authActionsSlot) return authActionsSlot;
|
|
64077
63954
|
if (!authActions || authActions.length === 0) return null;
|
|
@@ -64211,7 +64088,7 @@ var DesktopMenuItem = ({
|
|
|
64211
64088
|
index,
|
|
64212
64089
|
optixFlowConfig
|
|
64213
64090
|
}) => {
|
|
64214
|
-
const imagesRef =
|
|
64091
|
+
const imagesRef = React25.useRef([]);
|
|
64215
64092
|
const layout = link.layout || "simple-grid";
|
|
64216
64093
|
const handleMouseEnter = (event) => {
|
|
64217
64094
|
const index2 = Number(event.currentTarget.getAttribute("data-index"));
|
|
@@ -65446,7 +65323,7 @@ var NavbarFeatureGrid = ({
|
|
|
65446
65323
|
patternOpacity,
|
|
65447
65324
|
optixFlowConfig
|
|
65448
65325
|
}) => {
|
|
65449
|
-
const [open, setOpen] =
|
|
65326
|
+
const [open, setOpen] = React25.useState(false);
|
|
65450
65327
|
const renderAuthActions = useMemo(() => {
|
|
65451
65328
|
if (authActionsSlot) return authActionsSlot;
|
|
65452
65329
|
if (!authActions || authActions.length === 0) return null;
|
|
@@ -68656,7 +68533,7 @@ var DesktopMenuItem7 = ({
|
|
|
68656
68533
|
if (item.groups && item.groups.length > 0) {
|
|
68657
68534
|
return /* @__PURE__ */ jsxs(NavigationMenuItem, { value: `${index}`, children: [
|
|
68658
68535
|
/* @__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(
|
|
68536
|
+
/* @__PURE__ */ jsx(NavigationMenuContent, { className: "p-0", children: /* @__PURE__ */ jsx("div", { className: "flex", children: item.groups.map((group, groupIndex) => /* @__PURE__ */ jsxs(React25.Fragment, { children: [
|
|
68660
68537
|
groupIndex > 0 && /* @__PURE__ */ jsx(
|
|
68661
68538
|
Separator,
|
|
68662
68539
|
{
|
|
@@ -69408,7 +69285,7 @@ var NavbarSimpleLinks = ({
|
|
|
69408
69285
|
const renderNavItems = useMemo(() => {
|
|
69409
69286
|
if (navItemsSlot) return navItemsSlot;
|
|
69410
69287
|
if (!navItems || navItems.length === 0) return null;
|
|
69411
|
-
return navItems.map((item) => /* @__PURE__ */ jsx(
|
|
69288
|
+
return navItems.map((item) => /* @__PURE__ */ jsx(React25.Fragment, { children: /* @__PURE__ */ jsx(NavigationMenuItem, { children: /* @__PURE__ */ jsx(
|
|
69412
69289
|
NavigationMenuLink,
|
|
69413
69290
|
{
|
|
69414
69291
|
"data-nav-item": item.name,
|
|
@@ -74437,7 +74314,7 @@ function PricingFullComparison({
|
|
|
74437
74314
|
resolvedPlanIds[index]
|
|
74438
74315
|
))
|
|
74439
74316
|
] }) }),
|
|
74440
|
-
/* @__PURE__ */ jsx("tbody", { children: categories.map((category) => /* @__PURE__ */ jsxs(
|
|
74317
|
+
/* @__PURE__ */ jsx("tbody", { children: categories.map((category) => /* @__PURE__ */ jsxs(React25.Fragment, { children: [
|
|
74441
74318
|
/* @__PURE__ */ jsx("tr", { className: cn(getNestedCardBg(background), getNestedCardTextColor(background), categoryRowClassName), children: /* @__PURE__ */ jsx(
|
|
74442
74319
|
"td",
|
|
74443
74320
|
{
|
|
@@ -79038,9 +78915,9 @@ function ProcessStickySteps({
|
|
|
79038
78915
|
);
|
|
79039
78916
|
}
|
|
79040
78917
|
var usePrevious = (value) => {
|
|
79041
|
-
const [prev, setPrev] =
|
|
79042
|
-
const ref =
|
|
79043
|
-
|
|
78918
|
+
const [prev, setPrev] = React25.useState(void 0);
|
|
78919
|
+
const ref = React25.useRef(value);
|
|
78920
|
+
React25.useEffect(() => {
|
|
79044
78921
|
setPrev(ref.current);
|
|
79045
78922
|
ref.current = value;
|
|
79046
78923
|
}, [value]);
|
|
@@ -79053,12 +78930,12 @@ var ProcessCard = ({
|
|
|
79053
78930
|
itemClassName,
|
|
79054
78931
|
background
|
|
79055
78932
|
}) => {
|
|
79056
|
-
const ref =
|
|
78933
|
+
const ref = React25.useRef(null);
|
|
79057
78934
|
const itemInView = useInView(ref, {
|
|
79058
78935
|
amount: 0,
|
|
79059
78936
|
margin: "0px 0px -60% 0px"
|
|
79060
78937
|
});
|
|
79061
|
-
|
|
78938
|
+
React25.useEffect(() => {
|
|
79062
78939
|
if (itemInView) {
|
|
79063
78940
|
setActive(index);
|
|
79064
78941
|
}
|
|
@@ -79108,7 +78985,7 @@ function ProcessScrollImage({
|
|
|
79108
78985
|
ctaText,
|
|
79109
78986
|
ctaUrl
|
|
79110
78987
|
}) {
|
|
79111
|
-
const [active, setActive] =
|
|
78988
|
+
const [active, setActive] = React25.useState(0);
|
|
79112
78989
|
const previousActive = usePrevious(active);
|
|
79113
78990
|
const resolvedHeading = title ?? heading;
|
|
79114
78991
|
const resolvedActions = actions ?? (ctaText && ctaUrl ? [
|
|
@@ -79292,7 +79169,7 @@ var ProcessCard2 = ({
|
|
|
79292
79169
|
hoverImageClassName,
|
|
79293
79170
|
background
|
|
79294
79171
|
}) => {
|
|
79295
|
-
const [isHovered, setIsHovered] =
|
|
79172
|
+
const [isHovered, setIsHovered] = React25.useState(false);
|
|
79296
79173
|
const titleText = typeof step.title === "string" ? step.title : `Step ${index + 1}`;
|
|
79297
79174
|
return /* @__PURE__ */ jsxs(
|
|
79298
79175
|
"li",
|
|
@@ -79616,7 +79493,7 @@ function ProcessExpandableTimeline({
|
|
|
79616
79493
|
// Backwards compatibility
|
|
79617
79494
|
title
|
|
79618
79495
|
}) {
|
|
79619
|
-
const [expandedIndex, setExpandedIndex] =
|
|
79496
|
+
const [expandedIndex, setExpandedIndex] = React25.useState(null);
|
|
79620
79497
|
const resolvedHeading = title ?? heading;
|
|
79621
79498
|
const toggleExpand = (index) => {
|
|
79622
79499
|
setExpandedIndex(expandedIndex === index ? null : index);
|
|
@@ -84387,7 +84264,7 @@ function ListAchievementsShowcase({
|
|
|
84387
84264
|
if (!items || items.length === 0) return null;
|
|
84388
84265
|
return /* @__PURE__ */ jsxs("div", { className: cn("flex flex-col", itemsClassName), children: [
|
|
84389
84266
|
/* @__PURE__ */ jsx(Separator, {}),
|
|
84390
|
-
items.map((item, index) => /* @__PURE__ */ jsxs(
|
|
84267
|
+
items.map((item, index) => /* @__PURE__ */ jsxs(React25.Fragment, { children: [
|
|
84391
84268
|
/* @__PURE__ */ jsxs(
|
|
84392
84269
|
"div",
|
|
84393
84270
|
{
|
|
@@ -84507,7 +84384,7 @@ function ListCareerTimeline({
|
|
|
84507
84384
|
const renderExperiences = useMemo(() => {
|
|
84508
84385
|
if (experiencesSlot) return experiencesSlot;
|
|
84509
84386
|
if (!experiences || experiences.length === 0) return null;
|
|
84510
|
-
return /* @__PURE__ */ jsx("div", { className: experiencesClassName, children: experiences.map((experience, idx) => /* @__PURE__ */ jsxs(
|
|
84387
|
+
return /* @__PURE__ */ jsx("div", { className: experiencesClassName, children: experiences.map((experience, idx) => /* @__PURE__ */ jsxs(React25.Fragment, { children: [
|
|
84511
84388
|
/* @__PURE__ */ jsx(Separator, {}),
|
|
84512
84389
|
/* @__PURE__ */ jsxs(
|
|
84513
84390
|
"div",
|
|
@@ -84528,7 +84405,7 @@ function ListCareerTimeline({
|
|
|
84528
84405
|
const renderAwards = useMemo(() => {
|
|
84529
84406
|
if (awardsSlot) return awardsSlot;
|
|
84530
84407
|
if (!awards || awards.length === 0) return null;
|
|
84531
|
-
return /* @__PURE__ */ jsx("div", { className: awardsClassName, children: awards.map((award, idx) => /* @__PURE__ */ jsxs(
|
|
84408
|
+
return /* @__PURE__ */ jsx("div", { className: awardsClassName, children: awards.map((award, idx) => /* @__PURE__ */ jsxs(React25.Fragment, { children: [
|
|
84532
84409
|
/* @__PURE__ */ jsx(Separator, {}),
|
|
84533
84410
|
/* @__PURE__ */ jsxs(
|
|
84534
84411
|
"div",
|
|
@@ -84663,7 +84540,7 @@ function ListMetricsDashboard({
|
|
|
84663
84540
|
activeCategory: controlledActiveCategory,
|
|
84664
84541
|
onActiveCategoryChange
|
|
84665
84542
|
}) {
|
|
84666
|
-
const [internalActiveTab, setInternalActiveTab] =
|
|
84543
|
+
const [internalActiveTab, setInternalActiveTab] = React25.useState("all");
|
|
84667
84544
|
const activeTab = controlledActiveCategory ?? internalActiveTab;
|
|
84668
84545
|
const handleTabChange = (value) => {
|
|
84669
84546
|
if (onActiveCategoryChange) {
|
|
@@ -85147,7 +85024,7 @@ function ListSearchableGrid({
|
|
|
85147
85024
|
searchTerm: controlledSearchTerm,
|
|
85148
85025
|
onSearchTermChange
|
|
85149
85026
|
}) {
|
|
85150
|
-
const [internalSearchTerm, setInternalSearchTerm] =
|
|
85027
|
+
const [internalSearchTerm, setInternalSearchTerm] = React25.useState("");
|
|
85151
85028
|
const searchTerm = controlledSearchTerm ?? internalSearchTerm;
|
|
85152
85029
|
const handleSearchChange = (value) => {
|
|
85153
85030
|
if (onSearchTermChange) {
|
|
@@ -85156,7 +85033,7 @@ function ListSearchableGrid({
|
|
|
85156
85033
|
setInternalSearchTerm(value);
|
|
85157
85034
|
}
|
|
85158
85035
|
};
|
|
85159
|
-
const filteredItems =
|
|
85036
|
+
const filteredItems = React25.useMemo(() => {
|
|
85160
85037
|
if (!searchTerm) {
|
|
85161
85038
|
return items ?? [];
|
|
85162
85039
|
}
|
|
@@ -85319,7 +85196,7 @@ function ListSearchableGrid({
|
|
|
85319
85196
|
}
|
|
85320
85197
|
);
|
|
85321
85198
|
}
|
|
85322
|
-
var { useMemo:
|
|
85199
|
+
var { useMemo: useMemo441 } = React25;
|
|
85323
85200
|
function OfferModalNewsletterDiscount({
|
|
85324
85201
|
title,
|
|
85325
85202
|
emailPlaceholder,
|
|
@@ -85387,7 +85264,7 @@ function OfferModalNewsletterDiscount({
|
|
|
85387
85264
|
});
|
|
85388
85265
|
const formMethod = formConfig?.method?.toLowerCase() === "get" ? "get" : "post";
|
|
85389
85266
|
const dialogProps = open !== void 0 ? { open, onOpenChange } : { defaultOpen };
|
|
85390
|
-
const renderCloseButton =
|
|
85267
|
+
const renderCloseButton = useMemo441(() => {
|
|
85391
85268
|
if (closeButtonSlot) return closeButtonSlot;
|
|
85392
85269
|
if (!closeButtonText) return null;
|
|
85393
85270
|
return /* @__PURE__ */ jsx("div", { className: "absolute end-1.5 top-1.5", children: /* @__PURE__ */ jsx(DialogClose, { asChild: true, children: /* @__PURE__ */ jsx(
|
|
@@ -85401,12 +85278,12 @@ function OfferModalNewsletterDiscount({
|
|
|
85401
85278
|
}
|
|
85402
85279
|
) }) });
|
|
85403
85280
|
}, [closeButtonSlot, closeButtonText, closeClassName]);
|
|
85404
|
-
const renderHeader =
|
|
85281
|
+
const renderHeader = useMemo441(() => {
|
|
85405
85282
|
if (headerSlot) return headerSlot;
|
|
85406
85283
|
if (!title) return null;
|
|
85407
85284
|
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
85285
|
}, [headerSlot, title, headerClassName, titleClassName]);
|
|
85409
|
-
const renderForm =
|
|
85286
|
+
const renderForm = useMemo441(() => {
|
|
85410
85287
|
if (formSlot) return formSlot;
|
|
85411
85288
|
return /* @__PURE__ */ jsxs(
|
|
85412
85289
|
Form,
|
|
@@ -85468,7 +85345,7 @@ function OfferModalNewsletterDiscount({
|
|
|
85468
85345
|
}
|
|
85469
85346
|
) });
|
|
85470
85347
|
}
|
|
85471
|
-
var { useMemo:
|
|
85348
|
+
var { useMemo: useMemo442 } = React25;
|
|
85472
85349
|
function OfferModalMembershipImage({
|
|
85473
85350
|
overline,
|
|
85474
85351
|
title,
|
|
@@ -85545,7 +85422,7 @@ function OfferModalMembershipImage({
|
|
|
85545
85422
|
});
|
|
85546
85423
|
const formMethod = formConfig?.method?.toLowerCase() === "get" ? "get" : "post";
|
|
85547
85424
|
const dialogProps = open !== void 0 ? { open, onOpenChange } : { defaultOpen };
|
|
85548
|
-
const renderImage =
|
|
85425
|
+
const renderImage = useMemo442(() => {
|
|
85549
85426
|
if (imageSlot) return imageSlot;
|
|
85550
85427
|
if (!image) return null;
|
|
85551
85428
|
return /* @__PURE__ */ jsx("div", { className: cn("max-h-[290px] h-full overflow-hidden max-lg:hidden", imageWrapperClassName), children: /* @__PURE__ */ jsx(
|
|
@@ -85558,7 +85435,7 @@ function OfferModalMembershipImage({
|
|
|
85558
85435
|
}
|
|
85559
85436
|
) });
|
|
85560
85437
|
}, [imageSlot, image, imageWrapperClassName, imageClassName, optixFlowConfig]);
|
|
85561
|
-
const renderCloseButton =
|
|
85438
|
+
const renderCloseButton = useMemo442(() => {
|
|
85562
85439
|
if (closeButtonSlot) return closeButtonSlot;
|
|
85563
85440
|
return /* @__PURE__ */ jsx("div", { className: "absolute -end-px -top-px z-10", children: /* @__PURE__ */ jsx(DialogClose, { asChild: true, children: /* @__PURE__ */ jsx(
|
|
85564
85441
|
Pressable,
|
|
@@ -85574,7 +85451,7 @@ function OfferModalMembershipImage({
|
|
|
85574
85451
|
}
|
|
85575
85452
|
) }) });
|
|
85576
85453
|
}, [closeButtonSlot, closeClassName]);
|
|
85577
|
-
const renderForm =
|
|
85454
|
+
const renderForm = useMemo442(() => {
|
|
85578
85455
|
if (formSlot) return formSlot;
|
|
85579
85456
|
return /* @__PURE__ */ jsxs(
|
|
85580
85457
|
Form,
|
|
@@ -85637,7 +85514,7 @@ function OfferModalMembershipImage({
|
|
|
85637
85514
|
}
|
|
85638
85515
|
);
|
|
85639
85516
|
}, [formSlot, form, formConfig, formMethod, emailPlaceholder, inputClassName, submitClassName, buttonText, formClassName]);
|
|
85640
|
-
const renderFooter =
|
|
85517
|
+
const renderFooter = useMemo442(() => {
|
|
85641
85518
|
if (footerSlot) return footerSlot;
|
|
85642
85519
|
if (!description) return null;
|
|
85643
85520
|
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 +85634,7 @@ function SheetDescription({
|
|
|
85757
85634
|
}
|
|
85758
85635
|
);
|
|
85759
85636
|
}
|
|
85760
|
-
var { useMemo:
|
|
85637
|
+
var { useMemo: useMemo443 } = React25;
|
|
85761
85638
|
function OfferModalSheetNewsletter({
|
|
85762
85639
|
logo,
|
|
85763
85640
|
logoSlot,
|
|
@@ -85840,7 +85717,7 @@ function OfferModalSheetNewsletter({
|
|
|
85840
85717
|
});
|
|
85841
85718
|
const formMethod = formConfig?.method?.toLowerCase() === "get" ? "get" : "post";
|
|
85842
85719
|
const sheetProps = open !== void 0 ? { open, onOpenChange } : { defaultOpen };
|
|
85843
|
-
const renderLogo =
|
|
85720
|
+
const renderLogo = useMemo443(() => {
|
|
85844
85721
|
if (logoSlot) return logoSlot;
|
|
85845
85722
|
if (!logo) return null;
|
|
85846
85723
|
const logoSrc = typeof logo.src === "string" ? logo.src : logo.src.light;
|
|
@@ -85854,7 +85731,7 @@ function OfferModalSheetNewsletter({
|
|
|
85854
85731
|
}
|
|
85855
85732
|
);
|
|
85856
85733
|
}, [logoSlot, logo, logoClassName, optixFlowConfig]);
|
|
85857
|
-
const renderHeader =
|
|
85734
|
+
const renderHeader = useMemo443(() => {
|
|
85858
85735
|
if (headerSlot) return headerSlot;
|
|
85859
85736
|
return /* @__PURE__ */ jsxs(SheetHeader, { className: cn("gap-8 p-0", headerClassName), children: [
|
|
85860
85737
|
renderLogo,
|
|
@@ -85864,7 +85741,7 @@ function OfferModalSheetNewsletter({
|
|
|
85864
85741
|
] })
|
|
85865
85742
|
] });
|
|
85866
85743
|
}, [headerSlot, renderLogo, headerClassName, title, titleClassName, description, descriptionClassName]);
|
|
85867
|
-
const renderForm =
|
|
85744
|
+
const renderForm = useMemo443(() => {
|
|
85868
85745
|
if (formSlot) return formSlot;
|
|
85869
85746
|
return /* @__PURE__ */ jsx(
|
|
85870
85747
|
Form,
|
|
@@ -85912,7 +85789,7 @@ function OfferModalSheetNewsletter({
|
|
|
85912
85789
|
}
|
|
85913
85790
|
);
|
|
85914
85791
|
}, [formSlot, form, formConfig, formMethod, emailPlaceholder, inputClassName, submitClassName, buttonText, formClassName]);
|
|
85915
|
-
const renderLegal =
|
|
85792
|
+
const renderLegal = useMemo443(() => {
|
|
85916
85793
|
if (legalSlot) return legalSlot;
|
|
85917
85794
|
if (!termsUrl || !termsText || !privacyUrl || !privacyText) return null;
|
|
85918
85795
|
return /* @__PURE__ */ jsxs("p", { className: cn("text-muted-foreground text-xs", legalClassName), children: [
|
|
@@ -85926,7 +85803,7 @@ function OfferModalSheetNewsletter({
|
|
|
85926
85803
|
"."
|
|
85927
85804
|
] });
|
|
85928
85805
|
}, [legalSlot, termsUrl, termsText, privacyUrl, privacyText, legalClassName]);
|
|
85929
|
-
const renderImage =
|
|
85806
|
+
const renderImage = useMemo443(() => {
|
|
85930
85807
|
if (imageSlot) return imageSlot;
|
|
85931
85808
|
if (!image) return null;
|
|
85932
85809
|
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 +86383,10 @@ function ProjectDetailSidebarNavigation(props) {
|
|
|
86506
86383
|
heroImageClassName,
|
|
86507
86384
|
metadataClassName
|
|
86508
86385
|
} = props;
|
|
86509
|
-
const [activeSection, setActiveSection] =
|
|
86386
|
+
const [activeSection, setActiveSection] = React25.useState(
|
|
86510
86387
|
sections?.[0]?.id || ""
|
|
86511
86388
|
);
|
|
86512
|
-
|
|
86389
|
+
React25.useEffect(() => {
|
|
86513
86390
|
const handleScroll = () => {
|
|
86514
86391
|
const sectionElements = sections?.map(
|
|
86515
86392
|
(section) => document.getElementById(section.id)
|
|
@@ -89369,7 +89246,7 @@ function ProjectDetailTabbedCaseStudy(props) {
|
|
|
89369
89246
|
testimonialClassName,
|
|
89370
89247
|
toolsClassName
|
|
89371
89248
|
} = props;
|
|
89372
|
-
const [activeTab, setActiveTab] =
|
|
89249
|
+
const [activeTab, setActiveTab] = React25.useState(tabs?.[0]?.id || "");
|
|
89373
89250
|
const renderedBackAction = useMemo(() => {
|
|
89374
89251
|
if (backActionSlot) return backActionSlot;
|
|
89375
89252
|
if (!backAction) return null;
|
|
@@ -89757,7 +89634,7 @@ function RevealImage({
|
|
|
89757
89634
|
index,
|
|
89758
89635
|
optixFlowConfig
|
|
89759
89636
|
}) {
|
|
89760
|
-
const ref =
|
|
89637
|
+
const ref = React25.useRef(null);
|
|
89761
89638
|
const { scrollYProgress } = useScroll({
|
|
89762
89639
|
target: ref,
|
|
89763
89640
|
offset: ["start end", "end start"]
|
|
@@ -89952,7 +89829,7 @@ function ParallaxSection({
|
|
|
89952
89829
|
index,
|
|
89953
89830
|
optixFlowConfig
|
|
89954
89831
|
}) {
|
|
89955
|
-
const ref =
|
|
89832
|
+
const ref = React25.useRef(null);
|
|
89956
89833
|
const { scrollYProgress } = useScroll({
|
|
89957
89834
|
target: ref,
|
|
89958
89835
|
offset: ["start end", "end start"]
|
|
@@ -90025,7 +89902,7 @@ function ProjectDetailParallaxScroll(props) {
|
|
|
90025
89902
|
heroImageClassName,
|
|
90026
89903
|
sectionsClassName
|
|
90027
89904
|
} = props;
|
|
90028
|
-
const heroRef =
|
|
89905
|
+
const heroRef = React25.useRef(null);
|
|
90029
89906
|
const { scrollYProgress } = useScroll({
|
|
90030
89907
|
target: heroRef,
|
|
90031
89908
|
offset: ["start start", "end start"]
|
|
@@ -90563,7 +90440,7 @@ function IndustriesExpandableShowcase({
|
|
|
90563
90440
|
patternClassName,
|
|
90564
90441
|
optixFlowConfig
|
|
90565
90442
|
}) {
|
|
90566
|
-
const [activeContractor, setActiveContractor] =
|
|
90443
|
+
const [activeContractor, setActiveContractor] = React25.useState(
|
|
90567
90444
|
contractors?.[0]?.id || ""
|
|
90568
90445
|
);
|
|
90569
90446
|
const handleContractorHover = (contractorId) => {
|
|
@@ -91216,7 +91093,7 @@ function ResourceDetailDocumentSidebar({
|
|
|
91216
91093
|
}) {
|
|
91217
91094
|
const renderedBreadcrumbs = useMemo(() => {
|
|
91218
91095
|
if (breadcrumbsSlot) return breadcrumbsSlot;
|
|
91219
|
-
return /* @__PURE__ */ jsx(Breadcrumb, { className: breadcrumbsClassName, children: /* @__PURE__ */ jsx(BreadcrumbList, { children: breadcrumbs?.map((crumb, index) => /* @__PURE__ */ jsxs(
|
|
91096
|
+
return /* @__PURE__ */ jsx(Breadcrumb, { className: breadcrumbsClassName, children: /* @__PURE__ */ jsx(BreadcrumbList, { children: breadcrumbs?.map((crumb, index) => /* @__PURE__ */ jsxs(React25.Fragment, { children: [
|
|
91220
91097
|
/* @__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
91098
|
index < (breadcrumbs?.length || 0) - 1 && /* @__PURE__ */ jsx(BreadcrumbSeparator, {})
|
|
91222
91099
|
] }, index)) }) });
|
|
@@ -94617,8 +94494,8 @@ function ServicesListTableHover({
|
|
|
94617
94494
|
patternOpacity,
|
|
94618
94495
|
optixFlowConfig
|
|
94619
94496
|
}) {
|
|
94620
|
-
const [hoveredIndex, setHoveredIndex] =
|
|
94621
|
-
const [mousePosition, setMousePosition] =
|
|
94497
|
+
const [hoveredIndex, setHoveredIndex] = React25.useState(null);
|
|
94498
|
+
const [mousePosition, setMousePosition] = React25.useState({ x: 0, y: 0 });
|
|
94622
94499
|
const handleMouseMove = (e) => {
|
|
94623
94500
|
setMousePosition({ x: e.clientX, y: e.clientY });
|
|
94624
94501
|
};
|
|
@@ -94868,7 +94745,7 @@ function ServicesListStickyImage({
|
|
|
94868
94745
|
patternOpacity,
|
|
94869
94746
|
optixFlowConfig
|
|
94870
94747
|
}) {
|
|
94871
|
-
const [activeIndex, setActiveIndex] =
|
|
94748
|
+
const [activeIndex, setActiveIndex] = React25.useState(0);
|
|
94872
94749
|
const renderServices = () => {
|
|
94873
94750
|
if (servicesSlot) return servicesSlot;
|
|
94874
94751
|
if (!services || services.length === 0) return null;
|
|
@@ -95120,8 +94997,8 @@ function ServicesListVideoShowcase({
|
|
|
95120
94997
|
patternOpacity,
|
|
95121
94998
|
optixFlowConfig
|
|
95122
94999
|
}) {
|
|
95123
|
-
const [playingIndex, setPlayingIndex] =
|
|
95124
|
-
const videoRefs =
|
|
95000
|
+
const [playingIndex, setPlayingIndex] = React25.useState(null);
|
|
95001
|
+
const videoRefs = React25.useRef([]);
|
|
95125
95002
|
const handleMouseEnter = (index) => {
|
|
95126
95003
|
setPlayingIndex(index);
|
|
95127
95004
|
videoRefs.current[index]?.play();
|
|
@@ -98414,7 +98291,7 @@ function StatsCircularProgress({
|
|
|
98414
98291
|
statInfoClassName
|
|
98415
98292
|
}) {
|
|
98416
98293
|
const effectiveDefaultCategory = defaultCategory || (categories && categories.length > 0 ? categories[0].id : "");
|
|
98417
|
-
const [category, setCategory] =
|
|
98294
|
+
const [category, setCategory] = React25.useState(effectiveDefaultCategory);
|
|
98418
98295
|
const badgeContent = useMemo(() => {
|
|
98419
98296
|
if (badgeSlot) return badgeSlot;
|
|
98420
98297
|
if (!badge) return null;
|
|
@@ -98707,8 +98584,8 @@ function StatsCardGroup({
|
|
|
98707
98584
|
);
|
|
98708
98585
|
}
|
|
98709
98586
|
function useAnimatedCounter(endValue, duration = 2e3, isVisible) {
|
|
98710
|
-
const [count, setCount] =
|
|
98711
|
-
|
|
98587
|
+
const [count, setCount] = React25.useState(0);
|
|
98588
|
+
React25.useEffect(() => {
|
|
98712
98589
|
if (!isVisible) return;
|
|
98713
98590
|
let startTime = null;
|
|
98714
98591
|
let animationFrame;
|
|
@@ -98796,9 +98673,9 @@ function StatsAnimatedCounter({
|
|
|
98796
98673
|
statLabelClassName,
|
|
98797
98674
|
statIconClassName
|
|
98798
98675
|
}) {
|
|
98799
|
-
const [isVisible, setIsVisible] =
|
|
98800
|
-
const sectionRef =
|
|
98801
|
-
|
|
98676
|
+
const [isVisible, setIsVisible] = React25.useState(false);
|
|
98677
|
+
const sectionRef = React25.useRef(null);
|
|
98678
|
+
React25.useEffect(() => {
|
|
98802
98679
|
const observer = new IntersectionObserver(
|
|
98803
98680
|
([entry]) => {
|
|
98804
98681
|
if (entry.isIntersecting) {
|
|
@@ -98886,8 +98763,8 @@ function StatsAnimatedCounter({
|
|
|
98886
98763
|
);
|
|
98887
98764
|
}
|
|
98888
98765
|
function useNumberTicker(endValue, duration = 2500, isVisible, decimals = 0) {
|
|
98889
|
-
const [displayValue, setDisplayValue] =
|
|
98890
|
-
|
|
98766
|
+
const [displayValue, setDisplayValue] = React25.useState("0");
|
|
98767
|
+
React25.useEffect(() => {
|
|
98891
98768
|
if (!isVisible) return;
|
|
98892
98769
|
let startTime = null;
|
|
98893
98770
|
let animationFrame;
|
|
@@ -99002,9 +98879,9 @@ function StatsNumberTicker({
|
|
|
99002
98879
|
statLabelClassName,
|
|
99003
98880
|
statDescriptionClassName
|
|
99004
98881
|
}) {
|
|
99005
|
-
const [isVisible, setIsVisible] =
|
|
99006
|
-
const sectionRef =
|
|
99007
|
-
|
|
98882
|
+
const [isVisible, setIsVisible] = React25.useState(false);
|
|
98883
|
+
const sectionRef = React25.useRef(null);
|
|
98884
|
+
React25.useEffect(() => {
|
|
99008
98885
|
const observer = new IntersectionObserver(
|
|
99009
98886
|
([entry]) => {
|
|
99010
98887
|
if (entry.isIntersecting) {
|
|
@@ -99263,9 +99140,9 @@ function StatsBarComparison({
|
|
|
99263
99140
|
barValueClassName,
|
|
99264
99141
|
barTrackClassName
|
|
99265
99142
|
}) {
|
|
99266
|
-
const [isVisible, setIsVisible] =
|
|
99267
|
-
const sectionRef =
|
|
99268
|
-
|
|
99143
|
+
const [isVisible, setIsVisible] = React25.useState(!animate);
|
|
99144
|
+
const sectionRef = React25.useRef(null);
|
|
99145
|
+
React25.useEffect(() => {
|
|
99269
99146
|
if (!animate) return;
|
|
99270
99147
|
const observer = new IntersectionObserver(
|
|
99271
99148
|
([entry]) => {
|
|
@@ -99443,7 +99320,7 @@ function TimelineVerticalIconDashed({
|
|
|
99443
99320
|
"mx-auto flex flex-col items-center justify-center text-center sm:max-w-xl",
|
|
99444
99321
|
stepsClassName
|
|
99445
99322
|
),
|
|
99446
|
-
children: steps.map((step, index) => /* @__PURE__ */ jsxs(
|
|
99323
|
+
children: steps.map((step, index) => /* @__PURE__ */ jsxs(React25.Fragment, { children: [
|
|
99447
99324
|
/* @__PURE__ */ jsxs("div", { className: cn("flex flex-col items-center", stepClassName), children: [
|
|
99448
99325
|
/* @__PURE__ */ jsx(
|
|
99449
99326
|
"span",
|
|
@@ -99710,7 +99587,7 @@ function TimelineTwoColumnFeatured({
|
|
|
99710
99587
|
style,
|
|
99711
99588
|
optixFlowConfig
|
|
99712
99589
|
}) {
|
|
99713
|
-
const renderActions =
|
|
99590
|
+
const renderActions = React25.useMemo(() => {
|
|
99714
99591
|
if (actionsSlot) {
|
|
99715
99592
|
return actionsSlot;
|
|
99716
99593
|
}
|
|
@@ -99838,7 +99715,7 @@ function TimelineTwoColumnFeatured({
|
|
|
99838
99715
|
}
|
|
99839
99716
|
);
|
|
99840
99717
|
}
|
|
99841
|
-
var DiagonalPattern =
|
|
99718
|
+
var DiagonalPattern = React25.memo(({
|
|
99842
99719
|
className,
|
|
99843
99720
|
patternOpacity = 0.15
|
|
99844
99721
|
}) => {
|
|
@@ -99877,7 +99754,7 @@ function TimelineAlternatingDiagonal({
|
|
|
99877
99754
|
style,
|
|
99878
99755
|
optixFlowConfig
|
|
99879
99756
|
}) {
|
|
99880
|
-
const renderedBadge =
|
|
99757
|
+
const renderedBadge = React25.useMemo(() => {
|
|
99881
99758
|
if (badgeSlot) {
|
|
99882
99759
|
return badgeSlot;
|
|
99883
99760
|
}
|
|
@@ -100255,7 +100132,7 @@ function TimelineProductivityList({
|
|
|
100255
100132
|
}
|
|
100256
100133
|
);
|
|
100257
100134
|
}
|
|
100258
|
-
var ProcessBar =
|
|
100135
|
+
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
100136
|
/* @__PURE__ */ jsx("div", { className: "flex flex-col items-center", children: /* @__PURE__ */ jsx(
|
|
100260
100137
|
motion.div,
|
|
100261
100138
|
{
|
|
@@ -100282,7 +100159,7 @@ var ProcessBar = React28.memo(({ currentStep, steps }) => /* @__PURE__ */ jsx("d
|
|
|
100282
100159
|
)
|
|
100283
100160
|
] })
|
|
100284
100161
|
] }, index)) }) }));
|
|
100285
|
-
var StepperContent =
|
|
100162
|
+
var StepperContent = React25.memo(({ step, optixFlowConfig, imageClassName, descriptionClassName, background }) => {
|
|
100286
100163
|
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
100164
|
/* @__PURE__ */ jsx(
|
|
100288
100165
|
motion.div,
|
|
@@ -100315,7 +100192,7 @@ var StepperContent = React28.memo(({ step, optixFlowConfig, imageClassName, desc
|
|
|
100315
100192
|
)
|
|
100316
100193
|
] });
|
|
100317
100194
|
});
|
|
100318
|
-
var NavButtons =
|
|
100195
|
+
var NavButtons = React25.memo(({ handlePrev, handleNext }) => /* @__PURE__ */ jsxs("div", { className: "flex w-full justify-end gap-3 tracking-tight", children: [
|
|
100319
100196
|
/* @__PURE__ */ jsxs(
|
|
100320
100197
|
Pressable,
|
|
100321
100198
|
{
|
|
@@ -100366,10 +100243,10 @@ function TimelineStepperAnimated({
|
|
|
100366
100243
|
}) {
|
|
100367
100244
|
const safeInitialStep = (steps?.length ?? 0) > 0 ? Math.max(0, Math.min(initialStep ?? 0, (steps?.length ?? 1) - 1)) : 0;
|
|
100368
100245
|
const [currentStep, setCurrentStep] = useState(safeInitialStep);
|
|
100369
|
-
const handleNext =
|
|
100246
|
+
const handleNext = React25.useCallback(() => {
|
|
100370
100247
|
setCurrentStep((prev) => Math.min(prev + 1, (steps?.length ?? 1) - 1));
|
|
100371
100248
|
}, [steps?.length]);
|
|
100372
|
-
const handlePrev =
|
|
100249
|
+
const handlePrev = React25.useCallback(() => {
|
|
100373
100250
|
setCurrentStep((prev) => Math.max(prev - 1, 0));
|
|
100374
100251
|
}, []);
|
|
100375
100252
|
const safeCurrentStep = (steps?.length ?? 0) > 0 ? Math.max(0, Math.min(currentStep, (steps?.length ?? 1) - 1)) : 0;
|
|
@@ -101078,7 +100955,7 @@ function TimelineTabbedPhases({
|
|
|
101078
100955
|
style,
|
|
101079
100956
|
optixFlowConfig
|
|
101080
100957
|
}) {
|
|
101081
|
-
const renderDownloadButton =
|
|
100958
|
+
const renderDownloadButton = React25.useMemo(() => {
|
|
101082
100959
|
if (downloadSlot) {
|
|
101083
100960
|
return downloadSlot;
|
|
101084
100961
|
}
|
|
@@ -101298,7 +101175,7 @@ function TimelineProductLaunch({
|
|
|
101298
101175
|
id,
|
|
101299
101176
|
style
|
|
101300
101177
|
}) {
|
|
101301
|
-
const renderCta =
|
|
101178
|
+
const renderCta = React25.useMemo(() => {
|
|
101302
101179
|
if (ctaSlot) {
|
|
101303
101180
|
return ctaSlot;
|
|
101304
101181
|
}
|
|
@@ -101763,9 +101640,9 @@ function LinkTreeBlock({
|
|
|
101763
101640
|
}) {
|
|
101764
101641
|
const resolvedBackground = background;
|
|
101765
101642
|
const resolvedPattern = pattern ?? backgroundPattern;
|
|
101766
|
-
const [lightboxOpen, setLightboxOpen] =
|
|
101767
|
-
const [lightboxIndex, setLightboxIndex] =
|
|
101768
|
-
const lightboxItems =
|
|
101643
|
+
const [lightboxOpen, setLightboxOpen] = React25.useState(false);
|
|
101644
|
+
const [lightboxIndex, setLightboxIndex] = React25.useState(0);
|
|
101645
|
+
const lightboxItems = React25.useMemo(() => {
|
|
101769
101646
|
if (!mediaGallery || mediaGallery.length === 0) return [];
|
|
101770
101647
|
return mediaGallery.slice(0, mediaGalleryLimit).map((item, index) => ({
|
|
101771
101648
|
id: item.id ?? `media-${index}`,
|
|
@@ -101777,11 +101654,11 @@ function LinkTreeBlock({
|
|
|
101777
101654
|
share: true
|
|
101778
101655
|
}));
|
|
101779
101656
|
}, [mediaGallery, mediaGalleryLimit]);
|
|
101780
|
-
const handleMediaClick =
|
|
101657
|
+
const handleMediaClick = React25.useCallback((index) => {
|
|
101781
101658
|
setLightboxIndex(index);
|
|
101782
101659
|
setLightboxOpen(true);
|
|
101783
101660
|
}, []);
|
|
101784
|
-
const handleLightboxClose =
|
|
101661
|
+
const handleLightboxClose = React25.useCallback(() => {
|
|
101785
101662
|
setLightboxOpen(false);
|
|
101786
101663
|
}, []);
|
|
101787
101664
|
const resolveImage = (value, fallbackAlt) => {
|
|
@@ -101793,7 +101670,7 @@ function LinkTreeBlock({
|
|
|
101793
101670
|
};
|
|
101794
101671
|
const nameForAlt = typeof brandName === "string" ? brandName : "Brand avatar";
|
|
101795
101672
|
const resolvedAvatar = resolveImage(brandAvatar || brandLogo, nameForAlt) || resolveImage(blockBrandedIconsAndPlaceholders.avatar1, nameForAlt);
|
|
101796
|
-
const renderBrandHeader =
|
|
101673
|
+
const renderBrandHeader = React25.useMemo(() => {
|
|
101797
101674
|
if (brandSlot) return brandSlot;
|
|
101798
101675
|
return /* @__PURE__ */ jsxs(
|
|
101799
101676
|
"div",
|
|
@@ -101880,7 +101757,7 @@ function LinkTreeBlock({
|
|
|
101880
101757
|
brandTagline,
|
|
101881
101758
|
taglineClassName
|
|
101882
101759
|
]);
|
|
101883
|
-
const renderLinks =
|
|
101760
|
+
const renderLinks = React25.useMemo(() => {
|
|
101884
101761
|
if (linksSlot) return linksSlot;
|
|
101885
101762
|
if (!links || links.length === 0) return null;
|
|
101886
101763
|
return /* @__PURE__ */ jsx("div", { className: cn("space-y-3", linksClassName), children: links.map((link, index) => {
|
|
@@ -101997,7 +101874,7 @@ function LinkTreeBlock({
|
|
|
101997
101874
|
linkBadgeClassName,
|
|
101998
101875
|
linkChevronClassName
|
|
101999
101876
|
]);
|
|
102000
|
-
const renderMediaGallery =
|
|
101877
|
+
const renderMediaGallery = React25.useMemo(() => {
|
|
102001
101878
|
if (mediaGallerySlot) return mediaGallerySlot;
|
|
102002
101879
|
if (!mediaGallery || mediaGallery.length === 0) return null;
|
|
102003
101880
|
const items = mediaGallery.slice(0, mediaGalleryLimit);
|
|
@@ -102111,7 +101988,7 @@ function LinkTreeBlock({
|
|
|
102111
101988
|
mediaGalleryOverlayClassName,
|
|
102112
101989
|
mediaGalleryPlayIconClassName
|
|
102113
101990
|
]);
|
|
102114
|
-
const renderSocialLinks =
|
|
101991
|
+
const renderSocialLinks = React25.useMemo(() => {
|
|
102115
101992
|
if (socialLinksSlot) return socialLinksSlot;
|
|
102116
101993
|
if (!socialLinks || socialLinks.length === 0) return null;
|
|
102117
101994
|
return /* @__PURE__ */ jsx(
|
|
@@ -102157,7 +102034,7 @@ function LinkTreeBlock({
|
|
|
102157
102034
|
socialIconClassName,
|
|
102158
102035
|
socialLinkClassName
|
|
102159
102036
|
]);
|
|
102160
|
-
const renderFooter =
|
|
102037
|
+
const renderFooter = React25.useMemo(() => {
|
|
102161
102038
|
if (footerSlot) return footerSlot;
|
|
102162
102039
|
if (!footerAction) return null;
|
|
102163
102040
|
const resolvedFooterAction = footerAction;
|