@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.
- package/dist/carousel-horizontal-cards.cjs +8 -6
- package/dist/carousel-horizontal-cards.js +8 -6
- package/dist/carousel-image-hero.cjs +85 -160
- package/dist/carousel-image-hero.d.cts +1 -5
- package/dist/carousel-image-hero.d.ts +1 -5
- package/dist/carousel-image-hero.js +85 -160
- package/dist/carousel-portfolio-hero.cjs +138 -59
- package/dist/carousel-portfolio-hero.js +138 -59
- package/dist/carousel-product-feature-showcase.cjs +148 -95
- package/dist/carousel-product-feature-showcase.js +148 -95
- package/dist/carousel-progress-slider.cjs +13 -9
- package/dist/carousel-progress-slider.js +13 -9
- package/dist/carousel-scrolling-feature-showcase.cjs +105 -54
- package/dist/carousel-scrolling-feature-showcase.js +105 -54
- package/dist/feature-accordion-image.cjs +9 -8
- package/dist/feature-accordion-image.js +9 -8
- package/dist/feature-animated-carousel.cjs +65 -49
- package/dist/feature-animated-carousel.js +65 -49
- package/dist/feature-badge-grid-six.cjs +20 -17
- package/dist/feature-badge-grid-six.js +21 -18
- package/dist/feature-bento-image-grid.cjs +12 -8
- package/dist/feature-bento-image-grid.js +12 -8
- package/dist/feature-bento-utilities.cjs +9 -5
- package/dist/feature-bento-utilities.js +9 -5
- package/dist/feature-capabilities-grid.cjs +41 -38
- package/dist/feature-capabilities-grid.js +41 -38
- package/dist/feature-card-grid-linked.cjs +18 -18
- package/dist/feature-card-grid-linked.js +19 -19
- package/dist/feature-carousel-progress.cjs +3 -3
- package/dist/feature-carousel-progress.js +4 -4
- package/dist/feature-category-image-cards.cjs +3 -3
- package/dist/feature-category-image-cards.js +4 -4
- package/dist/feature-checklist-image.cjs +2 -2
- package/dist/feature-checklist-image.js +2 -2
- package/dist/feature-checklist-three-column.cjs +6 -6
- package/dist/feature-checklist-three-column.js +7 -7
- package/dist/feature-icon-grid-accent.cjs +2 -2
- package/dist/feature-icon-grid-accent.js +2 -2
- package/dist/feature-icon-grid-bordered.cjs +29 -31
- package/dist/feature-icon-grid-bordered.d.cts +9 -9
- package/dist/feature-icon-grid-bordered.d.ts +9 -9
- package/dist/feature-icon-grid-bordered.js +30 -32
- package/dist/feature-icon-grid-muted.cjs +6 -6
- package/dist/feature-icon-grid-muted.d.cts +9 -9
- package/dist/feature-icon-grid-muted.d.ts +9 -9
- package/dist/feature-icon-grid-muted.js +7 -7
- package/dist/feature-icon-tabs-content.cjs +8 -8
- package/dist/feature-icon-tabs-content.d.cts +13 -13
- package/dist/feature-icon-tabs-content.d.ts +13 -13
- package/dist/feature-icon-tabs-content.js +9 -9
- package/dist/feature-image-cards-three-column.cjs +26 -27
- package/dist/feature-image-cards-three-column.js +27 -28
- package/dist/feature-image-overlay-badge.cjs +23 -21
- package/dist/feature-image-overlay-badge.js +24 -22
- package/dist/feature-integration-cards.cjs +19 -18
- package/dist/feature-integration-cards.js +20 -19
- package/dist/feature-numbered-cards.cjs +2 -2
- package/dist/feature-numbered-cards.js +3 -3
- package/dist/feature-pattern-grid-links.cjs +26 -29
- package/dist/feature-pattern-grid-links.d.cts +1 -5
- package/dist/feature-pattern-grid-links.d.ts +1 -5
- package/dist/feature-pattern-grid-links.js +27 -30
- package/dist/feature-showcase.cjs +441 -40
- package/dist/feature-showcase.d.cts +62 -5
- package/dist/feature-showcase.d.ts +62 -5
- package/dist/feature-showcase.js +438 -37
- package/dist/feature-split-image-reverse.cjs +15 -36
- package/dist/feature-split-image-reverse.js +16 -37
- package/dist/feature-split-image.cjs +15 -36
- package/dist/feature-split-image.js +16 -37
- package/dist/feature-stats-highlight.cjs +20 -32
- package/dist/feature-stats-highlight.js +21 -33
- package/dist/feature-tabbed-content-image.cjs +11 -6
- package/dist/feature-tabbed-content-image.js +11 -6
- package/dist/feature-three-column-values.cjs +6 -6
- package/dist/feature-three-column-values.js +6 -6
- package/dist/feature-utility-cards-grid.cjs +17 -15
- package/dist/feature-utility-cards-grid.js +18 -16
- package/dist/navbar-tabbed-sections.cjs +23 -16
- package/dist/navbar-tabbed-sections.js +23 -16
- package/dist/registry.cjs +941 -708
- package/dist/registry.js +943 -710
- package/package.json +1 -1
|
@@ -929,8 +929,8 @@ function CarouselProductFeatureShowcase({
|
|
|
929
929
|
actionsClassName,
|
|
930
930
|
indicatorsClassName,
|
|
931
931
|
optixFlowConfig,
|
|
932
|
-
background
|
|
933
|
-
spacing
|
|
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 {
|
|
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("
|
|
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(
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
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
|
-
|
|
1044
|
-
|
|
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
|
-
|
|
1047
|
-
|
|
1048
|
-
|
|
1049
|
-
|
|
1050
|
-
|
|
1051
|
-
|
|
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
|
-
|
|
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
|
-
"
|
|
1075
|
-
|
|
1058
|
+
"absolute inset-0",
|
|
1059
|
+
activeFeature?.imageClassName
|
|
1076
1060
|
),
|
|
1077
|
-
|
|
1078
|
-
|
|
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
|
-
|
|
1081
|
-
)
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
|
|
1088
|
-
|
|
1089
|
-
|
|
1090
|
-
|
|
1091
|
-
|
|
1092
|
-
|
|
1093
|
-
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
|
|
1097
|
-
|
|
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: "
|
|
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: "
|
|
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
|
|
426
|
-
spacing = "
|
|
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(
|
|
477
|
-
|
|
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
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
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
|
-
"
|
|
507
|
-
|
|
508
|
-
feature.className
|
|
490
|
+
"mt-4 text-lg text-muted-foreground",
|
|
491
|
+
subheadingClassName
|
|
509
492
|
),
|
|
510
|
-
children:
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
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
|
);
|