@opensite/ui 1.2.4 → 1.2.6
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 +809 -321
- package/dist/feature-animated-carousel.d.cts +29 -1
- package/dist/feature-animated-carousel.d.ts +29 -1
- package/dist/feature-animated-carousel.js +807 -319
- package/dist/feature-card-grid-linked.cjs +1 -1
- package/dist/feature-card-grid-linked.js +1 -1
- package/dist/feature-carousel-progress.cjs +35 -10
- package/dist/feature-carousel-progress.js +35 -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 +767 -402
- package/dist/registry.js +767 -402
- 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,31 @@ 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(
|
|
24435
|
+
description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
24436
|
+
"p",
|
|
24437
|
+
{
|
|
24438
|
+
className: cn(
|
|
24439
|
+
"max-w-lg md:max-w-md text-balance",
|
|
24440
|
+
descriptionClassName
|
|
24441
|
+
),
|
|
24442
|
+
children: description
|
|
24443
|
+
}
|
|
24444
|
+
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
24445
|
+
"div",
|
|
24446
|
+
{
|
|
24447
|
+
className: cn(
|
|
24448
|
+
"max-w-lg md:max-w-md text-balance",
|
|
24449
|
+
descriptionClassName
|
|
24450
|
+
),
|
|
24451
|
+
children: description
|
|
24452
|
+
}
|
|
24453
|
+
))
|
|
24429
24454
|
]
|
|
24430
24455
|
}
|
|
24431
24456
|
) : null,
|
|
@@ -24475,7 +24500,7 @@ function FeatureCardGridLinked({
|
|
|
24475
24500
|
features,
|
|
24476
24501
|
featuresSlot,
|
|
24477
24502
|
className,
|
|
24478
|
-
containerClassName = "px-6 sm:px-6 md:
|
|
24503
|
+
containerClassName = "px-6 sm:px-6 md:px-6 lg:px-8",
|
|
24479
24504
|
titleWrapperClassName,
|
|
24480
24505
|
titleClassName,
|
|
24481
24506
|
descriptionClassName,
|
|
@@ -24628,7 +24653,7 @@ function FeatureNumberedCards({
|
|
|
24628
24653
|
features,
|
|
24629
24654
|
featuresSlot,
|
|
24630
24655
|
className,
|
|
24631
|
-
containerClassName = "px-6 sm:px-6 md:
|
|
24656
|
+
containerClassName = "px-6 sm:px-6 md:px-6 lg:px-8",
|
|
24632
24657
|
cardsWrapperClassName,
|
|
24633
24658
|
cardClassName,
|
|
24634
24659
|
titleClassName,
|
|
@@ -26848,6 +26873,7 @@ function FeatureBentoImageGrid({
|
|
|
26848
26873
|
function FeatureImageCardsThreeColumn({
|
|
26849
26874
|
title,
|
|
26850
26875
|
description,
|
|
26876
|
+
headerClassName,
|
|
26851
26877
|
cards,
|
|
26852
26878
|
cardsSlot,
|
|
26853
26879
|
className,
|
|
@@ -26863,28 +26889,34 @@ function FeatureImageCardsThreeColumn({
|
|
|
26863
26889
|
patternOpacity,
|
|
26864
26890
|
patternClassName
|
|
26865
26891
|
}) {
|
|
26866
|
-
const renderImage = React52.useCallback(
|
|
26867
|
-
|
|
26868
|
-
|
|
26869
|
-
|
|
26870
|
-
|
|
26871
|
-
|
|
26872
|
-
|
|
26873
|
-
|
|
26874
|
-
|
|
26875
|
-
|
|
26876
|
-
|
|
26892
|
+
const renderImage = React52.useCallback(
|
|
26893
|
+
(card, imageAlt) => {
|
|
26894
|
+
if (card.imageSlot) return card.imageSlot;
|
|
26895
|
+
if (!card.imageSrc) return null;
|
|
26896
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
26897
|
+
img.Img,
|
|
26898
|
+
{
|
|
26899
|
+
src: card.imageSrc,
|
|
26900
|
+
alt: imageAlt,
|
|
26901
|
+
className: "h-full max-h-[450px] w-full rounded-xl object-cover object-center",
|
|
26902
|
+
loading: "lazy",
|
|
26903
|
+
optixFlowConfig
|
|
26904
|
+
}
|
|
26905
|
+
);
|
|
26906
|
+
},
|
|
26907
|
+
[optixFlowConfig]
|
|
26908
|
+
);
|
|
26909
|
+
const renderBadgeIcon = React52.useCallback(
|
|
26910
|
+
(card) => {
|
|
26911
|
+
if (card.avatarSrc) {
|
|
26912
|
+
return /* @__PURE__ */ jsxRuntime.jsx(Avatar, { className: "size-7 rounded-full", children: /* @__PURE__ */ jsxRuntime.jsx(AvatarImage, { src: card.avatarSrc, alt: "Avatar" }) });
|
|
26877
26913
|
}
|
|
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
|
-
}, []);
|
|
26914
|
+
if (card.icon) return card.icon;
|
|
26915
|
+
if (!card.iconName) return null;
|
|
26916
|
+
return /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: card.iconName, size: 24 });
|
|
26917
|
+
},
|
|
26918
|
+
[]
|
|
26919
|
+
);
|
|
26888
26920
|
const cardsContent = React52.useMemo(() => {
|
|
26889
26921
|
if (cardsSlot) return cardsSlot;
|
|
26890
26922
|
if (!cards || cards.length === 0) return null;
|
|
@@ -26895,31 +26927,53 @@ function FeatureImageCardsThreeColumn({
|
|
|
26895
26927
|
{
|
|
26896
26928
|
href: card.link,
|
|
26897
26929
|
onClick: card.onClick,
|
|
26898
|
-
className: cn(
|
|
26930
|
+
className: cn(
|
|
26931
|
+
"group relative overflow-hidden rounded-xl",
|
|
26932
|
+
cardClassName,
|
|
26933
|
+
card.className
|
|
26934
|
+
),
|
|
26899
26935
|
children: [
|
|
26900
26936
|
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
|
-
),
|
|
26937
|
+
/* @__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" }),
|
|
26938
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "absolute top-0 flex h-full w-full flex-col justify-between p-4 md:p-6", children: [
|
|
26939
|
+
(card.badgeText || card.avatarSrc || card.icon || card.iconName) && /* @__PURE__ */ jsxRuntime.jsxs(Badge, { variant: "default", className: cn(card.badgeClassName), children: [
|
|
26940
|
+
renderBadgeIcon(card),
|
|
26941
|
+
card.badgeText
|
|
26942
|
+
] }),
|
|
26917
26943
|
/* @__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
|
-
|
|
26944
|
+
card.title && (typeof card.title === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
26945
|
+
"h3",
|
|
26946
|
+
{
|
|
26947
|
+
className: cn(
|
|
26948
|
+
"text-xl md:text-2xl font-semibold",
|
|
26949
|
+
card.titleClassName
|
|
26950
|
+
),
|
|
26951
|
+
children: card.title
|
|
26952
|
+
}
|
|
26953
|
+
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
26954
|
+
"div",
|
|
26955
|
+
{
|
|
26956
|
+
className: cn(
|
|
26957
|
+
"text-xl md:text-2xl font-semibold",
|
|
26958
|
+
card.titleClassName
|
|
26959
|
+
),
|
|
26960
|
+
children: card.title
|
|
26961
|
+
}
|
|
26962
|
+
)),
|
|
26963
|
+
card.linkText && card.link && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
26964
|
+
Pressable,
|
|
26965
|
+
{
|
|
26966
|
+
className: cn(
|
|
26967
|
+
"font-bold text-xs uppercase",
|
|
26968
|
+
card.linkClassName
|
|
26969
|
+
),
|
|
26970
|
+
href: card.link,
|
|
26971
|
+
children: [
|
|
26972
|
+
card.linkText,
|
|
26973
|
+
/* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/arrow-up-right", size: 18 })
|
|
26974
|
+
]
|
|
26975
|
+
}
|
|
26976
|
+
)
|
|
26923
26977
|
] })
|
|
26924
26978
|
] })
|
|
26925
26979
|
]
|
|
@@ -26928,7 +26982,7 @@ function FeatureImageCardsThreeColumn({
|
|
|
26928
26982
|
);
|
|
26929
26983
|
});
|
|
26930
26984
|
}, [cardsSlot, cards, cardClassName, renderImage, renderBadgeIcon]);
|
|
26931
|
-
return /* @__PURE__ */ jsxRuntime.
|
|
26985
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
26932
26986
|
Section,
|
|
26933
26987
|
{
|
|
26934
26988
|
background,
|
|
@@ -26938,11 +26992,46 @@ function FeatureImageCardsThreeColumn({
|
|
|
26938
26992
|
patternClassName,
|
|
26939
26993
|
className,
|
|
26940
26994
|
containerClassName,
|
|
26941
|
-
children: [
|
|
26942
|
-
title
|
|
26943
|
-
|
|
26944
|
-
|
|
26945
|
-
|
|
26995
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col space-y-6 md:space-y-16", children: [
|
|
26996
|
+
title || description ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex flex-col gap-6 text-left", headerClassName), children: [
|
|
26997
|
+
title && (typeof title === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
26998
|
+
"h2",
|
|
26999
|
+
{
|
|
27000
|
+
className: cn(
|
|
27001
|
+
"text-xl font-semibold text-balance md:text-2xl lg:text-3xl max-w-lg md:max-w-md",
|
|
27002
|
+
titleClassName
|
|
27003
|
+
),
|
|
27004
|
+
children: title
|
|
27005
|
+
}
|
|
27006
|
+
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
27007
|
+
"div",
|
|
27008
|
+
{
|
|
27009
|
+
className: cn(
|
|
27010
|
+
"text-xl font-semibold text-balance md:text-2xl lg:text-3xl max-w-lg md:max-w-md",
|
|
27011
|
+
titleClassName
|
|
27012
|
+
),
|
|
27013
|
+
children: title
|
|
27014
|
+
}
|
|
27015
|
+
)),
|
|
27016
|
+
description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("max-w-lg md:max-w-md", descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
27017
|
+
"div",
|
|
27018
|
+
{
|
|
27019
|
+
className: cn("max-w-lg md:max-w-md", descriptionClassName),
|
|
27020
|
+
children: description
|
|
27021
|
+
}
|
|
27022
|
+
))
|
|
27023
|
+
] }) : null,
|
|
27024
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
27025
|
+
"div",
|
|
27026
|
+
{
|
|
27027
|
+
className: cn(
|
|
27028
|
+
"grid gap-4 md:gap-4 grid-cols-1 md:grid-cols-3",
|
|
27029
|
+
gridClassName
|
|
27030
|
+
),
|
|
27031
|
+
children: cardsContent
|
|
27032
|
+
}
|
|
27033
|
+
)
|
|
27034
|
+
] })
|
|
26946
27035
|
}
|
|
26947
27036
|
);
|
|
26948
27037
|
}
|
|
@@ -26952,35 +27041,68 @@ function FeatureIconGridMuted({
|
|
|
26952
27041
|
features,
|
|
26953
27042
|
featuresSlot,
|
|
26954
27043
|
className,
|
|
26955
|
-
containerClassName,
|
|
26956
27044
|
headerClassName,
|
|
26957
27045
|
titleClassName,
|
|
26958
27046
|
descriptionClassName,
|
|
26959
27047
|
gridClassName,
|
|
26960
27048
|
cardClassName,
|
|
26961
27049
|
background,
|
|
26962
|
-
spacing,
|
|
26963
27050
|
pattern,
|
|
26964
27051
|
patternOpacity,
|
|
26965
|
-
patternClassName
|
|
27052
|
+
patternClassName,
|
|
27053
|
+
spacing = "py-12 md:py-32",
|
|
27054
|
+
containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8"
|
|
26966
27055
|
}) {
|
|
26967
27056
|
const renderFeatureIcon = React52.useCallback((feature) => {
|
|
26968
27057
|
if (feature.icon) return feature.icon;
|
|
26969
|
-
if (feature.iconName)
|
|
27058
|
+
if (feature.iconName)
|
|
27059
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
27060
|
+
DynamicIcon,
|
|
27061
|
+
{
|
|
27062
|
+
name: feature.iconName,
|
|
27063
|
+
size: 24,
|
|
27064
|
+
className: feature.iconClassName
|
|
27065
|
+
}
|
|
27066
|
+
);
|
|
26970
27067
|
return null;
|
|
26971
27068
|
}, []);
|
|
26972
27069
|
const featuresContent = React52.useMemo(() => {
|
|
26973
27070
|
if (featuresSlot) return featuresSlot;
|
|
26974
27071
|
if (!features || features.length === 0) return null;
|
|
26975
|
-
return features.map((feature, index) => /* @__PURE__ */ jsxRuntime.
|
|
27072
|
+
return features.map((feature, index) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
26976
27073
|
"div",
|
|
26977
27074
|
{
|
|
26978
|
-
className: cn(
|
|
26979
|
-
|
|
27075
|
+
className: cn(
|
|
27076
|
+
"flex flex-col gap-2.5 rounded-xl border p-7 bg-muted text-muted-foreground",
|
|
27077
|
+
cardClassName,
|
|
27078
|
+
feature.className
|
|
27079
|
+
),
|
|
27080
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-6 md:gap-12", children: [
|
|
26980
27081
|
(feature.icon || feature.iconName) && renderFeatureIcon(feature),
|
|
26981
|
-
|
|
26982
|
-
|
|
26983
|
-
|
|
27082
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-2 md:gap-4", children: [
|
|
27083
|
+
feature.title && (typeof feature.title === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
27084
|
+
Pressable,
|
|
27085
|
+
{
|
|
27086
|
+
href: feature.href,
|
|
27087
|
+
className: cn(
|
|
27088
|
+
"font-medium text-xl text-muted-foreground",
|
|
27089
|
+
feature.titleClassName
|
|
27090
|
+
),
|
|
27091
|
+
children: feature.title
|
|
27092
|
+
}
|
|
27093
|
+
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
27094
|
+
"div",
|
|
27095
|
+
{
|
|
27096
|
+
className: cn(
|
|
27097
|
+
"font-medium text-xl text-muted-foreground",
|
|
27098
|
+
feature.titleClassName
|
|
27099
|
+
),
|
|
27100
|
+
children: feature.title
|
|
27101
|
+
}
|
|
27102
|
+
)),
|
|
27103
|
+
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 }))
|
|
27104
|
+
] })
|
|
27105
|
+
] })
|
|
26984
27106
|
},
|
|
26985
27107
|
index
|
|
26986
27108
|
));
|
|
@@ -26996,11 +27118,65 @@ function FeatureIconGridMuted({
|
|
|
26996
27118
|
className,
|
|
26997
27119
|
containerClassName,
|
|
26998
27120
|
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-10", children: [
|
|
26999
|
-
(title || description) && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
27000
|
-
|
|
27001
|
-
|
|
27002
|
-
|
|
27003
|
-
|
|
27121
|
+
(title || description) && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
27122
|
+
"div",
|
|
27123
|
+
{
|
|
27124
|
+
className: cn(
|
|
27125
|
+
"mx-auto flex max-w-full md:max-w-md text-balance flex-col gap-2.5 text-center",
|
|
27126
|
+
headerClassName
|
|
27127
|
+
),
|
|
27128
|
+
children: [
|
|
27129
|
+
title && (typeof title === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
27130
|
+
"h2",
|
|
27131
|
+
{
|
|
27132
|
+
className: cn(
|
|
27133
|
+
"text-4xl font-semibold md:text-5xl",
|
|
27134
|
+
titleClassName
|
|
27135
|
+
),
|
|
27136
|
+
children: title
|
|
27137
|
+
}
|
|
27138
|
+
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
27139
|
+
"div",
|
|
27140
|
+
{
|
|
27141
|
+
className: cn(
|
|
27142
|
+
"text-4xl font-semibold md:text-5xl",
|
|
27143
|
+
titleClassName
|
|
27144
|
+
),
|
|
27145
|
+
children: title
|
|
27146
|
+
}
|
|
27147
|
+
)),
|
|
27148
|
+
description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
27149
|
+
"p",
|
|
27150
|
+
{
|
|
27151
|
+
className: cn(
|
|
27152
|
+
getTextColor(background, "muted"),
|
|
27153
|
+
descriptionClassName
|
|
27154
|
+
),
|
|
27155
|
+
children: description
|
|
27156
|
+
}
|
|
27157
|
+
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
27158
|
+
"div",
|
|
27159
|
+
{
|
|
27160
|
+
className: cn(
|
|
27161
|
+
getTextColor(background, "muted"),
|
|
27162
|
+
descriptionClassName
|
|
27163
|
+
),
|
|
27164
|
+
children: description
|
|
27165
|
+
}
|
|
27166
|
+
))
|
|
27167
|
+
]
|
|
27168
|
+
}
|
|
27169
|
+
),
|
|
27170
|
+
(featuresSlot || features && features.length > 0) && /* @__PURE__ */ jsxRuntime.jsx(
|
|
27171
|
+
"div",
|
|
27172
|
+
{
|
|
27173
|
+
className: cn(
|
|
27174
|
+
"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",
|
|
27175
|
+
gridClassName
|
|
27176
|
+
),
|
|
27177
|
+
children: featuresContent
|
|
27178
|
+
}
|
|
27179
|
+
)
|
|
27004
27180
|
] })
|
|
27005
27181
|
}
|
|
27006
27182
|
);
|
|
@@ -27014,7 +27190,7 @@ function FeatureStatsHighlight({
|
|
|
27014
27190
|
stats,
|
|
27015
27191
|
statsSlot,
|
|
27016
27192
|
className,
|
|
27017
|
-
containerClassName,
|
|
27193
|
+
containerClassName = "px-6 sm:px-6 md:px-6 lg:px-8",
|
|
27018
27194
|
gridClassName,
|
|
27019
27195
|
contentClassName,
|
|
27020
27196
|
badgeClassName,
|
|
@@ -27024,7 +27200,7 @@ function FeatureStatsHighlight({
|
|
|
27024
27200
|
statsGridClassName,
|
|
27025
27201
|
statCardClassName,
|
|
27026
27202
|
background,
|
|
27027
|
-
spacing = "py-
|
|
27203
|
+
spacing = "py-12 md:py-32",
|
|
27028
27204
|
pattern,
|
|
27029
27205
|
patternOpacity,
|
|
27030
27206
|
patternClassName
|
|
@@ -27064,9 +27240,7 @@ function FeatureStatsHighlight({
|
|
|
27064
27240
|
"div",
|
|
27065
27241
|
{
|
|
27066
27242
|
className: cn(
|
|
27067
|
-
"flex flex-col gap-2 rounded-xl border p-6",
|
|
27068
|
-
getNestedCardBg(background, "card"),
|
|
27069
|
-
getNestedCardTextColor(background),
|
|
27243
|
+
"flex flex-col gap-2 rounded-xl border p-4 md:p-6 bg-card text-card-foreground h-full justify-between",
|
|
27070
27244
|
statCardClassName,
|
|
27071
27245
|
stat.className
|
|
27072
27246
|
),
|
|
@@ -27075,13 +27249,22 @@ function FeatureStatsHighlight({
|
|
|
27075
27249
|
"span",
|
|
27076
27250
|
{
|
|
27077
27251
|
className: cn(
|
|
27078
|
-
"text-
|
|
27252
|
+
"text-3xl font-bold lg:text-4xl xl:text-5xl",
|
|
27079
27253
|
stat.valueClassName
|
|
27080
27254
|
),
|
|
27081
27255
|
children: stat.value
|
|
27082
27256
|
}
|
|
27083
27257
|
),
|
|
27084
|
-
stat.label && /* @__PURE__ */ jsxRuntime.jsx(
|
|
27258
|
+
stat.label && /* @__PURE__ */ jsxRuntime.jsx(
|
|
27259
|
+
"span",
|
|
27260
|
+
{
|
|
27261
|
+
className: cn(
|
|
27262
|
+
"uppercase font-bold text-sm opacity-60",
|
|
27263
|
+
stat.labelClassName
|
|
27264
|
+
),
|
|
27265
|
+
children: stat.label
|
|
27266
|
+
}
|
|
27267
|
+
)
|
|
27085
27268
|
]
|
|
27086
27269
|
},
|
|
27087
27270
|
index
|
|
@@ -27103,7 +27286,7 @@ function FeatureStatsHighlight({
|
|
|
27103
27286
|
className: cn("grid gap-10 lg:grid-cols-2 lg:gap-20", gridClassName),
|
|
27104
27287
|
children: [
|
|
27105
27288
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex flex-col gap-5", contentClassName), children: [
|
|
27106
|
-
badge && /* @__PURE__ */ jsxRuntime.jsx(Badge, { variant: "
|
|
27289
|
+
badge && /* @__PURE__ */ jsxRuntime.jsx(Badge, { variant: "default", className: cn("", badgeClassName), children: badge }),
|
|
27107
27290
|
title && (typeof title === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
27108
27291
|
"h2",
|
|
27109
27292
|
{
|
|
@@ -27126,7 +27309,16 @@ function FeatureStatsHighlight({
|
|
|
27126
27309
|
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
27310
|
(actionsSlot || actions && actions.length > 0) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: actionsClassName, children: actionsContent })
|
|
27128
27311
|
] }),
|
|
27129
|
-
(statsSlot || stats && stats.length > 0) && /* @__PURE__ */ jsxRuntime.jsx(
|
|
27312
|
+
(statsSlot || stats && stats.length > 0) && /* @__PURE__ */ jsxRuntime.jsx(
|
|
27313
|
+
"div",
|
|
27314
|
+
{
|
|
27315
|
+
className: cn(
|
|
27316
|
+
"grid grid-cols-1 gap-4 md:grid-cols-2 md:gap-6",
|
|
27317
|
+
statsGridClassName
|
|
27318
|
+
),
|
|
27319
|
+
children: statsContent
|
|
27320
|
+
}
|
|
27321
|
+
)
|
|
27130
27322
|
]
|
|
27131
27323
|
}
|
|
27132
27324
|
)
|
|
@@ -27200,7 +27392,7 @@ function FeatureAccordionImage({
|
|
|
27200
27392
|
itemsSlot,
|
|
27201
27393
|
defaultValue,
|
|
27202
27394
|
className,
|
|
27203
|
-
containerClassName,
|
|
27395
|
+
containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
|
|
27204
27396
|
headerClassName,
|
|
27205
27397
|
titleClassName,
|
|
27206
27398
|
descriptionClassName,
|
|
@@ -27221,26 +27413,55 @@ function FeatureAccordionImage({
|
|
|
27221
27413
|
const accordionItemsContent = React52.useMemo(() => {
|
|
27222
27414
|
if (itemsSlot) return itemsSlot;
|
|
27223
27415
|
if (!items || items.length === 0) return null;
|
|
27224
|
-
return items.map((item, index) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
27225
|
-
|
|
27226
|
-
|
|
27227
|
-
|
|
27228
|
-
|
|
27229
|
-
|
|
27230
|
-
|
|
27231
|
-
|
|
27232
|
-
|
|
27233
|
-
|
|
27234
|
-
|
|
27416
|
+
return items.map((item, index) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
27417
|
+
AccordionItem,
|
|
27418
|
+
{
|
|
27419
|
+
value: `item-${index}`,
|
|
27420
|
+
className: item.className,
|
|
27421
|
+
children: [
|
|
27422
|
+
item.title && /* @__PURE__ */ jsxRuntime.jsx(
|
|
27423
|
+
AccordionTrigger,
|
|
27424
|
+
{
|
|
27425
|
+
className: cn(
|
|
27426
|
+
"text-left text-md md:text-lg font-medium",
|
|
27427
|
+
item.triggerClassName
|
|
27428
|
+
),
|
|
27429
|
+
children: item.title
|
|
27430
|
+
}
|
|
27431
|
+
),
|
|
27432
|
+
item.content && /* @__PURE__ */ jsxRuntime.jsx(
|
|
27433
|
+
AccordionContent,
|
|
27434
|
+
{
|
|
27435
|
+
className: cn(
|
|
27436
|
+
getTextColor(background, "muted"),
|
|
27437
|
+
item.contentClassName
|
|
27438
|
+
),
|
|
27439
|
+
children: item.content
|
|
27440
|
+
}
|
|
27441
|
+
)
|
|
27442
|
+
]
|
|
27443
|
+
},
|
|
27444
|
+
index
|
|
27445
|
+
));
|
|
27446
|
+
}, [itemsSlot, items]);
|
|
27447
|
+
const imageContent = React52.useMemo(() => {
|
|
27448
|
+
if (currentImage?.imageSlot) return currentImage.imageSlot;
|
|
27449
|
+
if (!currentImage?.imageSrc) return null;
|
|
27450
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
27451
|
+
img.Img,
|
|
27452
|
+
{
|
|
27235
27453
|
src: currentImage.imageSrc,
|
|
27236
27454
|
alt: currentImage.imageAlt || "",
|
|
27237
|
-
className: cn(
|
|
27455
|
+
className: cn(
|
|
27456
|
+
"h-full w-full object-cover transition-opacity duration-300",
|
|
27457
|
+
imageClassName
|
|
27458
|
+
),
|
|
27238
27459
|
loading: "lazy",
|
|
27239
27460
|
optixFlowConfig
|
|
27240
27461
|
}
|
|
27241
27462
|
);
|
|
27242
27463
|
}, [currentImage, imageClassName, optixFlowConfig]);
|
|
27243
|
-
return /* @__PURE__ */ jsxRuntime.
|
|
27464
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
27244
27465
|
Section,
|
|
27245
27466
|
{
|
|
27246
27467
|
background,
|
|
@@ -27250,26 +27471,71 @@ function FeatureAccordionImage({
|
|
|
27250
27471
|
patternClassName,
|
|
27251
27472
|
className,
|
|
27252
27473
|
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
|
-
|
|
27474
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col items-center space-y-6 md:space-y-16", children: [
|
|
27475
|
+
(title || description) && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
27476
|
+
"div",
|
|
27477
|
+
{
|
|
27478
|
+
className: cn(
|
|
27479
|
+
"text-left md:text-center max-w-full md:max-w-md text-balance",
|
|
27480
|
+
headerClassName
|
|
27481
|
+
),
|
|
27482
|
+
children: [
|
|
27483
|
+
title && (typeof title === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
27484
|
+
"h2",
|
|
27485
|
+
{
|
|
27486
|
+
className: cn(
|
|
27487
|
+
"text-2xl font-semibold md:text-3xl lg:text-4xl",
|
|
27488
|
+
titleClassName
|
|
27489
|
+
),
|
|
27490
|
+
children: title
|
|
27491
|
+
}
|
|
27492
|
+
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
27493
|
+
"div",
|
|
27494
|
+
{
|
|
27495
|
+
className: cn(
|
|
27496
|
+
"text-xl font-semibold md:text-2xl lg:text-3xl",
|
|
27497
|
+
titleClassName
|
|
27498
|
+
),
|
|
27499
|
+
children: title
|
|
27500
|
+
}
|
|
27501
|
+
)),
|
|
27502
|
+
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 }))
|
|
27503
|
+
]
|
|
27504
|
+
}
|
|
27505
|
+
),
|
|
27506
|
+
(itemsSlot || items && items.length > 0) && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
27507
|
+
"div",
|
|
27508
|
+
{
|
|
27509
|
+
className: cn(
|
|
27510
|
+
"grid gap-10 lg:grid-cols-2 lg:gap-16",
|
|
27511
|
+
gridClassName
|
|
27512
|
+
),
|
|
27513
|
+
children: [
|
|
27514
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
27515
|
+
Accordion,
|
|
27516
|
+
{
|
|
27517
|
+
type: "single",
|
|
27518
|
+
collapsible: true,
|
|
27519
|
+
value: activeItem,
|
|
27520
|
+
onValueChange: setActiveItem,
|
|
27521
|
+
className: cn("w-full", accordionClassName),
|
|
27522
|
+
children: accordionItemsContent
|
|
27523
|
+
}
|
|
27524
|
+
),
|
|
27525
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
27526
|
+
"div",
|
|
27527
|
+
{
|
|
27528
|
+
className: cn(
|
|
27529
|
+
"relative aspect-video overflow-hidden rounded-xl shadow-xl lg:aspect-square",
|
|
27530
|
+
imageWrapperClassName
|
|
27531
|
+
),
|
|
27532
|
+
children: imageContent
|
|
27533
|
+
}
|
|
27534
|
+
)
|
|
27535
|
+
]
|
|
27536
|
+
}
|
|
27537
|
+
)
|
|
27538
|
+
] })
|
|
27273
27539
|
}
|
|
27274
27540
|
);
|
|
27275
27541
|
}
|
|
@@ -41541,236 +41807,269 @@ function FaqSplitHero({
|
|
|
41541
41807
|
imageArea
|
|
41542
41808
|
] }) });
|
|
41543
41809
|
}
|
|
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"
|
|
41810
|
+
var Controls = React52__namespace.memo(
|
|
41811
|
+
({
|
|
41812
|
+
handleNext,
|
|
41813
|
+
handlePrevious,
|
|
41814
|
+
isPreviousDisabled,
|
|
41815
|
+
isNextDisabled
|
|
41816
|
+
}) => {
|
|
41817
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "hidden flex-col items-start gap-8 lg:flex", children: [
|
|
41818
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
41819
|
+
"button",
|
|
41820
|
+
{
|
|
41821
|
+
className: "rounded-full border p-2 flex items-center justify-center disabled:opacity-50 h-fit w-fit bg-card text-card-foreground",
|
|
41822
|
+
onClick: handlePrevious,
|
|
41823
|
+
disabled: isPreviousDisabled,
|
|
41824
|
+
type: "button",
|
|
41825
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/chevron-up", size: 24 })
|
|
41593
41826
|
}
|
|
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,
|
|
41827
|
+
),
|
|
41828
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
41829
|
+
"button",
|
|
41602
41830
|
{
|
|
41603
|
-
|
|
41604
|
-
|
|
41605
|
-
|
|
41606
|
-
|
|
41607
|
-
|
|
41608
|
-
|
|
41831
|
+
className: "rounded-full border p-2 flex items-center justify-center disabled:opacity-50 h-fit w-fit bg-card text-card-foreground",
|
|
41832
|
+
onClick: handleNext,
|
|
41833
|
+
disabled: isNextDisabled,
|
|
41834
|
+
type: "button",
|
|
41835
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/chevron-down", size: 24 })
|
|
41836
|
+
}
|
|
41837
|
+
)
|
|
41838
|
+
] });
|
|
41839
|
+
}
|
|
41840
|
+
);
|
|
41841
|
+
var FeatureCard = React52__namespace.memo(
|
|
41842
|
+
({ feature, isActive, onClick }) => {
|
|
41843
|
+
const variants2 = React52.useMemo(
|
|
41844
|
+
() => ({
|
|
41845
|
+
initial: {
|
|
41846
|
+
opacity: 0
|
|
41847
|
+
},
|
|
41848
|
+
animate: {
|
|
41849
|
+
opacity: 1
|
|
41850
|
+
},
|
|
41851
|
+
exit: {
|
|
41852
|
+
opacity: 0
|
|
41853
|
+
}
|
|
41854
|
+
}),
|
|
41855
|
+
[]
|
|
41856
|
+
);
|
|
41857
|
+
return /* @__PURE__ */ jsxRuntime.jsx(framerMotion.AnimatePresence, { mode: "popLayout", children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
41858
|
+
framerMotion.motion.div,
|
|
41859
|
+
{
|
|
41860
|
+
layout: true,
|
|
41861
|
+
transition: {
|
|
41862
|
+
layout: {
|
|
41609
41863
|
duration: 0.4,
|
|
41610
|
-
delay: 0.3,
|
|
41611
41864
|
ease: "easeOut"
|
|
41865
|
+
}
|
|
41866
|
+
},
|
|
41867
|
+
style: {
|
|
41868
|
+
borderRadius: "24px"
|
|
41869
|
+
},
|
|
41870
|
+
className: cn(
|
|
41871
|
+
"relative flex items-start gap-4 bg-background text-foreground md:w-fit md:max-w-sm",
|
|
41872
|
+
isActive ? "shadow-xl overflow-visible" : "cursor-pointer shadow-none hover:shadow-xl transition-shadow duration-500 overflow-hidden"
|
|
41873
|
+
),
|
|
41874
|
+
onClick,
|
|
41875
|
+
children: [
|
|
41876
|
+
isActive && feature.href && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute right-0 top-1/2 -translate-y-1/2 translate-x-1/2 bg-background rounded-full h-fit w-fit p-2 flex items-center justify-center z-10", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
41877
|
+
Pressable,
|
|
41878
|
+
{
|
|
41879
|
+
href: feature.href,
|
|
41880
|
+
size: "icon-lg",
|
|
41881
|
+
className: "bg-primary text-primary-foreground",
|
|
41882
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/arrow-up-right" })
|
|
41883
|
+
}
|
|
41884
|
+
) }),
|
|
41885
|
+
isActive ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
41886
|
+
framerMotion.motion.div,
|
|
41887
|
+
{
|
|
41888
|
+
layout: true,
|
|
41889
|
+
variants: variants2,
|
|
41890
|
+
initial: "initial",
|
|
41891
|
+
animate: "animate",
|
|
41892
|
+
exit: "exit",
|
|
41893
|
+
transition: {
|
|
41894
|
+
duration: 0.4,
|
|
41895
|
+
delay: 0.3,
|
|
41896
|
+
ease: "easeOut"
|
|
41897
|
+
},
|
|
41898
|
+
className: "p-6 text-sm md:p-8 md:text-base",
|
|
41899
|
+
children: (feature.title || feature.description) && /* @__PURE__ */ jsxRuntime.jsxs("p", { children: [
|
|
41900
|
+
feature.title && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "font-semibold", children: [
|
|
41901
|
+
feature.title,
|
|
41902
|
+
"."
|
|
41903
|
+
] }),
|
|
41904
|
+
feature.title && feature.description && " ",
|
|
41905
|
+
feature.description && /* @__PURE__ */ jsxRuntime.jsx("span", { children: feature.description })
|
|
41906
|
+
] })
|
|
41907
|
+
},
|
|
41908
|
+
`feature-description-active-${feature.title}`
|
|
41909
|
+
) : /* @__PURE__ */ jsxRuntime.jsxs(
|
|
41910
|
+
framerMotion.motion.div,
|
|
41911
|
+
{
|
|
41912
|
+
layout: true,
|
|
41913
|
+
variants: variants2,
|
|
41914
|
+
initial: "initial",
|
|
41915
|
+
animate: "animate",
|
|
41916
|
+
exit: "exit",
|
|
41917
|
+
transition: {
|
|
41918
|
+
duration: 0.4,
|
|
41919
|
+
delay: 0.2,
|
|
41920
|
+
ease: "easeOut"
|
|
41921
|
+
},
|
|
41922
|
+
className: cn(
|
|
41923
|
+
"flex h-fit shrink-0 items-center gap-4 text-sm md:py-3.5 md:pr-6 md:pl-3 md:text-base",
|
|
41924
|
+
!isActive && "h-0 w-0 md:h-auto md:w-auto"
|
|
41925
|
+
),
|
|
41926
|
+
style: {
|
|
41927
|
+
height: "auto",
|
|
41928
|
+
lineHeight: "normal"
|
|
41929
|
+
},
|
|
41930
|
+
children: [
|
|
41931
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
41932
|
+
DynamicIcon,
|
|
41933
|
+
{
|
|
41934
|
+
name: "lucide/plus-circle",
|
|
41935
|
+
size: 24,
|
|
41936
|
+
className: "shrink-0"
|
|
41937
|
+
}
|
|
41938
|
+
),
|
|
41939
|
+
feature.title && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "shrink-0 font-semibold", children: feature.title })
|
|
41940
|
+
]
|
|
41941
|
+
},
|
|
41942
|
+
`feature-description-inactive-${feature.title}`
|
|
41943
|
+
)
|
|
41944
|
+
]
|
|
41945
|
+
}
|
|
41946
|
+
) });
|
|
41947
|
+
}
|
|
41948
|
+
);
|
|
41949
|
+
var FeaturesDesktop = React52__namespace.memo(
|
|
41950
|
+
({
|
|
41951
|
+
features,
|
|
41952
|
+
handleNext,
|
|
41953
|
+
handlePrevious,
|
|
41954
|
+
activeIndex,
|
|
41955
|
+
handleFeatureClick,
|
|
41956
|
+
isPreviousDisabled,
|
|
41957
|
+
isNextDisabled
|
|
41958
|
+
}) => {
|
|
41959
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative z-10 hidden items-center gap-8 md:flex", children: [
|
|
41960
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
41961
|
+
Controls,
|
|
41962
|
+
{
|
|
41963
|
+
handleNext,
|
|
41964
|
+
handlePrevious,
|
|
41965
|
+
isPreviousDisabled,
|
|
41966
|
+
isNextDisabled
|
|
41967
|
+
}
|
|
41968
|
+
),
|
|
41969
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-col gap-4", children: features.map((feature, index) => {
|
|
41970
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
41971
|
+
FeatureCard,
|
|
41972
|
+
{
|
|
41973
|
+
feature,
|
|
41974
|
+
isActive: index === activeIndex,
|
|
41975
|
+
onClick: () => handleFeatureClick(index)
|
|
41612
41976
|
},
|
|
41613
|
-
|
|
41614
|
-
|
|
41615
|
-
|
|
41616
|
-
|
|
41617
|
-
|
|
41618
|
-
|
|
41619
|
-
|
|
41620
|
-
|
|
41621
|
-
|
|
41977
|
+
`feature-card-${index}`
|
|
41978
|
+
);
|
|
41979
|
+
}) })
|
|
41980
|
+
] });
|
|
41981
|
+
}
|
|
41982
|
+
);
|
|
41983
|
+
var FeaturesMobile = React52__namespace.memo(
|
|
41984
|
+
({
|
|
41985
|
+
features,
|
|
41986
|
+
handleNext,
|
|
41987
|
+
handlePrevious,
|
|
41988
|
+
activeIndex,
|
|
41989
|
+
direction,
|
|
41990
|
+
isPreviousDisabled,
|
|
41991
|
+
isNextDisabled
|
|
41992
|
+
}) => {
|
|
41993
|
+
const variants2 = React52.useMemo(
|
|
41994
|
+
() => ({
|
|
41995
|
+
enter: (direction2) => ({
|
|
41996
|
+
x: direction2 > 0 ? 100 : -100,
|
|
41997
|
+
opacity: 0
|
|
41998
|
+
}),
|
|
41999
|
+
center: {
|
|
42000
|
+
x: 0,
|
|
42001
|
+
opacity: 1
|
|
41622
42002
|
},
|
|
41623
|
-
|
|
41624
|
-
|
|
42003
|
+
exit: (direction2) => ({
|
|
42004
|
+
x: direction2 < 0 ? 100 : -100,
|
|
42005
|
+
opacity: 0
|
|
42006
|
+
})
|
|
42007
|
+
}),
|
|
42008
|
+
[]
|
|
42009
|
+
);
|
|
42010
|
+
const currentFeature = features[activeIndex];
|
|
42011
|
+
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: [
|
|
42012
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-1 overflow-hidden", children: /* @__PURE__ */ jsxRuntime.jsx(framerMotion.AnimatePresence, { mode: "wait", custom: direction, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
41625
42013
|
framerMotion.motion.div,
|
|
41626
42014
|
{
|
|
41627
|
-
|
|
42015
|
+
custom: direction,
|
|
41628
42016
|
variants: variants2,
|
|
41629
|
-
initial: "
|
|
41630
|
-
animate: "
|
|
42017
|
+
initial: "enter",
|
|
42018
|
+
animate: "center",
|
|
41631
42019
|
exit: "exit",
|
|
41632
42020
|
transition: {
|
|
41633
|
-
|
|
41634
|
-
|
|
41635
|
-
ease: "easeOut"
|
|
42021
|
+
x: { type: "spring", stiffness: 300, damping: 30 },
|
|
42022
|
+
opacity: { duration: 0.2 }
|
|
41636
42023
|
},
|
|
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 }
|
|
42024
|
+
className: "rounded-3xl bg-background p-4 text-left",
|
|
42025
|
+
children: (currentFeature?.title || currentFeature?.description) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-sm", children: [
|
|
42026
|
+
currentFeature.title && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-semibold", children: currentFeature.title }),
|
|
42027
|
+
currentFeature.description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1", children: currentFeature.description })
|
|
42028
|
+
] })
|
|
41740
42029
|
},
|
|
41741
|
-
|
|
41742
|
-
|
|
41743
|
-
|
|
41744
|
-
|
|
41745
|
-
|
|
41746
|
-
|
|
41747
|
-
|
|
41748
|
-
|
|
41749
|
-
|
|
41750
|
-
|
|
41751
|
-
|
|
41752
|
-
|
|
41753
|
-
|
|
41754
|
-
|
|
41755
|
-
|
|
41756
|
-
|
|
41757
|
-
|
|
41758
|
-
|
|
41759
|
-
|
|
41760
|
-
|
|
41761
|
-
|
|
41762
|
-
|
|
41763
|
-
|
|
41764
|
-
})
|
|
42030
|
+
activeIndex
|
|
42031
|
+
) }) }),
|
|
42032
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col justify-center gap-2", children: [
|
|
42033
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
42034
|
+
"button",
|
|
42035
|
+
{
|
|
42036
|
+
className: "rounded-full border p-2 flex items-center justify-center disabled:opacity-50 h-fit w-fit bg-card text-card-foreground",
|
|
42037
|
+
onClick: handlePrevious,
|
|
42038
|
+
disabled: isPreviousDisabled,
|
|
42039
|
+
type: "button",
|
|
42040
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/chevron-up", size: 20 })
|
|
42041
|
+
}
|
|
42042
|
+
),
|
|
42043
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
42044
|
+
"button",
|
|
42045
|
+
{
|
|
42046
|
+
className: "rounded-full border p-2 flex items-center justify-center disabled:opacity-50 h-fit w-fit bg-card text-card-foreground",
|
|
42047
|
+
onClick: handleNext,
|
|
42048
|
+
disabled: isNextDisabled,
|
|
42049
|
+
type: "button",
|
|
42050
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/chevron-down", size: 20 })
|
|
42051
|
+
}
|
|
42052
|
+
)
|
|
42053
|
+
] })
|
|
42054
|
+
] }) });
|
|
42055
|
+
}
|
|
42056
|
+
);
|
|
41765
42057
|
function FeatureAnimatedCarousel({
|
|
42058
|
+
title,
|
|
42059
|
+
description,
|
|
42060
|
+
titleClassName,
|
|
42061
|
+
descriptionClassName,
|
|
41766
42062
|
features,
|
|
41767
42063
|
className,
|
|
41768
42064
|
optixFlowConfig,
|
|
41769
42065
|
background,
|
|
41770
|
-
spacing,
|
|
41771
42066
|
pattern,
|
|
41772
42067
|
patternOpacity,
|
|
41773
|
-
patternClassName
|
|
42068
|
+
patternClassName,
|
|
42069
|
+
headerClassName,
|
|
42070
|
+
blockCardClassName,
|
|
42071
|
+
spacing = "py-12 md:py-32",
|
|
42072
|
+
containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8"
|
|
41774
42073
|
}) {
|
|
41775
42074
|
const [activeIndex, setActiveIndex] = React52__namespace.useState(0);
|
|
41776
42075
|
const [direction, setDirection] = React52__namespace.useState(1);
|
|
@@ -41786,26 +42085,32 @@ function FeatureAnimatedCarousel({
|
|
|
41786
42085
|
setActiveIndex(activeIndex - 1);
|
|
41787
42086
|
}
|
|
41788
42087
|
}, [activeIndex]);
|
|
41789
|
-
const handleFeatureClick = React52.useCallback(
|
|
41790
|
-
|
|
41791
|
-
|
|
41792
|
-
|
|
42088
|
+
const handleFeatureClick = React52.useCallback(
|
|
42089
|
+
(index) => {
|
|
42090
|
+
setDirection(index > activeIndex ? 1 : -1);
|
|
42091
|
+
setActiveIndex(index);
|
|
42092
|
+
},
|
|
42093
|
+
[activeIndex]
|
|
42094
|
+
);
|
|
41793
42095
|
const isPreviousDisabled = activeIndex === 0;
|
|
41794
42096
|
const isNextDisabled = !features || activeIndex === features.length - 1;
|
|
41795
|
-
const imageVariants = React52.useMemo(
|
|
41796
|
-
|
|
41797
|
-
|
|
41798
|
-
|
|
42097
|
+
const imageVariants = React52.useMemo(
|
|
42098
|
+
() => ({
|
|
42099
|
+
enter: (direction2) => ({
|
|
42100
|
+
x: direction2 > 0 ? 300 : -300,
|
|
42101
|
+
opacity: 0
|
|
42102
|
+
}),
|
|
42103
|
+
center: {
|
|
42104
|
+
x: 0,
|
|
42105
|
+
opacity: 1
|
|
42106
|
+
},
|
|
42107
|
+
exit: (direction2) => ({
|
|
42108
|
+
x: direction2 < 0 ? 300 : -300,
|
|
42109
|
+
opacity: 0
|
|
42110
|
+
})
|
|
41799
42111
|
}),
|
|
41800
|
-
|
|
41801
|
-
|
|
41802
|
-
opacity: 1
|
|
41803
|
-
},
|
|
41804
|
-
exit: (direction2) => ({
|
|
41805
|
-
x: direction2 < 0 ? 300 : -300,
|
|
41806
|
-
opacity: 0
|
|
41807
|
-
})
|
|
41808
|
-
}), []);
|
|
42112
|
+
[]
|
|
42113
|
+
);
|
|
41809
42114
|
if (!features || features.length === 0) {
|
|
41810
42115
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
41811
42116
|
Section,
|
|
@@ -41816,11 +42121,15 @@ function FeatureAnimatedCarousel({
|
|
|
41816
42121
|
patternOpacity,
|
|
41817
42122
|
patternClassName,
|
|
41818
42123
|
className,
|
|
41819
|
-
|
|
41820
|
-
|
|
41821
|
-
|
|
41822
|
-
|
|
41823
|
-
|
|
42124
|
+
containerClassName,
|
|
42125
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
42126
|
+
"div",
|
|
42127
|
+
{
|
|
42128
|
+
className: cn(
|
|
42129
|
+
"relative flex min-h-[500px] flex-col-reverse gap-8 overflow-hidden rounded-3xl bg-muted p-6 md:flex-row md:items-center md:p-12 lg:min-h-[600px]"
|
|
42130
|
+
)
|
|
42131
|
+
}
|
|
42132
|
+
)
|
|
41824
42133
|
}
|
|
41825
42134
|
);
|
|
41826
42135
|
}
|
|
@@ -41834,60 +42143,116 @@ function FeatureAnimatedCarousel({
|
|
|
41834
42143
|
patternOpacity,
|
|
41835
42144
|
patternClassName,
|
|
41836
42145
|
className,
|
|
41837
|
-
|
|
41838
|
-
|
|
41839
|
-
|
|
41840
|
-
|
|
41841
|
-
), children: [
|
|
41842
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
41843
|
-
FeaturesDesktop,
|
|
42146
|
+
containerClassName,
|
|
42147
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col space-y-6 md:space-y-16", children: [
|
|
42148
|
+
title || description ? /* @__PURE__ */ jsxRuntime.jsxs(
|
|
42149
|
+
"div",
|
|
41844
42150
|
{
|
|
41845
|
-
|
|
41846
|
-
|
|
41847
|
-
|
|
41848
|
-
|
|
41849
|
-
|
|
41850
|
-
|
|
41851
|
-
|
|
42151
|
+
className: cn(
|
|
42152
|
+
"flex flex-col gap-4 md:gap-6 text-left",
|
|
42153
|
+
headerClassName
|
|
42154
|
+
),
|
|
42155
|
+
children: [
|
|
42156
|
+
title && (typeof title === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
42157
|
+
"h2",
|
|
42158
|
+
{
|
|
42159
|
+
className: cn(
|
|
42160
|
+
"text-xl font-semibold text-balance md:text-2xl lg:text-3xl max-w-lg md:max-w-md",
|
|
42161
|
+
titleClassName
|
|
42162
|
+
),
|
|
42163
|
+
children: title
|
|
42164
|
+
}
|
|
42165
|
+
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
42166
|
+
"div",
|
|
42167
|
+
{
|
|
42168
|
+
className: cn(
|
|
42169
|
+
"text-xl font-semibold text-balance md:text-2xl lg:text-3xl max-w-lg md:max-w-md",
|
|
42170
|
+
titleClassName
|
|
42171
|
+
),
|
|
42172
|
+
children: title
|
|
42173
|
+
}
|
|
42174
|
+
)),
|
|
42175
|
+
description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("max-w-lg md:max-w-md", descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
42176
|
+
"div",
|
|
42177
|
+
{
|
|
42178
|
+
className: cn("max-w-lg md:max-w-md", descriptionClassName),
|
|
42179
|
+
children: description
|
|
42180
|
+
}
|
|
42181
|
+
))
|
|
42182
|
+
]
|
|
41852
42183
|
}
|
|
41853
|
-
),
|
|
41854
|
-
/* @__PURE__ */ jsxRuntime.
|
|
41855
|
-
|
|
42184
|
+
) : null,
|
|
42185
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
42186
|
+
"div",
|
|
41856
42187
|
{
|
|
41857
|
-
|
|
41858
|
-
|
|
41859
|
-
|
|
41860
|
-
|
|
41861
|
-
|
|
41862
|
-
|
|
41863
|
-
|
|
42188
|
+
className: cn(
|
|
42189
|
+
"relative flex min-h-full md:min-h-[500px] flex-col-reverse gap-5 md:gap-8 bg-muted overflow-hidden rounded-3xl p-4 md:p-6 md:flex-row md:items-center lg:p-12 lg:min-h-[600px]",
|
|
42190
|
+
blockCardClassName
|
|
42191
|
+
),
|
|
42192
|
+
children: [
|
|
42193
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
42194
|
+
FeaturesDesktop,
|
|
42195
|
+
{
|
|
42196
|
+
features,
|
|
42197
|
+
handleNext,
|
|
42198
|
+
handlePrevious,
|
|
42199
|
+
activeIndex,
|
|
42200
|
+
handleFeatureClick,
|
|
42201
|
+
isPreviousDisabled,
|
|
42202
|
+
isNextDisabled
|
|
42203
|
+
}
|
|
42204
|
+
),
|
|
42205
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
42206
|
+
FeaturesMobile,
|
|
42207
|
+
{
|
|
42208
|
+
features,
|
|
42209
|
+
handleNext,
|
|
42210
|
+
handlePrevious,
|
|
42211
|
+
activeIndex,
|
|
42212
|
+
direction,
|
|
42213
|
+
isPreviousDisabled,
|
|
42214
|
+
isNextDisabled
|
|
42215
|
+
}
|
|
42216
|
+
),
|
|
42217
|
+
currentFeature?.image && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative w-full h-[250px] md:h-auto md:absolute md:right-8 md:top-8 md:bottom-8 md:w-1/2", children: [
|
|
42218
|
+
currentFeature.href && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute top-4 right-4 z-10 rounded-full h-fit w-fit shadow-md hover:shadow-2xl flex items-center justify-center md:hidden", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
42219
|
+
Pressable,
|
|
42220
|
+
{
|
|
42221
|
+
href: currentFeature.href,
|
|
42222
|
+
size: "icon-lg",
|
|
42223
|
+
className: "bg-primary text-primary-foreground",
|
|
42224
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/arrow-up-right" })
|
|
42225
|
+
}
|
|
42226
|
+
) }),
|
|
42227
|
+
/* @__PURE__ */ jsxRuntime.jsx(framerMotion.AnimatePresence, { mode: "wait", custom: direction, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
42228
|
+
framerMotion.motion.div,
|
|
42229
|
+
{
|
|
42230
|
+
custom: direction,
|
|
42231
|
+
variants: imageVariants,
|
|
42232
|
+
initial: "enter",
|
|
42233
|
+
animate: "center",
|
|
42234
|
+
exit: "exit",
|
|
42235
|
+
transition: {
|
|
42236
|
+
x: { type: "spring", stiffness: 300, damping: 30 },
|
|
42237
|
+
opacity: { duration: 0.3 }
|
|
42238
|
+
},
|
|
42239
|
+
className: "h-full w-full shadow-xl overflow-hidden rounded-2xl",
|
|
42240
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
42241
|
+
img.Img,
|
|
42242
|
+
{
|
|
42243
|
+
src: currentFeature.image,
|
|
42244
|
+
alt: currentFeature.imageAlt || (typeof currentFeature.title === "string" ? currentFeature.title : "Feature image"),
|
|
42245
|
+
className: "h-full w-full object-cover",
|
|
42246
|
+
optixFlowConfig
|
|
42247
|
+
}
|
|
42248
|
+
)
|
|
42249
|
+
},
|
|
42250
|
+
activeIndex
|
|
42251
|
+
) })
|
|
42252
|
+
] })
|
|
42253
|
+
]
|
|
41864
42254
|
}
|
|
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
|
-
) }) })
|
|
42255
|
+
)
|
|
41891
42256
|
] })
|
|
41892
42257
|
}
|
|
41893
42258
|
);
|