@opensite/ui 1.2.9 → 1.3.0

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.
Files changed (41) hide show
  1. package/dist/carousel-scale-focus.cjs +3 -2
  2. package/dist/carousel-scale-focus.d.cts +5 -1
  3. package/dist/carousel-scale-focus.d.ts +5 -1
  4. package/dist/carousel-scale-focus.js +3 -2
  5. package/dist/feature-badge-grid-six.cjs +88 -13
  6. package/dist/feature-badge-grid-six.d.cts +1 -1
  7. package/dist/feature-badge-grid-six.d.ts +1 -1
  8. package/dist/feature-badge-grid-six.js +88 -13
  9. package/dist/feature-category-image-cards.cjs +1 -1
  10. package/dist/feature-category-image-cards.d.cts +1 -1
  11. package/dist/feature-category-image-cards.d.ts +1 -1
  12. package/dist/feature-category-image-cards.js +1 -1
  13. package/dist/feature-checklist-image.cjs +5 -5
  14. package/dist/feature-checklist-image.js +5 -5
  15. package/dist/feature-icon-grid-accent.cjs +6 -6
  16. package/dist/feature-icon-grid-accent.js +6 -6
  17. package/dist/feature-icon-grid-bordered.cjs +5 -10
  18. package/dist/feature-icon-grid-bordered.d.cts +1 -1
  19. package/dist/feature-icon-grid-bordered.d.ts +1 -1
  20. package/dist/feature-icon-grid-bordered.js +5 -10
  21. package/dist/feature-icon-grid-muted.cjs +1 -1
  22. package/dist/feature-icon-grid-muted.js +1 -1
  23. package/dist/feature-icon-tabs-content.cjs +90 -108
  24. package/dist/feature-icon-tabs-content.js +90 -108
  25. package/dist/feature-image-cards-three-column.cjs +21 -15
  26. package/dist/feature-image-cards-three-column.d.cts +1 -1
  27. package/dist/feature-image-cards-three-column.d.ts +1 -1
  28. package/dist/feature-image-cards-three-column.js +21 -15
  29. package/dist/feature-numbered-cards.cjs +1 -1
  30. package/dist/feature-numbered-cards.js +1 -1
  31. package/dist/feature-tabbed-content-image.cjs +1 -1
  32. package/dist/feature-tabbed-content-image.d.cts +1 -1
  33. package/dist/feature-tabbed-content-image.d.ts +1 -1
  34. package/dist/feature-tabbed-content-image.js +1 -1
  35. package/dist/feature-three-column-values.cjs +472 -35
  36. package/dist/feature-three-column-values.d.cts +4 -0
  37. package/dist/feature-three-column-values.d.ts +4 -0
  38. package/dist/feature-three-column-values.js +472 -35
  39. package/dist/registry.cjs +275 -194
  40. package/dist/registry.js +275 -194
  41. package/package.json +1 -1
