@opensite/ui 3.7.5 → 3.7.7

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.
Files changed (115) hide show
  1. package/dist/badge.d.cts +1 -1
  2. package/dist/badge.d.ts +1 -1
  3. package/dist/blog-featured-popular.cjs +13 -12
  4. package/dist/blog-featured-popular.d.cts +1 -1
  5. package/dist/blog-featured-popular.d.ts +1 -1
  6. package/dist/blog-featured-popular.js +13 -12
  7. package/dist/blog-horizontal-cards.cjs +24 -42
  8. package/dist/blog-horizontal-cards.d.cts +1 -1
  9. package/dist/blog-horizontal-cards.d.ts +1 -1
  10. package/dist/blog-horizontal-cards.js +24 -42
  11. package/dist/blog-related-articles.cjs +8 -7
  12. package/dist/blog-related-articles.js +8 -7
  13. package/dist/carousel-icon-tabs.cjs +6 -4
  14. package/dist/carousel-icon-tabs.d.cts +5 -1
  15. package/dist/carousel-icon-tabs.d.ts +5 -1
  16. package/dist/carousel-icon-tabs.js +6 -4
  17. package/dist/carousel-progress-slider.cjs +3 -2
  18. package/dist/carousel-progress-slider.js +3 -2
  19. package/dist/carousel-scale-focus.cjs +1 -1
  20. package/dist/carousel-scale-focus.js +1 -1
  21. package/dist/carousel-scrolling-feature-showcase.cjs +4 -2
  22. package/dist/carousel-scrolling-feature-showcase.js +4 -2
  23. package/dist/carousel-sidebar-resources.cjs +11 -15
  24. package/dist/carousel-sidebar-resources.d.cts +5 -1
  25. package/dist/carousel-sidebar-resources.d.ts +5 -1
  26. package/dist/carousel-sidebar-resources.js +11 -15
  27. package/dist/carousel-tabs-content.cjs +1 -1
  28. package/dist/carousel-tabs-content.js +1 -1
  29. package/dist/expandable-case-study-cards.cjs +3 -3
  30. package/dist/expandable-case-study-cards.js +3 -3
  31. package/dist/feature-animated-carousel.cjs +2 -1
  32. package/dist/feature-animated-carousel.js +2 -1
  33. package/dist/feature-bento-image-grid.cjs +9 -12
  34. package/dist/feature-bento-image-grid.js +9 -12
  35. package/dist/feature-image-overlay-badge.cjs +3 -40
  36. package/dist/feature-image-overlay-badge.js +3 -40
  37. package/dist/feature-integration-cards.cjs +10 -14
  38. package/dist/feature-integration-cards.js +10 -14
  39. package/dist/footer-newsletter-contact.cjs +4 -4
  40. package/dist/footer-newsletter-contact.js +4 -4
  41. package/dist/hero-adaptable-product-grid.cjs +2 -1
  42. package/dist/hero-adaptable-product-grid.js +2 -1
  43. package/dist/hero-ai-powered-carousel.cjs +2 -1
  44. package/dist/hero-ai-powered-carousel.js +2 -1
  45. package/dist/hero-architecture-fullscreen.cjs +3 -2
  46. package/dist/hero-architecture-fullscreen.js +3 -2
  47. package/dist/hero-badge-image-split.cjs +3 -2
  48. package/dist/hero-badge-image-split.js +3 -2
  49. package/dist/hero-badge-shadow-overlay.cjs +2 -1
  50. package/dist/hero-badge-shadow-overlay.js +2 -1
  51. package/dist/hero-billing-platform-logos.cjs +12 -8
  52. package/dist/hero-billing-platform-logos.js +12 -8
  53. package/dist/hero-business-carousel-dots.cjs +2 -1
  54. package/dist/hero-business-carousel-dots.js +2 -1
  55. package/dist/hero-conversation-intelligence.cjs +2 -1
  56. package/dist/hero-conversation-intelligence.js +2 -1
  57. package/dist/hero-crm-streamlined.cjs +2 -2
  58. package/dist/hero-crm-streamlined.js +2 -2
  59. package/dist/hero-design-carousel-portfolio.cjs +2 -1
  60. package/dist/hero-design-carousel-portfolio.js +2 -1
  61. package/dist/hero-ecommerce-product-showcase.cjs +8 -4
  62. package/dist/hero-ecommerce-product-showcase.js +8 -4
  63. package/dist/hero-event-registration.cjs +2 -1
  64. package/dist/hero-event-registration.js +2 -1
  65. package/dist/hero-gradient-avatars-rating.cjs +4 -2
  66. package/dist/hero-gradient-avatars-rating.js +4 -2
  67. package/dist/hero-mental-health-team.cjs +13 -18
  68. package/dist/hero-mental-health-team.js +13 -18
  69. package/dist/hero-mentorship-video-split.cjs +3 -10
  70. package/dist/hero-mentorship-video-split.js +3 -10
  71. package/dist/hero-product-showcase-floating.cjs +4 -2
  72. package/dist/hero-product-showcase-floating.js +4 -2
  73. package/dist/hero-saas-dashboard-preview.cjs +2 -1
  74. package/dist/hero-saas-dashboard-preview.js +2 -1
  75. package/dist/hero-software-growth-video-dialog.cjs +2 -1
  76. package/dist/hero-software-growth-video-dialog.js +2 -1
  77. package/dist/hero-split-icon-cards.cjs +7 -59
  78. package/dist/hero-split-icon-cards.js +7 -59
  79. package/dist/hero-task-timer-animated.cjs +145 -86
  80. package/dist/hero-task-timer-animated.d.cts +19 -18
  81. package/dist/hero-task-timer-animated.d.ts +19 -18
  82. package/dist/hero-task-timer-animated.js +146 -68
  83. package/dist/navbar-animated-preview.cjs +1 -1
  84. package/dist/navbar-animated-preview.js +1 -1
  85. package/dist/navbar-enterprise-mega.cjs +29 -10
  86. package/dist/navbar-enterprise-mega.d.cts +3 -0
  87. package/dist/navbar-enterprise-mega.d.ts +3 -0
  88. package/dist/navbar-enterprise-mega.js +29 -10
  89. package/dist/navbar-image-preview.cjs +10 -2
  90. package/dist/navbar-image-preview.d.cts +6 -6
  91. package/dist/navbar-image-preview.d.ts +6 -6
  92. package/dist/navbar-image-preview.js +10 -2
  93. package/dist/process-hover-cards.cjs +4 -2
  94. package/dist/process-hover-cards.js +4 -2
  95. package/dist/process-icon-timeline.cjs +1 -2
  96. package/dist/process-icon-timeline.d.cts +0 -4
  97. package/dist/process-icon-timeline.d.ts +0 -4
  98. package/dist/process-icon-timeline.js +1 -2
  99. package/dist/process-scroll-image.cjs +2 -2
  100. package/dist/process-scroll-image.js +2 -2
  101. package/dist/process-steps-grid.cjs +7 -5
  102. package/dist/process-steps-grid.js +7 -5
  103. package/dist/registry.cjs +427 -341
  104. package/dist/registry.js +427 -341
  105. package/dist/social-link-icon.d.cts +1 -1
  106. package/dist/social-link-icon.d.ts +1 -1
  107. package/dist/testimonials-animated-split.cjs +2 -1
  108. package/dist/testimonials-animated-split.js +2 -1
  109. package/dist/testimonials-carousel-image.cjs +4 -2
  110. package/dist/testimonials-carousel-image.js +4 -2
  111. package/dist/testimonials-company-logo.cjs +4 -2
  112. package/dist/testimonials-company-logo.js +4 -2
  113. package/dist/testimonials-scrolling-columns.cjs +4 -2
  114. package/dist/testimonials-scrolling-columns.js +4 -2
  115. package/package.json +1 -1
