@opensite/ui 0.8.1 → 0.8.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/dist/carousel-horizontal-cards.cjs +8 -6
  2. package/dist/carousel-horizontal-cards.js +8 -6
  3. package/dist/carousel-image-hero.cjs +85 -160
  4. package/dist/carousel-image-hero.d.cts +1 -5
  5. package/dist/carousel-image-hero.d.ts +1 -5
  6. package/dist/carousel-image-hero.js +85 -160
  7. package/dist/carousel-portfolio-hero.cjs +138 -59
  8. package/dist/carousel-portfolio-hero.js +138 -59
  9. package/dist/carousel-product-feature-showcase.cjs +148 -95
  10. package/dist/carousel-product-feature-showcase.js +148 -95
  11. package/dist/carousel-progress-slider.cjs +13 -9
  12. package/dist/carousel-progress-slider.js +13 -9
  13. package/dist/carousel-scrolling-feature-showcase.cjs +105 -54
  14. package/dist/carousel-scrolling-feature-showcase.js +105 -54
  15. package/dist/feature-accordion-image.cjs +9 -8
  16. package/dist/feature-accordion-image.js +9 -8
  17. package/dist/feature-animated-carousel.cjs +65 -49
  18. package/dist/feature-animated-carousel.js +65 -49
  19. package/dist/feature-badge-grid-six.cjs +20 -17
  20. package/dist/feature-badge-grid-six.js +21 -18
  21. package/dist/feature-bento-image-grid.cjs +12 -8
  22. package/dist/feature-bento-image-grid.js +12 -8
  23. package/dist/feature-bento-utilities.cjs +9 -5
  24. package/dist/feature-bento-utilities.js +9 -5
  25. package/dist/feature-capabilities-grid.cjs +41 -38
  26. package/dist/feature-capabilities-grid.js +41 -38
  27. package/dist/feature-card-grid-linked.cjs +18 -18
  28. package/dist/feature-card-grid-linked.js +19 -19
  29. package/dist/feature-carousel-progress.cjs +3 -3
  30. package/dist/feature-carousel-progress.js +4 -4
  31. package/dist/feature-category-image-cards.cjs +3 -3
  32. package/dist/feature-category-image-cards.js +4 -4
  33. package/dist/feature-checklist-image.cjs +2 -2
  34. package/dist/feature-checklist-image.js +2 -2
  35. package/dist/feature-checklist-three-column.cjs +6 -6
  36. package/dist/feature-checklist-three-column.js +7 -7
  37. package/dist/feature-icon-grid-accent.cjs +2 -2
  38. package/dist/feature-icon-grid-accent.js +2 -2
  39. package/dist/feature-icon-grid-bordered.cjs +29 -31
  40. package/dist/feature-icon-grid-bordered.d.cts +9 -9
  41. package/dist/feature-icon-grid-bordered.d.ts +9 -9
  42. package/dist/feature-icon-grid-bordered.js +30 -32
  43. package/dist/feature-icon-grid-muted.cjs +6 -6
  44. package/dist/feature-icon-grid-muted.d.cts +9 -9
  45. package/dist/feature-icon-grid-muted.d.ts +9 -9
  46. package/dist/feature-icon-grid-muted.js +7 -7
  47. package/dist/feature-icon-tabs-content.cjs +8 -8
  48. package/dist/feature-icon-tabs-content.d.cts +13 -13
  49. package/dist/feature-icon-tabs-content.d.ts +13 -13
  50. package/dist/feature-icon-tabs-content.js +9 -9
  51. package/dist/feature-image-cards-three-column.cjs +26 -27
  52. package/dist/feature-image-cards-three-column.js +27 -28
  53. package/dist/feature-image-overlay-badge.cjs +23 -21
  54. package/dist/feature-image-overlay-badge.js +24 -22
  55. package/dist/feature-integration-cards.cjs +19 -18
  56. package/dist/feature-integration-cards.js +20 -19
  57. package/dist/feature-numbered-cards.cjs +2 -2
  58. package/dist/feature-numbered-cards.js +3 -3
  59. package/dist/feature-pattern-grid-links.cjs +26 -29
  60. package/dist/feature-pattern-grid-links.d.cts +1 -5
  61. package/dist/feature-pattern-grid-links.d.ts +1 -5
  62. package/dist/feature-pattern-grid-links.js +27 -30
  63. package/dist/feature-showcase.cjs +441 -40
  64. package/dist/feature-showcase.d.cts +62 -5
  65. package/dist/feature-showcase.d.ts +62 -5
  66. package/dist/feature-showcase.js +438 -37
  67. package/dist/feature-split-image-reverse.cjs +15 -36
  68. package/dist/feature-split-image-reverse.js +16 -37
  69. package/dist/feature-split-image.cjs +15 -36
  70. package/dist/feature-split-image.js +16 -37
  71. package/dist/feature-stats-highlight.cjs +20 -32
  72. package/dist/feature-stats-highlight.js +21 -33
  73. package/dist/feature-tabbed-content-image.cjs +11 -6
  74. package/dist/feature-tabbed-content-image.js +11 -6
  75. package/dist/feature-three-column-values.cjs +6 -6
  76. package/dist/feature-three-column-values.js +6 -6
  77. package/dist/feature-utility-cards-grid.cjs +17 -15
  78. package/dist/feature-utility-cards-grid.js +18 -16
  79. package/dist/navbar-tabbed-sections.cjs +23 -16
  80. package/dist/navbar-tabbed-sections.js +23 -16
  81. package/dist/registry.cjs +941 -708
  82. package/dist/registry.js +943 -710
  83. package/package.json +1 -1
