@opensite/ui 0.8.4 → 0.8.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/article-breadcrumb-social.cjs +57 -73
- package/dist/article-breadcrumb-social.d.cts +2 -24
- package/dist/article-breadcrumb-social.d.ts +2 -24
- package/dist/article-breadcrumb-social.js +57 -73
- package/dist/article-compact-toc.cjs +1 -1
- package/dist/article-compact-toc.js +1 -1
- package/dist/article-sidebar-sticky.cjs +73 -26
- package/dist/article-sidebar-sticky.js +73 -26
- package/dist/blog-horizontal-timeline.cjs +7 -4
- package/dist/blog-horizontal-timeline.js +7 -4
- package/dist/faq-badge-support.cjs +18 -5
- package/dist/faq-badge-support.js +18 -5
- package/dist/faq-bordered-badge.cjs +23 -7
- package/dist/faq-bordered-badge.js +23 -7
- package/dist/faq-card-categories.cjs +20 -4
- package/dist/faq-card-categories.js +20 -4
- package/dist/faq-categorized-sections.cjs +19 -4
- package/dist/faq-categorized-sections.js +19 -4
- package/dist/faq-centered-accordion.cjs +18 -5
- package/dist/faq-centered-accordion.js +18 -5
- package/dist/faq-gradient-categories.cjs +19 -4
- package/dist/faq-gradient-categories.js +19 -4
- package/dist/faq-icon-benefits.cjs +11 -2
- package/dist/faq-icon-benefits.js +11 -2
- package/dist/faq-muted-cards.cjs +19 -6
- package/dist/faq-muted-cards.js +19 -6
- package/dist/faq-numbered-grid.cjs +11 -3
- package/dist/faq-numbered-grid.js +11 -3
- package/dist/faq-numbered-list.cjs +11 -3
- package/dist/faq-numbered-list.js +11 -3
- package/dist/faq-profile-sidebar.cjs +57 -20
- package/dist/faq-profile-sidebar.js +57 -20
- package/dist/faq-rounded-cards.cjs +26 -19
- package/dist/faq-rounded-cards.js +26 -19
- package/dist/faq-sidebar-navigation.cjs +48 -28
- package/dist/faq-sidebar-navigation.js +48 -28
- package/dist/faq-simple-accordion.cjs +17 -4
- package/dist/faq-simple-accordion.js +17 -4
- package/dist/faq-split-help.cjs +25 -6
- package/dist/faq-split-help.js +25 -6
- package/dist/faq-split-hero.cjs +604 -0
- package/dist/faq-split-hero.d.cts +116 -0
- package/dist/faq-split-hero.d.ts +116 -0
- package/dist/faq-split-hero.js +582 -0
- package/dist/faq-static-list.cjs +9 -2
- package/dist/faq-static-list.js +9 -2
- package/dist/feature-accordion-image.cjs +8 -2
- package/dist/feature-accordion-image.js +8 -2
- package/dist/feature-badge-grid-six.cjs +1 -1
- package/dist/feature-badge-grid-six.js +1 -1
- package/dist/feature-card-grid-linked.cjs +92 -22
- package/dist/feature-card-grid-linked.js +92 -22
- package/dist/feature-carousel-progress.cjs +1 -1
- package/dist/feature-carousel-progress.js +1 -1
- package/dist/feature-checklist-image.cjs +88 -15
- package/dist/feature-checklist-image.js +88 -15
- package/dist/feature-checklist-three-column.cjs +1 -1
- package/dist/feature-checklist-three-column.js +1 -1
- package/dist/feature-icon-grid-accent.cjs +50 -8
- package/dist/feature-icon-grid-accent.js +50 -8
- package/dist/feature-icon-grid-bordered.cjs +84 -14
- package/dist/feature-icon-grid-bordered.js +84 -14
- package/dist/feature-icon-tabs-content.cjs +217 -84
- package/dist/feature-icon-tabs-content.js +217 -84
- package/dist/feature-image-overlay-badge.cjs +106 -33
- package/dist/feature-image-overlay-badge.js +106 -33
- package/dist/feature-numbered-cards.cjs +154 -35
- package/dist/feature-numbered-cards.js +154 -35
- package/dist/feature-showcase.cjs +66 -71
- package/dist/feature-showcase.d.cts +1 -5
- package/dist/feature-showcase.d.ts +1 -5
- package/dist/feature-showcase.js +67 -72
- package/dist/feature-split-image-reverse.cjs +84 -15
- package/dist/feature-split-image-reverse.js +84 -15
- package/dist/feature-split-image.cjs +87 -15
- package/dist/feature-split-image.js +87 -15
- package/dist/feature-stats-highlight.cjs +50 -13
- package/dist/feature-stats-highlight.js +50 -13
- package/dist/feature-tabbed-content-image.cjs +198 -72
- package/dist/feature-tabbed-content-image.js +198 -72
- package/dist/feature-three-column-values.cjs +67 -14
- package/dist/feature-three-column-values.js +67 -14
- package/dist/feature-utility-cards-grid.cjs +83 -36
- package/dist/feature-utility-cards-grid.js +83 -36
- package/dist/navbar-animated-preview.cjs +8 -2
- package/dist/navbar-animated-preview.js +8 -2
- package/dist/navbar-centered-menu.cjs +8 -2
- package/dist/navbar-centered-menu.js +8 -2
- package/dist/navbar-dark-icons.cjs +8 -2
- package/dist/navbar-dark-icons.js +8 -2
- package/dist/navbar-dropdown-menu.cjs +8 -2
- package/dist/navbar-dropdown-menu.js +8 -2
- package/dist/navbar-education-platform.cjs +8 -2
- package/dist/navbar-education-platform.js +8 -2
- package/dist/navbar-enterprise-mega.cjs +8 -2
- package/dist/navbar-enterprise-mega.js +8 -2
- package/dist/navbar-feature-grid.cjs +8 -2
- package/dist/navbar-feature-grid.js +8 -2
- package/dist/navbar-multi-column-groups.cjs +8 -2
- package/dist/navbar-multi-column-groups.js +8 -2
- package/dist/navbar-platform-resources.cjs +8 -2
- package/dist/navbar-platform-resources.js +8 -2
- package/dist/navbar-sidebar-mobile.cjs +8 -2
- package/dist/navbar-sidebar-mobile.js +8 -2
- package/dist/registry.cjs +1873 -680
- package/dist/registry.js +1873 -680
- package/package.json +1 -1
|
@@ -1002,7 +1002,7 @@ function FeatureImageOverlayBadge({
|
|
|
1002
1002
|
overlayTitleClassName,
|
|
1003
1003
|
optixFlowConfig,
|
|
1004
1004
|
background,
|
|
1005
|
-
spacing,
|
|
1005
|
+
spacing = "py-6 md:py-32",
|
|
1006
1006
|
pattern,
|
|
1007
1007
|
patternOpacity,
|
|
1008
1008
|
patternClassName
|
|
@@ -1055,7 +1055,10 @@ function FeatureImageOverlayBadge({
|
|
|
1055
1055
|
{
|
|
1056
1056
|
src: imageSrc,
|
|
1057
1057
|
alt: imageAlt || "Feature illustration",
|
|
1058
|
-
className: cn(
|
|
1058
|
+
className: cn(
|
|
1059
|
+
"rounded-2xl object-cover md:aspect-video lg:aspect-auto w-full h-auto",
|
|
1060
|
+
imageClassName
|
|
1061
|
+
),
|
|
1059
1062
|
loading: "lazy",
|
|
1060
1063
|
optixFlowConfig
|
|
1061
1064
|
}
|
|
@@ -1073,41 +1076,111 @@ function FeatureImageOverlayBadge({
|
|
|
1073
1076
|
patternClassName,
|
|
1074
1077
|
className,
|
|
1075
1078
|
containerClassName,
|
|
1076
|
-
children: /* @__PURE__ */ jsxs(
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
|
|
1080
|
-
|
|
1081
|
-
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
|
|
1088
|
-
|
|
1089
|
-
|
|
1090
|
-
|
|
1091
|
-
|
|
1092
|
-
|
|
1093
|
-
|
|
1094
|
-
|
|
1095
|
-
|
|
1079
|
+
children: /* @__PURE__ */ jsxs(
|
|
1080
|
+
"div",
|
|
1081
|
+
{
|
|
1082
|
+
className: cn(
|
|
1083
|
+
"grid place-items-center gap-10 lg:grid-cols-2",
|
|
1084
|
+
gridClassName
|
|
1085
|
+
),
|
|
1086
|
+
children: [
|
|
1087
|
+
/* @__PURE__ */ jsxs("div", { className: cn("flex flex-col gap-5", contentClassName), children: [
|
|
1088
|
+
badge && /* @__PURE__ */ jsx(Badge, { variant: "outline", className: cn("", badgeClassName), children: badge }),
|
|
1089
|
+
title && (typeof title === "string" ? /* @__PURE__ */ jsx(
|
|
1090
|
+
"h3",
|
|
1091
|
+
{
|
|
1092
|
+
className: cn(
|
|
1093
|
+
"text-3xl font-semibold lg:text-4xl leading-snug text-balance",
|
|
1094
|
+
titleClassName
|
|
1095
|
+
),
|
|
1096
|
+
children: title
|
|
1097
|
+
}
|
|
1098
|
+
) : /* @__PURE__ */ jsx(
|
|
1099
|
+
"div",
|
|
1100
|
+
{
|
|
1101
|
+
className: cn(
|
|
1102
|
+
"text-3xl font-semibold lg:text-5xl",
|
|
1103
|
+
titleClassName
|
|
1104
|
+
),
|
|
1105
|
+
children: title
|
|
1106
|
+
}
|
|
1107
|
+
)),
|
|
1108
|
+
description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("lg:text-lg", descriptionClassName), children: description }) : /* @__PURE__ */ jsx("div", { className: cn("lg:text-lg", descriptionClassName), children: description })),
|
|
1109
|
+
/* @__PURE__ */ jsx(
|
|
1110
|
+
"div",
|
|
1111
|
+
{
|
|
1112
|
+
className: cn(
|
|
1113
|
+
"flex items-center gap-4 flex-wrap",
|
|
1114
|
+
actionsClassName
|
|
1115
|
+
),
|
|
1116
|
+
children: actionsContent
|
|
1117
|
+
}
|
|
1118
|
+
)
|
|
1119
|
+
] }),
|
|
1120
|
+
imageContent && /* @__PURE__ */ jsxs("div", { className: cn("relative rounded-2xl", imageWrapperClassName), children: [
|
|
1121
|
+
imageContent,
|
|
1122
|
+
(avatarSrc || avatarBadgeText || overlayTitle || overlayLinkText) && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
1123
|
+
/* @__PURE__ */ jsx(
|
|
1124
|
+
"div",
|
|
1096
1125
|
{
|
|
1097
|
-
|
|
1098
|
-
|
|
1099
|
-
|
|
1100
|
-
|
|
1101
|
-
overlayLinkText,
|
|
1102
|
-
/* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/chevron-right", size: 16 })
|
|
1103
|
-
]
|
|
1126
|
+
className: cn(
|
|
1127
|
+
"absolute top-0 right-0 bottom-0 left-0 rounded-2xl bg-linear-to-t from-black via-black/20 to-transparent",
|
|
1128
|
+
overlayClassName
|
|
1129
|
+
)
|
|
1104
1130
|
}
|
|
1105
|
-
)
|
|
1131
|
+
),
|
|
1132
|
+
/* @__PURE__ */ jsxs("div", { className: "absolute top-0 flex h-full w-full flex-col justify-between pt-4 pr-4 pl-4 pb-8 md:pt-7 md:bpr-7 md:pl-7 md:pb-7 rounded-2xl", children: [
|
|
1133
|
+
(avatarSrc || avatarBadgeText) && /* @__PURE__ */ jsxs(
|
|
1134
|
+
"span",
|
|
1135
|
+
{
|
|
1136
|
+
className: cn(
|
|
1137
|
+
"ml-auto flex w-fit items-center gap-2 rounded-full bg-background/30 px-4 py-2.5 text-sm font-semibold backdrop-blur-sm shadow-xl",
|
|
1138
|
+
avatarBadgeClassName
|
|
1139
|
+
),
|
|
1140
|
+
children: [
|
|
1141
|
+
avatarSrc && /* @__PURE__ */ jsx(Avatar, { className: "size-7 rounded-full", children: /* @__PURE__ */ jsx(AvatarImage, { src: avatarSrc, alt: "Avatar" }) }),
|
|
1142
|
+
avatarBadgeText
|
|
1143
|
+
]
|
|
1144
|
+
}
|
|
1145
|
+
),
|
|
1146
|
+
(overlayTitle || overlayLinkText) && /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-5", children: [
|
|
1147
|
+
overlayTitle && (typeof overlayTitle === "string" ? /* @__PURE__ */ jsx(
|
|
1148
|
+
"h4",
|
|
1149
|
+
{
|
|
1150
|
+
className: cn(
|
|
1151
|
+
"text-lg font-semibold lg:text-3xl",
|
|
1152
|
+
overlayTitleClassName
|
|
1153
|
+
),
|
|
1154
|
+
children: overlayTitle
|
|
1155
|
+
}
|
|
1156
|
+
) : /* @__PURE__ */ jsx(
|
|
1157
|
+
"div",
|
|
1158
|
+
{
|
|
1159
|
+
className: cn(
|
|
1160
|
+
"text-lg font-semibold lg:text-3xl",
|
|
1161
|
+
overlayTitleClassName
|
|
1162
|
+
),
|
|
1163
|
+
children: overlayTitle
|
|
1164
|
+
}
|
|
1165
|
+
)),
|
|
1166
|
+
overlayLinkText && /* @__PURE__ */ jsxs(
|
|
1167
|
+
Pressable,
|
|
1168
|
+
{
|
|
1169
|
+
href: overlayLinkUrl,
|
|
1170
|
+
onClick: overlayLinkOnClick,
|
|
1171
|
+
children: [
|
|
1172
|
+
overlayLinkText,
|
|
1173
|
+
/* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/chevron-right", size: 18 })
|
|
1174
|
+
]
|
|
1175
|
+
}
|
|
1176
|
+
)
|
|
1177
|
+
] })
|
|
1178
|
+
] })
|
|
1106
1179
|
] })
|
|
1107
1180
|
] })
|
|
1108
|
-
]
|
|
1109
|
-
|
|
1110
|
-
|
|
1181
|
+
]
|
|
1182
|
+
}
|
|
1183
|
+
)
|
|
1111
1184
|
}
|
|
1112
1185
|
);
|
|
1113
1186
|
}
|
|
@@ -529,27 +529,45 @@ function FeatureNumberedCards({
|
|
|
529
529
|
patternOpacity,
|
|
530
530
|
patternClassName
|
|
531
531
|
}) {
|
|
532
|
-
const renderChecklistItems = React.useCallback(
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
532
|
+
const renderChecklistItems = React.useCallback(
|
|
533
|
+
(feature) => {
|
|
534
|
+
if (feature.checklistSlot) return feature.checklistSlot;
|
|
535
|
+
if (!feature.checklistItems || feature.checklistItems.length === 0)
|
|
536
|
+
return null;
|
|
537
|
+
return feature.checklistItems.map((item, itemIndex) => {
|
|
538
|
+
const isString = typeof item === "string";
|
|
539
|
+
const content = isString ? item : item.content;
|
|
540
|
+
const iconElement = isString ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
541
|
+
DynamicIcon,
|
|
542
|
+
{
|
|
543
|
+
name: "lucide/check-circle",
|
|
544
|
+
size: 16,
|
|
545
|
+
className: "mt-0.5 shrink-0 sm:mt-1"
|
|
546
|
+
}
|
|
547
|
+
) : item.icon ?? (item.iconName ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
548
|
+
DynamicIcon,
|
|
549
|
+
{
|
|
550
|
+
name: item.iconName,
|
|
551
|
+
size: 16,
|
|
552
|
+
className: "mt-0.5 shrink-0 sm:mt-1"
|
|
553
|
+
}
|
|
554
|
+
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
555
|
+
DynamicIcon,
|
|
556
|
+
{
|
|
557
|
+
name: "lucide/check-circle",
|
|
558
|
+
size: 16,
|
|
559
|
+
className: "mt-0.5 shrink-0 sm:mt-1"
|
|
560
|
+
}
|
|
561
|
+
));
|
|
562
|
+
const itemClassName = isString ? void 0 : item.className;
|
|
563
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("li", { className: cn("flex gap-x-3", itemClassName), children: [
|
|
564
|
+
iconElement,
|
|
565
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm md:text-base", children: content })
|
|
566
|
+
] }, itemIndex);
|
|
567
|
+
});
|
|
568
|
+
},
|
|
569
|
+
[]
|
|
570
|
+
);
|
|
553
571
|
const featuresContent = React.useMemo(() => {
|
|
554
572
|
if (featuresSlot) return featuresSlot;
|
|
555
573
|
if (!features || features.length === 0) return null;
|
|
@@ -563,7 +581,7 @@ function FeatureNumberedCards({
|
|
|
563
581
|
{
|
|
564
582
|
src: feature.image,
|
|
565
583
|
alt: imageAlt,
|
|
566
|
-
className: "h-full w-full object-cover",
|
|
584
|
+
className: "h-full w-full object-cover rounded-tr-lg rounded-tl-lg md:rounded-tl-0 rounded-br-0 md:rounded-br-lg",
|
|
567
585
|
loading: "lazy",
|
|
568
586
|
optixFlowConfig
|
|
569
587
|
}
|
|
@@ -571,19 +589,111 @@ function FeatureNumberedCards({
|
|
|
571
589
|
}
|
|
572
590
|
return null;
|
|
573
591
|
};
|
|
574
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
592
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
593
|
+
"div",
|
|
594
|
+
{
|
|
595
|
+
className: cn(
|
|
596
|
+
"grid rounded-lg border md:grid-cols-2",
|
|
597
|
+
cardClassName,
|
|
598
|
+
feature.className
|
|
599
|
+
),
|
|
600
|
+
children: [
|
|
601
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
602
|
+
"div",
|
|
603
|
+
{
|
|
604
|
+
className: cn(
|
|
605
|
+
"flex flex-col px-6 py-8 lg:px-8 lg:py-12 xl:px-12 xl:py-20",
|
|
606
|
+
feature.contentClassName
|
|
607
|
+
),
|
|
608
|
+
children: [
|
|
609
|
+
feature.title && (typeof feature.title === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
610
|
+
"h3",
|
|
611
|
+
{
|
|
612
|
+
className: cn(
|
|
613
|
+
"mb-3 text-2xl font-medium sm:mb-5 md:text-3xl lg:text-4xl",
|
|
614
|
+
titleClassName
|
|
615
|
+
),
|
|
616
|
+
children: feature.title
|
|
617
|
+
}
|
|
618
|
+
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
619
|
+
"div",
|
|
620
|
+
{
|
|
621
|
+
className: cn(
|
|
622
|
+
"mb-3 text-2xl font-medium sm:mb-5 md:text-3xl lg:text-4xl",
|
|
623
|
+
titleClassName
|
|
624
|
+
),
|
|
625
|
+
children: feature.title
|
|
626
|
+
}
|
|
627
|
+
)),
|
|
628
|
+
feature.description && (typeof feature.description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
629
|
+
"div",
|
|
630
|
+
{
|
|
631
|
+
className: cn(
|
|
632
|
+
"mb-8 text-sm sm:mb-10 md:text-base",
|
|
633
|
+
descriptionClassName
|
|
634
|
+
),
|
|
635
|
+
children: feature.description
|
|
636
|
+
}
|
|
637
|
+
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
638
|
+
"div",
|
|
639
|
+
{
|
|
640
|
+
className: cn(
|
|
641
|
+
"mb-8 text-sm sm:mb-10 md:text-base",
|
|
642
|
+
descriptionClassName
|
|
643
|
+
),
|
|
644
|
+
children: feature.description
|
|
645
|
+
}
|
|
646
|
+
)),
|
|
647
|
+
feature.checklistItems && feature.checklistItems.length > 0 || feature.checklistSlot ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
648
|
+
"ul",
|
|
649
|
+
{
|
|
650
|
+
className: cn(
|
|
651
|
+
"mt-auto space-y-2 sm:space-y-3",
|
|
652
|
+
checklistClassName
|
|
653
|
+
),
|
|
654
|
+
children: renderChecklistItems(feature)
|
|
655
|
+
}
|
|
656
|
+
) : null
|
|
657
|
+
]
|
|
658
|
+
}
|
|
659
|
+
),
|
|
660
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
661
|
+
"div",
|
|
662
|
+
{
|
|
663
|
+
className: cn(
|
|
664
|
+
"relative order-first max-h-80 md:order-last md:max-h-[500px]",
|
|
665
|
+
feature.imageWrapperClassName
|
|
666
|
+
),
|
|
667
|
+
children: [
|
|
668
|
+
renderImage(),
|
|
669
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
670
|
+
"span",
|
|
671
|
+
{
|
|
672
|
+
className: cn(
|
|
673
|
+
"absolute top-5 left-5 flex size-6 items-center justify-center rounded-sm bg-primary font-mono text-xs text-primary-foreground md:top-10 md:left-10",
|
|
674
|
+
badgeClassName
|
|
675
|
+
),
|
|
676
|
+
children: String(index + 1).padStart(2, "0")
|
|
677
|
+
}
|
|
678
|
+
)
|
|
679
|
+
]
|
|
680
|
+
}
|
|
681
|
+
)
|
|
682
|
+
]
|
|
683
|
+
},
|
|
684
|
+
index
|
|
685
|
+
);
|
|
585
686
|
});
|
|
586
|
-
}, [
|
|
687
|
+
}, [
|
|
688
|
+
featuresSlot,
|
|
689
|
+
features,
|
|
690
|
+
cardClassName,
|
|
691
|
+
titleClassName,
|
|
692
|
+
descriptionClassName,
|
|
693
|
+
checklistClassName,
|
|
694
|
+
badgeClassName,
|
|
695
|
+
optixFlowConfig
|
|
696
|
+
]);
|
|
587
697
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
588
698
|
Section,
|
|
589
699
|
{
|
|
@@ -594,7 +704,16 @@ function FeatureNumberedCards({
|
|
|
594
704
|
patternClassName,
|
|
595
705
|
className,
|
|
596
706
|
containerClassName,
|
|
597
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
707
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
708
|
+
"div",
|
|
709
|
+
{
|
|
710
|
+
className: cn(
|
|
711
|
+
"space-y-4 md:space-y-10 rounded-lg border-none md:border md:bg-background p-0 md:p-10",
|
|
712
|
+
cardsWrapperClassName
|
|
713
|
+
),
|
|
714
|
+
children: featuresContent
|
|
715
|
+
}
|
|
716
|
+
)
|
|
598
717
|
}
|
|
599
718
|
);
|
|
600
719
|
}
|
|
@@ -508,27 +508,45 @@ function FeatureNumberedCards({
|
|
|
508
508
|
patternOpacity,
|
|
509
509
|
patternClassName
|
|
510
510
|
}) {
|
|
511
|
-
const renderChecklistItems = useCallback(
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
511
|
+
const renderChecklistItems = useCallback(
|
|
512
|
+
(feature) => {
|
|
513
|
+
if (feature.checklistSlot) return feature.checklistSlot;
|
|
514
|
+
if (!feature.checklistItems || feature.checklistItems.length === 0)
|
|
515
|
+
return null;
|
|
516
|
+
return feature.checklistItems.map((item, itemIndex) => {
|
|
517
|
+
const isString = typeof item === "string";
|
|
518
|
+
const content = isString ? item : item.content;
|
|
519
|
+
const iconElement = isString ? /* @__PURE__ */ jsx(
|
|
520
|
+
DynamicIcon,
|
|
521
|
+
{
|
|
522
|
+
name: "lucide/check-circle",
|
|
523
|
+
size: 16,
|
|
524
|
+
className: "mt-0.5 shrink-0 sm:mt-1"
|
|
525
|
+
}
|
|
526
|
+
) : item.icon ?? (item.iconName ? /* @__PURE__ */ jsx(
|
|
527
|
+
DynamicIcon,
|
|
528
|
+
{
|
|
529
|
+
name: item.iconName,
|
|
530
|
+
size: 16,
|
|
531
|
+
className: "mt-0.5 shrink-0 sm:mt-1"
|
|
532
|
+
}
|
|
533
|
+
) : /* @__PURE__ */ jsx(
|
|
534
|
+
DynamicIcon,
|
|
535
|
+
{
|
|
536
|
+
name: "lucide/check-circle",
|
|
537
|
+
size: 16,
|
|
538
|
+
className: "mt-0.5 shrink-0 sm:mt-1"
|
|
539
|
+
}
|
|
540
|
+
));
|
|
541
|
+
const itemClassName = isString ? void 0 : item.className;
|
|
542
|
+
return /* @__PURE__ */ jsxs("li", { className: cn("flex gap-x-3", itemClassName), children: [
|
|
543
|
+
iconElement,
|
|
544
|
+
/* @__PURE__ */ jsx("p", { className: "text-sm md:text-base", children: content })
|
|
545
|
+
] }, itemIndex);
|
|
546
|
+
});
|
|
547
|
+
},
|
|
548
|
+
[]
|
|
549
|
+
);
|
|
532
550
|
const featuresContent = useMemo(() => {
|
|
533
551
|
if (featuresSlot) return featuresSlot;
|
|
534
552
|
if (!features || features.length === 0) return null;
|
|
@@ -542,7 +560,7 @@ function FeatureNumberedCards({
|
|
|
542
560
|
{
|
|
543
561
|
src: feature.image,
|
|
544
562
|
alt: imageAlt,
|
|
545
|
-
className: "h-full w-full object-cover",
|
|
563
|
+
className: "h-full w-full object-cover rounded-tr-lg rounded-tl-lg md:rounded-tl-0 rounded-br-0 md:rounded-br-lg",
|
|
546
564
|
loading: "lazy",
|
|
547
565
|
optixFlowConfig
|
|
548
566
|
}
|
|
@@ -550,19 +568,111 @@ function FeatureNumberedCards({
|
|
|
550
568
|
}
|
|
551
569
|
return null;
|
|
552
570
|
};
|
|
553
|
-
return /* @__PURE__ */ jsxs(
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
571
|
+
return /* @__PURE__ */ jsxs(
|
|
572
|
+
"div",
|
|
573
|
+
{
|
|
574
|
+
className: cn(
|
|
575
|
+
"grid rounded-lg border md:grid-cols-2",
|
|
576
|
+
cardClassName,
|
|
577
|
+
feature.className
|
|
578
|
+
),
|
|
579
|
+
children: [
|
|
580
|
+
/* @__PURE__ */ jsxs(
|
|
581
|
+
"div",
|
|
582
|
+
{
|
|
583
|
+
className: cn(
|
|
584
|
+
"flex flex-col px-6 py-8 lg:px-8 lg:py-12 xl:px-12 xl:py-20",
|
|
585
|
+
feature.contentClassName
|
|
586
|
+
),
|
|
587
|
+
children: [
|
|
588
|
+
feature.title && (typeof feature.title === "string" ? /* @__PURE__ */ jsx(
|
|
589
|
+
"h3",
|
|
590
|
+
{
|
|
591
|
+
className: cn(
|
|
592
|
+
"mb-3 text-2xl font-medium sm:mb-5 md:text-3xl lg:text-4xl",
|
|
593
|
+
titleClassName
|
|
594
|
+
),
|
|
595
|
+
children: feature.title
|
|
596
|
+
}
|
|
597
|
+
) : /* @__PURE__ */ jsx(
|
|
598
|
+
"div",
|
|
599
|
+
{
|
|
600
|
+
className: cn(
|
|
601
|
+
"mb-3 text-2xl font-medium sm:mb-5 md:text-3xl lg:text-4xl",
|
|
602
|
+
titleClassName
|
|
603
|
+
),
|
|
604
|
+
children: feature.title
|
|
605
|
+
}
|
|
606
|
+
)),
|
|
607
|
+
feature.description && (typeof feature.description === "string" ? /* @__PURE__ */ jsx(
|
|
608
|
+
"div",
|
|
609
|
+
{
|
|
610
|
+
className: cn(
|
|
611
|
+
"mb-8 text-sm sm:mb-10 md:text-base",
|
|
612
|
+
descriptionClassName
|
|
613
|
+
),
|
|
614
|
+
children: feature.description
|
|
615
|
+
}
|
|
616
|
+
) : /* @__PURE__ */ jsx(
|
|
617
|
+
"div",
|
|
618
|
+
{
|
|
619
|
+
className: cn(
|
|
620
|
+
"mb-8 text-sm sm:mb-10 md:text-base",
|
|
621
|
+
descriptionClassName
|
|
622
|
+
),
|
|
623
|
+
children: feature.description
|
|
624
|
+
}
|
|
625
|
+
)),
|
|
626
|
+
feature.checklistItems && feature.checklistItems.length > 0 || feature.checklistSlot ? /* @__PURE__ */ jsx(
|
|
627
|
+
"ul",
|
|
628
|
+
{
|
|
629
|
+
className: cn(
|
|
630
|
+
"mt-auto space-y-2 sm:space-y-3",
|
|
631
|
+
checklistClassName
|
|
632
|
+
),
|
|
633
|
+
children: renderChecklistItems(feature)
|
|
634
|
+
}
|
|
635
|
+
) : null
|
|
636
|
+
]
|
|
637
|
+
}
|
|
638
|
+
),
|
|
639
|
+
/* @__PURE__ */ jsxs(
|
|
640
|
+
"div",
|
|
641
|
+
{
|
|
642
|
+
className: cn(
|
|
643
|
+
"relative order-first max-h-80 md:order-last md:max-h-[500px]",
|
|
644
|
+
feature.imageWrapperClassName
|
|
645
|
+
),
|
|
646
|
+
children: [
|
|
647
|
+
renderImage(),
|
|
648
|
+
/* @__PURE__ */ jsx(
|
|
649
|
+
"span",
|
|
650
|
+
{
|
|
651
|
+
className: cn(
|
|
652
|
+
"absolute top-5 left-5 flex size-6 items-center justify-center rounded-sm bg-primary font-mono text-xs text-primary-foreground md:top-10 md:left-10",
|
|
653
|
+
badgeClassName
|
|
654
|
+
),
|
|
655
|
+
children: String(index + 1).padStart(2, "0")
|
|
656
|
+
}
|
|
657
|
+
)
|
|
658
|
+
]
|
|
659
|
+
}
|
|
660
|
+
)
|
|
661
|
+
]
|
|
662
|
+
},
|
|
663
|
+
index
|
|
664
|
+
);
|
|
564
665
|
});
|
|
565
|
-
}, [
|
|
666
|
+
}, [
|
|
667
|
+
featuresSlot,
|
|
668
|
+
features,
|
|
669
|
+
cardClassName,
|
|
670
|
+
titleClassName,
|
|
671
|
+
descriptionClassName,
|
|
672
|
+
checklistClassName,
|
|
673
|
+
badgeClassName,
|
|
674
|
+
optixFlowConfig
|
|
675
|
+
]);
|
|
566
676
|
return /* @__PURE__ */ jsx(
|
|
567
677
|
Section,
|
|
568
678
|
{
|
|
@@ -573,7 +683,16 @@ function FeatureNumberedCards({
|
|
|
573
683
|
patternClassName,
|
|
574
684
|
className,
|
|
575
685
|
containerClassName,
|
|
576
|
-
children: /* @__PURE__ */ jsx(
|
|
686
|
+
children: /* @__PURE__ */ jsx(
|
|
687
|
+
"div",
|
|
688
|
+
{
|
|
689
|
+
className: cn(
|
|
690
|
+
"space-y-4 md:space-y-10 rounded-lg border-none md:border md:bg-background p-0 md:p-10",
|
|
691
|
+
cardsWrapperClassName
|
|
692
|
+
),
|
|
693
|
+
children: featuresContent
|
|
694
|
+
}
|
|
695
|
+
)
|
|
577
696
|
}
|
|
578
697
|
);
|
|
579
698
|
}
|