@@ -1,21 +1,15 @@
1
1
  "use client";
2
- import React, { useMemo } from 'react';
2
+ import React, { useState, useEffect, useCallback, useMemo } from 'react';
3
3
  import { clsx } from 'clsx';
4
4
  import { twMerge } from 'tailwind-merge';
5
- import { Img } from '@page-speed/img';
6
- import * as AspectRatioPrimitive from '@radix-ui/react-aspect-ratio';
7
5
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
8
6
  import { Pressable, buttonVariants } from '@page-speed/pressable';
7
+ import { Img } from '@page-speed/img';
9
8
 
10
9
  // components/blocks/hero/hero-task-timer-animated.tsx
11
10
  function cn(...inputs) {
12
11
  return twMerge(clsx(inputs));
13
12
  }
14
- function AspectRatio({
15
- ...props
16
- }) {
17
- return /* @__PURE__ */ jsx(AspectRatioPrimitive.Root, { "data-slot": "aspect-ratio", ...props });
18
- }
19
13
  var maxWidthStyles = {
20
14
  sm: "max-w-screen-sm",
21
15
  md: "max-w-screen-md",
@@ -511,69 +505,71 @@ var BrandLogo = ({
511
505
  }
512
506
  return /* @__PURE__ */ jsx("div", { className: cn("flex items-center", logoClassName), children: imgElement });
513
507
  };
508
+ function padTwo(n) {
509
+ return n.toString().padStart(2, "0");
510
+ }
511
+ var RING_RADIUS = 90;
512
+ var RING_CIRCUMFERENCE = 2 * Math.PI * RING_RADIUS;
514
513
  function HeroTaskTimerAnimated({
515
514
  sectionId = "hero-task-timer-animated",
516
515
  heading,
516
+ headingSlot,
517
517
  description,
518
- descriptionClassName,
519
518
  actions,
520
519
  actionsSlot,
521
520
  actionsClassName,
522
- images,
523
- imagesSlot,
521
+ taskItems,
522
+ timerMinutes = 25,
523
+ timerSeconds = 0,
524
524
  background,
525
525
  pattern,
526
526
  patternOpacity,
527
527
  className,
528
- spacing = "xl",
528
+ spacing = "hero",
529
529
  containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
530
530
  headerClassName,
531
531
  headingClassName,
532
- imagesClassName,
533
- optixFlowConfig,
532
+ descriptionClassName,
534
533
  logo,
535
534
  logoSlot,
536
535
  logoClassName
537
536
  }) {
538
- const renderImages = useMemo(() => {
539
- if (imagesSlot) return imagesSlot;
540
- if (!images || images.length < 2) return null;
541
- return /* @__PURE__ */ jsxs(
542
- "div",
537
+ const initialTotal = timerMinutes * 60 + timerSeconds;
538
+ const [remaining, setRemaining] = useState(initialTotal);
539
+ const [activeTaskIndex, setActiveTaskIndex] = useState(0);
540
+ useEffect(() => {
541
+ const interval = setInterval(() => {
542
+ setRemaining((prev) => prev <= 0 ? initialTotal : prev - 1);
543
+ }, 1e3);
544
+ return () => clearInterval(interval);
545
+ }, [initialTotal]);
546
+ const cycleTask = useCallback(() => {
547
+ if (!taskItems || taskItems.length <= 1) return;
548
+ setActiveTaskIndex((prev) => (prev + 1) % taskItems.length);
549
+ }, [taskItems]);
550
+ useEffect(() => {
551
+ if (!taskItems || taskItems.length <= 1) return;
552
+ const interval = setInterval(cycleTask, 3e3);
553
+ return () => clearInterval(interval);
554
+ }, [taskItems, cycleTask]);
555
+ const minutes = Math.floor(remaining / 60);
556
+ const seconds = remaining % 60;
557
+ const progress = initialTotal > 0 ? remaining / initialTotal : 1;
558
+ const strokeDashoffset = RING_CIRCUMFERENCE * (1 - progress);
559
+ const renderHeading = useMemo(() => {
560
+ if (headingSlot) return headingSlot;
561
+ if (!heading) return null;
562
+ return typeof heading === "string" ? /* @__PURE__ */ jsx(
563
+ "h1",
543
564
  {
544
565
  className: cn(
545
- "flex flex-col mt-6 gap-6 md:gap-10 lg:flex-row",
546
- imagesClassName
566
+ "max-w-3xl text-4xl font-bold tracking-tight md:text-5xl lg:text-6xl text-balance",
567
+ headingClassName
547
568
  ),
548
- children: [
549
- /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-10 w-full lg:w-[60%]", children: /* @__PURE__ */ jsx("div", { className: "overflow-hidden rounded-lg shadow-xl", children: /* @__PURE__ */ jsx(AspectRatio, { ratio: 1.916786227 / 1, children: /* @__PURE__ */ jsx(
550
- Img,
551
- {
552
- src: images[0].src,
553
- alt: images[0].alt,
554
- className: cn(
555
- "block size-full object-cover object-center",
556
- images[0].className
557
- ),
558
- optixFlowConfig
559
- }
560
- ) }) }) }),
561
- /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-10 w-full lg:w-[40%]", children: /* @__PURE__ */ jsx("div", { className: "overflow-hidden rounded-lg shadow-xl", children: /* @__PURE__ */ jsx(AspectRatio, { ratio: 1.916786227 / 1, children: /* @__PURE__ */ jsx(
562
- Img,
563
- {
564
- src: images[1].src,
565
- alt: images[1].alt,
566
- className: cn(
567
- "block size-full object-cover object-center",
568
- images[1].className
569
- ),
570
- optixFlowConfig
571
- }
572
- ) }) }) })
573
- ]
569
+ children: heading
574
570
  }