@@ -1057,7 +1057,7 @@ function FeatureIconTabsContent({
1057
1057
  tabsSlot,
1058
1058
  defaultTab,
1059
1059
  className,
1060
- containerClassName,
1060
+ containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
1061
1061
  headerClassName,
1062
1062
  badgeClassName,
1063
1063
  headingClassName,
@@ -1148,11 +1148,11 @@ function FeatureIconTabsContent({
1148
1148
  if (!tabs || tabs.length === 0) return null;
1149
1149
  const activeDefaultTab = defaultTab || tabs[0]?.value;
1150
1150
  return /* @__PURE__ */ jsxs(Tabs, { defaultValue: activeDefaultTab, className: "mt-8", children: [
1151
- /* @__PURE__ */ jsx("div", { className: "container overflow-x-auto px-4 pb-2 md:px-6", children: /* @__PURE__ */ jsx(
1151
+ /* @__PURE__ */ jsx("div", { className: "container overflow-x-auto px-4 pb-2 md:px-6 scrollbar-thin scrollbar-track-transparent scrollbar-thumb-border/50 hover:scrollbar-thumb-border md:overflow-x-visible [&::-webkit-scrollbar]:h-1 [&::-webkit-scrollbar-track]:bg-transparent [&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar-thumb]:bg-border/30", children: /* @__PURE__ */ jsx(
1152
1152
  TabsList,
1153
1153
  {
1154
1154
  className: cn(
1155
- "inline-flex w-auto min-w-full items-center justify-start gap-2 bg-transparent md:justify-center md:gap-4",
1155
+ "inline-flex w-auto items-center justify-start gap-2 bg-transparent md:w-full md:justify-center md:gap-4 h-auto! p-0!",
1156
1156
  tabsListClassName
1157
1157
  ),
1158
1158
  children: tabs.map((tab) => /* @__PURE__ */ jsxs(
@@ -1160,7 +1160,7 @@ function FeatureIconTabsContent({
1160
1160
  {
1161
1161
  value: tab.value,
1162
1162
  className: cn(
1163
- "flex shrink-0 items-center gap-2 rounded-lg border border-border px-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",
1163
+ "flex h-auto! w-auto! flex-none items-center gap-2 rounded-lg border border-border px-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,99 +1174,87 @@ function FeatureIconTabsContent({
1174
1174
  ))
1175
1175
  }
1176
1176
  ) }),
1177
- /* @__PURE__ */ jsx(
1178
- "div",
1179
- {
1180
- className: cn(
1181
- "mx-auto mt-8 max-w-7xl rounded-2xl p-6 lg:p-16",
1182
- contentWrapperClassName
1183
- ),
1184
- children: /* @__PURE__ */ jsx("div", { className: "relative", children: tabs.map((tab) => {
1185
- if (tab.contentSlot) {
1186
- return /* @__PURE__ */ jsx(
1187
- TabsContent,
1188
- {
1189
- value: tab.value,
1190
- className: tabContentClassName,
1191
- children: tab.contentSlot
1192
- },
1193
- tab.value
1194
- );
1195
- }
1196
- const content = tab.content;
1197
- if (!content) return null;
1198
- return /* @__PURE__ */ jsxs(
1199
- TabsContent,
1200
- {
1201
- value: tab.value,
1202
- className: cn(
1203
- "grid place-items-start gap-20 lg:grid-cols-2 lg:gap-10",
1204
- tabContentClassName,
1205
- content.className
1177
+ /* @__PURE__ */ jsx("div", { className: cn("py-6 lg:py-16", contentWrapperClassName), children: /* @__PURE__ */ jsx("div", { className: "relative", children: tabs.map((tab) => {
1178
+ if (tab.contentSlot) {
1179
+ return /* @__PURE__ */ jsx(
1180
+ TabsContent,
1181
+ {
1182
+ value: tab.value,
1183
+ className: tabContentClassName,
1184
+ children: tab.contentSlot
1185
+ },
1186
+ tab.value
1187
+ );
1188
+ }
1189
+ const content = tab.content;
1190
+ if (!content) return null;
1191
+ return /* @__PURE__ */ jsxs(
1192
+ TabsContent,
1193
+ {
1194
+ value: tab.value,
1195
+ className: cn(
1196
+ "grid place-items-start gap-20 lg:grid-cols-2 lg:gap-10",
1197
+ tabContentClassName,
1198
+ content.className
1199
+ ),
1200
+ children: [
1201
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-5", children: [
1202
+ content.badge && /* @__PURE__ */ jsx(
1203
+ Badge,
1204
+ {
1205
+ variant: "outline",
1206
+ className: cn("w-fit", content.badgeClassName),
1207
+ children: content.badge
1208
+ }
1206
1209
  ),
1207
- children: [
1208
- /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-5", children: [
1209
- content.badge && /* @__PURE__ */ jsx(
1210
- Badge,
1211
- {
1212
- variant: "outline",
1213
- className: cn(
1214
- "w-fit",
1215
- content.badgeClassName
1216
- ),
1217
- children: content.badge
1218
- }
1210
+ content.title && (typeof content.title === "string" ? /* @__PURE__ */ jsx(
1211
+ "h3",
1212
+ {
1213
+ className: cn(
1214
+ "text-3xl font-semibold lg:text-5xl",
1215
+ content.titleClassName
1219
1216
  ),
1220
- content.title && (typeof content.title === "string" ? /* @__PURE__ */ jsx(
1221
- "h3",
1222
- {
1223
- className: cn(
1224
- "text-3xl font-semibold lg:text-5xl",
1225
- content.titleClassName
1226
- ),
1227
- children: content.title
1228
- }
1229
- ) : /* @__PURE__ */ jsx(
1230
- "div",
1231
- {
1232
- className: cn(
1233
- "text-3xl font-semibold lg:text-5xl",
1234
- content.titleClassName
1235
- ),
1236
- children: content.title
1237
- }
1238
- )),
1239
- content.description && (typeof content.description === "string" ? /* @__PURE__ */ jsx(
1240
- "p",
1241
- {
1242
- className: cn(
1243
- "lg:text-lg",
1244
- getTextColor(background, "muted"),
1245
- content.descriptionClassName
1246
- ),
1247
- children: content.description
1248
- }
1249
- ) : /* @__PURE__ */ jsx(
1250
- "div",
1251
- {
1252
- className: cn(
1253
- "lg:text-lg",
1254
- getTextColor(background, "muted"),
1255
- content.descriptionClassName
1256
- ),
1257
- children: content.description
1258
- }
1259
- )),
1260
- (content.actionsSlot || content.actions && content.actions.length > 0) && renderTabContentActions(content)
1261
- ] }),
1262
- (content.imageSlot || content.imageSrc) && /* @__PURE__ */ jsx("div", { className: "relative h-[300px] w-full lg:h-[400px]", children: renderTabContentImage(content) })
1263
- ]
1264
- },
1265
- tab.value
1266
- );
1267
- }) })
1268
- }
1269
- )
1217
+ children: content.title
1218
+ }
1219
+ ) : /* @__PURE__ */ jsx(
1220
+ "div",
1221
+ {
1222
+ className: cn(
1223
+ "text-3xl font-semibold lg:text-5xl",
1224
+ content.titleClassName
1225
+ ),
1226
+ children: content.title
1227
+ }
1228
+ )),
1229
+ content.description && (typeof content.description === "string" ? /* @__PURE__ */ jsx(
1230
+ "p",
1231
+ {
1232
+ className: cn(
1233
+ "lg:text-lg",
1234
+ getTextColor(background, "muted"),
1235
+ content.descriptionClassName
1236
+ ),
1237
+ children: content.description
1238
+ }
1239
+ ) : /* @__PURE__ */ jsx(
1240
+ "div",
1241
+ {
1242
+ className: cn(
1243
+ "lg:text-lg",
1244
+ getTextColor(background, "muted"),
1245
+ content.descriptionClassName
1246
+ ),
1247
+ children: content.description
1248
+ }
1249
+ )),
1250
+ (content.actionsSlot || content.actions && content.actions.length > 0) && renderTabContentActions(content)
1251
+ ] }),
1252
+ (content.imageSlot || content.imageSrc) && /* @__PURE__ */ jsx("div", { className: "relative h-[300px] w-full lg:h-[400px]", children: renderTabContentImage(content) })
1253
+ ]
1254
+ },
1255
+ tab.value
1256
+ );
1257
+ }) }) })
1270
1258
  ] });
1271
1259
  }, [
1272
1260
  tabsSlot,
@@ -1280,7 +1268,7 @@ function FeatureIconTabsContent({
1280
1268
  renderTabContentActions,
1281
1269
  renderTabContentImage
1282
1270
  ]);
1283
- return /* @__PURE__ */ jsxs(
1271
+ return /* @__PURE__ */ jsx(
1284
1272
  Section,
1285
1273
  {
1286
1274
  background,
@@ -1289,8 +1277,8 @@ function FeatureIconTabsContent({
1289
1277
  patternOpacity,
1290
1278
  patternClassName,
1291
1279
  className,
1292
- containerClassName: cn("mx-auto", containerClassName),
1293
- children: [
1280
+ containerClassName,
1281
+ children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col space-y-6 md:space-y-16", children: [
1294
1282
  (badge || heading || description) && /* @__PURE__ */ jsxs(
1295
1283
  "div",
1296
1284
  {
@@ -1304,7 +1292,7 @@ function FeatureIconTabsContent({
1304
1292
  "h1",
1305
1293
  {
1306
1294
  className: cn(
1307
- "max-w-2xl text-3xl font-semibold md:text-4xl",
1295
+ "max-w-2xl text-3xl font-semibold md:text-4xl text-balance",
1308
1296
  headingClassName
1309
1297
  ),
1310
1298
  children: heading
@@ -1313,24 +1301,18 @@ function FeatureIconTabsContent({
1313
1301
  "div",
1314
1302
  {
1315
1303
  className: cn(
1316
- "max-w-2xl text-3xl font-semibold md:text-4xl",
1304
+ "max-w-2xl text-3xl font-semibold md:text-4xl text-balance",
1317
1305
  headingClassName
1318
1306
  ),
1319
1307
  children: heading
1320
1308
  }
1321
1309
  )),
1322
- description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn(getTextColor(background, "muted"), descriptionClassName), children: description }) : /* @__PURE__ */ jsx(
1323
- "div",
1324
- {
1325
- className: cn(getTextColor(background, "muted"), descriptionClassName),
1326
- children: description
1327
- }
1328
- ))
1310
+ description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("text-balance", descriptionClassName), children: description }) : /* @__PURE__ */ jsx("div", { className: cn("text-balance", descriptionClassName), children: description }))
1329
1311
  ]
1330
1312
  }
1331
1313
  ),
1332
1314
  tabsContent
1333
- ]
1315
+ ] })
1334
1316
  }
1335
1317
  );
1336
1318
  }
@@ -1001,14 +1001,14 @@ function FeatureImageCardsThreeColumn({
1001
1001
  cards,
1002
1002
  cardsSlot,
1003
1003
  className,
1004
- containerClassName,
1004
+ containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
1005
+ spacing = "py-6 md:py-32",
1005
1006
  titleClassName,
1006
1007
  descriptionClassName,
1007
1008
  gridClassName,
1008
1009
  cardClassName,
1009
1010
  optixFlowConfig,
1010
1011
  background,
1011
- spacing,
1012
1012
  pattern,
1013
1013
  patternOpacity,
1014
1014
  patternClassName
@@ -1022,7 +1022,7 @@ function FeatureImageCardsThreeColumn({
1022
1022
  {
1023
1023
  src: card.imageSrc,
1024
1024
  alt: imageAlt,
1025
- className: "h-full max-h-[450px] w-full rounded-xl object-cover object-center",
1025
+ className: "h-full max-h-[450px] min-h-80 w-full rounded-xl object-cover object-center",
1026
1026
  loading: "lazy",
1027
1027
  optixFlowConfig
1028
1028
  }
@@ -1037,7 +1037,7 @@ function FeatureImageCardsThreeColumn({
1037
1037
  }
1038
1038
  if (card.icon) return card.icon;
1039
1039
  if (!card.iconName) return null;
1040
- return /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: card.iconName, size: 24 });
1040
+ return /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: card.iconName, size: 18 });
1041
1041
  },
1042
1042
  []
1043
1043
  );
@@ -1058,18 +1058,25 @@ 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-20 rounded-xl bg-linear-to-t from-black to-transparent transition-transform duration-300 group-hover:translate-y-0" }),
1061
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute top-0 right-0 bottom-0 left-0 translate-y-0 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
- (card.badgeText || card.avatarSrc || card.icon || card.iconName) && /* @__PURE__ */ jsxRuntime.jsxs(Badge, { variant: "default", className: cn(card.badgeClassName), children: [
1064
- renderBadgeIcon(card),
1065
- card.badgeText
1066
- ] }),
1067
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-5", children: [
1063
+ (card.badgeText || card.avatarSrc || card.icon || card.iconName) && /* @__PURE__ */ jsxRuntime.jsxs(
1064
+ Badge,
1065
+ {
1066
+ variant: "default",
1067
+ className: cn("py-1 px-4", card.badgeClassName),
1068
+ children: [
1069
+ renderBadgeIcon(card),
1070
+ card.badgeText
1071
+ ]
1072
+ }
1073
+ ),
1074
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-2 md:gap-4", children: [
1068
1075
  card.title && (typeof card.title === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
1069
1076
  "h3",
1070
1077
  {
1071
1078
  className: cn(
1072
- "text-xl md:text-2xl font-semibold",
1079
+ "text-lg md:text-xl font-semibold",
1073
1080
  card.titleClassName
1074
1081
  ),
1075
1082
  children: card.title
@@ -1078,20 +1085,19 @@ function FeatureImageCardsThreeColumn({
1078
1085
  "div",
1079
1086
  {
1080
1087
  className: cn(
1081
- "text-xl md:text-2xl font-semibold",
1088
+ "text-lg md:text-xl font-semibold",
1082
1089
  card.titleClassName
1083
1090
  ),
1084
1091
  children: card.title
1085
1092
  }
1086
1093
  )),
1087
1094
  card.linkText && card.link && /* @__PURE__ */ jsxRuntime.jsxs(
1088
- Pressable,
1095
+ "div",
1089
1096
  {
1090
1097
  className: cn(
1091
- "font-bold text-xs uppercase",
1098
+ "font-bold text-xs uppercase flex items-center gap-2",
1092
1099
  card.linkClassName
1093
1100
  ),
1094
- href: card.link,
1095
1101
  children: [
1096
1102
  card.linkText,
1097
1103
  /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/arrow-up-right", size: 18 })
@@ -165,6 +165,6 @@ interface FeatureImageCardsThreeColumnProps {
165
165
  * />
166
166
  * ```
167
167
  */
168
- declare function FeatureImageCardsThreeColumn({ title, description, headerClassName, cards, cardsSlot, className, containerClassName, titleClassName, descriptionClassName, gridClassName, cardClassName, optixFlowConfig, background, spacing, pattern, patternOpacity, patternClassName, }: FeatureImageCardsThreeColumnProps): React.JSX.Element;
168
+ declare function FeatureImageCardsThreeColumn({ title, description, headerClassName, cards, cardsSlot, className, containerClassName, spacing, titleClassName, descriptionClassName, gridClassName, cardClassName, optixFlowConfig, background, pattern, patternOpacity, patternClassName, }: FeatureImageCardsThreeColumnProps): React.JSX.Element;
169
169
 
170
170
  export { FeatureImageCardsThreeColumn, type FeatureImageCardsThreeColumnProps };
@@ -165,6 +165,6 @@ interface FeatureImageCardsThreeColumnProps {
165
165
  * />
166
166
  * ```
167
167
  */
168
- declare function FeatureImageCardsThreeColumn({ title, description, headerClassName, cards, cardsSlot, className, containerClassName, titleClassName, descriptionClassName, gridClassName, cardClassName, optixFlowConfig, background, spacing, pattern, patternOpacity, patternClassName, }: FeatureImageCardsThreeColumnProps): React.JSX.Element;
168
+ declare function FeatureImageCardsThreeColumn({ title, description, headerClassName, cards, cardsSlot, className, containerClassName, spacing, titleClassName, descriptionClassName, gridClassName, cardClassName, optixFlowConfig, background, pattern, patternOpacity, patternClassName, }: FeatureImageCardsThreeColumnProps): React.JSX.Element;
169
169
 
170
170
  export { FeatureImageCardsThreeColumn, type FeatureImageCardsThreeColumnProps };
@@ -979,14 +979,14 @@ function FeatureImageCardsThreeColumn({
979
979
  cards,
980
980
  cardsSlot,
981
981
  className,
982
- containerClassName,
982
+ containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
983
+ spacing = "py-6 md:py-32",
983
984
  titleClassName,
984
985
  descriptionClassName,
985
986
  gridClassName,
986
987
  cardClassName,
987
988
  optixFlowConfig,
988
989
  background,
989
- spacing,
990
990
  pattern,
991
991
  patternOpacity,
992
992
  patternClassName
@@ -1000,7 +1000,7 @@ function FeatureImageCardsThreeColumn({
1000
1000
  {
1001
1001
  src: card.imageSrc,
1002
1002
  alt: imageAlt,
1003
- className: "h-full max-h-[450px] w-full rounded-xl object-cover object-center",
1003
+ className: "h-full max-h-[450px] min-h-80 w-full rounded-xl object-cover object-center",
1004
1004
  loading: "lazy",
1005
1005
  optixFlowConfig
1006
1006
  }
@@ -1015,7 +1015,7 @@ function FeatureImageCardsThreeColumn({
1015
1015
  }
1016
1016
  if (card.icon) return card.icon;
1017
1017
  if (!card.iconName) return null;
1018
- return /* @__PURE__ */ jsx(DynamicIcon, { name: card.iconName, size: 24 });
1018
+ return /* @__PURE__ */ jsx(DynamicIcon, { name: card.iconName, size: 18 });
1019
1019
  },
1020
1020
  []
1021
1021
  );
@@ -1036,18 +1036,25 @@ 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-20 rounded-xl bg-linear-to-t from-black to-transparent transition-transform duration-300 group-hover:translate-y-0" }),
1039
+ /* @__PURE__ */ jsx("div", { className: "absolute top-0 right-0 bottom-0 left-0 translate-y-0 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
- (card.badgeText || card.avatarSrc || card.icon || card.iconName) && /* @__PURE__ */ jsxs(Badge, { variant: "default", className: cn(card.badgeClassName), children: [
1042
- renderBadgeIcon(card),
1043
- card.badgeText
1044
- ] }),
1045
- /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-5", children: [
1041
+ (card.badgeText || card.avatarSrc || card.icon || card.iconName) && /* @__PURE__ */ jsxs(
1042
+ Badge,
1043
+ {
1044
+ variant: "default",
1045
+ className: cn("py-1 px-4", card.badgeClassName),
1046
+ children: [
1047
+ renderBadgeIcon(card),
1048
+ card.badgeText
1049
+ ]
1050
+ }
1051
+ ),
1052
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-2 md:gap-4", children: [
1046
1053
  card.title && (typeof card.title === "string" ? /* @__PURE__ */ jsx(
1047
1054
  "h3",
1048
1055
  {
1049
1056
  className: cn(
1050
- "text-xl md:text-2xl font-semibold",
1057
+ "text-lg md:text-xl font-semibold",
1051
1058
  card.titleClassName
1052
1059
  ),
1053
1060
  children: card.title
@@ -1056,20 +1063,19 @@ function FeatureImageCardsThreeColumn({
1056
1063
  "div",
1057
1064
  {
1058
1065
  className: cn(
1059
- "text-xl md:text-2xl font-semibold",
1066
+ "text-lg md:text-xl font-semibold",
1060
1067
  card.titleClassName
1061
1068
  ),
1062
1069
  children: card.title
1063
1070
  }
1064
1071
  )),
1065
1072
  card.linkText && card.link && /* @__PURE__ */ jsxs(
1066
- Pressable,
1073
+ "div",
1067
1074
  {
1068
1075
  className: cn(
1069
- "font-bold text-xs uppercase",
1076
+ "font-bold text-xs uppercase flex items-center gap-2",
1070
1077
  card.linkClassName
1071
1078
  ),
1072
- href: card.link,
1073
1079
  children: [
1074
1080
  card.linkText,
1075
1081
  /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/arrow-up-right", size: 18 })
@@ -1021,7 +1021,7 @@ function FeatureNumberedCards({
1021
1021
  []
1022
1022
  );
1023
1023
  const cardImg = React.useCallback((feature) => {
1024
- if (!feature.image || !feature.imageSlot) return null;
1024
+ if (!feature.image && !feature.imageSlot) return null;
1025
1025
  if (feature.imageSlot) return feature.imageSlot;
1026
1026
  const imageAlt = feature.imageAlt || (typeof feature.title === "string" ? feature.title : "Feature image");
1027
1027
  return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "overflow-hidden h-full w-full rounded-t-lg rounded-b-none md:rounded-t-none md:rounded-l-none md:rounded-r-lg", children: /* @__PURE__ */ jsxRuntime.jsx(
@@ -1000,7 +1000,7 @@ function FeatureNumberedCards({
1000
1000
  []
1001
1001
  );
1002
1002
  const cardImg = useCallback((feature) => {
1003
- if (!feature.image || !feature.imageSlot) return null;
1003
+ if (!feature.image && !feature.imageSlot) return null;
1004
1004
  if (feature.imageSlot) return feature.imageSlot;
1005
1005
  const imageAlt = feature.imageAlt || (typeof feature.title === "string" ? feature.title : "Feature image");
1006
1006
  return /* @__PURE__ */ jsx("div", { className: "overflow-hidden h-full w-full rounded-t-lg rounded-b-none md:rounded-t-none md:rounded-l-none md:rounded-r-lg", children: /* @__PURE__ */ jsx(
@@ -997,7 +997,6 @@ function FeatureTabbedContentImage({
997
997
  slidesSlot,
998
998
  defaultTab,
999
999
  className,
1000
- containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
1001
1000
  headerClassName,
1002
1001
  titleClassName,
1003
1002
  descriptionClassName,
@@ -1009,6 +1008,7 @@ function FeatureTabbedContentImage({
1009
1008
  contentGridClassName,
1010
1009
  optixFlowConfig,
1011
1010
  background,
1011
+ containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
1012
1012
  spacing = "py-6 md:py-32",
1013
1013
  pattern,
1014
1014
  patternOpacity,
@@ -206,6 +206,6 @@ interface FeatureTabbedContentImageProps {
206
206
  * />
207
207
  * ```
208
208
  */
209
- declare function FeatureTabbedContentImage({ title, description, slides, slidesSlot, defaultTab, className, containerClassName, headerClassName, titleClassName, descriptionClassName, tabsWrapperClassName, tabsClassName, tabsListClassName, tabTriggerClassName, tabContentClassName, contentGridClassName, optixFlowConfig, background, spacing, pattern, patternOpacity, patternClassName, }: FeatureTabbedContentImageProps): React.JSX.Element;
209
+ declare function FeatureTabbedContentImage({ title, description, slides, slidesSlot, defaultTab, className, headerClassName, titleClassName, descriptionClassName, tabsWrapperClassName, tabsClassName, tabsListClassName, tabTriggerClassName, tabContentClassName, contentGridClassName, optixFlowConfig, background, containerClassName, spacing, pattern, patternOpacity, patternClassName, }: FeatureTabbedContentImageProps): React.JSX.Element;
210
210
 
211
211
  export { FeatureTabbedContentImage, type FeatureTabbedContentImageProps };
@@ -206,6 +206,6 @@ interface FeatureTabbedContentImageProps {
206
206
  * />
207
207
  * ```
208
208
  */
209
- declare function FeatureTabbedContentImage({ title, description, slides, slidesSlot, defaultTab, className, containerClassName, headerClassName, titleClassName, descriptionClassName, tabsWrapperClassName, tabsClassName, tabsListClassName, tabTriggerClassName, tabContentClassName, contentGridClassName, optixFlowConfig, background, spacing, pattern, patternOpacity, patternClassName, }: FeatureTabbedContentImageProps): React.JSX.Element;
209
+ declare function FeatureTabbedContentImage({ title, description, slides, slidesSlot, defaultTab, className, headerClassName, titleClassName, descriptionClassName, tabsWrapperClassName, tabsClassName, tabsListClassName, tabTriggerClassName, tabContentClassName, contentGridClassName, optixFlowConfig, background, containerClassName, spacing, pattern, patternOpacity, patternClassName, }: FeatureTabbedContentImageProps): React.JSX.Element;
210
210
 
211
211
  export { FeatureTabbedContentImage, type FeatureTabbedContentImageProps };
@@ -975,7 +975,6 @@ function FeatureTabbedContentImage({
975
975
  slidesSlot,
976
976
  defaultTab,
977
977
  className,
978
- containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
979
978
  headerClassName,
980
979
  titleClassName,
981
980
  descriptionClassName,
@@ -987,6 +986,7 @@ function FeatureTabbedContentImage({
987
986
  contentGridClassName,
988
987
  optixFlowConfig,
989
988
  background,
989
+ containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
990
990
  spacing = "py-6 md:py-32",
991
991
  pattern,
992
992
  patternOpacity,