@opensite/ui 1.4.0 → 1.4.1
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/components.cjs +90 -90
- package/dist/components.js +90 -90
- package/dist/feature-bento-image-grid.cjs +219 -114
- package/dist/feature-bento-image-grid.js +219 -114
- package/dist/feature-icon-grid-bordered.cjs +1 -1
- package/dist/feature-icon-grid-bordered.js +1 -1
- package/dist/footer-accordion-social.cjs +6 -6
- package/dist/footer-accordion-social.js +6 -6
- package/dist/footer-animated-social.cjs +7 -7
- package/dist/footer-animated-social.js +7 -7
- package/dist/footer-background-card.cjs +13 -13
- package/dist/footer-background-card.js +13 -13
- package/dist/footer-brand-description.cjs +12 -10
- package/dist/footer-brand-description.d.cts +5 -1
- package/dist/footer-brand-description.d.ts +5 -1
- package/dist/footer-brand-description.js +12 -10
- package/dist/footer-brand-links-contact.cjs +9 -9
- package/dist/footer-brand-links-contact.js +9 -9
- package/dist/footer-comprehensive-links.cjs +1 -1
- package/dist/footer-comprehensive-links.js +1 -1
- package/dist/footer-contact-card.cjs +7 -39
- package/dist/footer-contact-card.js +7 -39
- package/dist/footer-cta-banner.cjs +10 -10
- package/dist/footer-cta-banner.js +10 -10
- package/dist/footer-cta-social.cjs +7 -7
- package/dist/footer-cta-social.js +7 -7
- package/dist/footer-info-cards-accordion.cjs +9 -9
- package/dist/footer-info-cards-accordion.js +9 -9
- package/dist/footer-links-grid.cjs +1 -1
- package/dist/footer-links-grid.js +1 -1
- package/dist/footer-nav-social.cjs +8 -8
- package/dist/footer-nav-social.js +8 -8
- package/dist/footer-newsletter-contact.cjs +5 -5
- package/dist/footer-newsletter-contact.js +5 -5
- package/dist/footer-newsletter-grid.cjs +9 -9
- package/dist/footer-newsletter-grid.js +9 -9
- package/dist/footer-newsletter-minimal.cjs +6 -6
- package/dist/footer-newsletter-minimal.js +6 -6
- package/dist/footer-simple-centered.cjs +6 -6
- package/dist/footer-simple-centered.js +6 -6
- package/dist/footer-social-apps.cjs +2 -2
- package/dist/footer-social-apps.js +2 -2
- package/dist/footer-social-newsletter.cjs +2 -2
- package/dist/footer-social-newsletter.js +2 -2
- package/dist/footer-split-image-accordion.cjs +6 -6
- package/dist/footer-split-image-accordion.js +6 -6
- package/dist/index.cjs +90 -90
- package/dist/index.js +90 -90
- package/dist/registry.cjs +346 -215
- package/dist/registry.js +346 -215
- package/package.json +1 -1
|
@@ -11,32 +11,6 @@ import { Img } from '@page-speed/img';
|
|
|
11
11
|
function cn(...inputs) {
|
|
12
12
|
return twMerge(clsx(inputs));
|
|
13
13
|
}
|
|
14
|
-
function getTextColor(parentBg, variant = "default", options) {
|
|
15
|
-
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
16
|
-
if (isDark) {
|
|
17
|
-
switch (variant) {
|
|
18
|
-
case "default":
|
|
19
|
-
return "text-foreground";
|
|
20
|
-
case "muted":
|
|
21
|
-
return "text-foreground/80";
|
|
22
|
-
case "subtle":
|
|
23
|
-
return "text-foreground/60";
|
|
24
|
-
case "accent":
|
|
25
|
-
return "text-accent-foreground";
|
|
26
|
-
}
|
|
27
|
-
} else {
|
|
28
|
-
switch (variant) {
|
|
29
|
-
case "default":
|
|
30
|
-
return "text-foreground";
|
|
31
|
-
case "muted":
|
|
32
|
-
return "text-muted-foreground";
|
|
33
|
-
case "subtle":
|
|
34
|
-
return "text-muted-foreground/70";
|
|
35
|
-
case "accent":
|
|
36
|
-
return "text-primary";
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
14
|
var svgCache = /* @__PURE__ */ new Map();
|
|
41
15
|
function DynamicIcon({
|
|
42
16
|
name,
|
|
@@ -954,87 +928,203 @@ function FeatureBentoImageGrid({
|
|
|
954
928
|
patternOpacity,
|
|
955
929
|
patternClassName
|
|
956
930
|
}) {
|
|
957
|
-
const renderItemIcon = React.useCallback(
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
item
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
|
|
931
|
+
const renderItemIcon = React.useCallback(
|
|
932
|
+
(item) => {
|
|
933
|
+
if (item.icon) return item.icon;
|
|
934
|
+
if (item.iconName) return /* @__PURE__ */ jsx(DynamicIcon, { name: item.iconName, size: 24 });
|
|
935
|
+
return null;
|
|
936
|
+
},
|
|
937
|
+
[]
|
|
938
|
+
);
|
|
939
|
+
const renderItemImage = React.useCallback(
|
|
940
|
+
(item, imageClassName) => {
|
|
941
|
+
if (item.imageSlot) return item.imageSlot;
|
|
942
|
+
if (item.imageSrc) {
|
|
943
|
+
return /* @__PURE__ */ jsx(
|
|
944
|
+
Img,
|
|
945
|
+
{
|
|
946
|
+
src: item.imageSrc,
|
|
947
|
+
alt: item.imageAlt || (typeof item.title === "string" ? item.title : "Feature image"),
|
|
948
|
+
className: cn(imageClassName, item.imageClassName),
|
|
949
|
+
loading: "lazy",
|
|
950
|
+
optixFlowConfig
|
|
951
|
+
}
|
|
952
|
+
);
|
|
953
|
+
}
|
|
954
|
+
return null;
|
|
955
|
+
},
|
|
956
|
+
[optixFlowConfig]
|
|
957
|
+
);
|
|
958
|
+
const renderLargeCard = React.useCallback(
|
|
959
|
+
(item) => {
|
|
960
|
+
const iconContent = renderItemIcon(item);
|
|
961
|
+
const hasIconBadgeContent = iconContent || item.iconBadge;
|
|
962
|
+
const cardContent = /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
963
|
+
renderItemImage(
|
|
964
|
+
item,
|
|
965
|
+
"h-full max-h-[580px] w-full rounded-xl object-cover object-center"
|
|
966
|
+
),
|
|
967
|
+
/* @__PURE__ */ jsx("div", { className: "absolute top-0 right-0 bottom-0 left-0 translate-y-10 rounded-xl bg-linear-to-t from-black to-transparent transition-transform duration-300 group-hover:translate-y-0" }),
|
|
968
|
+
/* @__PURE__ */ jsxs("div", { className: "absolute top-0 flex h-full w-full flex-col justify-between px-5 md:px-8 py-6 md:py-6", children: [
|
|
969
|
+
hasIconBadgeContent && /* @__PURE__ */ jsxs(
|
|
970
|
+
"span",
|
|
971
|
+
{
|
|
972
|
+
className: cn(
|
|
973
|
+
"ml-auto flex w-fit items-center gap-2 p-0 text-sm font-semibold text-white",
|
|
974
|
+
item.iconBadgeClassName
|
|
975
|
+
),
|
|
976
|
+
children: [
|
|
977
|
+
iconContent,
|
|
978
|
+
item.iconBadge
|
|
979
|
+
]
|
|
980
|
+
}
|
|
981
|
+
),
|
|
982
|
+
/* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-2 md:gap-5 text-white", children: [
|
|
983
|
+
item.title && (typeof item.title === "string" ? /* @__PURE__ */ jsx(
|
|
984
|
+
"h4",
|
|
985
|
+
{
|
|
986
|
+
className: cn(
|
|
987
|
+
"text-2xl font-medium lg:text-3xl",
|
|
988
|
+
item.titleClassName
|
|
989
|
+
),
|
|
990
|
+
children: item.title
|
|
991
|
+
}
|
|
992
|
+
) : /* @__PURE__ */ jsx(
|
|
993
|
+
"div",
|
|
994
|
+
{
|
|
995
|
+
className: cn(
|
|
996
|
+
"text-2xl font-medium lg:text-3xl",
|
|
997
|
+
item.titleClassName
|
|
998
|
+
),
|
|
999
|
+
children: item.title
|
|
1000
|
+
}
|
|
1001
|
+
)),
|
|
1002
|
+
item.linkText && /* @__PURE__ */ jsxs(
|
|
1003
|
+
"p",
|
|
1004
|
+
{
|
|
1005
|
+
className: cn(
|
|
1006
|
+
"flex items-center gap-1 font-bold text-sm uppercase",
|
|
1007
|
+
item.linkTextClassName
|
|
1008
|
+
),
|
|
1009
|
+
children: [
|
|
1010
|
+
item.linkText,
|
|
1011
|
+
/* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/chevron-right", size: 16 })
|
|
1012
|
+
]
|
|
1013
|
+
}
|
|
1014
|
+
)
|
|
994
1015
|
] })
|
|
995
1016
|
] })
|
|
996
|
-
] })
|
|
997
|
-
|
|
998
|
-
|
|
1017
|
+
] });
|
|
1018
|
+
if (item.link) {
|
|
1019
|
+
return /* @__PURE__ */ jsx(
|
|
1020
|
+
Pressable,
|
|
1021
|
+
{
|
|
1022
|
+
href: item.link,
|
|
1023
|
+
className: cn(
|
|
1024
|
+
"group relative col-span-2 row-span-3 overflow-hidden rounded-xl",
|
|
1025
|
+
largeCardClassName,
|
|
1026
|
+
item.className
|
|
1027
|
+
),
|
|
1028
|
+
children: cardContent
|
|
1029
|
+
}
|
|
1030
|
+
);
|
|
1031
|
+
}
|
|
999
1032
|
return /* @__PURE__ */ jsx(
|
|
1000
|
-
|
|
1033
|
+
"div",
|
|
1001
1034
|
{
|
|
1002
|
-
|
|
1003
|
-
|
|
1035
|
+
className: cn(
|
|
1036
|
+
"group relative col-span-2 row-span-3 overflow-hidden rounded-xl",
|
|
1037
|
+
largeCardClassName,
|
|
1038
|
+
item.className
|
|
1039
|
+
),
|
|
1004
1040
|
children: cardContent
|
|
1005
1041
|
}
|
|
1006
1042
|
);
|
|
1007
|
-
}
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
const renderSmallCard = React.useCallback(
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
|
|
1024
|
-
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
|
-
|
|
1043
|
+
},
|
|
1044
|
+
[largeCardClassName, renderItemImage, renderItemIcon]
|
|
1045
|
+
);
|
|
1046
|
+
const renderSmallCard = React.useCallback(
|
|
1047
|
+
(item, index) => {
|
|
1048
|
+
const iconContent = renderItemIcon(item);
|
|
1049
|
+
const hasIconBadgeContent = iconContent || item.iconBadge;
|
|
1050
|
+
const cardContent = /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
1051
|
+
renderItemImage(
|
|
1052
|
+
item,
|
|
1053
|
+
cn(
|
|
1054
|
+
"h-full w-full rounded-xl object-cover object-center",
|
|
1055
|
+
index === 0 ? "max-h-44" : "max-h-96"
|
|
1056
|
+
)
|
|
1057
|
+
),
|
|
1058
|
+
/* @__PURE__ */ jsx("div", { className: "absolute top-0 right-0 bottom-0 left-0 translate-y-10 rounded-xl bg-linear-to-t from-black to-transparent opacity-80 transition-transform duration-300 group-hover:translate-y-0" }),
|
|
1059
|
+
/* @__PURE__ */ jsxs("div", { className: "absolute top-0 flex h-full w-full flex-col justify-between p-7", children: [
|
|
1060
|
+
hasIconBadgeContent && /* @__PURE__ */ jsxs(
|
|
1061
|
+
"span",
|
|
1062
|
+
{
|
|
1063
|
+
className: cn(
|
|
1064
|
+
"ml-auto flex w-fit items-center gap-1 p-2.5 text-sm font-semibold ",
|
|
1065
|
+
item.iconBadgeClassName
|
|
1066
|
+
),
|
|
1067
|
+
children: [
|
|
1068
|
+
iconContent,
|
|
1069
|
+
item.iconBadge
|
|
1070
|
+
]
|
|
1071
|
+
}
|
|
1072
|
+
),
|
|
1073
|
+
/* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-5 ", children: [
|
|
1074
|
+
item.title && (typeof item.title === "string" ? /* @__PURE__ */ jsx(
|
|
1075
|
+
"h4",
|
|
1076
|
+
{
|
|
1077
|
+
className: cn(
|
|
1078
|
+
"text-2xl font-semibold lg:text-3xl",
|
|
1079
|
+
item.titleClassName
|
|
1080
|
+
),
|
|
1081
|
+
children: item.title
|
|
1082
|
+
}
|
|
1083
|
+
) : /* @__PURE__ */ jsx(
|
|
1084
|
+
"div",
|
|
1085
|
+
{
|
|
1086
|
+
className: cn(
|
|
1087
|
+
"text-2xl font-semibold lg:text-3xl",
|
|
1088
|
+
item.titleClassName
|
|
1089
|
+
),
|
|
1090
|
+
children: item.title
|
|
1091
|
+
}
|
|
1092
|
+
)),
|
|
1093
|
+
item.linkText && /* @__PURE__ */ jsxs(
|
|
1094
|
+
"p",
|
|
1095
|
+
{
|
|
1096
|
+
className: cn(
|
|
1097
|
+
"flex items-center gap-1 font-medium",
|
|
1098
|
+
item.linkTextClassName
|
|
1099
|
+
),
|
|
1100
|
+
children: [
|
|
1101
|
+
item.linkText,
|
|
1102
|
+
/* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/chevron-right", size: 16 })
|
|
1103
|
+
]
|
|
1104
|
+
}
|
|
1105
|
+
)
|
|
1029
1106
|
] })
|
|
1030
1107
|
] })
|
|
1031
|
-
] })
|
|
1032
|
-
|
|
1033
|
-
|
|
1108
|
+
] });
|
|
1109
|
+
if (item.link) {
|
|
1110
|
+
return /* @__PURE__ */ jsx(
|
|
1111
|
+
Pressable,
|
|
1112
|
+
{
|
|
1113
|
+
href: item.link,
|
|
1114
|
+
className: cn(
|
|
1115
|
+
"group relative overflow-hidden rounded-xl",
|
|
1116
|
+
index === 1 && "row-span-2",
|
|
1117
|
+
smallCardClassName,
|
|
1118
|
+
item.className
|
|
1119
|
+
),
|
|
1120
|
+
children: cardContent
|
|
1121
|
+
},
|
|
1122
|
+
index
|
|
1123
|
+
);
|
|
1124
|
+
}
|
|
1034
1125
|
return /* @__PURE__ */ jsx(
|
|
1035
|
-
|
|
1126
|
+
"div",
|
|
1036
1127
|
{
|
|
1037
|
-
href: item.link,
|
|
1038
1128
|
className: cn(
|
|
1039
1129
|
"group relative overflow-hidden rounded-xl",
|
|
1040
1130
|
index === 1 && "row-span-2",
|
|
@@ -1045,21 +1135,9 @@ function FeatureBentoImageGrid({
|
|
|
1045
1135
|
},
|
|
1046
1136
|
index
|
|
1047
1137
|
);
|
|
1048
|
-
}
|
|
1049
|
-
|
|
1050
|
-
|
|
1051
|
-
{
|
|
1052
|
-
className: cn(
|
|
1053
|
-
"group relative overflow-hidden rounded-xl",
|
|
1054
|
-
index === 1 && "row-span-2",
|
|
1055
|
-
smallCardClassName,
|
|
1056
|
-
item.className
|
|
1057
|
-
),
|
|
1058
|
-
children: cardContent
|
|
1059
|
-
},
|
|
1060
|
-
index
|
|
1061
|
-
);
|
|
1062
|
-
}, [smallCardClassName, renderItemImage, renderItemIcon]);
|
|
1138
|
+
},
|
|
1139
|
+
[smallCardClassName, renderItemImage, renderItemIcon]
|
|
1140
|
+
);
|
|
1063
1141
|
const itemsContent = useMemo(() => {
|
|
1064
1142
|
if (itemsSlot) return itemsSlot;
|
|
1065
1143
|
if (!items || items.length === 0) return null;
|
|
@@ -1081,9 +1159,36 @@ function FeatureBentoImageGrid({
|
|
|
1081
1159
|
className,
|
|
1082
1160
|
containerClassName,
|
|
1083
1161
|
children: [
|
|
1084
|
-
title && (typeof title === "string" ? /* @__PURE__ */ jsx(
|
|
1085
|
-
|
|
1086
|
-
|
|
1162
|
+
title && (typeof title === "string" ? /* @__PURE__ */ jsx(
|
|
1163
|
+
"h2",
|
|
1164
|
+
{
|
|
1165
|
+
className: cn(
|
|
1166
|
+
"mb-4 text-center text-4xl font-semibold text-balance",
|
|
1167
|
+
titleClassName
|
|
1168
|
+
),
|
|
1169
|
+
children: title
|
|
1170
|
+
}
|
|
1171
|
+
) : /* @__PURE__ */ jsx(
|
|
1172
|
+
"div",
|
|
1173
|
+
{
|
|
1174
|
+
className: cn(
|
|
1175
|
+
"mb-4 text-center text-4xl font-semibold text-balance",
|
|
1176
|
+
titleClassName
|
|
1177
|
+
),
|
|
1178
|
+
children: title
|
|
1179
|
+
}
|
|
1180
|
+
)),
|
|
1181
|
+
description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("text-center text-balance", descriptionClassName), children: description }) : /* @__PURE__ */ jsx("div", { className: cn("text-center text-balance", descriptionClassName), children: description })),
|
|
1182
|
+
/* @__PURE__ */ jsx(
|
|
1183
|
+
"div",
|
|
1184
|
+
{
|
|
1185
|
+
className: cn(
|
|
1186
|
+
"grid grid-cols-1 gap-y-5 pt-14 xl:grid-cols-3 xl:grid-rows-2 xl:gap-x-5 xl:gap-y-0",
|
|
1187
|
+
gridClassName
|
|
1188
|
+
),
|
|
1189
|
+
children: itemsContent
|
|
1190
|
+
}
|
|
1191
|
+
)
|
|
1087
1192
|
]
|
|
1088
1193
|
}
|
|
1089
1194
|
);
|
|
@@ -969,7 +969,7 @@ function FeatureIconGridBordered({
|
|
|
969
969
|
"div",
|
|
970
970
|
{
|
|
971
971
|
className: cn(
|
|
972
|
-
"flex size-10 shrink-0 items-center justify-center rounded-lg md:size-12 text-
|
|
972
|
+
"flex size-10 shrink-0 items-center justify-center rounded-lg md:size-12 text-primary-foreground bg-primary shadow-xl",
|
|
973
973
|
feature.iconClassName
|
|
974
974
|
),
|
|
975
975
|
children: renderIcon(feature)
|
|
@@ -948,7 +948,7 @@ function FeatureIconGridBordered({
|
|
|
948
948
|
"div",
|
|
949
949
|
{
|
|
950
950
|
className: cn(
|
|
951
|
-
"flex size-10 shrink-0 items-center justify-center rounded-lg md:size-12 text-
|
|
951
|
+
"flex size-10 shrink-0 items-center justify-center rounded-lg md:size-12 text-primary-foreground bg-primary shadow-xl",
|
|
952
952
|
feature.iconClassName
|
|
953
953
|
),
|
|
954
954
|
children: renderIcon(feature)
|
|
@@ -1816,7 +1816,7 @@ function FooterAccordionSocial({
|
|
|
1816
1816
|
),
|
|
1817
1817
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
|
|
1818
1818
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-2xl font-semibold", children: newsletterTitle }),
|
|
1819
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "
|
|
1819
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "opacity-80", children: newsletterDescription })
|
|
1820
1820
|
] }),
|
|
1821
1821
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
1822
1822
|
forms.Form,
|
|
@@ -1833,7 +1833,7 @@ function FooterAccordionSocial({
|
|
|
1833
1833
|
type: "email",
|
|
1834
1834
|
placeholder: "Email Address",
|
|
1835
1835
|
error: meta.touched && !!meta.error,
|
|
1836
|
-
className: "flex h-10 w-full rounded-md border border-input
|
|
1836
|
+
className: "flex h-10 w-full rounded-md border border-input px-3 py-2 text-sm ring-offset-background placeholder:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
|
|
1837
1837
|
"aria-label": "Email Address"
|
|
1838
1838
|
}
|
|
1839
1839
|
) }),
|
|
@@ -1854,18 +1854,18 @@ function FooterAccordionSocial({
|
|
|
1854
1854
|
] }),
|
|
1855
1855
|
footerLinks && footerLinks.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-2 gap-x-16 gap-y-8 lg:grid-cols-3", children: footerLinks.map((section) => /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
1856
1856
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "mb-4 text-lg font-bold", children: section.title }),
|
|
1857
|
-
/* @__PURE__ */ jsxRuntime.jsx("ul", { className: "space-y-2 text-sm
|
|
1857
|
+
/* @__PURE__ */ jsxRuntime.jsx("ul", { className: "space-y-2 text-sm opacity-80", children: section.items.map((item, idx) => /* @__PURE__ */ jsxRuntime.jsx("li", { children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1858
1858
|
Pressable,
|
|
1859
1859
|
{
|
|
1860
1860
|
href: item.href,
|
|
1861
|
-
className: "hover:
|
|
1861
|
+
className: "hover:opacity-100",
|
|
1862
1862
|
children: item.text
|
|
1863
1863
|
}
|
|
1864
1864
|
) }, idx)) })
|
|
1865
1865
|
] }, section.id)) })
|
|
1866
1866
|
] }),
|
|
1867
1867
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap items-center justify-between gap-6 border-t pt-8", children: [
|
|
1868
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-2 text-sm
|
|
1868
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-2 text-sm opacity-80 md:flex-row md:items-center md:gap-4", children: [
|
|
1869
1869
|
/* @__PURE__ */ jsxRuntime.jsx(FooterCopyright, { copyright }),
|
|
1870
1870
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1871
1871
|
BrandAttribution,
|
|
@@ -1873,7 +1873,7 @@ function FooterAccordionSocial({
|
|
|
1873
1873
|
internalBrandSlug: "open_site_ai",
|
|
1874
1874
|
optionIndex: 1,
|
|
1875
1875
|
variant: "span",
|
|
1876
|
-
linkClassName: "hover:
|
|
1876
|
+
linkClassName: "hover:opacity-100"
|
|
1877
1877
|
}
|
|
1878
1878
|
)
|
|
1879
1879
|
] }),
|
|
@@ -1795,7 +1795,7 @@ function FooterAccordionSocial({
|
|
|
1795
1795
|
),
|
|
1796
1796
|
/* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
|
|
1797
1797
|
/* @__PURE__ */ jsx("h3", { className: "text-2xl font-semibold", children: newsletterTitle }),
|
|
1798
|
-
/* @__PURE__ */ jsx("p", { className: "
|
|
1798
|
+
/* @__PURE__ */ jsx("p", { className: "opacity-80", children: newsletterDescription })
|
|
1799
1799
|
] }),
|
|
1800
1800
|
/* @__PURE__ */ jsxs(
|
|
1801
1801
|
Form,
|
|
@@ -1812,7 +1812,7 @@ function FooterAccordionSocial({
|
|
|
1812
1812
|
type: "email",
|
|
1813
1813
|
placeholder: "Email Address",
|
|
1814
1814
|
error: meta.touched && !!meta.error,
|
|
1815
|
-
className: "flex h-10 w-full rounded-md border border-input
|
|
1815
|
+
className: "flex h-10 w-full rounded-md border border-input px-3 py-2 text-sm ring-offset-background placeholder:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
|
|
1816
1816
|
"aria-label": "Email Address"
|
|
1817
1817
|
}
|
|
1818
1818
|
) }),
|
|
@@ -1833,18 +1833,18 @@ function FooterAccordionSocial({
|
|
|
1833
1833
|
] }),
|
|
1834
1834
|
footerLinks && footerLinks.length > 0 && /* @__PURE__ */ jsx("div", { className: "grid grid-cols-2 gap-x-16 gap-y-8 lg:grid-cols-3", children: footerLinks.map((section) => /* @__PURE__ */ jsxs("div", { children: [
|
|
1835
1835
|
/* @__PURE__ */ jsx("h3", { className: "mb-4 text-lg font-bold", children: section.title }),
|
|
1836
|
-
/* @__PURE__ */ jsx("ul", { className: "space-y-2 text-sm
|
|
1836
|
+
/* @__PURE__ */ jsx("ul", { className: "space-y-2 text-sm opacity-80", children: section.items.map((item, idx) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
|
|
1837
1837
|
Pressable,
|
|
1838
1838
|
{
|
|
1839
1839
|
href: item.href,
|
|
1840
|
-
className: "hover:
|
|
1840
|
+
className: "hover:opacity-100",
|
|
1841
1841
|
children: item.text
|
|
1842
1842
|
}
|
|
1843
1843
|
) }, idx)) })
|
|
1844
1844
|
] }, section.id)) })
|
|
1845
1845
|
] }),
|
|
1846
1846
|
/* @__PURE__ */ jsxs("div", { className: "flex flex-wrap items-center justify-between gap-6 border-t pt-8", children: [
|
|
1847
|
-
/* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-2 text-sm
|
|
1847
|
+
/* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-2 text-sm opacity-80 md:flex-row md:items-center md:gap-4", children: [
|
|
1848
1848
|
/* @__PURE__ */ jsx(FooterCopyright, { copyright }),
|
|
1849
1849
|
/* @__PURE__ */ jsx(
|
|
1850
1850
|
BrandAttribution,
|
|
@@ -1852,7 +1852,7 @@ function FooterAccordionSocial({
|
|
|
1852
1852
|
internalBrandSlug: "open_site_ai",
|
|
1853
1853
|
optionIndex: 1,
|
|
1854
1854
|
variant: "span",
|
|
1855
|
-
linkClassName: "hover:
|
|
1855
|
+
linkClassName: "hover:opacity-100"
|
|
1856
1856
|
}
|
|
1857
1857
|
)
|
|
1858
1858
|
] }),
|
|
@@ -1603,7 +1603,7 @@ function FooterAnimatedSocial({
|
|
|
1603
1603
|
label: link.label,
|
|
1604
1604
|
iconNameOverride: link.iconNameOverride,
|
|
1605
1605
|
iconSize: 24,
|
|
1606
|
-
className: cn("group flex items-center gap-2 py-2 transition-colors hover:
|
|
1606
|
+
className: cn("group flex items-center gap-2 py-2 transition-colors hover:opacity-70", socialLinkClassName)
|
|
1607
1607
|
}
|
|
1608
1608
|
)
|
|
1609
1609
|
},
|
|
@@ -1631,13 +1631,13 @@ function FooterAnimatedSocial({
|
|
|
1631
1631
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("space-y-8", leftColumnClassName), children: [
|
|
1632
1632
|
/* @__PURE__ */ jsxRuntime.jsxs(framerMotion.motion.div, { variants: itemVariants, className: "space-y-6", children: [
|
|
1633
1633
|
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: cn("text-4xl leading-tight font-bold lg:text-5xl", headingClassName), children: heading }),
|
|
1634
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("max-w-md text-lg leading-relaxed
|
|
1634
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("max-w-md text-lg leading-relaxed opacity-80", descriptionClassName), children: description })
|
|
1635
1635
|
] }),
|
|
1636
1636
|
ctaUrl && ctaText && /* @__PURE__ */ jsxRuntime.jsx(framerMotion.motion.div, { variants: itemVariants, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1637
1637
|
Pressable,
|
|
1638
1638
|
{
|
|
1639
1639
|
href: ctaUrl,
|
|
1640
|
-
className: cn("inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50
|
|
1640
|
+
className: cn("inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 border h-11 px-8 hover:opacity-80", ctaClassName),
|
|
1641
1641
|
children: ctaText
|
|
1642
1642
|
}
|
|
1643
1643
|
) })
|
|
@@ -1655,21 +1655,21 @@ function FooterAnimatedSocial({
|
|
|
1655
1655
|
viewport: { once: true },
|
|
1656
1656
|
className: cn("mt-16", bottomClassName),
|
|
1657
1657
|
children: [
|
|
1658
|
-
/* @__PURE__ */ jsxRuntime.jsx(framerMotion.motion.div, { variants: itemVariants, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-8 h-px w-full
|
|
1658
|
+
/* @__PURE__ */ jsxRuntime.jsx(framerMotion.motion.div, { variants: itemVariants, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-8 h-px w-full opacity-20", separatorClassName), style: { backgroundColor: "currentColor" } }) }),
|
|
1659
1659
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
1660
1660
|
framerMotion.motion.div,
|
|
1661
1661
|
{
|
|
1662
1662
|
variants: itemVariants,
|
|
1663
1663
|
className: cn("flex flex-col items-start justify-between gap-4 sm:flex-row sm:items-center", copyrightClassName),
|
|
1664
1664
|
children: [
|
|
1665
|
-
/* @__PURE__ */ jsxRuntime.jsx(FooterCopyright, { copyright, className: "text-sm
|
|
1666
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center gap-6 text-sm
|
|
1665
|
+
/* @__PURE__ */ jsxRuntime.jsx(FooterCopyright, { copyright, className: "text-sm opacity-70" }),
|
|
1666
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center gap-6 text-sm opacity-70", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1667
1667
|
BrandAttribution,
|
|
1668
1668
|
{
|
|
1669
1669
|
internalBrandSlug: "open_site_ai",
|
|
1670
1670
|
optionIndex: 2,
|
|
1671
1671
|
variant: "span",
|
|
1672
|
-
linkClassName: "underline underline-offset-4 transition-colors hover:
|
|
1672
|
+
linkClassName: "underline underline-offset-4 transition-colors hover:opacity-100"
|
|
1673
1673
|
}
|
|
1674
1674
|
) })
|
|
1675
1675
|
]
|
|
@@ -1582,7 +1582,7 @@ function FooterAnimatedSocial({
|
|
|
1582
1582
|
label: link.label,
|
|
1583
1583
|
iconNameOverride: link.iconNameOverride,
|
|
1584
1584
|
iconSize: 24,
|
|
1585
|
-
className: cn("group flex items-center gap-2 py-2 transition-colors hover:
|
|
1585
|
+
className: cn("group flex items-center gap-2 py-2 transition-colors hover:opacity-70", socialLinkClassName)
|
|
1586
1586
|
}
|
|
1587
1587
|
)
|
|
1588
1588
|
},
|
|
@@ -1610,13 +1610,13 @@ function FooterAnimatedSocial({
|
|
|
1610
1610
|
/* @__PURE__ */ jsxs("div", { className: cn("space-y-8", leftColumnClassName), children: [
|
|
1611
1611
|
/* @__PURE__ */ jsxs(motion.div, { variants: itemVariants, className: "space-y-6", children: [
|
|
1612
1612
|
/* @__PURE__ */ jsx("h2", { className: cn("text-4xl leading-tight font-bold lg:text-5xl", headingClassName), children: heading }),
|
|
1613
|
-
/* @__PURE__ */ jsx("p", { className: cn("max-w-md text-lg leading-relaxed
|
|
1613
|
+
/* @__PURE__ */ jsx("p", { className: cn("max-w-md text-lg leading-relaxed opacity-80", descriptionClassName), children: description })
|
|
1614
1614
|
] }),
|
|
1615
1615
|
ctaUrl && ctaText && /* @__PURE__ */ jsx(motion.div, { variants: itemVariants, children: /* @__PURE__ */ jsx(
|
|
1616
1616
|
Pressable,
|
|
1617
1617
|
{
|
|
1618
1618
|
href: ctaUrl,
|
|
1619
|
-
className: cn("inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50
|
|
1619
|
+
className: cn("inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 border h-11 px-8 hover:opacity-80", ctaClassName),
|
|
1620
1620
|
children: ctaText
|
|
1621
1621
|
}
|
|
1622
1622
|
) })
|
|
@@ -1634,21 +1634,21 @@ function FooterAnimatedSocial({
|
|
|
1634
1634
|
viewport: { once: true },
|
|
1635
1635
|
className: cn("mt-16", bottomClassName),
|
|
1636
1636
|
children: [
|
|
1637
|
-
/* @__PURE__ */ jsx(motion.div, { variants: itemVariants, children: /* @__PURE__ */ jsx("div", { className: cn("mb-8 h-px w-full
|
|
1637
|
+
/* @__PURE__ */ jsx(motion.div, { variants: itemVariants, children: /* @__PURE__ */ jsx("div", { className: cn("mb-8 h-px w-full opacity-20", separatorClassName), style: { backgroundColor: "currentColor" } }) }),
|
|
1638
1638
|
/* @__PURE__ */ jsxs(
|
|
1639
1639
|
motion.div,
|
|
1640
1640
|
{
|
|
1641
1641
|
variants: itemVariants,
|
|
1642
1642
|
className: cn("flex flex-col items-start justify-between gap-4 sm:flex-row sm:items-center", copyrightClassName),
|
|
1643
1643
|
children: [
|
|
1644
|
-
/* @__PURE__ */ jsx(FooterCopyright, { copyright, className: "text-sm
|
|
1645
|
-
/* @__PURE__ */ jsx("div", { className: "flex items-center gap-6 text-sm
|
|
1644
|
+
/* @__PURE__ */ jsx(FooterCopyright, { copyright, className: "text-sm opacity-70" }),
|
|
1645
|
+
/* @__PURE__ */ jsx("div", { className: "flex items-center gap-6 text-sm opacity-70", children: /* @__PURE__ */ jsx(
|
|
1646
1646
|
BrandAttribution,
|
|
1647
1647
|
{
|
|
1648
1648
|
internalBrandSlug: "open_site_ai",
|
|
1649
1649
|
optionIndex: 2,
|
|
1650
1650
|
variant: "span",
|
|
1651
|
-
linkClassName: "underline underline-offset-4 transition-colors hover:
|
|
1651
|
+
linkClassName: "underline underline-offset-4 transition-colors hover:opacity-100"
|
|
1652
1652
|
}
|
|
1653
1653
|
) })
|
|
1654
1654
|
]
|