575
- );
576
- }, [imagesSlot, images, imagesClassName, optixFlowConfig]);
571
+ ) : heading;
572
+ }, [headingSlot, heading, headingClassName]);
577
573
  return /* @__PURE__ */ jsx(
578
574
  Section,
579
575
  {
@@ -584,48 +580,130 @@ function HeroTaskTimerAnimated({
584
580
  patternOpacity,
585
581
  className,
586
582
  containerClassName,
587
- children: /* @__PURE__ */ jsxs("div", { className: "relative flex flex-col gap-6 md:gap-16", children: [
583
+ children: /* @__PURE__ */ jsxs("div", { className: "relative flex flex-col items-center gap-10 lg:flex-row lg:items-center lg:gap-16", children: [
588
584
  /* @__PURE__ */ jsxs(
589
585
  "div",
590
586
  {
591
587
  className: cn(
592
- "flex flex-col gap-4 w-full pt-12 lg:pt-0",
588
+ "flex flex-col gap-5 w-full lg:w-1/2 pt-8 lg:pt-0",
593
589
  headerClassName
594
590
  ),
595
591
  children: [
596
592
  (logo || logoSlot) && /* @__PURE__ */ jsx("div", { className: cn("mb-4", logoClassName), children: /* @__PURE__ */ jsx(BrandLogo, { logo, logoSlot, size: "lg" }) }),
597
- heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
598
- "h1",
593
+ renderHeading,
594
+ description && (typeof description === "string" ? /* @__PURE__ */ jsx(
595
+ "p",
599
596
  {
600
597
  className: cn(
601
- "max-w-2xl text-6xl font-bold tracking-tight md:text-7xl lg:text-8xl text-balance",
602
- headingClassName
598
+ "max-w-full md:max-w-xl text-lg text-balance",
599
+ descriptionClassName
603
600
  ),
604
- children: heading
601
+ children: description
605
602
  }
606
- ) : /* @__PURE__ */ jsx(
607
- "h1",
603
+ ) : description),
604
+ taskItems && taskItems.length > 0 && /* @__PURE__ */ jsx("div", { className: "mt-2 flex flex-col gap-3", children: taskItems.map((task, index) => /* @__PURE__ */ jsxs(
605
+ "div",
608
606
  {
609
- className: cn(
610
- "max-w-2xl text-6xl font-bold tracking-tight md:text-7xl lg:text-8xl text-balance",
611
- headingClassName
612
- ),
613
- children: heading
614
- }
615
- )),
616
- description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("text-lg text-balance", descriptionClassName), children: description }) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description })),
607
+ className: "flex items-center gap-3 transition-all duration-700 ease-in-out",
608
+ style: {
609
+ opacity: index === activeTaskIndex ? 1 : 0.35,
610
+ transform: index === activeTaskIndex ? "translateX(8px)" : "translateX(0)"
611
+ },
612
+ children: [
613
+ /* @__PURE__ */ jsx(
614
+ "div",
615
+ {
616
+ className: cn(
617
+ "size-2.5 shrink-0 rounded-xl transition-colors duration-700",
618
+ index === activeTaskIndex ? "bg-primary" : "bg-muted-foreground/30"
619
+ )
620
+ }
621
+ ),
622
+ /* @__PURE__ */ jsx(
623
+ "span",
624
+ {
625
+ className: cn(
626
+ "text-sm font-medium transition-all duration-700",
627
+ index === activeTaskIndex ? "opacity-100" : "opacity-50"
628
+ ),
629
+ children: task
630
+ }
631
+ )
632
+ ]
633
+ },
634
+ index
635
+ )) }),
617
636
  /* @__PURE__ */ jsx(
618
637
  BlockActions,
619
638
  {
620
639
  actions,
621
640
  actionsSlot,
622
- actionsClassName
641
+ actionsClassName: cn("mt-2", actionsClassName)
623
642
  }
624
643
  )
625
644
  ]
626
645
  }
627
646
  ),
628
- renderImages
647
+ /* @__PURE__ */ jsx("div", { className: "flex w-full items-center justify-center lg:w-1/2", children: /* @__PURE__ */ jsxs("div", { className: "relative flex flex-col items-center gap-6", children: [
648
+ /* @__PURE__ */ jsxs("div", { className: "relative", children: [
649
+ /* @__PURE__ */ jsxs(
650
+ "svg",
651
+ {
652
+ width: "240",
653
+ height: "240",
654
+ viewBox: "0 0 220 220",
655
+ className: "drop-shadow-lg",
656
+ children: [
657
+ /* @__PURE__ */ jsx(
658
+ "circle",
659
+ {
660
+ cx: "110",
661
+ cy: "110",
662
+ r: RING_RADIUS,
663
+ fill: "none",
664
+ stroke: "currentColor",
665
+ strokeWidth: "5",
666
+ className: "text-muted-foreground/15"
667
+ }
668
+ ),
669
+ /* @__PURE__ */ jsx(
670
+ "circle",
671
+ {
672
+ cx: "110",
673
+ cy: "110",
674
+ r: RING_RADIUS,
675
+ fill: "none",
676
+ stroke: "currentColor",
677
+ strokeWidth: "5",
678
+ strokeLinecap: "round",
679
+ className: "text-primary transition-[stroke-dashoffset] duration-1000 ease-linear",
680
+ strokeDasharray: RING_CIRCUMFERENCE,
681
+ strokeDashoffset,
682
+ transform: "rotate(-90 110 110)"
683
+ }
684
+ )
685
+ ]
686
+ }
687
+ ),
688
+ /* @__PURE__ */ jsx("div", { className: "absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ jsxs("div", { className: "flex items-baseline gap-1 font-mono", children: [
689
+ /* @__PURE__ */ jsx("span", { className: "text-5xl font-bold tabular-nums tracking-tight md:text-6xl", children: padTwo(minutes) }),
690
+ /* @__PURE__ */ jsx("span", { className: "animate-pulse text-3xl font-bold text-primary md:text-4xl", children: ":" }),
691
+ /* @__PURE__ */ jsx("span", { className: "text-5xl font-bold tabular-nums tracking-tight md:text-6xl", children: padTwo(seconds) })
692
+ ] }) })
693
+ ] }),
694
+ taskItems && taskItems.length > 0 && /* @__PURE__ */ jsx("div", { className: "relative h-8 w-full max-w-[280px] overflow-hidden", children: taskItems.map((task, index) => /* @__PURE__ */ jsx(
695
+ "div",
696
+ {
697
+ className: "absolute inset-0 flex items-center justify-center transition-all duration-700 ease-in-out",
698
+ style: {
699
+ opacity: index === activeTaskIndex ? 1 : 0,
700
+ transform: index === activeTaskIndex ? "translateY(0)" : "translateY(12px)"
701
+ },
702
+ children: /* @__PURE__ */ jsx("span", { className: "truncate rounded-full bg-primary/10 px-4 py-1.5 text-sm font-medium text-primary", children: task })
703
+ },
704
+ index
705
+ )) })
706
+ ] }) })
629
707
  ] })
