@opensite/ui 0.6.3 → 0.6.5

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 (61) hide show
  1. package/dist/about-startup-team.cjs +2 -2
  2. package/dist/about-startup-team.js +2 -2
  3. package/dist/article-breadcrumb-social.cjs +434 -215
  4. package/dist/article-breadcrumb-social.d.cts +19 -1
  5. package/dist/article-breadcrumb-social.d.ts +19 -1
  6. package/dist/article-breadcrumb-social.js +434 -214
  7. package/dist/article-chapters-author.cjs +422 -204
  8. package/dist/article-chapters-author.d.cts +19 -1
  9. package/dist/article-chapters-author.d.ts +19 -1
  10. package/dist/article-chapters-author.js +422 -203
  11. package/dist/article-compact-toc.cjs +429 -73
  12. package/dist/article-compact-toc.d.cts +19 -1
  13. package/dist/article-compact-toc.d.ts +19 -1
  14. package/dist/article-compact-toc.js +430 -73
  15. package/dist/article-hero-prose.cjs +394 -347
  16. package/dist/article-hero-prose.d.cts +19 -1
  17. package/dist/article-hero-prose.d.ts +19 -1
  18. package/dist/article-hero-prose.js +396 -348
  19. package/dist/article-sidebar-sticky.cjs +398 -152
  20. package/dist/article-sidebar-sticky.d.cts +19 -1
  21. package/dist/article-sidebar-sticky.d.ts +19 -1
  22. package/dist/article-sidebar-sticky.js +400 -153
  23. package/dist/article-split-animated.cjs +422 -35
  24. package/dist/article-split-animated.d.cts +19 -1
  25. package/dist/article-split-animated.d.ts +19 -1
  26. package/dist/article-split-animated.js +423 -35
  27. package/dist/article-toc-sidebar.cjs +417 -356
  28. package/dist/article-toc-sidebar.d.cts +19 -1
  29. package/dist/article-toc-sidebar.d.ts +19 -1
  30. package/dist/article-toc-sidebar.js +417 -355
  31. package/dist/blog-cards-read-time.cjs +66 -27
  32. package/dist/blog-cards-read-time.js +66 -27
  33. package/dist/blog-cards-tagline-cta.cjs +64 -14
  34. package/dist/blog-cards-tagline-cta.js +64 -14
  35. package/dist/blog-carousel-apple.cjs +1255 -0
  36. package/dist/blog-carousel-apple.d.cts +113 -0
  37. package/dist/blog-carousel-apple.d.ts +113 -0
  38. package/dist/blog-carousel-apple.js +1234 -0
  39. package/dist/blog-category-overlay.cjs +77 -15
  40. package/dist/blog-category-overlay.js +77 -15
  41. package/dist/blog-featured-popular.cjs +72 -14
  42. package/dist/blog-featured-popular.js +72 -14
  43. package/dist/blog-filtered-results.cjs +122 -39
  44. package/dist/blog-filtered-results.js +122 -39
  45. package/dist/blog-grid-author-cards.cjs +40 -6
  46. package/dist/blog-grid-author-cards.js +40 -6
  47. package/dist/blog-grid-nine-posts.cjs +40 -6
  48. package/dist/blog-grid-nine-posts.js +40 -6
  49. package/dist/blog-horizontal-cards.cjs +34 -6
  50. package/dist/blog-horizontal-cards.js +34 -6
  51. package/dist/blog-horizontal-timeline.cjs +41 -12
  52. package/dist/blog-horizontal-timeline.js +41 -12
  53. package/dist/blog-masonry-featured.cjs +96 -52
  54. package/dist/blog-masonry-featured.js +96 -52
  55. package/dist/blog-related-articles.cjs +47 -9
  56. package/dist/blog-related-articles.js +47 -9
  57. package/dist/blog-tech-insights.cjs +78 -14
  58. package/dist/blog-tech-insights.js +78 -14
  59. package/dist/registry.cjs +1036 -687
  60. package/dist/registry.js +1036 -687
  61. package/package.json +1 -1
