@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.
- package/dist/article-hero-prose.cjs +7 -6
- package/dist/article-hero-prose.d.cts +1 -1
- package/dist/article-hero-prose.d.ts +1 -1
- package/dist/article-hero-prose.js +7 -6
- package/dist/article-toc-sidebar.cjs +77 -57
- package/dist/article-toc-sidebar.d.cts +5 -11
- package/dist/article-toc-sidebar.d.ts +5 -11
- package/dist/article-toc-sidebar.js +77 -57
- package/dist/blog-masonry-featured.cjs +13 -10
- package/dist/blog-masonry-featured.d.cts +5 -1
- package/dist/blog-masonry-featured.d.ts +5 -1
- package/dist/blog-masonry-featured.js +13 -10
- package/dist/carousel-portfolio-hero.cjs +79 -32
- package/dist/carousel-portfolio-hero.js +79 -32
- package/dist/feature-badge-grid-six.cjs +1 -38
- package/dist/feature-badge-grid-six.js +1 -38
- package/dist/feature-bento-image-grid.cjs +3 -12
- package/dist/feature-bento-image-grid.d.cts +1 -1
- package/dist/feature-bento-image-grid.d.ts +1 -1
- package/dist/feature-bento-image-grid.js +3 -12
- package/dist/feature-bento-utilities.cjs +5 -41
- package/dist/feature-bento-utilities.js +5 -41
- package/dist/registry.cjs +121 -114
- package/dist/registry.js +121 -114
- package/package.json +2 -2
|
@@ -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
|
-
|
|
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
|
|
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
|
|
885
|
-
(featuredPost.description || featuredPost.summary) && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-4
|
|
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
|
-
|
|
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-
|
|
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
|
-
) :
|
|
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
|
-
"
|
|
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,
|
|
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,
|
|
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
|
-
|
|
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
|
|
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
|
|
864
|
-
(featuredPost.description || featuredPost.summary) && /* @__PURE__ */ jsx("p", { className: "mt-4
|
|
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
|
-
|
|
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-
|
|
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
|
-
) :
|
|
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
|
-
"
|
|
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
|
|
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("
|
|
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
|
-
|
|
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(
|
|
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
|
|
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("
|
|
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
|
-
|
|
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(
|
|
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
|
-
) :
|
|
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
|
-
) :
|
|
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
|
-
) :
|
|
1094
|
-
|
|
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,
|
|
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 };
|