@opensite/ui 2.2.1 → 2.2.3

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