@@ -1032,28 +1032,27 @@ function BlogCardsReadTime({
1032
1032
  postCardClassName,
1033
1033
  viewAllClassName,
1034
1034
  optixFlowConfig,
1035
- background = "white",
1036
- spacing = "xl",
1035
+ background,
1036
+ spacing,
1037
1037
  pattern,
1038
1038
  patternOpacity
1039
1039
  }) {
1040
1040
  const renderedViewAllAction = React__namespace.useMemo(() => {
1041
1041
  if (viewAllSlot) return viewAllSlot;
1042
1042
  if (!viewAllAction) return null;
1043
- const { label, icon, iconAfter, children, className: actionClassName, ...pressableProps } = viewAllAction;
1044
- return /* @__PURE__ */ jsxRuntime.jsx(
1045
- Pressable,
1046
- {
1047
- asButton: true,
1048
- className: actionClassName,
1049
- ...pressableProps,
1050
- children: children ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1051
- icon,
1052
- label,
1053
- iconAfter
1054
- ] })
1055
- }
1056
- );
1043
+ const {
1044
+ label,
1045
+ icon,
1046
+ iconAfter,
1047
+ children,
1048
+ className: actionClassName,
1049
+ ...pressableProps
1050
+ } = viewAllAction;
1051
+ return /* @__PURE__ */ jsxRuntime.jsx(Pressable, { asButton: true, className: actionClassName, ...pressableProps, children: children ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1052
+ icon,
1053
+ label,
1054
+ iconAfter
1055
+ ] }) });
1057
1056
  }, [viewAllSlot, viewAllAction]);
1058
1057
  const renderedPosts = React__namespace.useMemo(() => {
1059
1058
  if (postsSlot) return postsSlot;
@@ -1082,7 +1081,13 @@ function BlogCardsReadTime({
1082
1081
  /* @__PURE__ */ jsxRuntime.jsx(Separator, { className: "my-5" }),
1083
1082
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between gap-4", children: [
1084
1083
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3", children: [
1085
- /* @__PURE__ */ jsxRuntime.jsx(Avatar, { className: "size-9 rounded-full ring-1 ring-input", children: post.authorAvatar && /* @__PURE__ */ jsxRuntime.jsx(AvatarImage, { src: post.authorAvatar, alt: typeof post.author === "string" ? post.author : "Author" }) }),
1084
+ /* @__PURE__ */ jsxRuntime.jsx(Avatar, { className: "size-9 rounded-full ring-1 ring-input", children: post.authorAvatar && /* @__PURE__ */ jsxRuntime.jsx(
1085
+ AvatarImage,
1086
+ {
1087
+ src: post.authorAvatar,
1088
+ alt: typeof post.author === "string" ? post.author : "Author"
1089
+ }
1090
+ ) }),
1086
1091
  post.author && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm font-medium", children: post.author })
1087
1092
  ] }),
1088
1093
  post.readTime && /* @__PURE__ */ jsxRuntime.jsx(Badge, { variant: "secondary", className: "h-fit", children: post.readTime })
@@ -1103,16 +1108,50 @@ function BlogCardsReadTime({
1103
1108
  pattern,
1104
1109
  patternOpacity,
1105
1110
  children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("container", containerClassName), children: [
1106
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("mx-auto flex max-w-3xl flex-col items-center gap-4 text-center", headerClassName), children: [
1107
- badge && /* @__PURE__ */ jsxRuntime.jsx("div", { className: badgeClassName, children: typeof badge === "string" ? /* @__PURE__ */ jsxRuntime.jsxs(Badge, { variant: "outline", className: "gap-1 py-1", children: [
1108
- /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/file-text", size: 16, className: "h-full w-4" }),
1109
- " ",
1110
- badge
1111
- ] }) : badge }),
1112
- heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h1", { className: cn("text-4xl font-semibold text-balance", headingClassName), children: heading }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: headingClassName, children: heading })),
1113
- description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("text-muted-foreground", descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description }))
1114
- ] }),
1115
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mt-20 grid gap-4 md:grid-cols-2 lg:grid-cols-3", postsClassName), children: renderedPosts }),
1111
+ /* @__PURE__ */ jsxRuntime.jsxs(
1112
+ "div",
1113
+ {
1114
+ className: cn(
1115
+ "mx-auto flex max-w-3xl flex-col items-center gap-4 text-center",
1116
+ headerClassName
1117
+ ),
1118
+ children: [
1119
+ badge && /* @__PURE__ */ jsxRuntime.jsx("div", { className: badgeClassName, children: typeof badge === "string" ? /* @__PURE__ */ jsxRuntime.jsxs(Badge, { variant: "outline", className: "gap-1 py-1", children: [
1120
+ /* @__PURE__ */ jsxRuntime.jsx(
1121
+ DynamicIcon,
1122
+ {
1123
+ name: "lucide/file-text",
1124
+ size: 16,
1125
+ className: "h-full w-4"
1126
+ }
1127
+ ),
1128
+ " ",
1129
+ badge
1130
+ ] }) : badge }),
1131
+ heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
1132
+ "h1",
1133
+ {
1134
+ className: cn(
1135
+ "text-4xl font-semibold text-balance",
1136
+ headingClassName
1137
+ ),
1138
+ children: heading
1139
+ }
1140
+ ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: headingClassName, children: heading })),
1141
+ description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("text-muted-foreground", descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description }))
1142
+ ]
1143
+ }
1144
+ ),
1145
+ /* @__PURE__ */ jsxRuntime.jsx(
1146
+ "div",
1147
+ {
1148
+ className: cn(
1149
+ "mt-20 grid gap-4 md:grid-cols-2 lg:grid-cols-3",
1150
+ postsClassName
1151
+ ),
1152
+ children: renderedPosts
1153
+ }
1154
+ ),
1116
1155
  (viewAllSlot || viewAllAction) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mt-10 flex justify-center", viewAllClassName), children: renderedViewAllAction })
