@opensite/ui 1.6.2 → 1.6.3
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-category-image-cards.cjs +27 -5
- package/dist/feature-category-image-cards.js +27 -5
- package/dist/feature-utility-cards-grid.cjs +1 -1
- package/dist/feature-utility-cards-grid.js +1 -1
- package/dist/footer-accordion-social.cjs +3 -1
- package/dist/footer-accordion-social.d.cts +5 -1
- package/dist/footer-accordion-social.d.ts +5 -1
- package/dist/footer-accordion-social.js +3 -1
- package/dist/footer-info-cards-accordion.cjs +39 -55
- package/dist/footer-info-cards-accordion.d.cts +5 -1
- package/dist/footer-info-cards-accordion.d.ts +5 -1
- package/dist/footer-info-cards-accordion.js +39 -55
- package/dist/hero-logo-centered-screenshot.cjs +61 -40
- package/dist/hero-logo-centered-screenshot.d.cts +1 -1
- package/dist/hero-logo-centered-screenshot.d.ts +1 -1
- package/dist/hero-logo-centered-screenshot.js +61 -40
- package/dist/hero-overlay-cta-grid.cjs +14 -8
- package/dist/hero-overlay-cta-grid.js +14 -8
- package/dist/hero-pattern-badge-logos.cjs +66 -56
- package/dist/hero-pattern-badge-logos.d.cts +1 -4
- package/dist/hero-pattern-badge-logos.d.ts +1 -4
- package/dist/hero-pattern-badge-logos.js +66 -56
- package/dist/hero-split-icon-cards.cjs +68 -17
- package/dist/hero-split-icon-cards.d.cts +7 -1
- package/dist/hero-split-icon-cards.d.ts +7 -1
- package/dist/hero-split-icon-cards.js +68 -17
- package/dist/registry.cjs +279 -131
- package/dist/registry.js +279 -131
- package/package.json +1 -1
|
@@ -12,32 +12,6 @@ import { Img } from '@page-speed/img';
|
|
|
12
12
|
function cn(...inputs) {
|
|
13
13
|
return twMerge(clsx(inputs));
|
|
14
14
|
}
|
|
15
|
-
function getTextColor(parentBg, variant = "default", options) {
|
|
16
|
-
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
17
|
-
if (isDark) {
|
|
18
|
-
switch (variant) {
|
|
19
|
-
case "default":
|
|
20
|
-
return "text-foreground";
|
|
21
|
-
case "muted":
|
|
22
|
-
return "text-foreground/80";
|
|
23
|
-
case "subtle":
|
|
24
|
-
return "text-foreground/60";
|
|
25
|
-
case "accent":
|
|
26
|
-
return "text-accent-foreground";
|
|
27
|
-
}
|
|
28
|
-
} else {
|
|
29
|
-
switch (variant) {
|
|
30
|
-
case "default":
|
|
31
|
-
return "text-foreground";
|
|
32
|
-
case "muted":
|
|
33
|
-
return "text-muted-foreground";
|
|
34
|
-
case "subtle":
|
|
35
|
-
return "text-muted-foreground/70";
|
|
36
|
-
case "accent":
|
|
37
|
-
return "text-primary";
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
15
|
var badgeVariants = cva(
|
|
42
16
|
"inline-flex items-center justify-center rounded-full border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden",
|
|
43
17
|
{
|
|
@@ -871,14 +845,13 @@ function HeroPatternBadgeLogos({
|
|
|
871
845
|
actionsSlot,
|
|
872
846
|
logos,
|
|
873
847
|
logosSlot,
|
|
874
|
-
logosTagline
|
|
875
|
-
backgroundImageUrl = "https://cdn.ing/assets/files/record/286186/nbdflpgp4ostrno079hygibsflp3",
|
|
848
|
+
logosTagline,
|
|
876
849
|
background,
|
|
877
|
-
|
|
850
|
+
containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
|
|
851
|
+
spacing = "py-12 md:py-32",
|
|
878
852
|
pattern,
|
|
879
853
|
patternOpacity,
|
|
880
854
|
className,
|
|
881
|
-
containerClassName,
|
|
882
855
|
contentClassName,
|
|
883
856
|
headingClassName,
|
|
884
857
|
descriptionClassName,
|
|
@@ -892,7 +865,14 @@ function HeroPatternBadgeLogos({
|
|
|
892
865
|
if (actionsSlot) return actionsSlot;
|
|
893
866
|
if (!actions || actions.length === 0) return null;
|
|
894
867
|
return actions.map((action, index) => {
|
|
895
|
-
const {
|
|
868
|
+
const {
|
|
869
|
+
label,
|
|
870
|
+
icon,
|
|
871
|
+
iconAfter,
|
|
872
|
+
children,
|
|
873
|
+
className: actionClassName,
|
|
874
|
+
...pressableProps
|
|
875
|
+
} = action;
|
|
896
876
|
return /* @__PURE__ */ jsx(
|
|
897
877
|
Pressable,
|
|
898
878
|
{
|
|
@@ -949,7 +929,7 @@ function HeroPatternBadgeLogos({
|
|
|
949
929
|
return /* @__PURE__ */ jsx("div", { className: logoClassName, children: imgElement }, index);
|
|
950
930
|
});
|
|
951
931
|
}, [logosSlot, logos, optixFlowConfig]);
|
|
952
|
-
return /* @__PURE__ */
|
|
932
|
+
return /* @__PURE__ */ jsx(
|
|
953
933
|
Section,
|
|
954
934
|
{
|
|
955
935
|
background,
|
|
@@ -957,31 +937,61 @@ function HeroPatternBadgeLogos({
|
|
|
957
937
|
pattern,
|
|
958
938
|
patternOpacity,
|
|
959
939
|
className: cn("relative p-0", className),
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
940
|
+
containerClassName,
|
|
941
|
+
children: /* @__PURE__ */ jsx("div", { className: cn("relative"), children: /* @__PURE__ */ jsx("div", { className: "mx-auto flex max-w-5xl flex-col items-center", children: /* @__PURE__ */ jsxs(
|
|
942
|
+
"div",
|
|
943
|
+
{
|
|
944
|
+
className: cn(
|
|
945
|
+
"z-10 mx-auto flex max-w-5xl flex-col items-center gap-6 text-center",
|
|
946
|
+
contentClassName
|
|
947
|
+
),
|
|
948
|
+
children: [
|
|
949
|
+
badge && /* @__PURE__ */ jsx("div", { className: badgeClassName, children: typeof badge === "string" ? /* @__PURE__ */ jsx(Badge, { variant: "default", children: badge }) : badge }),
|
|
950
|
+
/* @__PURE__ */ jsxs("div", { children: [
|
|
951
|
+
heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
|
|
952
|
+
"h1",
|
|
953
|
+
{
|
|
954
|
+
className: cn(
|
|
955
|
+
"mb-6 text-4xl font-bold tracking-tight text-balance md:text-5xl lg:text-7xl",
|
|
956
|
+
headingClassName
|
|
957
|
+
),
|
|
958
|
+
children: heading
|
|
959
|
+
}
|
|
960
|
+
) : /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading })),
|
|
961
|
+
description && (typeof description === "string" ? /* @__PURE__ */ jsx(
|
|
962
|
+
"p",
|
|
963
|
+
{
|
|
964
|
+
className: cn(
|
|
965
|
+
"mx-auto max-w-2xl md:text-lg lg:text-xl text-balance",
|
|
966
|
+
descriptionClassName
|
|
967
|
+
),
|
|
968
|
+
children: description
|
|
969
|
+
}
|
|
970
|
+
) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description }))
|
|
971
|
+
] }),
|
|
972
|
+
(actionsSlot || actions && actions.length > 0) && /* @__PURE__ */ jsx(
|
|
973
|
+
"div",
|
|
974
|
+
{
|
|
975
|
+
className: cn("mt-6 flex items-center gap-4", actionsClassName),
|
|
976
|
+
children: renderActions
|
|
977
|
+
}
|
|
968
978
|
),
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
]
|
|
983
|
-
|
|
984
|
-
|
|
979
|
+
(logosSlot || logos && logos.length > 0 || logosTagline) && /* @__PURE__ */ jsxs(
|
|
980
|
+
"div",
|
|
981
|
+
{
|
|
982
|
+
className: cn(
|
|
983
|
+
"mt-12 flex flex-col items-center gap-4 lg:mt-16",
|
|
984
|
+
logosClassName
|
|
985
|
+
),
|
|
986
|
+
children: [
|
|
987
|
+
logosTagline && (typeof logosTagline === "string" ? /* @__PURE__ */ jsx("p", { className: cn("text-center text-sm"), children: logosTagline }) : logosTagline),
|
|
988
|
+
/* @__PURE__ */ jsx("div", { className: "grid grid-cols-2 place-items-center items-center justify-center gap-6 opacity-80 sm:grid-cols-4 sm:gap-4", children: renderLogos })
|
|
989
|
+
]
|
|
990
|
+
}
|
|
991
|
+
)
|
|
992
|
+
]
|
|
993
|
+
}
|
|
994
|
+
) }) })
|
|
985
995
|
}
|
|
986
996
|
);
|
|
987
997
|
}
|
|
@@ -983,28 +983,22 @@ function HeroSplitIconCards({
|
|
|
983
983
|
cardItems,
|
|
984
984
|
cardsSlot,
|
|
985
985
|
background,
|
|
986
|
-
verticalSpacing,
|
|
987
986
|
pattern,
|
|
988
987
|
patternOpacity,
|
|
989
988
|
className,
|
|
990
989
|
contentClassName,
|
|
991
990
|
headingClassName,
|
|
992
|
-
descriptionClassName
|
|
991
|
+
descriptionClassName,
|
|
992
|
+
verticalSpacing,
|
|
993
|
+
containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
|
|
994
|
+
spacing = "py-12 md:py-32"
|
|
993
995
|
}) {
|
|
994
996
|
const renderActions = React.useMemo(() => {
|
|
995
997
|
if (actionsSlot) return actionsSlot;
|
|
996
998
|
if (!primaryCta && !secondaryCta) return null;
|
|
997
999
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap gap-4", children: [
|
|
998
1000
|
primaryCta && /* @__PURE__ */ jsxRuntime.jsx(Pressable, { href: primaryCta.href, size: "lg", variant: "default", children: primaryCta.label }),
|
|
999
|
-
secondaryCta && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1000
|
-
Pressable,
|
|
1001
|
-
{
|
|
1002
|
-
href: secondaryCta.href,
|
|
1003
|
-
size: "lg",
|
|
1004
|
-
variant: "outline",
|
|
1005
|
-
children: secondaryCta.label
|
|
1006
|
-
}
|
|
1007
|
-
)
|
|
1001
|
+
secondaryCta && /* @__PURE__ */ jsxRuntime.jsx(Pressable, { href: secondaryCta.href, size: "lg", variant: "outline", children: secondaryCta.label })
|
|
1008
1002
|
] });
|
|
1009
1003
|
}, [actionsSlot, primaryCta, secondaryCta]);
|
|
1010
1004
|
const renderCards = React.useMemo(() => {
|
|
@@ -1012,10 +1006,29 @@ function HeroSplitIconCards({
|
|
|
1012
1006
|
if (!cardItems || cardItems.length === 0) return null;
|
|
1013
1007
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-1 gap-4", children: cardItems.map((item, idx) => {
|
|
1014
1008
|
const card = /* @__PURE__ */ jsxRuntime.jsx(Card, { className: "h-full border-border/60 px-0 py-0", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-4 p-6", children: [
|
|
1015
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1009
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1010
|
+
"div",
|
|
1011
|
+
{
|
|
1012
|
+
className: cn(
|
|
1013
|
+
"flex h-14 w-14 items-center justify-center rounded-xl",
|
|
1014
|
+
`${getAccentColor(background)}/10`,
|
|
1015
|
+
getAccentColor(background)
|
|
1016
|
+
),
|
|
1017
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: item.icon, size: 24 })
|
|
1018
|
+
}
|
|
1019
|
+
),
|
|
1016
1020
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
1017
1021
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-lg font-bold ", children: item.title }),
|
|
1018
|
-
item.subtitle ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
1022
|
+
item.subtitle ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
1023
|
+
"p",
|
|
1024
|
+
{
|
|
1025
|
+
className: cn(
|
|
1026
|
+
"mt-2 text-sm",
|
|
1027
|
+
getTextColor(background, "muted")
|
|
1028
|
+
),
|
|
1029
|
+
children: item.subtitle
|
|
1030
|
+
}
|
|
1031
|
+
) : null
|
|
1019
1032
|
] })
|
|
1020
1033
|
] }) });
|
|
1021
1034
|
return item.href ? /* @__PURE__ */ jsxRuntime.jsx(Pressable, { href: item.href, className: "block", children: card }, idx) : /* @__PURE__ */ jsxRuntime.jsx("div", { children: card }, idx);
|
|
@@ -1025,15 +1038,53 @@ function HeroSplitIconCards({
|
|
|
1025
1038
|
Section,
|
|
1026
1039
|
{
|
|
1027
1040
|
background,
|
|
1028
|
-
spacing: verticalSpacing,
|
|
1041
|
+
spacing: verticalSpacing || spacing,
|
|
1029
1042
|
pattern,
|
|
1030
1043
|
patternOpacity,
|
|
1031
1044
|
className: cn("overflow-hidden", className),
|
|
1045
|
+
containerClassName,
|
|
1032
1046
|
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 gap-10 lg:grid-cols-2 lg:items-center", children: [
|
|
1033
1047
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("space-y-6", contentClassName), children: children ? children : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
1034
|
-
eyebrow && (typeof eyebrow === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
1035
|
-
|
|
1036
|
-
|
|
1048
|
+
eyebrow && (typeof eyebrow === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
1049
|
+
"p",
|
|
1050
|
+
{
|
|
1051
|
+
className: cn(
|
|
1052
|
+
"text-xs font-semibold uppercase tracking-[0.25em]",
|
|
1053
|
+
getAccentColor(background)
|
|
1054
|
+
),
|
|
1055
|
+
children: eyebrow
|
|
1056
|
+
}
|
|
1057
|
+
) : eyebrow),
|
|
1058
|
+
heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
1059
|
+
"h2",
|
|
1060
|
+
{
|
|
1061
|
+
className: cn(
|
|
1062
|
+
"text-3xl font-bold md:text-4xl",
|
|
1063
|
+
headingClassName
|
|
1064
|
+
),
|
|
1065
|
+
children: heading
|
|
1066
|
+
}
|
|
1067
|
+
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
1068
|
+
"h2",
|
|
1069
|
+
{
|
|
1070
|
+
className: cn(
|
|
1071
|
+
"text-3xl font-bold md:text-4xl",
|
|
1072
|
+
headingClassName
|
|
1073
|
+
),
|
|
1074
|
+
children: heading
|
|
1075
|
+
}
|
|
1076
|
+
)),
|
|
1077
|
+
description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
1078
|
+
"p",
|
|
1079
|
+
{
|
|
1080
|
+
className: cn(
|
|
1081
|
+
"text-lg",
|
|
1082
|
+
getTextColor(background, "muted"),
|
|
1083
|
+
descriptionClassName
|
|
1084
|
+
),
|
|
1085
|
+
children: description
|
|
1086
|
+
}
|
|
1087
|
+
) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description })),
|
|
1037
1088
|
renderActions
|
|
1038
1089
|
] }) }),
|
|
1039
1090
|
renderCards
|
|
@@ -99,12 +99,18 @@ interface HeroSplitIconCardsProps {
|
|
|
99
99
|
* Additional CSS classes for the description
|
|
100
100
|
*/
|
|
101
101
|
descriptionClassName?: string;
|
|
102
|
+
/**
|
|
103
|
+
* Additional CSS classes for the container
|
|
104
|
+
*/
|
|
105
|
+
containerClassName?: string;
|
|
106
|
+
/** Section spacing variant */
|
|
107
|
+
spacing?: SectionSpacing;
|
|
102
108
|
}
|
|
103
109
|
/**
|
|
104
110
|
* HeroSplitIconCards - Two-column hero layout with text content on the left and
|
|
105
111
|
* a stacked list of icon cards on the right. Ideal for service pages that need
|
|
106
112
|
* an explanatory hero plus quick benefit callouts.
|
|
107
113
|
*/
|
|
108
|
-
declare function HeroSplitIconCards({ eyebrow, heading, description, primaryCta, secondaryCta, actionsSlot, children, cardItems, cardsSlot, background,
|
|
114
|
+
declare function HeroSplitIconCards({ eyebrow, heading, description, primaryCta, secondaryCta, actionsSlot, children, cardItems, cardsSlot, background, pattern, patternOpacity, className, contentClassName, headingClassName, descriptionClassName, verticalSpacing, containerClassName, spacing, }: HeroSplitIconCardsProps): React.JSX.Element;
|
|
109
115
|
|
|
110
116
|
export { HeroSplitIconCards, type HeroSplitIconCardsProps };
|
|
@@ -99,12 +99,18 @@ interface HeroSplitIconCardsProps {
|
|
|
99
99
|
* Additional CSS classes for the description
|
|
100
100
|
*/
|
|
101
101
|
descriptionClassName?: string;
|
|
102
|
+
/**
|
|
103
|
+
* Additional CSS classes for the container
|
|
104
|
+
*/
|
|
105
|
+
containerClassName?: string;
|
|
106
|
+
/** Section spacing variant */
|
|
107
|
+
spacing?: SectionSpacing;
|
|
102
108
|
}
|
|
103
109
|
/**
|
|
104
110
|
* HeroSplitIconCards - Two-column hero layout with text content on the left and
|
|
105
111
|
* a stacked list of icon cards on the right. Ideal for service pages that need
|
|
106
112
|
* an explanatory hero plus quick benefit callouts.
|
|
107
113
|
*/
|
|
108
|
-
declare function HeroSplitIconCards({ eyebrow, heading, description, primaryCta, secondaryCta, actionsSlot, children, cardItems, cardsSlot, background,
|
|
114
|
+
declare function HeroSplitIconCards({ eyebrow, heading, description, primaryCta, secondaryCta, actionsSlot, children, cardItems, cardsSlot, background, pattern, patternOpacity, className, contentClassName, headingClassName, descriptionClassName, verticalSpacing, containerClassName, spacing, }: HeroSplitIconCardsProps): React.JSX.Element;
|
|
109
115
|
|
|
110
116
|
export { HeroSplitIconCards, type HeroSplitIconCardsProps };
|
|
@@ -962,28 +962,22 @@ function HeroSplitIconCards({
|
|
|
962
962
|
cardItems,
|
|
963
963
|
cardsSlot,
|
|
964
964
|
background,
|
|
965
|
-
verticalSpacing,
|
|
966
965
|
pattern,
|
|
967
966
|
patternOpacity,
|
|
968
967
|
className,
|
|
969
968
|
contentClassName,
|
|
970
969
|
headingClassName,
|
|
971
|
-
descriptionClassName
|
|
970
|
+
descriptionClassName,
|
|
971
|
+
verticalSpacing,
|
|
972
|
+
containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
|
|
973
|
+
spacing = "py-12 md:py-32"
|
|
972
974
|
}) {
|
|
973
975
|
const renderActions = useMemo(() => {
|
|
974
976
|
if (actionsSlot) return actionsSlot;
|
|
975
977
|
if (!primaryCta && !secondaryCta) return null;
|
|
976
978
|
return /* @__PURE__ */ jsxs("div", { className: "flex flex-wrap gap-4", children: [
|
|
977
979
|
primaryCta && /* @__PURE__ */ jsx(Pressable, { href: primaryCta.href, size: "lg", variant: "default", children: primaryCta.label }),
|
|
978
|
-
secondaryCta && /* @__PURE__ */ jsx(
|
|
979
|
-
Pressable,
|
|
980
|
-
{
|
|
981
|
-
href: secondaryCta.href,
|
|
982
|
-
size: "lg",
|
|
983
|
-
variant: "outline",
|
|
984
|
-
children: secondaryCta.label
|
|
985
|
-
}
|
|
986
|
-
)
|
|
980
|
+
secondaryCta && /* @__PURE__ */ jsx(Pressable, { href: secondaryCta.href, size: "lg", variant: "outline", children: secondaryCta.label })
|
|
987
981
|
] });
|
|
988
982
|
}, [actionsSlot, primaryCta, secondaryCta]);
|
|
989
983
|
const renderCards = useMemo(() => {
|
|
@@ -991,10 +985,29 @@ function HeroSplitIconCards({
|
|
|
991
985
|
if (!cardItems || cardItems.length === 0) return null;
|
|
992
986
|
return /* @__PURE__ */ jsx("div", { className: "grid grid-cols-1 gap-4", children: cardItems.map((item, idx) => {
|
|
993
987
|
const card = /* @__PURE__ */ jsx(Card, { className: "h-full border-border/60 px-0 py-0", children: /* @__PURE__ */ jsxs("div", { className: "flex items-start gap-4 p-6", children: [
|
|
994
|
-
/* @__PURE__ */ jsx(
|
|
988
|
+
/* @__PURE__ */ jsx(
|
|
989
|
+
"div",
|
|
990
|
+
{
|
|
991
|
+
className: cn(
|
|
992
|
+
"flex h-14 w-14 items-center justify-center rounded-xl",
|
|
993
|
+
`${getAccentColor(background)}/10`,
|
|
994
|
+
getAccentColor(background)
|
|
995
|
+
),
|
|
996
|
+
children: /* @__PURE__ */ jsx(DynamicIcon, { name: item.icon, size: 24 })
|
|
997
|
+
}
|
|
998
|
+
),
|
|
995
999
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
996
1000
|
/* @__PURE__ */ jsx("h3", { className: "text-lg font-bold ", children: item.title }),
|
|
997
|
-
item.subtitle ? /* @__PURE__ */ jsx(
|
|
1001
|
+
item.subtitle ? /* @__PURE__ */ jsx(
|
|
1002
|
+
"p",
|
|
1003
|
+
{
|
|
1004
|
+
className: cn(
|
|
1005
|
+
"mt-2 text-sm",
|
|
1006
|
+
getTextColor(background, "muted")
|
|
1007
|
+
),
|
|
1008
|
+
children: item.subtitle
|
|
1009
|
+
}
|
|
1010
|
+
) : null
|
|
998
1011
|
] })
|
|
999
1012
|
] }) });
|
|
1000
1013
|
return item.href ? /* @__PURE__ */ jsx(Pressable, { href: item.href, className: "block", children: card }, idx) : /* @__PURE__ */ jsx("div", { children: card }, idx);
|
|
@@ -1004,15 +1017,53 @@ function HeroSplitIconCards({
|
|
|
1004
1017
|
Section,
|
|
1005
1018
|
{
|
|
1006
1019
|
background,
|
|
1007
|
-
spacing: verticalSpacing,
|
|
1020
|
+
spacing: verticalSpacing || spacing,
|
|
1008
1021
|
pattern,
|
|
1009
1022
|
patternOpacity,
|
|
1010
1023
|
className: cn("overflow-hidden", className),
|
|
1024
|
+
containerClassName,
|
|
1011
1025
|
children: /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-1 gap-10 lg:grid-cols-2 lg:items-center", children: [
|
|
1012
1026
|
/* @__PURE__ */ jsx("div", { className: cn("space-y-6", contentClassName), children: children ? children : /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
1013
|
-
eyebrow && (typeof eyebrow === "string" ? /* @__PURE__ */ jsx(
|
|
1014
|
-
|
|
1015
|
-
|
|
1027
|
+
eyebrow && (typeof eyebrow === "string" ? /* @__PURE__ */ jsx(
|
|
1028
|
+
"p",
|
|
1029
|
+
{
|
|
1030
|
+
className: cn(
|
|
1031
|
+
"text-xs font-semibold uppercase tracking-[0.25em]",
|
|
1032
|
+
getAccentColor(background)
|
|
1033
|
+
),
|
|
1034
|
+
children: eyebrow
|
|
1035
|
+
}
|
|
1036
|
+
) : eyebrow),
|
|
1037
|
+
heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
|
|
1038
|
+
"h2",
|
|
1039
|
+
{
|
|
1040
|
+
className: cn(
|
|
1041
|
+
"text-3xl font-bold md:text-4xl",
|
|
1042
|
+
headingClassName
|
|
1043
|
+
),
|
|
1044
|
+
children: heading
|
|
1045
|
+
}
|
|
1046
|
+
) : /* @__PURE__ */ jsx(
|
|
1047
|
+
"h2",
|
|
1048
|
+
{
|
|
1049
|
+
className: cn(
|
|
1050
|
+
"text-3xl font-bold md:text-4xl",
|
|
1051
|
+
headingClassName
|
|
1052
|
+
),
|
|
1053
|
+
children: heading
|
|
1054
|
+
}
|
|
1055
|
+
)),
|
|
1056
|
+
description && (typeof description === "string" ? /* @__PURE__ */ jsx(
|
|
1057
|
+
"p",
|
|
1058
|
+
{
|
|
1059
|
+
className: cn(
|
|
1060
|
+
"text-lg",
|
|
1061
|
+
getTextColor(background, "muted"),
|
|
1062
|
+
descriptionClassName
|
|
1063
|
+
),
|
|
1064
|
+
children: description
|
|
1065
|
+
}
|
|
1066
|
+
) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description })),
|
|
1016
1067
|
renderActions
|
|
1017
1068
|
] }) }),
|
|
1018
1069
|
renderCards
|