@opensite/ui 2.3.7 → 2.3.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/about-mission-dual-image.cjs +39 -32
- package/dist/about-mission-dual-image.js +40 -33
- package/dist/about-mission-principles.cjs +8 -6
- package/dist/about-mission-principles.js +8 -6
- package/dist/about-streamline-team.cjs +33 -21
- package/dist/about-streamline-team.js +33 -21
- package/dist/community-initiatives.cjs +849 -875
- package/dist/community-initiatives.js +848 -874
- package/dist/components.cjs +76 -138
- package/dist/components.js +76 -138
- package/dist/index.cjs +76 -108
- package/dist/index.js +76 -108
- package/dist/registry.cjs +1777 -1790
- package/dist/registry.js +563 -576
- package/package.json +1 -1
package/dist/registry.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import * as
|
|
2
|
-
import
|
|
1
|
+
import * as React27 from 'react';
|
|
2
|
+
import React27__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 = React27__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 = React27__default.forwardRef(
|
|
449
449
|
({
|
|
450
450
|
id,
|
|
451
451
|
title,
|
|
@@ -510,12 +510,12 @@ function TextInner({ as, className, children, ...props }, ref) {
|
|
|
510
510
|
const Component = as || "span";
|
|
511
511
|
return /* @__PURE__ */ jsx(Component, { ref, className: cn(className), ...props, children });
|
|
512
512
|
}
|
|
513
|
-
var Text =
|
|
513
|
+
var Text = React27.forwardRef(TextInner);
|
|
514
514
|
Text.displayName = "Text";
|
|
515
515
|
function isContentTextItem(item) {
|
|
516
|
-
return item !== null && typeof item === "object" && !
|
|
516
|
+
return item !== null && typeof item === "object" && !React27.isValidElement(item) && "_type" in item && item._type === "text";
|
|
517
517
|
}
|
|
518
|
-
var ContentGroup =
|
|
518
|
+
var ContentGroup = React27.forwardRef(
|
|
519
519
|
({ items, className, children, ...props }, ref) => {
|
|
520
520
|
const hasContent = items && items.length > 0;
|
|
521
521
|
if (!hasContent) {
|
|
@@ -528,10 +528,10 @@ var ContentGroup = React26.forwardRef(
|
|
|
528
528
|
return /* @__PURE__ */ jsx(Text, { ...textProps }, idx);
|
|
529
529
|
}
|
|
530
530
|
const reactNode = item;
|
|
531
|
-
if (
|
|
532
|
-
return
|
|
531
|
+
if (React27.isValidElement(reactNode)) {
|
|
532
|
+
return React27.cloneElement(reactNode, { key: reactNode.key ?? idx });
|
|
533
533
|
}
|
|
534
|
-
return /* @__PURE__ */ jsx(
|
|
534
|
+
return /* @__PURE__ */ jsx(React27.Fragment, { children: reactNode }, idx);
|
|
535
535
|
}),
|
|
536
536
|
children
|
|
537
537
|
] });
|
|
@@ -1112,7 +1112,7 @@ function useNavigation({
|
|
|
1112
1112
|
href,
|
|
1113
1113
|
onClick
|
|
1114
1114
|
} = {}) {
|
|
1115
|
-
const linkType =
|
|
1115
|
+
const linkType = React27.useMemo(() => {
|
|
1116
1116
|
if (!href || href.trim() === "") {
|
|
1117
1117
|
return onClick ? "none" : "none";
|
|
1118
1118
|
}
|
|
@@ -1133,7 +1133,7 @@ function useNavigation({
|
|
|
1133
1133
|
return "internal";
|
|
1134
1134
|
}
|
|
1135
1135
|
}, [href, onClick]);
|
|
1136
|
-
const normalizedHref =
|
|
1136
|
+
const normalizedHref = React27.useMemo(() => {
|
|
1137
1137
|
if (!href || href.trim() === "") {
|
|
1138
1138
|
return void 0;
|
|
1139
1139
|
}
|
|
@@ -1151,7 +1151,7 @@ function useNavigation({
|
|
|
1151
1151
|
return trimmed;
|
|
1152
1152
|
}
|
|
1153
1153
|
}, [href, linkType]);
|
|
1154
|
-
const target =
|
|
1154
|
+
const target = React27.useMemo(() => {
|
|
1155
1155
|
switch (linkType) {
|
|
1156
1156
|
case "external":
|
|
1157
1157
|
return "_blank";
|
|
@@ -1164,7 +1164,7 @@ function useNavigation({
|
|
|
1164
1164
|
return void 0;
|
|
1165
1165
|
}
|
|
1166
1166
|
}, [linkType]);
|
|
1167
|
-
const rel =
|
|
1167
|
+
const rel = React27.useMemo(() => {
|
|
1168
1168
|
if (linkType === "external") {
|
|
1169
1169
|
return "noopener noreferrer";
|
|
1170
1170
|
}
|
|
@@ -1173,7 +1173,7 @@ function useNavigation({
|
|
|
1173
1173
|
const isExternal = linkType === "external";
|
|
1174
1174
|
const isInternal = linkType === "internal";
|
|
1175
1175
|
const shouldUseRouter = isInternal && typeof normalizedHref === "string" && normalizedHref.startsWith("/");
|
|
1176
|
-
const handleClick =
|
|
1176
|
+
const handleClick = React27.useCallback(
|
|
1177
1177
|
(event) => {
|
|
1178
1178
|
if (onClick) {
|
|
1179
1179
|
try {
|
|
@@ -1357,7 +1357,7 @@ var buttonVariants = cva(baseStyles, {
|
|
|
1357
1357
|
size: "default"
|
|
1358
1358
|
}
|
|
1359
1359
|
});
|
|
1360
|
-
var Pressable =
|
|
1360
|
+
var Pressable = React27.forwardRef(
|
|
1361
1361
|
({
|
|
1362
1362
|
children,
|
|
1363
1363
|
className,
|
|
@@ -1924,10 +1924,10 @@ var ImageSlider = ({
|
|
|
1924
1924
|
optixFlowConfig
|
|
1925
1925
|
}) => {
|
|
1926
1926
|
const hasImages = images.length > 0;
|
|
1927
|
-
const [currentIndex, setCurrentIndex] =
|
|
1927
|
+
const [currentIndex, setCurrentIndex] = React27.useState(
|
|
1928
1928
|
() => normalizeIndex(startIndex, images.length)
|
|
1929
1929
|
);
|
|
1930
|
-
const handleNext =
|
|
1930
|
+
const handleNext = React27.useCallback(() => {
|
|
1931
1931
|
if (!hasImages) return;
|
|
1932
1932
|
setCurrentIndex((prevIndex) => {
|
|
1933
1933
|
const nextIndex = prevIndex + 1 >= images.length ? 0 : prevIndex + 1;
|
|
@@ -1935,7 +1935,7 @@ var ImageSlider = ({
|
|
|
1935
1935
|
return nextIndex;
|
|
1936
1936
|
});
|
|
1937
1937
|
}, [hasImages, images.length, onSlideChange]);
|
|
1938
|
-
const handlePrevious =
|
|
1938
|
+
const handlePrevious = React27.useCallback(() => {
|
|
1939
1939
|
if (!hasImages) return;
|
|
1940
1940
|
setCurrentIndex((prevIndex) => {
|
|
1941
1941
|
const nextIndex = prevIndex - 1 < 0 ? images.length - 1 : prevIndex - 1;
|
|
@@ -1943,11 +1943,11 @@ var ImageSlider = ({
|
|
|
1943
1943
|
return nextIndex;
|
|
1944
1944
|
});
|
|
1945
1945
|
}, [hasImages, images.length, onSlideChange]);
|
|
1946
|
-
|
|
1946
|
+
React27.useEffect(() => {
|
|
1947
1947
|
if (!hasImages) return;
|
|
1948
1948
|
setCurrentIndex(normalizeIndex(startIndex, images.length));
|
|
1949
1949
|
}, [startIndex, images.length, hasImages]);
|
|
1950
|
-
|
|
1950
|
+
React27.useEffect(() => {
|
|
1951
1951
|
if (!enableKeyboard || !hasImages) return;
|
|
1952
1952
|
const handleKeyDown = (event) => {
|
|
1953
1953
|
if (event.key === "ArrowRight") {
|
|
@@ -1961,7 +1961,7 @@ var ImageSlider = ({
|
|
|
1961
1961
|
window.removeEventListener("keydown", handleKeyDown);
|
|
1962
1962
|
};
|
|
1963
1963
|
}, [enableKeyboard, handleNext, handlePrevious, hasImages]);
|
|
1964
|
-
|
|
1964
|
+
React27.useEffect(() => {
|
|
1965
1965
|
if (!autoplay || images.length < 2) return;
|
|
1966
1966
|
const interval = window.setInterval(handleNext, autoplayIntervalMs);
|
|
1967
1967
|
return () => window.clearInterval(interval);
|
|
@@ -2257,7 +2257,7 @@ var platformIconMap = {
|
|
|
2257
2257
|
dribbble: "cib/dribbble",
|
|
2258
2258
|
unknown: "icon-park-solid/circular-connection"
|
|
2259
2259
|
};
|
|
2260
|
-
var SocialLinkIcon =
|
|
2260
|
+
var SocialLinkIcon = React27.forwardRef(
|
|
2261
2261
|
({
|
|
2262
2262
|
platformName,
|
|
2263
2263
|
label,
|
|
@@ -2270,13 +2270,13 @@ var SocialLinkIcon = React26.forwardRef(
|
|
|
2270
2270
|
...pressableProps
|
|
2271
2271
|
}, ref) => {
|
|
2272
2272
|
const platform = usePlatformFromUrl(href);
|
|
2273
|
-
const smartPlatformName =
|
|
2273
|
+
const smartPlatformName = React27.useMemo(() => {
|
|
2274
2274
|
return platform || platformName;
|
|
2275
2275
|
}, [platform, platformName]);
|
|
2276
|
-
const iconName =
|
|
2276
|
+
const iconName = React27.useMemo(() => {
|
|
2277
2277
|
return iconNameOverride || platformIconMap[smartPlatformName];
|
|
2278
2278
|
}, [iconNameOverride, smartPlatformName]);
|
|
2279
|
-
const accessibleLabel =
|
|
2279
|
+
const accessibleLabel = React27.useMemo(() => {
|
|
2280
2280
|
return label || platformName;
|
|
2281
2281
|
}, [label, platformName]);
|
|
2282
2282
|
return /* @__PURE__ */ jsx(
|
|
@@ -2518,7 +2518,7 @@ function AboutMissionPrinciples({
|
|
|
2518
2518
|
className,
|
|
2519
2519
|
background,
|
|
2520
2520
|
containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
|
|
2521
|
-
spacing = "
|
|
2521
|
+
spacing = "lg",
|
|
2522
2522
|
pattern,
|
|
2523
2523
|
patternOpacity
|
|
2524
2524
|
}) {
|
|
@@ -2560,7 +2560,9 @@ function AboutMissionPrinciples({
|
|
|
2560
2560
|
children: principles.map((principle, idx) => /* @__PURE__ */ jsxs(
|
|
2561
2561
|
"div",
|
|
2562
2562
|
{
|
|
2563
|
-
className: cn(
|
|
2563
|
+
className: cn(
|
|
2564
|
+
"relative rounded-lg border p-6 bg-card text-card-foreground"
|
|
2565
|
+
),
|
|
2564
2566
|
children: [
|
|
2565
2567
|
principle.number && /* @__PURE__ */ jsx(
|
|
2566
2568
|
"div",
|
|
@@ -2573,7 +2575,7 @@ function AboutMissionPrinciples({
|
|
|
2573
2575
|
}
|
|
2574
2576
|
),
|
|
2575
2577
|
/* @__PURE__ */ jsxs("div", { className: "space-y-3", children: [
|
|
2576
|
-
principle.title && (typeof principle.title === "string" ? /* @__PURE__ */ jsx("h3", { className: "text-xl font-bold", children: principle.title }) : principle.title),
|
|
2578
|
+
principle.title && (typeof principle.title === "string" ? /* @__PURE__ */ jsx("h3", { className: "text-xl font-bold pr-10 text-pretty", children: principle.title }) : principle.title),
|
|
2577
2579
|
principle.description && (typeof principle.description === "string" ? /* @__PURE__ */ jsx("p", { className: "text-pretty text-lg", children: principle.description }) : principle.description)
|
|
2578
2580
|
] })
|
|
2579
2581
|
]
|
|
@@ -2642,11 +2644,11 @@ function AboutMissionPrinciples({
|
|
|
2642
2644
|
{
|
|
2643
2645
|
className: cn(
|
|
2644
2646
|
"mt-6 md:mt-24 p-6 lg:p-12",
|
|
2645
|
-
"bg-
|
|
2646
|
-
"rounded-xl shadow-
|
|
2647
|
+
"bg-accent text-accent-foreground",
|
|
2648
|
+
"rounded-xl shadow-xl border",
|
|
2647
2649
|
visionClassName
|
|
2648
2650
|
),
|
|
2649
|
-
children: /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-1 items-center gap-8 lg:grid-cols-3", children: [
|
|
2651
|
+
children: /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-1 items-center gap-4 md:gap-8 lg:grid-cols-3", children: [
|
|
2650
2652
|
/* @__PURE__ */ jsxs("div", { className: "lg:col-span-2", children: [
|
|
2651
2653
|
visionHeading && (typeof visionHeading === "string" ? /* @__PURE__ */ jsx(
|
|
2652
2654
|
"h3",
|
|
@@ -2694,7 +2696,7 @@ function AboutExpandableValues({
|
|
|
2694
2696
|
pattern,
|
|
2695
2697
|
patternOpacity
|
|
2696
2698
|
}) {
|
|
2697
|
-
const [expandedValue, setExpandedValue] =
|
|
2699
|
+
const [expandedValue, setExpandedValue] = React27.useState(null);
|
|
2698
2700
|
const toggleExpand = useCallback((id) => {
|
|
2699
2701
|
setExpandedValue((prev) => prev === id ? null : id);
|
|
2700
2702
|
}, []);
|
|
@@ -2930,7 +2932,7 @@ function CommunityInitiatives({
|
|
|
2930
2932
|
pattern,
|
|
2931
2933
|
patternOpacity
|
|
2932
2934
|
}) {
|
|
2933
|
-
const [activeCategory, setActiveCategory] =
|
|
2935
|
+
const [activeCategory, setActiveCategory] = React27.useState(
|
|
2934
2936
|
categories?.[0]?.id || ""
|
|
2935
2937
|
);
|
|
2936
2938
|
const currentCategory = categories?.find((category) => category.id === activeCategory) || categories?.[0];
|
|
@@ -2940,28 +2942,6 @@ function CommunityInitiatives({
|
|
|
2940
2942
|
},
|
|
2941
2943
|
[]
|
|
2942
2944
|
);
|
|
2943
|
-
const actionsContent = useMemo(() => {
|
|
2944
|
-
if (actionsSlot) return actionsSlot;
|
|
2945
|
-
if (!actions || actions.length === 0) return null;
|
|
2946
|
-
return /* @__PURE__ */ jsx(
|
|
2947
|
-
"div",
|
|
2948
|
-
{
|
|
2949
|
-
className: cn("flex flex-wrap justify-center gap-4", actionsClassName),
|
|
2950
|
-
children: actions.map((action, idx) => /* @__PURE__ */ jsx(
|
|
2951
|
-
Pressable,
|
|
2952
|
-
{
|
|
2953
|
-
href: action.href,
|
|
2954
|
-
onClick: action.onClick,
|
|
2955
|
-
variant: action.variant || "default",
|
|
2956
|
-
size: action.size || "lg",
|
|
2957
|
-
asButton: true,
|
|
2958
|
-
children: action.label
|
|
2959
|
-
},
|
|
2960
|
-
idx
|
|
2961
|
-
))
|
|
2962
|
-
}
|
|
2963
|
-
);
|
|
2964
|
-
}, [actionsSlot, actions, actionsClassName]);
|
|
2965
2945
|
const categoriesContent = useMemo(() => {
|
|
2966
2946
|
if (categoriesSlot) return categoriesSlot;
|
|
2967
2947
|
if (!categories || categories.length === 0) return null;
|
|
@@ -2983,22 +2963,27 @@ function CommunityInitiatives({
|
|
|
2983
2963
|
children: categories.map((category) => /* @__PURE__ */ jsx("option", { value: category.id, children: category.title }, category.id))
|
|
2984
2964
|
}
|
|
2985
2965
|
) }),
|
|
2986
|
-
/* @__PURE__ */ jsx(TabsList, { className: "hidden h-auto grid-cols-4 p-1 md:grid", children: categories.map((category) => /* @__PURE__ */ jsx(
|
|
2966
|
+
/* @__PURE__ */ jsx(TabsList, { className: "hidden h-auto grid-cols-4 p-1 md:grid ring-2 ring-primary", children: categories.map((category) => /* @__PURE__ */ jsx(
|
|
2987
2967
|
TabsTrigger,
|
|
2988
2968
|
{
|
|
2989
2969
|
value: category.id,
|
|
2990
|
-
className:
|
|
2970
|
+
className: cn(
|
|
2971
|
+
"px-3 py-2.5 cursor-pointer",
|
|
2972
|
+
"data-[state=active]:bg-primary data-[state=active]:text-primary-foreground",
|
|
2973
|
+
"hover:bg-muted hover:text-muted-foreground",
|
|
2974
|
+
"transition-all duration-500"
|
|
2975
|
+
),
|
|
2991
2976
|
children: category.title
|
|
2992
2977
|
},
|
|
2993
2978
|
category.id
|
|
2994
2979
|
)) })
|
|
2995
2980
|
] }),
|
|
2996
|
-
/* @__PURE__ */ jsx("div", { className: "mx-auto max-w-2xl text-left md:text-center", children: /* @__PURE__ */ jsx("p", { className:
|
|
2981
|
+
/* @__PURE__ */ jsx("div", { className: "mx-auto max-w-2xl text-left md:text-center", children: /* @__PURE__ */ jsx("p", { className: "relative", children: currentCategory?.description }) }),
|
|
2997
2982
|
categories.map((category) => /* @__PURE__ */ jsx(
|
|
2998
2983
|
TabsContent,
|
|
2999
2984
|
{
|
|
3000
2985
|
value: category.id,
|
|
3001
|
-
className: "space-y-12",
|
|
2986
|
+
className: "space-y-12 md:space-y-24",
|
|
3002
2987
|
children: category.initiatives.map((initiative, index) => {
|
|
3003
2988
|
const isEven = index % 2 === 0;
|
|
3004
2989
|
return /* @__PURE__ */ jsxs(
|
|
@@ -3015,47 +3000,13 @@ function CommunityInitiatives({
|
|
|
3015
3000
|
),
|
|
3016
3001
|
children: [
|
|
3017
3002
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3", children: [
|
|
3018
|
-
/* @__PURE__ */ jsx(
|
|
3019
|
-
"div",
|
|
3020
|
-
{
|
|
3021
|
-
className: cn(
|
|
3022
|
-
"rounded-md p-2",
|
|
3023
|
-
getNestedCardBg(background, "muted")
|
|
3024
|
-
),
|
|
3025
|
-
children: /* @__PURE__ */ jsx(
|
|
3026
|
-
DynamicIcon,
|
|
3027
|
-
{
|
|
3028
|
-
name: initiative.icon,
|
|
3029
|
-
size: 24,
|
|
3030
|
-
className: cn(getAccentColor(background))
|
|
3031
|
-
}
|
|
3032
|
-
)
|
|
3033
|
-
}
|
|
3034
|
-
),
|
|
3003
|
+
/* @__PURE__ */ jsx("div", { className: cn("rounded-md p-2"), children: /* @__PURE__ */ jsx(DynamicIcon, { name: initiative.icon, size: 24 }) }),
|
|
3035
3004
|
/* @__PURE__ */ jsx("h3", { className: "text-2xl font-bold", children: initiative.title })
|
|
3036
3005
|
] }),
|
|
3037
|
-
/* @__PURE__ */ jsx("p", { className:
|
|
3006
|
+
/* @__PURE__ */ jsx("p", { className: "relative", children: initiative.description }),
|
|
3038
3007
|
initiative.metrics && /* @__PURE__ */ jsx("div", { className: "grid grid-cols-3 gap-4 pt-2", children: initiative.metrics.map((metric, i) => /* @__PURE__ */ jsxs("div", { className: "text-center", children: [
|
|
3039
|
-
/* @__PURE__ */ jsx(
|
|
3040
|
-
|
|
3041
|
-
{
|
|
3042
|
-
className: cn(
|
|
3043
|
-
"text-2xl font-bold",
|
|
3044
|
-
getAccentColor(background)
|
|
3045
|
-
),
|
|
3046
|
-
children: metric.value
|
|
3047
|
-
}
|
|
3048
|
-
),
|
|
3049
|
-
/* @__PURE__ */ jsx(
|
|
3050
|
-
"div",
|
|
3051
|
-
{
|
|
3052
|
-
className: cn(
|
|
3053
|
-
"mt-1 text-xs",
|
|
3054
|
-
getTextColor(background, "muted")
|
|
3055
|
-
),
|
|
3056
|
-
children: metric.label
|
|
3057
|
-
}
|
|
3058
|
-
)
|
|
3008
|
+
/* @__PURE__ */ jsx("div", { className: cn("text-2xl font-bold"), children: metric.value }),
|
|
3009
|
+
/* @__PURE__ */ jsx("div", { className: cn("mt-1 text-xs"), children: metric.label })
|
|
3059
3010
|
] }, i)) })
|
|
3060
3011
|
]
|
|
3061
3012
|
}
|
|
@@ -3067,7 +3018,7 @@ function CommunityInitiatives({
|
|
|
3067
3018
|
"md:col-span-5",
|
|
3068
3019
|
isEven ? "md:order-2" : "md:order-1"
|
|
3069
3020
|
),
|
|
3070
|
-
children: /* @__PURE__ */ jsx("div", { className: "relative aspect-
|
|
3021
|
+
children: /* @__PURE__ */ jsx("div", { className: "relative aspect-video overflow-hidden rounded-xl shadow-xl", children: /* @__PURE__ */ jsx(
|
|
3071
3022
|
Img,
|
|
3072
3023
|
{
|
|
3073
3024
|
src: initiative.image,
|
|
@@ -3088,28 +3039,21 @@ function CommunityInitiatives({
|
|
|
3088
3039
|
Card,
|
|
3089
3040
|
{
|
|
3090
3041
|
className: cn(
|
|
3091
|
-
"flex h-full min-h-[280px] w-full items-center justify-center"
|
|
3092
|
-
getNestedCardBg(background, "subtle")
|
|
3042
|
+
"flex h-full min-h-[280px] w-full items-center justify-center"
|
|
3093
3043
|
),
|
|
3094
|
-
children: /* @__PURE__ */ jsxs(CardContent, { className: "p-6 text-center", children: [
|
|
3044
|
+
children: /* @__PURE__ */ jsxs(CardContent, { className: "p-6 text-center flex flex-col items-center gap-4", children: [
|
|
3095
3045
|
/* @__PURE__ */ jsx(
|
|
3096
3046
|
DynamicIcon,
|
|
3097
3047
|
{
|
|
3098
3048
|
name: initiative.icon,
|
|
3099
3049
|
size: 64,
|
|
3100
3050
|
className: cn(
|
|
3101
|
-
"mx-auto
|
|
3102
|
-
getTextColor(background, "muted"),
|
|
3051
|
+
"mx-auto text-card-foreground",
|
|
3103
3052
|
"opacity-50"
|
|
3104
3053
|
)
|
|
3105
3054
|
}
|
|
3106
3055
|
),
|
|
3107
|
-
/* @__PURE__ */
|
|
3108
|
-
"Learn more about our",
|
|
3109
|
-
" ",
|
|
3110
|
-
initiative.title.toLowerCase(),
|
|
3111
|
-
" initiative"
|
|
3112
|
-
] })
|
|
3056
|
+
/* @__PURE__ */ jsx(Badge, { variant: "secondary", className: "mx-auto", children: initiative.title })
|
|
3113
3057
|
] })
|
|
3114
3058
|
}
|
|
3115
3059
|
)
|
|
@@ -3150,7 +3094,7 @@ function CommunityInitiatives({
|
|
|
3150
3094
|
"div",
|
|
3151
3095
|
{
|
|
3152
3096
|
className: cn(
|
|
3153
|
-
"mx-auto mb-8 md:mb-16 max-w-3xl space-y-4
|
|
3097
|
+
"mx-auto mb-8 md:mb-16 max-w-3xl space-y-4 flex flex-col items-center",
|
|
3154
3098
|
headerClassName
|
|
3155
3099
|
),
|
|
3156
3100
|
children: [
|
|
@@ -3159,41 +3103,65 @@ function CommunityInitiatives({
|
|
|
3159
3103
|
"h2",
|
|
3160
3104
|
{
|
|
3161
3105
|
className: cn(
|
|
3162
|
-
"text-
|
|
3106
|
+
"text-4xl font-bold tracking-tight md:text-5xl lg:text-6xl text-balance text-center",
|
|
3163
3107
|
headingClassName
|
|
3164
3108
|
),
|
|
3165
3109
|
children: heading
|
|
3166
3110
|
}
|
|
3167
3111
|
) : heading),
|
|
3168
|
-
description && (typeof description === "string" ? /* @__PURE__ */ jsx(
|
|
3112
|
+
description && (typeof description === "string" ? /* @__PURE__ */ jsx(
|
|
3113
|
+
"p",
|
|
3114
|
+
{
|
|
3115
|
+
className: cn(
|
|
3116
|
+
"text-lg text-balance text-center",
|
|
3117
|
+
descriptionClassName
|
|
3118
|
+
),
|
|
3119
|
+
children: description
|
|
3120
|
+
}
|
|
3121
|
+
) : description)
|
|
3169
3122
|
]
|
|
3170
3123
|
}
|
|
3171
3124
|
),
|
|
3172
3125
|
categoriesContent,
|
|
3173
|
-
/* @__PURE__ */ jsxs(
|
|
3174
|
-
|
|
3175
|
-
|
|
3176
|
-
|
|
3177
|
-
|
|
3178
|
-
|
|
3179
|
-
|
|
3180
|
-
|
|
3181
|
-
|
|
3182
|
-
|
|
3183
|
-
|
|
3184
|
-
|
|
3185
|
-
|
|
3186
|
-
|
|
3187
|
-
|
|
3188
|
-
|
|
3189
|
-
|
|
3190
|
-
|
|
3126
|
+
/* @__PURE__ */ jsxs(
|
|
3127
|
+
"div",
|
|
3128
|
+
{
|
|
3129
|
+
className: cn(
|
|
3130
|
+
"mt-10 md:mt-24 p-6 md:p-16",
|
|
3131
|
+
"text-center flex flex-col items-center",
|
|
3132
|
+
"bg-muted text-muted-foreground",
|
|
3133
|
+
"rounded-2xl shadow-lg",
|
|
3134
|
+
ctaClassName
|
|
3135
|
+
),
|
|
3136
|
+
children: [
|
|
3137
|
+
ctaBadgeText && /* @__PURE__ */ jsx(
|
|
3138
|
+
"div",
|
|
3139
|
+
{
|
|
3140
|
+
className: cn(
|
|
3141
|
+
"mb-8 inline-flex items-center justify-center rounded-full p-1"
|
|
3142
|
+
),
|
|
3143
|
+
children: /* @__PURE__ */ jsx(Badge, { className: "rounded-full bg-primary px-4 py-1 text-primary-foreground", children: ctaBadgeText })
|
|
3144
|
+
}
|
|
3191
3145
|
),
|
|
3192
|
-
children:
|
|
3193
|
-
|
|
3194
|
-
|
|
3195
|
-
|
|
3196
|
-
|
|
3146
|
+
ctaHeading && (typeof ctaHeading === "string" ? /* @__PURE__ */ jsx("h3", { className: cn("mb-4 text-2xl font-bold", ctaHeadingClassName), children: ctaHeading }) : ctaHeading),
|
|
3147
|
+
ctaDescription && (typeof ctaDescription === "string" ? /* @__PURE__ */ jsx(
|
|
3148
|
+
"p",
|
|
3149
|
+
{
|
|
3150
|
+
className: cn("mx-auto mb-8 max-w-2xl", ctaDescriptionClassName),
|
|
3151
|
+
children: ctaDescription
|
|
3152
|
+
}
|
|
3153
|
+
) : ctaDescription),
|
|
3154
|
+
/* @__PURE__ */ jsx(
|
|
3155
|
+
BlockActions,
|
|
3156
|
+
{
|
|
3157
|
+
actions,
|
|
3158
|
+
actionsSlot,
|
|
3159
|
+
actionsClassName
|
|
3160
|
+
}
|
|
3161
|
+
)
|
|
3162
|
+
]
|
|
3163
|
+
}
|
|
3164
|
+
)
|
|
3197
3165
|
]
|
|
3198
3166
|
}
|
|
3199
3167
|
);
|
|
@@ -3228,7 +3196,7 @@ function AboutCultureTabs({
|
|
|
3228
3196
|
patternOpacity
|
|
3229
3197
|
}) {
|
|
3230
3198
|
const resolvedAspects = aspects ?? [];
|
|
3231
|
-
const [activeTab, setActiveTab] =
|
|
3199
|
+
const [activeTab, setActiveTab] = React27.useState(
|
|
3232
3200
|
resolvedAspects[0]?.id || ""
|
|
3233
3201
|
);
|
|
3234
3202
|
const headerItems = useMemo(() => {
|
|
@@ -3761,7 +3729,7 @@ function BannerDeliveryCountdown({
|
|
|
3761
3729
|
}, [prefixText, timerContent, middleText, deliveryDateContent]);
|
|
3762
3730
|
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: [
|
|
3763
3731
|
iconContent,
|
|
3764
|
-
messageParts.length > 0 && /* @__PURE__ */ jsx("span", { children: messageParts.map((part, index) => /* @__PURE__ */ jsxs(
|
|
3732
|
+
messageParts.length > 0 && /* @__PURE__ */ jsx("span", { children: messageParts.map((part, index) => /* @__PURE__ */ jsxs(React27.Fragment, { children: [
|
|
3765
3733
|
index > 0 ? " " : null,
|
|
3766
3734
|
part
|
|
3767
3735
|
] }, index)) })
|
|
@@ -5032,8 +5000,8 @@ var BrandAttribution = ({
|
|
|
5032
5000
|
}
|
|
5033
5001
|
const { prefix = "", anchorText, href, suffix = "" } = options[optionIndex];
|
|
5034
5002
|
const ContainerEl = variant;
|
|
5035
|
-
const [trackedHref, setTrackedHref] =
|
|
5036
|
-
|
|
5003
|
+
const [trackedHref, setTrackedHref] = React27.useState(href);
|
|
5004
|
+
React27.useEffect(() => {
|
|
5037
5005
|
setTrackedHref(buildTrackedHref(href));
|
|
5038
5006
|
}, [href]);
|
|
5039
5007
|
return /* @__PURE__ */ jsxs(ContainerEl, { className: containerClassName, children: [
|
|
@@ -5176,7 +5144,7 @@ function FooterSocialNewsletter({
|
|
|
5176
5144
|
onError,
|
|
5177
5145
|
uploadTokens
|
|
5178
5146
|
});
|
|
5179
|
-
const renderForm =
|
|
5147
|
+
const renderForm = React27.useMemo(() => {
|
|
5180
5148
|
if (formSlot) return formSlot;
|
|
5181
5149
|
const defaultButtonAction = {
|
|
5182
5150
|
label: "Subscribe",
|
|
@@ -5510,7 +5478,7 @@ function FooterSimpleCentered({
|
|
|
5510
5478
|
]);
|
|
5511
5479
|
const bottomLinksContent = useMemo(() => {
|
|
5512
5480
|
if (!bottomLinks || bottomLinks.length === 0) return null;
|
|
5513
|
-
return bottomLinks.map((link, idx) => /* @__PURE__ */ jsx(
|
|
5481
|
+
return bottomLinks.map((link, idx) => /* @__PURE__ */ jsx(React27.Fragment, { children: /* @__PURE__ */ jsx(
|
|
5514
5482
|
Pressable,
|
|
5515
5483
|
{
|
|
5516
5484
|
href: link.href,
|
|
@@ -7943,27 +7911,39 @@ function AboutStreamlineTeam({
|
|
|
7943
7911
|
"rounded-2xl shadow-lg",
|
|
7944
7912
|
teamSectionClassName
|
|
7945
7913
|
),
|
|
7946
|
-
children: /* @__PURE__ */ jsxs(
|
|
7947
|
-
|
|
7948
|
-
|
|
7949
|
-
|
|
7950
|
-
|
|
7951
|
-
|
|
7952
|
-
|
|
7953
|
-
|
|
7954
|
-
|
|
7955
|
-
|
|
7956
|
-
|
|
7957
|
-
|
|
7958
|
-
|
|
7959
|
-
|
|
7960
|
-
|
|
7961
|
-
|
|
7962
|
-
|
|
7963
|
-
|
|
7964
|
-
|
|
7965
|
-
|
|
7966
|
-
|
|
7914
|
+
children: /* @__PURE__ */ jsxs(
|
|
7915
|
+
"div",
|
|
7916
|
+
{
|
|
7917
|
+
className: cn(
|
|
7918
|
+
"flex flex-col md:flex-row",
|
|
7919
|
+
"justify-center md:justify-between items-center md:items-start",
|
|
7920
|
+
"gap-8 md:gap-24"
|
|
7921
|
+
),
|
|
7922
|
+
children: [
|
|
7923
|
+
/* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-6 md:gap-8 text-center md:text-left", children: [
|
|
7924
|
+
teamTitle && (typeof teamTitle === "string" ? /* @__PURE__ */ jsx(
|
|
7925
|
+
"h2",
|
|
7926
|
+
{
|
|
7927
|
+
className: cn(
|
|
7928
|
+
"text-3xl font-bold md:text-4xl",
|
|
7929
|
+
teamTitleClassName
|
|
7930
|
+
),
|
|
7931
|
+
children: teamTitle
|
|
7932
|
+
}
|
|
7933
|
+
) : teamTitle),
|
|
7934
|
+
teamDescription && (typeof teamDescription === "string" ? /* @__PURE__ */ jsx("p", { className: cn("text-lg", teamDescriptionClassName), children: teamDescription }) : teamDescription)
|
|
7935
|
+
] }),
|
|
7936
|
+
/* @__PURE__ */ jsx(
|
|
7937
|
+
BlockActions,
|
|
7938
|
+
{
|
|
7939
|
+
actions,
|
|
7940
|
+
actionsSlot,
|
|
7941
|
+
actionsClassName
|
|
7942
|
+
}
|
|
7943
|
+
)
|
|
7944
|
+
]
|
|
7945
|
+
}
|
|
7946
|
+
)
|
|
7967
7947
|
}
|
|
7968
7948
|
)
|
|
7969
7949
|
]
|
|
@@ -8646,7 +8626,7 @@ function AboutInteractiveTabs({
|
|
|
8646
8626
|
pattern,
|
|
8647
8627
|
patternOpacity
|
|
8648
8628
|
}) {
|
|
8649
|
-
const [activeTab, setActiveTab] =
|
|
8629
|
+
const [activeTab, setActiveTab] = React27.useState(tabs?.[0]?.id ?? "");
|
|
8650
8630
|
const activeContent = useMemo(() => {
|
|
8651
8631
|
return tabs?.find((tab) => tab.id === activeTab)?.content;
|
|
8652
8632
|
}, [tabs, activeTab]);
|
|
@@ -8791,10 +8771,31 @@ function AboutMissionDualImage({
|
|
|
8791
8771
|
optixFlowConfig,
|
|
8792
8772
|
background,
|
|
8793
8773
|
containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
|
|
8794
|
-
spacing = "
|
|
8774
|
+
spacing = "lg",
|
|
8795
8775
|
pattern,
|
|
8796
8776
|
patternOpacity
|
|
8797
8777
|
}) {
|
|
8778
|
+
const renderTextContent = React27.useCallback(
|
|
8779
|
+
(primaryHeading, primaryClassName, secondaryContent, secondaryClassname) => {
|
|
8780
|
+
if (!primaryHeading || !secondaryContent) {
|
|
8781
|
+
return null;
|
|
8782
|
+
}
|
|
8783
|
+
return /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-start gap-4 md:gap-6", children: [
|
|
8784
|
+
primaryHeading && (typeof primaryHeading === "string" ? /* @__PURE__ */ jsx(
|
|
8785
|
+
"h2",
|
|
8786
|
+
{
|
|
8787
|
+
className: cn(
|
|
8788
|
+
"text-3xl font-bold tracking-tight md:text-4xl",
|
|
8789
|
+
primaryClassName
|
|
8790
|
+
),
|
|
8791
|
+
children: primaryHeading
|
|
8792
|
+
}
|
|
8793
|
+
) : primaryHeading),
|
|
8794
|
+
secondaryContent && (typeof secondaryContent === "string" ? /* @__PURE__ */ jsx("p", { className: cn("mt-4 text-lg", secondaryClassname), children: secondaryContent }) : secondaryContent)
|
|
8795
|
+
] });
|
|
8796
|
+
},
|
|
8797
|
+
[]
|
|
8798
|
+
);
|
|
8798
8799
|
return /* @__PURE__ */ jsx(
|
|
8799
8800
|
Section,
|
|
8800
8801
|
{
|
|
@@ -8809,33 +8810,19 @@ function AboutMissionDualImage({
|
|
|
8809
8810
|
{
|
|
8810
8811
|
className: cn("grid gap-8 md:gap-16 lg:grid-cols-2", contentClassName),
|
|
8811
8812
|
children: [
|
|
8812
|
-
/* @__PURE__ */ jsxs("div", { className: "flex flex-col
|
|
8813
|
-
|
|
8814
|
-
missionTitle
|
|
8815
|
-
|
|
8816
|
-
|
|
8817
|
-
|
|
8818
|
-
|
|
8819
|
-
|
|
8820
|
-
|
|
8821
|
-
|
|
8822
|
-
|
|
8823
|
-
|
|
8824
|
-
|
|
8825
|
-
] }),
|
|
8826
|
-
/* @__PURE__ */ jsxs("div", { children: [
|
|
8827
|
-
visionTitle && (typeof visionTitle === "string" ? /* @__PURE__ */ jsx(
|
|
8828
|
-
"h2",
|
|
8829
|
-
{
|
|
8830
|
-
className: cn(
|
|
8831
|
-
"text-3xl font-bold tracking-tight md:text-4xl",
|
|
8832
|
-
visionTitleClassName
|
|
8833
|
-
),
|
|
8834
|
-
children: visionTitle
|
|
8835
|
-
}
|
|
8836
|
-
) : visionTitle),
|
|
8837
|
-
visionContent && (typeof visionContent === "string" ? /* @__PURE__ */ jsx("p", { className: cn("mt-4 text-lg", visionContentClassName), children: visionContent }) : visionContent)
|
|
8838
|
-
] }),
|
|
8813
|
+
/* @__PURE__ */ jsxs("div", { className: "flex flex-col items-start gap-6 md:gap-8", children: [
|
|
8814
|
+
renderTextContent(
|
|
8815
|
+
missionTitle,
|
|
8816
|
+
missionTitleClassName,
|
|
8817
|
+
missionContent,
|
|
8818
|
+
missionContentClassName
|
|
8819
|
+
),
|
|
8820
|
+
renderTextContent(
|
|
8821
|
+
visionTitle,
|
|
8822
|
+
visionTitleClassName,
|
|
8823
|
+
visionContent,
|
|
8824
|
+
visionContentClassName
|
|
8825
|
+
),
|
|
8839
8826
|
/* @__PURE__ */ jsx(
|
|
8840
8827
|
BlockActions,
|
|
8841
8828
|
{
|
|
@@ -8852,7 +8839,7 @@ function AboutMissionDualImage({
|
|
|
8852
8839
|
src: primaryImage.src,
|
|
8853
8840
|
alt: primaryImage.alt,
|
|
8854
8841
|
className: cn(
|
|
8855
|
-
"w-full h-auto rounded-2xl object-cover sm:h-full",
|
|
8842
|
+
"w-full h-auto rounded-2xl object-cover sm:h-full shadow-xl",
|
|
8856
8843
|
primaryImageClassName
|
|
8857
8844
|
),
|
|
8858
8845
|
optixFlowConfig
|
|
@@ -8864,7 +8851,7 @@ function AboutMissionDualImage({
|
|
|
8864
8851
|
src: secondaryImage.src,
|
|
8865
8852
|
alt: secondaryImage.alt,
|
|
8866
8853
|
className: cn(
|
|
8867
|
-
"w-full h-auto rounded-2xl object-cover sm:h-full sm:mt-12",
|
|
8854
|
+
"w-full h-auto rounded-2xl object-cover sm:h-full sm:mt-12 shadow-xl",
|
|
8868
8855
|
secondaryImageClassName
|
|
8869
8856
|
),
|
|
8870
8857
|
optixFlowConfig
|
|
@@ -12624,7 +12611,7 @@ function CtaVideoBackgroundHero({
|
|
|
12624
12611
|
pattern,
|
|
12625
12612
|
patternOpacity
|
|
12626
12613
|
}) {
|
|
12627
|
-
const [isModalOpen, setIsModalOpen] =
|
|
12614
|
+
const [isModalOpen, setIsModalOpen] = React27.useState(false);
|
|
12628
12615
|
const handleOpenModal = () => {
|
|
12629
12616
|
setIsModalOpen(true);
|
|
12630
12617
|
onModalOpen?.();
|
|
@@ -12812,7 +12799,7 @@ function CtaWorkflowTabs({
|
|
|
12812
12799
|
patternOpacity,
|
|
12813
12800
|
optixFlowConfig
|
|
12814
12801
|
}) {
|
|
12815
|
-
const [activeTab, setActiveTab] =
|
|
12802
|
+
const [activeTab, setActiveTab] = React27.useState(tabs?.[0]?.id || "");
|
|
12816
12803
|
const activeTabData = tabs?.find((tab) => tab.id === activeTab) || tabs?.[0];
|
|
12817
12804
|
const actionsContent = useMemo(() => {
|
|
12818
12805
|
if (actionsSlot) return actionsSlot;
|
|
@@ -13425,7 +13412,7 @@ function ContactFloatingBanner({
|
|
|
13425
13412
|
pattern,
|
|
13426
13413
|
patternOpacity
|
|
13427
13414
|
}) {
|
|
13428
|
-
const actionsContent =
|
|
13415
|
+
const actionsContent = React27.useMemo(() => {
|
|
13429
13416
|
if (actionsSlot) return actionsSlot;
|
|
13430
13417
|
if (actions && actions.length > 0) {
|
|
13431
13418
|
return actions.map((action, index) => {
|
|
@@ -13769,7 +13756,7 @@ function ContactCard({
|
|
|
13769
13756
|
pattern,
|
|
13770
13757
|
patternOpacity
|
|
13771
13758
|
}) {
|
|
13772
|
-
const contactOptionsContent =
|
|
13759
|
+
const contactOptionsContent = React27.useMemo(() => {
|
|
13773
13760
|
if (contactOptionsSlot) return contactOptionsSlot;
|
|
13774
13761
|
if (contactOptions && contactOptions.length > 0) {
|
|
13775
13762
|
return contactOptions.map((option, key) => /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-4", children: [
|
|
@@ -13793,7 +13780,7 @@ function ContactCard({
|
|
|
13793
13780
|
}
|
|
13794
13781
|
return null;
|
|
13795
13782
|
}, [contactOptionsSlot, contactOptions]);
|
|
13796
|
-
const socialLinksContent =
|
|
13783
|
+
const socialLinksContent = React27.useMemo(() => {
|
|
13797
13784
|
if (socialLinksSlot) return socialLinksSlot;
|
|
13798
13785
|
if (socialLinks && socialLinks.length > 0) {
|
|
13799
13786
|
return socialLinks.map((social, key) => /* @__PURE__ */ jsx(
|
|
@@ -14535,7 +14522,7 @@ function ContactDark({
|
|
|
14535
14522
|
pattern,
|
|
14536
14523
|
patternOpacity
|
|
14537
14524
|
}) {
|
|
14538
|
-
const contactOptionsContent =
|
|
14525
|
+
const contactOptionsContent = React27.useMemo(() => {
|
|
14539
14526
|
if (contactOptionsSlot) return contactOptionsSlot;
|
|
14540
14527
|
if (contactOptions && contactOptions.length > 0) {
|
|
14541
14528
|
return contactOptions.map((option, key) => /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3", children: [
|
|
@@ -14559,7 +14546,7 @@ function ContactDark({
|
|
|
14559
14546
|
}
|
|
14560
14547
|
return null;
|
|
14561
14548
|
}, [contactOptionsSlot, contactOptions]);
|
|
14562
|
-
const socialLinksContent =
|
|
14549
|
+
const socialLinksContent = React27.useMemo(() => {
|
|
14563
14550
|
if (socialLinksSlot) return socialLinksSlot;
|
|
14564
14551
|
if (socialLinks && socialLinks.length > 0) {
|
|
14565
14552
|
return socialLinks.map((social, key) => /* @__PURE__ */ jsx(
|
|
@@ -15914,7 +15901,7 @@ function ContactImage({
|
|
|
15914
15901
|
description,
|
|
15915
15902
|
descriptionClassName
|
|
15916
15903
|
]);
|
|
15917
|
-
const contactOverlaysContent =
|
|
15904
|
+
const contactOverlaysContent = React27.useMemo(() => {
|
|
15918
15905
|
if (contactOverlaysSlot) return contactOverlaysSlot;
|
|
15919
15906
|
if (!contactOverlays || contactOverlays.length === 0) return null;
|
|
15920
15907
|
return /* @__PURE__ */ jsx("div", { className: cn("flex flex-col gap-3", contactOverlaysClassName), children: contactOverlays.map((item, index) => {
|
|
@@ -17122,13 +17109,13 @@ function ContactPhotography({
|
|
|
17122
17109
|
}
|
|
17123
17110
|
return items;
|
|
17124
17111
|
}, [heading, headingClassName, description, descriptionClassName]);
|
|
17125
|
-
const desktopOrder =
|
|
17112
|
+
const desktopOrder = React27.useMemo(() => {
|
|
17126
17113
|
return directionConfig.desktop === "mediaRight" ? "lg:flex-row" : "lg:flex-row-reverse";
|
|
17127
17114
|
}, [directionConfig?.desktop]);
|
|
17128
|
-
const mobileOrder =
|
|
17115
|
+
const mobileOrder = React27.useMemo(() => {
|
|
17129
17116
|
return directionConfig?.mobile === "mediaTop" ? "flex-col" : "flex-col-reverse";
|
|
17130
17117
|
}, [directionConfig?.mobile]);
|
|
17131
|
-
const imageArea =
|
|
17118
|
+
const imageArea = React27.useMemo(() => {
|
|
17132
17119
|
if (!image?.src) {
|
|
17133
17120
|
return null;
|
|
17134
17121
|
}
|
|
@@ -19052,16 +19039,16 @@ function CarouselAnimatedSections({
|
|
|
19052
19039
|
pattern = "diagonalCrossBasic",
|
|
19053
19040
|
patternOpacity = 0.033
|
|
19054
19041
|
}) {
|
|
19055
|
-
const [currentIndex, setCurrentIndex] =
|
|
19056
|
-
const [direction, setDirection] =
|
|
19057
|
-
const [isAnimating, setIsAnimating] =
|
|
19058
|
-
const goToNext =
|
|
19042
|
+
const [currentIndex, setCurrentIndex] = React27.useState(0);
|
|
19043
|
+
const [direction, setDirection] = React27.useState(0);
|
|
19044
|
+
const [isAnimating, setIsAnimating] = React27.useState(false);
|
|
19045
|
+
const goToNext = React27.useCallback(() => {
|
|
19059
19046
|
if (isAnimating || currentIndex >= (sections?.length ?? 0) - 1) return;
|
|
19060
19047
|
setIsAnimating(true);
|
|
19061
19048
|
setDirection(1);
|
|
19062
19049
|
setCurrentIndex((prev) => prev + 1);
|
|
19063
19050
|
}, [currentIndex, isAnimating, sections?.length]);
|
|
19064
|
-
const goToPrev =
|
|
19051
|
+
const goToPrev = React27.useCallback(() => {
|
|
19065
19052
|
if (isAnimating || currentIndex <= 0) return;
|
|
19066
19053
|
setIsAnimating(true);
|
|
19067
19054
|
setDirection(-1);
|
|
@@ -19073,7 +19060,7 @@ function CarouselAnimatedSections({
|
|
|
19073
19060
|
setDirection(index > currentIndex ? 1 : -1);
|
|
19074
19061
|
setCurrentIndex(index);
|
|
19075
19062
|
};
|
|
19076
|
-
|
|
19063
|
+
React27.useEffect(() => {
|
|
19077
19064
|
const handleKeyDown = (e) => {
|
|
19078
19065
|
if (e.key === "ArrowDown" || e.key === "ArrowRight") {
|
|
19079
19066
|
goToNext();
|
|
@@ -19099,7 +19086,7 @@ function CarouselAnimatedSections({
|
|
|
19099
19086
|
})
|
|
19100
19087
|
};
|
|
19101
19088
|
const currentSection = sections?.[currentIndex];
|
|
19102
|
-
const actionElements =
|
|
19089
|
+
const actionElements = React27.useMemo(() => {
|
|
19103
19090
|
if (actionsSlot) return actionsSlot;
|
|
19104
19091
|
if (actions && actions.length > 0) {
|
|
19105
19092
|
return actions.map((action, index) => /* @__PURE__ */ jsxs(
|
|
@@ -19347,11 +19334,11 @@ function CarouselAutoProgressSlides({
|
|
|
19347
19334
|
pattern,
|
|
19348
19335
|
patternOpacity
|
|
19349
19336
|
}) {
|
|
19350
|
-
const [currentIndex, setCurrentIndex] =
|
|
19337
|
+
const [currentIndex, setCurrentIndex] = React27.useState(0);
|
|
19351
19338
|
const progress = useMotionValue(100);
|
|
19352
|
-
const [direction, setDirection] =
|
|
19339
|
+
const [direction, setDirection] = React27.useState(1);
|
|
19353
19340
|
const clipPath = useMotionTemplate`inset(0 ${progress}% 0 0 round 10px)`;
|
|
19354
|
-
|
|
19341
|
+
React27.useEffect(() => {
|
|
19355
19342
|
const interval = setInterval(() => {
|
|
19356
19343
|
const currentProgress = progress.get();
|
|
19357
19344
|
if (currentProgress > 0) {
|
|
@@ -19530,22 +19517,22 @@ function CarouselAutoProgressSlides({
|
|
|
19530
19517
|
);
|
|
19531
19518
|
}
|
|
19532
19519
|
function useDotButton(emblaApi) {
|
|
19533
|
-
const [selectedIndex, setSelectedIndex] =
|
|
19534
|
-
const [scrollSnaps, setScrollSnaps] =
|
|
19535
|
-
const onDotButtonClick =
|
|
19520
|
+
const [selectedIndex, setSelectedIndex] = React27.useState(0);
|
|
19521
|
+
const [scrollSnaps, setScrollSnaps] = React27.useState([]);
|
|
19522
|
+
const onDotButtonClick = React27.useCallback(
|
|
19536
19523
|
(index) => {
|
|
19537
19524
|
if (!emblaApi) return;
|
|
19538
19525
|
emblaApi.scrollTo(index);
|
|
19539
19526
|
},
|
|
19540
19527
|
[emblaApi]
|
|
19541
19528
|
);
|
|
19542
|
-
const onInit =
|
|
19529
|
+
const onInit = React27.useCallback((api) => {
|
|
19543
19530
|
setScrollSnaps(api.scrollSnapList());
|
|
19544
19531
|
}, []);
|
|
19545
|
-
const onSelect =
|
|
19532
|
+
const onSelect = React27.useCallback((api) => {
|
|
19546
19533
|
setSelectedIndex(api.selectedScrollSnap());
|
|
19547
19534
|
}, []);
|
|
19548
|
-
|
|
19535
|
+
React27.useEffect(() => {
|
|
19549
19536
|
if (!emblaApi) return;
|
|
19550
19537
|
onInit(emblaApi);
|
|
19551
19538
|
onSelect(emblaApi);
|
|
@@ -19554,8 +19541,8 @@ function useDotButton(emblaApi) {
|
|
|
19554
19541
|
return { selectedIndex, scrollSnaps, onDotButtonClick };
|
|
19555
19542
|
}
|
|
19556
19543
|
function useAutoplay(emblaApi) {
|
|
19557
|
-
const [autoplayIsPlaying, setAutoplayIsPlaying] =
|
|
19558
|
-
const onAutoplayButtonClick =
|
|
19544
|
+
const [autoplayIsPlaying, setAutoplayIsPlaying] = React27.useState(false);
|
|
19545
|
+
const onAutoplayButtonClick = React27.useCallback(
|
|
19559
19546
|
(callback) => {
|
|
19560
19547
|
const autoplay = emblaApi?.plugins()?.autoplay;
|
|
19561
19548
|
if (!autoplay) return;
|
|
@@ -19565,13 +19552,13 @@ function useAutoplay(emblaApi) {
|
|
|
19565
19552
|
},
|
|
19566
19553
|
[emblaApi]
|
|
19567
19554
|
);
|
|
19568
|
-
const toggleAutoplay =
|
|
19555
|
+
const toggleAutoplay = React27.useCallback(() => {
|
|
19569
19556
|
const autoplay = emblaApi?.plugins()?.autoplay;
|
|
19570
19557
|
if (!autoplay) return;
|
|
19571
19558
|
const playOrStop = autoplay.isPlaying() ? autoplay.stop : autoplay.play;
|
|
19572
19559
|
playOrStop();
|
|
19573
19560
|
}, [emblaApi]);
|
|
19574
|
-
|
|
19561
|
+
React27.useEffect(() => {
|
|
19575
19562
|
const autoplay = emblaApi?.plugins()?.autoplay;
|
|
19576
19563
|
if (!autoplay) return;
|
|
19577
19564
|
setAutoplayIsPlaying(autoplay.isPlaying());
|
|
@@ -19580,11 +19567,11 @@ function useAutoplay(emblaApi) {
|
|
|
19580
19567
|
return { autoplayIsPlaying, toggleAutoplay, onAutoplayButtonClick };
|
|
19581
19568
|
}
|
|
19582
19569
|
function useAutoplayProgress(emblaApi, progressNode) {
|
|
19583
|
-
const [showAutoplayProgress, setShowAutoplayProgress] =
|
|
19584
|
-
const animationName =
|
|
19585
|
-
const timeoutId =
|
|
19586
|
-
const rafId =
|
|
19587
|
-
const startProgress =
|
|
19570
|
+
const [showAutoplayProgress, setShowAutoplayProgress] = React27.useState(false);
|
|
19571
|
+
const animationName = React27.useRef("");
|
|
19572
|
+
const timeoutId = React27.useRef(0);
|
|
19573
|
+
const rafId = React27.useRef(0);
|
|
19574
|
+
const startProgress = React27.useCallback(
|
|
19588
19575
|
(timeUntilNext) => {
|
|
19589
19576
|
const node = progressNode.current;
|
|
19590
19577
|
if (!node || timeUntilNext === null) return;
|
|
@@ -19604,12 +19591,12 @@ function useAutoplayProgress(emblaApi, progressNode) {
|
|
|
19604
19591
|
},
|
|
19605
19592
|
[progressNode]
|
|
19606
19593
|
);
|
|
19607
|
-
|
|
19594
|
+
React27.useEffect(() => {
|
|
19608
19595
|
const autoplay = emblaApi?.plugins()?.autoplay;
|
|
19609
19596
|
if (!autoplay) return;
|
|
19610
19597
|
emblaApi.on("autoplay:timerset", () => startProgress(autoplay.timeUntilNext())).on("autoplay:timerstopped", () => setShowAutoplayProgress(false));
|
|
19611
19598
|
}, [emblaApi, startProgress]);
|
|
19612
|
-
|
|
19599
|
+
React27.useEffect(() => {
|
|
19613
19600
|
return () => {
|
|
19614
19601
|
cancelAnimationFrame(rafId.current);
|
|
19615
19602
|
clearTimeout(timeoutId.current);
|
|
@@ -19636,7 +19623,7 @@ function CarouselAutoplayProgress({
|
|
|
19636
19623
|
pattern,
|
|
19637
19624
|
patternOpacity
|
|
19638
19625
|
}) {
|
|
19639
|
-
const progressNode =
|
|
19626
|
+
const progressNode = React27.useRef(null);
|
|
19640
19627
|
const [emblaRef, emblaApi] = useEmblaCarousel(options, [
|
|
19641
19628
|
Autoplay({ playOnInit: true, delay: autoplayDelay })
|
|
19642
19629
|
]);
|
|
@@ -19759,20 +19746,20 @@ function CarouselFeatureBadge({
|
|
|
19759
19746
|
containerMaxWidth = "2xl"
|
|
19760
19747
|
}) {
|
|
19761
19748
|
const [emblaRef, emblaApi] = useEmblaCarousel();
|
|
19762
|
-
const [canScrollPrev, setCanScrollPrev] =
|
|
19763
|
-
const [canScrollNext, setCanScrollNext] =
|
|
19764
|
-
const scrollPrev =
|
|
19749
|
+
const [canScrollPrev, setCanScrollPrev] = React27.useState(false);
|
|
19750
|
+
const [canScrollNext, setCanScrollNext] = React27.useState(false);
|
|
19751
|
+
const scrollPrev = React27.useCallback(() => {
|
|
19765
19752
|
emblaApi?.scrollPrev();
|
|
19766
19753
|
}, [emblaApi]);
|
|
19767
|
-
const scrollNext =
|
|
19754
|
+
const scrollNext = React27.useCallback(() => {
|
|
19768
19755
|
emblaApi?.scrollNext();
|
|
19769
19756
|
}, [emblaApi]);
|
|
19770
|
-
const onSelect =
|
|
19757
|
+
const onSelect = React27.useCallback(() => {
|
|
19771
19758
|
if (!emblaApi) return;
|
|
19772
19759
|
setCanScrollPrev(emblaApi.canScrollPrev());
|
|
19773
19760
|
setCanScrollNext(emblaApi.canScrollNext());
|
|
19774
19761
|
}, [emblaApi]);
|
|
19775
|
-
|
|
19762
|
+
React27.useEffect(() => {
|
|
19776
19763
|
if (!emblaApi) return;
|
|
19777
19764
|
onSelect();
|
|
19778
19765
|
emblaApi.on("reInit", onSelect);
|
|
@@ -19892,10 +19879,10 @@ function CarouselFullscreenScrollFx({
|
|
|
19892
19879
|
pattern = "diagonalCrossBasic",
|
|
19893
19880
|
patternOpacity = 0.033
|
|
19894
19881
|
}) {
|
|
19895
|
-
const containerRef =
|
|
19896
|
-
const scrollContainerRef =
|
|
19897
|
-
const [activeIndex, setActiveIndex] =
|
|
19898
|
-
|
|
19882
|
+
const containerRef = React27.useRef(null);
|
|
19883
|
+
const scrollContainerRef = React27.useRef(null);
|
|
19884
|
+
const [activeIndex, setActiveIndex] = React27.useState(0);
|
|
19885
|
+
React27.useEffect(() => {
|
|
19899
19886
|
const scrollContainer = scrollContainerRef.current;
|
|
19900
19887
|
if (!scrollContainer || !slides?.length) return;
|
|
19901
19888
|
const handleScroll = () => {
|
|
@@ -19907,7 +19894,7 @@ function CarouselFullscreenScrollFx({
|
|
|
19907
19894
|
scrollContainer.addEventListener("scroll", handleScroll);
|
|
19908
19895
|
return () => scrollContainer.removeEventListener("scroll", handleScroll);
|
|
19909
19896
|
}, [slides]);
|
|
19910
|
-
const scrollToSlide =
|
|
19897
|
+
const scrollToSlide = React27.useCallback((index) => {
|
|
19911
19898
|
const scrollContainer = scrollContainerRef.current;
|
|
19912
19899
|
if (!scrollContainer) return;
|
|
19913
19900
|
const slideHeight = scrollContainer.clientHeight;
|
|
@@ -19990,7 +19977,7 @@ function CarouselFullscreenScrollFx({
|
|
|
19990
19977
|
className: "flex h-screen flex-col snap-y snap-mandatory overflow-x-hidden overflow-y-auto scroll-smooth",
|
|
19991
19978
|
style: { scrollbarWidth: "none", msOverflowStyle: "none" },
|
|
19992
19979
|
children: slidesSlot ? slidesSlot : slides?.map((slide, index) => {
|
|
19993
|
-
const renderActions =
|
|
19980
|
+
const renderActions = React27.useMemo(() => {
|
|
19994
19981
|
if (!slide.actions || slide.actions.length === 0) return null;
|
|
19995
19982
|
return slide.actions.map((action, actionIndex) => {
|
|
19996
19983
|
const {
|
|
@@ -20123,25 +20110,25 @@ function CarouselGalleryThumbnails({
|
|
|
20123
20110
|
patternOpacity,
|
|
20124
20111
|
slideMediaBrightness = "100"
|
|
20125
20112
|
}) {
|
|
20126
|
-
const [currentIndex, setCurrentIndex] =
|
|
20127
|
-
const prevSlide =
|
|
20113
|
+
const [currentIndex, setCurrentIndex] = React27.useState(0);
|
|
20114
|
+
const prevSlide = React27.useCallback(() => {
|
|
20128
20115
|
setCurrentIndex(
|
|
20129
20116
|
(prev) => prev === 0 ? (images?.length ?? 0) - 1 : prev - 1
|
|
20130
20117
|
);
|
|
20131
20118
|
}, [images?.length]);
|
|
20132
|
-
const nextSlide =
|
|
20119
|
+
const nextSlide = React27.useCallback(() => {
|
|
20133
20120
|
setCurrentIndex(
|
|
20134
20121
|
(prev) => prev === (images?.length ?? 0) - 1 ? 0 : prev + 1
|
|
20135
20122
|
);
|
|
20136
20123
|
}, [images?.length]);
|
|
20137
|
-
|
|
20124
|
+
React27.useEffect(() => {
|
|
20138
20125
|
if (!autoPlay) return;
|
|
20139
20126
|
const interval = setInterval(() => {
|
|
20140
20127
|
nextSlide();
|
|
20141
20128
|
}, autoPlayInterval);
|
|
20142
20129
|
return () => clearInterval(interval);
|
|
20143
20130
|
}, [currentIndex, autoPlay, autoPlayInterval, nextSlide]);
|
|
20144
|
-
|
|
20131
|
+
React27.useEffect(() => {
|
|
20145
20132
|
const handleKeyDown = (e) => {
|
|
20146
20133
|
if (e.key === "ArrowRight") {
|
|
20147
20134
|
nextSlide();
|
|
@@ -20286,9 +20273,9 @@ function CarouselHorizontalCards({
|
|
|
20286
20273
|
pattern,
|
|
20287
20274
|
patternOpacity
|
|
20288
20275
|
}) {
|
|
20289
|
-
const carouselRef =
|
|
20290
|
-
const [isAtStart, setIsAtStart] =
|
|
20291
|
-
const [isAtEnd, setIsAtEnd] =
|
|
20276
|
+
const carouselRef = React27.useRef(null);
|
|
20277
|
+
const [isAtStart, setIsAtStart] = React27.useState(true);
|
|
20278
|
+
const [isAtEnd, setIsAtEnd] = React27.useState(false);
|
|
20292
20279
|
const scrollLeft = () => {
|
|
20293
20280
|
if (carouselRef.current) {
|
|
20294
20281
|
carouselRef.current.scrollBy({ left: -300, behavior: "smooth" });
|
|
@@ -20299,7 +20286,7 @@ function CarouselHorizontalCards({
|
|
|
20299
20286
|
carouselRef.current.scrollBy({ left: 300, behavior: "smooth" });
|
|
20300
20287
|
}
|
|
20301
20288
|
};
|
|
20302
|
-
|
|
20289
|
+
React27.useEffect(() => {
|
|
20303
20290
|
const checkScrollPosition = () => {
|
|
20304
20291
|
if (carouselRef.current) {
|
|
20305
20292
|
const { scrollLeft: scrollLeft2, scrollWidth, clientWidth } = carouselRef.current;
|
|
@@ -20499,13 +20486,13 @@ function CarouselImageHero({
|
|
|
20499
20486
|
pattern,
|
|
20500
20487
|
patternOpacity
|
|
20501
20488
|
}) {
|
|
20502
|
-
const hasImages =
|
|
20489
|
+
const hasImages = React27.useMemo(() => {
|
|
20503
20490
|
return images && images?.length > 0;
|
|
20504
20491
|
}, [images]);
|
|
20505
|
-
const [currentImageIndex, setCurrentImageIndex] =
|
|
20492
|
+
const [currentImageIndex, setCurrentImageIndex] = React27.useState(0);
|
|
20506
20493
|
const progress = useMotionValue(100);
|
|
20507
20494
|
const clipPath = useMotionTemplate`inset(0 ${progress}% 0 0 round 10px)`;
|
|
20508
|
-
|
|
20495
|
+
React27.useEffect(() => {
|
|
20509
20496
|
if (!hasImages || (images?.length ?? 0) < 2) return;
|
|
20510
20497
|
const tickInterval = autoPlayInterval / 100;
|
|
20511
20498
|
const interval = setInterval(() => {
|
|
@@ -20527,19 +20514,19 @@ function CarouselImageHero({
|
|
|
20527
20514
|
autoPlayInterval,
|
|
20528
20515
|
hasImages
|
|
20529
20516
|
]);
|
|
20530
|
-
const handlePrev =
|
|
20517
|
+
const handlePrev = React27.useCallback(() => {
|
|
20531
20518
|
progress.set(100);
|
|
20532
20519
|
setCurrentImageIndex(
|
|
20533
20520
|
(prevIndex) => prevIndex > 0 ? prevIndex - 1 : (images?.length ?? 1) - 1
|
|
20534
20521
|
);
|
|
20535
20522
|
}, [images?.length, progress]);
|
|
20536
|
-
const handleNext =
|
|
20523
|
+
const handleNext = React27.useCallback(() => {
|
|
20537
20524
|
progress.set(100);
|
|
20538
20525
|
setCurrentImageIndex(
|
|
20539
20526
|
(prevIndex) => prevIndex < (images?.length ?? 0) - 1 ? prevIndex + 1 : 0
|
|
20540
20527
|
);
|
|
20541
20528
|
}, [images?.length, progress]);
|
|
20542
|
-
const handleDotClick =
|
|
20529
|
+
const handleDotClick = React27.useCallback(
|
|
20543
20530
|
(index) => {
|
|
20544
20531
|
progress.set(100);
|
|
20545
20532
|
setCurrentImageIndex(index);
|
|
@@ -20716,8 +20703,8 @@ function CarouselMultiStepShowcase({
|
|
|
20716
20703
|
pattern,
|
|
20717
20704
|
patternOpacity
|
|
20718
20705
|
}) {
|
|
20719
|
-
const [activeStep, setActiveStep] =
|
|
20720
|
-
const [direction, setDirection] =
|
|
20706
|
+
const [activeStep, setActiveStep] = React27.useState(0);
|
|
20707
|
+
const [direction, setDirection] = React27.useState(0);
|
|
20721
20708
|
const goToStep = (index) => {
|
|
20722
20709
|
setDirection(index > activeStep ? 1 : -1);
|
|
20723
20710
|
setActiveStep(index);
|
|
@@ -21009,9 +20996,9 @@ function CarouselPortfolioHero({
|
|
|
21009
20996
|
patternOpacity,
|
|
21010
20997
|
slideMediaBrightness = "50"
|
|
21011
20998
|
}) {
|
|
21012
|
-
const [currentIndex, setCurrentIndex] =
|
|
21013
|
-
const intervalRef =
|
|
21014
|
-
const resetInterval =
|
|
20999
|
+
const [currentIndex, setCurrentIndex] = React27.useState(0);
|
|
21000
|
+
const intervalRef = React27.useRef(null);
|
|
21001
|
+
const resetInterval = React27.useCallback(() => {
|
|
21015
21002
|
if (intervalRef.current) {
|
|
21016
21003
|
clearInterval(intervalRef.current);
|
|
21017
21004
|
}
|
|
@@ -21019,17 +21006,17 @@ function CarouselPortfolioHero({
|
|
|
21019
21006
|
setCurrentIndex((prevIndex) => (prevIndex + 1) % (slides?.length ?? 1));
|
|
21020
21007
|
}, autoPlayInterval);
|
|
21021
21008
|
}, [autoPlayInterval, slides?.length]);
|
|
21022
|
-
const goToNext =
|
|
21009
|
+
const goToNext = React27.useCallback(() => {
|
|
21023
21010
|
setCurrentIndex((prevIndex) => (prevIndex + 1) % (slides?.length ?? 1));
|
|
21024
21011
|
resetInterval();
|
|
21025
21012
|
}, [slides?.length, resetInterval]);
|
|
21026
|
-
const goToPrev =
|
|
21013
|
+
const goToPrev = React27.useCallback(() => {
|
|
21027
21014
|
setCurrentIndex(
|
|
21028
21015
|
(prevIndex) => (prevIndex - 1 + (slides?.length ?? 1)) % (slides?.length ?? 1)
|
|
21029
21016
|
);
|
|
21030
21017
|
resetInterval();
|
|
21031
21018
|
}, [slides?.length, resetInterval]);
|
|
21032
|
-
|
|
21019
|
+
React27.useEffect(() => {
|
|
21033
21020
|
resetInterval();
|
|
21034
21021
|
return () => {
|
|
21035
21022
|
if (intervalRef.current) {
|
|
@@ -21221,9 +21208,9 @@ function CarouselProductFeatureShowcase({
|
|
|
21221
21208
|
pattern,
|
|
21222
21209
|
patternOpacity
|
|
21223
21210
|
}) {
|
|
21224
|
-
const [activeIndex, setActiveIndex] =
|
|
21225
|
-
const [activeColorIndex, setActiveColorIndex] =
|
|
21226
|
-
const [direction, setDirection] =
|
|
21211
|
+
const [activeIndex, setActiveIndex] = React27.useState(0);
|
|
21212
|
+
const [activeColorIndex, setActiveColorIndex] = React27.useState(0);
|
|
21213
|
+
const [direction, setDirection] = React27.useState(0);
|
|
21227
21214
|
const activeFeature = features?.[activeIndex];
|
|
21228
21215
|
const goToNext = () => {
|
|
21229
21216
|
setDirection(1);
|
|
@@ -21443,9 +21430,9 @@ function CarouselProductFeatureShowcase({
|
|
|
21443
21430
|
}
|
|
21444
21431
|
);
|
|
21445
21432
|
}
|
|
21446
|
-
var ProgressSliderContext =
|
|
21433
|
+
var ProgressSliderContext = React27.createContext(void 0);
|
|
21447
21434
|
function useProgressSliderContext() {
|
|
21448
|
-
const context =
|
|
21435
|
+
const context = React27.useContext(ProgressSliderContext);
|
|
21449
21436
|
if (!context) {
|
|
21450
21437
|
throw new Error(
|
|
21451
21438
|
"useProgressSliderContext must be used within a ProgressSlider"
|
|
@@ -21531,19 +21518,19 @@ function CarouselProgressSlider({
|
|
|
21531
21518
|
pattern,
|
|
21532
21519
|
patternOpacity
|
|
21533
21520
|
}) {
|
|
21534
|
-
const [active, setActive] =
|
|
21535
|
-
const [progress, setProgress] =
|
|
21536
|
-
const [isFastForward, setIsFastForward] =
|
|
21537
|
-
const [isPaused, setIsPaused] =
|
|
21538
|
-
const frame =
|
|
21539
|
-
const firstFrameTime =
|
|
21540
|
-
const targetValue =
|
|
21541
|
-
const pausedProgress =
|
|
21542
|
-
const sliderValues =
|
|
21521
|
+
const [active, setActive] = React27.useState(slides?.[0]?.id ?? "");
|
|
21522
|
+
const [progress, setProgress] = React27.useState(0);
|
|
21523
|
+
const [isFastForward, setIsFastForward] = React27.useState(false);
|
|
21524
|
+
const [isPaused, setIsPaused] = React27.useState(false);
|
|
21525
|
+
const frame = React27.useRef(0);
|
|
21526
|
+
const firstFrameTime = React27.useRef(performance.now());
|
|
21527
|
+
const targetValue = React27.useRef(null);
|
|
21528
|
+
const pausedProgress = React27.useRef(0);
|
|
21529
|
+
const sliderValues = React27.useMemo(
|
|
21543
21530
|
() => slides?.map((slide) => slide.id),
|
|
21544
21531
|
[slides]
|
|
21545
21532
|
);
|
|
21546
|
-
|
|
21533
|
+
React27.useEffect(() => {
|
|
21547
21534
|
if ((sliderValues?.length ?? 0) > 0 && !isPaused) {
|
|
21548
21535
|
firstFrameTime.current = performance.now();
|
|
21549
21536
|
if (pausedProgress.current > 0) {
|
|
@@ -21708,11 +21695,11 @@ function CarouselScrollingFeatureShowcase({
|
|
|
21708
21695
|
pattern,
|
|
21709
21696
|
patternOpacity
|
|
21710
21697
|
}) {
|
|
21711
|
-
const [activeFeature, setActiveFeature] =
|
|
21698
|
+
const [activeFeature, setActiveFeature] = React27.useState(
|
|
21712
21699
|
features?.[0]?.id ?? ""
|
|
21713
21700
|
);
|
|
21714
|
-
const featureRefs =
|
|
21715
|
-
|
|
21701
|
+
const featureRefs = React27.useRef(/* @__PURE__ */ new Map());
|
|
21702
|
+
React27.useEffect(() => {
|
|
21716
21703
|
if (!features || features.length === 0) return;
|
|
21717
21704
|
const observerOptions = {
|
|
21718
21705
|
root: null,
|
|
@@ -22637,9 +22624,9 @@ function FeatureChecklistImage({
|
|
|
22637
22624
|
}
|
|
22638
22625
|
);
|
|
22639
22626
|
}
|
|
22640
|
-
var CarouselContext =
|
|
22627
|
+
var CarouselContext = React27.createContext(null);
|
|
22641
22628
|
function useCarousel() {
|
|
22642
|
-
const context =
|
|
22629
|
+
const context = React27.useContext(CarouselContext);
|
|
22643
22630
|
if (!context) {
|
|
22644
22631
|
throw new Error("useCarousel must be used within a <Carousel />");
|
|
22645
22632
|
}
|
|
@@ -22661,20 +22648,20 @@ function Carousel({
|
|
|
22661
22648
|
},
|
|
22662
22649
|
plugins
|
|
22663
22650
|
);
|
|
22664
|
-
const [canScrollPrev, setCanScrollPrev] =
|
|
22665
|
-
const [canScrollNext, setCanScrollNext] =
|
|
22666
|
-
const onSelect =
|
|
22651
|
+
const [canScrollPrev, setCanScrollPrev] = React27.useState(false);
|
|
22652
|
+
const [canScrollNext, setCanScrollNext] = React27.useState(false);
|
|
22653
|
+
const onSelect = React27.useCallback((api2) => {
|
|
22667
22654
|
if (!api2) return;
|
|
22668
22655
|
setCanScrollPrev(api2.canScrollPrev());
|
|
22669
22656
|
setCanScrollNext(api2.canScrollNext());
|
|
22670
22657
|
}, []);
|
|
22671
|
-
const scrollPrev =
|
|
22658
|
+
const scrollPrev = React27.useCallback(() => {
|
|
22672
22659
|
api?.scrollPrev();
|
|
22673
22660
|
}, [api]);
|
|
22674
|
-
const scrollNext =
|
|
22661
|
+
const scrollNext = React27.useCallback(() => {
|
|
22675
22662
|
api?.scrollNext();
|
|
22676
22663
|
}, [api]);
|
|
22677
|
-
const handleKeyDown =
|
|
22664
|
+
const handleKeyDown = React27.useCallback(
|
|
22678
22665
|
(event) => {
|
|
22679
22666
|
if (event.key === "ArrowLeft") {
|
|
22680
22667
|
event.preventDefault();
|
|
@@ -22686,11 +22673,11 @@ function Carousel({
|
|
|
22686
22673
|
},
|
|
22687
22674
|
[scrollPrev, scrollNext]
|
|
22688
22675
|
);
|
|
22689
|
-
|
|
22676
|
+
React27.useEffect(() => {
|
|
22690
22677
|
if (!api || !setApi) return;
|
|
22691
22678
|
setApi(api);
|
|
22692
22679
|
}, [api, setApi]);
|
|
22693
|
-
|
|
22680
|
+
React27.useEffect(() => {
|
|
22694
22681
|
if (!api) return;
|
|
22695
22682
|
onSelect(api);
|
|
22696
22683
|
api.on("reInit", onSelect);
|
|
@@ -23614,7 +23601,7 @@ function FeatureThreeColumnValues({
|
|
|
23614
23601
|
patternOpacity,
|
|
23615
23602
|
patternClassName
|
|
23616
23603
|
}) {
|
|
23617
|
-
const renderValueIcon =
|
|
23604
|
+
const renderValueIcon = React27.useCallback(
|
|
23618
23605
|
(value) => {
|
|
23619
23606
|
if (value.icon) return value.icon;
|
|
23620
23607
|
if (value.iconName)
|
|
@@ -24116,7 +24103,7 @@ function FeatureTabbedContentImage({
|
|
|
24116
24103
|
patternOpacity,
|
|
24117
24104
|
patternClassName
|
|
24118
24105
|
}) {
|
|
24119
|
-
const renderFeatures =
|
|
24106
|
+
const renderFeatures = React27.useCallback(
|
|
24120
24107
|
(slide) => {
|
|
24121
24108
|
if (slide.featuresSlot) return slide.featuresSlot;
|
|
24122
24109
|
if (!slide.features || slide.features.length === 0) return null;
|
|
@@ -24140,7 +24127,7 @@ function FeatureTabbedContentImage({
|
|
|
24140
24127
|
},
|
|
24141
24128
|
[]
|
|
24142
24129
|
);
|
|
24143
|
-
const renderActions =
|
|
24130
|
+
const renderActions = React27.useCallback(
|
|
24144
24131
|
(slide) => {
|
|
24145
24132
|
if (slide.actionsSlot) return slide.actionsSlot;
|
|
24146
24133
|
if (!slide.actions || slide.actions.length === 0) return null;
|
|
@@ -24183,7 +24170,7 @@ function FeatureTabbedContentImage({
|
|
|
24183
24170
|
},
|
|
24184
24171
|
[]
|
|
24185
24172
|
);
|
|
24186
|
-
const renderImage =
|
|
24173
|
+
const renderImage = React27.useCallback(
|
|
24187
24174
|
(slide) => {
|
|
24188
24175
|
if (slide.imageSlot) return slide.imageSlot;
|
|
24189
24176
|
if (!slide.image) return null;
|
|
@@ -24419,7 +24406,7 @@ function FeatureUtilityCardsGrid({
|
|
|
24419
24406
|
}
|
|
24420
24407
|
);
|
|
24421
24408
|
}, [learnMoreSlot, learnMoreAction, background]);
|
|
24422
|
-
const renderUtilityImage =
|
|
24409
|
+
const renderUtilityImage = React27.useCallback(
|
|
24423
24410
|
(utility) => {
|
|
24424
24411
|
if (utility.imageSlot) return utility.imageSlot;
|
|
24425
24412
|
if (utility.image) {
|
|
@@ -24597,7 +24584,7 @@ function FeatureBentoUtilities({
|
|
|
24597
24584
|
patternOpacity,
|
|
24598
24585
|
patternClassName
|
|
24599
24586
|
}) {
|
|
24600
|
-
const renderCard =
|
|
24587
|
+
const renderCard = React27.useCallback(
|
|
24601
24588
|
(card, index) => {
|
|
24602
24589
|
const hasImage = card.imageSrc || card.imageSlot;
|
|
24603
24590
|
const cardClasses = cn(
|
|
@@ -24653,7 +24640,7 @@ function FeatureBentoUtilities({
|
|
|
24653
24640
|
},
|
|
24654
24641
|
[optixFlowConfig]
|
|
24655
24642
|
);
|
|
24656
|
-
const renderColumn =
|
|
24643
|
+
const renderColumn = React27.useCallback(
|
|
24657
24644
|
(cards, slot) => {
|
|
24658
24645
|
if (slot) return slot;
|
|
24659
24646
|
if (!cards || cards.length === 0) return null;
|
|
@@ -25899,7 +25886,7 @@ function FeatureBentoImageGrid({
|
|
|
25899
25886
|
patternOpacity,
|
|
25900
25887
|
patternClassName
|
|
25901
25888
|
}) {
|
|
25902
|
-
const renderItemIcon =
|
|
25889
|
+
const renderItemIcon = React27.useCallback(
|
|
25903
25890
|
(item) => {
|
|
25904
25891
|
if (item.icon) return item.icon;
|
|
25905
25892
|
if (item.iconName) return /* @__PURE__ */ jsx(DynamicIcon, { name: item.iconName, size: 24 });
|
|
@@ -25907,7 +25894,7 @@ function FeatureBentoImageGrid({
|
|
|
25907
25894
|
},
|
|
25908
25895
|
[]
|
|
25909
25896
|
);
|
|
25910
|
-
const renderItemImage =
|
|
25897
|
+
const renderItemImage = React27.useCallback(
|
|
25911
25898
|
(item, imageClassName) => {
|
|
25912
25899
|
if (item.imageSlot) return item.imageSlot;
|
|
25913
25900
|
if (item.imageSrc) {
|
|
@@ -25926,7 +25913,7 @@ function FeatureBentoImageGrid({
|
|
|
25926
25913
|
},
|
|
25927
25914
|
[optixFlowConfig]
|
|
25928
25915
|
);
|
|
25929
|
-
const renderLargeCard =
|
|
25916
|
+
const renderLargeCard = React27.useCallback(
|
|
25930
25917
|
(item) => {
|
|
25931
25918
|
const iconContent = renderItemIcon(item);
|
|
25932
25919
|
const hasIconBadgeContent = iconContent || item.iconBadge;
|
|
@@ -26014,7 +26001,7 @@ function FeatureBentoImageGrid({
|
|
|
26014
26001
|
},
|
|
26015
26002
|
[largeCardClassName, renderItemImage, renderItemIcon]
|
|
26016
26003
|
);
|
|
26017
|
-
const renderSmallCard =
|
|
26004
|
+
const renderSmallCard = React27.useCallback(
|
|
26018
26005
|
(item, index) => {
|
|
26019
26006
|
const iconContent = renderItemIcon(item);
|
|
26020
26007
|
const hasIconBadgeContent = iconContent || item.iconBadge;
|
|
@@ -26629,7 +26616,7 @@ function FeatureAccordionImage({
|
|
|
26629
26616
|
patternOpacity,
|
|
26630
26617
|
patternClassName
|
|
26631
26618
|
}) {
|
|
26632
|
-
const [activeItem, setActiveItem] =
|
|
26619
|
+
const [activeItem, setActiveItem] = React27.useState(defaultValue || "item-0");
|
|
26633
26620
|
const activeIndex = parseInt(activeItem.replace("item-", ""), 10) || 0;
|
|
26634
26621
|
const currentImage = items?.[activeIndex] || items?.[0];
|
|
26635
26622
|
const accordionItemsContent = useMemo(() => {
|
|
@@ -26778,7 +26765,7 @@ function FeatureCapabilitiesGrid({
|
|
|
26778
26765
|
patternOpacity,
|
|
26779
26766
|
patternClassName
|
|
26780
26767
|
}) {
|
|
26781
|
-
const renderItemIcon =
|
|
26768
|
+
const renderItemIcon = React27.useCallback(
|
|
26782
26769
|
(item) => {
|
|
26783
26770
|
if (item.icon) return item.icon;
|
|
26784
26771
|
if (item.iconName) return /* @__PURE__ */ jsx(DynamicIcon, { name: item.iconName, size: 20 });
|
|
@@ -26930,7 +26917,7 @@ function FeatureCapabilitiesGrid({
|
|
|
26930
26917
|
}
|
|
26931
26918
|
);
|
|
26932
26919
|
}
|
|
26933
|
-
var TeamMemberBackgroundImageCard =
|
|
26920
|
+
var TeamMemberBackgroundImageCard = React27.forwardRef(
|
|
26934
26921
|
({ className, imageUrl, imageAlt, children, optixFlowConfig, background, ...props }, ref) => {
|
|
26935
26922
|
return /* @__PURE__ */ jsxs(
|
|
26936
26923
|
"div",
|
|
@@ -26978,7 +26965,7 @@ function TeamMediaShowcase({
|
|
|
26978
26965
|
actionClassName,
|
|
26979
26966
|
optixFlowConfig
|
|
26980
26967
|
}) {
|
|
26981
|
-
const renderItems =
|
|
26968
|
+
const renderItems = React27.useMemo(() => {
|
|
26982
26969
|
if (itemsSlot) return itemsSlot;
|
|
26983
26970
|
return items.map((member, idx) => {
|
|
26984
26971
|
const imageAlt = member.imageAlt || (member.name && typeof member.name === "string" && member.name.trim() !== "" ? member.name : `member-${idx}`);
|
|
@@ -27076,7 +27063,7 @@ function TeamSimpleGrid({
|
|
|
27076
27063
|
memberNameClassName,
|
|
27077
27064
|
memberRoleClassName
|
|
27078
27065
|
}) {
|
|
27079
|
-
const renderMembers =
|
|
27066
|
+
const renderMembers = React27.useMemo(() => {
|
|
27080
27067
|
if (membersSlot) return membersSlot;
|
|
27081
27068
|
if (!members || members.length === 0) return null;
|
|
27082
27069
|
return members.map((member) => /* @__PURE__ */ jsxs(
|
|
@@ -27238,7 +27225,7 @@ function FooterBrandLinksContact({
|
|
|
27238
27225
|
linkListClassName,
|
|
27239
27226
|
linkItemClassName
|
|
27240
27227
|
]);
|
|
27241
|
-
const contactItemsContent =
|
|
27228
|
+
const contactItemsContent = React27.useMemo(() => {
|
|
27242
27229
|
if (!contactItems || contactItems.length === 0) return null;
|
|
27243
27230
|
return contactItems.map((item, idx) => /* @__PURE__ */ jsxs(
|
|
27244
27231
|
"div",
|
|
@@ -27596,7 +27583,7 @@ function TeamSocialGrid({
|
|
|
27596
27583
|
memberRoleClassName,
|
|
27597
27584
|
socialLinksClassName
|
|
27598
27585
|
}) {
|
|
27599
|
-
const renderMembers =
|
|
27586
|
+
const renderMembers = React27.useMemo(() => {
|
|
27600
27587
|
if (membersSlot) return membersSlot;
|
|
27601
27588
|
if (!members || members.length === 0) return null;
|
|
27602
27589
|
return members.map((member) => /* @__PURE__ */ jsxs(
|
|
@@ -27732,7 +27719,7 @@ function TeamGradientCards({
|
|
|
27732
27719
|
memberRoleClassName,
|
|
27733
27720
|
socialLinksClassName
|
|
27734
27721
|
}) {
|
|
27735
|
-
const renderMembers =
|
|
27722
|
+
const renderMembers = React27.useMemo(() => {
|
|
27736
27723
|
if (membersSlot) return membersSlot;
|
|
27737
27724
|
if (!members || members.length === 0) return null;
|
|
27738
27725
|
return members.map((member) => /* @__PURE__ */ jsx(
|
|
@@ -27888,7 +27875,7 @@ function TeamBioBadges({
|
|
|
27888
27875
|
memberBioClassName,
|
|
27889
27876
|
socialLinksClassName
|
|
27890
27877
|
}) {
|
|
27891
|
-
const renderMembers =
|
|
27878
|
+
const renderMembers = React27.useMemo(() => {
|
|
27892
27879
|
if (membersSlot) return membersSlot;
|
|
27893
27880
|
if (!members || members.length === 0) return null;
|
|
27894
27881
|
return members.map((member) => /* @__PURE__ */ jsxs(
|
|
@@ -28065,7 +28052,7 @@ function TeamExpertiseCards({
|
|
|
28065
28052
|
ctaDescriptionClassName,
|
|
28066
28053
|
ctaButtonClassName
|
|
28067
28054
|
}) {
|
|
28068
|
-
const renderMembers =
|
|
28055
|
+
const renderMembers = React27.useMemo(() => {
|
|
28069
28056
|
if (membersSlot) return membersSlot;
|
|
28070
28057
|
if (!members || members.length === 0) return null;
|
|
28071
28058
|
return members.map((member) => /* @__PURE__ */ jsx(
|
|
@@ -28142,7 +28129,7 @@ function TeamExpertiseCards({
|
|
|
28142
28129
|
member.id
|
|
28143
28130
|
));
|
|
28144
28131
|
}, [membersSlot, members, background, memberCardClassName, avatarClassName, memberNameClassName, memberRoleClassName, departmentBadgeClassName, memberDescriptionClassName, expertiseClassName]);
|
|
28145
|
-
const renderCta =
|
|
28132
|
+
const renderCta = React27.useMemo(() => {
|
|
28146
28133
|
if (ctaSlot) return ctaSlot;
|
|
28147
28134
|
return /* @__PURE__ */ jsxs(
|
|
28148
28135
|
"div",
|
|
@@ -28258,7 +28245,7 @@ function TeamCompactGrid({
|
|
|
28258
28245
|
ctaDescriptionClassName,
|
|
28259
28246
|
ctaButtonClassName
|
|
28260
28247
|
}) {
|
|
28261
|
-
const renderMembers =
|
|
28248
|
+
const renderMembers = React27.useMemo(() => {
|
|
28262
28249
|
if (membersSlot) return membersSlot;
|
|
28263
28250
|
if (!members || members.length === 0) return null;
|
|
28264
28251
|
return members.map((member) => /* @__PURE__ */ jsxs(
|
|
@@ -28313,7 +28300,7 @@ function TeamCompactGrid({
|
|
|
28313
28300
|
member.id
|
|
28314
28301
|
));
|
|
28315
28302
|
}, [membersSlot, members, background, memberCardClassName, avatarClassName, memberNameClassName, memberRoleClassName, departmentBadgeClassName]);
|
|
28316
|
-
const renderCta =
|
|
28303
|
+
const renderCta = React27.useMemo(() => {
|
|
28317
28304
|
if (ctaSlot) return ctaSlot;
|
|
28318
28305
|
return /* @__PURE__ */ jsxs(
|
|
28319
28306
|
"div",
|
|
@@ -28417,7 +28404,7 @@ function TeamInvestorShowcase({
|
|
|
28417
28404
|
investorCompanyClassName,
|
|
28418
28405
|
optixFlowConfig
|
|
28419
28406
|
}) {
|
|
28420
|
-
const renderInvestors =
|
|
28407
|
+
const renderInvestors = React27.useMemo(() => {
|
|
28421
28408
|
if (investorsSlot) return investorsSlot;
|
|
28422
28409
|
if (!investors || investors.length === 0) return null;
|
|
28423
28410
|
return investors.map((investor) => /* @__PURE__ */ jsxs("div", { className: investorCardClassName, children: [
|
|
@@ -28491,7 +28478,7 @@ function TeamCarouselExperience({
|
|
|
28491
28478
|
memberRoleClassName,
|
|
28492
28479
|
optixFlowConfig
|
|
28493
28480
|
}) {
|
|
28494
|
-
const renderMembers =
|
|
28481
|
+
const renderMembers = React27.useMemo(() => {
|
|
28495
28482
|
if (membersSlot) return membersSlot;
|
|
28496
28483
|
if (!members || members.length === 0) return null;
|
|
28497
28484
|
return members.map((member, idx) => /* @__PURE__ */ jsx(CarouselItem, { className: "max-w-72", children: /* @__PURE__ */ jsxs(
|
|
@@ -28641,20 +28628,20 @@ function TeamFilterableSearch({
|
|
|
28641
28628
|
emptyStateClassName,
|
|
28642
28629
|
emptyStateMessage
|
|
28643
28630
|
}) {
|
|
28644
|
-
const [searchQuery, setSearchQuery] =
|
|
28645
|
-
const [selectedDepartment, setSelectedDepartment] =
|
|
28646
|
-
const departments =
|
|
28631
|
+
const [searchQuery, setSearchQuery] = React27.useState("");
|
|
28632
|
+
const [selectedDepartment, setSelectedDepartment] = React27.useState("All");
|
|
28633
|
+
const departments = React27.useMemo(() => {
|
|
28647
28634
|
const depts = new Set(members.map((m) => m.department));
|
|
28648
28635
|
return ["All", ...Array.from(depts)];
|
|
28649
28636
|
}, [members]);
|
|
28650
|
-
const filteredMembers =
|
|
28637
|
+
const filteredMembers = React27.useMemo(() => {
|
|
28651
28638
|
return members.filter((member) => {
|
|
28652
28639
|
const matchesSearch = searchQuery === "" || member.name.toLowerCase().includes(searchQuery.toLowerCase()) || member.role.toLowerCase().includes(searchQuery.toLowerCase()) || member.description.toLowerCase().includes(searchQuery.toLowerCase());
|
|
28653
28640
|
const matchesDepartment = selectedDepartment === "All" || member.department === selectedDepartment;
|
|
28654
28641
|
return matchesSearch && matchesDepartment;
|
|
28655
28642
|
});
|
|
28656
28643
|
}, [members, searchQuery, selectedDepartment]);
|
|
28657
|
-
const renderFilters =
|
|
28644
|
+
const renderFilters = React27.useMemo(() => {
|
|
28658
28645
|
if (filtersSlot) return filtersSlot;
|
|
28659
28646
|
return /* @__PURE__ */ jsxs(
|
|
28660
28647
|
"div",
|
|
@@ -28709,7 +28696,7 @@ function TeamFilterableSearch({
|
|
|
28709
28696
|
selectedDepartment,
|
|
28710
28697
|
filterButtonClassName
|
|
28711
28698
|
]);
|
|
28712
|
-
const renderMembers =
|
|
28699
|
+
const renderMembers = React27.useMemo(() => {
|
|
28713
28700
|
if (membersSlot) return membersSlot;
|
|
28714
28701
|
return filteredMembers.map((member) => /* @__PURE__ */ jsx(
|
|
28715
28702
|
"div",
|
|
@@ -28896,7 +28883,7 @@ function TeamCompactCta({
|
|
|
28896
28883
|
memberRoleClassName,
|
|
28897
28884
|
ctaClassName
|
|
28898
28885
|
}) {
|
|
28899
|
-
const renderMembers =
|
|
28886
|
+
const renderMembers = React27.useMemo(() => {
|
|
28900
28887
|
if (membersSlot) return membersSlot;
|
|
28901
28888
|
if (!members || members.length === 0) return null;
|
|
28902
28889
|
return members.map((member) => /* @__PURE__ */ jsxs(
|
|
@@ -28924,7 +28911,7 @@ function TeamCompactCta({
|
|
|
28924
28911
|
member.id
|
|
28925
28912
|
));
|
|
28926
28913
|
}, [membersSlot, members, memberCardClassName, avatarClassName, memberNameClassName, memberRoleClassName, background]);
|
|
28927
|
-
const renderCta =
|
|
28914
|
+
const renderCta = React27.useMemo(() => {
|
|
28928
28915
|
if (ctaSlot) return ctaSlot;
|
|
28929
28916
|
return /* @__PURE__ */ jsx(
|
|
28930
28917
|
Pressable,
|
|
@@ -29015,7 +29002,7 @@ function TeamHoverHighlight({
|
|
|
29015
29002
|
socialLinksClassName,
|
|
29016
29003
|
optixFlowConfig
|
|
29017
29004
|
}) {
|
|
29018
|
-
const renderMembers =
|
|
29005
|
+
const renderMembers = React27.useMemo(() => {
|
|
29019
29006
|
if (membersSlot) return membersSlot;
|
|
29020
29007
|
if (!members || members.length === 0) return null;
|
|
29021
29008
|
return members.map((member) => /* @__PURE__ */ jsxs(
|
|
@@ -29164,7 +29151,7 @@ function TeamSocialCards({
|
|
|
29164
29151
|
socialLinksClassName,
|
|
29165
29152
|
optixFlowConfig
|
|
29166
29153
|
}) {
|
|
29167
|
-
const renderMembers =
|
|
29154
|
+
const renderMembers = React27.useMemo(() => {
|
|
29168
29155
|
if (membersSlot) return membersSlot;
|
|
29169
29156
|
if (!members || members.length === 0) return null;
|
|
29170
29157
|
return members.map((member) => /* @__PURE__ */ jsx(
|
|
@@ -29334,7 +29321,7 @@ function TeamGridAnimated({
|
|
|
29334
29321
|
"hsl(var(--muted))",
|
|
29335
29322
|
"hsl(var(--warning)/0.2)"
|
|
29336
29323
|
];
|
|
29337
|
-
const renderMembers =
|
|
29324
|
+
const renderMembers = React27.useMemo(() => {
|
|
29338
29325
|
if (membersSlot) return membersSlot;
|
|
29339
29326
|
if (!members || members.length === 0) return null;
|
|
29340
29327
|
return members.map((member, index) => /* @__PURE__ */ jsxs(
|
|
@@ -29434,7 +29421,7 @@ function TeamGridAnimated({
|
|
|
29434
29421
|
memberDesignationClassName,
|
|
29435
29422
|
socialLinksClassName
|
|
29436
29423
|
]);
|
|
29437
|
-
const renderSocialLinksMain =
|
|
29424
|
+
const renderSocialLinksMain = React27.useMemo(() => {
|
|
29438
29425
|
if (socialLinksMainSlot) return socialLinksMainSlot;
|
|
29439
29426
|
if (!socialLinksMain || socialLinksMain.length === 0) return null;
|
|
29440
29427
|
return /* @__PURE__ */ jsxs("div", { className: "flex w-full items-center justify-center gap-4 py-4 md:justify-center", children: [
|
|
@@ -29551,7 +29538,7 @@ function TeamDepartmentSections({
|
|
|
29551
29538
|
memberRoleClassName,
|
|
29552
29539
|
optixFlowConfig
|
|
29553
29540
|
}) {
|
|
29554
|
-
const renderDepartments =
|
|
29541
|
+
const renderDepartments = React27.useMemo(() => {
|
|
29555
29542
|
if (departmentsSlot) return departmentsSlot;
|
|
29556
29543
|
if (!departments || departments.length === 0) return null;
|
|
29557
29544
|
return departments.map((department, deptIndex) => /* @__PURE__ */ jsxs(
|
|
@@ -29655,7 +29642,7 @@ function TeamAlternatingBios({
|
|
|
29655
29642
|
socialLinksClassName,
|
|
29656
29643
|
optixFlowConfig
|
|
29657
29644
|
}) {
|
|
29658
|
-
const renderMembers =
|
|
29645
|
+
const renderMembers = React27.useMemo(() => {
|
|
29659
29646
|
if (membersSlot) return membersSlot;
|
|
29660
29647
|
if (!members || members.length === 0) return null;
|
|
29661
29648
|
return members.map((member, index) => /* @__PURE__ */ jsxs(
|
|
@@ -29837,7 +29824,7 @@ function TeamAvatarSocial({
|
|
|
29837
29824
|
memberRoleClassName,
|
|
29838
29825
|
socialLinksClassName
|
|
29839
29826
|
}) {
|
|
29840
|
-
const renderMembers =
|
|
29827
|
+
const renderMembers = React27.useMemo(() => {
|
|
29841
29828
|
if (membersSlot) return membersSlot;
|
|
29842
29829
|
if (!members || members.length === 0) return null;
|
|
29843
29830
|
return members.map((member) => /* @__PURE__ */ jsxs(
|
|
@@ -29980,7 +29967,7 @@ function TeamHoverOverlay({
|
|
|
29980
29967
|
socialLinksClassName,
|
|
29981
29968
|
optixFlowConfig
|
|
29982
29969
|
}) {
|
|
29983
|
-
const renderMembers =
|
|
29970
|
+
const renderMembers = React27.useMemo(() => {
|
|
29984
29971
|
if (membersSlot) return membersSlot;
|
|
29985
29972
|
if (!members || members.length === 0) return null;
|
|
29986
29973
|
return members.map((member) => /* @__PURE__ */ jsx(
|
|
@@ -30156,14 +30143,14 @@ function TeamRoleFilter({
|
|
|
30156
30143
|
socialLinksClassName,
|
|
30157
30144
|
optixFlowConfig
|
|
30158
30145
|
}) {
|
|
30159
|
-
const [selectedRole, setSelectedRole] =
|
|
30160
|
-
const filteredMembers =
|
|
30146
|
+
const [selectedRole, setSelectedRole] = React27.useState("All");
|
|
30147
|
+
const filteredMembers = React27.useMemo(() => {
|
|
30161
30148
|
if (!members) return [];
|
|
30162
30149
|
return members.filter(
|
|
30163
30150
|
(member) => selectedRole === "All" ? true : member.role === selectedRole
|
|
30164
30151
|
);
|
|
30165
30152
|
}, [members, selectedRole]);
|
|
30166
|
-
const renderRoles =
|
|
30153
|
+
const renderRoles = React27.useMemo(() => {
|
|
30167
30154
|
if (rolesSlot) return rolesSlot;
|
|
30168
30155
|
if (!roles) return null;
|
|
30169
30156
|
return /* @__PURE__ */ jsx(
|
|
@@ -30187,7 +30174,7 @@ function TeamRoleFilter({
|
|
|
30187
30174
|
}
|
|
30188
30175
|
);
|
|
30189
30176
|
}, [rolesSlot, filtersClassName, roles, selectedRole, filterButtonClassName]);
|
|
30190
|
-
const renderMembers =
|
|
30177
|
+
const renderMembers = React27.useMemo(() => {
|
|
30191
30178
|
if (membersSlot) return membersSlot;
|
|
30192
30179
|
return filteredMembers.map((member) => /* @__PURE__ */ jsx(
|
|
30193
30180
|
Card,
|
|
@@ -30347,7 +30334,7 @@ function TeamContactCards({
|
|
|
30347
30334
|
socialLinksClassName,
|
|
30348
30335
|
optixFlowConfig
|
|
30349
30336
|
}) {
|
|
30350
|
-
const getStatusColor =
|
|
30337
|
+
const getStatusColor = React27.useCallback((status) => {
|
|
30351
30338
|
switch (status) {
|
|
30352
30339
|
case "active":
|
|
30353
30340
|
return "bg-success";
|
|
@@ -30357,7 +30344,7 @@ function TeamContactCards({
|
|
|
30357
30344
|
return getTextColor(background, "muted");
|
|
30358
30345
|
}
|
|
30359
30346
|
}, [background]);
|
|
30360
|
-
const renderMembers =
|
|
30347
|
+
const renderMembers = React27.useMemo(() => {
|
|
30361
30348
|
if (membersSlot) return membersSlot;
|
|
30362
30349
|
if (!members || members.length === 0) return null;
|
|
30363
30350
|
return members.map((member) => /* @__PURE__ */ jsx(Card, { className: cn("p-0", memberCardClassName), children: /* @__PURE__ */ jsxs(CardContent, { className: "p-6!", children: [
|
|
@@ -30564,7 +30551,7 @@ function TeamLargeImages({
|
|
|
30564
30551
|
socialLinksClassName,
|
|
30565
30552
|
optixFlowConfig
|
|
30566
30553
|
}) {
|
|
30567
|
-
const renderMembers =
|
|
30554
|
+
const renderMembers = React27.useMemo(() => {
|
|
30568
30555
|
if (membersSlot) return membersSlot;
|
|
30569
30556
|
if (!members || members.length === 0) return null;
|
|
30570
30557
|
return members.map((member) => /* @__PURE__ */ jsxs(
|
|
@@ -30739,7 +30726,7 @@ function TeamSkillBadges({
|
|
|
30739
30726
|
socialLinksClassName,
|
|
30740
30727
|
optixFlowConfig
|
|
30741
30728
|
}) {
|
|
30742
|
-
const renderMembers =
|
|
30729
|
+
const renderMembers = React27.useMemo(() => {
|
|
30743
30730
|
if (membersSlot) return membersSlot;
|
|
30744
30731
|
if (!members || members.length === 0) return null;
|
|
30745
30732
|
return members.map((member) => /* @__PURE__ */ jsx(
|
|
@@ -30929,7 +30916,7 @@ function TeamTestimonialStats({
|
|
|
30929
30916
|
socialLinksClassName,
|
|
30930
30917
|
optixFlowConfig
|
|
30931
30918
|
}) {
|
|
30932
|
-
const renderMembers =
|
|
30919
|
+
const renderMembers = React27.useMemo(() => {
|
|
30933
30920
|
if (membersSlot) return membersSlot;
|
|
30934
30921
|
if (!members || members.length === 0) return null;
|
|
30935
30922
|
return members.map((member) => /* @__PURE__ */ jsx(
|
|
@@ -35073,7 +35060,7 @@ function BlogGridAuthorCardsComponent({
|
|
|
35073
35060
|
pattern,
|
|
35074
35061
|
patternOpacity
|
|
35075
35062
|
}) {
|
|
35076
|
-
const viewAllActionContent =
|
|
35063
|
+
const viewAllActionContent = React27.useMemo(() => {
|
|
35077
35064
|
if (viewAllSlot) return viewAllSlot;
|
|
35078
35065
|
if (!viewAllAction) return null;
|
|
35079
35066
|
const {
|
|
@@ -35098,7 +35085,7 @@ function BlogGridAuthorCardsComponent({
|
|
|
35098
35085
|
}
|
|
35099
35086
|
);
|
|
35100
35087
|
}, [viewAllSlot, viewAllAction]);
|
|
35101
|
-
const postsContent =
|
|
35088
|
+
const postsContent = React27.useMemo(() => {
|
|
35102
35089
|
if (postsSlot) return postsSlot;
|
|
35103
35090
|
if (!posts || posts.length === 0) return null;
|
|
35104
35091
|
return posts.map((post) => {
|
|
@@ -35210,7 +35197,7 @@ function BlogCardsTaglineCta({
|
|
|
35210
35197
|
pattern,
|
|
35211
35198
|
patternOpacity
|
|
35212
35199
|
}) {
|
|
35213
|
-
const ctaActionContent =
|
|
35200
|
+
const ctaActionContent = React27.useMemo(() => {
|
|
35214
35201
|
if (ctaSlot) return ctaSlot;
|
|
35215
35202
|
if (!ctaAction) return null;
|
|
35216
35203
|
const {
|
|
@@ -35238,7 +35225,7 @@ function BlogCardsTaglineCta({
|
|
|
35238
35225
|
}
|
|
35239
35226
|
);
|
|
35240
35227
|
}, [ctaSlot, ctaAction, ctaClassName]);
|
|
35241
|
-
const postsContent =
|
|
35228
|
+
const postsContent = React27.useMemo(() => {
|
|
35242
35229
|
if (postsSlot) return postsSlot;
|
|
35243
35230
|
if (!posts || posts.length === 0) return null;
|
|
35244
35231
|
return posts.map((post) => {
|
|
@@ -35384,7 +35371,7 @@ function BlogCardsReadTime({
|
|
|
35384
35371
|
pattern,
|
|
35385
35372
|
patternOpacity
|
|
35386
35373
|
}) {
|
|
35387
|
-
const renderedViewAllAction =
|
|
35374
|
+
const renderedViewAllAction = React27.useMemo(() => {
|
|
35388
35375
|
if (viewAllSlot) return viewAllSlot;
|
|
35389
35376
|
if (!viewAllAction) return null;
|
|
35390
35377
|
const {
|
|
@@ -35401,7 +35388,7 @@ function BlogCardsReadTime({
|
|
|
35401
35388
|
iconAfter
|
|
35402
35389
|
] }) });
|
|
35403
35390
|
}, [viewAllSlot, viewAllAction]);
|
|
35404
|
-
const renderedPosts =
|
|
35391
|
+
const renderedPosts = React27.useMemo(() => {
|
|
35405
35392
|
if (postsSlot) return postsSlot;
|
|
35406
35393
|
if (!posts || posts.length === 0) return null;
|
|
35407
35394
|
return posts.map((post) => {
|
|
@@ -35538,7 +35525,7 @@ function BlogCategoryOverlay({
|
|
|
35538
35525
|
pattern,
|
|
35539
35526
|
patternOpacity
|
|
35540
35527
|
}) {
|
|
35541
|
-
const viewAllActionContent =
|
|
35528
|
+
const viewAllActionContent = React27.useMemo(() => {
|
|
35542
35529
|
if (viewAllSlot) return viewAllSlot;
|
|
35543
35530
|
if (!viewAllAction) return null;
|
|
35544
35531
|
const {
|
|
@@ -35566,7 +35553,7 @@ function BlogCategoryOverlay({
|
|
|
35566
35553
|
}
|
|
35567
35554
|
);
|
|
35568
35555
|
}, [viewAllSlot, viewAllAction, viewAllClassName]);
|
|
35569
|
-
const postsContent =
|
|
35556
|
+
const postsContent = React27.useMemo(() => {
|
|
35570
35557
|
if (postsSlot) return postsSlot;
|
|
35571
35558
|
if (!posts || posts.length === 0) return null;
|
|
35572
35559
|
return posts.map((post) => {
|
|
@@ -35714,7 +35701,7 @@ function BlogFeaturedPopular({
|
|
|
35714
35701
|
}) {
|
|
35715
35702
|
const featuredPost = posts?.[0];
|
|
35716
35703
|
const popularPosts = posts?.slice(1);
|
|
35717
|
-
const renderedFeaturedPost =
|
|
35704
|
+
const renderedFeaturedPost = React27.useMemo(() => {
|
|
35718
35705
|
if (featuredSlot) return featuredSlot;
|
|
35719
35706
|
if (!featuredPost) return null;
|
|
35720
35707
|
const postHref = featuredPost.href || featuredPost.url || featuredPost.link;
|
|
@@ -35766,7 +35753,7 @@ function BlogFeaturedPopular({
|
|
|
35766
35753
|
featuredContentClassName,
|
|
35767
35754
|
optixFlowConfig
|
|
35768
35755
|
]);
|
|
35769
|
-
const renderedPopularPosts =
|
|
35756
|
+
const renderedPopularPosts = React27.useMemo(() => {
|
|
35770
35757
|
if (postsSlot) return postsSlot;
|
|
35771
35758
|
if (!popularPosts || popularPosts.length === 0) return null;
|
|
35772
35759
|
return popularPosts.map((post) => {
|
|
@@ -35883,7 +35870,7 @@ function BlogRelatedArticles({
|
|
|
35883
35870
|
pattern,
|
|
35884
35871
|
patternOpacity
|
|
35885
35872
|
}) {
|
|
35886
|
-
const renderedSeeAllAction =
|
|
35873
|
+
const renderedSeeAllAction = React27.useMemo(() => {
|
|
35887
35874
|
if (seeAllSlot) return seeAllSlot;
|
|
35888
35875
|
if (!seeAllAction) return null;
|
|
35889
35876
|
const {
|
|
@@ -35912,7 +35899,7 @@ function BlogRelatedArticles({
|
|
|
35912
35899
|
}
|
|
35913
35900
|
);
|
|
35914
35901
|
}, [seeAllSlot, seeAllAction, seeAllClassName]);
|
|
35915
|
-
const renderedArticles =
|
|
35902
|
+
const renderedArticles = React27.useMemo(() => {
|
|
35916
35903
|
if (articlesSlot) return articlesSlot;
|
|
35917
35904
|
if (!articles || articles.length === 0) return null;
|
|
35918
35905
|
return articles.map((item) => {
|
|
@@ -36220,7 +36207,7 @@ function BlogHorizontalCards({
|
|
|
36220
36207
|
pattern,
|
|
36221
36208
|
patternOpacity
|
|
36222
36209
|
}) {
|
|
36223
|
-
const ctaContent =
|
|
36210
|
+
const ctaContent = React27.useMemo(() => {
|
|
36224
36211
|
if (ctaSlot) return ctaSlot;
|
|
36225
36212
|
if (!ctaAction) return null;
|
|
36226
36213
|
const {
|
|
@@ -36245,7 +36232,7 @@ function BlogHorizontalCards({
|
|
|
36245
36232
|
}
|
|
36246
36233
|
);
|
|
36247
36234
|
}, [ctaSlot, ctaAction]);
|
|
36248
|
-
const postsContent =
|
|
36235
|
+
const postsContent = React27.useMemo(() => {
|
|
36249
36236
|
if (postsSlot) return postsSlot;
|
|
36250
36237
|
if (!posts || posts.length === 0) return null;
|
|
36251
36238
|
return posts.map((post) => {
|
|
@@ -36467,7 +36454,7 @@ function Label({
|
|
|
36467
36454
|
);
|
|
36468
36455
|
}
|
|
36469
36456
|
var POSTS_PER_PAGE = 6;
|
|
36470
|
-
var BlogCard =
|
|
36457
|
+
var BlogCard = React27.memo(function BlogCard2({
|
|
36471
36458
|
post,
|
|
36472
36459
|
optixFlowConfig,
|
|
36473
36460
|
className
|
|
@@ -36506,7 +36493,7 @@ var BlogCard = React26.memo(function BlogCard2({
|
|
|
36506
36493
|
] })
|
|
36507
36494
|
] }) });
|
|
36508
36495
|
});
|
|
36509
|
-
var FilterForm =
|
|
36496
|
+
var FilterForm = React27.memo(function FilterForm2({
|
|
36510
36497
|
categories,
|
|
36511
36498
|
selectedCategories,
|
|
36512
36499
|
onCategoryChange,
|
|
@@ -36539,7 +36526,7 @@ var FilterForm = React26.memo(function FilterForm2({
|
|
|
36539
36526
|
}
|
|
36540
36527
|
);
|
|
36541
36528
|
});
|
|
36542
|
-
var BreadcrumbBlog =
|
|
36529
|
+
var BreadcrumbBlog = React27.memo(function BreadcrumbBlog2({
|
|
36543
36530
|
breadcrumb
|
|
36544
36531
|
}) {
|
|
36545
36532
|
return /* @__PURE__ */ jsx(Breadcrumb, { children: /* @__PURE__ */ jsx(BreadcrumbList, { children: breadcrumb.map((item, i) => {
|
|
@@ -36621,12 +36608,12 @@ function BlogFilteredResultsComponent({
|
|
|
36621
36608
|
}, [posts, selectedCategories]);
|
|
36622
36609
|
const postsToDisplay = filteredPosts.length > 0 ? filteredPosts : posts || [];
|
|
36623
36610
|
const hasMore = visibleCount < postsToDisplay.length;
|
|
36624
|
-
const breadcrumbContent =
|
|
36611
|
+
const breadcrumbContent = React27.useMemo(() => {
|
|
36625
36612
|
if (breadcrumbSlot) return breadcrumbSlot;
|
|
36626
36613
|
if (!breadcrumb || breadcrumb.length === 0) return null;
|
|
36627
36614
|
return /* @__PURE__ */ jsx(BreadcrumbBlog, { breadcrumb });
|
|
36628
36615
|
}, [breadcrumbSlot, breadcrumb]);
|
|
36629
|
-
const primaryPostContent =
|
|
36616
|
+
const primaryPostContent = React27.useMemo(() => {
|
|
36630
36617
|
if (primaryPostSlot) return primaryPostSlot;
|
|
36631
36618
|
if (!primaryPost) return null;
|
|
36632
36619
|
return /* @__PURE__ */ jsx(
|
|
@@ -36638,7 +36625,7 @@ function BlogFilteredResultsComponent({
|
|
|
36638
36625
|
}
|
|
36639
36626
|
);
|
|
36640
36627
|
}, [primaryPostSlot, primaryPost, optixFlowConfig, postCardClassName]);
|
|
36641
|
-
const categoriesContent =
|
|
36628
|
+
const categoriesContent = React27.useMemo(() => {
|
|
36642
36629
|
if (categoriesSlot) return categoriesSlot;
|
|
36643
36630
|
if (!categories || categories.length === 0) return null;
|
|
36644
36631
|
return /* @__PURE__ */ jsx(
|
|
@@ -36657,7 +36644,7 @@ function BlogFilteredResultsComponent({
|
|
|
36657
36644
|
handleCategoryChange,
|
|
36658
36645
|
categoriesClassName
|
|
36659
36646
|
]);
|
|
36660
|
-
const postsContent =
|
|
36647
|
+
const postsContent = React27.useMemo(() => {
|
|
36661
36648
|
if (postsSlot) return postsSlot;
|
|
36662
36649
|
return postsToDisplay.slice(0, visibleCount).map((post) => {
|
|
36663
36650
|
const postKey = post.id || String(post.title) || Math.random().toString();
|
|
@@ -36678,7 +36665,7 @@ function BlogFilteredResultsComponent({
|
|
|
36678
36665
|
optixFlowConfig,
|
|
36679
36666
|
postCardClassName
|
|
36680
36667
|
]);
|
|
36681
|
-
const loadMoreContent =
|
|
36668
|
+
const loadMoreContent = React27.useMemo(() => {
|
|
36682
36669
|
if (loadMoreSlot) return loadMoreSlot;
|
|
36683
36670
|
if (!loadMoreAction || !hasMore) return null;
|
|
36684
36671
|
const {
|
|
@@ -36804,7 +36791,7 @@ function BlogMasonryFeaturedComponent({
|
|
|
36804
36791
|
}) {
|
|
36805
36792
|
const featuredPost = posts?.[0];
|
|
36806
36793
|
const otherPosts = posts?.slice(1);
|
|
36807
|
-
const featuredPostContent =
|
|
36794
|
+
const featuredPostContent = React27.useMemo(() => {
|
|
36808
36795
|
if (featuredSlot) return featuredSlot;
|
|
36809
36796
|
if (!featuredPost) return null;
|
|
36810
36797
|
const postHref = featuredPost.href || featuredPost.url || featuredPost.link || "#";
|
|
@@ -36854,7 +36841,7 @@ function BlogMasonryFeaturedComponent({
|
|
|
36854
36841
|
featuredImageClassName,
|
|
36855
36842
|
optixFlowConfig
|
|
36856
36843
|
]);
|
|
36857
|
-
const otherPostsContent =
|
|
36844
|
+
const otherPostsContent = React27.useMemo(() => {
|
|
36858
36845
|
if (postsSlot) return postsSlot;
|
|
36859
36846
|
if (!otherPosts || otherPosts.length === 0) return null;
|
|
36860
36847
|
return otherPosts.map((post) => {
|
|
@@ -36943,7 +36930,7 @@ function BlogHorizontalTimelineComponent({
|
|
|
36943
36930
|
pattern,
|
|
36944
36931
|
patternOpacity
|
|
36945
36932
|
}) {
|
|
36946
|
-
const renderPosts =
|
|
36933
|
+
const renderPosts = React27.useMemo(() => {
|
|
36947
36934
|
if (postsSlot) return postsSlot;
|
|
36948
36935
|
if (!posts || posts.length === 0) return null;
|
|
36949
36936
|
return posts.map((post, index) => {
|
|
@@ -37068,7 +37055,7 @@ function BlogGridNinePosts({
|
|
|
37068
37055
|
pattern,
|
|
37069
37056
|
patternOpacity
|
|
37070
37057
|
}) {
|
|
37071
|
-
const renderedCtaAction =
|
|
37058
|
+
const renderedCtaAction = React27.useMemo(() => {
|
|
37072
37059
|
if (ctaSlot) return ctaSlot;
|
|
37073
37060
|
if (!ctaAction) return null;
|
|
37074
37061
|
const {
|
|
@@ -37093,7 +37080,7 @@ function BlogGridNinePosts({
|
|
|
37093
37080
|
}
|
|
37094
37081
|
);
|
|
37095
37082
|
}, [ctaSlot, ctaAction]);
|
|
37096
|
-
const renderedPosts =
|
|
37083
|
+
const renderedPosts = React27.useMemo(() => {
|
|
37097
37084
|
if (postsSlot) return postsSlot;
|
|
37098
37085
|
if (!posts || posts.length === 0) return null;
|
|
37099
37086
|
return posts.map((post) => {
|
|
@@ -37191,9 +37178,9 @@ var AppleCarousel = ({
|
|
|
37191
37178
|
className,
|
|
37192
37179
|
containerClassName
|
|
37193
37180
|
}) => {
|
|
37194
|
-
const carouselRef =
|
|
37195
|
-
const [canScrollLeft, setCanScrollLeft] =
|
|
37196
|
-
const [canScrollRight, setCanScrollRight] =
|
|
37181
|
+
const carouselRef = React27__default.useRef(null);
|
|
37182
|
+
const [canScrollLeft, setCanScrollLeft] = React27__default.useState(false);
|
|
37183
|
+
const [canScrollRight, setCanScrollRight] = React27__default.useState(true);
|
|
37197
37184
|
const [currentIndex, setCurrentIndex] = useState(0);
|
|
37198
37185
|
useEffect(() => {
|
|
37199
37186
|
if (carouselRef.current) {
|
|
@@ -37430,7 +37417,7 @@ function BlogCarouselAppleComponent({
|
|
|
37430
37417
|
containerClassName,
|
|
37431
37418
|
cardClassName
|
|
37432
37419
|
}) {
|
|
37433
|
-
const carouselCards =
|
|
37420
|
+
const carouselCards = React27.useMemo(() => {
|
|
37434
37421
|
if (!posts || posts.length === 0) return [];
|
|
37435
37422
|
return posts.map(
|
|
37436
37423
|
(post, idx) => ({
|
|
@@ -37442,7 +37429,7 @@ function BlogCarouselAppleComponent({
|
|
|
37442
37429
|
})
|
|
37443
37430
|
);
|
|
37444
37431
|
}, [posts]);
|
|
37445
|
-
const cardElements =
|
|
37432
|
+
const cardElements = React27.useMemo(() => {
|
|
37446
37433
|
if (!posts || posts.length === 0) return [];
|
|
37447
37434
|
return carouselCards.map((card, index) => {
|
|
37448
37435
|
const post = posts[index];
|
|
@@ -37527,7 +37514,7 @@ function ArticleHeroProseComponent({
|
|
|
37527
37514
|
description,
|
|
37528
37515
|
authorImage
|
|
37529
37516
|
} = post ?? {};
|
|
37530
|
-
const authorContent =
|
|
37517
|
+
const authorContent = React27.useMemo(() => {
|
|
37531
37518
|
if (authorSlot) return authorSlot;
|
|
37532
37519
|
if (!authorName) return null;
|
|
37533
37520
|
return /* @__PURE__ */ jsxs(
|
|
@@ -37561,7 +37548,7 @@ function ArticleHeroProseComponent({
|
|
|
37561
37548
|
dateFormat,
|
|
37562
37549
|
authorClassName
|
|
37563
37550
|
]);
|
|
37564
|
-
const heroMediaContent =
|
|
37551
|
+
const heroMediaContent = React27.useMemo(() => {
|
|
37565
37552
|
if (heroMediaSlot) return heroMediaSlot;
|
|
37566
37553
|
if (!image) return null;
|
|
37567
37554
|
return /* @__PURE__ */ jsx(
|
|
@@ -37662,7 +37649,7 @@ function ArticleSidebarStickyComponent({
|
|
|
37662
37649
|
pattern,
|
|
37663
37650
|
patternOpacity
|
|
37664
37651
|
}) {
|
|
37665
|
-
const backLinkContent =
|
|
37652
|
+
const backLinkContent = React27.useMemo(() => {
|
|
37666
37653
|
if (backLinkSlot) return backLinkSlot;
|
|
37667
37654
|
if (!backHref && !backText) return null;
|
|
37668
37655
|
return /* @__PURE__ */ jsxs(
|
|
@@ -37680,7 +37667,7 @@ function ArticleSidebarStickyComponent({
|
|
|
37680
37667
|
}
|
|
37681
37668
|
);
|
|
37682
37669
|
}, [backLinkSlot, backHref, backText, backIcon, backLinkClassName]);
|
|
37683
|
-
const renderAuthor =
|
|
37670
|
+
const renderAuthor = React27.useCallback(
|
|
37684
37671
|
(isMobile = false) => {
|
|
37685
37672
|
if (authorSlot) return authorSlot;
|
|
37686
37673
|
if (!authorName) return null;
|
|
@@ -37712,7 +37699,7 @@ function ArticleSidebarStickyComponent({
|
|
|
37712
37699
|
authorClassName
|
|
37713
37700
|
]
|
|
37714
37701
|
);
|
|
37715
|
-
const heroMediaContent =
|
|
37702
|
+
const heroMediaContent = React27.useMemo(() => {
|
|
37716
37703
|
if (heroMediaSlot) return heroMediaSlot;
|
|
37717
37704
|
if (!heroImageSrc) return null;
|
|
37718
37705
|
return /* @__PURE__ */ jsx(
|
|
@@ -37819,10 +37806,10 @@ function ArticleTocSidebarComponent({
|
|
|
37819
37806
|
patternOpacity
|
|
37820
37807
|
}) {
|
|
37821
37808
|
const ctaActions = ctaActionsProp ?? (ctaButtonText ? [{ label: ctaButtonText, href: ctaButtonHref || "#", variant: "default", className: "w-full" }] : []);
|
|
37822
|
-
const [activeSection, setActiveSection] =
|
|
37809
|
+
const [activeSection, setActiveSection] = React27.useState(
|
|
37823
37810
|
sections?.[0]?.id || ""
|
|
37824
37811
|
);
|
|
37825
|
-
|
|
37812
|
+
React27.useEffect(() => {
|
|
37826
37813
|
if (!enableTocTracking || !sections || sections.length === 0) return;
|
|
37827
37814
|
const observer = new IntersectionObserver(
|
|
37828
37815
|
(entries) => {
|
|
@@ -37840,12 +37827,12 @@ function ArticleTocSidebarComponent({
|
|
|
37840
37827
|
});
|
|
37841
37828
|
return () => observer.disconnect();
|
|
37842
37829
|
}, [sections, enableTocTracking]);
|
|
37843
|
-
const categoryContent =
|
|
37830
|
+
const categoryContent = React27.useMemo(() => {
|
|
37844
37831
|
if (categorySlot) return categorySlot;
|
|
37845
37832
|
if (!category) return null;
|
|
37846
37833
|
return /* @__PURE__ */ jsx(Badge, { variant: "secondary", children: category });
|
|
37847
37834
|
}, [categorySlot, category]);
|
|
37848
|
-
const authorContent =
|
|
37835
|
+
const authorContent = React27.useMemo(() => {
|
|
37849
37836
|
if (authorSlot) return authorSlot;
|
|
37850
37837
|
if (!authorName) return null;
|
|
37851
37838
|
return /* @__PURE__ */ jsxs("div", { className: cn("mt-6 flex items-center gap-4", authorClassName), children: [
|
|
@@ -37865,7 +37852,7 @@ function ArticleTocSidebarComponent({
|
|
|
37865
37852
|
] })
|
|
37866
37853
|
] });
|
|
37867
37854
|
}, [authorSlot, authorName, authorImage, authorHref, publishDate, readTime, authorClassName]);
|
|
37868
|
-
const heroMediaContent =
|
|
37855
|
+
const heroMediaContent = React27.useMemo(() => {
|
|
37869
37856
|
if (heroMediaSlot) return heroMediaSlot;
|
|
37870
37857
|
if (!heroImageSrc) return null;
|
|
37871
37858
|
return /* @__PURE__ */ jsx(
|
|
@@ -37878,7 +37865,7 @@ function ArticleTocSidebarComponent({
|
|
|
37878
37865
|
}
|
|
37879
37866
|
);
|
|
37880
37867
|
}, [heroMediaSlot, heroImageSrc, heroImageAlt, heroImageClassName, optixFlowConfig]);
|
|
37881
|
-
const tocContent =
|
|
37868
|
+
const tocContent = React27.useMemo(() => {
|
|
37882
37869
|
if (tocSlot) return tocSlot;
|
|
37883
37870
|
if (!sections || sections.length === 0) return null;
|
|
37884
37871
|
return /* @__PURE__ */ jsxs("div", { className: cn("rounded-lg border p-4", tocClassName), children: [
|
|
@@ -37886,7 +37873,7 @@ function ArticleTocSidebarComponent({
|
|
|
37886
37873
|
/* @__PURE__ */ jsx("nav", { className: "space-y-2", children: sections.map((section) => {
|
|
37887
37874
|
const isActive = activeSection === section.id;
|
|
37888
37875
|
if (renderSectionLink) {
|
|
37889
|
-
return /* @__PURE__ */ jsx(
|
|
37876
|
+
return /* @__PURE__ */ jsx(React27.Fragment, { children: renderSectionLink(section, isActive) }, section.id);
|
|
37890
37877
|
}
|
|
37891
37878
|
return /* @__PURE__ */ jsx(
|
|
37892
37879
|
Pressable,
|
|
@@ -37903,7 +37890,7 @@ function ArticleTocSidebarComponent({
|
|
|
37903
37890
|
}) })
|
|
37904
37891
|
] });
|
|
37905
37892
|
}, [tocSlot, sections, activeSection, renderSectionLink, tocClassName]);
|
|
37906
|
-
const ctaContent =
|
|
37893
|
+
const ctaContent = React27.useMemo(() => {
|
|
37907
37894
|
if (ctaSlot) return ctaSlot;
|
|
37908
37895
|
if (!ctaTitle && !ctaDescription && (!ctaActions || ctaActions.length === 0)) return null;
|
|
37909
37896
|
return /* @__PURE__ */ jsxs("div", { className: cn("rounded-lg border p-4", getNestedCardBg(background, "subtle"), getNestedCardTextColor(background), ctaClassName), children: [
|
|
@@ -37992,11 +37979,11 @@ function ArticleBreadcrumbSocialComponent({
|
|
|
37992
37979
|
patternOpacity
|
|
37993
37980
|
}) {
|
|
37994
37981
|
const author = authorProp ?? (authorName ? { name: authorName, image: authorImage, role: authorRole } : void 0);
|
|
37995
|
-
const [activeSection, setActiveSection] =
|
|
37982
|
+
const [activeSection, setActiveSection] = React27.useState(
|
|
37996
37983
|
sections?.[0]?.id || ""
|
|
37997
37984
|
);
|
|
37998
|
-
const [showBackToTop, setShowBackToTop] =
|
|
37999
|
-
|
|
37985
|
+
const [showBackToTop, setShowBackToTop] = React27.useState(false);
|
|
37986
|
+
React27.useEffect(() => {
|
|
38000
37987
|
if (!enableTocTracking || !sections || sections.length === 0) return;
|
|
38001
37988
|
const observer = new IntersectionObserver(
|
|
38002
37989
|
(entries) => {
|
|
@@ -38014,7 +38001,7 @@ function ArticleBreadcrumbSocialComponent({
|
|
|
38014
38001
|
});
|
|
38015
38002
|
return () => observer.disconnect();
|
|
38016
38003
|
}, [sections, enableTocTracking]);
|
|
38017
|
-
|
|
38004
|
+
React27.useEffect(() => {
|
|
38018
38005
|
if (!enableBackToTop) return;
|
|
38019
38006
|
const handleScroll = () => {
|
|
38020
38007
|
setShowBackToTop(window.scrollY > 400);
|
|
@@ -38022,15 +38009,15 @@ function ArticleBreadcrumbSocialComponent({
|
|
|
38022
38009
|
window.addEventListener("scroll", handleScroll);
|
|
38023
38010
|
return () => window.removeEventListener("scroll", handleScroll);
|
|
38024
38011
|
}, [enableBackToTop]);
|
|
38025
|
-
const scrollToTop =
|
|
38012
|
+
const scrollToTop = React27.useCallback(() => {
|
|
38026
38013
|
window.scrollTo({ top: 0, behavior: "smooth" });
|
|
38027
38014
|
}, []);
|
|
38028
|
-
const breadcrumbsContent =
|
|
38015
|
+
const breadcrumbsContent = React27.useMemo(() => {
|
|
38029
38016
|
if (breadcrumbsSlot) return breadcrumbsSlot;
|
|
38030
38017
|
if (!breadcrumbs || breadcrumbs.length === 0) return null;
|
|
38031
38018
|
return /* @__PURE__ */ jsx(Breadcrumb, { className: cn("mb-8", breadcrumbClassName), children: /* @__PURE__ */ jsxs(BreadcrumbList, { children: [
|
|
38032
38019
|
/* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbLink, { asChild: true, children: /* @__PURE__ */ jsx(Pressable, { href: "#", children: /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/home", size: 16 }) }) }) }),
|
|
38033
|
-
breadcrumbs.map((crumb, index) => /* @__PURE__ */ jsxs(
|
|
38020
|
+
breadcrumbs.map((crumb, index) => /* @__PURE__ */ jsxs(React27.Fragment, { children: [
|
|
38034
38021
|
/* @__PURE__ */ jsx(BreadcrumbSeparator, {}),
|
|
38035
38022
|
/* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbLink, { asChild: true, children: /* @__PURE__ */ jsx(Pressable, { href: crumb.href, children: crumb.label }) }) })
|
|
38036
38023
|
] }, index)),
|
|
@@ -38040,7 +38027,7 @@ function ArticleBreadcrumbSocialComponent({
|
|
|
38040
38027
|
] })
|
|
38041
38028
|
] }) });
|
|
38042
38029
|
}, [breadcrumbsSlot, breadcrumbs, currentPage, breadcrumbClassName]);
|
|
38043
|
-
const authorContent =
|
|
38030
|
+
const authorContent = React27.useMemo(() => {
|
|
38044
38031
|
if (authorSlot) return authorSlot;
|
|
38045
38032
|
if (!author) return null;
|
|
38046
38033
|
return /* @__PURE__ */ jsxs(
|
|
@@ -38063,7 +38050,7 @@ function ArticleBreadcrumbSocialComponent({
|
|
|
38063
38050
|
}
|
|
38064
38051
|
);
|
|
38065
38052
|
}, [authorSlot, author, publishDate, readTime, authorClassName]);
|
|
38066
|
-
const heroMediaContent =
|
|
38053
|
+
const heroMediaContent = React27.useMemo(() => {
|
|
38067
38054
|
if (heroMediaSlot) return heroMediaSlot;
|
|
38068
38055
|
if (!heroImageSrc) return null;
|
|
38069
38056
|
return /* @__PURE__ */ jsx(
|
|
@@ -38085,7 +38072,7 @@ function ArticleBreadcrumbSocialComponent({
|
|
|
38085
38072
|
heroImageClassName,
|
|
38086
38073
|
optixFlowConfig
|
|
38087
38074
|
]);
|
|
38088
|
-
const tocContent =
|
|
38075
|
+
const tocContent = React27.useMemo(() => {
|
|
38089
38076
|
if (tocSlot) return tocSlot;
|
|
38090
38077
|
if (!sections || sections.length === 0) return null;
|
|
38091
38078
|
return /* @__PURE__ */ jsxs("div", { className: cn("rounded-lg border p-4", tocClassName), children: [
|
|
@@ -38093,7 +38080,7 @@ function ArticleBreadcrumbSocialComponent({
|
|
|
38093
38080
|
/* @__PURE__ */ jsx("nav", { className: "space-y-2", children: sections.map((section) => {
|
|
38094
38081
|
const isActive = activeSection === section.id;
|
|
38095
38082
|
if (renderSectionLink) {
|
|
38096
|
-
return /* @__PURE__ */ jsx(
|
|
38083
|
+
return /* @__PURE__ */ jsx(React27.Fragment, { children: renderSectionLink(section, isActive) }, section.id);
|
|
38097
38084
|
}
|
|
38098
38085
|
return /* @__PURE__ */ jsx(
|
|
38099
38086
|
Pressable,
|
|
@@ -38198,11 +38185,11 @@ function ArticleCompactTocComponent({
|
|
|
38198
38185
|
pattern,
|
|
38199
38186
|
patternOpacity
|
|
38200
38187
|
}) {
|
|
38201
|
-
const [activeSection, setActiveSection] =
|
|
38188
|
+
const [activeSection, setActiveSection] = React27.useState(
|
|
38202
38189
|
sections?.[0]?.id || ""
|
|
38203
38190
|
);
|
|
38204
|
-
const [isTocOpen, setIsTocOpen] =
|
|
38205
|
-
|
|
38191
|
+
const [isTocOpen, setIsTocOpen] = React27.useState(false);
|
|
38192
|
+
React27.useEffect(() => {
|
|
38206
38193
|
if (!enableTocTracking) return;
|
|
38207
38194
|
const observer = new IntersectionObserver(
|
|
38208
38195
|
(entries) => {
|
|
@@ -38220,12 +38207,12 @@ function ArticleCompactTocComponent({
|
|
|
38220
38207
|
});
|
|
38221
38208
|
return () => observer.disconnect();
|
|
38222
38209
|
}, [sections, enableTocTracking]);
|
|
38223
|
-
const breadcrumbsContent =
|
|
38210
|
+
const breadcrumbsContent = React27.useMemo(() => {
|
|
38224
38211
|
if (breadcrumbsSlot) return breadcrumbsSlot;
|
|
38225
38212
|
if (!breadcrumbs && !currentPage) return null;
|
|
38226
38213
|
return /* @__PURE__ */ jsx(Breadcrumb, { className: cn("mb-6 md:mb-20", breadcrumbClassName), children: /* @__PURE__ */ jsxs(BreadcrumbList, { children: [
|
|
38227
38214
|
/* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbLink, { asChild: true, children: /* @__PURE__ */ jsx(Pressable, { href: "#", children: /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/home", size: 16 }) }) }) }),
|
|
38228
|
-
breadcrumbs?.map((crumb, index) => /* @__PURE__ */ jsxs(
|
|
38215
|
+
breadcrumbs?.map((crumb, index) => /* @__PURE__ */ jsxs(React27.Fragment, { children: [
|
|
38229
38216
|
/* @__PURE__ */ jsx(BreadcrumbSeparator, {}),
|
|
38230
38217
|
/* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbLink, { asChild: true, children: /* @__PURE__ */ jsx(Pressable, { href: crumb.href, children: crumb.label }) }) })
|
|
38231
38218
|
] }, index)),
|
|
@@ -38233,7 +38220,7 @@ function ArticleCompactTocComponent({
|
|
|
38233
38220
|
/* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbPage, { children: currentPage }) })
|
|
38234
38221
|
] }) });
|
|
38235
38222
|
}, [breadcrumbsSlot, breadcrumbs, currentPage, breadcrumbClassName]);
|
|
38236
|
-
const shareContent =
|
|
38223
|
+
const shareContent = React27.useMemo(() => {
|
|
38237
38224
|
if (shareSlot) return shareSlot;
|
|
38238
38225
|
if (!socialLinks || socialLinks.length === 0) return null;
|
|
38239
38226
|
return /* @__PURE__ */ jsxs("div", { className: cn("mt-6 flex items-center gap-2", shareClassName), children: [
|
|
@@ -38250,13 +38237,13 @@ function ArticleCompactTocComponent({
|
|
|
38250
38237
|
))
|
|
38251
38238
|
] });
|
|
38252
38239
|
}, [shareSlot, socialLinks, shareClassName]);
|
|
38253
|
-
const renderTocLinks =
|
|
38240
|
+
const renderTocLinks = React27.useCallback(
|
|
38254
38241
|
(onLinkClick) => {
|
|
38255
38242
|
if (!sections) return null;
|
|
38256
38243
|
return sections.map((section) => {
|
|
38257
38244
|
const isActive = activeSection === section.id;
|
|
38258
38245
|
if (renderSectionLink) {
|
|
38259
|
-
return /* @__PURE__ */ jsx(
|
|
38246
|
+
return /* @__PURE__ */ jsx(React27.Fragment, { children: renderSectionLink(section, isActive) }, section.id);
|
|
38260
38247
|
}
|
|
38261
38248
|
return /* @__PURE__ */ jsx(
|
|
38262
38249
|
Pressable,
|
|
@@ -38275,7 +38262,7 @@ function ArticleCompactTocComponent({
|
|
|
38275
38262
|
},
|
|
38276
38263
|
[sections, activeSection, renderSectionLink]
|
|
38277
38264
|
);
|
|
38278
|
-
const tocContent =
|
|
38265
|
+
const tocContent = React27.useMemo(() => {
|
|
38279
38266
|
if (tocSlot) return tocSlot;
|
|
38280
38267
|
if (!sections || sections.length === 0) return null;
|
|
38281
38268
|
return /* @__PURE__ */ jsx("div", { className: "mb-8 lg:hidden", children: /* @__PURE__ */ jsxs(Popover, { open: isTocOpen, onOpenChange: setIsTocOpen, children: [
|
|
@@ -38308,7 +38295,7 @@ function ArticleCompactTocComponent({
|
|
|
38308
38295
|
)
|
|
38309
38296
|
] }) });
|
|
38310
38297
|
}, [tocSlot, sections, isTocOpen, tocClassName, renderTocLinks]);
|
|
38311
|
-
const desktopTocContent =
|
|
38298
|
+
const desktopTocContent = React27.useMemo(() => {
|
|
38312
38299
|
if (tocSlot) return null;
|
|
38313
38300
|
if (!sections || sections.length === 0) return null;
|
|
38314
38301
|
return /* @__PURE__ */ jsx(
|
|
@@ -38325,7 +38312,7 @@ function ArticleCompactTocComponent({
|
|
|
38325
38312
|
}
|
|
38326
38313
|
);
|
|
38327
38314
|
}, [tocSlot, sections, tocClassName, renderTocLinks]);
|
|
38328
|
-
const heroMediaContent =
|
|
38315
|
+
const heroMediaContent = React27.useMemo(() => {
|
|
38329
38316
|
if (heroMediaSlot) return heroMediaSlot;
|
|
38330
38317
|
if (!heroImageSrc) return null;
|
|
38331
38318
|
return /* @__PURE__ */ jsx(
|
|
@@ -38455,10 +38442,10 @@ function ArticleChaptersAuthorComponent({
|
|
|
38455
38442
|
variant: "default"
|
|
38456
38443
|
}
|
|
38457
38444
|
] : []);
|
|
38458
|
-
const [activeChapter, setActiveChapter] =
|
|
38445
|
+
const [activeChapter, setActiveChapter] = React27.useState(
|
|
38459
38446
|
chapters?.[0]?.id || ""
|
|
38460
38447
|
);
|
|
38461
|
-
|
|
38448
|
+
React27.useEffect(() => {
|
|
38462
38449
|
if (!enableChapterTracking || !chapters || chapters.length === 0) return;
|
|
38463
38450
|
const observer = new IntersectionObserver(
|
|
38464
38451
|
(entries) => {
|
|
@@ -38476,12 +38463,12 @@ function ArticleChaptersAuthorComponent({
|
|
|
38476
38463
|
});
|
|
38477
38464
|
return () => observer.disconnect();
|
|
38478
38465
|
}, [chapters, enableChapterTracking]);
|
|
38479
|
-
const breadcrumbsContent =
|
|
38466
|
+
const breadcrumbsContent = React27.useMemo(() => {
|
|
38480
38467
|
if (breadcrumbsSlot) return breadcrumbsSlot;
|
|
38481
38468
|
if (!breadcrumbs || breadcrumbs.length === 0) return null;
|
|
38482
38469
|
return /* @__PURE__ */ jsx(Breadcrumb, { className: cn("mb-8 md:mb-20", breadcrumbClassName), children: /* @__PURE__ */ jsxs(BreadcrumbList, { children: [
|
|
38483
38470
|
/* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbLink, { asChild: true, children: /* @__PURE__ */ jsx(Pressable, { href: "#", children: /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/home", size: 16 }) }) }) }),
|
|
38484
|
-
breadcrumbs.map((crumb, index) => /* @__PURE__ */ jsxs(
|
|
38471
|
+
breadcrumbs.map((crumb, index) => /* @__PURE__ */ jsxs(React27.Fragment, { children: [
|
|
38485
38472
|
/* @__PURE__ */ jsx(BreadcrumbSeparator, {}),
|
|
38486
38473
|
/* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbLink, { asChild: true, children: /* @__PURE__ */ jsx(Pressable, { href: crumb.href, children: crumb.label }) }) })
|
|
38487
38474
|
] }, index)),
|
|
@@ -38489,7 +38476,7 @@ function ArticleChaptersAuthorComponent({
|
|
|
38489
38476
|
/* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbPage, { children: typeof currentPage === "string" ? currentPage : currentPage }) })
|
|
38490
38477
|
] }) });
|
|
38491
38478
|
}, [breadcrumbsSlot, breadcrumbs, currentPage, breadcrumbClassName]);
|
|
38492
|
-
const chaptersNavContent =
|
|
38479
|
+
const chaptersNavContent = React27.useMemo(() => {
|
|
38493
38480
|
if (chaptersSlot) return chaptersSlot;
|
|
38494
38481
|
if (!chapters || chapters.length === 0) return null;
|
|
38495
38482
|
return /* @__PURE__ */ jsxs("div", { className: cn("rounded-lg border p-4", chaptersClassName), children: [
|
|
@@ -38497,7 +38484,7 @@ function ArticleChaptersAuthorComponent({
|
|
|
38497
38484
|
/* @__PURE__ */ jsx("nav", { className: "space-y-2", children: chapters.map((chapter) => {
|
|
38498
38485
|
const isActive = activeChapter === chapter.id;
|
|
38499
38486
|
if (renderChapterLink) {
|
|
38500
|
-
return /* @__PURE__ */ jsx(
|
|
38487
|
+
return /* @__PURE__ */ jsx(React27.Fragment, { children: renderChapterLink(chapter, isActive) }, chapter.id);
|
|
38501
38488
|
}
|
|
38502
38489
|
return /* @__PURE__ */ jsxs(
|
|
38503
38490
|
Pressable,
|
|
@@ -38523,7 +38510,7 @@ function ArticleChaptersAuthorComponent({
|
|
|
38523
38510
|
renderChapterLink,
|
|
38524
38511
|
chaptersClassName
|
|
38525
38512
|
]);
|
|
38526
|
-
const authorCardContent =
|
|
38513
|
+
const authorCardContent = React27.useMemo(() => {
|
|
38527
38514
|
if (authorSlot) return authorSlot;
|
|
38528
38515
|
if (!author) return null;
|
|
38529
38516
|
let socialLinksContent = null;
|
|
@@ -38584,7 +38571,7 @@ function ArticleChaptersAuthorComponent({
|
|
|
38584
38571
|
socialLinksContent
|
|
38585
38572
|
] });
|
|
38586
38573
|
}, [authorSlot, author, authorClassName]);
|
|
38587
|
-
const heroMediaContent =
|
|
38574
|
+
const heroMediaContent = React27.useMemo(() => {
|
|
38588
38575
|
if (heroMediaSlot) return heroMediaSlot;
|
|
38589
38576
|
if (!heroImageSrc) return null;
|
|
38590
38577
|
return /* @__PURE__ */ jsx(
|
|
@@ -38606,7 +38593,7 @@ function ArticleChaptersAuthorComponent({
|
|
|
38606
38593
|
heroImageClassName,
|
|
38607
38594
|
optixFlowConfig
|
|
38608
38595
|
]);
|
|
38609
|
-
const conclusionContent =
|
|
38596
|
+
const conclusionContent = React27.useMemo(() => {
|
|
38610
38597
|
if (conclusionSlot) return conclusionSlot;
|
|
38611
38598
|
if (!conclusionTitle && !conclusionDescription && (!conclusionActions || conclusionActions.length === 0))
|
|
38612
38599
|
return null;
|
|
@@ -38758,7 +38745,7 @@ function ArticleSplitAnimatedComponent({
|
|
|
38758
38745
|
}
|
|
38759
38746
|
] : []);
|
|
38760
38747
|
const MotionWrapper = enableAnimations ? motion.div : "div";
|
|
38761
|
-
const categoryContent =
|
|
38748
|
+
const categoryContent = React27.useMemo(() => {
|
|
38762
38749
|
if (categorySlot) return categorySlot;
|
|
38763
38750
|
if (!category) return null;
|
|
38764
38751
|
return /* @__PURE__ */ jsx(
|
|
@@ -38773,7 +38760,7 @@ function ArticleSplitAnimatedComponent({
|
|
|
38773
38760
|
}
|
|
38774
38761
|
);
|
|
38775
38762
|
}, [categorySlot, category, categoryHref, categoryClassName]);
|
|
38776
|
-
const heroMediaContent =
|
|
38763
|
+
const heroMediaContent = React27.useMemo(() => {
|
|
38777
38764
|
if (heroMediaSlot) return heroMediaSlot;
|
|
38778
38765
|
if (!image) return null;
|
|
38779
38766
|
return /* @__PURE__ */ jsx(
|
|
@@ -38786,7 +38773,7 @@ function ArticleSplitAnimatedComponent({
|
|
|
38786
38773
|
}
|
|
38787
38774
|
);
|
|
38788
38775
|
}, [heroMediaSlot, image, imageAlt, title, optixFlowConfig]);
|
|
38789
|
-
const authorContent =
|
|
38776
|
+
const authorContent = React27.useMemo(() => {
|
|
38790
38777
|
if (authorSlot) return authorSlot;
|
|
38791
38778
|
if (!authorName) return null;
|
|
38792
38779
|
return /* @__PURE__ */ jsxs("div", { className: cn("mt-8 flex items-center gap-4", authorClassName), children: [
|
|
@@ -38814,7 +38801,7 @@ function ArticleSplitAnimatedComponent({
|
|
|
38814
38801
|
authorRole,
|
|
38815
38802
|
authorClassName
|
|
38816
38803
|
]);
|
|
38817
|
-
const ctaContent =
|
|
38804
|
+
const ctaContent = React27.useMemo(() => {
|
|
38818
38805
|
if (ctaSlot) return ctaSlot;
|
|
38819
38806
|
if (!ctaActions || ctaActions.length === 0) return null;
|
|
38820
38807
|
return /* @__PURE__ */ jsx("div", { className: cn("mt-8 flex flex-wrap gap-3", ctaClassName), children: ctaActions.map((action, index) => {
|
|
@@ -40254,7 +40241,7 @@ function FaqSidebarNavigation({
|
|
|
40254
40241
|
accordionTriggerClassName,
|
|
40255
40242
|
accordionContentClassName
|
|
40256
40243
|
}) {
|
|
40257
|
-
const [activeCategory, setActiveCategory] =
|
|
40244
|
+
const [activeCategory, setActiveCategory] = React27.useState(
|
|
40258
40245
|
categories && categories.length > 1 ? "all" : categories?.[0]?.id || ""
|
|
40259
40246
|
);
|
|
40260
40247
|
const filteredCategories = useMemo(() => {
|
|
@@ -41143,7 +41130,7 @@ function FaqSplitHero({
|
|
|
41143
41130
|
imageArea
|
|
41144
41131
|
] }) });
|
|
41145
41132
|
}
|
|
41146
|
-
var Controls =
|
|
41133
|
+
var Controls = React27.memo(
|
|
41147
41134
|
({
|
|
41148
41135
|
handleNext,
|
|
41149
41136
|
handlePrevious,
|
|
@@ -41174,7 +41161,7 @@ var Controls = React26.memo(
|
|
|
41174
41161
|
] });
|
|
41175
41162
|
}
|
|
41176
41163
|
);
|
|
41177
|
-
var FeatureCard =
|
|
41164
|
+
var FeatureCard = React27.memo(
|
|
41178
41165
|
({ feature, isActive, onClick }) => {
|
|
41179
41166
|
const variants2 = useMemo(
|
|
41180
41167
|
() => ({
|
|
@@ -41282,7 +41269,7 @@ var FeatureCard = React26.memo(
|
|
|
41282
41269
|
) });
|
|
41283
41270
|
}
|
|
41284
41271
|
);
|
|
41285
|
-
var FeaturesDesktop =
|
|
41272
|
+
var FeaturesDesktop = React27.memo(
|
|
41286
41273
|
({
|
|
41287
41274
|
features,
|
|
41288
41275
|
handleNext,
|
|
@@ -41316,7 +41303,7 @@ var FeaturesDesktop = React26.memo(
|
|
|
41316
41303
|
] });
|
|
41317
41304
|
}
|
|
41318
41305
|
);
|
|
41319
|
-
var FeaturesMobile =
|
|
41306
|
+
var FeaturesMobile = React27.memo(
|
|
41320
41307
|
({
|
|
41321
41308
|
features,
|
|
41322
41309
|
handleNext,
|
|
@@ -41407,8 +41394,8 @@ function FeatureAnimatedCarousel({
|
|
|
41407
41394
|
spacing = "py-12 md:py-32",
|
|
41408
41395
|
containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8"
|
|
41409
41396
|
}) {
|
|
41410
|
-
const [activeIndex, setActiveIndex] =
|
|
41411
|
-
const [direction, setDirection] =
|
|
41397
|
+
const [activeIndex, setActiveIndex] = React27.useState(0);
|
|
41398
|
+
const [direction, setDirection] = React27.useState(1);
|
|
41412
41399
|
const handleNext = useCallback(() => {
|
|
41413
41400
|
if (features && activeIndex < features.length - 1) {
|
|
41414
41401
|
setDirection(1);
|
|
@@ -41839,7 +41826,7 @@ function FooterSplitImageAccordion({
|
|
|
41839
41826
|
buttonAction,
|
|
41840
41827
|
formSlot
|
|
41841
41828
|
}) {
|
|
41842
|
-
const renderForm =
|
|
41829
|
+
const renderForm = React27.useMemo(() => {
|
|
41843
41830
|
if (formSlot) return formSlot;
|
|
41844
41831
|
if (!formEngineSetup) return null;
|
|
41845
41832
|
const defaultButtonAction = {
|
|
@@ -42259,7 +42246,7 @@ function FooterInfoCardsAccordion({
|
|
|
42259
42246
|
patternOpacity,
|
|
42260
42247
|
optixFlowConfig
|
|
42261
42248
|
}) {
|
|
42262
|
-
const [email, setEmail] =
|
|
42249
|
+
const [email, setEmail] = React27.useState("");
|
|
42263
42250
|
(/* @__PURE__ */ new Date()).getFullYear();
|
|
42264
42251
|
const handleSubmit = (e) => {
|
|
42265
42252
|
e.preventDefault();
|
|
@@ -42564,13 +42551,13 @@ function CaseStudiesImageGrid({
|
|
|
42564
42551
|
patternOpacity,
|
|
42565
42552
|
optixFlowConfig
|
|
42566
42553
|
}) {
|
|
42567
|
-
const getGridClass =
|
|
42554
|
+
const getGridClass = React27.useCallback((index) => {
|
|
42568
42555
|
if (index === 0 || index === 4) {
|
|
42569
42556
|
return "row-span-2 aspect-square lg:aspect-auto";
|
|
42570
42557
|
}
|
|
42571
42558
|
return "aspect-3/2 md:aspect-2/1";
|
|
42572
42559
|
}, []);
|
|
42573
|
-
const renderedItems =
|
|
42560
|
+
const renderedItems = React27.useMemo(() => {
|
|
42574
42561
|
if (itemsSlot) return itemsSlot;
|
|
42575
42562
|
if (!items || items.length === 0) return null;
|
|
42576
42563
|
return items.map((item, index) => /* @__PURE__ */ jsxs(
|
|
@@ -42656,7 +42643,7 @@ function CaseStudiesTestimonialStats({
|
|
|
42656
42643
|
patternOpacity,
|
|
42657
42644
|
optixFlowConfig
|
|
42658
42645
|
}) {
|
|
42659
|
-
const renderedTestimonials =
|
|
42646
|
+
const renderedTestimonials = React27.useMemo(() => {
|
|
42660
42647
|
if (testimonialsSlot) return testimonialsSlot;
|
|
42661
42648
|
if (!testimonials || testimonials.length === 0) return null;
|
|
42662
42649
|
return testimonials.map((testimonial, index) => /* @__PURE__ */ jsxs("div", { className: testimonialItemClassName, children: [
|
|
@@ -46129,7 +46116,7 @@ function CaseStudiesFeaturedBorder({
|
|
|
46129
46116
|
patternOpacity,
|
|
46130
46117
|
optixFlowConfig
|
|
46131
46118
|
}) {
|
|
46132
|
-
const renderedFeatured =
|
|
46119
|
+
const renderedFeatured = React27.useMemo(() => {
|
|
46133
46120
|
if (featuredSlot) return featuredSlot;
|
|
46134
46121
|
if (!featuredCaseStudy) return null;
|
|
46135
46122
|
return /* @__PURE__ */ jsxs(
|
|
@@ -46203,7 +46190,7 @@ function CaseStudiesFeaturedBorder({
|
|
|
46203
46190
|
featuredImageClassName,
|
|
46204
46191
|
optixFlowConfig
|
|
46205
46192
|
]);
|
|
46206
|
-
const renderedCaseStudies =
|
|
46193
|
+
const renderedCaseStudies = React27.useMemo(() => {
|
|
46207
46194
|
if (caseStudiesSlot) return caseStudiesSlot;
|
|
46208
46195
|
if (!caseStudies || caseStudies.length === 0) return null;
|
|
46209
46196
|
return caseStudies.map((item, idx) => /* @__PURE__ */ jsxs(
|
|
@@ -46312,7 +46299,7 @@ function CaseStudiesStatsCard({
|
|
|
46312
46299
|
patternOpacity,
|
|
46313
46300
|
optixFlowConfig
|
|
46314
46301
|
}) {
|
|
46315
|
-
const renderedStats =
|
|
46302
|
+
const renderedStats = React27.useMemo(() => {
|
|
46316
46303
|
if (statsSlot) return statsSlot;
|
|
46317
46304
|
if (!stats || stats.length === 0) return null;
|
|
46318
46305
|
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: [
|
|
@@ -46320,7 +46307,7 @@ function CaseStudiesStatsCard({
|
|
|
46320
46307
|
/* @__PURE__ */ jsx("div", { className: "text-sm font-medium text-muted-foreground", children: item.text })
|
|
46321
46308
|
] }, `stats-${i}`)) });
|
|
46322
46309
|
}, [statsSlot, stats, statsClassName]);
|
|
46323
|
-
const renderedAuthor =
|
|
46310
|
+
const renderedAuthor = React27.useMemo(() => {
|
|
46324
46311
|
if (authorSlot) return authorSlot;
|
|
46325
46312
|
if (!author) return null;
|
|
46326
46313
|
return /* @__PURE__ */ jsxs("div", { className: cn("flex items-center gap-2.5", authorClassName), children: [
|
|
@@ -46334,7 +46321,7 @@ function CaseStudiesStatsCard({
|
|
|
46334
46321
|
] })
|
|
46335
46322
|
] });
|
|
46336
46323
|
}, [authorSlot, author, authorClassName]);
|
|
46337
|
-
const renderedActions =
|
|
46324
|
+
const renderedActions = React27.useMemo(() => {
|
|
46338
46325
|
if (actionsSlot) return actionsSlot;
|
|
46339
46326
|
if (!actions || actions.length === 0) return null;
|
|
46340
46327
|
return /* @__PURE__ */ jsx("div", { className: cn("shrink-0", actionsClassName), children: actions.map((action, index) => {
|
|
@@ -53434,7 +53421,7 @@ function HeroSplitImageNewsletter({
|
|
|
53434
53421
|
onError,
|
|
53435
53422
|
uploadTokens
|
|
53436
53423
|
});
|
|
53437
|
-
const renderForm =
|
|
53424
|
+
const renderForm = React27.useMemo(() => {
|
|
53438
53425
|
if (formSlot) return formSlot;
|
|
53439
53426
|
if (!formFields || formFields.length === 0) return null;
|
|
53440
53427
|
const defaultButtonAction = {
|
|
@@ -53513,7 +53500,7 @@ function HeroSplitImageNewsletter({
|
|
|
53513
53500
|
resetUpload,
|
|
53514
53501
|
resetSubmissionState
|
|
53515
53502
|
]);
|
|
53516
|
-
const renderImage =
|
|
53503
|
+
const renderImage = React27.useMemo(() => {
|
|
53517
53504
|
if (imageSlot) return imageSlot;
|
|
53518
53505
|
if (!image) return null;
|
|
53519
53506
|
return /* @__PURE__ */ jsx("div", { className: "relative lg:w-1/2", children: /* @__PURE__ */ jsx(
|
|
@@ -54941,7 +54928,7 @@ function HeroSaasDashboardPreview({
|
|
|
54941
54928
|
onError,
|
|
54942
54929
|
uploadTokens
|
|
54943
54930
|
});
|
|
54944
|
-
const renderBadge =
|
|
54931
|
+
const renderBadge = React27.useMemo(() => {
|
|
54945
54932
|
if (badgeSlot) return badgeSlot;
|
|
54946
54933
|
return /* @__PURE__ */ jsxs(
|
|
54947
54934
|
"div",
|
|
@@ -54956,7 +54943,7 @@ function HeroSaasDashboardPreview({
|
|
|
54956
54943
|
}
|
|
54957
54944
|
);
|
|
54958
54945
|
}, [badgeSlot, badgeIcon, badgeText]);
|
|
54959
|
-
const renderForm =
|
|
54946
|
+
const renderForm = React27.useMemo(() => {
|
|
54960
54947
|
if (formSlot) return formSlot;
|
|
54961
54948
|
const defaultButtonAction = {
|
|
54962
54949
|
label: "Start Free Trial",
|
|
@@ -55031,7 +55018,7 @@ function HeroSaasDashboardPreview({
|
|
|
55031
55018
|
resetUpload,
|
|
55032
55019
|
resetSubmissionState
|
|
55033
55020
|
]);
|
|
55034
|
-
const renderBrowserPreview =
|
|
55021
|
+
const renderBrowserPreview = React27.useMemo(() => {
|
|
55035
55022
|
if (browserPreviewSlot) return browserPreviewSlot;
|
|
55036
55023
|
if (!browserPreview) return null;
|
|
55037
55024
|
return /* @__PURE__ */ jsxs("div", { className: cn("relative mt-12 md:mt-20", previewClassName), children: [
|
|
@@ -57282,7 +57269,7 @@ function HeroEcommerceProductShowcase({
|
|
|
57282
57269
|
"flex flex-col md:flex-row items-center gap-4 md:gap-6 pt-8 md:pt-12",
|
|
57283
57270
|
statsClassName
|
|
57284
57271
|
),
|
|
57285
|
-
children: stats.map((stat, index) => /* @__PURE__ */ jsxs(
|
|
57272
|
+
children: stats.map((stat, index) => /* @__PURE__ */ jsxs(React27.Fragment, { children: [
|
|
57286
57273
|
index > 0 && /* @__PURE__ */ jsx("div", { className: "h-12 w-px bg-border hidden md:flex" }),
|
|
57287
57274
|
/* @__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: [
|
|
57288
57275
|
/* @__PURE__ */ jsxs(
|
|
@@ -57726,7 +57713,7 @@ function HeroNewsletterMinimal({
|
|
|
57726
57713
|
disclaimerClassName,
|
|
57727
57714
|
statsClassName
|
|
57728
57715
|
}) {
|
|
57729
|
-
const renderStats =
|
|
57716
|
+
const renderStats = React27.useMemo(() => {
|
|
57730
57717
|
if (statsSlot) return statsSlot;
|
|
57731
57718
|
if (!stats || stats.length === 0) return null;
|
|
57732
57719
|
return stats.map((stat, index) => /* @__PURE__ */ jsx("div", { className: cn("flex items-center", stat.className), children: /* @__PURE__ */ jsxs("div", { className: "text-center", children: [
|
|
@@ -57752,7 +57739,7 @@ function HeroNewsletterMinimal({
|
|
|
57752
57739
|
/* @__PURE__ */ jsx("div", { className: cn("text-sm"), children: stat.label })
|
|
57753
57740
|
] }) }, index));
|
|
57754
57741
|
}, [statsSlot, stats]);
|
|
57755
|
-
const renderForm =
|
|
57742
|
+
const renderForm = React27.useMemo(() => {
|
|
57756
57743
|
if (formSlot) return formSlot;
|
|
57757
57744
|
if (!formEngineSetup) return null;
|
|
57758
57745
|
const defaultButtonAction = {
|
|
@@ -57919,7 +57906,7 @@ function HeroComingSoonCountdown({
|
|
|
57919
57906
|
formClassName,
|
|
57920
57907
|
socialLinksClassName
|
|
57921
57908
|
}) {
|
|
57922
|
-
const [timeLeft, setTimeLeft] =
|
|
57909
|
+
const [timeLeft, setTimeLeft] = React27.useState(null);
|
|
57923
57910
|
const {
|
|
57924
57911
|
uploadTokens,
|
|
57925
57912
|
uploadProgress,
|
|
@@ -57939,7 +57926,7 @@ function HeroComingSoonCountdown({
|
|
|
57939
57926
|
onError,
|
|
57940
57927
|
uploadTokens
|
|
57941
57928
|
});
|
|
57942
|
-
const calculateTimeLeft =
|
|
57929
|
+
const calculateTimeLeft = React27.useCallback(() => {
|
|
57943
57930
|
if (!countdownDate) return null;
|
|
57944
57931
|
const now = Date.now();
|
|
57945
57932
|
const target = countdownDate.getTime();
|
|
@@ -57952,7 +57939,7 @@ function HeroComingSoonCountdown({
|
|
|
57952
57939
|
seconds: Math.floor(diff % (1e3 * 60) / 1e3)
|
|
57953
57940
|
};
|
|
57954
57941
|
}, [countdownDate]);
|
|
57955
|
-
|
|
57942
|
+
React27.useEffect(() => {
|
|
57956
57943
|
setTimeLeft(calculateTimeLeft());
|
|
57957
57944
|
if (!countdownDate) return;
|
|
57958
57945
|
const timer = setInterval(() => {
|
|
@@ -57963,7 +57950,7 @@ function HeroComingSoonCountdown({
|
|
|
57963
57950
|
return () => clearInterval(timer);
|
|
57964
57951
|
}, [countdownDate, calculateTimeLeft]);
|
|
57965
57952
|
const showCountdown = countdownSlot || timeLeft;
|
|
57966
|
-
const renderForm =
|
|
57953
|
+
const renderForm = React27.useMemo(() => {
|
|
57967
57954
|
if (formSlot) return formSlot;
|
|
57968
57955
|
const defaultButtonAction = {
|
|
57969
57956
|
label: "Notify Me",
|
|
@@ -58039,7 +58026,7 @@ function HeroComingSoonCountdown({
|
|
|
58039
58026
|
resetUpload,
|
|
58040
58027
|
resetSubmissionState
|
|
58041
58028
|
]);
|
|
58042
|
-
const renderSocialLinks =
|
|
58029
|
+
const renderSocialLinks = React27.useMemo(() => {
|
|
58043
58030
|
if (socialLinksSlot) return socialLinksSlot;
|
|
58044
58031
|
if (!socialLinks || socialLinks.length === 0) return null;
|
|
58045
58032
|
return socialLinks.map((link, index) => /* @__PURE__ */ jsx(
|
|
@@ -58172,7 +58159,7 @@ function HeroEventRegistration({
|
|
|
58172
58159
|
"flex flex-col md:flex-row items-center gap-4 md:gap-6 pt-8 md:pt-12 w-full md:w-fit",
|
|
58173
58160
|
statsClassName
|
|
58174
58161
|
),
|
|
58175
|
-
children: stats.map((stat, index) => /* @__PURE__ */ jsxs(
|
|
58162
|
+
children: stats.map((stat, index) => /* @__PURE__ */ jsxs(React27.Fragment, { children: [
|
|
58176
58163
|
index > 0 && /* @__PURE__ */ jsx("div", { className: "h-12 w-px bg-border hidden md:flex" }),
|
|
58177
58164
|
/* @__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: [
|
|
58178
58165
|
/* @__PURE__ */ jsxs(
|
|
@@ -58531,7 +58518,7 @@ function ComparisonTableTwoColumn({
|
|
|
58531
58518
|
patternOpacity,
|
|
58532
58519
|
optixFlowConfig
|
|
58533
58520
|
}) {
|
|
58534
|
-
const tableContent =
|
|
58521
|
+
const tableContent = React27.useMemo(() => {
|
|
58535
58522
|
if (tableSlot) return tableSlot;
|
|
58536
58523
|
if (!rows || rows.length === 0) return null;
|
|
58537
58524
|
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(
|
|
@@ -58561,7 +58548,7 @@ function ComparisonTableTwoColumn({
|
|
|
58561
58548
|
optixFlowConfig
|
|
58562
58549
|
}
|
|
58563
58550
|
) : optionBLabel && (typeof optionBLabel === "string" ? /* @__PURE__ */ jsx("span", { className: "text-lg font-semibold", children: optionBLabel }) : optionBLabel) }),
|
|
58564
|
-
rows.map((row, idx) => /* @__PURE__ */ jsxs(
|
|
58551
|
+
rows.map((row, idx) => /* @__PURE__ */ jsxs(React27.Fragment, { children: [
|
|
58565
58552
|
/* @__PURE__ */ jsx("div", { className: "flex items-center border-b p-3 text-base font-medium md:p-4 md:text-lg", children: row.label }),
|
|
58566
58553
|
/* @__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: [
|
|
58567
58554
|
row.hasIcon && /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/circle-check-big", size: 20, className: "text-success" }),
|
|
@@ -58590,14 +58577,14 @@ function ComparisonTableTwoColumn({
|
|
|
58590
58577
|
optionBLabel,
|
|
58591
58578
|
optixFlowConfig
|
|
58592
58579
|
]);
|
|
58593
|
-
const headingContent =
|
|
58580
|
+
const headingContent = React27.useMemo(() => {
|
|
58594
58581
|
if (!heading) return null;
|
|
58595
58582
|
if (typeof heading === "string") {
|
|
58596
58583
|
return /* @__PURE__ */ jsx("h1", { className: cn("mb-8 text-3xl font-bold md:mb-12 md:text-5xl", headingClassName), children: heading });
|
|
58597
58584
|
}
|
|
58598
58585
|
return /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading });
|
|
58599
58586
|
}, [heading, headingClassName]);
|
|
58600
|
-
const descriptionContent =
|
|
58587
|
+
const descriptionContent = React27.useMemo(() => {
|
|
58601
58588
|
if (!description) return null;
|
|
58602
58589
|
if (typeof description === "string") {
|
|
58603
58590
|
return /* @__PURE__ */ jsx("p", { className: cn("mb-8 text-muted-foreground md:text-lg", descriptionClassName), children: description });
|
|
@@ -58644,7 +58631,7 @@ function ComparisonFeatureCards({
|
|
|
58644
58631
|
patternOpacity,
|
|
58645
58632
|
optixFlowConfig
|
|
58646
58633
|
}) {
|
|
58647
|
-
const renderCard =
|
|
58634
|
+
const renderCard = React27.useCallback(
|
|
58648
58635
|
(product, isHighlighted) => /* @__PURE__ */ jsxs(
|
|
58649
58636
|
"div",
|
|
58650
58637
|
{
|
|
@@ -58700,7 +58687,7 @@ function ComparisonFeatureCards({
|
|
|
58700
58687
|
),
|
|
58701
58688
|
[cardClassName, optixFlowConfig]
|
|
58702
58689
|
);
|
|
58703
|
-
const cardsContent =
|
|
58690
|
+
const cardsContent = React27.useMemo(() => {
|
|
58704
58691
|
if (cardsSlot) return cardsSlot;
|
|
58705
58692
|
if (!productA || !productB) return null;
|
|
58706
58693
|
return /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
@@ -58708,28 +58695,28 @@ function ComparisonFeatureCards({
|
|
|
58708
58695
|
renderCard(productB, productB.highlighted ?? false)
|
|
58709
58696
|
] });
|
|
58710
58697
|
}, [cardsSlot, productA, productB, renderCard]);
|
|
58711
|
-
const headingContent =
|
|
58698
|
+
const headingContent = React27.useMemo(() => {
|
|
58712
58699
|
if (!heading) return null;
|
|
58713
58700
|
if (typeof heading === "string") {
|
|
58714
58701
|
return /* @__PURE__ */ jsx("h1", { className: cn("mb-6 text-4xl font-semibold md:text-7xl", headingClassName), children: heading });
|
|
58715
58702
|
}
|
|
58716
58703
|
return /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading });
|
|
58717
58704
|
}, [heading, headingClassName]);
|
|
58718
|
-
const descriptionContent =
|
|
58705
|
+
const descriptionContent = React27.useMemo(() => {
|
|
58719
58706
|
if (!description) return null;
|
|
58720
58707
|
if (typeof description === "string") {
|
|
58721
58708
|
return /* @__PURE__ */ jsx("p", { className: cn("mx-auto max-w-4xl text-muted-foreground md:text-xl", descriptionClassName), children: description });
|
|
58722
58709
|
}
|
|
58723
58710
|
return /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description });
|
|
58724
58711
|
}, [description, descriptionClassName]);
|
|
58725
|
-
const suitabilityContent =
|
|
58712
|
+
const suitabilityContent = React27.useMemo(() => {
|
|
58726
58713
|
if (!suitabilityTitle && !suitabilityDescription) return null;
|
|
58727
58714
|
return /* @__PURE__ */ jsxs("div", { className: suitabilityClassName, children: [
|
|
58728
58715
|
suitabilityTitle && (typeof suitabilityTitle === "string" ? /* @__PURE__ */ jsx("h2", { className: "mb-4 text-3xl font-semibold", children: suitabilityTitle }) : suitabilityTitle),
|
|
58729
58716
|
suitabilityDescription && (typeof suitabilityDescription === "string" ? /* @__PURE__ */ jsx("p", { className: "leading-6 text-muted-foreground md:text-lg", children: suitabilityDescription }) : suitabilityDescription)
|
|
58730
58717
|
] });
|
|
58731
58718
|
}, [suitabilityTitle, suitabilityDescription, suitabilityClassName]);
|
|
58732
|
-
const differencesContent =
|
|
58719
|
+
const differencesContent = React27.useMemo(() => {
|
|
58733
58720
|
if (!differencesTitle && !differencesDescription) return null;
|
|
58734
58721
|
return /* @__PURE__ */ jsxs("div", { className: cn("mt-16", differencesClassName), children: [
|
|
58735
58722
|
differencesTitle && (typeof differencesTitle === "string" ? /* @__PURE__ */ jsx("h2", { className: "mb-4 text-3xl font-semibold", children: differencesTitle }) : differencesTitle),
|
|
@@ -58777,7 +58764,7 @@ function ComparisonGridBadges({
|
|
|
58777
58764
|
pattern,
|
|
58778
58765
|
patternOpacity
|
|
58779
58766
|
}) {
|
|
58780
|
-
const featuresContent =
|
|
58767
|
+
const featuresContent = React27.useMemo(() => {
|
|
58781
58768
|
if (featuresSlot) return featuresSlot;
|
|
58782
58769
|
if (!features || features.length === 0) return null;
|
|
58783
58770
|
return features.map((feature, idx) => /* @__PURE__ */ jsxs(
|
|
@@ -58824,14 +58811,14 @@ function ComparisonGridBadges({
|
|
|
58824
58811
|
idx
|
|
58825
58812
|
));
|
|
58826
58813
|
}, [featuresSlot, features, featureCardClassName, badgeClassName, optionALabel, optionBLabel]);
|
|
58827
|
-
const headingContent =
|
|
58814
|
+
const headingContent = React27.useMemo(() => {
|
|
58828
58815
|
if (!heading) return null;
|
|
58829
58816
|
if (typeof heading === "string") {
|
|
58830
58817
|
return /* @__PURE__ */ jsx("h2", { className: cn("mb-4 text-3xl font-bold md:text-5xl", headingClassName), children: heading });
|
|
58831
58818
|
}
|
|
58832
58819
|
return /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading });
|
|
58833
58820
|
}, [heading, headingClassName]);
|
|
58834
|
-
const descriptionContent =
|
|
58821
|
+
const descriptionContent = React27.useMemo(() => {
|
|
58835
58822
|
if (!description) return null;
|
|
58836
58823
|
if (typeof description === "string") {
|
|
58837
58824
|
return /* @__PURE__ */ jsx("p", { className: cn("mx-auto max-w-2xl text-muted-foreground md:text-lg", descriptionClassName), children: description });
|
|
@@ -58879,7 +58866,7 @@ function ComparisonMetricsRows({
|
|
|
58879
58866
|
pattern,
|
|
58880
58867
|
patternOpacity
|
|
58881
58868
|
}) {
|
|
58882
|
-
const metricsContent =
|
|
58869
|
+
const metricsContent = React27.useMemo(() => {
|
|
58883
58870
|
if (metricsSlot) return metricsSlot;
|
|
58884
58871
|
if (!metrics || metrics.length === 0) return null;
|
|
58885
58872
|
return /* @__PURE__ */ jsx(
|
|
@@ -58919,7 +58906,7 @@ function ComparisonMetricsRows({
|
|
|
58919
58906
|
}
|
|
58920
58907
|
);
|
|
58921
58908
|
}, [metricsSlot, metrics, metricsClassName, metricRowClassName]);
|
|
58922
|
-
const actionsContent =
|
|
58909
|
+
const actionsContent = React27.useMemo(() => {
|
|
58923
58910
|
if (actionsSlot) return actionsSlot;
|
|
58924
58911
|
if (!actions || actions.length === 0) return null;
|
|
58925
58912
|
return /* @__PURE__ */ jsx("div", { className: cn("flex justify-end", actionsClassName), children: actions.map((action, idx) => /* @__PURE__ */ jsxs(
|
|
@@ -58940,7 +58927,7 @@ function ComparisonMetricsRows({
|
|
|
58940
58927
|
idx
|
|
58941
58928
|
)) });
|
|
58942
58929
|
}, [actionsSlot, actions, actionsClassName]);
|
|
58943
|
-
const headingContent =
|
|
58930
|
+
const headingContent = React27.useMemo(() => {
|
|
58944
58931
|
if (!heading) return null;
|
|
58945
58932
|
if (typeof heading === "string") {
|
|
58946
58933
|
return /* @__PURE__ */ jsx(
|
|
@@ -58956,7 +58943,7 @@ function ComparisonMetricsRows({
|
|
|
58956
58943
|
}
|
|
58957
58944
|
return /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading });
|
|
58958
58945
|
}, [heading, headingClassName]);
|
|
58959
|
-
const descriptionContent =
|
|
58946
|
+
const descriptionContent = React27.useMemo(() => {
|
|
58960
58947
|
if (!description) return null;
|
|
58961
58948
|
if (typeof description === "string") {
|
|
58962
58949
|
return /* @__PURE__ */ jsx("p", { className: cn("text-muted-foreground md:text-lg", descriptionClassName), children: description });
|
|
@@ -59019,7 +59006,7 @@ function ComparisonImageCards({
|
|
|
59019
59006
|
patternOpacity,
|
|
59020
59007
|
optixFlowConfig
|
|
59021
59008
|
}) {
|
|
59022
|
-
const renderCard =
|
|
59009
|
+
const renderCard = React27.useCallback(
|
|
59023
59010
|
(option) => /* @__PURE__ */ jsx("div", { className: cn("relative h-full", cardClassName), children: /* @__PURE__ */ jsxs("div", { className: cn(
|
|
59024
59011
|
"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]",
|
|
59025
59012
|
getNestedCardBg(background, "accent"),
|
|
@@ -59043,7 +59030,7 @@ function ComparisonImageCards({
|
|
|
59043
59030
|
] }) }),
|
|
59044
59031
|
[cardClassName, optixFlowConfig]
|
|
59045
59032
|
);
|
|
59046
|
-
const cardsContent =
|
|
59033
|
+
const cardsContent = React27.useMemo(() => {
|
|
59047
59034
|
if (cardsSlot) return cardsSlot;
|
|
59048
59035
|
if (!optionA || !optionB) return null;
|
|
59049
59036
|
return /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
@@ -59061,14 +59048,14 @@ function ComparisonImageCards({
|
|
|
59061
59048
|
)
|
|
59062
59049
|
] });
|
|
59063
59050
|
}, [cardsSlot, optionA, optionB, dividerText, dividerClassName, renderCard]);
|
|
59064
|
-
const headingContent =
|
|
59051
|
+
const headingContent = React27.useMemo(() => {
|
|
59065
59052
|
if (!heading) return null;
|
|
59066
59053
|
if (typeof heading === "string") {
|
|
59067
59054
|
return /* @__PURE__ */ jsx("h2", { className: cn("text-3xl font-medium sm:text-4xl md:text-5xl lg:text-6xl", headingClassName), children: heading });
|
|
59068
59055
|
}
|
|
59069
59056
|
return /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading });
|
|
59070
59057
|
}, [heading, headingClassName]);
|
|
59071
|
-
const descriptionContent =
|
|
59058
|
+
const descriptionContent = React27.useMemo(() => {
|
|
59072
59059
|
if (!description) return null;
|
|
59073
59060
|
if (typeof description === "string") {
|
|
59074
59061
|
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 });
|
|
@@ -59198,7 +59185,7 @@ function ComparisonTableTabs({
|
|
|
59198
59185
|
patternOpacity
|
|
59199
59186
|
}) {
|
|
59200
59187
|
const [selectedTab, setSelectedTab] = useState(models?.[0]?.name || "");
|
|
59201
|
-
const renderStatusIcon =
|
|
59188
|
+
const renderStatusIcon = React27.useCallback((status) => {
|
|
59202
59189
|
if (status === "positive") {
|
|
59203
59190
|
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" }) });
|
|
59204
59191
|
}
|
|
@@ -59207,7 +59194,7 @@ function ComparisonTableTabs({
|
|
|
59207
59194
|
}
|
|
59208
59195
|
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" }) });
|
|
59209
59196
|
}, []);
|
|
59210
|
-
const tableContent =
|
|
59197
|
+
const tableContent = React27.useMemo(() => {
|
|
59211
59198
|
if (tableSlot) return tableSlot;
|
|
59212
59199
|
if (!models || models.length === 0 || !features || features.length === 0) return null;
|
|
59213
59200
|
return /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
@@ -59266,14 +59253,14 @@ function ComparisonTableTabs({
|
|
|
59266
59253
|
] }) })
|
|
59267
59254
|
] });
|
|
59268
59255
|
}, [tableSlot, models, features, tabsClassName, tableClassName, tableHeaderClassName, tableCellClassName, selectedTab, renderStatusIcon]);
|
|
59269
|
-
const headingContent =
|
|
59256
|
+
const headingContent = React27.useMemo(() => {
|
|
59270
59257
|
if (!heading) return null;
|
|
59271
59258
|
if (typeof heading === "string") {
|
|
59272
59259
|
return /* @__PURE__ */ jsx("h2", { className: cn("text-3xl font-bold md:text-4xl lg:text-5xl", headingClassName), children: heading });
|
|
59273
59260
|
}
|
|
59274
59261
|
return /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading });
|
|
59275
59262
|
}, [heading, headingClassName]);
|
|
59276
|
-
const descriptionContent =
|
|
59263
|
+
const descriptionContent = React27.useMemo(() => {
|
|
59277
59264
|
if (!description) return null;
|
|
59278
59265
|
if (typeof description === "string") {
|
|
59279
59266
|
return /* @__PURE__ */ jsx("p", { className: cn("mt-4 text-muted-foreground md:text-lg", descriptionClassName), children: description });
|
|
@@ -59364,7 +59351,7 @@ function ComparisonTableTooltips({
|
|
|
59364
59351
|
pattern,
|
|
59365
59352
|
patternOpacity
|
|
59366
59353
|
}) {
|
|
59367
|
-
const renderCellContent =
|
|
59354
|
+
const renderCellContent = React27.useCallback(
|
|
59368
59355
|
(cell, isHighlighted) => {
|
|
59369
59356
|
if (typeof cell === "string") {
|
|
59370
59357
|
return cell;
|
|
@@ -59391,7 +59378,7 @@ function ComparisonTableTooltips({
|
|
|
59391
59378
|
},
|
|
59392
59379
|
[]
|
|
59393
59380
|
);
|
|
59394
|
-
const tableContent =
|
|
59381
|
+
const tableContent = React27.useMemo(() => {
|
|
59395
59382
|
if (tableSlot) return tableSlot;
|
|
59396
59383
|
if (!rows || rows.length === 0) return null;
|
|
59397
59384
|
return /* @__PURE__ */ jsxs(Table, { className: cn("rounded border text-left shadow-lg", tableClassName), children: [
|
|
@@ -59417,14 +59404,14 @@ function ComparisonTableTooltips({
|
|
|
59417
59404
|
] }, idx)) })
|
|
59418
59405
|
] });
|
|
59419
59406
|
}, [tableSlot, rows, tableClassName, tableHeaderClassName, tableCellClassName, optionALabel, optionBLabel, renderCellContent]);
|
|
59420
|
-
const headingContent =
|
|
59407
|
+
const headingContent = React27.useMemo(() => {
|
|
59421
59408
|
if (!heading) return null;
|
|
59422
59409
|
if (typeof heading === "string") {
|
|
59423
59410
|
return /* @__PURE__ */ jsx("h2", { className: cn("mb-4 text-center text-4xl font-semibold", headingClassName), children: heading });
|
|
59424
59411
|
}
|
|
59425
59412
|
return /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading });
|
|
59426
59413
|
}, [heading, headingClassName]);
|
|
59427
|
-
const descriptionContent =
|
|
59414
|
+
const descriptionContent = React27.useMemo(() => {
|
|
59428
59415
|
if (!description) return null;
|
|
59429
59416
|
if (typeof description === "string") {
|
|
59430
59417
|
return /* @__PURE__ */ jsx("p", { className: cn("mb-8 text-center text-muted-foreground", descriptionClassName), children: description });
|
|
@@ -59466,7 +59453,7 @@ function ComparisonFeatureGrid({
|
|
|
59466
59453
|
pattern,
|
|
59467
59454
|
patternOpacity
|
|
59468
59455
|
}) {
|
|
59469
|
-
const renderStatusIcon =
|
|
59456
|
+
const renderStatusIcon = React27.useCallback((status) => {
|
|
59470
59457
|
if (status === true) {
|
|
59471
59458
|
return /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/check", size: 20, className: "text-success" });
|
|
59472
59459
|
}
|
|
@@ -59475,7 +59462,7 @@ function ComparisonFeatureGrid({
|
|
|
59475
59462
|
}
|
|
59476
59463
|
return /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/x", size: 20, className: "text-destructive" });
|
|
59477
59464
|
}, []);
|
|
59478
|
-
const gridContent =
|
|
59465
|
+
const gridContent = React27.useMemo(() => {
|
|
59479
59466
|
if (gridSlot) return gridSlot;
|
|
59480
59467
|
if (!features || features.length === 0) return null;
|
|
59481
59468
|
return /* @__PURE__ */ jsxs(
|
|
@@ -59541,14 +59528,14 @@ function ComparisonFeatureGrid({
|
|
|
59541
59528
|
optionBLabel,
|
|
59542
59529
|
renderStatusIcon
|
|
59543
59530
|
]);
|
|
59544
|
-
const headingContent =
|
|
59531
|
+
const headingContent = React27.useMemo(() => {
|
|
59545
59532
|
if (!heading) return null;
|
|
59546
59533
|
if (typeof heading === "string") {
|
|
59547
59534
|
return /* @__PURE__ */ jsx("h2", { className: cn("mb-4 text-center text-4xl font-semibold", headingClassName), children: heading });
|
|
59548
59535
|
}
|
|
59549
59536
|
return /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading });
|
|
59550
59537
|
}, [heading, headingClassName]);
|
|
59551
|
-
const descriptionContent =
|
|
59538
|
+
const descriptionContent = React27.useMemo(() => {
|
|
59552
59539
|
if (!description) return null;
|
|
59553
59540
|
if (typeof description === "string") {
|
|
59554
59541
|
return /* @__PURE__ */ jsx("p", { className: cn("mb-8 text-center text-muted-foreground", descriptionClassName), children: description });
|
|
@@ -59592,7 +59579,7 @@ function ComparisonAiModels({
|
|
|
59592
59579
|
optixFlowConfig
|
|
59593
59580
|
}) {
|
|
59594
59581
|
const [hoveredModel, setHoveredModel] = useState(null);
|
|
59595
|
-
const renderStatusIcon =
|
|
59582
|
+
const renderStatusIcon = React27.useCallback((status) => {
|
|
59596
59583
|
if (status === "best") {
|
|
59597
59584
|
return /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/circle-check", size: 16, className: "text-success" });
|
|
59598
59585
|
}
|
|
@@ -59601,7 +59588,7 @@ function ComparisonAiModels({
|
|
|
59601
59588
|
}
|
|
59602
59589
|
return /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/minus", size: 16, className: "text-muted-foreground" });
|
|
59603
59590
|
}, []);
|
|
59604
|
-
const getCellClassName =
|
|
59591
|
+
const getCellClassName = React27.useCallback(
|
|
59605
59592
|
(status, modelKey) => {
|
|
59606
59593
|
const baseClass = "cursor-pointer py-4 text-center font-medium transition-all duration-300";
|
|
59607
59594
|
let statusClass = "";
|
|
@@ -59622,7 +59609,7 @@ function ComparisonAiModels({
|
|
|
59622
59609
|
},
|
|
59623
59610
|
[hoveredModel]
|
|
59624
59611
|
);
|
|
59625
|
-
const getSummaryCardClassName =
|
|
59612
|
+
const getSummaryCardClassName = React27.useCallback(
|
|
59626
59613
|
(modelKey) => {
|
|
59627
59614
|
const baseClass = "rounded border border-border/30 bg-background/50 p-3 transition-all duration-300";
|
|
59628
59615
|
if (hoveredModel === modelKey) {
|
|
@@ -59637,7 +59624,7 @@ function ComparisonAiModels({
|
|
|
59637
59624
|
},
|
|
59638
59625
|
[hoveredModel]
|
|
59639
59626
|
);
|
|
59640
|
-
const tableContent =
|
|
59627
|
+
const tableContent = React27.useMemo(() => {
|
|
59641
59628
|
if (tableSlot) return tableSlot;
|
|
59642
59629
|
if (!models || !comparisonData || comparisonData.length === 0) return null;
|
|
59643
59630
|
return /* @__PURE__ */ jsx(
|
|
@@ -59715,7 +59702,7 @@ function ComparisonAiModels({
|
|
|
59715
59702
|
getCellClassName,
|
|
59716
59703
|
renderStatusIcon
|
|
59717
59704
|
]);
|
|
59718
|
-
const analysisContent =
|
|
59705
|
+
const analysisContent = React27.useMemo(() => {
|
|
59719
59706
|
if (analysisSlot) return analysisSlot;
|
|
59720
59707
|
if (!models) return null;
|
|
59721
59708
|
return /* @__PURE__ */ jsx("div", { className: cn(
|
|
@@ -59756,14 +59743,14 @@ function ComparisonAiModels({
|
|
|
59756
59743
|
] })
|
|
59757
59744
|
] }) });
|
|
59758
59745
|
}, [analysisSlot, models, analysisClassName, getSummaryCardClassName]);
|
|
59759
|
-
const headingContent =
|
|
59746
|
+
const headingContent = React27.useMemo(() => {
|
|
59760
59747
|
if (!heading) return null;
|
|
59761
59748
|
if (typeof heading === "string") {
|
|
59762
59749
|
return /* @__PURE__ */ jsx("h2", { className: cn("text-3xl font-bold md:text-4xl lg:text-5xl", headingClassName), children: heading });
|
|
59763
59750
|
}
|
|
59764
59751
|
return /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading });
|
|
59765
59752
|
}, [heading, headingClassName]);
|
|
59766
|
-
const descriptionContent =
|
|
59753
|
+
const descriptionContent = React27.useMemo(() => {
|
|
59767
59754
|
if (!description) return null;
|
|
59768
59755
|
if (typeof description === "string") {
|
|
59769
59756
|
return /* @__PURE__ */ jsx("p", { className: cn("mt-4 text-muted-foreground md:text-lg", descriptionClassName), children: description });
|
|
@@ -59813,7 +59800,7 @@ function ComparisonLegacyModern({
|
|
|
59813
59800
|
pattern,
|
|
59814
59801
|
patternOpacity
|
|
59815
59802
|
}) {
|
|
59816
|
-
const columnsContent =
|
|
59803
|
+
const columnsContent = React27.useMemo(() => {
|
|
59817
59804
|
if (columnsSlot) return columnsSlot;
|
|
59818
59805
|
if (!legacyFeatures || legacyFeatures.length === 0 || !modernFeatures || modernFeatures.length === 0)
|
|
59819
59806
|
return null;
|
|
@@ -59825,7 +59812,7 @@ function ComparisonLegacyModern({
|
|
|
59825
59812
|
legacyColumnClassName
|
|
59826
59813
|
), children: [
|
|
59827
59814
|
legacyTitle && (typeof legacyTitle === "string" ? /* @__PURE__ */ jsx("h3", { className: "text-2xl font-medium", children: legacyTitle }) : legacyTitle),
|
|
59828
|
-
/* @__PURE__ */ jsx("ul", { className: "mt-9 space-y-3", children: legacyFeatures.map((feature, idx) => /* @__PURE__ */ jsxs(
|
|
59815
|
+
/* @__PURE__ */ jsx("ul", { className: "mt-9 space-y-3", children: legacyFeatures.map((feature, idx) => /* @__PURE__ */ jsxs(React27.Fragment, { children: [
|
|
59829
59816
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
59830
59817
|
/* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/x", size: 16, className: "my-1.5 shrink-0 text-muted-foreground" }),
|
|
59831
59818
|
/* @__PURE__ */ jsx("li", { className: "text-sm", children: feature.text })
|
|
@@ -59842,7 +59829,7 @@ function ComparisonLegacyModern({
|
|
|
59842
59829
|
),
|
|
59843
59830
|
children: [
|
|
59844
59831
|
modernTitle && (typeof modernTitle === "string" ? /* @__PURE__ */ jsx("h3", { className: "text-2xl font-medium", children: modernTitle }) : modernTitle),
|
|
59845
|
-
/* @__PURE__ */ jsx("ul", { className: "mt-9 space-y-3", children: modernFeatures.map((feature, idx) => /* @__PURE__ */ jsxs(
|
|
59832
|
+
/* @__PURE__ */ jsx("ul", { className: "mt-9 space-y-3", children: modernFeatures.map((feature, idx) => /* @__PURE__ */ jsxs(React27.Fragment, { children: [
|
|
59846
59833
|
/* @__PURE__ */ jsxs("li", { className: "flex items-center gap-2 text-sm", children: [
|
|
59847
59834
|
/* @__PURE__ */ jsx("span", { className: "text-lg", children: feature.emoji }),
|
|
59848
59835
|
feature.text
|
|
@@ -59854,7 +59841,7 @@ function ComparisonLegacyModern({
|
|
|
59854
59841
|
)
|
|
59855
59842
|
] });
|
|
59856
59843
|
}, [columnsSlot, legacyFeatures, modernFeatures, legacyTitle, modernTitle, legacyColumnClassName, modernColumnClassName]);
|
|
59857
|
-
const headingContent =
|
|
59844
|
+
const headingContent = React27.useMemo(() => {
|
|
59858
59845
|
if (!heading && !headingHighlight) return null;
|
|
59859
59846
|
return /* @__PURE__ */ jsxs("h2", { className: cn("text-4xl font-medium md:text-5xl lg:text-7xl", headingClassName), children: [
|
|
59860
59847
|
heading && (typeof heading === "string" ? /* @__PURE__ */ jsxs("span", { className: "text-muted-foreground", children: [
|
|
@@ -59867,7 +59854,7 @@ function ComparisonLegacyModern({
|
|
|
59867
59854
|
] }) : headingHighlight)
|
|
59868
59855
|
] });
|
|
59869
59856
|
}, [heading, headingHighlight, headingClassName, headingHighlightClassName]);
|
|
59870
|
-
const descriptionContent =
|
|
59857
|
+
const descriptionContent = React27.useMemo(() => {
|
|
59871
59858
|
if (!description) return null;
|
|
59872
59859
|
if (typeof description === "string") {
|
|
59873
59860
|
return /* @__PURE__ */ jsx("p", { className: cn("text-lg", descriptionClassName), children: description });
|
|
@@ -60040,7 +60027,7 @@ var NavbarMobileMenu = ({
|
|
|
60040
60027
|
closeIconClassName,
|
|
60041
60028
|
title = "Mobile Navigation"
|
|
60042
60029
|
}) => {
|
|
60043
|
-
|
|
60030
|
+
React27.useEffect(() => {
|
|
60044
60031
|
if (open) {
|
|
60045
60032
|
const originalOverflow = document.body.style.overflow;
|
|
60046
60033
|
document.body.style.overflow = "hidden";
|
|
@@ -60269,7 +60256,7 @@ var NavbarDropdownMenu = ({
|
|
|
60269
60256
|
patternOpacity,
|
|
60270
60257
|
optixFlowConfig
|
|
60271
60258
|
}) => {
|
|
60272
|
-
const [open, setOpen] =
|
|
60259
|
+
const [open, setOpen] = React27.useState(false);
|
|
60273
60260
|
const renderAuthActions = useMemo(() => {
|
|
60274
60261
|
if (authActionsSlot) return authActionsSlot;
|
|
60275
60262
|
if (!authActions || authActions.length === 0) return null;
|
|
@@ -60495,7 +60482,7 @@ var NavbarCenteredMenu = ({
|
|
|
60495
60482
|
patternOpacity,
|
|
60496
60483
|
optixFlowConfig
|
|
60497
60484
|
}) => {
|
|
60498
|
-
const [open, setOpen] =
|
|
60485
|
+
const [open, setOpen] = React27.useState(false);
|
|
60499
60486
|
const renderAuthActions = useMemo(() => {
|
|
60500
60487
|
if (authActionsSlot) return authActionsSlot;
|
|
60501
60488
|
if (!authActions || authActions.length === 0) return null;
|
|
@@ -60635,7 +60622,7 @@ var DesktopMenuItem = ({
|
|
|
60635
60622
|
index,
|
|
60636
60623
|
optixFlowConfig
|
|
60637
60624
|
}) => {
|
|
60638
|
-
const imagesRef =
|
|
60625
|
+
const imagesRef = React27.useRef([]);
|
|
60639
60626
|
const layout = link.layout || "simple-grid";
|
|
60640
60627
|
const handleMouseEnter = (event) => {
|
|
60641
60628
|
const index2 = Number(event.currentTarget.getAttribute("data-index"));
|
|
@@ -61870,7 +61857,7 @@ var NavbarFeatureGrid = ({
|
|
|
61870
61857
|
patternOpacity,
|
|
61871
61858
|
optixFlowConfig
|
|
61872
61859
|
}) => {
|
|
61873
|
-
const [open, setOpen] =
|
|
61860
|
+
const [open, setOpen] = React27.useState(false);
|
|
61874
61861
|
const renderAuthActions = useMemo(() => {
|
|
61875
61862
|
if (authActionsSlot) return authActionsSlot;
|
|
61876
61863
|
if (!authActions || authActions.length === 0) return null;
|
|
@@ -65080,7 +65067,7 @@ var DesktopMenuItem7 = ({
|
|
|
65080
65067
|
if (item.groups && item.groups.length > 0) {
|
|
65081
65068
|
return /* @__PURE__ */ jsxs(NavigationMenuItem, { value: `${index}`, children: [
|
|
65082
65069
|
/* @__PURE__ */ jsx(NavigationMenuTrigger, { children: item.label }),
|
|
65083
|
-
/* @__PURE__ */ jsx(NavigationMenuContent, { className: "p-0", children: /* @__PURE__ */ jsx("div", { className: "flex", children: item.groups.map((group, groupIndex) => /* @__PURE__ */ jsxs(
|
|
65070
|
+
/* @__PURE__ */ jsx(NavigationMenuContent, { className: "p-0", children: /* @__PURE__ */ jsx("div", { className: "flex", children: item.groups.map((group, groupIndex) => /* @__PURE__ */ jsxs(React27.Fragment, { children: [
|
|
65084
65071
|
groupIndex > 0 && /* @__PURE__ */ jsx(
|
|
65085
65072
|
Separator,
|
|
65086
65073
|
{
|
|
@@ -65832,7 +65819,7 @@ var NavbarSimpleLinks = ({
|
|
|
65832
65819
|
const renderNavItems = useMemo(() => {
|
|
65833
65820
|
if (navItemsSlot) return navItemsSlot;
|
|
65834
65821
|
if (!navItems || navItems.length === 0) return null;
|
|
65835
|
-
return navItems.map((item) => /* @__PURE__ */ jsx(
|
|
65822
|
+
return navItems.map((item) => /* @__PURE__ */ jsx(React27.Fragment, { children: /* @__PURE__ */ jsx(NavigationMenuItem, { children: /* @__PURE__ */ jsx(
|
|
65836
65823
|
NavigationMenuLink,
|
|
65837
65824
|
{
|
|
65838
65825
|
"data-nav-item": item.name,
|
|
@@ -70861,7 +70848,7 @@ function PricingFullComparison({
|
|
|
70861
70848
|
resolvedPlanIds[index]
|
|
70862
70849
|
))
|
|
70863
70850
|
] }) }),
|
|
70864
|
-
/* @__PURE__ */ jsx("tbody", { children: categories.map((category) => /* @__PURE__ */ jsxs(
|
|
70851
|
+
/* @__PURE__ */ jsx("tbody", { children: categories.map((category) => /* @__PURE__ */ jsxs(React27.Fragment, { children: [
|
|
70865
70852
|
/* @__PURE__ */ jsx("tr", { className: cn(getNestedCardBg(background), getNestedCardTextColor(background), categoryRowClassName), children: /* @__PURE__ */ jsx(
|
|
70866
70853
|
"td",
|
|
70867
70854
|
{
|
|
@@ -75462,9 +75449,9 @@ function ProcessStickySteps({
|
|
|
75462
75449
|
);
|
|
75463
75450
|
}
|
|
75464
75451
|
var usePrevious = (value) => {
|
|
75465
|
-
const [prev, setPrev] =
|
|
75466
|
-
const ref =
|
|
75467
|
-
|
|
75452
|
+
const [prev, setPrev] = React27.useState(void 0);
|
|
75453
|
+
const ref = React27.useRef(value);
|
|
75454
|
+
React27.useEffect(() => {
|
|
75468
75455
|
setPrev(ref.current);
|
|
75469
75456
|
ref.current = value;
|
|
75470
75457
|
}, [value]);
|
|
@@ -75477,12 +75464,12 @@ var ProcessCard = ({
|
|
|
75477
75464
|
itemClassName,
|
|
75478
75465
|
background
|
|
75479
75466
|
}) => {
|
|
75480
|
-
const ref =
|
|
75467
|
+
const ref = React27.useRef(null);
|
|
75481
75468
|
const itemInView = useInView(ref, {
|
|
75482
75469
|
amount: 0,
|
|
75483
75470
|
margin: "0px 0px -60% 0px"
|
|
75484
75471
|
});
|
|
75485
|
-
|
|
75472
|
+
React27.useEffect(() => {
|
|
75486
75473
|
if (itemInView) {
|
|
75487
75474
|
setActive(index);
|
|
75488
75475
|
}
|
|
@@ -75532,7 +75519,7 @@ function ProcessScrollImage({
|
|
|
75532
75519
|
ctaText,
|
|
75533
75520
|
ctaUrl
|
|
75534
75521
|
}) {
|
|
75535
|
-
const [active, setActive] =
|
|
75522
|
+
const [active, setActive] = React27.useState(0);
|
|
75536
75523
|
const previousActive = usePrevious(active);
|
|
75537
75524
|
const resolvedHeading = title ?? heading;
|
|
75538
75525
|
const resolvedActions = actions ?? (ctaText && ctaUrl ? [
|
|
@@ -75716,7 +75703,7 @@ var ProcessCard2 = ({
|
|
|
75716
75703
|
hoverImageClassName,
|
|
75717
75704
|
background
|
|
75718
75705
|
}) => {
|
|
75719
|
-
const [isHovered, setIsHovered] =
|
|
75706
|
+
const [isHovered, setIsHovered] = React27.useState(false);
|
|
75720
75707
|
const titleText = typeof step.title === "string" ? step.title : `Step ${index + 1}`;
|
|
75721
75708
|
return /* @__PURE__ */ jsxs(
|
|
75722
75709
|
"li",
|
|
@@ -76040,7 +76027,7 @@ function ProcessExpandableTimeline({
|
|
|
76040
76027
|
// Backwards compatibility
|
|
76041
76028
|
title
|
|
76042
76029
|
}) {
|
|
76043
|
-
const [expandedIndex, setExpandedIndex] =
|
|
76030
|
+
const [expandedIndex, setExpandedIndex] = React27.useState(null);
|
|
76044
76031
|
const resolvedHeading = title ?? heading;
|
|
76045
76032
|
const toggleExpand = (index) => {
|
|
76046
76033
|
setExpandedIndex(expandedIndex === index ? null : index);
|
|
@@ -80811,7 +80798,7 @@ function ListAchievementsShowcase({
|
|
|
80811
80798
|
if (!items || items.length === 0) return null;
|
|
80812
80799
|
return /* @__PURE__ */ jsxs("div", { className: cn("flex flex-col", itemsClassName), children: [
|
|
80813
80800
|
/* @__PURE__ */ jsx(Separator, {}),
|
|
80814
|
-
items.map((item, index) => /* @__PURE__ */ jsxs(
|
|
80801
|
+
items.map((item, index) => /* @__PURE__ */ jsxs(React27.Fragment, { children: [
|
|
80815
80802
|
/* @__PURE__ */ jsxs(
|
|
80816
80803
|
"div",
|
|
80817
80804
|
{
|
|
@@ -80931,7 +80918,7 @@ function ListCareerTimeline({
|
|
|
80931
80918
|
const renderExperiences = useMemo(() => {
|
|
80932
80919
|
if (experiencesSlot) return experiencesSlot;
|
|
80933
80920
|
if (!experiences || experiences.length === 0) return null;
|
|
80934
|
-
return /* @__PURE__ */ jsx("div", { className: experiencesClassName, children: experiences.map((experience, idx) => /* @__PURE__ */ jsxs(
|
|
80921
|
+
return /* @__PURE__ */ jsx("div", { className: experiencesClassName, children: experiences.map((experience, idx) => /* @__PURE__ */ jsxs(React27.Fragment, { children: [
|
|
80935
80922
|
/* @__PURE__ */ jsx(Separator, {}),
|
|
80936
80923
|
/* @__PURE__ */ jsxs(
|
|
80937
80924
|
"div",
|
|
@@ -80952,7 +80939,7 @@ function ListCareerTimeline({
|
|
|
80952
80939
|
const renderAwards = useMemo(() => {
|
|
80953
80940
|
if (awardsSlot) return awardsSlot;
|
|
80954
80941
|
if (!awards || awards.length === 0) return null;
|
|
80955
|
-
return /* @__PURE__ */ jsx("div", { className: awardsClassName, children: awards.map((award, idx) => /* @__PURE__ */ jsxs(
|
|
80942
|
+
return /* @__PURE__ */ jsx("div", { className: awardsClassName, children: awards.map((award, idx) => /* @__PURE__ */ jsxs(React27.Fragment, { children: [
|
|
80956
80943
|
/* @__PURE__ */ jsx(Separator, {}),
|
|
80957
80944
|
/* @__PURE__ */ jsxs(
|
|
80958
80945
|
"div",
|
|
@@ -81087,7 +81074,7 @@ function ListMetricsDashboard({
|
|
|
81087
81074
|
activeCategory: controlledActiveCategory,
|
|
81088
81075
|
onActiveCategoryChange
|
|
81089
81076
|
}) {
|
|
81090
|
-
const [internalActiveTab, setInternalActiveTab] =
|
|
81077
|
+
const [internalActiveTab, setInternalActiveTab] = React27.useState("all");
|
|
81091
81078
|
const activeTab = controlledActiveCategory ?? internalActiveTab;
|
|
81092
81079
|
const handleTabChange = (value) => {
|
|
81093
81080
|
if (onActiveCategoryChange) {
|
|
@@ -81571,7 +81558,7 @@ function ListSearchableGrid({
|
|
|
81571
81558
|
searchTerm: controlledSearchTerm,
|
|
81572
81559
|
onSearchTermChange
|
|
81573
81560
|
}) {
|
|
81574
|
-
const [internalSearchTerm, setInternalSearchTerm] =
|
|
81561
|
+
const [internalSearchTerm, setInternalSearchTerm] = React27.useState("");
|
|
81575
81562
|
const searchTerm = controlledSearchTerm ?? internalSearchTerm;
|
|
81576
81563
|
const handleSearchChange = (value) => {
|
|
81577
81564
|
if (onSearchTermChange) {
|
|
@@ -81580,7 +81567,7 @@ function ListSearchableGrid({
|
|
|
81580
81567
|
setInternalSearchTerm(value);
|
|
81581
81568
|
}
|
|
81582
81569
|
};
|
|
81583
|
-
const filteredItems =
|
|
81570
|
+
const filteredItems = React27.useMemo(() => {
|
|
81584
81571
|
if (!searchTerm) {
|
|
81585
81572
|
return items ?? [];
|
|
81586
81573
|
}
|
|
@@ -81743,7 +81730,7 @@ function ListSearchableGrid({
|
|
|
81743
81730
|
}
|
|
81744
81731
|
);
|
|
81745
81732
|
}
|
|
81746
|
-
var { useMemo: useMemo412 } =
|
|
81733
|
+
var { useMemo: useMemo412 } = React27;
|
|
81747
81734
|
function OfferModalNewsletterDiscount({
|
|
81748
81735
|
title,
|
|
81749
81736
|
emailPlaceholder,
|
|
@@ -81892,7 +81879,7 @@ function OfferModalNewsletterDiscount({
|
|
|
81892
81879
|
}
|
|
81893
81880
|
) });
|
|
81894
81881
|
}
|
|
81895
|
-
var { useMemo: useMemo413 } =
|
|
81882
|
+
var { useMemo: useMemo413 } = React27;
|
|
81896
81883
|
function OfferModalMembershipImage({
|
|
81897
81884
|
overline,
|
|
81898
81885
|
title,
|
|
@@ -82181,7 +82168,7 @@ function SheetDescription({
|
|
|
82181
82168
|
}
|
|
82182
82169
|
);
|
|
82183
82170
|
}
|
|
82184
|
-
var { useMemo: useMemo414 } =
|
|
82171
|
+
var { useMemo: useMemo414 } = React27;
|
|
82185
82172
|
function OfferModalSheetNewsletter({
|
|
82186
82173
|
logo,
|
|
82187
82174
|
logoSlot,
|
|
@@ -82930,10 +82917,10 @@ function ProjectDetailSidebarNavigation(props) {
|
|
|
82930
82917
|
heroImageClassName,
|
|
82931
82918
|
metadataClassName
|
|
82932
82919
|
} = props;
|
|
82933
|
-
const [activeSection, setActiveSection] =
|
|
82920
|
+
const [activeSection, setActiveSection] = React27.useState(
|
|
82934
82921
|
sections?.[0]?.id || ""
|
|
82935
82922
|
);
|
|
82936
|
-
|
|
82923
|
+
React27.useEffect(() => {
|
|
82937
82924
|
const handleScroll = () => {
|
|
82938
82925
|
const sectionElements = sections?.map(
|
|
82939
82926
|
(section) => document.getElementById(section.id)
|
|
@@ -85793,7 +85780,7 @@ function ProjectDetailTabbedCaseStudy(props) {
|
|
|
85793
85780
|
testimonialClassName,
|
|
85794
85781
|
toolsClassName
|
|
85795
85782
|
} = props;
|
|
85796
|
-
const [activeTab, setActiveTab] =
|
|
85783
|
+
const [activeTab, setActiveTab] = React27.useState(tabs?.[0]?.id || "");
|
|
85797
85784
|
const renderedBackAction = useMemo(() => {
|
|
85798
85785
|
if (backActionSlot) return backActionSlot;
|
|
85799
85786
|
if (!backAction) return null;
|
|
@@ -86181,7 +86168,7 @@ function RevealImage({
|
|
|
86181
86168
|
index,
|
|
86182
86169
|
optixFlowConfig
|
|
86183
86170
|
}) {
|
|
86184
|
-
const ref =
|
|
86171
|
+
const ref = React27.useRef(null);
|
|
86185
86172
|
const { scrollYProgress } = useScroll({
|
|
86186
86173
|
target: ref,
|
|
86187
86174
|
offset: ["start end", "end start"]
|
|
@@ -86376,7 +86363,7 @@ function ParallaxSection({
|
|
|
86376
86363
|
index,
|
|
86377
86364
|
optixFlowConfig
|
|
86378
86365
|
}) {
|
|
86379
|
-
const ref =
|
|
86366
|
+
const ref = React27.useRef(null);
|
|
86380
86367
|
const { scrollYProgress } = useScroll({
|
|
86381
86368
|
target: ref,
|
|
86382
86369
|
offset: ["start end", "end start"]
|
|
@@ -86449,7 +86436,7 @@ function ProjectDetailParallaxScroll(props) {
|
|
|
86449
86436
|
heroImageClassName,
|
|
86450
86437
|
sectionsClassName
|
|
86451
86438
|
} = props;
|
|
86452
|
-
const heroRef =
|
|
86439
|
+
const heroRef = React27.useRef(null);
|
|
86453
86440
|
const { scrollYProgress } = useScroll({
|
|
86454
86441
|
target: heroRef,
|
|
86455
86442
|
offset: ["start start", "end start"]
|
|
@@ -86987,7 +86974,7 @@ function IndustriesExpandableShowcase({
|
|
|
86987
86974
|
patternClassName,
|
|
86988
86975
|
optixFlowConfig
|
|
86989
86976
|
}) {
|
|
86990
|
-
const [activeContractor, setActiveContractor] =
|
|
86977
|
+
const [activeContractor, setActiveContractor] = React27.useState(
|
|
86991
86978
|
contractors?.[0]?.id || ""
|
|
86992
86979
|
);
|
|
86993
86980
|
const handleContractorHover = (contractorId) => {
|
|
@@ -87640,7 +87627,7 @@ function ResourceDetailDocumentSidebar({
|
|
|
87640
87627
|
}) {
|
|
87641
87628
|
const renderedBreadcrumbs = useMemo(() => {
|
|
87642
87629
|
if (breadcrumbsSlot) return breadcrumbsSlot;
|
|
87643
|
-
return /* @__PURE__ */ jsx(Breadcrumb, { className: breadcrumbsClassName, children: /* @__PURE__ */ jsx(BreadcrumbList, { children: breadcrumbs?.map((crumb, index) => /* @__PURE__ */ jsxs(
|
|
87630
|
+
return /* @__PURE__ */ jsx(Breadcrumb, { className: breadcrumbsClassName, children: /* @__PURE__ */ jsx(BreadcrumbList, { children: breadcrumbs?.map((crumb, index) => /* @__PURE__ */ jsxs(React27.Fragment, { children: [
|
|
87644
87631
|
/* @__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 }) }),
|
|
87645
87632
|
index < (breadcrumbs?.length || 0) - 1 && /* @__PURE__ */ jsx(BreadcrumbSeparator, {})
|
|
87646
87633
|
] }, index)) }) });
|
|
@@ -91041,8 +91028,8 @@ function ServicesListTableHover({
|
|
|
91041
91028
|
patternOpacity,
|
|
91042
91029
|
optixFlowConfig
|
|
91043
91030
|
}) {
|
|
91044
|
-
const [hoveredIndex, setHoveredIndex] =
|
|
91045
|
-
const [mousePosition, setMousePosition] =
|
|
91031
|
+
const [hoveredIndex, setHoveredIndex] = React27.useState(null);
|
|
91032
|
+
const [mousePosition, setMousePosition] = React27.useState({ x: 0, y: 0 });
|
|
91046
91033
|
const handleMouseMove = (e) => {
|
|
91047
91034
|
setMousePosition({ x: e.clientX, y: e.clientY });
|
|
91048
91035
|
};
|
|
@@ -91292,7 +91279,7 @@ function ServicesListStickyImage({
|
|
|
91292
91279
|
patternOpacity,
|
|
91293
91280
|
optixFlowConfig
|
|
91294
91281
|
}) {
|
|
91295
|
-
const [activeIndex, setActiveIndex] =
|
|
91282
|
+
const [activeIndex, setActiveIndex] = React27.useState(0);
|
|
91296
91283
|
const renderServices = () => {
|
|
91297
91284
|
if (servicesSlot) return servicesSlot;
|
|
91298
91285
|
if (!services || services.length === 0) return null;
|
|
@@ -91544,8 +91531,8 @@ function ServicesListVideoShowcase({
|
|
|
91544
91531
|
patternOpacity,
|
|
91545
91532
|
optixFlowConfig
|
|
91546
91533
|
}) {
|
|
91547
|
-
const [playingIndex, setPlayingIndex] =
|
|
91548
|
-
const videoRefs =
|
|
91534
|
+
const [playingIndex, setPlayingIndex] = React27.useState(null);
|
|
91535
|
+
const videoRefs = React27.useRef([]);
|
|
91549
91536
|
const handleMouseEnter = (index) => {
|
|
91550
91537
|
setPlayingIndex(index);
|
|
91551
91538
|
videoRefs.current[index]?.play();
|
|
@@ -94838,7 +94825,7 @@ function StatsCircularProgress({
|
|
|
94838
94825
|
statInfoClassName
|
|
94839
94826
|
}) {
|
|
94840
94827
|
const effectiveDefaultCategory = defaultCategory || (categories && categories.length > 0 ? categories[0].id : "");
|
|
94841
|
-
const [category, setCategory] =
|
|
94828
|
+
const [category, setCategory] = React27.useState(effectiveDefaultCategory);
|
|
94842
94829
|
const badgeContent = useMemo(() => {
|
|
94843
94830
|
if (badgeSlot) return badgeSlot;
|
|
94844
94831
|
if (!badge) return null;
|
|
@@ -95131,8 +95118,8 @@ function StatsCardGroup({
|
|
|
95131
95118
|
);
|
|
95132
95119
|
}
|
|
95133
95120
|
function useAnimatedCounter(endValue, duration = 2e3, isVisible) {
|
|
95134
|
-
const [count, setCount] =
|
|
95135
|
-
|
|
95121
|
+
const [count, setCount] = React27.useState(0);
|
|
95122
|
+
React27.useEffect(() => {
|
|
95136
95123
|
if (!isVisible) return;
|
|
95137
95124
|
let startTime = null;
|
|
95138
95125
|
let animationFrame;
|
|
@@ -95220,9 +95207,9 @@ function StatsAnimatedCounter({
|
|
|
95220
95207
|
statLabelClassName,
|
|
95221
95208
|
statIconClassName
|
|
95222
95209
|
}) {
|
|
95223
|
-
const [isVisible, setIsVisible] =
|
|
95224
|
-
const sectionRef =
|
|
95225
|
-
|
|
95210
|
+
const [isVisible, setIsVisible] = React27.useState(false);
|
|
95211
|
+
const sectionRef = React27.useRef(null);
|
|
95212
|
+
React27.useEffect(() => {
|
|
95226
95213
|
const observer = new IntersectionObserver(
|
|
95227
95214
|
([entry]) => {
|
|
95228
95215
|
if (entry.isIntersecting) {
|
|
@@ -95310,8 +95297,8 @@ function StatsAnimatedCounter({
|
|
|
95310
95297
|
);
|
|
95311
95298
|
}
|
|
95312
95299
|
function useNumberTicker(endValue, duration = 2500, isVisible, decimals = 0) {
|
|
95313
|
-
const [displayValue, setDisplayValue] =
|
|
95314
|
-
|
|
95300
|
+
const [displayValue, setDisplayValue] = React27.useState("0");
|
|
95301
|
+
React27.useEffect(() => {
|
|
95315
95302
|
if (!isVisible) return;
|
|
95316
95303
|
let startTime = null;
|
|
95317
95304
|
let animationFrame;
|
|
@@ -95426,9 +95413,9 @@ function StatsNumberTicker({
|
|
|
95426
95413
|
statLabelClassName,
|
|
95427
95414
|
statDescriptionClassName
|
|
95428
95415
|
}) {
|
|
95429
|
-
const [isVisible, setIsVisible] =
|
|
95430
|
-
const sectionRef =
|
|
95431
|
-
|
|
95416
|
+
const [isVisible, setIsVisible] = React27.useState(false);
|
|
95417
|
+
const sectionRef = React27.useRef(null);
|
|
95418
|
+
React27.useEffect(() => {
|
|
95432
95419
|
const observer = new IntersectionObserver(
|
|
95433
95420
|
([entry]) => {
|
|
95434
95421
|
if (entry.isIntersecting) {
|
|
@@ -95687,9 +95674,9 @@ function StatsBarComparison({
|
|
|
95687
95674
|
barValueClassName,
|
|
95688
95675
|
barTrackClassName
|
|
95689
95676
|
}) {
|
|
95690
|
-
const [isVisible, setIsVisible] =
|
|
95691
|
-
const sectionRef =
|
|
95692
|
-
|
|
95677
|
+
const [isVisible, setIsVisible] = React27.useState(!animate);
|
|
95678
|
+
const sectionRef = React27.useRef(null);
|
|
95679
|
+
React27.useEffect(() => {
|
|
95693
95680
|
if (!animate) return;
|
|
95694
95681
|
const observer = new IntersectionObserver(
|
|
95695
95682
|
([entry]) => {
|
|
@@ -95867,7 +95854,7 @@ function TimelineVerticalIconDashed({
|
|
|
95867
95854
|
"mx-auto flex flex-col items-center justify-center text-center sm:max-w-xl",
|
|
95868
95855
|
stepsClassName
|
|
95869
95856
|
),
|
|
95870
|
-
children: steps.map((step, index) => /* @__PURE__ */ jsxs(
|
|
95857
|
+
children: steps.map((step, index) => /* @__PURE__ */ jsxs(React27.Fragment, { children: [
|
|
95871
95858
|
/* @__PURE__ */ jsxs("div", { className: cn("flex flex-col items-center", stepClassName), children: [
|
|
95872
95859
|
/* @__PURE__ */ jsx(
|
|
95873
95860
|
"span",
|
|
@@ -96134,7 +96121,7 @@ function TimelineTwoColumnFeatured({
|
|
|
96134
96121
|
style,
|
|
96135
96122
|
optixFlowConfig
|
|
96136
96123
|
}) {
|
|
96137
|
-
const renderActions =
|
|
96124
|
+
const renderActions = React27.useMemo(() => {
|
|
96138
96125
|
if (actionsSlot) {
|
|
96139
96126
|
return actionsSlot;
|
|
96140
96127
|
}
|
|
@@ -96262,7 +96249,7 @@ function TimelineTwoColumnFeatured({
|
|
|
96262
96249
|
}
|
|
96263
96250
|
);
|
|
96264
96251
|
}
|
|
96265
|
-
var DiagonalPattern =
|
|
96252
|
+
var DiagonalPattern = React27.memo(({
|
|
96266
96253
|
className,
|
|
96267
96254
|
patternOpacity = 0.15
|
|
96268
96255
|
}) => {
|
|
@@ -96301,7 +96288,7 @@ function TimelineAlternatingDiagonal({
|
|
|
96301
96288
|
style,
|
|
96302
96289
|
optixFlowConfig
|
|
96303
96290
|
}) {
|
|
96304
|
-
const renderedBadge =
|
|
96291
|
+
const renderedBadge = React27.useMemo(() => {
|
|
96305
96292
|
if (badgeSlot) {
|
|
96306
96293
|
return badgeSlot;
|
|
96307
96294
|
}
|
|
@@ -96679,7 +96666,7 @@ function TimelineProductivityList({
|
|
|
96679
96666
|
}
|
|
96680
96667
|
);
|
|
96681
96668
|
}
|
|
96682
|
-
var ProcessBar =
|
|
96669
|
+
var ProcessBar = React27.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(React27.Fragment, { children: [
|
|
96683
96670
|
/* @__PURE__ */ jsx("div", { className: "flex flex-col items-center", children: /* @__PURE__ */ jsx(
|
|
96684
96671
|
motion.div,
|
|
96685
96672
|
{
|
|
@@ -96706,7 +96693,7 @@ var ProcessBar = React26.memo(({ currentStep, steps }) => /* @__PURE__ */ jsx("d
|
|
|
96706
96693
|
)
|
|
96707
96694
|
] })
|
|
96708
96695
|
] }, index)) }) }));
|
|
96709
|
-
var StepperContent =
|
|
96696
|
+
var StepperContent = React27.memo(({ step, optixFlowConfig, imageClassName, descriptionClassName, background }) => {
|
|
96710
96697
|
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: [
|
|
96711
96698
|
/* @__PURE__ */ jsx(
|
|
96712
96699
|
motion.div,
|
|
@@ -96739,7 +96726,7 @@ var StepperContent = React26.memo(({ step, optixFlowConfig, imageClassName, desc
|
|
|
96739
96726
|
)
|
|
96740
96727
|
] });
|
|
96741
96728
|
});
|
|
96742
|
-
var NavButtons =
|
|
96729
|
+
var NavButtons = React27.memo(({ handlePrev, handleNext }) => /* @__PURE__ */ jsxs("div", { className: "flex w-full justify-end gap-3 tracking-tight", children: [
|
|
96743
96730
|
/* @__PURE__ */ jsxs(
|
|
96744
96731
|
Pressable,
|
|
96745
96732
|
{
|
|
@@ -96790,10 +96777,10 @@ function TimelineStepperAnimated({
|
|
|
96790
96777
|
}) {
|
|
96791
96778
|
const safeInitialStep = (steps?.length ?? 0) > 0 ? Math.max(0, Math.min(initialStep ?? 0, (steps?.length ?? 1) - 1)) : 0;
|
|
96792
96779
|
const [currentStep, setCurrentStep] = useState(safeInitialStep);
|
|
96793
|
-
const handleNext =
|
|
96780
|
+
const handleNext = React27.useCallback(() => {
|
|
96794
96781
|
setCurrentStep((prev) => Math.min(prev + 1, (steps?.length ?? 1) - 1));
|
|
96795
96782
|
}, [steps?.length]);
|
|
96796
|
-
const handlePrev =
|
|
96783
|
+
const handlePrev = React27.useCallback(() => {
|
|
96797
96784
|
setCurrentStep((prev) => Math.max(prev - 1, 0));
|
|
96798
96785
|
}, []);
|
|
96799
96786
|
const safeCurrentStep = (steps?.length ?? 0) > 0 ? Math.max(0, Math.min(currentStep, (steps?.length ?? 1) - 1)) : 0;
|
|
@@ -97502,7 +97489,7 @@ function TimelineTabbedPhases({
|
|
|
97502
97489
|
style,
|
|
97503
97490
|
optixFlowConfig
|
|
97504
97491
|
}) {
|
|
97505
|
-
const renderDownloadButton =
|
|
97492
|
+
const renderDownloadButton = React27.useMemo(() => {
|
|
97506
97493
|
if (downloadSlot) {
|
|
97507
97494
|
return downloadSlot;
|
|
97508
97495
|
}
|
|
@@ -97722,7 +97709,7 @@ function TimelineProductLaunch({
|
|
|
97722
97709
|
id,
|
|
97723
97710
|
style
|
|
97724
97711
|
}) {
|
|
97725
|
-
const renderCta =
|
|
97712
|
+
const renderCta = React27.useMemo(() => {
|
|
97726
97713
|
if (ctaSlot) {
|
|
97727
97714
|
return ctaSlot;
|
|
97728
97715
|
}
|
|
@@ -98180,9 +98167,9 @@ function LinkTreeBlock({
|
|
|
98180
98167
|
}) {
|
|
98181
98168
|
const resolvedBackground = background;
|
|
98182
98169
|
const resolvedPattern = pattern ?? backgroundPattern;
|
|
98183
|
-
const [lightboxOpen, setLightboxOpen] =
|
|
98184
|
-
const [lightboxIndex, setLightboxIndex] =
|
|
98185
|
-
const lightboxItems =
|
|
98170
|
+
const [lightboxOpen, setLightboxOpen] = React27.useState(false);
|
|
98171
|
+
const [lightboxIndex, setLightboxIndex] = React27.useState(0);
|
|
98172
|
+
const lightboxItems = React27.useMemo(() => {
|
|
98186
98173
|
if (!mediaGallery || mediaGallery.length === 0) return [];
|
|
98187
98174
|
return mediaGallery.slice(0, mediaGalleryLimit).map((item, index) => ({
|
|
98188
98175
|
id: item.id ?? `media-${index}`,
|
|
@@ -98194,11 +98181,11 @@ function LinkTreeBlock({
|
|
|
98194
98181
|
share: true
|
|
98195
98182
|
}));
|
|
98196
98183
|
}, [mediaGallery, mediaGalleryLimit]);
|
|
98197
|
-
const handleMediaClick =
|
|
98184
|
+
const handleMediaClick = React27.useCallback((index) => {
|
|
98198
98185
|
setLightboxIndex(index);
|
|
98199
98186
|
setLightboxOpen(true);
|
|
98200
98187
|
}, []);
|
|
98201
|
-
const handleLightboxClose =
|
|
98188
|
+
const handleLightboxClose = React27.useCallback(() => {
|
|
98202
98189
|
setLightboxOpen(false);
|
|
98203
98190
|
}, []);
|
|
98204
98191
|
const resolveImage = (value, fallbackAlt) => {
|
|
@@ -98210,7 +98197,7 @@ function LinkTreeBlock({
|
|
|
98210
98197
|
};
|
|
98211
98198
|
const nameForAlt = typeof brandName === "string" ? brandName : "Brand avatar";
|
|
98212
98199
|
const resolvedAvatar = resolveImage(brandAvatar || brandLogo, nameForAlt);
|
|
98213
|
-
const renderBrandHeader =
|
|
98200
|
+
const renderBrandHeader = React27.useMemo(() => {
|
|
98214
98201
|
if (brandSlot) return brandSlot;
|
|
98215
98202
|
return /* @__PURE__ */ jsxs(
|
|
98216
98203
|
"div",
|
|
@@ -98297,7 +98284,7 @@ function LinkTreeBlock({
|
|
|
98297
98284
|
brandTagline,
|
|
98298
98285
|
taglineClassName
|
|
98299
98286
|
]);
|
|
98300
|
-
const renderLinks =
|
|
98287
|
+
const renderLinks = React27.useMemo(() => {
|
|
98301
98288
|
if (linksSlot) return linksSlot;
|
|
98302
98289
|
if (!links || links.length === 0) return null;
|
|
98303
98290
|
return /* @__PURE__ */ jsx("div", { className: cn("space-y-3", linksClassName), children: links.map((link, index) => {
|
|
@@ -98413,7 +98400,7 @@ function LinkTreeBlock({
|
|
|
98413
98400
|
linkBadgeClassName,
|
|
98414
98401
|
linkChevronClassName
|
|
98415
98402
|
]);
|
|
98416
|
-
const renderMediaGallery =
|
|
98403
|
+
const renderMediaGallery = React27.useMemo(() => {
|
|
98417
98404
|
if (mediaGallerySlot) return mediaGallerySlot;
|
|
98418
98405
|
if (!mediaGallery || mediaGallery.length === 0) return null;
|
|
98419
98406
|
const items = mediaGallery.slice(0, mediaGalleryLimit);
|
|
@@ -98526,7 +98513,7 @@ function LinkTreeBlock({
|
|
|
98526
98513
|
mediaGalleryOverlayClassName,
|
|
98527
98514
|
mediaGalleryPlayIconClassName
|
|
98528
98515
|
]);
|
|
98529
|
-
const renderSocialLinks =
|
|
98516
|
+
const renderSocialLinks = React27.useMemo(() => {
|
|
98530
98517
|
if (socialLinksSlot) return socialLinksSlot;
|
|
98531
98518
|
if (!socialLinks || socialLinks.length === 0) return null;
|
|
98532
98519
|
return /* @__PURE__ */ jsx(
|
|
@@ -98559,7 +98546,7 @@ function LinkTreeBlock({
|
|
|
98559
98546
|
socialIconClassName,
|
|
98560
98547
|
socialLinkClassName
|
|
98561
98548
|
]);
|
|
98562
|
-
const renderFooter =
|
|
98549
|
+
const renderFooter = React27.useMemo(() => {
|
|
98563
98550
|
if (footerSlot) return footerSlot;
|
|
98564
98551
|
if (!footerAction) return null;
|
|
98565
98552
|
const resolvedFooterAction = footerAction;
|