630
708
  }
631
709
  );
@@ -1238,7 +1238,7 @@ var FeaturedLink = ({ link, optixFlowConfig }) => {
1238
1238
  className: `group relative flex w-full overflow-hidden rounded-xl px-4 pt-24 pb-4 ${hasBgImg ? "" : "bg-primary"}`,
1239
1239
  children: [
1240
1240
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative z-10 flex w-full items-center gap-6", children: [
1241
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex size-12 shrink-0 rounded-lg border bg-card text-card-foreground shadow-lg", children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: link.icon || link.iconName, size: 20 }) }),
1241
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center justify-center size-12 shrink-0 rounded-lg border bg-card text-card-foreground shadow-lg", children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: link.icon || link.iconName, size: 20 }) }),
1242
1242
  /* @__PURE__ */ jsxRuntime.jsxs(
1243
1243
  "div",
1244
1244
  {
@@ -1213,7 +1213,7 @@ var FeaturedLink = ({ link, optixFlowConfig }) => {
1213
1213
  className: `group relative flex w-full overflow-hidden rounded-xl px-4 pt-24 pb-4 ${hasBgImg ? "" : "bg-primary"}`,
1214
1214
  children: [
1215
1215
  /* @__PURE__ */ jsxs("div", { className: "relative z-10 flex w-full items-center gap-6", children: [
1216
- /* @__PURE__ */ jsx("div", { className: "flex size-12 shrink-0 rounded-lg border bg-card text-card-foreground shadow-lg", children: /* @__PURE__ */ jsx(DynamicIcon, { name: link.icon || link.iconName, size: 20 }) }),
1216
+ /* @__PURE__ */ jsx("div", { className: "flex items-center justify-center size-12 shrink-0 rounded-lg border bg-card text-card-foreground shadow-lg", children: /* @__PURE__ */ jsx(DynamicIcon, { name: link.icon || link.iconName, size: 20 }) }),
1217
1217
  /* @__PURE__ */ jsxs(
1218
1218
  "div",
1219
1219
  {
@@ -766,6 +766,7 @@ function getNavbarLayoutClasses(layoutVariant = "fullScreenContainerizedLinks",
766
766
  var SolutionsMenu = ({
767
767
  solutionCards,
768
768
  platformItems,
769
+ platformTitle = "Platform",
769
770
  featuredHeroCard,
770
771
  optixFlowConfig
771
772
  }) => {
@@ -801,14 +802,15 @@ var SolutionsMenu = ({
801
802
  src: featuredHeroCard.image,
802
803
  alt: featuredHeroCard.title,
803
804
  className: "h-full w-full object-cover",
804
- optixFlowConfig
805
+ optixFlowConfig,
806
+ loading: "eager"
805
807
  }
806
808
  ) })
807
809
  ]
808
810
  }
809
811
  ) : null;
810
812
  const platformSection = platformItems.length > 0 ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0", children: [
811
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-3 text-left", children: /* @__PURE__ */ jsxRuntime.jsx("strong", { className: "text-xs font-medium tracking-wider text-muted-foreground uppercase", children: "Developer Platform" }) }),
813
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-3 text-left", children: /* @__PURE__ */ jsxRuntime.jsx("strong", { className: "text-xs font-medium tracking-wider text-muted-foreground uppercase", children: platformTitle }) }),
812
814
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-2 gap-2", children: platformItems.map((technology) => /* @__PURE__ */ jsxRuntime.jsxs(
813
815
  NavigationMenuLink,
814
816
  {
@@ -960,7 +962,8 @@ var ProductsMenu = ({
960
962
  src: featuredHeroCard.image,
961
963
  alt: featuredHeroCard.title,
962
964
  className: "h-full w-full object-cover",
963
- optixFlowConfig
965
+ optixFlowConfig,
966
+ loading: "eager"
964
967
  }
965
968
  ) }),
966
969
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col p-5", children: [
@@ -994,7 +997,8 @@ var ProductsMenu = ({
994
997
  src: product.image,
995
998
  alt: product.title,
996
999
  className: "h-full w-full object-cover",
997
- optixFlowConfig
1000
+ optixFlowConfig,
1001
+ loading: "eager"
998
1002
  }
999
1003
  ) }),
1000
1004
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
@@ -1009,6 +1013,7 @@ var ProductsMenu = ({
1009
1013
  ] });
1010
1014
  var ResourcesMenu = ({
1011
1015
  resourceItems,
1016
+ resourcesTitle = "Resources",
1012
1017
  topicGroups,
1013
1018
  featuredHeroCard
1014
1019
  }) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid w-[1100px] grid-cols-[280px_1fr_220px] gap-6", children: [
@@ -1026,7 +1031,8 @@ var ResourcesMenu = ({
1026
1031
  {
1027
1032
  src: featuredHeroCard.image,
1028
1033
  alt: featuredHeroCard.title,
1029
- className: "h-full w-full object-cover invert"
1034
+ className: "h-full w-full object-cover invert",
1035
+ loading: "eager"
1030
1036
  }
1031
1037
  ) }),
1032
1038
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col p-5", children: [
@@ -1047,7 +1053,7 @@ var ResourcesMenu = ({
1047
1053
  }
1048
1054
  ) }),
1049
1055
  resourceItems.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "col-span-1", children: [
1050
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-3 text-left", children: /* @__PURE__ */ jsxRuntime.jsx("strong", { className: "text-xs font-medium tracking-wider text-muted-foreground uppercase", children: "Resources" }) }),
1056
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-3 text-left", children: /* @__PURE__ */ jsxRuntime.jsx("strong", { className: "text-xs font-medium tracking-wider text-muted-foreground uppercase", children: resourcesTitle }) }),
1051
1057
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-2 gap-3", children: resourceItems.map((resource) => /* @__PURE__ */ jsxRuntime.jsxs(
1052
1058
  NavigationMenuLink,
1053
1059
  {
@@ -1079,7 +1085,14 @@ var ResourcesMenu = ({
1079
1085
  href: topic.href,
1080
1086
  className: "group !flex !w-full items-center gap-2 rounded-lg p-2 hover:bg-muted",
1081
1087
  children: [
1082
- /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: topic.icon, size: 14, className: "shrink-0" }),
1088
+ /* @__PURE__ */ jsxRuntime.jsx(
1089
+ DynamicIcon,
1090
+ {
1091
+ name: topic.icon,
1092
+ size: 14,
1093
+ className: "shrink-0"
1094
+ }
1095
+ ),
1083
1096
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "min-w-0 flex-1 text-sm font-medium", children: topic.title })
1084
1097
  ]
1085
1098
  },