@@ -929,8 +929,8 @@ function CarouselProductFeatureShowcase({
929
929
  actionsClassName,
930
930
  indicatorsClassName,
931
931
  optixFlowConfig,
932
- background = "white",
933
- spacing = "xl",
932
+ background,
933
+ spacing,
934
934
  pattern,
935
935
  patternOpacity
936
936
  }) {
@@ -974,7 +974,14 @@ function CarouselProductFeatureShowcase({
974
974
  if (actionsSlot) return actionsSlot;
975
975
  if (!actions || actions.length === 0) return null;
976
976
  return /* @__PURE__ */ jsx("div", { className: "mt-8 flex flex-wrap gap-3", children: actions.map((action, index) => {
977
- const { label, icon, iconAfter, children, className: actionClassName, ...pressableProps } = action;
977
+ const {
978
+ label,
979
+ icon,
980
+ iconAfter,
981
+ children,
982
+ className: actionClassName,
983
+ ...pressableProps
984
+ } = action;
978
985
  return /* @__PURE__ */ jsx(
979
986
  Pressable,
980
987
  {
@@ -999,105 +1006,151 @@ function CarouselProductFeatureShowcase({
999
1006
  className: cn(className),
1000
1007
  pattern,
1001
1008
  patternOpacity,
1002
- children: /* @__PURE__ */ jsxs("div", { className: cn("container mx-auto px-4", containerClassName), children: [
1009
+ children: /* @__PURE__ */ jsxs("div", { className: cn("relative", containerClassName), children: [
1003
1010
  /* @__PURE__ */ jsxs("div", { className: cn("mb-12 text-center", headerClassName), children: [
1004
- heading && (typeof heading === "string" ? /* @__PURE__ */ jsx("h2", { className: cn("text-3xl font-bold tracking-tight md:text-4xl lg:text-5xl", headingClassName), children: heading }) : /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading })),
1005
- subheading && (typeof subheading === "string" ? /* @__PURE__ */ jsx("p", { className: cn("mt-4 text-lg text-muted-foreground", subheadingClassName), children: subheading }) : /* @__PURE__ */ jsx("div", { className: subheadingClassName, children: subheading }))
1006
- ] }),
1007
- featuresSlot ? /* @__PURE__ */ jsx("div", { className: contentClassName, children: featuresSlot }) : /* @__PURE__ */ jsxs("div", { className: cn("grid gap-8 lg:grid-cols-2 lg:gap-12", contentClassName), children: [
1008
- /* @__PURE__ */ jsxs("div", { className: cn("relative aspect-square overflow-hidden rounded-2xl bg-muted lg:aspect-[4/3]", imageClassName), children: [
1009
- /* @__PURE__ */ jsx(AnimatePresence, { initial: false, custom: direction, mode: "wait", children: /* @__PURE__ */ jsx(
1010
- motion.div,
1011
- {
1012
- custom: direction,
1013
- variants: slideVariants,
1014
- initial: "enter",
1015
- animate: "center",
1016
- exit: "exit",
1017
- transition: { duration: 0.3, ease: "easeInOut" },
1018
- className: cn("absolute inset-0", activeFeature?.imageClassName),
1019
- children: /* @__PURE__ */ jsx(
1020
- Img,
1021
- {
1022
- src: currentImage,
1023
- alt: typeof activeFeature?.title === "string" ? activeFeature.title : `Feature ${activeIndex + 1}`,
1024
- className: "h-full w-full object-cover",
1025
- optixFlowConfig
1026
- }
1027
- )
1028
- },
1029
- `${activeIndex}-${activeColorIndex}`
1030
- ) }),
1031
- /* @__PURE__ */ jsxs("div", { className: cn("absolute bottom-4 right-4 flex gap-2", navigationClassName), children: [
1032
- /* @__PURE__ */ jsx(
1033
- Pressable,
1034
- {
1035
- onClick: goToPrev,
1036
- asButton: true,
1037
- variant: "outline",
1038
- size: "icon",
1039
- className: "flex h-10 w-10 items-center justify-center rounded-full border-border bg-background/90 text-foreground backdrop-blur-sm hover:bg-background",
1040
- children: /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/chevron-left", size: 20 })
1041
- }
1011
+ heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
1012
+ "h2",
1013
+ {
1014
+ className: cn(
1015
+ "text-3xl font-bold tracking-tight md:text-4xl lg:text-5xl",
1016
+ headingClassName
1042
1017
  ),
1043
- /* @__PURE__ */ jsx(
1044
- Pressable,
1018
+ children: heading
1019
+ }
1020
+ ) : /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading })),
1021
+ subheading && (typeof subheading === "string" ? /* @__PURE__ */ jsx(
1022
+ "p",
1023
+ {
1024
+ className: cn(
1025
+ "mt-4 text-lg text-muted-foreground",
1026
+ subheadingClassName
1027
+ ),
1028
+ children: subheading
1029
+ }
1030
+ ) : /* @__PURE__ */ jsx("div", { className: subheadingClassName, children: subheading }))
1031
+ ] }),
1032
+ featuresSlot ? /* @__PURE__ */ jsx("div", { className: contentClassName, children: featuresSlot }) : /* @__PURE__ */ jsxs(
1033
+ "div",
1034
+ {
1035
+ className: cn(
1036
+ "grid gap-8 lg:grid-cols-2 lg:gap-12",
1037
+ contentClassName
1038
+ ),
1039
+ children: [
1040
+ /* @__PURE__ */ jsxs(
1041
+ "div",
1045
1042
  {
1046
- onClick: goToNext,
1047
- asButton: true,
1048
- variant: "outline",
1049
- size: "icon",
1050
- className: "flex h-10 w-10 items-center justify-center rounded-full border-border bg-background/90 text-foreground backdrop-blur-sm hover:bg-background",
1051
- children: /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/chevron-right", size: 20 })
1052
- }
1053
- )
1054
- ] })
1055
- ] }),
1056
- /* @__PURE__ */ jsxs("div", { className: "flex flex-col justify-center", children: [
1057
- /* @__PURE__ */ jsx(AnimatePresence, { mode: "wait", children: /* @__PURE__ */ jsxs(
1058
- motion.div,
1059
- {
1060
- initial: { opacity: 0, y: 20 },
1061
- animate: { opacity: 1, y: 0 },
1062
- exit: { opacity: 0, y: -20 },
1063
- transition: { duration: 0.3 },
1064
- children: [
1065
- activeFeature?.title && (typeof activeFeature.title === "string" ? /* @__PURE__ */ jsx("h3", { className: "text-2xl font-semibold md:text-3xl", children: activeFeature.title }) : /* @__PURE__ */ jsx("div", { children: activeFeature.title })),
1066
- activeFeature?.description && (typeof activeFeature.description === "string" ? /* @__PURE__ */ jsx("p", { className: "mt-4 text-lg text-muted-foreground", children: activeFeature.description }) : /* @__PURE__ */ jsx("div", { className: "mt-4", children: activeFeature.description })),
1067
- activeFeature?.colors && activeFeature.colors.length > 0 && /* @__PURE__ */ jsxs("div", { className: cn("mt-6", colorSelectorClassName), children: [
1068
- /* @__PURE__ */ jsx("p", { className: "mb-3 text-sm font-medium", children: "Available Colors" }),
1069
- /* @__PURE__ */ jsx("div", { className: "flex gap-3", children: activeFeature.colors.map((color, index) => /* @__PURE__ */ jsx(
1070
- "button",
1043
+ className: cn(
1044
+ "relative aspect-square overflow-hidden rounded-2xl bg-muted lg:aspect-4/3 shadow-lg",
1045
+ imageClassName
1046
+ ),
1047
+ children: [
1048
+ /* @__PURE__ */ jsx(AnimatePresence, { initial: false, custom: direction, mode: "wait", children: /* @__PURE__ */ jsx(
1049
+ motion.div,
1071
1050
  {
1072
- onClick: () => setActiveColorIndex(index),
1051
+ custom: direction,
1052
+ variants: slideVariants,
1053
+ initial: "enter",
1054
+ animate: "center",
1055
+ exit: "exit",
1056
+ transition: { duration: 0.3, ease: "easeInOut" },
1073
1057
  className: cn(
1074
- "h-8 w-8 rounded-full border-2 transition-all",
1075
- activeColorIndex === index ? "border-primary ring-2 ring-primary ring-offset-2" : "border-transparent hover:border-muted-foreground"
1058
+ "absolute inset-0",
1059
+ activeFeature?.imageClassName
1076
1060
  ),
1077
- style: { backgroundColor: color.value },
1078
- title: color.name
1061
+ children: /* @__PURE__ */ jsx(
1062
+ Img,
1063
+ {
1064
+ src: currentImage,
1065
+ alt: typeof activeFeature?.title === "string" ? activeFeature.title : `Feature ${activeIndex + 1}`,
1066
+ className: "h-full w-full object-cover",
1067
+ optixFlowConfig
1068
+ }
1069
+ )
1079
1070
  },
1080
- color.name
1081
- )) })
1082
- ] }),
1083
- /* @__PURE__ */ jsx("div", { className: actionsClassName, children: renderActions() })
1084
- ]
1085
- },
1086
- activeIndex
1087
- ) }),
1088
- /* @__PURE__ */ jsx("div", { className: cn("mt-8 flex gap-2", indicatorsClassName), children: features?.map((_, index) => /* @__PURE__ */ jsx(
1089
- "button",
1090
- {
1091
- onClick: () => goToSlide(index),
1092
- className: cn(
1093
- "h-2 rounded-full transition-all",
1094
- activeIndex === index ? "w-8 bg-primary" : "w-2 bg-muted-foreground/30 hover:bg-muted-foreground/50"
1095
- )
1096
- },
1097
- index
1098
- )) })
1099
- ] })
1100
- ] })
1071
+ `${activeIndex}-${activeColorIndex}`
1072
+ ) }),
1073
+ /* @__PURE__ */ jsxs(
1074
+ "div",
1075
+ {
1076
+ className: cn(
1077
+ "absolute bottom-4 right-4 flex gap-2",
1078
+ navigationClassName
1079
+ ),
1080
+ children: [
1081
+ /* @__PURE__ */ jsx(
1082
+ Pressable,
1083
+ {
1084
+ onClick: goToPrev,
1085
+ asButton: true,
1086
+ variant: "outline",
1087
+ size: "icon",
1088
+ children: /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/chevron-left", size: 20 })
1089
+ }
1090
+ ),
1091
+ /* @__PURE__ */ jsx(
1092
+ Pressable,
1093
+ {
1094
+ onClick: goToNext,
1095
+ asButton: true,
1096
+ variant: "outline",
1097
+ size: "icon",
1098
+ children: /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/chevron-right", size: 20 })
1099
+ }
1100
+ )
1101
+ ]
1102
+ }
1103
+ )
1104
+ ]
1105
+ }
1106
+ ),
1107
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col justify-center", children: [
1108
+ /* @__PURE__ */ jsx(AnimatePresence, { mode: "wait", children: /* @__PURE__ */ jsxs(
1109
+ motion.div,
1110
+ {
1111
+ initial: { opacity: 0, y: 20 },
1112
+ animate: { opacity: 1, y: 0 },
1113
+ exit: { opacity: 0, y: -20 },
1114
+ transition: { duration: 0.3 },
1115
+ children: [
1116
+ activeFeature?.title && (typeof activeFeature.title === "string" ? /* @__PURE__ */ jsx("h3", { className: "text-2xl font-semibold md:text-3xl", children: activeFeature.title }) : /* @__PURE__ */ jsx("div", { children: activeFeature.title })),
1117
+ activeFeature?.description && (typeof activeFeature.description === "string" ? /* @__PURE__ */ jsx("p", { className: "mt-4 text-lg text-muted-foreground", children: activeFeature.description }) : /* @__PURE__ */ jsx("div", { className: "mt-4", children: activeFeature.description })),
1118
+ activeFeature?.colors && activeFeature.colors.length > 0 && /* @__PURE__ */ jsxs("div", { className: cn("mt-6", colorSelectorClassName), children: [
1119
+ /* @__PURE__ */ jsx("p", { className: "mb-3 text-sm font-medium", children: "Available Colors" }),
1120
+ /* @__PURE__ */ jsx("div", { className: "flex gap-3", children: activeFeature.colors.map((color, index) => /* @__PURE__ */ jsx(
1121
+ "button",
1122
+ {
1123
+ onClick: () => setActiveColorIndex(index),
1124
+ className: cn(
1125
+ "h-8 w-8 rounded-full border-2 transition-all",
1126
+ activeColorIndex === index ? "border-primary ring-2 ring-primary ring-offset-2" : "border-transparent hover:border-muted-foreground"
1127
+ ),
1128
+ style: { backgroundColor: color.value },
1129
+ title: color.name
1130
+ },
1131
+ color.name
1132
+ )) })
1133
+ ] }),
1134
+ /* @__PURE__ */ jsx("div", { className: actionsClassName, children: renderActions() })
1135
+ ]
1136
+ },
1137
+ activeIndex
1138
+ ) }),
1139
+ /* @__PURE__ */ jsx("div", { className: cn("mt-8 flex gap-2", indicatorsClassName), children: features?.map((_, index) => /* @__PURE__ */ jsx(
1140
+ "button",
1141
+ {
1142
+ onClick: () => goToSlide(index),
1143
+ className: cn(
1144
+ "h-2 rounded-full transition-all",
1145
+ activeIndex === index ? "w-8 bg-primary" : "w-2 bg-muted-foreground/30 hover:bg-muted-foreground/50"
1146
+ )
1147
+ },
1148
+ index
1149
+ )) })
1150
+ ] })
1151
+ ]
1152
+ }
1153
+ )
1101
1154
  ] })
1102
1155
  }
1103
1156
  );