1117
1156
  ] })
1118
1157
  }
@@ -1009,28 +1009,27 @@ function BlogCardsReadTime({
1009
1009
  postCardClassName,
1010
1010
  viewAllClassName,
1011
1011
  optixFlowConfig,
1012
- background = "white",
1013
- spacing = "xl",
1012
+ background,
1013
+ spacing,
1014
1014
  pattern,
1015
1015
  patternOpacity
1016
1016
  }) {
1017
1017
  const renderedViewAllAction = React.useMemo(() => {
1018
1018
  if (viewAllSlot) return viewAllSlot;
1019
1019
  if (!viewAllAction) return null;
1020
- const { label, icon, iconAfter, children, className: actionClassName, ...pressableProps } = viewAllAction;
1021
- return /* @__PURE__ */ jsx(
1022
- Pressable,
1023
- {
1024
- asButton: true,
1025
- className: actionClassName,
1026
- ...pressableProps,
1027
- children: children ?? /* @__PURE__ */ jsxs(Fragment, { children: [
1028
- icon,
1029
- label,
1030
- iconAfter
1031
- ] })
1032
- }
1033
- );
1020
+ const {
1021
+ label,
1022
+ icon,
1023
+ iconAfter,
1024
+ children,
1025
+ className: actionClassName,
1026
+ ...pressableProps
1027
+ } = viewAllAction;
1028
+ return /* @__PURE__ */ jsx(Pressable, { asButton: true, className: actionClassName, ...pressableProps, children: children ?? /* @__PURE__ */ jsxs(Fragment, { children: [
1029
+ icon,
1030
+ label,
1031
+ iconAfter
1032
+ ] }) });
1034
1033
  }, [viewAllSlot, viewAllAction]);
1035
1034
  const renderedPosts = React.useMemo(() => {
1036
1035
  if (postsSlot) return postsSlot;
@@ -1059,7 +1058,13 @@ function BlogCardsReadTime({
1059
1058
  /* @__PURE__ */ jsx(Separator, { className: "my-5" }),
1060
1059
  /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between gap-4", children: [
1061
1060
  /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3", children: [
1062
- /* @__PURE__ */ jsx(Avatar, { className: "size-9 rounded-full ring-1 ring-input", children: post.authorAvatar && /* @__PURE__ */ jsx(AvatarImage, { src: post.authorAvatar, alt: typeof post.author === "string" ? post.author : "Author" }) }),
1061
+ /* @__PURE__ */ jsx(Avatar, { className: "size-9 rounded-full ring-1 ring-input", children: post.authorAvatar && /* @__PURE__ */ jsx(
1062
+ AvatarImage,
1063
+ {
1064
+ src: post.authorAvatar,
1065
+ alt: typeof post.author === "string" ? post.author : "Author"
1066
+ }
1067
+ ) }),
1063
1068
  post.author && /* @__PURE__ */ jsx("span", { className: "text-sm font-medium", children: post.author })
1064
1069
  ] }),
1065
1070
  post.readTime && /* @__PURE__ */ jsx(Badge, { variant: "secondary", className: "h-fit", children: post.readTime })
@@ -1080,16 +1085,50 @@ function BlogCardsReadTime({
1080
1085
  pattern,
1081
1086
  patternOpacity,
1082
1087
  children: /* @__PURE__ */ jsxs("div", { className: cn("container", containerClassName), children: [
1083
- /* @__PURE__ */ jsxs("div", { className: cn("mx-auto flex max-w-3xl flex-col items-center gap-4 text-center", headerClassName), children: [
1084
- badge && /* @__PURE__ */ jsx("div", { className: badgeClassName, children: typeof badge === "string" ? /* @__PURE__ */ jsxs(Badge, { variant: "outline", className: "gap-1 py-1", children: [
1085
- /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/file-text", size: 16, className: "h-full w-4" }),
1086
- " ",
1087
- badge
1088
- ] }) : badge }),
1089
- heading && (typeof heading === "string" ? /* @__PURE__ */ jsx("h1", { className: cn("text-4xl font-semibold text-balance", headingClassName), children: heading }) : /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading })),
1090
- description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("text-muted-foreground", descriptionClassName), children: description }) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description }))
1091
- ] }),
1092
- /* @__PURE__ */ jsx("div", { className: cn("mt-20 grid gap-4 md:grid-cols-2 lg:grid-cols-3", postsClassName), children: renderedPosts }),
1088
+ /* @__PURE__ */ jsxs(
1089
+ "div",
1090
+ {
1091
+ className: cn(
1092
+ "mx-auto flex max-w-3xl flex-col items-center gap-4 text-center",
1093
+ headerClassName
1094
+ ),
1095
+ children: [
1096
+ badge && /* @__PURE__ */ jsx("div", { className: badgeClassName, children: typeof badge === "string" ? /* @__PURE__ */ jsxs(Badge, { variant: "outline", className: "gap-1 py-1", children: [
1097
+ /* @__PURE__ */ jsx(
1098
+ DynamicIcon,
1099
+ {
1100
+ name: "lucide/file-text",
1101
+ size: 16,
1102
+ className: "h-full w-4"
1103
+ }
1104
+ ),
1105
+ " ",
1106
+ badge
1107
+ ] }) : badge }),
1108
+ heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
1109
+ "h1",
1110
+ {
1111
+ className: cn(
1112
+ "text-4xl font-semibold text-balance",
1113
+ headingClassName
1114
+ ),
1115
+ children: heading
1116
+ }
1117
+ ) : /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading })),
1118
+ description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("text-muted-foreground", descriptionClassName), children: description }) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description }))
1119
+ ]
1120
+ }
1121
+ ),
1122
+ /* @__PURE__ */ jsx(
1123
+ "div",
1124
+ {
1125
+ className: cn(
1126
+ "mt-20 grid gap-4 md:grid-cols-2 lg:grid-cols-3",
1127
+ postsClassName
1128
+ ),
1129
+ children: renderedPosts
1130
+ }
1131
+ ),
1093
1132
  (viewAllSlot || viewAllAction) && /* @__PURE__ */ jsx("div", { className: cn("mt-10 flex justify-center", viewAllClassName), children: renderedViewAllAction })
