@opensite/ui 3.7.6 → 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.
package/dist/badge.d.cts CHANGED
@@ -4,7 +4,7 @@ import * as React from 'react';
4
4
  import { VariantProps } from 'class-variance-authority';
5
5
 
6
6
  declare const badgeVariants: (props?: ({
7
- variant?: "default" | "secondary" | "destructive" | "outline" | null | undefined;
7
+ variant?: "outline" | "default" | "secondary" | "destructive" | null | undefined;
8
8
  } & class_variance_authority_types.ClassProp) | undefined) => string;
9
9
  declare function Badge({ className, variant, asChild, ...props }: React.ComponentProps<"span"> & VariantProps<typeof badgeVariants> & {
10
10
  asChild?: boolean;
package/dist/badge.d.ts CHANGED
@@ -4,7 +4,7 @@ import * as React from 'react';
4
4
  import { VariantProps } from 'class-variance-authority';
5
5
 
6
6
  declare const badgeVariants: (props?: ({
7
- variant?: "default" | "secondary" | "destructive" | "outline" | null | undefined;
7
+ variant?: "outline" | "default" | "secondary" | "destructive" | null | undefined;
8
8
  } & class_variance_authority_types.ClassProp) | undefined) => string;
9
9
  declare function Badge({ className, variant, asChild, ...props }: React.ComponentProps<"span"> & VariantProps<typeof badgeVariants> & {
10
10
  asChild?: boolean;
@@ -535,7 +535,8 @@ function BlogHorizontalCards({
535
535
  src: post.image,
536
536
  alt: postTitle,
537
537
  className: "aspect-video w-full rounded-lg object-cover object-center sm:w-[260px]",
538
- optixFlowConfig
538
+ optixFlowConfig,
539
+ loading: "eager"
539
540
  }
540
541
  )
541
542
  }
@@ -548,14 +549,14 @@ function BlogHorizontalCards({
548
549
  ] }),
549
550
  post.title && /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-xl leading-tight font-bold lg:text-2xl", children: /* @__PURE__ */ jsxRuntime.jsx(pressable.Pressable, { href: postHref, className: "hover:underline", children: post.title }) }),
550
551
  postSummary && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-base opacity-70", children: postSummary }),
551
- readMoreText && /* @__PURE__ */ jsxRuntime.jsxs(pressable.Pressable, { href: postHref, variant: "link", children: [
552
+ readMoreText && /* @__PURE__ */ jsxRuntime.jsxs(pressable.Pressable, { href: postHref, variant: "outline", children: [
552
553
  readMoreText,
553
554
  /* @__PURE__ */ jsxRuntime.jsx(
554
555
  DynamicIcon,
555
556
  {
556
557
  name: "lucide/arrow-right",
557
558
  size: 16,
558
- className: "ml-2 size-4"
559
+ className: "size-4"
559
560
  }
560
561
  )
561
562
  ] })
@@ -593,7 +594,7 @@ function BlogHorizontalCards({
593
594
  "p",
594
595
  {
595
596
  className: cn(
596
- "mb-12 opacity-70 md:text-base lg:text-lg",
597
+ "mb-12 opacity-70 md:text-base lg:text-lg text-balance",
597
598
  descriptionClassName
598
599
  ),
599
600
  children: description
@@ -514,7 +514,8 @@ function BlogHorizontalCards({
514
514
  src: post.image,
515
515
  alt: postTitle,
516
516
  className: "aspect-video w-full rounded-lg object-cover object-center sm:w-[260px]",
517
- optixFlowConfig
517
+ optixFlowConfig,
518
+ loading: "eager"
518
519
  }
519
520
  )
520
521
  }
@@ -527,14 +528,14 @@ function BlogHorizontalCards({
527
528
  ] }),
528
529
  post.title && /* @__PURE__ */ jsx("h3", { className: "text-xl leading-tight font-bold lg:text-2xl", children: /* @__PURE__ */ jsx(Pressable, { href: postHref, className: "hover:underline", children: post.title }) }),
529
530
  postSummary && /* @__PURE__ */ jsx("p", { className: "text-base opacity-70", children: postSummary }),
530
- readMoreText && /* @__PURE__ */ jsxs(Pressable, { href: postHref, variant: "link", children: [
531
+ readMoreText && /* @__PURE__ */ jsxs(Pressable, { href: postHref, variant: "outline", children: [
531
532
  readMoreText,
532
533
  /* @__PURE__ */ jsx(
533
534
  DynamicIcon,
534
535
  {
535
536
  name: "lucide/arrow-right",
536
537
  size: 16,
537
- className: "ml-2 size-4"
538
+ className: "size-4"
538
539
  }
539
540
  )
540
541
  ] })
@@ -572,7 +573,7 @@ function BlogHorizontalCards({
572
573
  "p",
573
574
  {
574
575
  className: cn(
575
- "mb-12 opacity-70 md:text-base lg:text-lg",
576
+ "mb-12 opacity-70 md:text-base lg:text-lg text-balance",
576
577
  descriptionClassName
577
578
  ),
578
579
  children: description
@@ -532,13 +532,13 @@ function ExpandableCaseStudyCards({
532
532
  ),
533
533
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-end justify-between gap-3", children: [
534
534
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-w-0 flex-1 flex-col gap-1.5", children: [
535
- item.logo && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-1 flex max-w-full items-center", children: /* @__PURE__ */ jsxRuntime.jsx(
535
+ item.logo && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-1 flex items-center", children: /* @__PURE__ */ jsxRuntime.jsx(
536
536
  img.Img,
537
537
  {
538
538
  src: item.logo,
539
539
  alt: item.logoAlt || item.company || "Logo",
540
540
  className: cn(
541
- "h-6 w-auto max-w-full object-contain object-left invert lg:h-8",
541
+ "block h-6 max-h-6 w-auto max-w-none object-contain invert lg:h-8 lg:max-h-8",
542
542
  logoClassName
543
543
  ),
544
544
  loading: "lazy",
@@ -511,13 +511,13 @@ function ExpandableCaseStudyCards({
511
511
  ),
512
512
  /* @__PURE__ */ jsxs("div", { className: "flex items-end justify-between gap-3", children: [
513
513
  /* @__PURE__ */ jsxs("div", { className: "flex min-w-0 flex-1 flex-col gap-1.5", children: [
514
- item.logo && /* @__PURE__ */ jsx("div", { className: "mb-1 flex max-w-full items-center", children: /* @__PURE__ */ jsx(
514
+ item.logo && /* @__PURE__ */ jsx("div", { className: "mb-1 flex items-center", children: /* @__PURE__ */ jsx(
515
515
  Img,
516
516
  {
517
517
  src: item.logo,
518
518
  alt: item.logoAlt || item.company || "Logo",
519
519
  className: cn(
520
- "h-6 w-auto max-w-full object-contain object-left invert lg:h-8",
520
+ "block h-6 max-h-6 w-auto max-w-none object-contain invert lg:h-8 lg:max-h-8",
521
521
  logoClassName
522
522
  ),
523
523
  loading: "lazy",
@@ -494,7 +494,7 @@ function FeatureBentoImageGrid({
494
494
  src: item.imageSrc,
495
495
  alt: item.imageAlt || (typeof item.title === "string" ? item.title : "Feature image"),
496
496
  className: cn(imageClassName, item.imageClassName),
497
- loading: "lazy",
497
+ loading: "eager",
498
498
  optixFlowConfig
499
499
  }
500
500
  );
@@ -589,9 +589,7 @@ function FeatureBentoImageGrid({
589
589
  const cardContent = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
590
590
  renderItemImage(
591
591
  item,
592
- cn(
593
- "h-full w-full rounded-xl object-cover object-center shadow-lg"
594
- )
592
+ cn("h-full w-full rounded-xl object-cover object-center shadow-lg")
595
593
  ),
596
594
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute top-0 right-0 bottom-0 left-0 translate-y-10 rounded-xl bg-linear-to-t from-black to-transparent opacity-80 transition-transform duration-300 group-hover:translate-y-0" }),
597
595
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "absolute top-0 flex h-full w-full flex-col justify-between p-7", children: [
@@ -473,7 +473,7 @@ function FeatureBentoImageGrid({
473
473
  src: item.imageSrc,
474
474
  alt: item.imageAlt || (typeof item.title === "string" ? item.title : "Feature image"),
475
475
  className: cn(imageClassName, item.imageClassName),
476
- loading: "lazy",
476
+ loading: "eager",
477
477
  optixFlowConfig
478
478
  }
479
479
  );
@@ -568,9 +568,7 @@ function FeatureBentoImageGrid({
568
568
  const cardContent = /* @__PURE__ */ jsxs(Fragment, { children: [
569
569
  renderItemImage(
570
570
  item,
571
- cn(
572
- "h-full w-full rounded-xl object-cover object-center shadow-lg"
573
- )
571
+ cn("h-full w-full rounded-xl object-cover object-center shadow-lg")
574
572
  ),
575
573
  /* @__PURE__ */ jsx("div", { className: "absolute top-0 right-0 bottom-0 left-0 translate-y-10 rounded-xl bg-linear-to-t from-black to-transparent opacity-80 transition-transform duration-300 group-hover:translate-y-0" }),
576
574
  /* @__PURE__ */ jsxs("div", { className: "absolute top-0 flex h-full w-full flex-col justify-between p-7", children: [
@@ -416,17 +416,22 @@ function FeatureIntegrationCards({
416
416
  (integration) => {
417
417
  if (integration.iconSlot) return integration.iconSlot;
418
418
  if (!integration.icon) return null;
419
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex shrink-0 items-center justify-start", children: /* @__PURE__ */ jsxRuntime.jsx(
419
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex min-w-0 max-w-full items-center justify-start", children: /* @__PURE__ */ jsxRuntime.jsx(
420
420
  img.Img,
421
421
  {
422
422
  src: integration.icon,
423
423
  alt: integration.iconAlt || (typeof integration.title === "string" ? integration.title : "Integration icon"),
424
424
  className: cn(
425
- "h-12 w-auto object-contain",
425
+ "h-12 w-auto max-w-[min(100%,9rem)] object-contain sm:max-w-[min(100%,10rem)] md:max-w-[min(100%,11rem)] lg:max-w-[min(100%,12rem)] xl:max-w-[min(100%,13rem)]",
426
426
  integration.iconClassName
427
427
  ),
428
428
  loading: "eager",
429
- optixFlowConfig
429
+ optixFlowConfig: optixFlowConfig ? {
430
+ ...optixFlowConfig,
431
+ objectFit: "contain"
432
+ } : {
433
+ objectFit: "contain"
434
+ }
430
435
  }
431
436
  ) });
432
437
  },
@@ -410,17 +410,22 @@ function FeatureIntegrationCards({
410
410
  (integration) => {
411
411
  if (integration.iconSlot) return integration.iconSlot;
412
412
  if (!integration.icon) return null;
413
- return /* @__PURE__ */ jsx("div", { className: "flex shrink-0 items-center justify-start", children: /* @__PURE__ */ jsx(
413
+ return /* @__PURE__ */ jsx("div", { className: "flex min-w-0 max-w-full items-center justify-start", children: /* @__PURE__ */ jsx(
414
414
  Img,
415
415
  {
416
416
  src: integration.icon,
417
417
  alt: integration.iconAlt || (typeof integration.title === "string" ? integration.title : "Integration icon"),
418
418
  className: cn(
419
- "h-12 w-auto object-contain",
419
+ "h-12 w-auto max-w-[min(100%,9rem)] object-contain sm:max-w-[min(100%,10rem)] md:max-w-[min(100%,11rem)] lg:max-w-[min(100%,12rem)] xl:max-w-[min(100%,13rem)]",
420
420
  integration.iconClassName
421
421
  ),
422
422
  loading: "eager",
423
- optixFlowConfig
423
+ optixFlowConfig: optixFlowConfig ? {
424
+ ...optixFlowConfig,
425
+ objectFit: "contain"
426
+ } : {
427
+ objectFit: "contain"
428
+ }
424
429
  }
425
430
  ) });
426
431
  },
@@ -601,7 +601,7 @@ function HeroTaskTimerAnimated({
601
601
  "p",
602
602
  {
603
603
  className: cn(
604
- "max-w-xl text-lg text-muted-foreground text-balance",
604
+ "max-w-full md:max-w-xl text-lg text-balance",
605
605
  descriptionClassName
606
606
  ),
607
607
  children: description
@@ -620,7 +620,7 @@ function HeroTaskTimerAnimated({
620
620
  "div",
621
621
  {
622
622
  className: cn(
623
- "size-2.5 shrink-0 rounded-full transition-colors duration-700",
623
+ "size-2.5 shrink-0 rounded-xl transition-colors duration-700",
624
624
  index === activeTaskIndex ? "bg-primary" : "bg-muted-foreground/30"
625
625
  )
626
626
  }
@@ -629,8 +629,8 @@ function HeroTaskTimerAnimated({
629
629
  "span",
630
630
  {
631
631
  className: cn(
632
- "text-sm font-medium transition-colors duration-700",
633
- index === activeTaskIndex ? "text-foreground" : "text-muted-foreground/50"
632
+ "text-sm font-medium transition-all duration-700",
633
+ index === activeTaskIndex ? "opacity-100" : "opacity-50"
634
634
  ),
635
635
  children: task
636
636
  }
@@ -708,16 +708,6 @@ function HeroTaskTimerAnimated({
708
708
  children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate rounded-full bg-primary/10 px-4 py-1.5 text-sm font-medium text-primary", children: task })
709
709
  },
710
710
  index
711
- )) }),
712
- taskItems && taskItems.length > 1 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex gap-2", children: taskItems.map((_, index) => /* @__PURE__ */ jsxRuntime.jsx(
713
- "div",
714
- {
715
- className: cn(
716
- "size-2 rounded-full transition-all duration-500",
717
- index === activeTaskIndex ? "scale-125 bg-primary" : "bg-muted-foreground/25"
718
- )
719
- },
720
- index
721
711
  )) })
722
712
  ] }) })
723
713
  ] })
@@ -595,7 +595,7 @@ function HeroTaskTimerAnimated({
595
595
  "p",
596
596
  {
597
597
  className: cn(
598
- "max-w-xl text-lg text-muted-foreground text-balance",
598
+ "max-w-full md:max-w-xl text-lg text-balance",
599
599
  descriptionClassName
600
600
  ),
601
601
  children: description
@@ -614,7 +614,7 @@ function HeroTaskTimerAnimated({
614
614
  "div",
615
615
  {
616
616
  className: cn(
617
- "size-2.5 shrink-0 rounded-full transition-colors duration-700",
617
+ "size-2.5 shrink-0 rounded-xl transition-colors duration-700",
618
618
  index === activeTaskIndex ? "bg-primary" : "bg-muted-foreground/30"
619
619
  )
620
620
  }
@@ -623,8 +623,8 @@ function HeroTaskTimerAnimated({
623
623
  "span",
624
624
  {
625
625
  className: cn(
626
- "text-sm font-medium transition-colors duration-700",
627
- index === activeTaskIndex ? "text-foreground" : "text-muted-foreground/50"
626
+ "text-sm font-medium transition-all duration-700",
627
+ index === activeTaskIndex ? "opacity-100" : "opacity-50"
628
628
  ),
629
629
  children: task
630
630
  }
@@ -702,16 +702,6 @@ function HeroTaskTimerAnimated({
702
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
703
  },
704
704
  index
705
- )) }),
706
- taskItems && taskItems.length > 1 && /* @__PURE__ */ jsx("div", { className: "flex gap-2", children: taskItems.map((_, index) => /* @__PURE__ */ jsx(
707
- "div",
708
- {
709
- className: cn(
710
- "size-2 rounded-full transition-all duration-500",
711
- index === activeTaskIndex ? "scale-125 bg-primary" : "bg-muted-foreground/25"
712
- )
713
- },
714
- index
715
705
  )) })
716
706
  ] }) })
717
707
  ] })
@@ -802,7 +802,8 @@ var SolutionsMenu = ({
802
802
  src: featuredHeroCard.image,
803
803
  alt: featuredHeroCard.title,
804
804
  className: "h-full w-full object-cover",
805
- optixFlowConfig
805
+ optixFlowConfig,
806
+ loading: "eager"
806
807
  }
807
808
  ) })
808
809
  ]
@@ -961,7 +962,8 @@ var ProductsMenu = ({
961
962
  src: featuredHeroCard.image,
962
963
  alt: featuredHeroCard.title,
963
964
  className: "h-full w-full object-cover",
964
- optixFlowConfig
965
+ optixFlowConfig,
966
+ loading: "eager"
965
967
  }
966
968
  ) }),
967
969
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col p-5", children: [
@@ -995,7 +997,8 @@ var ProductsMenu = ({
995
997
  src: product.image,
996
998
  alt: product.title,
997
999
  className: "h-full w-full object-cover",
998
- optixFlowConfig
1000
+ optixFlowConfig,
1001
+ loading: "eager"
999
1002
  }
1000
1003
  ) }),
1001
1004
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
@@ -1028,7 +1031,8 @@ var ResourcesMenu = ({
1028
1031
  {
1029
1032
  src: featuredHeroCard.image,
1030
1033
  alt: featuredHeroCard.title,
1031
- className: "h-full w-full object-cover invert"
1034
+ className: "h-full w-full object-cover invert",
1035
+ loading: "eager"
1032
1036
  }
1033
1037
  ) }),
1034
1038
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col p-5", children: [
@@ -1081,7 +1085,14 @@ var ResourcesMenu = ({
1081
1085
  href: topic.href,
1082
1086
  className: "group !flex !w-full items-center gap-2 rounded-lg p-2 hover:bg-muted",
1083
1087
  children: [
1084
- /* @__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
+ ),
1085
1096
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "min-w-0 flex-1 text-sm font-medium", children: topic.title })
1086
1097
  ]
1087
1098
  },
@@ -1112,7 +1123,8 @@ var GlobalMenu = ({
1112
1123
  src: featuredHeroCard.image,
1113
1124
  alt: featuredHeroCard.title,
1114
1125
  className: "h-full w-full object-cover",
1115
- optixFlowConfig
1126
+ optixFlowConfig,
1127
+ loading: "eager"
1116
1128
  }
1117
1129
  ) }),
1118
1130
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col p-5", children: [
@@ -1207,7 +1219,8 @@ var PartnersMenu = ({
1207
1219
  "h-full w-full object-cover",
1208
1220
  featuredHeroCard.imagePosition === "background" && "invert"
1209
1221
  ),
1210
- optixFlowConfig
1222
+ optixFlowConfig,
1223
+ loading: "eager"
1211
1224
  }
1212
1225
  ) }),
1213
1226
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col p-5", children: [
@@ -779,7 +779,8 @@ var SolutionsMenu = ({
779
779
  src: featuredHeroCard.image,
780
780
  alt: featuredHeroCard.title,
781
781
  className: "h-full w-full object-cover",
782
- optixFlowConfig
782
+ optixFlowConfig,
783
+ loading: "eager"
783
784
  }
784
785
  ) })
785
786
  ]
@@ -938,7 +939,8 @@ var ProductsMenu = ({
938
939
  src: featuredHeroCard.image,
939
940
  alt: featuredHeroCard.title,
940
941
  className: "h-full w-full object-cover",
941
- optixFlowConfig
942
+ optixFlowConfig,
943
+ loading: "eager"
942
944
  }
943
945
  ) }),
944
946
  /* @__PURE__ */ jsxs("div", { className: "flex flex-col p-5", children: [
@@ -972,7 +974,8 @@ var ProductsMenu = ({
972
974
  src: product.image,
973
975
  alt: product.title,
974
976
  className: "h-full w-full object-cover",
975
- optixFlowConfig
977
+ optixFlowConfig,
978
+ loading: "eager"
976
979
  }
977
980
  ) }),
978
981
  /* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1", children: [
@@ -1005,7 +1008,8 @@ var ResourcesMenu = ({
1005
1008
  {
1006
1009
  src: featuredHeroCard.image,
1007
1010
  alt: featuredHeroCard.title,
1008
- className: "h-full w-full object-cover invert"
1011
+ className: "h-full w-full object-cover invert",
1012
+ loading: "eager"
1009
1013
  }
1010
1014
  ) }),
1011
1015
  /* @__PURE__ */ jsxs("div", { className: "flex flex-col p-5", children: [
@@ -1058,7 +1062,14 @@ var ResourcesMenu = ({
1058
1062
  href: topic.href,
1059
1063
  className: "group !flex !w-full items-center gap-2 rounded-lg p-2 hover:bg-muted",
1060
1064
  children: [
1061
- /* @__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
+ ),
1062
1073
  /* @__PURE__ */ jsx("span", { className: "min-w-0 flex-1 text-sm font-medium", children: topic.title })
1063
1074
  ]
1064
1075
  },
@@ -1089,7 +1100,8 @@ var GlobalMenu = ({
1089
1100
  src: featuredHeroCard.image,
1090
1101
  alt: featuredHeroCard.title,
1091
1102
  className: "h-full w-full object-cover",
1092
- optixFlowConfig
1103
+ optixFlowConfig,
1104
+ loading: "eager"
1093
1105
  }
1094
1106
  ) }),
1095
1107
  /* @__PURE__ */ jsxs("div", { className: "flex flex-col p-5", children: [
@@ -1184,7 +1196,8 @@ var PartnersMenu = ({
1184
1196
  "h-full w-full object-cover",
1185
1197
  featuredHeroCard.imagePosition === "background" && "invert"
1186
1198
  ),
1187
- optixFlowConfig
1199
+ optixFlowConfig,
1200
+ loading: "eager"
1188
1201
  }
1189
1202
  ) }),
1190
1203
  /* @__PURE__ */ jsxs("div", { className: "flex flex-col p-5", children: [
package/dist/registry.cjs CHANGED
@@ -25534,17 +25534,22 @@ function FeatureIntegrationCards({
25534
25534
  (integration) => {
25535
25535
  if (integration.iconSlot) return integration.iconSlot;
25536
25536
  if (!integration.icon) return null;
25537
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex shrink-0 items-center justify-start", children: /* @__PURE__ */ jsxRuntime.jsx(
25537
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex min-w-0 max-w-full items-center justify-start", children: /* @__PURE__ */ jsxRuntime.jsx(
25538
25538
  img$1.Img,
25539
25539
  {
25540
25540
  src: integration.icon,
25541
25541
  alt: integration.iconAlt || (typeof integration.title === "string" ? integration.title : "Integration icon"),
25542
25542
  className: cn(
25543
- "h-12 w-auto object-contain",
25543
+ "h-12 w-auto max-w-[min(100%,9rem)] object-contain sm:max-w-[min(100%,10rem)] md:max-w-[min(100%,11rem)] lg:max-w-[min(100%,12rem)] xl:max-w-[min(100%,13rem)]",
25544
25544
  integration.iconClassName
25545
25545
  ),
25546
25546
  loading: "eager",
25547
- optixFlowConfig
25547
+ optixFlowConfig: optixFlowConfig ? {
25548
+ ...optixFlowConfig,
25549
+ objectFit: "contain"
25550
+ } : {
25551
+ objectFit: "contain"
25552
+ }
25548
25553
  }
25549
25554
  ) });
25550
25555
  },
@@ -26410,7 +26415,7 @@ function FeatureBentoImageGrid({
26410
26415
  src: item.imageSrc,
26411
26416
  alt: item.imageAlt || (typeof item.title === "string" ? item.title : "Feature image"),
26412
26417
  className: cn(imageClassName, item.imageClassName),
26413
- loading: "lazy",
26418
+ loading: "eager",
26414
26419
  optixFlowConfig
26415
26420
  }
26416
26421
  );
@@ -26505,9 +26510,7 @@ function FeatureBentoImageGrid({
26505
26510
  const cardContent = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
26506
26511
  renderItemImage(
26507
26512
  item,
26508
- cn(
26509
- "h-full w-full rounded-xl object-cover object-center shadow-lg"
26510
- )
26513
+ cn("h-full w-full rounded-xl object-cover object-center shadow-lg")
26511
26514
  ),
26512
26515
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute top-0 right-0 bottom-0 left-0 translate-y-10 rounded-xl bg-linear-to-t from-black to-transparent opacity-80 transition-transform duration-300 group-hover:translate-y-0" }),
26513
26516
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "absolute top-0 flex h-full w-full flex-col justify-between p-7", children: [
@@ -31754,13 +31757,13 @@ function ExpandableCaseStudyCards({
31754
31757
  ),
31755
31758
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-end justify-between gap-3", children: [
31756
31759
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-w-0 flex-1 flex-col gap-1.5", children: [
31757
- item.logo && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-1 flex max-w-full items-center", children: /* @__PURE__ */ jsxRuntime.jsx(
31760
+ item.logo && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-1 flex items-center", children: /* @__PURE__ */ jsxRuntime.jsx(
31758
31761
  img$1.Img,
31759
31762
  {
31760
31763
  src: item.logo,
31761
31764
  alt: item.logoAlt || item.company || "Logo",
31762
31765
  className: cn(
31763
- "h-6 w-auto max-w-full object-contain object-left invert lg:h-8",
31766
+ "block h-6 max-h-6 w-auto max-w-none object-contain invert lg:h-8 lg:max-h-8",
31764
31767
  logoClassName
31765
31768
  ),
31766
31769
  loading: "lazy",
@@ -36901,7 +36904,8 @@ function BlogHorizontalCards({
36901
36904
  src: post.image,
36902
36905
  alt: postTitle,
36903
36906
  className: "aspect-video w-full rounded-lg object-cover object-center sm:w-[260px]",
36904
- optixFlowConfig
36907
+ optixFlowConfig,
36908
+ loading: "eager"
36905
36909
  }
36906
36910
  )
36907
36911
  }
@@ -36914,14 +36918,14 @@ function BlogHorizontalCards({
36914
36918
  ] }),
36915
36919
  post.title && /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-xl leading-tight font-bold lg:text-2xl", children: /* @__PURE__ */ jsxRuntime.jsx(pressable.Pressable, { href: postHref, className: "hover:underline", children: post.title }) }),
36916
36920
  postSummary && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-base opacity-70", children: postSummary }),
36917
- readMoreText && /* @__PURE__ */ jsxRuntime.jsxs(pressable.Pressable, { href: postHref, variant: "link", children: [
36921
+ readMoreText && /* @__PURE__ */ jsxRuntime.jsxs(pressable.Pressable, { href: postHref, variant: "outline", children: [
36918
36922
  readMoreText,
36919
36923
  /* @__PURE__ */ jsxRuntime.jsx(
36920
36924
  DynamicIcon,
36921
36925
  {
36922
36926
  name: "lucide/arrow-right",
36923
36927
  size: 16,
36924
- className: "ml-2 size-4"
36928
+ className: "size-4"
36925
36929
  }
36926
36930
  )
36927
36931
  ] })
@@ -36959,7 +36963,7 @@ function BlogHorizontalCards({
36959
36963
  "p",
36960
36964
  {
36961
36965
  className: cn(
36962
- "mb-12 opacity-70 md:text-base lg:text-lg",
36966
+ "mb-12 opacity-70 md:text-base lg:text-lg text-balance",
36963
36967
  descriptionClassName
36964
36968
  ),
36965
36969
  children: description
@@ -54297,7 +54301,7 @@ function HeroTaskTimerAnimated({
54297
54301
  "p",
54298
54302
  {
54299
54303
  className: cn(
54300
- "max-w-xl text-lg text-muted-foreground text-balance",
54304
+ "max-w-full md:max-w-xl text-lg text-balance",
54301
54305
  descriptionClassName
54302
54306
  ),
54303
54307
  children: description
@@ -54316,7 +54320,7 @@ function HeroTaskTimerAnimated({
54316
54320
  "div",
54317
54321
  {
54318
54322
  className: cn(
54319
- "size-2.5 shrink-0 rounded-full transition-colors duration-700",
54323
+ "size-2.5 shrink-0 rounded-xl transition-colors duration-700",
54320
54324
  index === activeTaskIndex ? "bg-primary" : "bg-muted-foreground/30"
54321
54325
  )
54322
54326
  }
@@ -54325,8 +54329,8 @@ function HeroTaskTimerAnimated({
54325
54329
  "span",
54326
54330
  {
54327
54331
  className: cn(
54328
- "text-sm font-medium transition-colors duration-700",
54329
- index === activeTaskIndex ? "text-foreground" : "text-muted-foreground/50"
54332
+ "text-sm font-medium transition-all duration-700",
54333
+ index === activeTaskIndex ? "opacity-100" : "opacity-50"
54330
54334
  ),
54331
54335
  children: task
54332
54336
  }
@@ -54404,16 +54408,6 @@ function HeroTaskTimerAnimated({
54404
54408
  children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate rounded-full bg-primary/10 px-4 py-1.5 text-sm font-medium text-primary", children: task })
54405
54409
  },
54406
54410
  index
54407
- )) }),
54408
- taskItems && taskItems.length > 1 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex gap-2", children: taskItems.map((_, index) => /* @__PURE__ */ jsxRuntime.jsx(
54409
- "div",
54410
- {
54411
- className: cn(
54412
- "size-2 rounded-full transition-all duration-500",
54413
- index === activeTaskIndex ? "scale-125 bg-primary" : "bg-muted-foreground/25"
54414
- )
54415
- },
54416
- index
54417
54411
  )) })
54418
54412
  ] }) })
54419
54413
  ] })
@@ -64572,7 +64566,8 @@ var SolutionsMenu = ({
64572
64566
  src: featuredHeroCard.image,
64573
64567
  alt: featuredHeroCard.title,
64574
64568
  className: "h-full w-full object-cover",
64575
- optixFlowConfig
64569
+ optixFlowConfig,
64570
+ loading: "eager"
64576
64571
  }
64577
64572
  ) })
64578
64573
  ]
@@ -64731,7 +64726,8 @@ var ProductsMenu = ({
64731
64726
  src: featuredHeroCard.image,
64732
64727
  alt: featuredHeroCard.title,
64733
64728
  className: "h-full w-full object-cover",
64734
- optixFlowConfig
64729
+ optixFlowConfig,
64730
+ loading: "eager"
64735
64731
  }
64736
64732
  ) }),
64737
64733
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col p-5", children: [
@@ -64765,7 +64761,8 @@ var ProductsMenu = ({
64765
64761
  src: product.image,
64766
64762
  alt: product.title,
64767
64763
  className: "h-full w-full object-cover",
64768
- optixFlowConfig
64764
+ optixFlowConfig,
64765
+ loading: "eager"
64769
64766
  }
64770
64767
  ) }),
64771
64768
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
@@ -64798,7 +64795,8 @@ var ResourcesMenu = ({
64798
64795
  {
64799
64796
  src: featuredHeroCard.image,
64800
64797
  alt: featuredHeroCard.title,
64801
- className: "h-full w-full object-cover invert"
64798
+ className: "h-full w-full object-cover invert",
64799
+ loading: "eager"
64802
64800
  }
64803
64801
  ) }),
64804
64802
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col p-5", children: [
@@ -64851,7 +64849,14 @@ var ResourcesMenu = ({
64851
64849
  href: topic.href,
64852
64850
  className: "group !flex !w-full items-center gap-2 rounded-lg p-2 hover:bg-muted",
64853
64851
  children: [
64854
- /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: topic.icon, size: 14, className: "shrink-0" }),
64852
+ /* @__PURE__ */ jsxRuntime.jsx(
64853
+ DynamicIcon,
64854
+ {
64855
+ name: topic.icon,
64856
+ size: 14,
64857
+ className: "shrink-0"
64858
+ }
64859
+ ),
64855
64860
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "min-w-0 flex-1 text-sm font-medium", children: topic.title })
64856
64861
  ]
64857
64862
  },
@@ -64882,7 +64887,8 @@ var GlobalMenu = ({
64882
64887
  src: featuredHeroCard.image,
64883
64888
  alt: featuredHeroCard.title,
64884
64889
  className: "h-full w-full object-cover",
64885
- optixFlowConfig
64890
+ optixFlowConfig,
64891
+ loading: "eager"
64886
64892
  }
64887
64893
  ) }),
64888
64894
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col p-5", children: [
@@ -64977,7 +64983,8 @@ var PartnersMenu = ({
64977
64983
  "h-full w-full object-cover",
64978
64984
  featuredHeroCard.imagePosition === "background" && "invert"
64979
64985
  ),
64980
- optixFlowConfig
64986
+ optixFlowConfig,
64987
+ loading: "eager"
64981
64988
  }
64982
64989
  ) }),
64983
64990
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col p-5", children: [
@@ -110347,50 +110354,53 @@ var carouselSidebarResources = {
110347
110354
  };
110348
110355
  var carouselIconTabs = {
110349
110356
  exampleUsage: "Showcase product features or workflow steps with a centered heading and badge, a full-width image carousel, and clickable icon-tab sections below that sync to carousel slides. Each tab shows an icon, title, and description.",
110350
- importantUsageNotes: `${GALLERY_MEDIA_NOTE} title text The 'badge' prop appears below the heading as a secondary badge \u2013 keep it short (2\u20134 words). Tabs are only visible on 'md' and above; on mobile the description appears inline below each slide image. Clicking a slide image opens a built-in lightbox \u2013 no extra configuration needed. Provide 3\u20136 sections; more than 6 makes the tab row too crowded on desktop.`,
110357
+ importantUsageNotes: `${GALLERY_MEDIA_NOTE} title text The 'badge' prop appears below the heading as a secondary badge \u2013 keep it short (2\u20134 words). Tabs are only visible on 'md' and above; on mobile the description appears inline below each slide image. Clicking a slide image opens a built-in lightbox \u2013 no extra configuration needed. Provide exactly 3 sections for ideal layout balance; fewer looks sparse, more crowds the tab row on desktop.`,
110351
110358
  usageRequirements: {
110352
- requiredProps: [],
110359
+ requiredProps: ["sections"],
110353
110360
  requiresSiteCapabilities: galleryCapabilities("media_library"),
110354
110361
  propConstraints: {
110355
110362
  sections: {
110363
+ required: true,
110364
+ count: 3,
110356
110365
  minItems: 3,
110357
- maxItems: 6
110366
+ maxItems: 3
110358
110367
  }
110359
110368
  },
110360
110369
  mediaSlots: {
110361
110370
  "sections[].img": {
110362
110371
  path: "sections[].img",
110363
110372
  roles: ["gallery", "feature"],
110364
- required: false
110373
+ required: true
110365
110374
  }
110366
110375
  }
110367
110376
  },
110368
110377
  exampleProps: {
110369
- heading: "Cut the time it takes to close your books",
110370
- badge: "Streamline your workflow",
110378
+ heading: "Platform Features",
110379
+ badge: "Enterprise Ready",
110371
110380
  background: "white",
110372
- spacing: "lg",
110381
+ pattern: "gridFadeTop",
110382
+ patternOpacity: 0.9,
110373
110383
  sections: [
110374
110384
  {
110375
110385
  img: GALLERY_EXAMPLE_IMAGE_URL,
110376
- alt: "Advanced Analytics",
110386
+ alt: "Analytics Dashboard",
110377
110387
  title: "Advanced Analytics",
110378
- text: "Comprehensive analytics dashboard with real-time data visualization and predictive insights.",
110388
+ text: "Comprehensive analytics dashboard with real-time data visualization, custom reports, and predictive insights. Track KPIs, user behavior, and business metrics in one unified platform.",
110379
110389
  icon: "lucide/bar-chart-3"
110380
110390
  },
110381
110391
  {
110382
110392
  img: GALLERY_EXAMPLE_IMAGE_URL,
110383
110393
  alt: "Team Collaboration",
110384
110394
  title: "Team Collaboration",
110385
- text: "Built-in tools including real-time messaging, file sharing, and project management.",
110395
+ text: "Built-in collaboration tools including real-time messaging, file sharing, and project management. Keep your team aligned and productive with seamless communication.",
110386
110396
  icon: "lucide/users"
110387
110397
  },
110388
110398
  {
110389
110399
  img: GALLERY_EXAMPLE_IMAGE_URL,
110390
- alt: "Automation Engine",
110391
- title: "Automation Engine",
110392
- text: "Powerful workflow automation with a visual builder and pre-built templates.",
110393
- icon: "lucide/workflow"
110400
+ alt: "API Integration",
110401
+ title: "API Integration",
110402
+ text: "Extensive REST API with comprehensive documentation and SDKs for all major languages. Connect with your existing tools and build custom integrations effortlessly.",
110403
+ icon: "lucide/plug"
110394
110404
  }
110395
110405
  ]
110396
110406
  }
package/dist/registry.js CHANGED
@@ -25494,17 +25494,22 @@ function FeatureIntegrationCards({
25494
25494
  (integration) => {
25495
25495
  if (integration.iconSlot) return integration.iconSlot;
25496
25496
  if (!integration.icon) return null;
25497
- return /* @__PURE__ */ jsx("div", { className: "flex shrink-0 items-center justify-start", children: /* @__PURE__ */ jsx(
25497
+ return /* @__PURE__ */ jsx("div", { className: "flex min-w-0 max-w-full items-center justify-start", children: /* @__PURE__ */ jsx(
25498
25498
  Img,
25499
25499
  {
25500
25500
  src: integration.icon,
25501
25501
  alt: integration.iconAlt || (typeof integration.title === "string" ? integration.title : "Integration icon"),
25502
25502
  className: cn(
25503
- "h-12 w-auto object-contain",
25503
+ "h-12 w-auto max-w-[min(100%,9rem)] object-contain sm:max-w-[min(100%,10rem)] md:max-w-[min(100%,11rem)] lg:max-w-[min(100%,12rem)] xl:max-w-[min(100%,13rem)]",
25504
25504
  integration.iconClassName
25505
25505
  ),
25506
25506
  loading: "eager",
25507
- optixFlowConfig
25507
+ optixFlowConfig: optixFlowConfig ? {
25508
+ ...optixFlowConfig,
25509
+ objectFit: "contain"
25510
+ } : {
25511
+ objectFit: "contain"
25512
+ }
25508
25513
  }
25509
25514
  ) });
25510
25515
  },
@@ -26370,7 +26375,7 @@ function FeatureBentoImageGrid({
26370
26375
  src: item.imageSrc,
26371
26376
  alt: item.imageAlt || (typeof item.title === "string" ? item.title : "Feature image"),
26372
26377
  className: cn(imageClassName, item.imageClassName),
26373
- loading: "lazy",
26378
+ loading: "eager",
26374
26379
  optixFlowConfig
26375
26380
  }
26376
26381
  );
@@ -26465,9 +26470,7 @@ function FeatureBentoImageGrid({
26465
26470
  const cardContent = /* @__PURE__ */ jsxs(Fragment, { children: [
26466
26471
  renderItemImage(
26467
26472
  item,
26468
- cn(
26469
- "h-full w-full rounded-xl object-cover object-center shadow-lg"
26470
- )
26473
+ cn("h-full w-full rounded-xl object-cover object-center shadow-lg")
26471
26474
  ),
26472
26475
  /* @__PURE__ */ jsx("div", { className: "absolute top-0 right-0 bottom-0 left-0 translate-y-10 rounded-xl bg-linear-to-t from-black to-transparent opacity-80 transition-transform duration-300 group-hover:translate-y-0" }),
26473
26476
  /* @__PURE__ */ jsxs("div", { className: "absolute top-0 flex h-full w-full flex-col justify-between p-7", children: [
@@ -31714,13 +31717,13 @@ function ExpandableCaseStudyCards({
31714
31717
  ),
31715
31718
  /* @__PURE__ */ jsxs("div", { className: "flex items-end justify-between gap-3", children: [
31716
31719
  /* @__PURE__ */ jsxs("div", { className: "flex min-w-0 flex-1 flex-col gap-1.5", children: [
31717
- item.logo && /* @__PURE__ */ jsx("div", { className: "mb-1 flex max-w-full items-center", children: /* @__PURE__ */ jsx(
31720
+ item.logo && /* @__PURE__ */ jsx("div", { className: "mb-1 flex items-center", children: /* @__PURE__ */ jsx(
31718
31721
  Img,
31719
31722
  {
31720
31723
  src: item.logo,
31721
31724
  alt: item.logoAlt || item.company || "Logo",
31722
31725
  className: cn(
31723
- "h-6 w-auto max-w-full object-contain object-left invert lg:h-8",
31726
+ "block h-6 max-h-6 w-auto max-w-none object-contain invert lg:h-8 lg:max-h-8",
31724
31727
  logoClassName
31725
31728
  ),
31726
31729
  loading: "lazy",
@@ -36861,7 +36864,8 @@ function BlogHorizontalCards({
36861
36864
  src: post.image,
36862
36865
  alt: postTitle,
36863
36866
  className: "aspect-video w-full rounded-lg object-cover object-center sm:w-[260px]",
36864
- optixFlowConfig
36867
+ optixFlowConfig,
36868
+ loading: "eager"
36865
36869
  }
36866
36870
  )
36867
36871
  }
@@ -36874,14 +36878,14 @@ function BlogHorizontalCards({
36874
36878
  ] }),
36875
36879
  post.title && /* @__PURE__ */ jsx("h3", { className: "text-xl leading-tight font-bold lg:text-2xl", children: /* @__PURE__ */ jsx(Pressable, { href: postHref, className: "hover:underline", children: post.title }) }),
36876
36880
  postSummary && /* @__PURE__ */ jsx("p", { className: "text-base opacity-70", children: postSummary }),
36877
- readMoreText && /* @__PURE__ */ jsxs(Pressable, { href: postHref, variant: "link", children: [
36881
+ readMoreText && /* @__PURE__ */ jsxs(Pressable, { href: postHref, variant: "outline", children: [
36878
36882
  readMoreText,
36879
36883
  /* @__PURE__ */ jsx(
36880
36884
  DynamicIcon,
36881
36885
  {
36882
36886
  name: "lucide/arrow-right",
36883
36887
  size: 16,
36884
- className: "ml-2 size-4"
36888
+ className: "size-4"
36885
36889
  }
36886
36890
  )
36887
36891
  ] })
@@ -36919,7 +36923,7 @@ function BlogHorizontalCards({
36919
36923
  "p",
36920
36924
  {
36921
36925
  className: cn(
36922
- "mb-12 opacity-70 md:text-base lg:text-lg",
36926
+ "mb-12 opacity-70 md:text-base lg:text-lg text-balance",
36923
36927
  descriptionClassName
36924
36928
  ),
36925
36929
  children: description
@@ -54257,7 +54261,7 @@ function HeroTaskTimerAnimated({
54257
54261
  "p",
54258
54262
  {
54259
54263
  className: cn(
54260
- "max-w-xl text-lg text-muted-foreground text-balance",
54264
+ "max-w-full md:max-w-xl text-lg text-balance",
54261
54265
  descriptionClassName
54262
54266
  ),
54263
54267
  children: description
@@ -54276,7 +54280,7 @@ function HeroTaskTimerAnimated({
54276
54280
  "div",
54277
54281
  {
54278
54282
  className: cn(
54279
- "size-2.5 shrink-0 rounded-full transition-colors duration-700",
54283
+ "size-2.5 shrink-0 rounded-xl transition-colors duration-700",
54280
54284
  index === activeTaskIndex ? "bg-primary" : "bg-muted-foreground/30"
54281
54285
  )
54282
54286
  }
@@ -54285,8 +54289,8 @@ function HeroTaskTimerAnimated({
54285
54289
  "span",
54286
54290
  {
54287
54291
  className: cn(
54288
- "text-sm font-medium transition-colors duration-700",
54289
- index === activeTaskIndex ? "text-foreground" : "text-muted-foreground/50"
54292
+ "text-sm font-medium transition-all duration-700",
54293
+ index === activeTaskIndex ? "opacity-100" : "opacity-50"
54290
54294
  ),
54291
54295
  children: task
54292
54296
  }
@@ -54364,16 +54368,6 @@ function HeroTaskTimerAnimated({
54364
54368
  children: /* @__PURE__ */ jsx("span", { className: "truncate rounded-full bg-primary/10 px-4 py-1.5 text-sm font-medium text-primary", children: task })
54365
54369
  },
54366
54370
  index
54367
- )) }),
54368
- taskItems && taskItems.length > 1 && /* @__PURE__ */ jsx("div", { className: "flex gap-2", children: taskItems.map((_, index) => /* @__PURE__ */ jsx(
54369
- "div",
54370
- {
54371
- className: cn(
54372
- "size-2 rounded-full transition-all duration-500",
54373
- index === activeTaskIndex ? "scale-125 bg-primary" : "bg-muted-foreground/25"
54374
- )
54375
- },
54376
- index
54377
54371
  )) })
54378
54372
  ] }) })
54379
54373
  ] })
@@ -64532,7 +64526,8 @@ var SolutionsMenu = ({
64532
64526
  src: featuredHeroCard.image,
64533
64527
  alt: featuredHeroCard.title,
64534
64528
  className: "h-full w-full object-cover",
64535
- optixFlowConfig
64529
+ optixFlowConfig,
64530
+ loading: "eager"
64536
64531
  }
64537
64532
  ) })
64538
64533
  ]
@@ -64691,7 +64686,8 @@ var ProductsMenu = ({
64691
64686
  src: featuredHeroCard.image,
64692
64687
  alt: featuredHeroCard.title,
64693
64688
  className: "h-full w-full object-cover",
64694
- optixFlowConfig
64689
+ optixFlowConfig,
64690
+ loading: "eager"
64695
64691
  }
64696
64692
  ) }),
64697
64693
  /* @__PURE__ */ jsxs("div", { className: "flex flex-col p-5", children: [
@@ -64725,7 +64721,8 @@ var ProductsMenu = ({
64725
64721
  src: product.image,
64726
64722
  alt: product.title,
64727
64723
  className: "h-full w-full object-cover",
64728
- optixFlowConfig
64724
+ optixFlowConfig,
64725
+ loading: "eager"
64729
64726
  }
64730
64727
  ) }),
64731
64728
  /* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1", children: [
@@ -64758,7 +64755,8 @@ var ResourcesMenu = ({
64758
64755
  {
64759
64756
  src: featuredHeroCard.image,
64760
64757
  alt: featuredHeroCard.title,
64761
- className: "h-full w-full object-cover invert"
64758
+ className: "h-full w-full object-cover invert",
64759
+ loading: "eager"
64762
64760
  }
64763
64761
  ) }),
64764
64762
  /* @__PURE__ */ jsxs("div", { className: "flex flex-col p-5", children: [
@@ -64811,7 +64809,14 @@ var ResourcesMenu = ({
64811
64809
  href: topic.href,
64812
64810
  className: "group !flex !w-full items-center gap-2 rounded-lg p-2 hover:bg-muted",
64813
64811
  children: [
64814
- /* @__PURE__ */ jsx(DynamicIcon, { name: topic.icon, size: 14, className: "shrink-0" }),
64812
+ /* @__PURE__ */ jsx(
64813
+ DynamicIcon,
64814
+ {
64815
+ name: topic.icon,
64816
+ size: 14,
64817
+ className: "shrink-0"
64818
+ }
64819
+ ),
64815
64820
  /* @__PURE__ */ jsx("span", { className: "min-w-0 flex-1 text-sm font-medium", children: topic.title })
64816
64821
  ]
64817
64822
  },
@@ -64842,7 +64847,8 @@ var GlobalMenu = ({
64842
64847
  src: featuredHeroCard.image,
64843
64848
  alt: featuredHeroCard.title,
64844
64849
  className: "h-full w-full object-cover",
64845
- optixFlowConfig
64850
+ optixFlowConfig,
64851
+ loading: "eager"
64846
64852
  }
64847
64853
  ) }),
64848
64854
  /* @__PURE__ */ jsxs("div", { className: "flex flex-col p-5", children: [
@@ -64937,7 +64943,8 @@ var PartnersMenu = ({
64937
64943
  "h-full w-full object-cover",
64938
64944
  featuredHeroCard.imagePosition === "background" && "invert"
64939
64945
  ),
64940
- optixFlowConfig
64946
+ optixFlowConfig,
64947
+ loading: "eager"
64941
64948
  }
64942
64949
  ) }),
64943
64950
  /* @__PURE__ */ jsxs("div", { className: "flex flex-col p-5", children: [
@@ -110307,50 +110314,53 @@ var carouselSidebarResources = {
110307
110314
  };
110308
110315
  var carouselIconTabs = {
110309
110316
  exampleUsage: "Showcase product features or workflow steps with a centered heading and badge, a full-width image carousel, and clickable icon-tab sections below that sync to carousel slides. Each tab shows an icon, title, and description.",
110310
- importantUsageNotes: `${GALLERY_MEDIA_NOTE} title text The 'badge' prop appears below the heading as a secondary badge \u2013 keep it short (2\u20134 words). Tabs are only visible on 'md' and above; on mobile the description appears inline below each slide image. Clicking a slide image opens a built-in lightbox \u2013 no extra configuration needed. Provide 3\u20136 sections; more than 6 makes the tab row too crowded on desktop.`,
110317
+ importantUsageNotes: `${GALLERY_MEDIA_NOTE} title text The 'badge' prop appears below the heading as a secondary badge \u2013 keep it short (2\u20134 words). Tabs are only visible on 'md' and above; on mobile the description appears inline below each slide image. Clicking a slide image opens a built-in lightbox \u2013 no extra configuration needed. Provide exactly 3 sections for ideal layout balance; fewer looks sparse, more crowds the tab row on desktop.`,
110311
110318
  usageRequirements: {
110312
- requiredProps: [],
110319
+ requiredProps: ["sections"],
110313
110320
  requiresSiteCapabilities: galleryCapabilities("media_library"),
110314
110321
  propConstraints: {
110315
110322
  sections: {
110323
+ required: true,
110324
+ count: 3,
110316
110325
  minItems: 3,
110317
- maxItems: 6
110326
+ maxItems: 3
110318
110327
  }
110319
110328
  },
110320
110329
  mediaSlots: {
110321
110330
  "sections[].img": {
110322
110331
  path: "sections[].img",
110323
110332
  roles: ["gallery", "feature"],
110324
- required: false
110333
+ required: true
110325
110334
  }
110326
110335
  }
110327
110336
  },
110328
110337
  exampleProps: {
110329
- heading: "Cut the time it takes to close your books",
110330
- badge: "Streamline your workflow",
110338
+ heading: "Platform Features",
110339
+ badge: "Enterprise Ready",
110331
110340
  background: "white",
110332
- spacing: "lg",
110341
+ pattern: "gridFadeTop",
110342
+ patternOpacity: 0.9,
110333
110343
  sections: [
110334
110344
  {
110335
110345
  img: GALLERY_EXAMPLE_IMAGE_URL,
110336
- alt: "Advanced Analytics",
110346
+ alt: "Analytics Dashboard",
110337
110347
  title: "Advanced Analytics",
110338
- text: "Comprehensive analytics dashboard with real-time data visualization and predictive insights.",
110348
+ text: "Comprehensive analytics dashboard with real-time data visualization, custom reports, and predictive insights. Track KPIs, user behavior, and business metrics in one unified platform.",
110339
110349
  icon: "lucide/bar-chart-3"
110340
110350
  },
110341
110351
  {
110342
110352
  img: GALLERY_EXAMPLE_IMAGE_URL,
110343
110353
  alt: "Team Collaboration",
110344
110354
  title: "Team Collaboration",
110345
- text: "Built-in tools including real-time messaging, file sharing, and project management.",
110355
+ text: "Built-in collaboration tools including real-time messaging, file sharing, and project management. Keep your team aligned and productive with seamless communication.",
110346
110356
  icon: "lucide/users"
110347
110357
  },
110348
110358
  {
110349
110359
  img: GALLERY_EXAMPLE_IMAGE_URL,
110350
- alt: "Automation Engine",
110351
- title: "Automation Engine",
110352
- text: "Powerful workflow automation with a visual builder and pre-built templates.",
110353
- icon: "lucide/workflow"
110360
+ alt: "API Integration",
110361
+ title: "API Integration",
110362
+ text: "Extensive REST API with comprehensive documentation and SDKs for all major languages. Connect with your existing tools and build custom integrations effortlessly.",
110363
+ icon: "lucide/plug"
110354
110364
  }
110355
110365
  ]
110356
110366
  }
@@ -77,6 +77,6 @@ interface SocialLinkIconProps extends Omit<PressableProps, "children">, SocialLi
77
77
  * />
78
78
  * ```
79
79
  */
80
- declare const SocialLinkIcon: React.ForwardRefExoticComponent<SocialLinkIconProps & React.RefAttributes<HTMLAnchorElement | HTMLButtonElement | HTMLSpanElement>>;
80
+ declare const SocialLinkIcon: React.ForwardRefExoticComponent<SocialLinkIconProps & React.RefAttributes<HTMLButtonElement | HTMLAnchorElement | HTMLSpanElement>>;
81
81
 
82
82
  export { SocialLinkIcon, type SocialLinkIconDynamicIconProps, type SocialLinkIconProps };
@@ -77,6 +77,6 @@ interface SocialLinkIconProps extends Omit<PressableProps, "children">, SocialLi
77
77
  * />
78
78
  * ```
79
79
  */
80
- declare const SocialLinkIcon: React.ForwardRefExoticComponent<SocialLinkIconProps & React.RefAttributes<HTMLAnchorElement | HTMLButtonElement | HTMLSpanElement>>;
80
+ declare const SocialLinkIcon: React.ForwardRefExoticComponent<SocialLinkIconProps & React.RefAttributes<HTMLButtonElement | HTMLAnchorElement | HTMLSpanElement>>;
81
81
 
82
82
  export { SocialLinkIcon, type SocialLinkIconDynamicIconProps, type SocialLinkIconProps };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opensite/ui",
3
- "version": "3.7.6",
3
+ "version": "3.7.7",
4
4
  "description": "Foundational UI component library for OpenSite Semantic Site Builder with tree-shakable exports and abstract styling",
5
5
  "keywords": [
6
6
  "react",