@opensite/ui 2.6.1 → 2.6.3

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.
@@ -828,11 +828,11 @@ var Section = React__namespace.default.forwardRef(
828
828
  Section.displayName = "Section";
829
829
  function BlogMasonryFeaturedComponent({
830
830
  heading,
831
+ description,
831
832
  posts,
832
833
  featuredSlot,
833
834
  postsSlot,
834
835
  className,
835
- containerClassName,
836
836
  headingClassName,
837
837
  postsClassName,
838
838
  featuredClassName,
@@ -840,7 +840,8 @@ function BlogMasonryFeaturedComponent({
840
840
  postCardClassName,
841
841
  optixFlowConfig,
842
842
  background,
843
- spacing,
843
+ containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
844
+ spacing = "py-12 md:py-32",
844
845
  pattern,
845
846
  patternOpacity
846
847
  }) {
@@ -849,7 +850,7 @@ function BlogMasonryFeaturedComponent({
849
850
  const featuredPostContent = React__namespace.useMemo(() => {
850
851
  if (featuredSlot) return featuredSlot;
851
852
  if (!featuredPost) return null;
852
- const postHref = featuredPost.href || featuredPost.url || featuredPost.link || "#";
853
+ const postHref = featuredPost.href || featuredPost.url || featuredPost.link;
853
854
  return /* @__PURE__ */ jsxRuntime.jsx(
854
855
  "div",
855
856
  {
@@ -876,13 +877,13 @@ function BlogMasonryFeaturedComponent({
876
877
  }
877
878
  ),
878
879
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-5", children: [
879
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-2.5 flex items-center gap-1 text-sm text-muted-foreground", children: [
880
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-2.5 flex items-center gap-1 text-sm", children: [
880
881
  (featuredPost.date || featuredPost.published) && /* @__PURE__ */ jsxRuntime.jsx("time", { children: featuredPost.date || featuredPost.published }),
881
882
  (featuredPost.date || featuredPost.published) && featuredPost.author && "\xB7",
882
883
  featuredPost.author && /* @__PURE__ */ jsxRuntime.jsx("span", { children: featuredPost.author })
883
884
  ] }),
884
- featuredPost.title && (typeof featuredPost.title === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-lg md:text-3xl lg:text-4xl", children: featuredPost.title }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-lg md:text-3xl lg:text-4xl", children: featuredPost.title })),
885
- (featuredPost.description || featuredPost.summary) && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-4 text-muted-foreground", children: featuredPost.description || featuredPost.summary })
885
+ featuredPost.title && (typeof featuredPost.title === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-lg", children: featuredPost.title }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-lg", children: featuredPost.title })),
886
+ (featuredPost.description || featuredPost.summary) && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-4", children: featuredPost.description || featuredPost.summary })
886
887
  ] })
887
888
  ]
888
889
  }
