@opensite/ui 1.2.4 → 1.2.5
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/feature-accordion-image.cjs +101 -27
- package/dist/feature-accordion-image.js +101 -27
- package/dist/feature-animated-carousel.cjs +801 -293
- package/dist/feature-animated-carousel.d.cts +25 -1
- package/dist/feature-animated-carousel.d.ts +25 -1
- package/dist/feature-animated-carousel.js +799 -291
- package/dist/feature-card-grid-linked.cjs +1 -1
- package/dist/feature-card-grid-linked.js +1 -1
- package/dist/feature-carousel-progress.cjs +23 -10
- package/dist/feature-carousel-progress.js +23 -10
- package/dist/feature-checklist-image.cjs +1 -1
- package/dist/feature-checklist-image.js +1 -1
- package/dist/feature-icon-grid-muted.cjs +521 -15
- package/dist/feature-icon-grid-muted.d.cts +5 -1
- package/dist/feature-icon-grid-muted.d.ts +5 -1
- package/dist/feature-icon-grid-muted.js +521 -15
- package/dist/feature-image-cards-three-column.cjs +146 -75
- package/dist/feature-image-cards-three-column.d.cts +5 -1
- package/dist/feature-image-cards-three-column.d.ts +5 -1
- package/dist/feature-image-cards-three-column.js +146 -75
- package/dist/feature-numbered-cards.cjs +1 -1
- package/dist/feature-numbered-cards.js +1 -1
- package/dist/feature-stats-highlight.cjs +25 -39
- package/dist/feature-stats-highlight.js +25 -39
- package/dist/registry.cjs +756 -413
- package/dist/registry.js +756 -413
- package/package.json +1 -1
package/dist/registry.cjs
CHANGED
|
@@ -24093,7 +24093,7 @@ function FeatureChecklistImage({
|
|
|
24093
24093
|
checklistItems,
|
|
24094
24094
|
checklistSlot,
|
|
24095
24095
|
className,
|
|
24096
|
-
containerClassName = "px-6 sm:px-6 md:
|
|
24096
|
+
containerClassName = "px-6 sm:px-6 md:px-6 lg:px-8",
|
|
24097
24097
|
contentWrapperClassName,
|
|
24098
24098
|
imageClassName,
|
|
24099
24099
|
contentClassName,
|
|
@@ -24288,7 +24288,7 @@ function FeatureCarouselProgress({
|
|
|
24288
24288
|
slides,
|
|
24289
24289
|
slidesSlot,
|
|
24290
24290
|
className,
|
|
24291
|
-
containerClassName = "px-6 sm:px-6 md:mx-
|
|
24291
|
+
containerClassName = "mx-0 w-full relative z-10 max-w-full px-6 sm:px-6 md:mx-0 lg:px-8",
|
|
24292
24292
|
headerClassName,
|
|
24293
24293
|
badgeClassName,
|
|
24294
24294
|
carouselClassName,
|
|
@@ -24296,7 +24296,7 @@ function FeatureCarouselProgress({
|
|
|
24296
24296
|
progressClassName,
|
|
24297
24297
|
cardClassName,
|
|
24298
24298
|
background,
|
|
24299
|
-
spacing = "py-
|
|
24299
|
+
spacing = "py-12 md:py-32",
|
|
24300
24300
|
pattern,
|
|
24301
24301
|
patternOpacity,
|
|
24302
24302
|
patternClassName
|
|
@@ -24329,7 +24329,11 @@ function FeatureCarouselProgress({
|
|
|
24329
24329
|
children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "p-1 h-auto md:h-full", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
24330
24330
|
Card,
|
|
24331
24331
|
{
|
|
24332
|
-
className: cn(
|
|
24332
|
+
className: cn(
|
|
24333
|
+
"h-auto md:h-full py-0",
|
|
24334
|
+
cardClassName,
|
|
24335
|
+
slide.className
|
|
24336
|
+
),
|
|
24333
24337
|
children: /* @__PURE__ */ jsxRuntime.jsx(CardContent, { className: "flex flex-col justify-center p-6 h-full", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col h-full justify-between", children: [
|
|
24334
24338
|
(slide.icon || slide.iconName) && /* @__PURE__ */ jsxRuntime.jsx(
|
|
24335
24339
|
"span",
|
|
@@ -24341,7 +24345,7 @@ function FeatureCarouselProgress({
|
|
|
24341
24345
|
children: renderSlideIcon(slide)
|
|
24342
24346
|
}
|
|
24343
24347
|
),
|
|
24344
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-
|
|
24348
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-2", children: [
|
|
24345
24349
|
slide.title && (typeof slide.title === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
24346
24350
|
Pressable,
|
|
24347
24351
|
{
|
|
@@ -24366,7 +24370,7 @@ function FeatureCarouselProgress({
|
|
|
24366
24370
|
"p",
|
|
24367
24371
|
{
|
|
24368
24372
|
className: cn(
|
|
24369
|
-
"
|
|
24373
|
+
"text-card-foreground",
|
|
24370
24374
|
slide.descriptionClassName
|
|
24371
24375
|
),
|
|
24372
24376
|
children: slide.description
|
|
@@ -24375,7 +24379,7 @@ function FeatureCarouselProgress({
|
|
|
24375
24379
|
"div",
|
|
24376
24380
|
{
|
|
24377
24381
|
className: cn(
|
|
24378
|
-
"
|
|
24382
|
+
"text-card-foreground",
|
|
24379
24383
|
slide.descriptionClassName
|
|
24380
24384
|
),
|
|
24381
24385
|
children: slide.description
|
|
@@ -24403,14 +24407,17 @@ function FeatureCarouselProgress({
|
|
|
24403
24407
|
badge || title || description ? /* @__PURE__ */ jsxRuntime.jsxs(
|
|
24404
24408
|
"div",
|
|
24405
24409
|
{
|
|
24406
|
-
className: cn(
|
|
24410
|
+
className: cn(
|
|
24411
|
+
"flex flex-col items-center gap-6 text-center",
|
|
24412
|
+
headerClassName
|
|
24413
|
+
),
|
|
24407
24414
|
children: [
|
|
24408
24415
|
badge && /* @__PURE__ */ jsxRuntime.jsx(Badge, { className: badgeClassName, children: badge }),
|
|
24409
24416
|
title && (typeof title === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
24410
24417
|
"h2",
|
|
24411
24418
|
{
|
|
24412
24419
|
className: cn(
|
|
24413
|
-
"text-xl font-semibold text-balance md:text-2xl lg:text-3xl",
|
|
24420
|
+
"text-xl font-semibold text-balance md:text-2xl lg:text-3xl max-w-lg md:max-w-md",
|
|
24414
24421
|
titleClassName
|
|
24415
24422
|
),
|
|
24416
24423
|
children: title
|
|
@@ -24419,13 +24426,19 @@ function FeatureCarouselProgress({
|
|
|
24419
24426
|
"div",
|
|
24420
24427
|
{
|
|
24421
24428
|
className: cn(
|
|
24422
|
-
"text-xl font-semibold text-balance md:text-2xl lg:text-3xl",
|
|
24429
|
+
"text-xl font-semibold text-balance md:text-2xl lg:text-3xl max-w-lg md:max-w-md",
|
|
24423
24430
|
titleClassName
|
|
24424
24431
|
),
|
|
24425
24432
|
children: title
|
|
24426
24433
|
}
|
|
24427
24434
|
)),
|
|
24428
|
-
description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("
|
|
24435
|
+
description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("max-w-lg md:max-w-md", descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
24436
|
+
"div",
|
|
24437
|
+
{
|
|
24438
|
+
className: cn("max-w-lg md:max-w-md", descriptionClassName),
|
|
24439
|
+
children: description
|
|
24440
|
+
}
|
|
24441
|
+
))
|
|
24429
24442
|
]
|
|
24430
24443
|
}
|
|
24431
24444
|
) : null,
|
|
@@ -24475,7 +24488,7 @@ function FeatureCardGridLinked({
|
|
|
24475
24488
|
features,
|
|
24476
24489
|
featuresSlot,
|
|
24477
24490
|
className,
|
|
24478
|
-
containerClassName = "px-6 sm:px-6 md:
|
|
24491
|
+
containerClassName = "px-6 sm:px-6 md:px-6 lg:px-8",
|
|
24479
24492
|
titleWrapperClassName,
|
|
24480
24493
|
titleClassName,
|
|
24481
24494
|
descriptionClassName,
|
|
@@ -24628,7 +24641,7 @@ function FeatureNumberedCards({
|
|
|
24628
24641
|
features,
|
|
24629
24642
|
featuresSlot,
|
|
24630
24643
|
className,
|
|
24631
|
-
containerClassName = "px-6 sm:px-6 md:
|
|
24644
|
+
containerClassName = "px-6 sm:px-6 md:px-6 lg:px-8",
|
|
24632
24645
|
cardsWrapperClassName,
|
|
24633
24646
|
cardClassName,
|
|
24634
24647
|
titleClassName,
|
|
@@ -26848,6 +26861,7 @@ function FeatureBentoImageGrid({
|
|
|
26848
26861
|
function FeatureImageCardsThreeColumn({
|
|
26849
26862
|
title,
|
|
26850
26863
|
description,
|
|
26864
|
+
headerClassName,
|
|
26851
26865
|
cards,
|
|
26852
26866
|
cardsSlot,
|
|
26853
26867
|
className,
|
|
@@ -26863,28 +26877,34 @@ function FeatureImageCardsThreeColumn({
|
|
|
26863
26877
|
patternOpacity,
|
|
26864
26878
|
patternClassName
|
|
26865
26879
|
}) {
|
|
26866
|
-
const renderImage = React52.useCallback(
|
|
26867
|
-
|
|
26868
|
-
|
|
26869
|
-
|
|
26870
|
-
|
|
26871
|
-
|
|
26872
|
-
|
|
26873
|
-
|
|
26874
|
-
|
|
26875
|
-
|
|
26876
|
-
|
|
26880
|
+
const renderImage = React52.useCallback(
|
|
26881
|
+
(card, imageAlt) => {
|
|
26882
|
+
if (card.imageSlot) return card.imageSlot;
|
|
26883
|
+
if (!card.imageSrc) return null;
|
|
26884
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
26885
|
+
img.Img,
|
|
26886
|
+
{
|
|
26887
|
+
src: card.imageSrc,
|
|
26888
|
+
alt: imageAlt,
|
|
26889
|
+
className: "h-full max-h-[450px] w-full rounded-xl object-cover object-center",
|
|
26890
|
+
loading: "lazy",
|
|
26891
|
+
optixFlowConfig
|
|
26892
|
+
}
|
|
26893
|
+
);
|
|
26894
|
+
},
|
|
26895
|
+
[optixFlowConfig]
|
|
26896
|
+
);
|
|
26897
|
+
const renderBadgeIcon = React52.useCallback(
|
|
26898
|
+
(card) => {
|
|
26899
|
+
if (card.avatarSrc) {
|
|
26900
|
+
return /* @__PURE__ */ jsxRuntime.jsx(Avatar, { className: "size-7 rounded-full", children: /* @__PURE__ */ jsxRuntime.jsx(AvatarImage, { src: card.avatarSrc, alt: "Avatar" }) });
|
|
26877
26901
|
}
|
|
26878
|
-
|
|
26879
|
-
|
|
26880
|
-
|
|
26881
|
-
|
|
26882
|
-
|
|
26883
|
-
|
|
26884
|
-
if (card.icon) return card.icon;
|
|
26885
|
-
if (!card.iconName) return null;
|
|
26886
|
-
return /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: card.iconName, size: 24 });
|
|
26887
|
-
}, []);
|
|
26902
|
+
if (card.icon) return card.icon;
|
|
26903
|
+
if (!card.iconName) return null;
|
|
26904
|
+
return /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: card.iconName, size: 24 });
|
|
26905
|
+
},
|
|
26906
|
+
[]
|
|
26907
|
+
);
|
|
26888
26908
|
const cardsContent = React52.useMemo(() => {
|
|
26889
26909
|
if (cardsSlot) return cardsSlot;
|
|
26890
26910
|
if (!cards || cards.length === 0) return null;
|
|
@@ -26895,31 +26915,53 @@ function FeatureImageCardsThreeColumn({
|
|
|
26895
26915
|
{
|
|
26896
26916
|
href: card.link,
|
|
26897
26917
|
onClick: card.onClick,
|
|
26898
|
-
className: cn(
|
|
26918
|
+
className: cn(
|
|
26919
|
+
"group relative overflow-hidden rounded-xl",
|
|
26920
|
+
cardClassName,
|
|
26921
|
+
card.className
|
|
26922
|
+
),
|
|
26899
26923
|
children: [
|
|
26900
26924
|
renderImage(card, imageAlt),
|
|
26901
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute top-0 right-0 bottom-0 left-0 translate-y-20 rounded-xl bg-linear-to-t from-
|
|
26902
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "absolute top-0 flex h-full w-full flex-col justify-between p-
|
|
26903
|
-
(card.badgeText || card.avatarSrc || card.icon || card.iconName) && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
26904
|
-
|
|
26905
|
-
|
|
26906
|
-
|
|
26907
|
-
"ml-auto flex w-fit items-center gap-2 text-sm font-semibold",
|
|
26908
|
-
card.avatarSrc ? "rounded-full bg-foreground/30 px-4 py-2.5 backdrop-blur-sm" : "rounded-full bg-primary px-4 py-2.5 text-primary-foreground",
|
|
26909
|
-
card.badgeClassName
|
|
26910
|
-
),
|
|
26911
|
-
children: [
|
|
26912
|
-
renderBadgeIcon(card),
|
|
26913
|
-
card.badgeText
|
|
26914
|
-
]
|
|
26915
|
-
}
|
|
26916
|
-
),
|
|
26925
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute top-0 right-0 bottom-0 left-0 translate-y-20 rounded-xl bg-linear-to-t from-black to-transparent transition-transform duration-300 group-hover:translate-y-0" }),
|
|
26926
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "absolute top-0 flex h-full w-full flex-col justify-between p-4 md:p-6", children: [
|
|
26927
|
+
(card.badgeText || card.avatarSrc || card.icon || card.iconName) && /* @__PURE__ */ jsxRuntime.jsxs(Badge, { variant: "default", className: cn(card.badgeClassName), children: [
|
|
26928
|
+
renderBadgeIcon(card),
|
|
26929
|
+
card.badgeText
|
|
26930
|
+
] }),
|
|
26917
26931
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-5", children: [
|
|
26918
|
-
card.title && (typeof card.title === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
26919
|
-
|
|
26920
|
-
|
|
26921
|
-
|
|
26922
|
-
|
|
26932
|
+
card.title && (typeof card.title === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
26933
|
+
"h3",
|
|
26934
|
+
{
|
|
26935
|
+
className: cn(
|
|
26936
|
+
"text-xl md:text-2xl font-semibold",
|
|
26937
|
+
card.titleClassName
|
|
26938
|
+
),
|
|
26939
|
+
children: card.title
|
|
26940
|
+
}
|
|
26941
|
+
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
26942
|
+
"div",
|
|
26943
|
+
{
|
|
26944
|
+
className: cn(
|
|
26945
|
+
"text-xl md:text-2xl font-semibold",
|
|
26946
|
+
card.titleClassName
|
|
26947
|
+
),
|
|
26948
|
+
children: card.title
|
|
26949
|
+
}
|
|
26950
|
+
)),
|
|
26951
|
+
card.linkText && card.link && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
26952
|
+
Pressable,
|
|
26953
|
+
{
|
|
26954
|
+
className: cn(
|
|
26955
|
+
"font-bold text-xs uppercase",
|
|
26956
|
+
card.linkClassName
|
|
26957
|
+
),
|
|
26958
|
+
href: card.link,
|
|
26959
|
+
children: [
|
|
26960
|
+
card.linkText,
|
|
26961
|
+
/* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/arrow-up-right", size: 18 })
|
|
26962
|
+
]
|
|
26963
|
+
}
|
|
26964
|
+
)
|
|
26923
26965
|
] })
|
|
26924
26966
|
] })
|
|
26925
26967
|
]
|
|
@@ -26928,7 +26970,7 @@ function FeatureImageCardsThreeColumn({
|
|
|
26928
26970
|
);
|
|
26929
26971
|
});
|
|
26930
26972
|
}, [cardsSlot, cards, cardClassName, renderImage, renderBadgeIcon]);
|
|
26931
|
-
return /* @__PURE__ */ jsxRuntime.
|
|
26973
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
26932
26974
|
Section,
|
|
26933
26975
|
{
|
|
26934
26976
|
background,
|
|
@@ -26938,11 +26980,46 @@ function FeatureImageCardsThreeColumn({
|
|
|
26938
26980
|
patternClassName,
|
|
26939
26981
|
className,
|
|
26940
26982
|
containerClassName,
|
|
26941
|
-
children: [
|
|
26942
|
-
title
|
|
26943
|
-
|
|
26944
|
-
|
|
26945
|
-
|
|
26983
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col space-y-6 md:space-y-16", children: [
|
|
26984
|
+
title || description ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex flex-col gap-6 text-left", headerClassName), children: [
|
|
26985
|
+
title && (typeof title === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
26986
|
+
"h2",
|
|
26987
|
+
{
|
|
26988
|
+
className: cn(
|
|
26989
|
+
"text-xl font-semibold text-balance md:text-2xl lg:text-3xl max-w-lg md:max-w-md",
|
|
26990
|
+
titleClassName
|
|
26991
|
+
),
|
|
26992
|
+
children: title
|
|
26993
|
+
}
|
|
26994
|
+
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
26995
|
+
"div",
|
|
26996
|
+
{
|
|
26997
|
+
className: cn(
|
|
26998
|
+
"text-xl font-semibold text-balance md:text-2xl lg:text-3xl max-w-lg md:max-w-md",
|
|
26999
|
+
titleClassName
|
|
27000
|
+
),
|
|
27001
|
+
children: title
|
|
27002
|
+
}
|
|
27003
|
+
)),
|
|
27004
|
+
description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("max-w-lg md:max-w-md", descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
27005
|
+
"div",
|
|
27006
|
+
{
|
|
27007
|
+
className: cn("max-w-lg md:max-w-md", descriptionClassName),
|
|
27008
|
+
children: description
|
|
27009
|
+
}
|
|
27010
|
+
))
|
|
27011
|
+
] }) : null,
|
|
27012
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
27013
|
+
"div",
|
|
27014
|
+
{
|
|
27015
|
+
className: cn(
|
|
27016
|
+
"grid gap-4 md:gap-4 grid-cols-1 md:grid-cols-3",
|
|
27017
|
+
gridClassName
|
|
27018
|
+
),
|
|
27019
|
+
children: cardsContent
|
|
27020
|
+
}
|
|
27021
|
+
)
|
|
27022
|
+
] })
|
|
26946
27023
|
}
|
|
26947
27024
|
);
|
|
26948
27025
|
}
|
|
@@ -26952,35 +27029,68 @@ function FeatureIconGridMuted({
|
|
|
26952
27029
|
features,
|
|
26953
27030
|
featuresSlot,
|
|
26954
27031
|
className,
|
|
26955
|
-
containerClassName,
|
|
26956
27032
|
headerClassName,
|
|
26957
27033
|
titleClassName,
|
|
26958
27034
|
descriptionClassName,
|
|
26959
27035
|
gridClassName,
|
|
26960
27036
|
cardClassName,
|
|
26961
27037
|
background,
|
|
26962
|
-
spacing,
|
|
26963
27038
|
pattern,
|
|
26964
27039
|
patternOpacity,
|
|
26965
|
-
patternClassName
|
|
27040
|
+
patternClassName,
|
|
27041
|
+
spacing = "py-12 md:py-32",
|
|
27042
|
+
containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8"
|
|
26966
27043
|
}) {
|
|
26967
27044
|
const renderFeatureIcon = React52.useCallback((feature) => {
|
|
26968
27045
|
if (feature.icon) return feature.icon;
|
|
26969
|
-
if (feature.iconName)
|
|
27046
|
+
if (feature.iconName)
|
|
27047
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
27048
|
+
DynamicIcon,
|
|
27049
|
+
{
|
|
27050
|
+
name: feature.iconName,
|
|
27051
|
+
size: 24,
|
|
27052
|
+
className: feature.iconClassName
|
|
27053
|
+
}
|
|
27054
|
+
);
|
|
26970
27055
|
return null;
|
|
26971
27056
|
}, []);
|
|
26972
27057
|
const featuresContent = React52.useMemo(() => {
|
|
26973
27058
|
if (featuresSlot) return featuresSlot;
|
|
26974
27059
|
if (!features || features.length === 0) return null;
|
|
26975
|
-
return features.map((feature, index) => /* @__PURE__ */ jsxRuntime.
|
|
27060
|
+
return features.map((feature, index) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
26976
27061
|
"div",
|
|
26977
27062
|
{
|
|
26978
|
-
className: cn(
|
|
26979
|
-
|
|
27063
|
+
className: cn(
|
|
27064
|
+
"flex flex-col gap-2.5 rounded-xl border p-7 bg-muted text-muted-foreground",
|
|
27065
|
+
cardClassName,
|
|
27066
|
+
feature.className
|
|
27067
|
+
),
|
|
27068
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-6 md:gap-12", children: [
|
|
26980
27069
|
(feature.icon || feature.iconName) && renderFeatureIcon(feature),
|
|
26981
|
-
|
|
26982
|
-
|
|
26983
|
-
|
|
27070
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-2 md:gap-4", children: [
|
|
27071
|
+
feature.title && (typeof feature.title === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
27072
|
+
Pressable,
|
|
27073
|
+
{
|
|
27074
|
+
href: feature.href,
|
|
27075
|
+
className: cn(
|
|
27076
|
+
"font-medium text-xl text-muted-foreground",
|
|
27077
|
+
feature.titleClassName
|
|
27078
|
+
),
|
|
27079
|
+
children: feature.title
|
|
27080
|
+
}
|
|
27081
|
+
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
27082
|
+
"div",
|
|
27083
|
+
{
|
|
27084
|
+
className: cn(
|
|
27085
|
+
"font-medium text-xl text-muted-foreground",
|
|
27086
|
+
feature.titleClassName
|
|
27087
|
+
),
|
|
27088
|
+
children: feature.title
|
|
27089
|
+
}
|
|
27090
|
+
)),
|
|
27091
|
+
feature.description && (typeof feature.description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("text-sm", feature.descriptionClassName), children: feature.description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("text-sm", feature.descriptionClassName), children: feature.description }))
|
|
27092
|
+
] })
|
|
27093
|
+
] })
|
|
26984
27094
|
},
|
|
26985
27095
|
index
|
|
26986
27096
|
));
|
|
@@ -26996,11 +27106,65 @@ function FeatureIconGridMuted({
|
|
|
26996
27106
|
className,
|
|
26997
27107
|
containerClassName,
|
|
26998
27108
|
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-10", children: [
|
|
26999
|
-
(title || description) && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
27000
|
-
|
|
27001
|
-
|
|
27002
|
-
|
|
27003
|
-
|
|
27109
|
+
(title || description) && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
27110
|
+
"div",
|
|
27111
|
+
{
|
|
27112
|
+
className: cn(
|
|
27113
|
+
"mx-auto flex max-w-full md:max-w-md text-balance flex-col gap-2.5 text-center",
|
|
27114
|
+
headerClassName
|
|
27115
|
+
),
|
|
27116
|
+
children: [
|
|
27117
|
+
title && (typeof title === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
27118
|
+
"h2",
|
|
27119
|
+
{
|
|
27120
|
+
className: cn(
|
|
27121
|
+
"text-4xl font-semibold md:text-5xl",
|
|
27122
|
+
titleClassName
|
|
27123
|
+
),
|
|
27124
|
+
children: title
|
|
27125
|
+
}
|
|
27126
|
+
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
27127
|
+
"div",
|
|
27128
|
+
{
|
|
27129
|
+
className: cn(
|
|
27130
|
+
"text-4xl font-semibold md:text-5xl",
|
|
27131
|
+
titleClassName
|
|
27132
|
+
),
|
|
27133
|
+
children: title
|
|
27134
|
+
}
|
|
27135
|
+
)),
|
|
27136
|
+
description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
27137
|
+
"p",
|
|
27138
|
+
{
|
|
27139
|
+
className: cn(
|
|
27140
|
+
getTextColor(background, "muted"),
|
|
27141
|
+
descriptionClassName
|
|
27142
|
+
),
|
|
27143
|
+
children: description
|
|
27144
|
+
}
|
|
27145
|
+
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
27146
|
+
"div",
|
|
27147
|
+
{
|
|
27148
|
+
className: cn(
|
|
27149
|
+
getTextColor(background, "muted"),
|
|
27150
|
+
descriptionClassName
|
|
27151
|
+
),
|
|
27152
|
+
children: description
|
|
27153
|
+
}
|
|
27154
|
+
))
|
|
27155
|
+
]
|
|
27156
|
+
}
|
|
27157
|
+
),
|
|
27158
|
+
(featuresSlot || features && features.length > 0) && /* @__PURE__ */ jsxRuntime.jsx(
|
|
27159
|
+
"div",
|
|
27160
|
+
{
|
|
27161
|
+
className: cn(
|
|
27162
|
+
"mx-auto grid w-full gap-4 md:gap-6 grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-5",
|
|
27163
|
+
gridClassName
|
|
27164
|
+
),
|
|
27165
|
+
children: featuresContent
|
|
27166
|
+
}
|
|
27167
|
+
)
|
|
27004
27168
|
] })
|
|
27005
27169
|
}
|
|
27006
27170
|
);
|
|
@@ -27014,7 +27178,7 @@ function FeatureStatsHighlight({
|
|
|
27014
27178
|
stats,
|
|
27015
27179
|
statsSlot,
|
|
27016
27180
|
className,
|
|
27017
|
-
containerClassName,
|
|
27181
|
+
containerClassName = "px-6 sm:px-6 md:px-6 lg:px-8",
|
|
27018
27182
|
gridClassName,
|
|
27019
27183
|
contentClassName,
|
|
27020
27184
|
badgeClassName,
|
|
@@ -27024,7 +27188,7 @@ function FeatureStatsHighlight({
|
|
|
27024
27188
|
statsGridClassName,
|
|
27025
27189
|
statCardClassName,
|
|
27026
27190
|
background,
|
|
27027
|
-
spacing = "py-
|
|
27191
|
+
spacing = "py-12 md:py-32",
|
|
27028
27192
|
pattern,
|
|
27029
27193
|
patternOpacity,
|
|
27030
27194
|
patternClassName
|
|
@@ -27064,9 +27228,7 @@ function FeatureStatsHighlight({
|
|
|
27064
27228
|
"div",
|
|
27065
27229
|
{
|
|
27066
27230
|
className: cn(
|
|
27067
|
-
"flex flex-col gap-2 rounded-xl border p-6",
|
|
27068
|
-
getNestedCardBg(background, "card"),
|
|
27069
|
-
getNestedCardTextColor(background),
|
|
27231
|
+
"flex flex-col gap-2 rounded-xl border p-4 md:p-6 bg-card text-card-foreground h-full justify-between",
|
|
27070
27232
|
statCardClassName,
|
|
27071
27233
|
stat.className
|
|
27072
27234
|
),
|
|
@@ -27075,13 +27237,22 @@ function FeatureStatsHighlight({
|
|
|
27075
27237
|
"span",
|
|
27076
27238
|
{
|
|
27077
27239
|
className: cn(
|
|
27078
|
-
"text-
|
|
27240
|
+
"text-3xl font-bold lg:text-4xl xl:text-5xl",
|
|
27079
27241
|
stat.valueClassName
|
|
27080
27242
|
),
|
|
27081
27243
|
children: stat.value
|
|
27082
27244
|
}
|
|
27083
27245
|
),
|
|
27084
|
-
stat.label && /* @__PURE__ */ jsxRuntime.jsx(
|
|
27246
|
+
stat.label && /* @__PURE__ */ jsxRuntime.jsx(
|
|
27247
|
+
"span",
|
|
27248
|
+
{
|
|
27249
|
+
className: cn(
|
|
27250
|
+
"uppercase font-bold text-sm opacity-60",
|
|
27251
|
+
stat.labelClassName
|
|
27252
|
+
),
|
|
27253
|
+
children: stat.label
|
|
27254
|
+
}
|
|
27255
|
+
)
|
|
27085
27256
|
]
|
|
27086
27257
|
},
|
|
27087
27258
|
index
|
|
@@ -27103,7 +27274,7 @@ function FeatureStatsHighlight({
|
|
|
27103
27274
|
className: cn("grid gap-10 lg:grid-cols-2 lg:gap-20", gridClassName),
|
|
27104
27275
|
children: [
|
|
27105
27276
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex flex-col gap-5", contentClassName), children: [
|
|
27106
|
-
badge && /* @__PURE__ */ jsxRuntime.jsx(Badge, { variant: "
|
|
27277
|
+
badge && /* @__PURE__ */ jsxRuntime.jsx(Badge, { variant: "default", className: cn("", badgeClassName), children: badge }),
|
|
27107
27278
|
title && (typeof title === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
27108
27279
|
"h2",
|
|
27109
27280
|
{
|
|
@@ -27126,7 +27297,16 @@ function FeatureStatsHighlight({
|
|
|
27126
27297
|
description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn(" lg:text-lg", descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn(" lg:text-lg", descriptionClassName), children: description })),
|
|
27127
27298
|
(actionsSlot || actions && actions.length > 0) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: actionsClassName, children: actionsContent })
|
|
27128
27299
|
] }),
|
|
27129
|
-
(statsSlot || stats && stats.length > 0) && /* @__PURE__ */ jsxRuntime.jsx(
|
|
27300
|
+
(statsSlot || stats && stats.length > 0) && /* @__PURE__ */ jsxRuntime.jsx(
|
|
27301
|
+
"div",
|
|
27302
|
+
{
|
|
27303
|
+
className: cn(
|
|
27304
|
+
"grid grid-cols-1 gap-4 md:grid-cols-2 md:gap-6",
|
|
27305
|
+
statsGridClassName
|
|
27306
|
+
),
|
|
27307
|
+
children: statsContent
|
|
27308
|
+
}
|
|
27309
|
+
)
|
|
27130
27310
|
]
|
|
27131
27311
|
}
|
|
27132
27312
|
)
|
|
@@ -27200,7 +27380,7 @@ function FeatureAccordionImage({
|
|
|
27200
27380
|
itemsSlot,
|
|
27201
27381
|
defaultValue,
|
|
27202
27382
|
className,
|
|
27203
|
-
containerClassName,
|
|
27383
|
+
containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
|
|
27204
27384
|
headerClassName,
|
|
27205
27385
|
titleClassName,
|
|
27206
27386
|
descriptionClassName,
|
|
@@ -27221,55 +27401,129 @@ function FeatureAccordionImage({
|
|
|
27221
27401
|
const accordionItemsContent = React52.useMemo(() => {
|
|
27222
27402
|
if (itemsSlot) return itemsSlot;
|
|
27223
27403
|
if (!items || items.length === 0) return null;
|
|
27224
|
-
return items.map((item, index) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
27225
|
-
|
|
27226
|
-
item.content && /* @__PURE__ */ jsxRuntime.jsx(AccordionContent, { className: cn(getTextColor(background, "muted"), item.contentClassName), children: item.content })
|
|
27227
|
-
] }, index));
|
|
27228
|
-
}, [itemsSlot, items]);
|
|
27229
|
-
const imageContent = React52.useMemo(() => {
|
|
27230
|
-
if (currentImage?.imageSlot) return currentImage.imageSlot;
|
|
27231
|
-
if (!currentImage?.imageSrc) return null;
|
|
27232
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
27233
|
-
img.Img,
|
|
27404
|
+
return items.map((item, index) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
27405
|
+
AccordionItem,
|
|
27234
27406
|
{
|
|
27235
|
-
|
|
27236
|
-
|
|
27237
|
-
|
|
27238
|
-
|
|
27239
|
-
|
|
27240
|
-
|
|
27241
|
-
|
|
27242
|
-
|
|
27243
|
-
|
|
27244
|
-
|
|
27245
|
-
|
|
27246
|
-
|
|
27407
|
+
value: `item-${index}`,
|
|
27408
|
+
className: item.className,
|
|
27409
|
+
children: [
|
|
27410
|
+
item.title && /* @__PURE__ */ jsxRuntime.jsx(
|
|
27411
|
+
AccordionTrigger,
|
|
27412
|
+
{
|
|
27413
|
+
className: cn(
|
|
27414
|
+
"text-left text-lg font-medium",
|
|
27415
|
+
item.triggerClassName
|
|
27416
|
+
),
|
|
27417
|
+
children: item.title
|
|
27418
|
+
}
|
|
27419
|
+
),
|
|
27420
|
+
item.content && /* @__PURE__ */ jsxRuntime.jsx(
|
|
27421
|
+
AccordionContent,
|
|
27422
|
+
{
|
|
27423
|
+
className: cn(
|
|
27424
|
+
getTextColor(background, "muted"),
|
|
27425
|
+
item.contentClassName
|
|
27426
|
+
),
|
|
27427
|
+
children: item.content
|
|
27428
|
+
}
|
|
27429
|
+
)
|
|
27430
|
+
]
|
|
27431
|
+
},
|
|
27432
|
+
index
|
|
27433
|
+
));
|
|
27434
|
+
}, [itemsSlot, items]);
|
|
27435
|
+
const imageContent = React52.useMemo(() => {
|
|
27436
|
+
if (currentImage?.imageSlot) return currentImage.imageSlot;
|
|
27437
|
+
if (!currentImage?.imageSrc) return null;
|
|
27438
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
27439
|
+
img.Img,
|
|
27440
|
+
{
|
|
27441
|
+
src: currentImage.imageSrc,
|
|
27442
|
+
alt: currentImage.imageAlt || "",
|
|
27443
|
+
className: cn(
|
|
27444
|
+
"h-full w-full object-cover transition-opacity duration-300",
|
|
27445
|
+
imageClassName
|
|
27446
|
+
),
|
|
27447
|
+
loading: "lazy",
|
|
27448
|
+
optixFlowConfig
|
|
27449
|
+
}
|
|
27450
|
+
);
|
|
27451
|
+
}, [currentImage, imageClassName, optixFlowConfig]);
|
|
27452
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
27453
|
+
Section,
|
|
27454
|
+
{
|
|
27455
|
+
background,
|
|
27247
27456
|
spacing,
|
|
27248
27457
|
pattern,
|
|
27249
27458
|
patternOpacity,
|
|
27250
27459
|
patternClassName,
|
|
27251
27460
|
className,
|
|
27252
27461
|
containerClassName,
|
|
27253
|
-
children: [
|
|
27254
|
-
(title || description) && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
27255
|
-
|
|
27256
|
-
|
|
27257
|
-
|
|
27258
|
-
|
|
27259
|
-
|
|
27260
|
-
|
|
27261
|
-
|
|
27262
|
-
|
|
27263
|
-
|
|
27264
|
-
|
|
27265
|
-
|
|
27266
|
-
|
|
27267
|
-
|
|
27268
|
-
|
|
27269
|
-
|
|
27270
|
-
|
|
27271
|
-
|
|
27272
|
-
|
|
27462
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col space-y-6 md:space-y-16", children: [
|
|
27463
|
+
(title || description) && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
27464
|
+
"div",
|
|
27465
|
+
{
|
|
27466
|
+
className: cn(
|
|
27467
|
+
"text-center max-w-full md:max-w-md text-balance",
|
|
27468
|
+
headerClassName
|
|
27469
|
+
),
|
|
27470
|
+
children: [
|
|
27471
|
+
title && (typeof title === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
27472
|
+
"h2",
|
|
27473
|
+
{
|
|
27474
|
+
className: cn(
|
|
27475
|
+
"text-xl font-semibold md:text-2xl lg:text-3xl",
|
|
27476
|
+
titleClassName
|
|
27477
|
+
),
|
|
27478
|
+
children: title
|
|
27479
|
+
}
|
|
27480
|
+
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
27481
|
+
"div",
|
|
27482
|
+
{
|
|
27483
|
+
className: cn(
|
|
27484
|
+
"text-xl font-semibold md:text-2xl lg:text-3xl",
|
|
27485
|
+
titleClassName
|
|
27486
|
+
),
|
|
27487
|
+
children: title
|
|
27488
|
+
}
|
|
27489
|
+
)),
|
|
27490
|
+
description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("mt-4 lg:text-lg", descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mt-4 lg:text-lg", descriptionClassName), children: description }))
|
|
27491
|
+
]
|
|
27492
|
+
}
|
|
27493
|
+
),
|
|
27494
|
+
(itemsSlot || items && items.length > 0) && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
27495
|
+
"div",
|
|
27496
|
+
{
|
|
27497
|
+
className: cn(
|
|
27498
|
+
"grid gap-10 lg:grid-cols-2 lg:gap-16",
|
|
27499
|
+
gridClassName
|
|
27500
|
+
),
|
|
27501
|
+
children: [
|
|
27502
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
27503
|
+
Accordion,
|
|
27504
|
+
{
|
|
27505
|
+
type: "single",
|
|
27506
|
+
collapsible: true,
|
|
27507
|
+
value: activeItem,
|
|
27508
|
+
onValueChange: setActiveItem,
|
|
27509
|
+
className: cn("w-full", accordionClassName),
|
|
27510
|
+
children: accordionItemsContent
|
|
27511
|
+
}
|
|
27512
|
+
),
|
|
27513
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
27514
|
+
"div",
|
|
27515
|
+
{
|
|
27516
|
+
className: cn(
|
|
27517
|
+
"relative aspect-video overflow-hidden rounded-xl shadow-xl lg:aspect-square",
|
|
27518
|
+
imageWrapperClassName
|
|
27519
|
+
),
|
|
27520
|
+
children: imageContent
|
|
27521
|
+
}
|
|
27522
|
+
)
|
|
27523
|
+
]
|
|
27524
|
+
}
|
|
27525
|
+
)
|
|
27526
|
+
] })
|
|
27273
27527
|
}
|
|
27274
27528
|
);
|
|
27275
27529
|
}
|
|
@@ -41541,236 +41795,268 @@ function FaqSplitHero({
|
|
|
41541
41795
|
imageArea
|
|
41542
41796
|
] }) });
|
|
41543
41797
|
}
|
|
41544
|
-
var Controls = React52__namespace.memo(
|
|
41545
|
-
|
|
41546
|
-
|
|
41547
|
-
|
|
41548
|
-
|
|
41549
|
-
|
|
41550
|
-
|
|
41551
|
-
/* @__PURE__ */ jsxRuntime.
|
|
41552
|
-
|
|
41553
|
-
|
|
41554
|
-
|
|
41555
|
-
|
|
41556
|
-
|
|
41557
|
-
|
|
41558
|
-
|
|
41559
|
-
|
|
41560
|
-
),
|
|
41561
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
41562
|
-
"button",
|
|
41563
|
-
{
|
|
41564
|
-
className: "rounded-full border bg-background/50 p-2 hover:bg-background disabled:opacity-50",
|
|
41565
|
-
onClick: handleNext,
|
|
41566
|
-
disabled: isNextDisabled,
|
|
41567
|
-
type: "button",
|
|
41568
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/chevron-down", size: 24 })
|
|
41569
|
-
}
|
|
41570
|
-
)
|
|
41571
|
-
] });
|
|
41572
|
-
});
|
|
41573
|
-
var FeatureCard = React52__namespace.memo(({ feature, isActive, onClick }) => {
|
|
41574
|
-
const variants2 = React52.useMemo(() => ({
|
|
41575
|
-
initial: {
|
|
41576
|
-
opacity: 0
|
|
41577
|
-
},
|
|
41578
|
-
animate: {
|
|
41579
|
-
opacity: 1
|
|
41580
|
-
},
|
|
41581
|
-
exit: {
|
|
41582
|
-
opacity: 0
|
|
41583
|
-
}
|
|
41584
|
-
}), []);
|
|
41585
|
-
return /* @__PURE__ */ jsxRuntime.jsx(framerMotion.AnimatePresence, { mode: "popLayout", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
41586
|
-
framerMotion.motion.div,
|
|
41587
|
-
{
|
|
41588
|
-
layout: true,
|
|
41589
|
-
transition: {
|
|
41590
|
-
layout: {
|
|
41591
|
-
duration: 0.4,
|
|
41592
|
-
ease: "easeOut"
|
|
41798
|
+
var Controls = React52__namespace.memo(
|
|
41799
|
+
({
|
|
41800
|
+
handleNext,
|
|
41801
|
+
handlePrevious,
|
|
41802
|
+
isPreviousDisabled,
|
|
41803
|
+
isNextDisabled
|
|
41804
|
+
}) => {
|
|
41805
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "hidden flex-col items-start gap-8 lg:flex", children: [
|
|
41806
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
41807
|
+
"button",
|
|
41808
|
+
{
|
|
41809
|
+
className: "rounded-full border p-2 flex items-center justify-center disabled:opacity-50 h-fit w-fit bg-card text-card-foreground",
|
|
41810
|
+
onClick: handlePrevious,
|
|
41811
|
+
disabled: isPreviousDisabled,
|
|
41812
|
+
type: "button",
|
|
41813
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/chevron-up", size: 24 })
|
|
41593
41814
|
}
|
|
41594
|
-
|
|
41595
|
-
|
|
41596
|
-
|
|
41597
|
-
},
|
|
41598
|
-
className: "flex cursor-pointer items-start gap-4 overflow-hidden bg-background md:w-fit md:max-w-sm",
|
|
41599
|
-
onClick,
|
|
41600
|
-
children: isActive ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
41601
|
-
framerMotion.motion.div,
|
|
41815
|
+
),
|
|
41816
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
41817
|
+
"button",
|
|
41602
41818
|
{
|
|
41603
|
-
|
|
41604
|
-
|
|
41605
|
-
|
|
41606
|
-
|
|
41607
|
-
|
|
41608
|
-
|
|
41819
|
+
className: "rounded-full border p-2 flex items-center justify-center disabled:opacity-50 h-fit w-fit bg-card text-card-foreground",
|
|
41820
|
+
onClick: handleNext,
|
|
41821
|
+
disabled: isNextDisabled,
|
|
41822
|
+
type: "button",
|
|
41823
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/chevron-down", size: 24 })
|
|
41824
|
+
}
|
|
41825
|
+
)
|
|
41826
|
+
] });
|
|
41827
|
+
}
|
|
41828
|
+
);
|
|
41829
|
+
var FeatureCard = React52__namespace.memo(
|
|
41830
|
+
({ feature, isActive, onClick }) => {
|
|
41831
|
+
const variants2 = React52.useMemo(
|
|
41832
|
+
() => ({
|
|
41833
|
+
initial: {
|
|
41834
|
+
opacity: 0
|
|
41835
|
+
},
|
|
41836
|
+
animate: {
|
|
41837
|
+
opacity: 1
|
|
41838
|
+
},
|
|
41839
|
+
exit: {
|
|
41840
|
+
opacity: 0
|
|
41841
|
+
}
|
|
41842
|
+
}),
|
|
41843
|
+
[]
|
|
41844
|
+
);
|
|
41845
|
+
return /* @__PURE__ */ jsxRuntime.jsx(framerMotion.AnimatePresence, { mode: "popLayout", children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
41846
|
+
framerMotion.motion.div,
|
|
41847
|
+
{
|
|
41848
|
+
layout: true,
|
|
41849
|
+
transition: {
|
|
41850
|
+
layout: {
|
|
41609
41851
|
duration: 0.4,
|
|
41610
|
-
delay: 0.3,
|
|
41611
41852
|
ease: "easeOut"
|
|
41853
|
+
}
|
|
41854
|
+
},
|
|
41855
|
+
style: {
|
|
41856
|
+
borderRadius: "24px"
|
|
41857
|
+
},
|
|
41858
|
+
className: cn(
|
|
41859
|
+
"relative flex items-start gap-4 overflow-hidden bg-background text-foreground md:w-fit md:max-w-sm",
|
|
41860
|
+
isActive ? "shadow-xl" : "cursor-pointer shadow-none"
|
|
41861
|
+
),
|
|
41862
|
+
onClick,
|
|
41863
|
+
children: [
|
|
41864
|
+
isActive && feature.href && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute bottom-4 right-4 bg-background rounded-full h-fit w-fit p-2 flex items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
41865
|
+
Pressable,
|
|
41866
|
+
{
|
|
41867
|
+
href: feature.href,
|
|
41868
|
+
size: "icon-lg",
|
|
41869
|
+
className: "text-foreground",
|
|
41870
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/arrow-up-right" })
|
|
41871
|
+
}
|
|
41872
|
+
) }),
|
|
41873
|
+
isActive ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
41874
|
+
framerMotion.motion.div,
|
|
41875
|
+
{
|
|
41876
|
+
layout: true,
|
|
41877
|
+
variants: variants2,
|
|
41878
|
+
initial: "initial",
|
|
41879
|
+
animate: "animate",
|
|
41880
|
+
exit: "exit",
|
|
41881
|
+
transition: {
|
|
41882
|
+
duration: 0.4,
|
|
41883
|
+
delay: 0.3,
|
|
41884
|
+
ease: "easeOut"
|
|
41885
|
+
},
|
|
41886
|
+
className: "p-6 text-sm md:p-8 md:text-base",
|
|
41887
|
+
children: (feature.title || feature.description) && /* @__PURE__ */ jsxRuntime.jsxs("p", { children: [
|
|
41888
|
+
feature.title && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "font-semibold", children: [
|
|
41889
|
+
feature.title,
|
|
41890
|
+
"."
|
|
41891
|
+
] }),
|
|
41892
|
+
feature.title && feature.description && " ",
|
|
41893
|
+
feature.description && /* @__PURE__ */ jsxRuntime.jsx("span", { children: feature.description })
|
|
41894
|
+
] })
|
|
41895
|
+
},
|
|
41896
|
+
`feature-description-active-${feature.title}`
|
|
41897
|
+
) : /* @__PURE__ */ jsxRuntime.jsxs(
|
|
41898
|
+
framerMotion.motion.div,
|
|
41899
|
+
{
|
|
41900
|
+
layout: true,
|
|
41901
|
+
variants: variants2,
|
|
41902
|
+
initial: "initial",
|
|
41903
|
+
animate: "animate",
|
|
41904
|
+
exit: "exit",
|
|
41905
|
+
transition: {
|
|
41906
|
+
duration: 0.4,
|
|
41907
|
+
delay: 0.2,
|
|
41908
|
+
ease: "easeOut"
|
|
41909
|
+
},
|
|
41910
|
+
className: cn(
|
|
41911
|
+
"flex h-fit shrink-0 items-center gap-4 text-sm md:py-3.5 md:pr-6 md:pl-3 md:text-base",
|
|
41912
|
+
!isActive && "h-0 w-0 md:h-auto md:w-auto"
|
|
41913
|
+
),
|
|
41914
|
+
style: {
|
|
41915
|
+
height: "auto",
|
|
41916
|
+
lineHeight: "normal"
|
|
41917
|
+
},
|
|
41918
|
+
children: [
|
|
41919
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
41920
|
+
DynamicIcon,
|
|
41921
|
+
{
|
|
41922
|
+
name: "lucide/plus-circle",
|
|
41923
|
+
size: 24,
|
|
41924
|
+
className: "shrink-0"
|
|
41925
|
+
}
|
|
41926
|
+
),
|
|
41927
|
+
feature.title && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "shrink-0 font-semibold", children: feature.title })
|
|
41928
|
+
]
|
|
41929
|
+
},
|
|
41930
|
+
`feature-description-inactive-${feature.title}`
|
|
41931
|
+
)
|
|
41932
|
+
]
|
|
41933
|
+
}
|
|
41934
|
+
) });
|
|
41935
|
+
}
|
|
41936
|
+
);
|
|
41937
|
+
var FeaturesDesktop = React52__namespace.memo(
|
|
41938
|
+
({
|
|
41939
|
+
features,
|
|
41940
|
+
handleNext,
|
|
41941
|
+
handlePrevious,
|
|
41942
|
+
activeIndex,
|
|
41943
|
+
handleFeatureClick,
|
|
41944
|
+
isPreviousDisabled,
|
|
41945
|
+
isNextDisabled
|
|
41946
|
+
}) => {
|
|
41947
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative z-10 hidden items-center gap-8 md:flex", children: [
|
|
41948
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
41949
|
+
Controls,
|
|
41950
|
+
{
|
|
41951
|
+
handleNext,
|
|
41952
|
+
handlePrevious,
|
|
41953
|
+
isPreviousDisabled,
|
|
41954
|
+
isNextDisabled
|
|
41955
|
+
}
|
|
41956
|
+
),
|
|
41957
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-col gap-4", children: features.map((feature, index) => {
|
|
41958
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
41959
|
+
FeatureCard,
|
|
41960
|
+
{
|
|
41961
|
+
feature,
|
|
41962
|
+
isActive: index === activeIndex,
|
|
41963
|
+
onClick: () => handleFeatureClick(index)
|
|
41612
41964
|
},
|
|
41613
|
-
|
|
41614
|
-
|
|
41615
|
-
|
|
41616
|
-
|
|
41617
|
-
|
|
41618
|
-
|
|
41619
|
-
|
|
41620
|
-
|
|
41621
|
-
|
|
41965
|
+
`feature-card-${index}`
|
|
41966
|
+
);
|
|
41967
|
+
}) })
|
|
41968
|
+
] });
|
|
41969
|
+
}
|
|
41970
|
+
);
|
|
41971
|
+
var FeaturesMobile = React52__namespace.memo(
|
|
41972
|
+
({
|
|
41973
|
+
features,
|
|
41974
|
+
handleNext,
|
|
41975
|
+
handlePrevious,
|
|
41976
|
+
activeIndex,
|
|
41977
|
+
direction,
|
|
41978
|
+
isPreviousDisabled,
|
|
41979
|
+
isNextDisabled
|
|
41980
|
+
}) => {
|
|
41981
|
+
const variants2 = React52.useMemo(
|
|
41982
|
+
() => ({
|
|
41983
|
+
enter: (direction2) => ({
|
|
41984
|
+
x: direction2 > 0 ? 100 : -100,
|
|
41985
|
+
opacity: 0
|
|
41986
|
+
}),
|
|
41987
|
+
center: {
|
|
41988
|
+
x: 0,
|
|
41989
|
+
opacity: 1
|
|
41622
41990
|
},
|
|
41623
|
-
|
|
41624
|
-
|
|
41991
|
+
exit: (direction2) => ({
|
|
41992
|
+
x: direction2 < 0 ? 100 : -100,
|
|
41993
|
+
opacity: 0
|
|
41994
|
+
})
|
|
41995
|
+
}),
|
|
41996
|
+
[]
|
|
41997
|
+
);
|
|
41998
|
+
const currentFeature = features[activeIndex];
|
|
41999
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative z-10 flex flex-col gap-4 md:hidden", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex w-full items-stretch gap-4", children: [
|
|
42000
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-1 overflow-hidden", children: /* @__PURE__ */ jsxRuntime.jsx(framerMotion.AnimatePresence, { mode: "wait", custom: direction, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
41625
42001
|
framerMotion.motion.div,
|
|
41626
42002
|
{
|
|
41627
|
-
|
|
42003
|
+
custom: direction,
|
|
41628
42004
|
variants: variants2,
|
|
41629
|
-
initial: "
|
|
41630
|
-
animate: "
|
|
42005
|
+
initial: "enter",
|
|
42006
|
+
animate: "center",
|
|
41631
42007
|
exit: "exit",
|
|
41632
42008
|
transition: {
|
|
41633
|
-
|
|
41634
|
-
|
|
41635
|
-
ease: "easeOut"
|
|
42009
|
+
x: { type: "spring", stiffness: 300, damping: 30 },
|
|
42010
|
+
opacity: { duration: 0.2 }
|
|
41636
42011
|
},
|
|
41637
|
-
className:
|
|
41638
|
-
|
|
41639
|
-
|
|
41640
|
-
|
|
41641
|
-
|
|
41642
|
-
height: "auto",
|
|
41643
|
-
lineHeight: "normal"
|
|
41644
|
-
},
|
|
41645
|
-
children: [
|
|
41646
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
41647
|
-
DynamicIcon,
|
|
41648
|
-
{
|
|
41649
|
-
name: "lucide/plus-circle",
|
|
41650
|
-
size: 24,
|
|
41651
|
-
className: "shrink-0"
|
|
41652
|
-
}
|
|
41653
|
-
),
|
|
41654
|
-
feature.title && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "shrink-0 font-semibold", children: feature.title })
|
|
41655
|
-
]
|
|
41656
|
-
},
|
|
41657
|
-
`feature-description-inactive-${feature.title}`
|
|
41658
|
-
)
|
|
41659
|
-
}
|
|
41660
|
-
) });
|
|
41661
|
-
});
|
|
41662
|
-
var FeaturesDesktop = React52__namespace.memo(({
|
|
41663
|
-
features,
|
|
41664
|
-
handleNext,
|
|
41665
|
-
handlePrevious,
|
|
41666
|
-
activeIndex,
|
|
41667
|
-
handleFeatureClick,
|
|
41668
|
-
isPreviousDisabled,
|
|
41669
|
-
isNextDisabled
|
|
41670
|
-
}) => {
|
|
41671
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative z-10 hidden items-center gap-8 md:flex", children: [
|
|
41672
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
41673
|
-
Controls,
|
|
41674
|
-
{
|
|
41675
|
-
handleNext,
|
|
41676
|
-
handlePrevious,
|
|
41677
|
-
isPreviousDisabled,
|
|
41678
|
-
isNextDisabled
|
|
41679
|
-
}
|
|
41680
|
-
),
|
|
41681
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-col gap-4", children: features.map((feature, index) => {
|
|
41682
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
41683
|
-
FeatureCard,
|
|
41684
|
-
{
|
|
41685
|
-
feature,
|
|
41686
|
-
isActive: index === activeIndex,
|
|
41687
|
-
onClick: () => handleFeatureClick(index)
|
|
41688
|
-
},
|
|
41689
|
-
`feature-card-${index}`
|
|
41690
|
-
);
|
|
41691
|
-
}) })
|
|
41692
|
-
] });
|
|
41693
|
-
});
|
|
41694
|
-
var FeaturesMobile = React52__namespace.memo(({
|
|
41695
|
-
features,
|
|
41696
|
-
handleNext,
|
|
41697
|
-
handlePrevious,
|
|
41698
|
-
activeIndex,
|
|
41699
|
-
direction,
|
|
41700
|
-
isPreviousDisabled,
|
|
41701
|
-
isNextDisabled
|
|
41702
|
-
}) => {
|
|
41703
|
-
const variants2 = React52.useMemo(() => ({
|
|
41704
|
-
enter: (direction2) => ({
|
|
41705
|
-
x: direction2 > 0 ? 100 : -100,
|
|
41706
|
-
opacity: 0
|
|
41707
|
-
}),
|
|
41708
|
-
center: {
|
|
41709
|
-
x: 0,
|
|
41710
|
-
opacity: 1
|
|
41711
|
-
},
|
|
41712
|
-
exit: (direction2) => ({
|
|
41713
|
-
x: direction2 < 0 ? 100 : -100,
|
|
41714
|
-
opacity: 0
|
|
41715
|
-
})
|
|
41716
|
-
}), []);
|
|
41717
|
-
const currentFeature = features[activeIndex];
|
|
41718
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative z-10 flex flex-col items-center gap-6 md:hidden", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex w-full items-center justify-between gap-4", children: [
|
|
41719
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
41720
|
-
"button",
|
|
41721
|
-
{
|
|
41722
|
-
className: "rounded-full border bg-background/50 p-2 hover:bg-background disabled:opacity-50",
|
|
41723
|
-
onClick: handlePrevious,
|
|
41724
|
-
disabled: isPreviousDisabled,
|
|
41725
|
-
type: "button",
|
|
41726
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/chevron-left", size: 24 })
|
|
41727
|
-
}
|
|
41728
|
-
),
|
|
41729
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative h-24 w-full overflow-hidden", children: /* @__PURE__ */ jsxRuntime.jsx(framerMotion.AnimatePresence, { mode: "wait", custom: direction, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
41730
|
-
framerMotion.motion.div,
|
|
41731
|
-
{
|
|
41732
|
-
custom: direction,
|
|
41733
|
-
variants: variants2,
|
|
41734
|
-
initial: "enter",
|
|
41735
|
-
animate: "center",
|
|
41736
|
-
exit: "exit",
|
|
41737
|
-
transition: {
|
|
41738
|
-
x: { type: "spring", stiffness: 300, damping: 30 },
|
|
41739
|
-
opacity: { duration: 0.2 }
|
|
42012
|
+
className: "rounded-3xl bg-background p-4 text-left",
|
|
42013
|
+
children: (currentFeature?.title || currentFeature?.description) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-sm", children: [
|
|
42014
|
+
currentFeature.title && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-semibold", children: currentFeature.title }),
|
|
42015
|
+
currentFeature.description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1", children: currentFeature.description })
|
|
42016
|
+
] })
|
|
41740
42017
|
},
|
|
41741
|
-
|
|
41742
|
-
|
|
41743
|
-
|
|
41744
|
-
|
|
41745
|
-
|
|
41746
|
-
|
|
41747
|
-
|
|
41748
|
-
|
|
41749
|
-
|
|
41750
|
-
|
|
41751
|
-
|
|
41752
|
-
|
|
41753
|
-
|
|
41754
|
-
|
|
41755
|
-
|
|
41756
|
-
|
|
41757
|
-
|
|
41758
|
-
|
|
41759
|
-
|
|
41760
|
-
|
|
41761
|
-
|
|
41762
|
-
|
|
41763
|
-
|
|
41764
|
-
})
|
|
42018
|
+
activeIndex
|
|
42019
|
+
) }) }),
|
|
42020
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col justify-center gap-2", children: [
|
|
42021
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
42022
|
+
"button",
|
|
42023
|
+
{
|
|
42024
|
+
className: "rounded-full border bg-background/50 p-2 hover:bg-background disabled:opacity-50",
|
|
42025
|
+
onClick: handlePrevious,
|
|
42026
|
+
disabled: isPreviousDisabled,
|
|
42027
|
+
type: "button",
|
|
42028
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/chevron-up", size: 20 })
|
|
42029
|
+
}
|
|
42030
|
+
),
|
|
42031
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
42032
|
+
"button",
|
|
42033
|
+
{
|
|
42034
|
+
className: "rounded-full border bg-background/50 p-2 hover:bg-background disabled:opacity-50",
|
|
42035
|
+
onClick: handleNext,
|
|
42036
|
+
disabled: isNextDisabled,
|
|
42037
|
+
type: "button",
|
|
42038
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/chevron-down", size: 20 })
|
|
42039
|
+
}
|
|
42040
|
+
)
|
|
42041
|
+
] })
|
|
42042
|
+
] }) });
|
|
42043
|
+
}
|
|
42044
|
+
);
|
|
41765
42045
|
function FeatureAnimatedCarousel({
|
|
42046
|
+
title,
|
|
42047
|
+
description,
|
|
42048
|
+
titleClassName,
|
|
42049
|
+
descriptionClassName,
|
|
41766
42050
|
features,
|
|
41767
42051
|
className,
|
|
41768
42052
|
optixFlowConfig,
|
|
41769
42053
|
background,
|
|
41770
|
-
spacing,
|
|
41771
42054
|
pattern,
|
|
41772
42055
|
patternOpacity,
|
|
41773
|
-
patternClassName
|
|
42056
|
+
patternClassName,
|
|
42057
|
+
headerClassName,
|
|
42058
|
+
spacing = "py-12 md:py-32",
|
|
42059
|
+
containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8"
|
|
41774
42060
|
}) {
|
|
41775
42061
|
const [activeIndex, setActiveIndex] = React52__namespace.useState(0);
|
|
41776
42062
|
const [direction, setDirection] = React52__namespace.useState(1);
|
|
@@ -41786,26 +42072,32 @@ function FeatureAnimatedCarousel({
|
|
|
41786
42072
|
setActiveIndex(activeIndex - 1);
|
|
41787
42073
|
}
|
|
41788
42074
|
}, [activeIndex]);
|
|
41789
|
-
const handleFeatureClick = React52.useCallback(
|
|
41790
|
-
|
|
41791
|
-
|
|
41792
|
-
|
|
42075
|
+
const handleFeatureClick = React52.useCallback(
|
|
42076
|
+
(index) => {
|
|
42077
|
+
setDirection(index > activeIndex ? 1 : -1);
|
|
42078
|
+
setActiveIndex(index);
|
|
42079
|
+
},
|
|
42080
|
+
[activeIndex]
|
|
42081
|
+
);
|
|
41793
42082
|
const isPreviousDisabled = activeIndex === 0;
|
|
41794
42083
|
const isNextDisabled = !features || activeIndex === features.length - 1;
|
|
41795
|
-
const imageVariants = React52.useMemo(
|
|
41796
|
-
|
|
41797
|
-
|
|
41798
|
-
|
|
42084
|
+
const imageVariants = React52.useMemo(
|
|
42085
|
+
() => ({
|
|
42086
|
+
enter: (direction2) => ({
|
|
42087
|
+
x: direction2 > 0 ? 300 : -300,
|
|
42088
|
+
opacity: 0
|
|
42089
|
+
}),
|
|
42090
|
+
center: {
|
|
42091
|
+
x: 0,
|
|
42092
|
+
opacity: 1
|
|
42093
|
+
},
|
|
42094
|
+
exit: (direction2) => ({
|
|
42095
|
+
x: direction2 < 0 ? 300 : -300,
|
|
42096
|
+
opacity: 0
|
|
42097
|
+
})
|
|
41799
42098
|
}),
|
|
41800
|
-
|
|
41801
|
-
|
|
41802
|
-
opacity: 1
|
|
41803
|
-
},
|
|
41804
|
-
exit: (direction2) => ({
|
|
41805
|
-
x: direction2 < 0 ? 300 : -300,
|
|
41806
|
-
opacity: 0
|
|
41807
|
-
})
|
|
41808
|
-
}), []);
|
|
42099
|
+
[]
|
|
42100
|
+
);
|
|
41809
42101
|
if (!features || features.length === 0) {
|
|
41810
42102
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
41811
42103
|
Section,
|
|
@@ -41816,11 +42108,17 @@ function FeatureAnimatedCarousel({
|
|
|
41816
42108
|
patternOpacity,
|
|
41817
42109
|
patternClassName,
|
|
41818
42110
|
className,
|
|
41819
|
-
|
|
41820
|
-
|
|
41821
|
-
|
|
41822
|
-
|
|
41823
|
-
|
|
42111
|
+
containerClassName,
|
|
42112
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
42113
|
+
"div",
|
|
42114
|
+
{
|
|
42115
|
+
className: cn(
|
|
42116
|
+
"relative flex min-h-[500px] flex-col-reverse gap-8 overflow-hidden rounded-3xl p-6 md:flex-row md:items-center md:p-12 lg:min-h-[600px]",
|
|
42117
|
+
getNestedCardBg(background),
|
|
42118
|
+
getNestedCardTextColor(background)
|
|
42119
|
+
)
|
|
42120
|
+
}
|
|
42121
|
+
)
|
|
41824
42122
|
}
|
|
41825
42123
|
);
|
|
41826
42124
|
}
|
|
@@ -41834,60 +42132,105 @@ function FeatureAnimatedCarousel({
|
|
|
41834
42132
|
patternOpacity,
|
|
41835
42133
|
patternClassName,
|
|
41836
42134
|
className,
|
|
41837
|
-
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className:
|
|
41838
|
-
"
|
|
41839
|
-
|
|
41840
|
-
|
|
41841
|
-
|
|
41842
|
-
|
|
41843
|
-
|
|
41844
|
-
|
|
41845
|
-
|
|
41846
|
-
|
|
41847
|
-
|
|
41848
|
-
|
|
41849
|
-
|
|
41850
|
-
|
|
41851
|
-
|
|
41852
|
-
|
|
41853
|
-
|
|
41854
|
-
|
|
41855
|
-
|
|
42135
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col space-y-6 md:space-y-16", children: [
|
|
42136
|
+
title || description ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex flex-col gap-6 text-left", headerClassName), children: [
|
|
42137
|
+
title && (typeof title === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
42138
|
+
"h2",
|
|
42139
|
+
{
|
|
42140
|
+
className: cn(
|
|
42141
|
+
"text-xl font-semibold text-balance md:text-2xl lg:text-3xl max-w-lg md:max-w-md",
|
|
42142
|
+
titleClassName
|
|
42143
|
+
),
|
|
42144
|
+
children: title
|
|
42145
|
+
}
|
|
42146
|
+
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
42147
|
+
"div",
|
|
42148
|
+
{
|
|
42149
|
+
className: cn(
|
|
42150
|
+
"text-xl font-semibold text-balance md:text-2xl lg:text-3xl max-w-lg md:max-w-md",
|
|
42151
|
+
titleClassName
|
|
42152
|
+
),
|
|
42153
|
+
children: title
|
|
42154
|
+
}
|
|
42155
|
+
)),
|
|
42156
|
+
description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("max-w-lg md:max-w-md", descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
42157
|
+
"div",
|
|
42158
|
+
{
|
|
42159
|
+
className: cn("max-w-lg md:max-w-md", descriptionClassName),
|
|
42160
|
+
children: description
|
|
42161
|
+
}
|
|
42162
|
+
))
|
|
42163
|
+
] }) : null,
|
|
42164
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
42165
|
+
"div",
|
|
41856
42166
|
{
|
|
41857
|
-
|
|
41858
|
-
|
|
41859
|
-
|
|
41860
|
-
|
|
41861
|
-
|
|
41862
|
-
|
|
41863
|
-
|
|
42167
|
+
className: cn(
|
|
42168
|
+
"relative flex min-h-[500px] flex-col-reverse gap-8 overflow-hidden rounded-3xl p-6 md:flex-row md:items-center md:p-12 lg:min-h-[600px]"
|
|
42169
|
+
),
|
|
42170
|
+
children: [
|
|
42171
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
42172
|
+
FeaturesDesktop,
|
|
42173
|
+
{
|
|
42174
|
+
features,
|
|
42175
|
+
handleNext,
|
|
42176
|
+
handlePrevious,
|
|
42177
|
+
activeIndex,
|
|
42178
|
+
handleFeatureClick,
|
|
42179
|
+
isPreviousDisabled,
|
|
42180
|
+
isNextDisabled
|
|
42181
|
+
}
|
|
42182
|
+
),
|
|
42183
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
42184
|
+
FeaturesMobile,
|
|
42185
|
+
{
|
|
42186
|
+
features,
|
|
42187
|
+
handleNext,
|
|
42188
|
+
handlePrevious,
|
|
42189
|
+
activeIndex,
|
|
42190
|
+
direction,
|
|
42191
|
+
isPreviousDisabled,
|
|
42192
|
+
isNextDisabled
|
|
42193
|
+
}
|
|
42194
|
+
),
|
|
42195
|
+
currentFeature?.image && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative w-full h-[250px] md:h-auto overflow-hidden rounded-2xl md:absolute md:right-8 md:top-8 md:bottom-8 md:w-1/2 shadow-xl", children: [
|
|
42196
|
+
currentFeature.href && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute top-4 right-4 z-10 bg-background rounded-full h-fit w-fit p-2 flex items-center justify-center md:hidden", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
42197
|
+
Pressable,
|
|
42198
|
+
{
|
|
42199
|
+
href: currentFeature.href,
|
|
42200
|
+
size: "icon-lg",
|
|
42201
|
+
className: "text-foreground",
|
|
42202
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/arrow-up-right" })
|
|
42203
|
+
}
|
|
42204
|
+
) }),
|
|
42205
|
+
/* @__PURE__ */ jsxRuntime.jsx(framerMotion.AnimatePresence, { mode: "wait", custom: direction, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
42206
|
+
framerMotion.motion.div,
|
|
42207
|
+
{
|
|
42208
|
+
custom: direction,
|
|
42209
|
+
variants: imageVariants,
|
|
42210
|
+
initial: "enter",
|
|
42211
|
+
animate: "center",
|
|
42212
|
+
exit: "exit",
|
|
42213
|
+
transition: {
|
|
42214
|
+
x: { type: "spring", stiffness: 300, damping: 30 },
|
|
42215
|
+
opacity: { duration: 0.2 }
|
|
42216
|
+
},
|
|
42217
|
+
className: "h-full w-full",
|
|
42218
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
42219
|
+
img.Img,
|
|
42220
|
+
{
|
|
42221
|
+
src: currentFeature.image,
|
|
42222
|
+
alt: currentFeature.imageAlt || (typeof currentFeature.title === "string" ? currentFeature.title : "Feature image"),
|
|
42223
|
+
className: "h-full w-full object-cover",
|
|
42224
|
+
optixFlowConfig
|
|
42225
|
+
}
|
|
42226
|
+
)
|
|
42227
|
+
},
|
|
42228
|
+
activeIndex
|
|
42229
|
+
) })
|
|
42230
|
+
] })
|
|
42231
|
+
]
|
|
41864
42232
|
}
|
|
41865
|
-
)
|
|
41866
|
-
currentFeature?.image && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative flex-1 overflow-hidden rounded-2xl md:absolute md:right-8 md:top-8 md:bottom-8 md:w-1/2", children: /* @__PURE__ */ jsxRuntime.jsx(framerMotion.AnimatePresence, { mode: "wait", custom: direction, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
41867
|
-
framerMotion.motion.div,
|
|
41868
|
-
{
|
|
41869
|
-
custom: direction,
|
|
41870
|
-
variants: imageVariants,
|
|
41871
|
-
initial: "enter",
|
|
41872
|
-
animate: "center",
|
|
41873
|
-
exit: "exit",
|
|
41874
|
-
transition: {
|
|
41875
|
-
x: { type: "spring", stiffness: 300, damping: 30 },
|
|
41876
|
-
opacity: { duration: 0.2 }
|
|
41877
|
-
},
|
|
41878
|
-
className: "h-full w-full",
|
|
41879
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
41880
|
-
img.Img,
|
|
41881
|
-
{
|
|
41882
|
-
src: currentFeature.image,
|
|
41883
|
-
alt: currentFeature.imageAlt || (typeof currentFeature.title === "string" ? currentFeature.title : "Feature image"),
|
|
41884
|
-
className: "h-full w-full object-cover",
|
|
41885
|
-
optixFlowConfig
|
|
41886
|
-
}
|
|
41887
|
-
)
|
|
41888
|
-
},
|
|
41889
|
-
activeIndex
|
|
41890
|
-
) }) })
|
|
42233
|
+
)
|
|
41891
42234
|
] })
|
|
41892
42235
|
}
|
|
41893
42236
|
);
|