@opensite/ui 2.2.1 → 2.2.2

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