@@ -939,22 +940,24 @@ function BlogMasonryFeaturedComponent({
939
940
  className: cn(className),
940
941
  pattern,
941
942
  patternOpacity,
942
- children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("container", containerClassName), children: [
943
+ containerClassName,
944
+ children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative", children: [
943
945
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
944
946
  "h1",
945
947
  {
946
948
  className: cn(
947
- "mb-6 md:mb-12 text-center text-4xl font-medium md:text-6xl text-balance",
949
+ "mb-6 md:mb-12 text-center text-2xl font-medium md:text-4xl text-balance",
948
950
  headingClassName
949
951
  ),
950
952
  children: heading
951
953
  }
952
- ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: headingClassName, children: heading })),
954
+ ) : heading),
955
+ description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-balance", children: description }) : description),
953
956
  /* @__PURE__ */ jsxRuntime.jsxs(
954
957
  "div",
955
958
  {
956
959
  className: cn(
957
- "xs:grid-cols-1 mt-6 md:mt-16 grid gap-4 sm:grid-cols-2 lg:grid-cols-4",
960
+ "grid-cols-1 mt-6 md:mt-16 grid gap-4 sm:grid-cols-2 lg:grid-cols-4",
958
961
  postsClassName
959
962
  ),
960
963
  children: [
@@ -12,6 +12,10 @@ interface BlogMasonryFeaturedProps {
12
12
  * Main heading content
13
13
  */
14
14
  heading?: React.ReactNode;
15
+ /**
16
+ * Slide description
17
+ */
18
+ description?: React.ReactNode;
15
19
  /**
16
20
  * Array of content items (first item is featured)
17
21
  */
@@ -73,6 +77,6 @@ interface BlogMasonryFeaturedProps {
73
77
  */
74
78
  patternOpacity?: number;
75
79
  }
76
- declare function BlogMasonryFeaturedComponent({ heading, posts, featuredSlot, postsSlot, className, containerClassName, headingClassName, postsClassName, featuredClassName, featuredImageClassName, postCardClassName, optixFlowConfig, background, spacing, pattern, patternOpacity, }: BlogMasonryFeaturedProps): React.JSX.Element;
80
+ declare function BlogMasonryFeaturedComponent({ heading, description, posts, featuredSlot, postsSlot, className, headingClassName, postsClassName, featuredClassName, featuredImageClassName, postCardClassName, optixFlowConfig, background, containerClassName, spacing, pattern, patternOpacity, }: BlogMasonryFeaturedProps): React.JSX.Element;
77
81
 
78
82
  export { BlogMasonryFeaturedComponent as BlogMasonryFeatured, type BlogMasonryFeaturedProps };
@@ -12,6 +12,10 @@ interface BlogMasonryFeaturedProps {
12
12
  * Main heading content
13
13
  */
14
14
  heading?: React.ReactNode;
15
+ /**
16
+ * Slide description
17
+ */
18
+ description?: React.ReactNode;
15
19
  /**
16
20
  * Array of content items (first item is featured)
17
21
  */
@@ -73,6 +77,6 @@ interface BlogMasonryFeaturedProps {
73
77
  */
74
78
  patternOpacity?: number;
75
79
  }
76
- declare function BlogMasonryFeaturedComponent({ heading, posts, featuredSlot, postsSlot, className, containerClassName, headingClassName, postsClassName, featuredClassName, featuredImageClassName, postCardClassName, optixFlowConfig, background, spacing, pattern, patternOpacity, }: BlogMasonryFeaturedProps): React.JSX.Element;
80
+ declare function BlogMasonryFeaturedComponent({ heading, description, posts, featuredSlot, postsSlot, className, headingClassName, postsClassName, featuredClassName, featuredImageClassName, postCardClassName, optixFlowConfig, background, containerClassName, spacing, pattern, patternOpacity, }: BlogMasonryFeaturedProps): React.JSX.Element;
77
81
 
78
82
  export { BlogMasonryFeaturedComponent as BlogMasonryFeatured, type BlogMasonryFeaturedProps };
@@ -807,11 +807,11 @@ var Section = React__default.forwardRef(
807
807
  Section.displayName = "Section";
808
808
  function BlogMasonryFeaturedComponent({
809
809
  heading,
810
+ description,
810
811
  posts,
811
812
  featuredSlot,
812
813
  postsSlot,
813
814
  className,
814
- containerClassName,
815
815
  headingClassName,
816
816
  postsClassName,
817
817
  featuredClassName,
@@ -819,7 +819,8 @@ function BlogMasonryFeaturedComponent({
819
819
  postCardClassName,
820
820
  optixFlowConfig,
821
821
  background,
822
- spacing,
822
+ containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
823
+ spacing = "py-12 md:py-32",
823
824
  pattern,
824
825
  patternOpacity
825
826
  }) {
@@ -828,7 +829,7 @@ function BlogMasonryFeaturedComponent({
828
829
  const featuredPostContent = React.useMemo(() => {
829
830
  if (featuredSlot) return featuredSlot;
830
831
  if (!featuredPost) return null;
831
- const postHref = featuredPost.href || featuredPost.url || featuredPost.link || "#";
832
+ const postHref = featuredPost.href || featuredPost.url || featuredPost.link;
832
833
  return /* @__PURE__ */ jsx(
833
834
  "div",
834
835
  {
@@ -855,13 +856,13 @@ function BlogMasonryFeaturedComponent({
855
856
  }
856
857
  ),
857
858
  /* @__PURE__ */ jsxs("div", { className: "mt-5", children: [
858
- /* @__PURE__ */ jsxs("div", { className: "mb-2.5 flex items-center gap-1 text-sm text-muted-foreground", children: [
859
+ /* @__PURE__ */ jsxs("div", { className: "mb-2.5 flex items-center gap-1 text-sm", children: [
859
860
  (featuredPost.date || featuredPost.published) && /* @__PURE__ */ jsx("time", { children: featuredPost.date || featuredPost.published }),
860
861
  (featuredPost.date || featuredPost.published) && featuredPost.author && "\xB7",
861
862
  featuredPost.author && /* @__PURE__ */ jsx("span", { children: featuredPost.author })
862
863
  ] }),
863
- featuredPost.title && (typeof featuredPost.title === "string" ? /* @__PURE__ */ jsx("h3", { className: "text-lg md:text-3xl lg:text-4xl", children: featuredPost.title }) : /* @__PURE__ */ jsx("div", { className: "text-lg md:text-3xl lg:text-4xl", children: featuredPost.title })),
864
- (featuredPost.description || featuredPost.summary) && /* @__PURE__ */ jsx("p", { className: "mt-4 text-muted-foreground", children: featuredPost.description || featuredPost.summary })
864
+ featuredPost.title && (typeof featuredPost.title === "string" ? /* @__PURE__ */ jsx("h3", { className: "text-lg", children: featuredPost.title }) : /* @__PURE__ */ jsx("div", { className: "text-lg", children: featuredPost.title })),
865
+ (featuredPost.description || featuredPost.summary) && /* @__PURE__ */ jsx("p", { className: "mt-4", children: featuredPost.description || featuredPost.summary })
865
866
  ] })
866
867
  ]
867
868
  }
@@ -918,22 +919,24 @@ function BlogMasonryFeaturedComponent({
918
919
  className: cn(className),
919
920
  pattern,
920
921
  patternOpacity,
921
- children: /* @__PURE__ */ jsxs("div", { className: cn("container", containerClassName), children: [
922
+ containerClassName,
923
+ children: /* @__PURE__ */ jsxs("div", { className: "relative", children: [
922
924
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
923
925
  "h1",
924
926
  {
925
927
  className: cn(
926
- "mb-6 md:mb-12 text-center text-4xl font-medium md:text-6xl text-balance",
928
+ "mb-6 md:mb-12 text-center text-2xl font-medium md:text-4xl text-balance",
927
929
  headingClassName
928
930
  ),
929
931
  children: heading
930
932
  }
931
- ) : /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading })),
933
+ ) : heading),
934
+ description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: "text-balance", children: description }) : description),
932
935
  /* @__PURE__ */ jsxs(
933
936
  "div",
934
937
  {
935
938
  className: cn(
936
- "xs:grid-cols-1 mt-6 md:mt-16 grid gap-4 sm:grid-cols-2 lg:grid-cols-4",
939
+ "grid-cols-1 mt-6 md:mt-16 grid gap-4 sm:grid-cols-2 lg:grid-cols-4",
937
940
  postsClassName
938
941
  ),
939
942
  children: [
@@ -871,6 +871,70 @@ var Section = React5__namespace.default.forwardRef(
871
871
  }
872
872
  );
873
873
  Section.displayName = "Section";
874
+ var MOBILE_CLASSES = {
875
+ "fit-left": "items-start md:items-center",
876
+ "fit-center": "items-center",
877
+ "fit-right": "items-end md:items-center",
878
+ "full-left": "items-stretch md:items-center",
879
+ "full-center": "items-stretch md:items-center",
880
+ "full-right": "items-stretch md:items-center"
881
+ };
882
+ function BlockActions({
883
+ mobileConfig,
884
+ actionsClassName,
885
+ verticalSpacing = "mt-4 md:mt-8",
886
+ actions,
887
+ actionsSlot
888
+ }) {
889
+ const width = mobileConfig?.width ?? "full";
890
+ const position = mobileConfig?.position ?? "center";
891
+ const mobileLayoutClass = MOBILE_CLASSES[`${width}-${position}`];
892
+ if (actionsSlot) {
893
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { children: actionsSlot });
894
+ } else if (actions && actions?.length > 0) {
895
+ return /* @__PURE__ */ jsxRuntime.jsx(
896
+ "div",
897
+ {
898
+ className: cn(
899
+ "flex flex-col md:flex-row flex-wrap gap-4",
900
+ mobileLayoutClass,
901
+ actionsClassName,
902
+ verticalSpacing
903
+ ),
904
+ children: actions.map((action, index) => /* @__PURE__ */ jsxRuntime.jsx(ActionComponent, { action }, index))
905
+ }
906
+ );
907
+ } else {
908
+ return null;
909
+ }
910
+ }
911
+ function ActionComponent({ action }) {
912
+ const {
913
+ label,
914
+ icon,
915
+ iconAfter,
916
+ children,
917
+ href,
918
+ onClick,
919
+ className: actionClassName,
920
+ ...pressableProps
921
+ } = action;
922
+ return /* @__PURE__ */ jsxRuntime.jsx(
923
+ Pressable,
924
+ {
925
+ href,
926
+ onClick,
927
+ asButton: action.asButton ?? true,
928
+ className: actionClassName,
929
+ ...pressableProps,
930
+ children: children ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
931
+ icon,
932
+ label,
933
+ iconAfter
934
+ ] })
935
+ }
936
+ );
937
+ }
874
938
  function CarouselPortfolioHero({
875
939
  slides,
876
940
  slidesSlot,
@@ -887,7 +951,7 @@ function CarouselPortfolioHero({
887
951
  navigationClassName,
888
952
  counterClassName,
889
953
  optixFlowConfig,
890
- background = "dark",
954
+ background,
891
955
  spacing = "none",
892
956
  pattern,
893
957
  patternOpacity,
@@ -921,34 +985,6 @@ function CarouselPortfolioHero({
921
985
  }
922
986
  };
923
987
  }, [resetInterval]);
924
- const renderActions = () => {
925
- if (actionsSlot) return actionsSlot;
926
- if (!actions || actions.length === 0) return null;
927
- return actions.map((action, index) => {
928
- const {
929
- label,
930
- icon,
931
- iconAfter,
932
- children,
933
- className: actionClassName,
934
- ...pressableProps
935
- } = action;
936
- return /* @__PURE__ */ jsxRuntime.jsx(
937
- Pressable,
938
- {
939
- asButton: true,
940
- className: actionClassName,
941
- ...pressableProps,
942
- children: children ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
943
- icon,
944
- label,
945
- iconAfter
946
- ] })
947
- },
948
- index
949
- );
950
- });
951
- };
952
988
  const currentSlide = slides?.[currentIndex];
953
989
  return /* @__PURE__ */ jsxRuntime.jsxs(
954
990
  Section,
@@ -990,7 +1026,7 @@ function CarouselPortfolioHero({
990
1026
  className: cn(
991
1027
  "relative z-10 flex h-full w-full flex-col justify-end px-6 pb-16 md:px-8 lg:px-12"
992
1028
  ),
993
- children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("max-w-4xl", contentClassName), children: [
1029
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("w-full", contentClassName), children: [
994
1030
  currentSlide?.tag && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-4", children: typeof currentSlide.tag === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
995
1031
  "span",
996
1032
  {
@@ -1026,7 +1062,14 @@ function CarouselPortfolioHero({
1026
1062
  {
1027
1063
  className: cn("mt-8 flex items-center gap-4", actionsClassName),
1028
1064
  children: [
1029
- renderActions(),
1065
+ /* @__PURE__ */ jsxRuntime.jsx(
1066
+ BlockActions,
1067
+ {
1068
+ actions,
1069
+ actionsSlot,
1070
+ actionsClassName
1071
+ }
1072
+ ),
1030
1073
  /* @__PURE__ */ jsxRuntime.jsxs(
1031
1074
  "div",
1032
1075
  {
@@ -1040,7 +1083,11 @@ function CarouselPortfolioHero({
1040
1083
  {
1041
1084
  variant: "outline",
1042
1085
  size: "icon",
1043
- className: cn("rounded-full border-foreground/40", getNestedCardBg(background), getNestedCardTextColor(background)),
1086
+ className: cn(
1087
+ "rounded-full border-foreground/40",
1088
+ getNestedCardBg(background),
1089
+ getNestedCardTextColor(background)
1090
+ ),
1044
1091
  onClick: goToPrev,
1045
1092
  asButton: true,
1046
1093
  children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/chevron-left", size: 20 })
@@ -850,6 +850,70 @@ var Section = React5__default.forwardRef(
850
850
  }
851
851
  );
852
852
  Section.displayName = "Section";
853
+ var MOBILE_CLASSES = {
854
+ "fit-left": "items-start md:items-center",
855
+ "fit-center": "items-center",
856
+ "fit-right": "items-end md:items-center",
857
+ "full-left": "items-stretch md:items-center",
858
+ "full-center": "items-stretch md:items-center",
859
+ "full-right": "items-stretch md:items-center"
860
+ };
861
+ function BlockActions({
862
+ mobileConfig,
863
+ actionsClassName,
864
+ verticalSpacing = "mt-4 md:mt-8",
865
+ actions,
866
+ actionsSlot
867
+ }) {
868
+ const width = mobileConfig?.width ?? "full";
869
+ const position = mobileConfig?.position ?? "center";
870
+ const mobileLayoutClass = MOBILE_CLASSES[`${width}-${position}`];
871
+ if (actionsSlot) {
872
+ return /* @__PURE__ */ jsx("div", { children: actionsSlot });
873
+ } else if (actions && actions?.length > 0) {
874
+ return /* @__PURE__ */ jsx(
875
+ "div",
876
+ {
877
+ className: cn(
878
+ "flex flex-col md:flex-row flex-wrap gap-4",
879
+ mobileLayoutClass,
880
+ actionsClassName,
881
+ verticalSpacing
882
+ ),
883
+ children: actions.map((action, index) => /* @__PURE__ */ jsx(ActionComponent, { action }, index))
884
+ }
885
+ );
886
+ } else {
887
+ return null;
888
+ }
889
+ }
890
+ function ActionComponent({ action }) {
891
+ const {
892
+ label,
893
+ icon,
894
+ iconAfter,
895
+ children,
896
+ href,
897
+ onClick,
898
+ className: actionClassName,
899
+ ...pressableProps
900
+ } = action;
901
+ return /* @__PURE__ */ jsx(
902
+ Pressable,
903
+ {
904
+ href,
905
+ onClick,
906
+ asButton: action.asButton ?? true,
907
+ className: actionClassName,
908
+ ...pressableProps,
909
+ children: children ?? /* @__PURE__ */ jsxs(Fragment, { children: [
910
+ icon,
911
+ label,
912
+ iconAfter
913
+ ] })
914
+ }
915
+ );
916
+ }
853
917
  function CarouselPortfolioHero({
854
918
  slides,
855
919
  slidesSlot,
@@ -866,7 +930,7 @@ function CarouselPortfolioHero({
866
930
  navigationClassName,
867
931
  counterClassName,
868
932
  optixFlowConfig,
869
- background = "dark",
933
+ background,
870
934
  spacing = "none",
871
935
  pattern,
872
936
  patternOpacity,
@@ -900,34 +964,6 @@ function CarouselPortfolioHero({
900
964
  }
901
965
  };
902
966
  }, [resetInterval]);
903
- const renderActions = () => {
904
- if (actionsSlot) return actionsSlot;
905
- if (!actions || actions.length === 0) return null;
906
- return actions.map((action, index) => {
907
- const {
908
- label,
909
- icon,
910
- iconAfter,
911
- children,
912
- className: actionClassName,
913
- ...pressableProps
914
- } = action;
915
- return /* @__PURE__ */ jsx(
916
- Pressable,
917
- {
918
- asButton: true,
919
- className: actionClassName,
920
- ...pressableProps,
921
- children: children ?? /* @__PURE__ */ jsxs(Fragment, { children: [
922
- icon,
923
- label,
924
- iconAfter
925
- ] })
926
- },
927
- index
928
- );
929
- });
930
- };
931
967
  const currentSlide = slides?.[currentIndex];
932
968
  return /* @__PURE__ */ jsxs(
933
969
  Section,
@@ -969,7 +1005,7 @@ function CarouselPortfolioHero({
969
1005
  className: cn(
970
1006
  "relative z-10 flex h-full w-full flex-col justify-end px-6 pb-16 md:px-8 lg:px-12"
971
1007
  ),
972
- children: /* @__PURE__ */ jsx("div", { className: "relative", children: /* @__PURE__ */ jsxs("div", { className: cn("max-w-4xl", contentClassName), children: [
1008
+ children: /* @__PURE__ */ jsx("div", { className: "relative", children: /* @__PURE__ */ jsxs("div", { className: cn("w-full", contentClassName), children: [
973
1009
  currentSlide?.tag && /* @__PURE__ */ jsx("div", { className: "mb-4", children: typeof currentSlide.tag === "string" ? /* @__PURE__ */ jsx(
974
1010
  "span",
975
1011
  {
@@ -1005,7 +1041,14 @@ function CarouselPortfolioHero({
1005
1041
  {
1006
1042
  className: cn("mt-8 flex items-center gap-4", actionsClassName),
1007
1043
  children: [
1008
- renderActions(),
1044
+ /* @__PURE__ */ jsx(
1045
+ BlockActions,
1046
+ {
1047
+ actions,
1048
+ actionsSlot,
1049
+ actionsClassName
1050
+ }
1051
+ ),
1009
1052
  /* @__PURE__ */ jsxs(
1010
1053
  "div",
1011
1054
  {
@@ -1019,7 +1062,11 @@ function CarouselPortfolioHero({
1019
1062
  {
1020
1063
  variant: "outline",
1021
1064
  size: "icon",
1022
- className: cn("rounded-full border-foreground/40", getNestedCardBg(background), getNestedCardTextColor(background)),
1065
+ className: cn(
1066
+ "rounded-full border-foreground/40",
1067
+ getNestedCardBg(background),
1068
+ getNestedCardTextColor(background)
1069
+ ),
1023
1070
  onClick: goToPrev,
1024
1071
  asButton: true,
1025
1072
  children: /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/chevron-left", size: 20 })
@@ -33,32 +33,6 @@ var React__namespace = /*#__PURE__*/_interopNamespace(React);
33
33
  function cn(...inputs) {
34
34
  return tailwindMerge.twMerge(clsx.clsx(inputs));
35
35
  }
36
- function getTextColor(parentBg, variant = "default", options) {
37
- const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
38
- if (isDark) {
39
- switch (variant) {
40
- case "default":
41
- return "text-foreground";
42
- case "muted":
43
- return "text-foreground/80";
44
- case "subtle":
45
- return "text-foreground/60";
46
- case "accent":
47
- return "text-accent-foreground";
48
- }
49
- } else {
50
- switch (variant) {
51
- case "default":
52
- return "text-foreground";
53
- case "muted":
54
- return "text-muted-foreground";
55
- case "subtle":
56
- return "text-muted-foreground/70";
57
- case "accent":
58
- return "text-primary";
59
- }
60
- }
61
- }
62
36
  var DEFAULT_ICON_API_KEY = "au382bi7fsh96w9h9xlrnat2jglx";
63
37
  function DynamicIcon({ apiKey, ...props }) {
64
38
  return /* @__PURE__ */ jsxRuntime.jsx(icon.Icon, { ...props, apiKey: apiKey ?? DEFAULT_ICON_API_KEY });
@@ -970,7 +944,6 @@ function FeatureBadgeGridSix({
970
944
  {
971
945
  className: cn(
972
946
  "text-sm md:text-base",
973
- getTextColor(background, "muted"),
974
947
  feature.descriptionClassName
975
948
  ),
976
949
  children: feature.description
@@ -980,7 +953,6 @@ function FeatureBadgeGridSix({
980
953
  {
981
954
  className: cn(
982
955
  "text-sm md:text-base",
983
- getTextColor(background, "muted"),
984
956
  feature.descriptionClassName
985
957
  ),
986
958
  children: feature.description
@@ -1051,16 +1023,7 @@ function FeatureBadgeGridSix({
1051
1023
  ),
1052
1024
  children: title
1053
1025
  }
1054
- ) : /* @__PURE__ */ jsxRuntime.jsx(
1055
- "div",
1056
- {
1057
- className: cn(
1058
- "text-2xl font-bold md:text-3xl lg:text-4xl",
1059
- titleClassName
1060
- ),
1061
- children: title
1062
- }
1063
- ))
1026
+ ) : title)
1064
1027
  ] }),
1065
1028
  /* @__PURE__ */ jsxRuntime.jsx(
1066
1029
  "div",
@@ -12,32 +12,6 @@ import { cva } from 'class-variance-authority';
12
12
  function cn(...inputs) {
13
13
  return twMerge(clsx(inputs));
14
14
  }
15
- function getTextColor(parentBg, variant = "default", options) {
16
- const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
17
- if (isDark) {
18
- switch (variant) {
19
- case "default":
20
- return "text-foreground";
21
- case "muted":
22
- return "text-foreground/80";
23
- case "subtle":
24
- return "text-foreground/60";
25
- case "accent":
26
- return "text-accent-foreground";
27
- }
28
- } else {
29
- switch (variant) {
30
- case "default":
31
- return "text-foreground";
32
- case "muted":
33
- return "text-muted-foreground";
34
- case "subtle":
35
- return "text-muted-foreground/70";
36
- case "accent":
37
- return "text-primary";
38
- }
39
- }
40
- }
41
15
  var DEFAULT_ICON_API_KEY = "au382bi7fsh96w9h9xlrnat2jglx";
42
16
  function DynamicIcon({ apiKey, ...props }) {
43
17
  return /* @__PURE__ */ jsx(Icon, { ...props, apiKey: apiKey ?? DEFAULT_ICON_API_KEY });
@@ -949,7 +923,6 @@ function FeatureBadgeGridSix({
949
923
  {
950
924
  className: cn(
951
925
  "text-sm md:text-base",
952
- getTextColor(background, "muted"),
953
926
  feature.descriptionClassName
954
927
  ),
955
928
  children: feature.description
@@ -959,7 +932,6 @@ function FeatureBadgeGridSix({
959
932
  {
960
933
  className: cn(
961
934
  "text-sm md:text-base",
962
- getTextColor(background, "muted"),
963
935
  feature.descriptionClassName
964
936
  ),
965
937
  children: feature.description
@@ -1030,16 +1002,7 @@ function FeatureBadgeGridSix({
1030
1002
  ),
1031
1003
  children: title
1032
1004
  }
1033
- ) : /* @__PURE__ */ jsx(
1034
- "div",
1035
- {
1036
- className: cn(
1037
- "text-2xl font-bold md:text-3xl lg:text-4xl",
1038
- titleClassName
1039
- ),
1040
- children: title
1041
- }
1042
- ))
1005
+ ) : title)
1043
1006
  ] }),
1044
1007
  /* @__PURE__ */ jsx(
1045
1008
  "div",
@@ -837,7 +837,6 @@ function FeatureBentoImageGrid({
837
837
  items,
838
838
  itemsSlot,
839
839
  className,
840
- containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
841
840
  titleClassName,
842
841
  descriptionClassName,
843
842
  gridClassName,
@@ -845,6 +844,7 @@ function FeatureBentoImageGrid({
845
844
  smallCardClassName,
846
845
  optixFlowConfig,
847
846
  background,
847
+ containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
848
848
  spacing = "py-12 md:py-32",
849
849
  pattern,
850
850
  patternOpacity,
@@ -1090,17 +1090,8 @@ function FeatureBentoImageGrid({
1090
1090
  ),
1091
1091
  children: title
1092
1092
  }
1093
- ) : /* @__PURE__ */ jsxRuntime.jsx(
1094
- "div",
1095
- {
1096
- className: cn(
1097
- "mb-4 text-center text-4xl font-semibold text-balance",
1098
- titleClassName
1099
- ),
1100
- children: title
1101
- }
1102
- )),
1103
- description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("text-center text-balance", descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("text-center text-balance", descriptionClassName), children: description })),
1093
+ ) : title),
1094
+ description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("text-center text-balance", descriptionClassName), children: description }) : description),
1104
1095
  /* @__PURE__ */ jsxRuntime.jsx(
1105
1096
  "div",
1106
1097
  {
@@ -167,6 +167,6 @@ interface FeatureBentoImageGridProps {
167
167
  * />
168
168
  * ```
169
169
  */
170
- declare function FeatureBentoImageGrid({ title, description, items, itemsSlot, className, containerClassName, titleClassName, descriptionClassName, gridClassName, largeCardClassName, smallCardClassName, optixFlowConfig, background, spacing, pattern, patternOpacity, patternClassName, }: FeatureBentoImageGridProps): React.JSX.Element;
170
+ declare function FeatureBentoImageGrid({ title, description, items, itemsSlot, className, titleClassName, descriptionClassName, gridClassName, largeCardClassName, smallCardClassName, optixFlowConfig, background, containerClassName, spacing, pattern, patternOpacity, patternClassName, }: FeatureBentoImageGridProps): React.JSX.Element;
171
171
 
172
172
  export { FeatureBentoImageGrid, type FeatureBentoImageGridProps };