@@ -1090,6 +1103,7 @@ var ResourcesMenu = ({
1090
1103
  var GlobalMenu = ({
1091
1104
  featureCategories,
1092
1105
  regions,
1106
+ locationsTitle = "Locations",
1093
1107
  featuredHeroCard,
1094
1108
  optixFlowConfig
1095
1109
  }) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "w-[1100px]", children: [
@@ -1109,7 +1123,8 @@ var GlobalMenu = ({
1109
1123
  src: featuredHeroCard.image,
1110
1124
  alt: featuredHeroCard.title,
1111
1125
  className: "h-full w-full object-cover",
1112
- optixFlowConfig
1126
+ optixFlowConfig,
1127
+ loading: "eager"
1113
1128
  }
1114
1129
  ) }),
1115
1130
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col p-5", children: [
@@ -1149,7 +1164,7 @@ var GlobalMenu = ({
1149
1164
  ] }, category.title)) })
1150
1165
  ] }),
1151
1166
  regions.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-6", children: [
1152
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-3 border-b border-border pb-2 text-left", children: /* @__PURE__ */ jsxRuntime.jsx("strong", { className: "text-xs font-medium tracking-wider text-muted-foreground uppercase", children: "Popular Locations" }) }),
1167
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-3 border-b border-border pb-2 text-left", children: /* @__PURE__ */ jsxRuntime.jsx("strong", { className: "text-xs font-medium tracking-wider text-muted-foreground uppercase", children: locationsTitle }) }),
1153
1168
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-4 gap-4", children: regions.map((region) => /* @__PURE__ */ jsxRuntime.jsxs(
1154
1169
  "div",