1094
1133
  ] })
1095
1134
  }
@@ -1026,19 +1026,30 @@ function BlogCardsTaglineCta({
1026
1026
  postsClassName,
1027
1027
  postCardClassName,
1028
1028
  optixFlowConfig,
1029
- background = "white",
1030
- spacing = "xl",
1029
+ background,
1030
+ spacing,
1031
1031
  pattern,
1032
1032
  patternOpacity
1033
1033
  }) {
1034
1034
  const ctaActionContent = React__namespace.useMemo(() => {
1035
1035
  if (ctaSlot) return ctaSlot;
1036
1036
  if (!ctaAction) return null;
1037
- const { label, icon, iconAfter, children, className: actionClassName, ...pressableProps } = ctaAction;
1037
+ const {
1038
+ label,
1039
+ icon,
1040
+ iconAfter,
1041
+ children,
1042
+ className: actionClassName,
1043
+ ...pressableProps
1044
+ } = ctaAction;
1038
1045
  return /* @__PURE__ */ jsxRuntime.jsx(
1039
1046
  Pressable,
1040
1047
  {
1041
- className: cn("w-full sm:w-auto inline-flex items-center", actionClassName, ctaClassName),
1048
+ className: cn(
1049
+ "w-full sm:w-auto inline-flex items-center",
1050
+ actionClassName,
1051
+ ctaClassName
1052
+ ),
1042
1053
  ...pressableProps,
1043
1054
  children: children ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1044
1055
  icon,
@@ -1059,7 +1070,10 @@ function BlogCardsTaglineCta({
1059
1070
  return /* @__PURE__ */ jsxRuntime.jsxs(
1060
1071
  Card,
1061
1072
  {
1062
- className: cn("grid grid-rows-[auto_auto_1fr_auto] overflow-hidden pt-0", postCardClassName),
1073
+ className: cn(
1074
+ "grid grid-rows-[auto_auto_1fr_auto] overflow-hidden pt-0",
1075
+ postCardClassName
1076
+ ),
1063
1077
  children: [
1064
1078
  post.image && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "aspect-video w-full", children: /* @__PURE__ */ jsxRuntime.jsx(
1065
1079
  Pressable,
@@ -1111,15 +1125,51 @@ function BlogCardsTaglineCta({
1111
1125
  className: cn(className),
1112
1126
  pattern,
1113
1127
  patternOpacity,
1114
- children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("container mx-auto flex flex-col items-center gap-16 lg:px-16", containerClassName), children: [
1115
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("text-center", headerClassName), children: [
1116
- badge && (typeof badge === "string" ? /* @__PURE__ */ jsxRuntime.jsx(Badge, { variant: "secondary", className: cn("mb-6", badgeClassName), children: badge }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-6", badgeClassName), children: badge })),
1117
- heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h2", { className: cn("mb-3 text-3xl font-semibold text-pretty md:mb-4 md:text-4xl lg:mb-6 lg:max-w-3xl lg:text-5xl", headingClassName), children: heading }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: headingClassName, children: heading })),
1118
- description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("mb-8 text-muted-foreground md:text-base lg:max-w-2xl lg:text-lg", descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description })),
1119
- ctaActionContent
1120
- ] }),
1121
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("grid gap-6 md:grid-cols-2 lg:grid-cols-3 lg:gap-8", postsClassName), children: postsContent })
1122
- ] })
1128
+ children: /* @__PURE__ */ jsxRuntime.jsxs(
1129
+ "div",
1130
+ {
1131
+ className: cn(
1132
+ "container mx-auto flex flex-col items-center gap-16 lg:px-16",
1133
+ containerClassName
1134
+ ),
1135
+ children: [
1136
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("text-center", headerClassName), children: [
1137
+ badge && (typeof badge === "string" ? /* @__PURE__ */ jsxRuntime.jsx(Badge, { variant: "secondary", className: cn("mb-6", badgeClassName), children: badge }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-6", badgeClassName), children: badge })),
1138
+ heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
1139
+ "h2",
1140
+ {
1141
+ className: cn(
1142
+ "mb-3 text-3xl font-semibold text-pretty md:mb-4 md:text-4xl lg:mb-6 lg:max-w-3xl lg:text-5xl",
1143
+ headingClassName
1144
+ ),
1145
+ children: heading
1146
+ }
1147
+ ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: headingClassName, children: heading })),
1148
+ description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
1149
+ "p",
1150
+ {
1151
+ className: cn(
1152
+ "mb-8 text-muted-foreground md:text-base lg:max-w-2xl lg:text-lg",
1153
+ descriptionClassName
1154
+ ),
1155
+ children: description
1156
+ }
1157
+ ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description })),
1158
+ ctaActionContent
1159
+ ] }),
1160
+ /* @__PURE__ */ jsxRuntime.jsx(
1161
+ "div",
1162
+ {
1163
+ className: cn(
1164
+ "grid gap-6 md:grid-cols-2 lg:grid-cols-3 lg:gap-8",
1165
+ postsClassName
1166
+ ),
1167
+ children: postsContent
1168
+ }
1169
+ )
1170
+ ]
1171
+ }
1172
+ )
1123
1173
  }
