@opensite/ui 1.3.0 → 1.3.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/feature-capabilities-grid.cjs +5 -6
- package/dist/feature-capabilities-grid.js +5 -6
- package/dist/feature-icon-grid-bordered.cjs +1 -1
- package/dist/feature-icon-grid-bordered.js +1 -1
- package/dist/feature-icon-tabs-content.cjs +7 -7
- package/dist/feature-icon-tabs-content.js +7 -7
- package/dist/feature-image-cards-three-column.cjs +4 -4
- package/dist/feature-image-cards-three-column.js +4 -4
- package/dist/feature-numbered-cards.cjs +1 -1
- package/dist/feature-numbered-cards.js +1 -1
- package/dist/feature-pattern-grid-links.cjs +142 -29
- package/dist/feature-pattern-grid-links.d.cts +21 -1
- package/dist/feature-pattern-grid-links.d.ts +21 -1
- package/dist/feature-pattern-grid-links.js +142 -29
- package/dist/feature-three-column-values.cjs +2 -2
- package/dist/feature-three-column-values.js +2 -2
- package/dist/feature-utility-cards-grid.cjs +21 -5
- package/dist/feature-utility-cards-grid.js +21 -5
- package/dist/registry.cjs +183 -55
- package/dist/registry.js +183 -55
- package/package.json +1 -1
|
@@ -972,8 +972,8 @@ function FeatureCapabilitiesGrid({
|
|
|
972
972
|
items,
|
|
973
973
|
itemsSlot,
|
|
974
974
|
className,
|
|
975
|
-
containerClassName = "px-
|
|
976
|
-
spacing = "py-
|
|
975
|
+
containerClassName = "mx-auto w-full max-w-screen-lg md:max-w-screen-4xl relative z-10 px-6 sm:px-2 md:px-2 lg:px-2",
|
|
976
|
+
spacing = "py-12 md:py-32",
|
|
977
977
|
eyebrowClassName,
|
|
978
978
|
headingClassName,
|
|
979
979
|
gridClassName,
|
|
@@ -1000,7 +1000,7 @@ function FeatureCapabilitiesGrid({
|
|
|
1000
1000
|
Card,
|
|
1001
1001
|
{
|
|
1002
1002
|
className: cn(
|
|
1003
|
-
"group relative rounded-md overflow-visible border-border/10 bg-
|
|
1003
|
+
"group relative rounded-md overflow-visible border-border/10 bg-card text-card-foreground p-0 transition-colors duration-300 hover:border-border/20",
|
|
1004
1004
|
cardClassName,
|
|
1005
1005
|
item.className
|
|
1006
1006
|
),
|
|
@@ -1018,7 +1018,7 @@ function FeatureCapabilitiesGrid({
|
|
|
1018
1018
|
"div",
|
|
1019
1019
|
{
|
|
1020
1020
|
className: cn(
|
|
1021
|
-
"flex h-10 w-10 items-center justify-center rounded-xl border
|
|
1021
|
+
"flex h-10 w-10 items-center justify-center rounded-xl border ",
|
|
1022
1022
|
item.iconClassName
|
|
1023
1023
|
),
|
|
1024
1024
|
children: iconContent
|
|
@@ -1047,7 +1047,7 @@ function FeatureCapabilitiesGrid({
|
|
|
1047
1047
|
"span",
|
|
1048
1048
|
{
|
|
1049
1049
|
className: cn(
|
|
1050
|
-
"rounded-full border
|
|
1050
|
+
"rounded-full border px-2 py-0.5 text-[10px] leading-none",
|
|
1051
1051
|
item.badgeClassName
|
|
1052
1052
|
),
|
|
1053
1053
|
children: item.badge
|
|
@@ -1092,7 +1092,6 @@ function FeatureCapabilitiesGrid({
|
|
|
1092
1092
|
patternClassName,
|
|
1093
1093
|
className,
|
|
1094
1094
|
containerClassName,
|
|
1095
|
-
containerMaxWidth: "lg",
|
|
1096
1095
|
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col space-y-6 md:space-y-16", children: [
|
|
1097
1096
|
eyebrow || heading ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col space-y-4 md:space-y-6", children: [
|
|
1098
1097
|
eyebrow && (typeof eyebrow === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("text-sm tracking-widest", eyebrowClassName), children: eyebrow }) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -951,8 +951,8 @@ function FeatureCapabilitiesGrid({
|
|
|
951
951
|
items,
|
|
952
952
|
itemsSlot,
|
|
953
953
|
className,
|
|
954
|
-
containerClassName = "px-
|
|
955
|
-
spacing = "py-
|
|
954
|
+
containerClassName = "mx-auto w-full max-w-screen-lg md:max-w-screen-4xl relative z-10 px-6 sm:px-2 md:px-2 lg:px-2",
|
|
955
|
+
spacing = "py-12 md:py-32",
|
|
956
956
|
eyebrowClassName,
|
|
957
957
|
headingClassName,
|
|
958
958
|
gridClassName,
|
|
@@ -979,7 +979,7 @@ function FeatureCapabilitiesGrid({
|
|
|
979
979
|
Card,
|
|
980
980
|
{
|
|
981
981
|
className: cn(
|
|
982
|
-
"group relative rounded-md overflow-visible border-border/10 bg-
|
|
982
|
+
"group relative rounded-md overflow-visible border-border/10 bg-card text-card-foreground p-0 transition-colors duration-300 hover:border-border/20",
|
|
983
983
|
cardClassName,
|
|
984
984
|
item.className
|
|
985
985
|
),
|
|
@@ -997,7 +997,7 @@ function FeatureCapabilitiesGrid({
|
|
|
997
997
|
"div",
|
|
998
998
|
{
|
|
999
999
|
className: cn(
|
|
1000
|
-
"flex h-10 w-10 items-center justify-center rounded-xl border
|
|
1000
|
+
"flex h-10 w-10 items-center justify-center rounded-xl border ",
|
|
1001
1001
|
item.iconClassName
|
|
1002
1002
|
),
|
|
1003
1003
|
children: iconContent
|
|
@@ -1026,7 +1026,7 @@ function FeatureCapabilitiesGrid({
|
|
|
1026
1026
|
"span",
|
|
1027
1027
|
{
|
|
1028
1028
|
className: cn(
|
|
1029
|
-
"rounded-full border
|
|
1029
|
+
"rounded-full border px-2 py-0.5 text-[10px] leading-none",
|
|
1030
1030
|
item.badgeClassName
|
|
1031
1031
|
),
|
|
1032
1032
|
children: item.badge
|
|
@@ -1071,7 +1071,6 @@ function FeatureCapabilitiesGrid({
|
|
|
1071
1071
|
patternClassName,
|
|
1072
1072
|
className,
|
|
1073
1073
|
containerClassName,
|
|
1074
|
-
containerMaxWidth: "lg",
|
|
1075
1074
|
children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col space-y-6 md:space-y-16", children: [
|
|
1076
1075
|
eyebrow || heading ? /* @__PURE__ */ jsxs("div", { className: "flex flex-col space-y-4 md:space-y-6", children: [
|
|
1077
1076
|
eyebrow && (typeof eyebrow === "string" ? /* @__PURE__ */ jsx("p", { className: cn("text-sm tracking-widest", eyebrowClassName), children: eyebrow }) : /* @__PURE__ */ jsx(
|
|
@@ -960,7 +960,7 @@ function FeatureIconGridBordered({
|
|
|
960
960
|
"div",
|
|
961
961
|
{
|
|
962
962
|
className: cn(
|
|
963
|
-
"relative flex h-full flex-col justify-between gap-6 rounded-none border-dashed px-
|
|
963
|
+
"relative flex h-full flex-col justify-between gap-6 rounded-none border-dashed px-0 md:border-l md:px-5",
|
|
964
964
|
cardClassName,
|
|
965
965
|
feature.className
|
|
966
966
|
),
|
|
@@ -939,7 +939,7 @@ function FeatureIconGridBordered({
|
|
|
939
939
|
"div",
|
|
940
940
|
{
|
|
941
941
|
className: cn(
|
|
942
|
-
"relative flex h-full flex-col justify-between gap-6 rounded-none border-dashed px-
|
|
942
|
+
"relative flex h-full flex-col justify-between gap-6 rounded-none border-dashed px-0 md:border-l md:px-5",
|
|
943
943
|
cardClassName,
|
|
944
944
|
feature.className
|
|
945
945
|
),
|
|
@@ -1090,7 +1090,7 @@ function FeatureIconTabsContent({
|
|
|
1090
1090
|
tabContentClassName,
|
|
1091
1091
|
optixFlowConfig,
|
|
1092
1092
|
background,
|
|
1093
|
-
spacing = "
|
|
1093
|
+
spacing = "pt-14 pb-12 md:pt-32 md:pb-32",
|
|
1094
1094
|
pattern,
|
|
1095
1095
|
patternOpacity,
|
|
1096
1096
|
patternClassName
|
|
@@ -1182,7 +1182,7 @@ function FeatureIconTabsContent({
|
|
|
1182
1182
|
{
|
|
1183
1183
|
value: tab.value,
|
|
1184
1184
|
className: cn(
|
|
1185
|
-
"flex h-auto! w-auto! flex-none items-center gap-2 rounded-lg border border-border
|
|
1185
|
+
"flex h-auto! w-auto! flex-none items-center gap-2 rounded-lg border border-border pl-0 pr-4 md:pl-4 md:pr-4 py-2.5 text-sm font-medium transition-colors hover:bg-accent hover:text-accent-foreground data-[state=active]:bg-primary data-[state=active]:text-primary-foreground",
|
|
1186
1186
|
`data-[state=active]:${getBorderColor(background, "accent")}`,
|
|
1187
1187
|
tabTriggerClassName,
|
|
1188
1188
|
tab.className
|
|
@@ -1196,7 +1196,7 @@ function FeatureIconTabsContent({
|
|
|
1196
1196
|
))
|
|
1197
1197
|
}
|
|
1198
1198
|
) }),
|
|
1199
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("py-6
|
|
1199
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("py-6 md:py-10", contentWrapperClassName), children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "p-4 md:p-8 bg-muted/50 rounded-2xl shadow-lg", children: tabs.map((tab) => {
|
|
1200
1200
|
if (tab.contentSlot) {
|
|
1201
1201
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1202
1202
|
TabsContent,
|
|
@@ -1233,7 +1233,7 @@ function FeatureIconTabsContent({
|
|
|
1233
1233
|
"h3",
|
|
1234
1234
|
{
|
|
1235
1235
|
className: cn(
|
|
1236
|
-
"text-
|
|
1236
|
+
"text-2xl font-semibold",
|
|
1237
1237
|
content.titleClassName
|
|
1238
1238
|
),
|
|
1239
1239
|
children: content.title
|
|
@@ -1242,7 +1242,7 @@ function FeatureIconTabsContent({
|
|
|
1242
1242
|
"div",
|
|
1243
1243
|
{
|
|
1244
1244
|
className: cn(
|
|
1245
|
-
"text-
|
|
1245
|
+
"text-2xl font-semibold",
|
|
1246
1246
|
content.titleClassName
|
|
1247
1247
|
),
|
|
1248
1248
|
children: content.title
|
|
@@ -1314,7 +1314,7 @@ function FeatureIconTabsContent({
|
|
|
1314
1314
|
"h1",
|
|
1315
1315
|
{
|
|
1316
1316
|
className: cn(
|
|
1317
|
-
"max-w-
|
|
1317
|
+
"max-w-4xl text-3xl font-semibold md:text-6xl text-balance",
|
|
1318
1318
|
headingClassName
|
|
1319
1319
|
),
|
|
1320
1320
|
children: heading
|
|
@@ -1323,7 +1323,7 @@ function FeatureIconTabsContent({
|
|
|
1323
1323
|
"div",
|
|
1324
1324
|
{
|
|
1325
1325
|
className: cn(
|
|
1326
|
-
"max-w-
|
|
1326
|
+
"max-w-4xl text-3xl font-semibold md:text-6xl text-balance",
|
|
1327
1327
|
headingClassName
|
|
1328
1328
|
),
|
|
1329
1329
|
children: heading
|
|
@@ -1068,7 +1068,7 @@ function FeatureIconTabsContent({
|
|
|
1068
1068
|
tabContentClassName,
|
|
1069
1069
|
optixFlowConfig,
|
|
1070
1070
|
background,
|
|
1071
|
-
spacing = "
|
|
1071
|
+
spacing = "pt-14 pb-12 md:pt-32 md:pb-32",
|
|
1072
1072
|
pattern,
|
|
1073
1073
|
patternOpacity,
|
|
1074
1074
|
patternClassName
|
|
@@ -1160,7 +1160,7 @@ function FeatureIconTabsContent({
|
|
|
1160
1160
|
{
|
|
1161
1161
|
value: tab.value,
|
|
1162
1162
|
className: cn(
|
|
1163
|
-
"flex h-auto! w-auto! flex-none items-center gap-2 rounded-lg border border-border
|
|
1163
|
+
"flex h-auto! w-auto! flex-none items-center gap-2 rounded-lg border border-border pl-0 pr-4 md:pl-4 md:pr-4 py-2.5 text-sm font-medium transition-colors hover:bg-accent hover:text-accent-foreground data-[state=active]:bg-primary data-[state=active]:text-primary-foreground",
|
|
1164
1164
|
`data-[state=active]:${getBorderColor(background, "accent")}`,
|
|
1165
1165
|
tabTriggerClassName,
|
|
1166
1166
|
tab.className
|
|
@@ -1174,7 +1174,7 @@ function FeatureIconTabsContent({
|
|
|
1174
1174
|
))
|
|
1175
1175
|
}
|
|
1176
1176
|
) }),
|
|
1177
|
-
/* @__PURE__ */ jsx("div", { className: cn("py-6
|
|
1177
|
+
/* @__PURE__ */ jsx("div", { className: cn("py-6 md:py-10", contentWrapperClassName), children: /* @__PURE__ */ jsx("div", { className: "p-4 md:p-8 bg-muted/50 rounded-2xl shadow-lg", children: tabs.map((tab) => {
|
|
1178
1178
|
if (tab.contentSlot) {
|
|
1179
1179
|
return /* @__PURE__ */ jsx(
|
|
1180
1180
|
TabsContent,
|
|
@@ -1211,7 +1211,7 @@ function FeatureIconTabsContent({
|
|
|
1211
1211
|
"h3",
|
|
1212
1212
|
{
|
|
1213
1213
|
className: cn(
|
|
1214
|
-
"text-
|
|
1214
|
+
"text-2xl font-semibold",
|
|
1215
1215
|
content.titleClassName
|
|
1216
1216
|
),
|
|
1217
1217
|
children: content.title
|
|
@@ -1220,7 +1220,7 @@ function FeatureIconTabsContent({
|
|
|
1220
1220
|
"div",
|
|
1221
1221
|
{
|
|
1222
1222
|
className: cn(
|
|
1223
|
-
"text-
|
|
1223
|
+
"text-2xl font-semibold",
|
|
1224
1224
|
content.titleClassName
|
|
1225
1225
|
),
|
|
1226
1226
|
children: content.title
|
|
@@ -1292,7 +1292,7 @@ function FeatureIconTabsContent({
|
|
|
1292
1292
|
"h1",
|
|
1293
1293
|
{
|
|
1294
1294
|
className: cn(
|
|
1295
|
-
"max-w-
|
|
1295
|
+
"max-w-4xl text-3xl font-semibold md:text-6xl text-balance",
|
|
1296
1296
|
headingClassName
|
|
1297
1297
|
),
|
|
1298
1298
|
children: heading
|
|
@@ -1301,7 +1301,7 @@ function FeatureIconTabsContent({
|
|
|
1301
1301
|
"div",
|
|
1302
1302
|
{
|
|
1303
1303
|
className: cn(
|
|
1304
|
-
"max-w-
|
|
1304
|
+
"max-w-4xl text-3xl font-semibold md:text-6xl text-balance",
|
|
1305
1305
|
headingClassName
|
|
1306
1306
|
),
|
|
1307
1307
|
children: heading
|
|
@@ -1002,7 +1002,7 @@ function FeatureImageCardsThreeColumn({
|
|
|
1002
1002
|
cardsSlot,
|
|
1003
1003
|
className,
|
|
1004
1004
|
containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
|
|
1005
|
-
spacing = "py-
|
|
1005
|
+
spacing = "py-12 md:py-32",
|
|
1006
1006
|
titleClassName,
|
|
1007
1007
|
descriptionClassName,
|
|
1008
1008
|
gridClassName,
|
|
@@ -1058,7 +1058,7 @@ function FeatureImageCardsThreeColumn({
|
|
|
1058
1058
|
),
|
|
1059
1059
|
children: [
|
|
1060
1060
|
renderImage(card, imageAlt),
|
|
1061
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute top-0 right-0 bottom-0 left-0 translate-y-
|
|
1061
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute top-0 right-0 bottom-0 left-0 translate-y-10 md:translate-y-20 rounded-xl bg-linear-to-t from-black to-transparent transition-transform duration-300 group-hover:translate-y-0" }),
|
|
1062
1062
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "absolute top-0 flex h-full w-full flex-col justify-between p-4 md:p-6", children: [
|
|
1063
1063
|
(card.badgeText || card.avatarSrc || card.icon || card.iconName) && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1064
1064
|
Badge,
|
|
@@ -1128,7 +1128,7 @@ function FeatureImageCardsThreeColumn({
|
|
|
1128
1128
|
"h2",
|
|
1129
1129
|
{
|
|
1130
1130
|
className: cn(
|
|
1131
|
-
"text-
|
|
1131
|
+
"text-2xl font-semibold text-balance md:text-3xl lg:text-4xl max-w-lg md:max-w-md",
|
|
1132
1132
|
titleClassName
|
|
1133
1133
|
),
|
|
1134
1134
|
children: title
|
|
@@ -1137,7 +1137,7 @@ function FeatureImageCardsThreeColumn({
|
|
|
1137
1137
|
"div",
|
|
1138
1138
|
{
|
|
1139
1139
|
className: cn(
|
|
1140
|
-
"text-
|
|
1140
|
+
"text-2xl font-semibold text-balance md:text-3xl lg:text-4xl max-w-lg md:max-w-md",
|
|
1141
1141
|
titleClassName
|
|
1142
1142
|
),
|
|
1143
1143
|
children: title
|
|
@@ -980,7 +980,7 @@ function FeatureImageCardsThreeColumn({
|
|
|
980
980
|
cardsSlot,
|
|
981
981
|
className,
|
|
982
982
|
containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
|
|
983
|
-
spacing = "py-
|
|
983
|
+
spacing = "py-12 md:py-32",
|
|
984
984
|
titleClassName,
|
|
985
985
|
descriptionClassName,
|
|
986
986
|
gridClassName,
|
|
@@ -1036,7 +1036,7 @@ function FeatureImageCardsThreeColumn({
|
|
|
1036
1036
|
),
|
|
1037
1037
|
children: [
|
|
1038
1038
|
renderImage(card, imageAlt),
|
|
1039
|
-
/* @__PURE__ */ jsx("div", { className: "absolute top-0 right-0 bottom-0 left-0 translate-y-
|
|
1039
|
+
/* @__PURE__ */ jsx("div", { className: "absolute top-0 right-0 bottom-0 left-0 translate-y-10 md:translate-y-20 rounded-xl bg-linear-to-t from-black to-transparent transition-transform duration-300 group-hover:translate-y-0" }),
|
|
1040
1040
|
/* @__PURE__ */ jsxs("div", { className: "absolute top-0 flex h-full w-full flex-col justify-between p-4 md:p-6", children: [
|
|
1041
1041
|
(card.badgeText || card.avatarSrc || card.icon || card.iconName) && /* @__PURE__ */ jsxs(
|
|
1042
1042
|
Badge,
|
|
@@ -1106,7 +1106,7 @@ function FeatureImageCardsThreeColumn({
|
|
|
1106
1106
|
"h2",
|
|
1107
1107
|
{
|
|
1108
1108
|
className: cn(
|
|
1109
|
-
"text-
|
|
1109
|
+
"text-2xl font-semibold text-balance md:text-3xl lg:text-4xl max-w-lg md:max-w-md",
|
|
1110
1110
|
titleClassName
|
|
1111
1111
|
),
|
|
1112
1112
|
children: title
|
|
@@ -1115,7 +1115,7 @@ function FeatureImageCardsThreeColumn({
|
|
|
1115
1115
|
"div",
|
|
1116
1116
|
{
|
|
1117
1117
|
className: cn(
|
|
1118
|
-
"text-
|
|
1118
|
+
"text-2xl font-semibold text-balance md:text-3xl lg:text-4xl max-w-lg md:max-w-md",
|
|
1119
1119
|
titleClassName
|
|
1120
1120
|
),
|
|
1121
1121
|
children: title
|
|
@@ -1127,7 +1127,7 @@ function FeatureNumberedCards({
|
|
|
1127
1127
|
"span",
|
|
1128
1128
|
{
|
|
1129
1129
|
className: cn(
|
|
1130
|
-
"absolute top-5 left-5 flex size-
|
|
1130
|
+
"absolute top-2 md:top-5 left-2 md:left-5 flex size-10 md:size-12 items-center justify-center rounded-md shadow-lg bg-primary text-sm md:text-md text-primary-foreground lg:top-10 lg:left-10 font-semibold",
|
|
1131
1131
|
badgeClassName
|
|
1132
1132
|
),
|
|
1133
1133
|
children: String(index + 1).padStart(2, "0")
|
|
@@ -1106,7 +1106,7 @@ function FeatureNumberedCards({
|
|
|
1106
1106
|
"span",
|
|
1107
1107
|
{
|
|
1108
1108
|
className: cn(
|
|
1109
|
-
"absolute top-5 left-5 flex size-
|
|
1109
|
+
"absolute top-2 md:top-5 left-2 md:left-5 flex size-10 md:size-12 items-center justify-center rounded-md shadow-lg bg-primary text-sm md:text-md text-primary-foreground lg:top-10 lg:left-10 font-semibold",
|
|
1110
1110
|
badgeClassName
|
|
1111
1111
|
),
|
|
1112
1112
|
children: String(index + 1).padStart(2, "0")
|
|
@@ -956,59 +956,124 @@ var Section = React__namespace.default.forwardRef(
|
|
|
956
956
|
);
|
|
957
957
|
Section.displayName = "Section";
|
|
958
958
|
function FeaturePatternGridLinks({
|
|
959
|
+
title,
|
|
960
|
+
description,
|
|
961
|
+
titleClassName,
|
|
962
|
+
descriptionClassName,
|
|
963
|
+
headerClassName,
|
|
959
964
|
features,
|
|
960
965
|
featuresSlot,
|
|
961
966
|
className,
|
|
962
|
-
|
|
967
|
+
spacing = "py-12 md:py-32",
|
|
968
|
+
containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
|
|
963
969
|
gridClassName,
|
|
964
970
|
cardClassName,
|
|
965
971
|
background,
|
|
966
|
-
spacing,
|
|
967
972
|
pattern,
|
|
968
973
|
patternOpacity,
|
|
969
974
|
patternClassName
|
|
970
975
|
}) {
|
|
971
|
-
const renderFeatureIcon = React.useCallback(
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
|
|
991
|
-
|
|
992
|
-
|
|
976
|
+
const renderFeatureIcon = React.useCallback(
|
|
977
|
+
(feature) => {
|
|
978
|
+
if (feature.icon) return feature.icon;
|
|
979
|
+
if (feature.iconName)
|
|
980
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
981
|
+
DynamicIcon,
|
|
982
|
+
{
|
|
983
|
+
name: feature.iconName,
|
|
984
|
+
size: 24,
|
|
985
|
+
className: feature.iconClassName
|
|
986
|
+
}
|
|
987
|
+
);
|
|
988
|
+
return null;
|
|
989
|
+
},
|
|
990
|
+
[]
|
|
991
|
+
);
|
|
992
|
+
const renderFeatureLink = React.useCallback(
|
|
993
|
+
(feature) => {
|
|
994
|
+
if (feature.linkSlot) return feature.linkSlot;
|
|
995
|
+
if (!feature.link && !feature.linkLabel) return null;
|
|
996
|
+
const label = feature.linkLabel || (feature.link ? "Learn more" : null);
|
|
997
|
+
if (!label) return null;
|
|
998
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
999
|
+
Pressable,
|
|
1000
|
+
{
|
|
1001
|
+
href: feature.link,
|
|
1002
|
+
className: cn(
|
|
1003
|
+
"flex items-center gap-2 text-sm font-medium",
|
|
1004
|
+
feature.linkClassName
|
|
1005
|
+
),
|
|
1006
|
+
children: [
|
|
1007
|
+
label,
|
|
1008
|
+
/* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/chevron-right", size: 16 })
|
|
1009
|
+
]
|
|
1010
|
+
}
|
|
1011
|
+
);
|
|
1012
|
+
},
|
|
1013
|
+
[]
|
|
1014
|
+
);
|
|
993
1015
|
const featuresContent = React.useMemo(() => {
|
|
994
1016
|
if (featuresSlot) return featuresSlot;
|
|
995
1017
|
if (!features || features.length === 0) return null;
|
|
996
1018
|
return features.map((feature, index) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
997
1019
|
"div",
|
|
998
1020
|
{
|
|
999
|
-
className: cn(
|
|
1021
|
+
className: cn(
|
|
1022
|
+
"flex flex-col gap-10 rounded-lg border p-8",
|
|
1023
|
+
cardClassName,
|
|
1024
|
+
feature.className
|
|
1025
|
+
),
|
|
1000
1026
|
children: [
|
|
1001
1027
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
1002
1028
|
renderFeatureIcon(feature),
|
|
1003
|
-
feature.title && (typeof feature.title === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
1004
|
-
|
|
1029
|
+
feature.title && (typeof feature.title === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
1030
|
+
"h3",
|
|
1031
|
+
{
|
|
1032
|
+
className: cn("mt-6 mb-2 font-medium", feature.titleClassName),
|
|
1033
|
+
children: feature.title
|
|
1034
|
+
}
|
|
1035
|
+
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
1036
|
+
"div",
|
|
1037
|
+
{
|
|
1038
|
+
className: cn("mt-6 mb-2 font-medium", feature.titleClassName),
|
|
1039
|
+
children: feature.title
|
|
1040
|
+
}
|
|
1041
|
+
)),
|
|
1042
|
+
feature.description && (typeof feature.description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
1043
|
+
"p",
|
|
1044
|
+
{
|
|
1045
|
+
className: cn(
|
|
1046
|
+
"text-sm",
|
|
1047
|
+
getTextColor(background, "muted"),
|
|
1048
|
+
feature.descriptionClassName
|
|
1049
|
+
),
|
|
1050
|
+
children: feature.description
|
|
1051
|
+
}
|
|
1052
|
+
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
1053
|
+
"div",
|
|
1054
|
+
{
|
|
1055
|
+
className: cn(
|
|
1056
|
+
"text-sm",
|
|
1057
|
+
getTextColor(background, "muted"),
|
|
1058
|
+
feature.descriptionClassName
|
|
1059
|
+
),
|
|
1060
|
+
children: feature.description
|
|
1061
|
+
}
|
|
1062
|
+
))
|
|
1005
1063
|
] }),
|
|
1006
1064
|
renderFeatureLink(feature)
|
|
1007
1065
|
]
|
|
1008
1066
|
},
|
|
1009
1067
|
index
|
|
1010
1068
|
));
|
|
1011
|
-
}, [
|
|
1069
|
+
}, [
|
|
1070
|
+
featuresSlot,
|
|
1071
|
+
features,
|
|
1072
|
+
cardClassName,
|
|
1073
|
+
renderFeatureIcon,
|
|
1074
|
+
renderFeatureLink,
|
|
1075
|
+
background
|
|
1076
|
+
]);
|
|
1012
1077
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1013
1078
|
Section,
|
|
1014
1079
|
{
|
|
@@ -1019,7 +1084,55 @@ function FeaturePatternGridLinks({
|
|
|
1019
1084
|
patternClassName,
|
|
1020
1085
|
className,
|
|
1021
1086
|
containerClassName,
|
|
1022
|
-
children: /* @__PURE__ */ jsxRuntime.
|
|
1087
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col space-y-6 md:space-y-16", children: [
|
|
1088
|
+
title || description ? /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1089
|
+
"div",
|
|
1090
|
+
{
|
|
1091
|
+
className: cn(
|
|
1092
|
+
"flex flex-col gap-4 md:gap-6 text-left",
|
|
1093
|
+
headerClassName
|
|
1094
|
+
),
|
|
1095
|
+
children: [
|
|
1096
|
+
title && (typeof title === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
1097
|
+
"h2",
|
|
1098
|
+
{
|
|
1099
|
+
className: cn(
|
|
1100
|
+
"text-xl font-semibold text-balance md:text-2xl lg:text-3xl max-w-lg md:max-w-md",
|
|
1101
|
+
titleClassName
|
|
1102
|
+
),
|
|
1103
|
+
children: title
|
|
1104
|
+
}
|
|
1105
|
+
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
1106
|
+
"div",
|
|
1107
|
+
{
|
|
1108
|
+
className: cn(
|
|
1109
|
+
"text-xl font-semibold text-balance md:text-2xl lg:text-3xl max-w-lg md:max-w-md",
|
|
1110
|
+
titleClassName
|
|
1111
|
+
),
|
|
1112
|
+
children: title
|
|
1113
|
+
}
|
|
1114
|
+
)),
|
|
1115
|
+
description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("max-w-lg md:max-w-md", descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
1116
|
+
"div",
|
|
1117
|
+
{
|
|
1118
|
+
className: cn("max-w-lg md:max-w-md", descriptionClassName),
|
|
1119
|
+
children: description
|
|
1120
|
+
}
|
|
1121
|
+
))
|
|
1122
|
+
]
|
|
1123
|
+
}
|
|
1124
|
+
) : null,
|
|
1125
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1126
|
+
"div",
|
|
1127
|
+
{
|
|
1128
|
+
className: cn(
|
|
1129
|
+
"grid gap-6 md:grid-cols-2 lg:grid-cols-3",
|
|
1130
|
+
gridClassName
|
|
1131
|
+
),
|
|
1132
|
+
children: featuresContent
|
|
1133
|
+
}
|
|
1134
|
+
)
|
|
1135
|
+
] })
|
|
1023
1136
|
}
|
|
1024
1137
|
);
|
|
1025
1138
|
}
|
|
@@ -57,6 +57,26 @@ interface FeaturePatternGridLinksItem {
|
|
|
57
57
|
linkClassName?: string;
|
|
58
58
|
}
|
|
59
59
|
interface FeaturePatternGridLinksProps {
|
|
60
|
+
/**
|
|
61
|
+
* Main heading content
|
|
62
|
+
*/
|
|
63
|
+
title?: React.ReactNode;
|
|
64
|
+
/**
|
|
65
|
+
* Supporting description content
|
|
66
|
+
*/
|
|
67
|
+
description?: React.ReactNode;
|
|
68
|
+
/**
|
|
69
|
+
* Additional CSS classes for the title
|
|
70
|
+
*/
|
|
71
|
+
titleClassName?: string;
|
|
72
|
+
/**
|
|
73
|
+
* Additional CSS classes for the description
|
|
74
|
+
*/
|
|
75
|
+
descriptionClassName?: string;
|
|
76
|
+
/**
|
|
77
|
+
* Additional CSS classes for the header
|
|
78
|
+
*/
|
|
79
|
+
headerClassName?: string;
|
|
60
80
|
/**
|
|
61
81
|
* Array of feature items
|
|
62
82
|
*/
|
|
@@ -119,6 +139,6 @@ interface FeaturePatternGridLinksProps {
|
|
|
119
139
|
* />
|
|
120
140
|
* ```
|
|
121
141
|
*/
|
|
122
|
-
declare function FeaturePatternGridLinks({ features, featuresSlot, className, containerClassName, gridClassName, cardClassName, background,
|
|
142
|
+
declare function FeaturePatternGridLinks({ title, description, titleClassName, descriptionClassName, headerClassName, features, featuresSlot, className, spacing, containerClassName, gridClassName, cardClassName, background, pattern, patternOpacity, patternClassName, }: FeaturePatternGridLinksProps): React.JSX.Element;
|
|
123
143
|
|
|
124
144
|
export { FeaturePatternGridLinks, type FeaturePatternGridLinksProps };
|
|
@@ -57,6 +57,26 @@ interface FeaturePatternGridLinksItem {
|
|
|
57
57
|
linkClassName?: string;
|
|
58
58
|
}
|
|
59
59
|
interface FeaturePatternGridLinksProps {
|
|
60
|
+
/**
|
|
61
|
+
* Main heading content
|
|
62
|
+
*/
|
|
63
|
+
title?: React.ReactNode;
|
|
64
|
+
/**
|
|
65
|
+
* Supporting description content
|
|
66
|
+
*/
|
|
67
|
+
description?: React.ReactNode;
|
|
68
|
+
/**
|
|
69
|
+
* Additional CSS classes for the title
|
|
70
|
+
*/
|
|
71
|
+
titleClassName?: string;
|
|
72
|
+
/**
|
|
73
|
+
* Additional CSS classes for the description
|
|
74
|
+
*/
|
|
75
|
+
descriptionClassName?: string;
|
|
76
|
+
/**
|
|
77
|
+
* Additional CSS classes for the header
|
|
78
|
+
*/
|
|
79
|
+
headerClassName?: string;
|
|
60
80
|
/**
|
|
61
81
|
* Array of feature items
|
|
62
82
|
*/
|
|
@@ -119,6 +139,6 @@ interface FeaturePatternGridLinksProps {
|
|
|
119
139
|
* />
|
|
120
140
|
* ```
|
|
121
141
|
*/
|
|
122
|
-
declare function FeaturePatternGridLinks({ features, featuresSlot, className, containerClassName, gridClassName, cardClassName, background,
|
|
142
|
+
declare function FeaturePatternGridLinks({ title, description, titleClassName, descriptionClassName, headerClassName, features, featuresSlot, className, spacing, containerClassName, gridClassName, cardClassName, background, pattern, patternOpacity, patternClassName, }: FeaturePatternGridLinksProps): React.JSX.Element;
|
|
123
143
|
|
|
124
144
|
export { FeaturePatternGridLinks, type FeaturePatternGridLinksProps };
|