@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
|
@@ -522,24 +522,56 @@ function FeatureThreeColumnValues({
|
|
|
522
522
|
gridClassName,
|
|
523
523
|
cardClassName,
|
|
524
524
|
background,
|
|
525
|
-
spacing,
|
|
525
|
+
spacing = "py-6 md:py-32",
|
|
526
526
|
pattern,
|
|
527
527
|
patternOpacity,
|
|
528
528
|
patternClassName
|
|
529
529
|
}) {
|
|
530
|
-
const renderValueIcon = React__namespace.useCallback(
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
530
|
+
const renderValueIcon = React__namespace.useCallback(
|
|
531
|
+
(value) => {
|
|
532
|
+
if (value.icon) return value.icon;
|
|
533
|
+
if (value.iconName)
|
|
534
|
+
return /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: value.iconName, size: 24 });
|
|
535
|
+
return null;
|
|
536
|
+
},
|
|
537
|
+
[]
|
|
538
|
+
);
|
|
535
539
|
const valuesContent = React.useMemo(() => {
|
|
536
540
|
if (valuesSlot) return valuesSlot;
|
|
537
541
|
if (!values || values.length === 0) return null;
|
|
538
|
-
return values.map((value, index) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
542
|
+
return values.map((value, index) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
543
|
+
"div",
|
|
544
|
+
{
|
|
545
|
+
className: cn("rounded-lg p-5", cardClassName, value.className),
|
|
546
|
+
children: [
|
|
547
|
+
(value.icon || value.iconName) && /* @__PURE__ */ jsxRuntime.jsx(
|
|
548
|
+
"span",
|
|
549
|
+
{
|
|
550
|
+
className: cn(
|
|
551
|
+
"mb-8 flex size-12 items-center justify-center rounded-full ",
|
|
552
|
+
value.iconClassName
|
|
553
|
+
),
|
|
554
|
+
children: renderValueIcon(value)
|
|
555
|
+
}
|
|
556
|
+
),
|
|
557
|
+
value.title && (typeof value.title === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
558
|
+
"h3",
|
|
559
|
+
{
|
|
560
|
+
className: cn("mb-2 text-xl font-medium", value.titleClassName),
|
|
561
|
+
children: value.title
|
|
562
|
+
}
|
|
563
|
+
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
564
|
+
"div",
|
|
565
|
+
{
|
|
566
|
+
className: cn("mb-2 text-xl font-medium", value.titleClassName),
|
|
567
|
+
children: value.title
|
|
568
|
+
}
|
|
569
|
+
)),
|
|
570
|
+
value.description && (typeof value.description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("leading-7 ", value.descriptionClassName), children: value.description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("leading-7", value.descriptionClassName), children: value.description }))
|
|
571
|
+
]
|
|
572
|
+
},
|
|
573
|
+
index
|
|
574
|
+
));
|
|
543
575
|
}, [valuesSlot, values, cardClassName, renderValueIcon]);
|
|
544
576
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
545
577
|
Section,
|
|
@@ -552,9 +584,30 @@ function FeatureThreeColumnValues({
|
|
|
552
584
|
className,
|
|
553
585
|
containerClassName,
|
|
554
586
|
children: [
|
|
555
|
-
label && (typeof label === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("mb-4 text-sm
|
|
556
|
-
title && (typeof title === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
557
|
-
|
|
587
|
+
label && (typeof label === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("mb-4 text-sm lg:text-base", labelClassName), children: label }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-4 text-sm lg:text-base", labelClassName), children: label })),
|
|
588
|
+
title && (typeof title === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
589
|
+
"h2",
|
|
590
|
+
{
|
|
591
|
+
className: cn("text-3xl font-medium lg:text-4xl", titleClassName),
|
|
592
|
+
children: title
|
|
593
|
+
}
|
|
594
|
+
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
595
|
+
"div",
|
|
596
|
+
{
|
|
597
|
+
className: cn("text-3xl font-medium lg:text-4xl", titleClassName),
|
|
598
|
+
children: title
|
|
599
|
+
}
|
|
600
|
+
)),
|
|
601
|
+
(valuesSlot || values && values.length > 0) && /* @__PURE__ */ jsxRuntime.jsx(
|
|
602
|
+
"div",
|
|
603
|
+
{
|
|
604
|
+
className: cn(
|
|
605
|
+
"mt-14 grid gap-6 lg:mt-20 lg:grid-cols-3",
|
|
606
|
+
gridClassName
|
|
607
|
+
),
|
|
608
|
+
children: valuesContent
|
|
609
|
+
}
|
|
610
|
+
)
|
|
558
611
|
]
|
|
559
612
|
}
|
|
560
613
|
);
|
|
@@ -501,24 +501,56 @@ function FeatureThreeColumnValues({
|
|
|
501
501
|
gridClassName,
|
|
502
502
|
cardClassName,
|
|
503
503
|
background,
|
|
504
|
-
spacing,
|
|
504
|
+
spacing = "py-6 md:py-32",
|
|
505
505
|
pattern,
|
|
506
506
|
patternOpacity,
|
|
507
507
|
patternClassName
|
|
508
508
|
}) {
|
|
509
|
-
const renderValueIcon = React.useCallback(
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
509
|
+
const renderValueIcon = React.useCallback(
|
|
510
|
+
(value) => {
|
|
511
|
+
if (value.icon) return value.icon;
|
|
512
|
+
if (value.iconName)
|
|
513
|
+
return /* @__PURE__ */ jsx(DynamicIcon, { name: value.iconName, size: 24 });
|
|
514
|
+
return null;
|
|
515
|
+
},
|
|
516
|
+
[]
|
|
517
|
+
);
|
|
514
518
|
const valuesContent = useMemo(() => {
|
|
515
519
|
if (valuesSlot) return valuesSlot;
|
|
516
520
|
if (!values || values.length === 0) return null;
|
|
517
|
-
return values.map((value, index) => /* @__PURE__ */ jsxs(
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
521
|
+
return values.map((value, index) => /* @__PURE__ */ jsxs(
|
|
522
|
+
"div",
|
|
523
|
+
{
|
|
524
|
+
className: cn("rounded-lg p-5", cardClassName, value.className),
|
|
525
|
+
children: [
|
|
526
|
+
(value.icon || value.iconName) && /* @__PURE__ */ jsx(
|
|
527
|
+
"span",
|
|
528
|
+
{
|
|
529
|
+
className: cn(
|
|
530
|
+
"mb-8 flex size-12 items-center justify-center rounded-full ",
|
|
531
|
+
value.iconClassName
|
|
532
|
+
),
|
|
533
|
+
children: renderValueIcon(value)
|
|
534
|
+
}
|
|
535
|
+
),
|
|
536
|
+
value.title && (typeof value.title === "string" ? /* @__PURE__ */ jsx(
|
|
537
|
+
"h3",
|
|
538
|
+
{
|
|
539
|
+
className: cn("mb-2 text-xl font-medium", value.titleClassName),
|
|
540
|
+
children: value.title
|
|
541
|
+
}
|
|
542
|
+
) : /* @__PURE__ */ jsx(
|
|
543
|
+
"div",
|
|
544
|
+
{
|
|
545
|
+
className: cn("mb-2 text-xl font-medium", value.titleClassName),
|
|
546
|
+
children: value.title
|
|
547
|
+
}
|
|
548
|
+
)),
|
|
549
|
+
value.description && (typeof value.description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("leading-7 ", value.descriptionClassName), children: value.description }) : /* @__PURE__ */ jsx("div", { className: cn("leading-7", value.descriptionClassName), children: value.description }))
|
|
550
|
+
]
|
|
551
|
+
},
|
|
552
|
+
index
|
|
553
|
+
));
|
|
522
554
|
}, [valuesSlot, values, cardClassName, renderValueIcon]);
|
|
523
555
|
return /* @__PURE__ */ jsxs(
|
|
524
556
|
Section,
|
|
@@ -531,9 +563,30 @@ function FeatureThreeColumnValues({
|
|
|
531
563
|
className,
|
|
532
564
|
containerClassName,
|
|
533
565
|
children: [
|
|
534
|
-
label && (typeof label === "string" ? /* @__PURE__ */ jsx("p", { className: cn("mb-4 text-sm
|
|
535
|
-
title && (typeof title === "string" ? /* @__PURE__ */ jsx(
|
|
536
|
-
|
|
566
|
+
label && (typeof label === "string" ? /* @__PURE__ */ jsx("p", { className: cn("mb-4 text-sm lg:text-base", labelClassName), children: label }) : /* @__PURE__ */ jsx("div", { className: cn("mb-4 text-sm lg:text-base", labelClassName), children: label })),
|
|
567
|
+
title && (typeof title === "string" ? /* @__PURE__ */ jsx(
|
|
568
|
+
"h2",
|
|
569
|
+
{
|
|
570
|
+
className: cn("text-3xl font-medium lg:text-4xl", titleClassName),
|
|
571
|
+
children: title
|
|
572
|
+
}
|
|
573
|
+
) : /* @__PURE__ */ jsx(
|
|
574
|
+
"div",
|
|
575
|
+
{
|
|
576
|
+
className: cn("text-3xl font-medium lg:text-4xl", titleClassName),
|
|
577
|
+
children: title
|
|
578
|
+
}
|
|
579
|
+
)),
|
|
580
|
+
(valuesSlot || values && values.length > 0) && /* @__PURE__ */ jsx(
|
|
581
|
+
"div",
|
|
582
|
+
{
|
|
583
|
+
className: cn(
|
|
584
|
+
"mt-14 grid gap-6 lg:mt-20 lg:grid-cols-3",
|
|
585
|
+
gridClassName
|
|
586
|
+
),
|
|
587
|
+
children: valuesContent
|
|
588
|
+
}
|
|
589
|
+
)
|
|
537
590
|
]
|
|
538
591
|
}
|
|
539
592
|
);
|
|
@@ -985,14 +985,15 @@ function FeatureUtilityCardsGrid({
|
|
|
985
985
|
cardClassName,
|
|
986
986
|
optixFlowConfig,
|
|
987
987
|
background,
|
|
988
|
-
spacing,
|
|
988
|
+
spacing = "py-6 md:py-32",
|
|
989
989
|
pattern,
|
|
990
990
|
patternOpacity,
|
|
991
991
|
patternClassName
|
|
992
992
|
}) {
|
|
993
993
|
const renderLabelIcon = React.useMemo(() => {
|
|
994
994
|
if (labelIcon) return labelIcon;
|
|
995
|
-
if (labelIconName)
|
|
995
|
+
if (labelIconName)
|
|
996
|
+
return /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: labelIconName, size: 20, className: "text-primary" });
|
|
996
997
|
return null;
|
|
997
998
|
}, [labelIcon, labelIconName]);
|
|
998
999
|
const learnMoreContent = React.useMemo(() => {
|
|
@@ -1004,7 +1005,10 @@ function FeatureUtilityCardsGrid({
|
|
|
1004
1005
|
{
|
|
1005
1006
|
href: learnMoreAction.href,
|
|
1006
1007
|
onClick: learnMoreAction.onClick,
|
|
1007
|
-
className: cn(
|
|
1008
|
+
className: cn(
|
|
1009
|
+
"hover:text-primary hover:underline",
|
|
1010
|
+
learnMoreAction.className
|
|
1011
|
+
),
|
|
1008
1012
|
"aria-label": learnMoreAction["aria-label"],
|
|
1009
1013
|
children: learnMoreAction.children
|
|
1010
1014
|
}
|
|
@@ -1015,7 +1019,7 @@ function FeatureUtilityCardsGrid({
|
|
|
1015
1019
|
{
|
|
1016
1020
|
href: learnMoreAction.href,
|
|
1017
1021
|
onClick: learnMoreAction.onClick,
|
|
1018
|
-
className: cn(
|
|
1022
|
+
className: cn(learnMoreAction.className),
|
|
1019
1023
|
"aria-label": learnMoreAction["aria-label"],
|
|
1020
1024
|
children: [
|
|
1021
1025
|
learnMoreAction.icon,
|
|
@@ -1025,32 +1029,45 @@ function FeatureUtilityCardsGrid({
|
|
|
1025
1029
|
}
|
|
1026
1030
|
);
|
|
1027
1031
|
}, [learnMoreSlot, learnMoreAction]);
|
|
1028
|
-
const renderUtilityImage = React__namespace.useCallback(
|
|
1029
|
-
|
|
1030
|
-
|
|
1031
|
-
|
|
1032
|
-
|
|
1033
|
-
|
|
1034
|
-
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
|
|
1032
|
+
const renderUtilityImage = React__namespace.useCallback(
|
|
1033
|
+
(utility) => {
|
|
1034
|
+
if (utility.imageSlot) return utility.imageSlot;
|
|
1035
|
+
if (utility.image) {
|
|
1036
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1037
|
+
img.Img,
|
|
1038
|
+
{
|
|
1039
|
+
src: utility.image,
|
|
1040
|
+
alt: utility.imageAlt || (typeof utility.title === "string" ? utility.title : "Utility image"),
|
|
1041
|
+
className: cn(
|
|
1042
|
+
"aspect-video w-full object-cover",
|
|
1043
|
+
utility.imageClassName
|
|
1044
|
+
),
|
|
1045
|
+
loading: "lazy",
|
|
1046
|
+
optixFlowConfig
|
|
1047
|
+
}
|
|
1048
|
+
);
|
|
1049
|
+
}
|
|
1050
|
+
return null;
|
|
1051
|
+
},
|
|
1052
|
+
[optixFlowConfig]
|
|
1053
|
+
);
|
|
1044
1054
|
const utilitiesContent = React.useMemo(() => {
|
|
1045
1055
|
if (utilitiesSlot) return utilitiesSlot;
|
|
1046
1056
|
if (!utilities || utilities.length === 0) return null;
|
|
1047
|
-
return utilities.map((utility, index) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1048
|
-
|
|
1049
|
-
|
|
1050
|
-
|
|
1051
|
-
|
|
1052
|
-
|
|
1053
|
-
|
|
1057
|
+
return utilities.map((utility, index) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1058
|
+
Card,
|
|
1059
|
+
{
|
|
1060
|
+
className: cn("overflow-hidden pt-0", cardClassName, utility.className),
|
|
1061
|
+
children: [
|
|
1062
|
+
renderUtilityImage(utility),
|
|
1063
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "p-5", children: [
|
|
1064
|
+
utility.title && (typeof utility.title === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("mb-1 font-medium", utility.titleClassName), children: utility.title }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-1 font-medium", utility.titleClassName), children: utility.title })),
|
|
1065
|
+
utility.description && (typeof utility.description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("", utility.descriptionClassName), children: utility.description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("", utility.descriptionClassName), children: utility.description }))
|
|
1066
|
+
] })
|
|
1067
|
+
]
|
|
1068
|
+
},
|
|
1069
|
+
index
|
|
1070
|
+
));
|
|
1054
1071
|
}, [utilitiesSlot, utilities, cardClassName, renderUtilityImage]);
|
|
1055
1072
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1056
1073
|
Section,
|
|
@@ -1064,20 +1081,50 @@ function FeatureUtilityCardsGrid({
|
|
|
1064
1081
|
containerClassName: cn("max-w-7xl", containerClassName),
|
|
1065
1082
|
children: [
|
|
1066
1083
|
(label || labelIcon || labelIconName || learnMoreSlot || learnMoreAction) && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
1067
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
1068
|
-
|
|
1069
|
-
|
|
1070
|
-
|
|
1071
|
-
|
|
1072
|
-
|
|
1073
|
-
|
|
1084
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
1085
|
+
"div",
|
|
1086
|
+
{
|
|
1087
|
+
className: cn(
|
|
1088
|
+
"flex items-center justify-between text-sm",
|
|
1089
|
+
headerClassName
|
|
1090
|
+
),
|
|
1091
|
+
children: [
|
|
1092
|
+
(label || labelIcon || labelIconName) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex items-center gap-1 ", labelClassName), children: [
|
|
1093
|
+
renderLabelIcon,
|
|
1094
|
+
label && (typeof label === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { children: label }) : /* @__PURE__ */ jsxRuntime.jsx("div", { children: label }))
|
|
1095
|
+
] }),
|
|
1096
|
+
learnMoreContent
|
|
1097
|
+
]
|
|
1098
|
+
}
|
|
1099
|
+
),
|
|
1074
1100
|
/* @__PURE__ */ jsxRuntime.jsx(Separator, { className: "mt-3 mb-8" })
|
|
1075
1101
|
] }),
|
|
1076
1102
|
(title || description) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col justify-between gap-6 md:flex-row", children: [
|
|
1077
|
-
title && (typeof title === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
1103
|
+
title && (typeof title === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
1104
|
+
"h2",
|
|
1105
|
+
{
|
|
1106
|
+
className: cn("text-3xl font-medium md:w-1/2", titleClassName),
|
|
1107
|
+
children: title
|
|
1108
|
+
}
|
|
1109
|
+
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
1110
|
+
"div",
|
|
1111
|
+
{
|
|
1112
|
+
className: cn("text-3xl font-medium md:w-1/2", titleClassName),
|
|
1113
|
+
children: title
|
|
1114
|
+
}
|
|
1115
|
+
)),
|
|
1078
1116
|
description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("md:w-1/2", descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("md:w-1/2", descriptionClassName), children: description }))
|
|
1079
1117
|
] }),
|
|
1080
|
-
(utilitiesSlot || utilities && utilities.length > 0) && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1118
|
+
(utilitiesSlot || utilities && utilities.length > 0) && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1119
|
+
"div",
|
|
1120
|
+
{
|
|
1121
|
+
className: cn(
|
|
1122
|
+
"mt-11 grid w-full grid-cols-1 gap-4 md:grid-cols-2 lg:grid-cols-3",
|
|
1123
|
+
gridClassName
|
|
1124
|
+
),
|
|
1125
|
+
children: utilitiesContent
|
|
1126
|
+
}
|
|
1127
|
+
)
|
|
1081
1128
|
]
|
|
1082
1129
|
}
|
|
1083
1130
|
);
|
|
@@ -963,14 +963,15 @@ function FeatureUtilityCardsGrid({
|
|
|
963
963
|
cardClassName,
|
|
964
964
|
optixFlowConfig,
|
|
965
965
|
background,
|
|
966
|
-
spacing,
|
|
966
|
+
spacing = "py-6 md:py-32",
|
|
967
967
|
pattern,
|
|
968
968
|
patternOpacity,
|
|
969
969
|
patternClassName
|
|
970
970
|
}) {
|
|
971
971
|
const renderLabelIcon = useMemo(() => {
|
|
972
972
|
if (labelIcon) return labelIcon;
|
|
973
|
-
if (labelIconName)
|
|
973
|
+
if (labelIconName)
|
|
974
|
+
return /* @__PURE__ */ jsx(DynamicIcon, { name: labelIconName, size: 20, className: "text-primary" });
|
|
974
975
|
return null;
|
|
975
976
|
}, [labelIcon, labelIconName]);
|
|
976
977
|
const learnMoreContent = useMemo(() => {
|
|
@@ -982,7 +983,10 @@ function FeatureUtilityCardsGrid({
|
|
|
982
983
|
{
|
|
983
984
|
href: learnMoreAction.href,
|
|
984
985
|
onClick: learnMoreAction.onClick,
|
|
985
|
-
className: cn(
|
|
986
|
+
className: cn(
|
|
987
|
+
"hover:text-primary hover:underline",
|
|
988
|
+
learnMoreAction.className
|
|
989
|
+
),
|
|
986
990
|
"aria-label": learnMoreAction["aria-label"],
|
|
987
991
|
children: learnMoreAction.children
|
|
988
992
|
}
|
|
@@ -993,7 +997,7 @@ function FeatureUtilityCardsGrid({
|
|
|
993
997
|
{
|
|
994
998
|
href: learnMoreAction.href,
|
|
995
999
|
onClick: learnMoreAction.onClick,
|
|
996
|
-
className: cn(
|
|
1000
|
+
className: cn(learnMoreAction.className),
|
|
997
1001
|
"aria-label": learnMoreAction["aria-label"],
|
|
998
1002
|
children: [
|
|
999
1003
|
learnMoreAction.icon,
|
|
@@ -1003,32 +1007,45 @@ function FeatureUtilityCardsGrid({
|
|
|
1003
1007
|
}
|
|
1004
1008
|
);
|
|
1005
1009
|
}, [learnMoreSlot, learnMoreAction]);
|
|
1006
|
-
const renderUtilityImage = React.useCallback(
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
1010
|
+
const renderUtilityImage = React.useCallback(
|
|
1011
|
+
(utility) => {
|
|
1012
|
+
if (utility.imageSlot) return utility.imageSlot;
|
|
1013
|
+
if (utility.image) {
|
|
1014
|
+
return /* @__PURE__ */ jsx(
|
|
1015
|
+
Img,
|
|
1016
|
+
{
|
|
1017
|
+
src: utility.image,
|
|
1018
|
+
alt: utility.imageAlt || (typeof utility.title === "string" ? utility.title : "Utility image"),
|
|
1019
|
+
className: cn(
|
|
1020
|
+
"aspect-video w-full object-cover",
|
|
1021
|
+
utility.imageClassName
|
|
1022
|
+
),
|
|
1023
|
+
loading: "lazy",
|
|
1024
|
+
optixFlowConfig
|
|
1025
|
+
}
|
|
1026
|
+
);
|
|
1027
|
+
}
|
|
1028
|
+
return null;
|
|
1029
|
+
},
|
|
1030
|
+
[optixFlowConfig]
|
|
1031
|
+
);
|
|
1022
1032
|
const utilitiesContent = useMemo(() => {
|
|
1023
1033
|
if (utilitiesSlot) return utilitiesSlot;
|
|
1024
1034
|
if (!utilities || utilities.length === 0) return null;
|
|
1025
|
-
return utilities.map((utility, index) => /* @__PURE__ */ jsxs(
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
|
|
1031
|
-
|
|
1035
|
+
return utilities.map((utility, index) => /* @__PURE__ */ jsxs(
|
|
1036
|
+
Card,
|
|
1037
|
+
{
|
|
1038
|
+
className: cn("overflow-hidden pt-0", cardClassName, utility.className),
|
|
1039
|
+
children: [
|
|
1040
|
+
renderUtilityImage(utility),
|
|
1041
|
+
/* @__PURE__ */ jsxs("div", { className: "p-5", children: [
|
|
1042
|
+
utility.title && (typeof utility.title === "string" ? /* @__PURE__ */ jsx("p", { className: cn("mb-1 font-medium", utility.titleClassName), children: utility.title }) : /* @__PURE__ */ jsx("div", { className: cn("mb-1 font-medium", utility.titleClassName), children: utility.title })),
|
|
1043
|
+
utility.description && (typeof utility.description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("", utility.descriptionClassName), children: utility.description }) : /* @__PURE__ */ jsx("div", { className: cn("", utility.descriptionClassName), children: utility.description }))
|
|
1044
|
+
] })
|
|
1045
|
+
]
|
|
1046
|
+
},
|
|
1047
|
+
index
|
|
1048
|
+
));
|
|
1032
1049
|
}, [utilitiesSlot, utilities, cardClassName, renderUtilityImage]);
|
|
1033
1050
|
return /* @__PURE__ */ jsxs(
|
|
1034
1051
|
Section,
|
|
@@ -1042,20 +1059,50 @@ function FeatureUtilityCardsGrid({
|
|
|
1042
1059
|
containerClassName: cn("max-w-7xl", containerClassName),
|
|
1043
1060
|
children: [
|
|
1044
1061
|
(label || labelIcon || labelIconName || learnMoreSlot || learnMoreAction) && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
1045
|
-
/* @__PURE__ */ jsxs(
|
|
1046
|
-
|
|
1047
|
-
|
|
1048
|
-
|
|
1049
|
-
|
|
1050
|
-
|
|
1051
|
-
|
|
1062
|
+
/* @__PURE__ */ jsxs(
|
|
1063
|
+
"div",
|
|
1064
|
+
{
|
|
1065
|
+
className: cn(
|
|
1066
|
+
"flex items-center justify-between text-sm",
|
|
1067
|
+
headerClassName
|
|
1068
|
+
),
|
|
1069
|
+
children: [
|
|
1070
|
+
(label || labelIcon || labelIconName) && /* @__PURE__ */ jsxs("div", { className: cn("flex items-center gap-1 ", labelClassName), children: [
|
|
1071
|
+
renderLabelIcon,
|
|
1072
|
+
label && (typeof label === "string" ? /* @__PURE__ */ jsx("p", { children: label }) : /* @__PURE__ */ jsx("div", { children: label }))
|
|
1073
|
+
] }),
|
|
1074
|
+
learnMoreContent
|
|
1075
|
+
]
|
|
1076
|
+
}
|
|
1077
|
+
),
|
|
1052
1078
|
/* @__PURE__ */ jsx(Separator, { className: "mt-3 mb-8" })
|
|
1053
1079
|
] }),
|
|
1054
1080
|
(title || description) && /* @__PURE__ */ jsxs("div", { className: "flex flex-col justify-between gap-6 md:flex-row", children: [
|
|
1055
|
-
title && (typeof title === "string" ? /* @__PURE__ */ jsx(
|
|
1081
|
+
title && (typeof title === "string" ? /* @__PURE__ */ jsx(
|
|
1082
|
+
"h2",
|
|
1083
|
+
{
|
|
1084
|
+
className: cn("text-3xl font-medium md:w-1/2", titleClassName),
|
|
1085
|
+
children: title
|
|
1086
|
+
}
|
|
1087
|
+
) : /* @__PURE__ */ jsx(
|
|
1088
|
+
"div",
|
|
1089
|
+
{
|
|
1090
|
+
className: cn("text-3xl font-medium md:w-1/2", titleClassName),
|
|
1091
|
+
children: title
|
|
1092
|
+
}
|
|
1093
|
+
)),
|
|
1056
1094
|
description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("md:w-1/2", descriptionClassName), children: description }) : /* @__PURE__ */ jsx("div", { className: cn("md:w-1/2", descriptionClassName), children: description }))
|
|
1057
1095
|
] }),
|
|
1058
|
-
(utilitiesSlot || utilities && utilities.length > 0) && /* @__PURE__ */ jsx(
|
|
1096
|
+
(utilitiesSlot || utilities && utilities.length > 0) && /* @__PURE__ */ jsx(
|
|
1097
|
+
"div",
|
|
1098
|
+
{
|
|
1099
|
+
className: cn(
|
|
1100
|
+
"mt-11 grid w-full grid-cols-1 gap-4 md:grid-cols-2 lg:grid-cols-3",
|
|
1101
|
+
gridClassName
|
|
1102
|
+
),
|
|
1103
|
+
children: utilitiesContent
|
|
1104
|
+
}
|
|
1105
|
+
)
|
|
1059
1106
|
]
|
|
1060
1107
|
}
|
|
1061
1108
|
);
|
|
@@ -954,7 +954,7 @@ function AccordionItem({
|
|
|
954
954
|
AccordionPrimitive__namespace.Item,
|
|
955
955
|
{
|
|
956
956
|
"data-slot": "accordion-item",
|
|
957
|
-
className: cn("border-b
|
|
957
|
+
className: cn("border-b ", className),
|
|
958
958
|
...props
|
|
959
959
|
}
|
|
960
960
|
);
|
|
@@ -975,7 +975,13 @@ function AccordionTrigger({
|
|
|
975
975
|
...props,
|
|
976
976
|
children: [
|
|
977
977
|
children,
|
|
978
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
978
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
979
|
+
DynamicIcon,
|
|
980
|
+
{
|
|
981
|
+
name: "lucide/chevron-down",
|
|
982
|
+
className: "text-muted-foreground pointer-events-none size-4 shrink-0 translate-y-0.5 transition-transform duration-200"
|
|
983
|
+
}
|
|
984
|
+
)
|
|
979
985
|
]
|
|
980
986
|
}
|
|
981
987
|
) });
|
|
@@ -928,7 +928,7 @@ function AccordionItem({
|
|
|
928
928
|
AccordionPrimitive.Item,
|
|
929
929
|
{
|
|
930
930
|
"data-slot": "accordion-item",
|
|
931
|
-
className: cn("border-b
|
|
931
|
+
className: cn("border-b ", className),
|
|
932
932
|
...props
|
|
933
933
|
}
|
|
934
934
|
);
|
|
@@ -949,7 +949,13 @@ function AccordionTrigger({
|
|
|
949
949
|
...props,
|
|
950
950
|
children: [
|
|
951
951
|
children,
|
|
952
|
-
/* @__PURE__ */ jsx(
|
|
952
|
+
/* @__PURE__ */ jsx(
|
|
953
|
+
DynamicIcon,
|
|
954
|
+
{
|
|
955
|
+
name: "lucide/chevron-down",
|
|
956
|
+
className: "text-muted-foreground pointer-events-none size-4 shrink-0 translate-y-0.5 transition-transform duration-200"
|
|
957
|
+
}
|
|
958
|
+
)
|
|
953
959
|
]
|
|
954
960
|
}
|
|
955
961
|
) });
|
|
@@ -949,7 +949,7 @@ function AccordionItem({
|
|
|
949
949
|
AccordionPrimitive__namespace.Item,
|
|
950
950
|
{
|
|
951
951
|
"data-slot": "accordion-item",
|
|
952
|
-
className: cn("border-b
|
|
952
|
+
className: cn("border-b ", className),
|
|
953
953
|
...props
|
|
954
954
|
}
|
|
955
955
|
);
|
|
@@ -970,7 +970,13 @@ function AccordionTrigger({
|
|
|
970
970
|
...props,
|
|
971
971
|
children: [
|
|
972
972
|
children,
|
|
973
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
973
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
974
|
+
DynamicIcon,
|
|
975
|
+
{
|
|
976
|
+
name: "lucide/chevron-down",
|
|
977
|
+
className: "text-muted-foreground pointer-events-none size-4 shrink-0 translate-y-0.5 transition-transform duration-200"
|
|
978
|
+
}
|
|
979
|
+
)
|
|
974
980
|
]
|
|
975
981
|
}
|
|
976
982
|
) });
|
|
@@ -925,7 +925,7 @@ function AccordionItem({
|
|
|
925
925
|
AccordionPrimitive.Item,
|
|
926
926
|
{
|
|
927
927
|
"data-slot": "accordion-item",
|
|
928
|
-
className: cn("border-b
|
|
928
|
+
className: cn("border-b ", className),
|
|
929
929
|
...props
|
|
930
930
|
}
|
|
931
931
|
);
|
|
@@ -946,7 +946,13 @@ function AccordionTrigger({
|
|
|
946
946
|
...props,
|
|
947
947
|
children: [
|
|
948
948
|
children,
|
|
949
|
-
/* @__PURE__ */ jsx(
|
|
949
|
+
/* @__PURE__ */ jsx(
|
|
950
|
+
DynamicIcon,
|
|
951
|
+
{
|
|
952
|
+
name: "lucide/chevron-down",
|
|
953
|
+
className: "text-muted-foreground pointer-events-none size-4 shrink-0 translate-y-0.5 transition-transform duration-200"
|
|
954
|
+
}
|
|
955
|
+
)
|
|
950
956
|
]
|
|
951
957
|
}
|
|
952
958
|
) });
|