@@ -982,12 +982,16 @@ function SliderBtn({
982
982
  }
983
983
  function SliderWrapper({ children, value, className }) {
984
984
  const { active } = useProgressSliderContext();
985
- return /* @__PURE__ */ jsxRuntime.jsx(framerMotion.AnimatePresence, { mode: "popLayout", children: active === value && /* @__PURE__ */ jsxRuntime.jsx(
985
+ return /* @__PURE__ */ jsxRuntime.jsx(framerMotion.AnimatePresence, { mode: "wait", initial: false, children: active === value && /* @__PURE__ */ jsxRuntime.jsx(
986
986
  framerMotion.motion.div,
987
987
  {
988
- initial: { opacity: 0 },
989
- animate: { opacity: 1 },
990
- exit: { opacity: 0 },
988
+ initial: { opacity: 0, scale: 0.98 },
989
+ animate: { opacity: 1, scale: 1 },
990
+ exit: { opacity: 0, scale: 0.98 },
991
+ transition: {
992
+ duration: 0.4,
993
+ ease: [0.4, 0, 0.2, 1]
994
+ },
991
995
  className: cn("", className),
992
996
  children
993
997
  },
@@ -1098,12 +1102,12 @@ function CarouselProgressSlider({
1098
1102
  pattern,
1099
1103
  patternOpacity,
1100
1104
  children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("relative", containerClassName), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("grid gap-8 lg:grid-cols-2", contentClassName), children: [
1101
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("relative", imageClassName), children: [
1102
- slidesSlot ? slidesSlot : slides?.map((slide) => /* @__PURE__ */ jsxRuntime.jsx(
1105
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("relative min-h-[400px]", imageClassName), children: [
1106
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute inset-0", children: slidesSlot ? slidesSlot : slides?.map((slide) => /* @__PURE__ */ jsxRuntime.jsx(
1103
1107
  SliderWrapper,
1104
1108
  {
1105
1109
  value: slide.id,
1106
- className: cn("", slide.className),
1110
+ className: cn("absolute inset-0", slide.className),
1107
1111
  children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "aspect-video overflow-hidden rounded-lg", children: /* @__PURE__ */ jsxRuntime.jsx(
1108
1112
  img.Img,
1109
1113
  {
@@ -1118,8 +1122,8 @@ function CarouselProgressSlider({
1118
1122
  ) })
1119
1123
  },
1120
1124
  slide.id
1121
- )),
1122
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-4 flex justify-center lg:justify-start", children: /* @__PURE__ */ jsxRuntime.jsx(
1125
+ )) }),
1126
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative mt-4 flex justify-center lg:justify-start", children: /* @__PURE__ */ jsxRuntime.jsx(
1123
1127
  Pressable,
1124
1128
  {
1125
1129
  onClick: togglePause,
@@ -961,12 +961,16 @@ function SliderBtn({
961
961
  }
962
962
  function SliderWrapper({ children, value, className }) {
963
963
  const { active } = useProgressSliderContext();
964
- return /* @__PURE__ */ jsx(AnimatePresence, { mode: "popLayout", children: active === value && /* @__PURE__ */ jsx(
964
+ return /* @__PURE__ */ jsx(AnimatePresence, { mode: "wait", initial: false, children: active === value && /* @__PURE__ */ jsx(
965
965
  motion.div,
966
966
  {
967
- initial: { opacity: 0 },
968
- animate: { opacity: 1 },
969
- exit: { opacity: 0 },
967
+ initial: { opacity: 0, scale: 0.98 },
968
+ animate: { opacity: 1, scale: 1 },
969
+ exit: { opacity: 0, scale: 0.98 },
970
+ transition: {
971
+ duration: 0.4,
972
+ ease: [0.4, 0, 0.2, 1]
973
+ },
970
974
  className: cn("", className),
971
975
  children
972
976
  },
@@ -1077,12 +1081,12 @@ function CarouselProgressSlider({
1077
1081
  pattern,
1078
1082
  patternOpacity,
1079
1083
  children: /* @__PURE__ */ jsx("div", { className: cn("relative", containerClassName), children: /* @__PURE__ */ jsxs("div", { className: cn("grid gap-8 lg:grid-cols-2", contentClassName), children: [
1080
- /* @__PURE__ */ jsxs("div", { className: cn("relative", imageClassName), children: [
1081
- slidesSlot ? slidesSlot : slides?.map((slide) => /* @__PURE__ */ jsx(
1084
+ /* @__PURE__ */ jsxs("div", { className: cn("relative min-h-[400px]", imageClassName), children: [
1085
+ /* @__PURE__ */ jsx("div", { className: "absolute inset-0", children: slidesSlot ? slidesSlot : slides?.map((slide) => /* @__PURE__ */ jsx(
1082
1086
  SliderWrapper,
1083
1087
  {
1084
1088
  value: slide.id,
1085
- className: cn("", slide.className),
1089
+ className: cn("absolute inset-0", slide.className),
1086
1090
  children: /* @__PURE__ */ jsx("div", { className: "aspect-video overflow-hidden rounded-lg", children: /* @__PURE__ */ jsx(
1087
1091
  Img,
1088
1092
  {
@@ -1097,8 +1101,8 @@ function CarouselProgressSlider({
1097
1101
  ) })
1098
1102
  },
1099
1103
  slide.id
1100
- )),
1101
- /* @__PURE__ */ jsx("div", { className: "mt-4 flex justify-center lg:justify-start", children: /* @__PURE__ */ jsx(
1104
+ )) }),
1105
+ /* @__PURE__ */ jsx("div", { className: "relative mt-4 flex justify-center lg:justify-start", children: /* @__PURE__ */ jsx(
1102
1106
  Pressable,
1103
1107
  {
1104
1108
  onClick: togglePause,
@@ -422,8 +422,8 @@ function CarouselScrollingFeatureShowcase({
422
422
  featuresClassName,
423
423
  numberBadgeClassName,
424
424
  optixFlowConfig,
425
- background = "white",
426
- spacing = "xl",
425
+ background,
426
+ spacing = "md",
427
427
  pattern,
428
428
  patternOpacity
429
429
  }) {
@@ -473,62 +473,113 @@ function CarouselScrollingFeatureShowcase({
473
473
  patternOpacity,
474
474
  children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("container mx-auto px-4", containerClassName), children: [
475
475
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("mb-12 text-center", headerClassName), children: [
476
- heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h2", { className: cn("text-3xl font-bold tracking-tight md:text-4xl", headingClassName), children: heading }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: headingClassName, children: heading })),
477
- subheading && (typeof subheading === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("mt-4 text-lg text-muted-foreground", subheadingClassName), children: subheading }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mt-4", subheadingClassName), children: subheading }))
478
- ] }),
479
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("grid gap-8 lg:grid-cols-2 lg:gap-12", contentClassName), children: [
480
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "hidden lg:block", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "sticky top-24", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("aspect-video overflow-hidden rounded-xl bg-muted", imageClassName), children: /* @__PURE__ */ jsxRuntime.jsx(framerMotion.AnimatePresence, { mode: "wait", children: activeFeatureData && /* @__PURE__ */ jsxRuntime.jsx(
481
- framerMotion.motion.div,
476
+ heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
477
+ "h2",
482
478
  {
483
- initial: { opacity: 0 },
484
- animate: { opacity: 1 },
485
- exit: { opacity: 0 },
486
- transition: { duration: 0.3 },
487
- className: "h-full w-full",
488
- children: /* @__PURE__ */ jsxRuntime.jsx(
489
- img.Img,
490
- {
491
- src: activeFeatureData.image,
492
- alt: typeof activeFeatureData.title === "string" ? activeFeatureData.title : `Feature ${activeFeatureData.id}`,
493
- className: cn("h-full w-full object-cover", activeFeatureData.imageClassName),
494
- optixFlowConfig
495
- }
496
- )
497
- },
498
- activeFeatureData.id
499
- ) }) }) }) }),
500
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("space-y-24 lg:space-y-32", featuresClassName), children: featuresSlot ? featuresSlot : features?.map((feature, index) => /* @__PURE__ */ jsxRuntime.jsxs(
501
- "div",
479
+ className: cn(
480
+ "text-3xl font-bold tracking-tight md:text-4xl",
481
+ headingClassName
482
+ ),
483
+ children: heading
484
+ }
485
+ ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: headingClassName, children: heading })),
486
+ subheading && (typeof subheading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
487
+ "p",
502
488
  {
503
- ref: setFeatureRef(feature.id),
504
- "data-feature-id": feature.id,
505
489
  className: cn(
506
- "scroll-mt-24 transition-opacity duration-300",
507
- activeFeature === feature.id ? "opacity-100" : "opacity-50",
508
- feature.className
490
+ "mt-4 text-lg text-muted-foreground",
491
+ subheadingClassName
509
492
  ),
510
- children: [
511
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-6 lg:hidden", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "aspect-video overflow-hidden rounded-lg bg-muted", children: /* @__PURE__ */ jsxRuntime.jsx(
512
- img.Img,
513
- {
514
- src: feature.image,
515
- alt: typeof feature.title === "string" ? feature.title : `Feature ${feature.id}`,
516
- className: cn("h-full w-full object-cover", feature.imageClassName),
517
- optixFlowConfig
518
- }
519
- ) }) }),
520
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-4", children: [
521
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex h-10 w-10 shrink-0 items-center justify-center rounded-full bg-primary text-primary-foreground", numberBadgeClassName), children: index + 1 }),
522
- /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
523
- feature.title && (typeof feature.title === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-2xl font-semibold", children: feature.title }) : /* @__PURE__ */ jsxRuntime.jsx("div", { children: feature.title })),
524
- feature.description && (typeof feature.description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-4 text-lg text-muted-foreground", children: feature.description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-4", children: feature.description }))
525
- ] })
526
- ] })
527
- ]
528
- },
529
- feature.id
530
- )) })
531
- ] })
493
+ children: subheading
494
+ }
495
+ ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mt-4", subheadingClassName), children: subheading }))
496
+ ] }),
497
+ /* @__PURE__ */ jsxRuntime.jsxs(
498
+ "div",
499
+ {
500
+ className: cn(
501
+ "grid gap-8 lg:grid-cols-2 lg:gap-12",
502
+ contentClassName
503
+ ),
504
+ children: [
505
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "hidden lg:block", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "sticky top-24", children: /* @__PURE__ */ jsxRuntime.jsx(
506
+ "div",
507
+ {
508
+ className: cn(
509
+ "aspect-video overflow-hidden rounded-xl bg-muted",
510
+ imageClassName
511
+ ),
512
+ children: /* @__PURE__ */ jsxRuntime.jsx(framerMotion.AnimatePresence, { mode: "wait", children: activeFeatureData && /* @__PURE__ */ jsxRuntime.jsx(
513
+ framerMotion.motion.div,
514
+ {
515
+ initial: { opacity: 0 },
516
+ animate: { opacity: 1 },
517
+ exit: { opacity: 0 },
518
+ transition: { duration: 0.3 },
519
+ className: "h-full w-full",
520
+ children: /* @__PURE__ */ jsxRuntime.jsx(
521
+ img.Img,
522
+ {
523
+ src: activeFeatureData.image,
524
+ alt: typeof activeFeatureData.title === "string" ? activeFeatureData.title : `Feature ${activeFeatureData.id}`,
525
+ className: cn(
526
+ "h-full w-full object-cover",
527
+ activeFeatureData.imageClassName
528
+ ),
529
+ optixFlowConfig
530
+ }
531
+ )
532
+ },
533
+ activeFeatureData.id
534
+ ) })
535
+ }
536
+ ) }) }),
537
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("space-y-24 lg:space-y-32", featuresClassName), children: featuresSlot ? featuresSlot : features?.map((feature, index) => /* @__PURE__ */ jsxRuntime.jsxs(
538
+ "div",
539
+ {
540
+ ref: setFeatureRef(feature.id),
541
+ "data-feature-id": feature.id,
542
+ className: cn(
543
+ "scroll-mt-24 transition-opacity duration-300",
544
+ activeFeature === feature.id ? "opacity-100" : "opacity-50",
545
+ feature.className
546
+ ),
547
+ children: [
548
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-6 lg:hidden", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "aspect-video overflow-hidden rounded-lg bg-muted", children: /* @__PURE__ */ jsxRuntime.jsx(
549
+ img.Img,
550
+ {
551
+ src: feature.image,
552
+ alt: typeof feature.title === "string" ? feature.title : `Feature ${feature.id}`,
553
+ className: cn(
554
+ "h-full w-full object-cover",
555
+ feature.imageClassName
556
+ ),
557
+ optixFlowConfig
558
+ }
559
+ ) }) }),
560
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-4", children: [
561
+ /* @__PURE__ */ jsxRuntime.jsx(
562
+ "div",
563
+ {
564
+ className: cn(
565
+ "flex h-10 w-10 shrink-0 items-center justify-center rounded-full bg-primary text-primary-foreground",
566
+ numberBadgeClassName
567
+ ),
568
+ children: index + 1
569
+ }
570
+ ),
571
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
572
+ feature.title && (typeof feature.title === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-2xl font-semibold", children: feature.title }) : /* @__PURE__ */ jsxRuntime.jsx("div", { children: feature.title })),
573
+ feature.description && (typeof feature.description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-4 text-lg text-muted-foreground", children: feature.description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-4", children: feature.description }))
574
+ ] })
575
+ ] })
576
+ ]
577
+ },
578
+ feature.id
579
+ )) })
580
+ ]
581
+ }
582
+ )
532
583
  ] })
533
584
  }
534
585
  );