1155
1170
  {
@@ -1204,7 +1219,8 @@ var PartnersMenu = ({
1204
1219
  "h-full w-full object-cover",
1205
1220
  featuredHeroCard.imagePosition === "background" && "invert"
1206
1221
  ),
1207
- optixFlowConfig
1222
+ optixFlowConfig,
1223
+ loading: "eager"
1208
1224
  }
1209
1225
  ) }),
1210
1226
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col p-5", children: [
@@ -1442,6 +1458,7 @@ var renderDropdownContent = (item, optixFlowConfig) => {
1442
1458
  {
1443
1459
  solutionCards: item.solutionCards ?? [],
1444
1460
  platformItems: item.platformItems ?? [],
1461
+ platformTitle: item.platformTitle,
1445
1462
  featuredHeroCard: item.featuredHeroCard,
1446
1463
  optixFlowConfig
1447
1464
  }
@@ -1461,6 +1478,7 @@ var renderDropdownContent = (item, optixFlowConfig) => {
1461
1478
  {
1462
1479
  featureCategories: item.featureCategories ?? [],
1463
1480
  regions: item.regions ?? [],
1481
+ locationsTitle: item.locationsTitle,
1464
1482
  featuredHeroCard: item.featuredHeroCard,
1465
1483
  optixFlowConfig
1466
1484
  }
@@ -1479,6 +1497,7 @@ var renderDropdownContent = (item, optixFlowConfig) => {
1479
1497
  ResourcesMenu,
1480
1498
  {
1481
1499
  resourceItems: item.resourceItems ?? [],
1500
+ resourcesTitle: item.resourcesTitle,
1482
1501
  topicGroups: item.topicGroups ?? [],
1483
1502
  featuredHeroCard: item.featuredHeroCard
1484
1503
  }
@@ -198,11 +198,14 @@ interface IMenuLink {
198
198
  featuredHeroCard?: IFeaturedHeroCard;
199
199
  solutionCards?: ISolutionCard[];
200
200
  platformItems?: ITechnologyItem[];
201
+ platformTitle?: string;
201
202
  productCategories?: IProductCategory[];
202
203
  featureCategories?: IFeatureCategory[];
203
204
  regions?: IRegionItem[];
205
+ locationsTitle?: string;
204
206
  partnerCards?: IPartnerCard[];
205
207
  resourceItems?: IResourceItem[];
208
+ resourcesTitle?: string;
206
209
  topicGroups?: ITopicGroup[];
207
210
  }
208
211
  /**
@@ -198,11 +198,14 @@ interface IMenuLink {
198
198
  featuredHeroCard?: IFeaturedHeroCard;
199
199
  solutionCards?: ISolutionCard[];
200
200
  platformItems?: ITechnologyItem[];
201
+ platformTitle?: string;
201
202
  productCategories?: IProductCategory[];
202
203
  featureCategories?: IFeatureCategory[];
203
204
  regions?: IRegionItem[];
205
+ locationsTitle?: string;
204
206
  partnerCards?: IPartnerCard[];
205
207
  resourceItems?: IResourceItem[];
208
+ resourcesTitle?: string;
206
209
  topicGroups?: ITopicGroup[];
207
210
  }
208
211
  /**
@@ -743,6 +743,7 @@ function getNavbarLayoutClasses(layoutVariant = "fullScreenContainerizedLinks",
743
743
  var SolutionsMenu = ({
744
744
  solutionCards,
745
745
  platformItems,
746
+ platformTitle = "Platform",
746
747
  featuredHeroCard,
747
748
  optixFlowConfig
748
749
  }) => {
@@ -778,14 +779,15 @@ var SolutionsMenu = ({
778
779
  src: featuredHeroCard.image,
779
780
  alt: featuredHeroCard.title,
780
781
  className: "h-full w-full object-cover",
781
- optixFlowConfig
782
+ optixFlowConfig,
783
+ loading: "eager"
782
784
  }
783
785
  ) })
784
786
  ]
785
787
  }
786
788
  ) : null;
787
789
  const platformSection = platformItems.length > 0 ? /* @__PURE__ */ jsxs("div", { className: "min-w-0", children: [
788
- /* @__PURE__ */ jsx("div", { className: "mb-3 text-left", children: /* @__PURE__ */ jsx("strong", { className: "text-xs font-medium tracking-wider text-muted-foreground uppercase", children: "Developer Platform" }) }),
790
+ /* @__PURE__ */ jsx("div", { className: "mb-3 text-left", children: /* @__PURE__ */ jsx("strong", { className: "text-xs font-medium tracking-wider text-muted-foreground uppercase", children: platformTitle }) }),
789
791
  /* @__PURE__ */ jsx("div", { className: "grid grid-cols-2 gap-2", children: platformItems.map((technology) => /* @__PURE__ */ jsxs(
790
792
  NavigationMenuLink,
791
793
  {
@@ -937,7 +939,8 @@ var ProductsMenu = ({
937
939
  src: featuredHeroCard.image,
938
940
  alt: featuredHeroCard.title,
939
941
  className: "h-full w-full object-cover",
940
- optixFlowConfig
942
+ optixFlowConfig,
943
+ loading: "eager"
941
944
  }
942
945
  ) }),
943
946
  /* @__PURE__ */ jsxs("div", { className: "flex flex-col p-5", children: [
@@ -971,7 +974,8 @@ var ProductsMenu = ({
971
974
  src: product.image,
972
975
  alt: product.title,
973
976
  className: "h-full w-full object-cover",
974
- optixFlowConfig
977
+ optixFlowConfig,
978
+ loading: "eager"
975
979
  }
976
980
  ) }),
977
981
  /* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1", children: [
@@ -986,6 +990,7 @@ var ProductsMenu = ({
986
990
  ] });
987
991
  var ResourcesMenu = ({
988
992
  resourceItems,
993
+ resourcesTitle = "Resources",
989
994
  topicGroups,
990
995
  featuredHeroCard
991
996
  }) => /* @__PURE__ */ jsxs("div", { className: "grid w-[1100px] grid-cols-[280px_1fr_220px] gap-6", children: [
@@ -1003,7 +1008,8 @@ var ResourcesMenu = ({
1003
1008
  {
1004
1009
  src: featuredHeroCard.image,
1005
1010
  alt: featuredHeroCard.title,
1006
- className: "h-full w-full object-cover invert"
1011
+ className: "h-full w-full object-cover invert",
1012
+ loading: "eager"
1007
1013
  }
1008
1014
  ) }),
1009
1015
  /* @__PURE__ */ jsxs("div", { className: "flex flex-col p-5", children: [
@@ -1024,7 +1030,7 @@ var ResourcesMenu = ({
1024
1030
  }
1025
1031
  ) }),
1026
1032
  resourceItems.length > 0 && /* @__PURE__ */ jsxs("div", { className: "col-span-1", children: [
1027
- /* @__PURE__ */ jsx("div", { className: "mb-3 text-left", children: /* @__PURE__ */ jsx("strong", { className: "text-xs font-medium tracking-wider text-muted-foreground uppercase", children: "Resources" }) }),
1033
+ /* @__PURE__ */ jsx("div", { className: "mb-3 text-left", children: /* @__PURE__ */ jsx("strong", { className: "text-xs font-medium tracking-wider text-muted-foreground uppercase", children: resourcesTitle }) }),
1028
1034
  /* @__PURE__ */ jsx("div", { className: "grid grid-cols-2 gap-3", children: resourceItems.map((resource) => /* @__PURE__ */ jsxs(
1029
1035
  NavigationMenuLink,
1030
1036
  {
@@ -1056,7 +1062,14 @@ var ResourcesMenu = ({
1056
1062
  href: topic.href,
1057
1063
  className: "group !flex !w-full items-center gap-2 rounded-lg p-2 hover:bg-muted",
1058
1064
  children: [
1059
- /* @__PURE__ */ jsx(DynamicIcon, { name: topic.icon, size: 14, className: "shrink-0" }),
1065
+ /* @__PURE__ */ jsx(
1066
+ DynamicIcon,
1067
+ {
1068
+ name: topic.icon,
1069
+ size: 14,
1070
+ className: "shrink-0"
1071
+ }
1072
+ ),
1060
1073
  /* @__PURE__ */ jsx("span", { className: "min-w-0 flex-1 text-sm font-medium", children: topic.title })
1061
1074
  ]
1062
1075
  },
@@ -1067,6 +1080,7 @@ var ResourcesMenu = ({
1067
1080
  var GlobalMenu = ({
1068
1081
  featureCategories,
1069
1082
  regions,
1083
+ locationsTitle = "Locations",
1070
1084
  featuredHeroCard,
1071
1085
  optixFlowConfig
1072
1086
  }) => /* @__PURE__ */ jsxs("div", { className: "w-[1100px]", children: [
@@ -1086,7 +1100,8 @@ var GlobalMenu = ({
1086
1100
  src: featuredHeroCard.image,
1087
1101
  alt: featuredHeroCard.title,
1088
1102
  className: "h-full w-full object-cover",
1089
- optixFlowConfig
1103
+ optixFlowConfig,
1104
+ loading: "eager"
1090
1105
  }
1091
1106
  ) }),
1092
1107
  /* @__PURE__ */ jsxs("div", { className: "flex flex-col p-5", children: [
@@ -1126,7 +1141,7 @@ var GlobalMenu = ({
1126
1141
  ] }, category.title)) })
1127
1142
  ] }),
1128
1143
  regions.length > 0 && /* @__PURE__ */ jsxs("div", { className: "mt-6", children: [
1129
- /* @__PURE__ */ jsx("div", { className: "mb-3 border-b border-border pb-2 text-left", children: /* @__PURE__ */ jsx("strong", { className: "text-xs font-medium tracking-wider text-muted-foreground uppercase", children: "Popular Locations" }) }),
1144
+ /* @__PURE__ */ jsx("div", { className: "mb-3 border-b border-border pb-2 text-left", children: /* @__PURE__ */ jsx("strong", { className: "text-xs font-medium tracking-wider text-muted-foreground uppercase", children: locationsTitle }) }),
1130
1145
  /* @__PURE__ */ jsx("div", { className: "grid grid-cols-4 gap-4", children: regions.map((region) => /* @__PURE__ */ jsxs(
1131
1146
  "div",
1132
1147
  {
@@ -1181,7 +1196,8 @@ var PartnersMenu = ({
1181
1196
  "h-full w-full object-cover",
1182
1197
  featuredHeroCard.imagePosition === "background" && "invert"
1183
1198
  ),
1184
- optixFlowConfig
1199
+ optixFlowConfig,
1200
+ loading: "eager"
1185
1201
  }
1186
1202
  ) }),
1187
1203
  /* @__PURE__ */ jsxs("div", { className: "flex flex-col p-5", children: [
@@ -1419,6 +1435,7 @@ var renderDropdownContent = (item, optixFlowConfig) => {
1419
1435
  {
1420
1436
  solutionCards: item.solutionCards ?? [],
1421
1437
  platformItems: item.platformItems ?? [],
1438
+ platformTitle: item.platformTitle,
1422
1439
  featuredHeroCard: item.featuredHeroCard,
1423
1440
  optixFlowConfig
1424
1441
  }
@@ -1438,6 +1455,7 @@ var renderDropdownContent = (item, optixFlowConfig) => {
1438
1455
  {
1439
1456
  featureCategories: item.featureCategories ?? [],
1440
1457
  regions: item.regions ?? [],
1458
+ locationsTitle: item.locationsTitle,
1441
1459
  featuredHeroCard: item.featuredHeroCard,
1442
1460
  optixFlowConfig
1443
1461
  }
@@ -1456,6 +1474,7 @@ var renderDropdownContent = (item, optixFlowConfig) => {
1456
1474
  ResourcesMenu,
1457
1475
  {
1458
1476
  resourceItems: item.resourceItems ?? [],
1477
+ resourcesTitle: item.resourcesTitle,
1459
1478
  topicGroups: item.topicGroups ?? [],
1460
1479
  featuredHeroCard: item.featuredHeroCard
1461
1480
  }
@@ -996,7 +996,8 @@ var DesktopMenuItem = ({
996
996
  src: link.image,
997
997
  alt: typeof link.label === "string" ? link.label : "",
998
998
  className: `absolute top-0 left-0 h-full w-full object-cover transition-opacity duration-300 ${linkIndex === 0 ? "opacity-100" : "opacity-0"}`,
999
- optixFlowConfig
999
+ optixFlowConfig,
1000
+ loading: "eager"
1000
1001
  },
1001
1002
  linkIndex
1002
1003
  )) }),
@@ -1082,7 +1083,14 @@ var MobileNavigationMenu = ({
1082
1083
  children: children ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1083
1084
  /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: icon, size: 16, className: "shrink-0" }),
1084
1085
  label,
1085
- /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: iconAfter, size: 16, className: "shrink-0" })
1086
+ /* @__PURE__ */ jsxRuntime.jsx(
1087
+ DynamicIcon,
1088
+ {
1089
+ name: iconAfter,
1090
+ size: 16,
1091
+ className: "shrink-0"
1092
+ }
1093
+ )
1086
1094
  ] })
1087
1095
  },
1088
1096
  index