@opensite/ui 2.6.6 → 2.6.7

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.
@@ -974,7 +974,8 @@ function ArticleCompactTocComponent({
974
974
  containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
975
975
  spacing = "hero",
976
976
  pattern,
977
- patternOpacity
977
+ patternOpacity,
978
+ patternClassName
978
979
  }) {
979
980
  const [activeSection, setActiveSection] = React5.useState(
980
981
  sections?.[0]?.id || ""
@@ -1015,7 +1016,7 @@ function ArticleCompactTocComponent({
1015
1016
  if (shareSlot) return shareSlot;
1016
1017
  if (!socialLinks || socialLinks.length === 0) return null;
1017
1018
  return /* @__PURE__ */ jsxs("div", { className: cn("mt-6 flex items-center gap-2", shareClassName), children: [
1018
- /* @__PURE__ */ jsx("span", { className: "text-sm text-muted-foreground", children: "Share:" }),
1019
+ /* @__PURE__ */ jsx("span", { className: "text-sm", children: "Share:" }),
1019
1020
  socialLinks.map((link, index) => /* @__PURE__ */ jsx(
1020
1021
  Pressable,
1021
1022
  {
@@ -1042,7 +1043,7 @@ function ArticleCompactTocComponent({
1042
1043
  href: `#${section.id}`,
1043
1044
  className: cn(
1044
1045
  "block text-sm transition-colors",
1045
- isActive ? "font-medium" : "text-muted-foreground hover:text-foreground"
1046
+ isActive ? "underline" : ""
1046
1047
  ),
1047
1048
  onClick: onLinkClick,
1048
1049
  children: section.title
@@ -1086,23 +1087,14 @@ function ArticleCompactTocComponent({
1086
1087
  )
1087
1088
  ] }) });
1088
1089
  }, [tocSlot, sections, isTocOpen, tocClassName, renderTocLinks]);
1090
+ const hasDesktopToc = !tocSlot && sections && sections.length > 0;
1089
1091
  const desktopTocContent = React5.useMemo(() => {
1090
- if (tocSlot) return null;
1091
- if (!sections || sections.length === 0) return null;
1092
- return /* @__PURE__ */ jsx(
1093
- "aside",
1094
- {
1095
- className: cn(
1096
- "hidden lg:block fixed top-24 right-8 w-64 max-h-[calc(100vh-8rem)] overflow-y-auto",
1097
- tocClassName
1098
- ),
1099
- children: /* @__PURE__ */ jsxs("nav", { className: "space-y-2 rounded-lg border bg-background p-4", children: [
1100
- /* @__PURE__ */ jsx("span", { className: "mb-3 block text-sm font-semibold", children: "Table of Contents" }),
1101
- renderTocLinks()
1102
- ] })
1103
- }
1104
- );
1105
- }, [tocSlot, sections, tocClassName, renderTocLinks]);
1092
+ if (!hasDesktopToc) return null;
1093
+ return /* @__PURE__ */ jsx("aside", { className: cn("hidden lg:block w-64 shrink-0", tocClassName), children: /* @__PURE__ */ jsxs("nav", { className: "sticky top-24 max-h-[calc(100vh-8rem)] overflow-y-auto space-y-2 rounded-lg border p-4", children: [
1094
+ /* @__PURE__ */ jsx("span", { className: "mb-3 block text-sm font-semibold", children: "Table of Contents" }),
1095
+ renderTocLinks()
1096
+ ] }) });
1097
+ }, [hasDesktopToc, tocClassName, renderTocLinks]);
1106
1098
  const heroMediaContent = React5.useMemo(() => {
1107
1099
  if (heroMediaSlot) return heroMediaSlot;
1108
1100
  if (!heroImageSrc) return null;
@@ -1125,20 +1117,20 @@ function ArticleCompactTocComponent({
1125
1117
  heroImageClassName,
1126
1118
  optixFlowConfig
1127
1119
  ]);
1128
- return /* @__PURE__ */ jsxs(
1120
+ return /* @__PURE__ */ jsx(
1129
1121
  Section,
1130
1122
  {
1131
1123
  background,
1132
1124
  spacing,
1133
1125
  pattern,
1134
1126
  patternOpacity,
1135
- className: cn("relative", className),
1127
+ patternClassName,
1128
+ className: cn(pattern && "overflow-visible", className),
1136
1129
  containerClassName,
1137
- children: [
1138
- desktopTocContent,
1139
- /* @__PURE__ */ jsxs("div", { className: cn("container", containerClassName), children: [
1140
- breadcrumbsContent,
1141
- /* @__PURE__ */ jsxs("div", { className: "relative", children: [
1130
+ children: /* @__PURE__ */ jsxs("div", { className: "relative", children: [
1131
+ breadcrumbsContent,
1132
+ /* @__PURE__ */ jsxs("div", { className: cn("relative", hasDesktopToc && "lg:flex lg:gap-8"), children: [
1133
+ /* @__PURE__ */ jsxs("div", { className: cn(hasDesktopToc && "min-w-0 lg:flex-1"), children: [
1142
1134
  title && (typeof title === "string" ? /* @__PURE__ */ jsx(
1143
1135
  "h1",
1144
1136
  {
@@ -1153,11 +1145,11 @@ function ArticleCompactTocComponent({
1153
1145
  "div",
1154
1146
  {
1155
1147
  className: cn(
1156
- "mt-4 flex flex-wrap items-center gap-4 text-sm text-muted-foreground",
1148
+ "mt-4 flex flex-wrap items-center gap-4 text-sm",
1157
1149
  metaClassName
1158
1150
  ),
1159
1151
  children: [
1160
- authorName && (authorHref ? /* @__PURE__ */ jsx(Pressable, { href: authorHref, className: "hover:underline", children: authorName }) : /* @__PURE__ */ jsx("span", { children: authorName })),
1152
+ authorName && /* @__PURE__ */ jsx(Pressable, { href: authorHref, children: authorName }),
1161
1153
  authorName && publishDate && /* @__PURE__ */ jsx(Separator, { orientation: "vertical", className: "h-4" }),
1162
1154
  publishDate && /* @__PURE__ */ jsx("span", { children: publishDate }),
1163
1155
  publishDate && readTime && /* @__PURE__ */ jsx(Separator, { orientation: "vertical", className: "h-4" }),
@@ -1166,7 +1158,6 @@ function ArticleCompactTocComponent({
1166
1158
  }
1167
1159
  ),
1168
1160
  shareContent,
1169
- /* @__PURE__ */ jsx(Separator, { className: "my-8" }),
1170
1161
  tocContent,
1171
1162
  children && /* @__PURE__ */ jsxs(
1172
1163
  "article",
@@ -1181,9 +1172,10 @@ function ArticleCompactTocComponent({
1181
1172
  ]
1182
1173
  }
1183
1174
  )
1184
- ] })
1175
+ ] }),
1176
+ desktopTocContent
1185
1177
  ] })
1186
- ]
1178
+ ] })
1187
1179
  }
1188
1180
  );
1189
1181
  }
@@ -896,7 +896,7 @@ function ArticleHeroProseComponent({
896
896
  dateFormat = "MMMM d, yyyy",
897
897
  optixFlowConfig,
898
898
  background,
899
- containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
899
+ containerClassName,
900
900
  spacing = "hero",
901
901
  pattern,
902
902
  patternOpacity
@@ -874,7 +874,7 @@ function ArticleHeroProseComponent({
874
874
  dateFormat = "MMMM d, yyyy",
875
875
  optixFlowConfig,
876
876
  background,
877
- containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
877
+ containerClassName,
878
878
  spacing = "hero",
879
879
  pattern,
880
880
  patternOpacity
@@ -925,7 +925,7 @@ function ArticleSidebarStickyComponent({
925
925
  {
926
926
  href: backHref,
927
927
  className: cn(
928
- "inline-flex items-center gap-2 text-sm text-muted-foreground hover:text-foreground",
928
+ "inline-flex items-center gap-2 text-sm",
929
929
  backLinkClassName
930
930
  ),
931
931
  children: [
@@ -954,7 +954,7 @@ function ArticleSidebarStickyComponent({
954
954
  children: authorName
955
955
  }
956
956
  ) : /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm font-medium", children: authorName }),
957
- publishDate && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-muted-foreground", children: publishDate })
957
+ publishDate && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs", children: publishDate })
958
958
  ] })
959
959
  ] });
960
960
  },
@@ -903,7 +903,7 @@ function ArticleSidebarStickyComponent({
903
903
  {
904
904
  href: backHref,
905
905
  className: cn(
906
- "inline-flex items-center gap-2 text-sm text-muted-foreground hover:text-foreground",
906
+ "inline-flex items-center gap-2 text-sm",
907
907
  backLinkClassName
908
908
  ),
909
909
  children: [
@@ -932,7 +932,7 @@ function ArticleSidebarStickyComponent({
932
932
  children: authorName
933
933
  }
934
934
  ) : /* @__PURE__ */ jsx("p", { className: "text-sm font-medium", children: authorName }),
935
- publishDate && /* @__PURE__ */ jsx("p", { className: "text-xs text-muted-foreground", children: publishDate })
935
+ publishDate && /* @__PURE__ */ jsx("p", { className: "text-xs", children: publishDate })
936
936
  ] })
937
937
  ] });
938
938
  },
@@ -898,7 +898,6 @@ var Section = React__namespace.default.forwardRef(
898
898
  Section.displayName = "Section";
899
899
  function ArticleSplitAnimatedComponent({
900
900
  className,
901
- containerClassName,
902
901
  imageContainerClassName,
903
902
  contentClassName,
904
903
  titleClassName,
@@ -922,25 +921,16 @@ function ArticleSplitAnimatedComponent({
922
921
  category,
923
922
  categoryHref,
924
923
  categorySlot,
925
- ctaActions: ctaActionsProp,
926
- ctaText,
927
- ctaHref,
924
+ ctaActions,
928
925
  ctaSlot,
929
926
  enableAnimations = true,
930
927
  optixFlowConfig,
931
928
  background,
932
- spacing,
933
929
  pattern,
934
- patternOpacity
930
+ patternOpacity,
931
+ containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
932
+ spacing = "lg"
935
933
  }) {
936
- const ctaActions = ctaActionsProp ?? (ctaText ? [
937
- {
938
- label: ctaText,
939
- href: ctaHref || "#",
940
- variant: "default",
941
- size: "lg"
942
- }
943
- ] : []);
944
934
  const MotionWrapper = enableAnimations ? framerMotion.motion.div : "div";
945
935
  const categoryContent = React__namespace.useMemo(() => {
946
936
  if (categorySlot) return categorySlot;
@@ -950,7 +940,7 @@ function ArticleSplitAnimatedComponent({
950
940
  {
951
941
  href: categoryHref,
952
942
  className: cn(
953
- "inline-block rounded-full bg-primary/20 px-3 py-1 text-sm font-medium text-primary-foreground backdrop-blur-sm transition-colors hover:bg-primary/30",
943
+ "inline-block rounded-full bg-primary px-3 py-1 text-sm font-medium text-primary-foreground backdrop-blur-sm transition-colors",
954
944
  categoryClassName
955
945
  ),
956
946
  children: category
@@ -987,7 +977,7 @@ function ArticleSplitAnimatedComponent({
987
977
  children: authorName
988
978
  }
989
979
  ) : /* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-medium", children: authorName }),
990
- authorRole && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-muted-foreground", children: authorRole })
980
+ authorRole && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm ", children: authorRole })
991
981
  ] })
992
982
  ] });
993
983
  }, [
@@ -1072,7 +1062,7 @@ function ArticleSplitAnimatedComponent({
1072
1062
  "div",
1073
1063
  {
1074
1064
  className: cn(
1075
- "flex items-center gap-4 text-sm text-muted-foreground",
1065
+ "flex items-center gap-4 text-sm ",
1076
1066
  metaClassName
1077
1067
  ),
1078
1068
  children: [
@@ -1091,17 +1081,8 @@ function ArticleSplitAnimatedComponent({
1091
1081
  ),
1092
1082
  children: title
1093
1083
  }
1094
- ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mt-4", titleClassName), children: title })),
1095
- description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
1096
- "p",
1097
- {
1098
- className: cn(
1099
- "mt-4 text-lg text-muted-foreground",
1100
- descriptionClassName
1101
- ),
1102
- children: description
1103
- }
1104
- ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mt-4", descriptionClassName), children: description })),
1084
+ ) : title),
1085
+ description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("mt-4 text-lg", descriptionClassName), children: description }) : description),
1105
1086
  authorContent,
1106
1087
  ctaContent
1107
1088
  ]
@@ -112,16 +112,6 @@ interface ArticleSplitAnimatedProps {
112
112
  * CTA actions
113
113
  */
114
114
  ctaActions?: ActionConfig[];
115
- /**
116
- * @deprecated Use ctaActions instead
117
- * CTA button text (backward compatibility)
118
- */
119
- ctaText?: string;
120
- /**
121
- * @deprecated Use ctaActions instead
122
- * CTA button href (backward compatibility)
123
- */
124
- ctaHref?: string;
125
115
  /**
126
116
  * Custom slot for CTA section (overrides ctaActions)
127
117
  */
@@ -152,6 +142,6 @@ interface ArticleSplitAnimatedProps {
152
142
  */
153
143
  patternOpacity?: number;
154
144
  }
155
- declare function ArticleSplitAnimatedComponent({ className, containerClassName, imageContainerClassName, contentClassName, titleClassName, descriptionClassName, authorClassName, categoryClassName, metaClassName, ctaClassName, title, description, image, imageAlt, heroMediaSlot, authorName, authorImage, authorRole, authorHref, authorSlot, publishDate, readTime, category, categoryHref, categorySlot, ctaActions: ctaActionsProp, ctaText, ctaHref, ctaSlot, enableAnimations, optixFlowConfig, background, spacing, pattern, patternOpacity, }: ArticleSplitAnimatedProps): react_jsx_runtime.JSX.Element;
145
+ declare function ArticleSplitAnimatedComponent({ className, imageContainerClassName, contentClassName, titleClassName, descriptionClassName, authorClassName, categoryClassName, metaClassName, ctaClassName, title, description, image, imageAlt, heroMediaSlot, authorName, authorImage, authorRole, authorHref, authorSlot, publishDate, readTime, category, categoryHref, categorySlot, ctaActions, ctaSlot, enableAnimations, optixFlowConfig, background, pattern, patternOpacity, containerClassName, spacing, }: ArticleSplitAnimatedProps): react_jsx_runtime.JSX.Element;
156
146
 
157
147
  export { ArticleSplitAnimatedComponent as ArticleSplitAnimated, type ArticleSplitAnimatedProps };
@@ -112,16 +112,6 @@ interface ArticleSplitAnimatedProps {
112
112
  * CTA actions
113
113
  */
114
114
  ctaActions?: ActionConfig[];
115
- /**
116
- * @deprecated Use ctaActions instead
117
- * CTA button text (backward compatibility)
118
- */
119
- ctaText?: string;
120
- /**
121
- * @deprecated Use ctaActions instead
122
- * CTA button href (backward compatibility)
123
- */
124
- ctaHref?: string;
125
115
  /**
126
116
  * Custom slot for CTA section (overrides ctaActions)
127
117
  */
@@ -152,6 +142,6 @@ interface ArticleSplitAnimatedProps {
152
142
  */
153
143
  patternOpacity?: number;
154
144
  }
155
- declare function ArticleSplitAnimatedComponent({ className, containerClassName, imageContainerClassName, contentClassName, titleClassName, descriptionClassName, authorClassName, categoryClassName, metaClassName, ctaClassName, title, description, image, imageAlt, heroMediaSlot, authorName, authorImage, authorRole, authorHref, authorSlot, publishDate, readTime, category, categoryHref, categorySlot, ctaActions: ctaActionsProp, ctaText, ctaHref, ctaSlot, enableAnimations, optixFlowConfig, background, spacing, pattern, patternOpacity, }: ArticleSplitAnimatedProps): react_jsx_runtime.JSX.Element;
145
+ declare function ArticleSplitAnimatedComponent({ className, imageContainerClassName, contentClassName, titleClassName, descriptionClassName, authorClassName, categoryClassName, metaClassName, ctaClassName, title, description, image, imageAlt, heroMediaSlot, authorName, authorImage, authorRole, authorHref, authorSlot, publishDate, readTime, category, categoryHref, categorySlot, ctaActions, ctaSlot, enableAnimations, optixFlowConfig, background, pattern, patternOpacity, containerClassName, spacing, }: ArticleSplitAnimatedProps): react_jsx_runtime.JSX.Element;
156
146
 
157
147
  export { ArticleSplitAnimatedComponent as ArticleSplitAnimated, type ArticleSplitAnimatedProps };
@@ -875,7 +875,6 @@ var Section = React__default.forwardRef(
875
875
  Section.displayName = "Section";
876
876
  function ArticleSplitAnimatedComponent({
877
877
  className,
878
- containerClassName,
879
878
  imageContainerClassName,
880
879
  contentClassName,
881
880
  titleClassName,
@@ -899,25 +898,16 @@ function ArticleSplitAnimatedComponent({
899
898
  category,
900
899
  categoryHref,
901
900
  categorySlot,
902
- ctaActions: ctaActionsProp,
903
- ctaText,
904
- ctaHref,
901
+ ctaActions,
905
902
  ctaSlot,
906
903
  enableAnimations = true,
907
904
  optixFlowConfig,
908
905
  background,
909
- spacing,
910
906
  pattern,
911
- patternOpacity
907
+ patternOpacity,
908
+ containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
909
+ spacing = "lg"
912
910
  }) {
913
- const ctaActions = ctaActionsProp ?? (ctaText ? [
914
- {
915
- label: ctaText,
916
- href: ctaHref || "#",
917
- variant: "default",
918
- size: "lg"
919
- }
920
- ] : []);
921
911
  const MotionWrapper = enableAnimations ? motion.div : "div";
922
912
  const categoryContent = React.useMemo(() => {
923
913
  if (categorySlot) return categorySlot;
@@ -927,7 +917,7 @@ function ArticleSplitAnimatedComponent({
927
917
  {
928
918
  href: categoryHref,
929
919
  className: cn(
930
- "inline-block rounded-full bg-primary/20 px-3 py-1 text-sm font-medium text-primary-foreground backdrop-blur-sm transition-colors hover:bg-primary/30",
920
+ "inline-block rounded-full bg-primary px-3 py-1 text-sm font-medium text-primary-foreground backdrop-blur-sm transition-colors",
931
921
  categoryClassName
932
922
  ),
933
923
  children: category
@@ -964,7 +954,7 @@ function ArticleSplitAnimatedComponent({
964
954
  children: authorName
965
955
  }
966
956
  ) : /* @__PURE__ */ jsx("p", { className: "font-medium", children: authorName }),
967
- authorRole && /* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", children: authorRole })
957
+ authorRole && /* @__PURE__ */ jsx("p", { className: "text-sm ", children: authorRole })
968
958
  ] })
969
959
  ] });
970
960
  }, [
@@ -1049,7 +1039,7 @@ function ArticleSplitAnimatedComponent({
1049
1039
  "div",
1050
1040
  {
1051
1041
  className: cn(
1052
- "flex items-center gap-4 text-sm text-muted-foreground",
1042
+ "flex items-center gap-4 text-sm ",
1053
1043
  metaClassName
1054
1044
  ),
1055
1045
  children: [
@@ -1068,17 +1058,8 @@ function ArticleSplitAnimatedComponent({
1068
1058
  ),
1069
1059
  children: title
1070
1060
  }
1071
- ) : /* @__PURE__ */ jsx("div", { className: cn("mt-4", titleClassName), children: title })),
1072
- description && (typeof description === "string" ? /* @__PURE__ */ jsx(
1073
- "p",
1074
- {
1075
- className: cn(
1076
- "mt-4 text-lg text-muted-foreground",
1077
- descriptionClassName
1078
- ),
1079
- children: description
1080
- }
1081
- ) : /* @__PURE__ */ jsx("div", { className: cn("mt-4", descriptionClassName), children: description })),
1061
+ ) : title),
1062
+ description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("mt-4 text-lg", descriptionClassName), children: description }) : description),
1082
1063
  authorContent,
1083
1064
  ctaContent
1084
1065
  ]
@@ -1098,7 +1098,7 @@ function CarouselPortfolioHero({
1098
1098
  "div",
1099
1099
  {
1100
1100
  className: cn(
1101
- "ml-auto flex items-center gap-2",
1101
+ "ml-auto flex items-center gap-2 mt-4 md:mt-8",
1102
1102
  navigationClassName
1103
1103
  ),
1104
1104
  children: [
@@ -1077,7 +1077,7 @@ function CarouselPortfolioHero({
1077
1077
  "div",
1078
1078
  {
1079
1079
  className: cn(
1080
- "ml-auto flex items-center gap-2",
1080
+ "ml-auto flex items-center gap-2 mt-4 md:mt-8",
1081
1081
  navigationClassName
1082
1082
  ),
1083
1083
  children: [