1124
1174
  );
1125
1175
  }
@@ -1005,19 +1005,30 @@ function BlogCardsTaglineCta({
1005
1005
  postsClassName,
1006
1006
  postCardClassName,
1007
1007
  optixFlowConfig,
1008
- background = "white",
1009
- spacing = "xl",
1008
+ background,
1009
+ spacing,
1010
1010
  pattern,
1011
1011
  patternOpacity
1012
1012
  }) {
1013
1013
  const ctaActionContent = React.useMemo(() => {
1014
1014
  if (ctaSlot) return ctaSlot;
1015
1015
  if (!ctaAction) return null;
1016
- const { label, icon, iconAfter, children, className: actionClassName, ...pressableProps } = ctaAction;
1016
+ const {
1017
+ label,
1018
+ icon,
1019
+ iconAfter,
1020
+ children,
1021
+ className: actionClassName,
1022
+ ...pressableProps
1023
+ } = ctaAction;
1017
1024
  return /* @__PURE__ */ jsx(
1018
1025
  Pressable,
1019
1026
  {
1020
- className: cn("w-full sm:w-auto inline-flex items-center", actionClassName, ctaClassName),
1027
+ className: cn(
1028
+ "w-full sm:w-auto inline-flex items-center",
1029
+ actionClassName,
1030
+ ctaClassName
1031
+ ),
1021
1032
  ...pressableProps,
1022
1033
  children: children ?? /* @__PURE__ */ jsxs(Fragment, { children: [
1023
1034
  icon,
@@ -1038,7 +1049,10 @@ function BlogCardsTaglineCta({
1038
1049
  return /* @__PURE__ */ jsxs(
1039
1050
  Card,
1040
1051
  {
1041
- className: cn("grid grid-rows-[auto_auto_1fr_auto] overflow-hidden pt-0", postCardClassName),
1052
+ className: cn(
1053
+ "grid grid-rows-[auto_auto_1fr_auto] overflow-hidden pt-0",
1054
+ postCardClassName
1055
+ ),
1042
1056
  children: [
1043
1057
  post.image && /* @__PURE__ */ jsx("div", { className: "aspect-video w-full", children: /* @__PURE__ */ jsx(
1044
1058
  Pressable,
@@ -1090,15 +1104,51 @@ function BlogCardsTaglineCta({
1090
1104
  className: cn(className),
1091
1105
  pattern,
1092
1106
  patternOpacity,
1093
- children: /* @__PURE__ */ jsxs("div", { className: cn("container mx-auto flex flex-col items-center gap-16 lg:px-16", containerClassName), children: [
1094
- /* @__PURE__ */ jsxs("div", { className: cn("text-center", headerClassName), children: [
1095
- badge && (typeof badge === "string" ? /* @__PURE__ */ jsx(Badge, { variant: "secondary", className: cn("mb-6", badgeClassName), children: badge }) : /* @__PURE__ */ jsx("div", { className: cn("mb-6", badgeClassName), children: badge })),
1096
- heading && (typeof heading === "string" ? /* @__PURE__ */ jsx("h2", { className: cn("mb-3 text-3xl font-semibold text-pretty md:mb-4 md:text-4xl lg:mb-6 lg:max-w-3xl lg:text-5xl", headingClassName), children: heading }) : /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading })),
1097
- description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("mb-8 text-muted-foreground md:text-base lg:max-w-2xl lg:text-lg", descriptionClassName), children: description }) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description })),
1098
- ctaActionContent
1099
- ] }),
1100
- /* @__PURE__ */ jsx("div", { className: cn("grid gap-6 md:grid-cols-2 lg:grid-cols-3 lg:gap-8", postsClassName), children: postsContent })
1101
- ] })
1107
+ children: /* @__PURE__ */ jsxs(
1108
+ "div",
1109
+ {
1110
+ className: cn(
1111
+ "container mx-auto flex flex-col items-center gap-16 lg:px-16",
1112
+ containerClassName
1113
+ ),
1114
+ children: [
1115
+ /* @__PURE__ */ jsxs("div", { className: cn("text-center", headerClassName), children: [
1116
+ badge && (typeof badge === "string" ? /* @__PURE__ */ jsx(Badge, { variant: "secondary", className: cn("mb-6", badgeClassName), children: badge }) : /* @__PURE__ */ jsx("div", { className: cn("mb-6", badgeClassName), children: badge })),
1117
+ heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
1118
+ "h2",
1119
+ {
1120
+ className: cn(
1121
+ "mb-3 text-3xl font-semibold text-pretty md:mb-4 md:text-4xl lg:mb-6 lg:max-w-3xl lg:text-5xl",
1122
+ headingClassName
1123
+ ),
1124
+ children: heading
1125
+ }
1126
+ ) : /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading })),
1127
+ description && (typeof description === "string" ? /* @__PURE__ */ jsx(
1128
+ "p",
1129
+ {
1130
+ className: cn(
1131
+ "mb-8 text-muted-foreground md:text-base lg:max-w-2xl lg:text-lg",
1132
+ descriptionClassName
1133
+ ),
1134
+ children: description
1135
+ }
1136
+ ) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description })),
1137
+ ctaActionContent
1138
+ ] }),
1139
+ /* @__PURE__ */ jsx(
1140
+ "div",
1141
+ {
1142
+ className: cn(
1143
+ "grid gap-6 md:grid-cols-2 lg:grid-cols-3 lg:gap-8",
1144
+ postsClassName
1145
+ ),
1146
+ children: postsContent
1147
+ }
1148
+ )
1149
+ ]
1150
+ }
1151
+ )
1102
1152
  }
1103
1153
  );
1104
1154
  }