@opensite/ui 1.7.0 → 1.7.2
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/hero-architecture-fullscreen.cjs +65 -29
- package/dist/hero-architecture-fullscreen.d.cts +8 -1
- package/dist/hero-architecture-fullscreen.d.ts +8 -1
- package/dist/hero-architecture-fullscreen.js +65 -29
- package/dist/hero-billing-platform-logos.cjs +5 -5
- package/dist/hero-billing-platform-logos.js +5 -5
- package/dist/hero-centered-gradient-cta.cjs +114 -31
- package/dist/hero-centered-gradient-cta.js +114 -31
- package/dist/hero-conversion-video-play.cjs +5 -5
- package/dist/hero-conversion-video-play.js +5 -5
- package/dist/hero-design-showcase-logos.cjs +4 -4
- package/dist/hero-design-showcase-logos.js +4 -4
- package/dist/hero-grid-pattern-solutions.cjs +4 -4
- package/dist/hero-grid-pattern-solutions.js +4 -4
- package/dist/hero-hiring-animated-text.cjs +87 -34
- package/dist/hero-hiring-animated-text.js +88 -35
- package/dist/hero-premium-split-avatars.cjs +1 -1
- package/dist/hero-premium-split-avatars.js +1 -1
- package/dist/hero-productivity-launcher-video.cjs +3 -3
- package/dist/hero-productivity-launcher-video.js +3 -3
- package/dist/hero-split-spiral-shapes.cjs +2 -2
- package/dist/hero-split-spiral-shapes.js +2 -2
- package/dist/hero-task-timer-animated.cjs +1 -1
- package/dist/hero-task-timer-animated.js +1 -1
- package/dist/hero-testimonial-image-grid.cjs +62 -56
- package/dist/hero-testimonial-image-grid.js +62 -56
- package/dist/hero-therapy-testimonial-grid.cjs +72 -17
- package/dist/hero-therapy-testimonial-grid.js +72 -17
- package/dist/process-roadmap-timeline.cjs +12 -8
- package/dist/process-roadmap-timeline.js +12 -8
- package/dist/registry.cjs +403 -200
- package/dist/registry.js +403 -200
- package/package.json +1 -1
|
@@ -6,6 +6,7 @@ var clsx = require('clsx');
|
|
|
6
6
|
var tailwindMerge = require('tailwind-merge');
|
|
7
7
|
var classVarianceAuthority = require('class-variance-authority');
|
|
8
8
|
var jsxRuntime = require('react/jsx-runtime');
|
|
9
|
+
var img = require('@page-speed/img');
|
|
9
10
|
|
|
10
11
|
function _interopNamespace(e) {
|
|
11
12
|
if (e && e.__esModule) return e;
|
|
@@ -832,34 +833,34 @@ function HeroArchitectureFullscreen({
|
|
|
832
833
|
actionSlot,
|
|
833
834
|
backgroundImage,
|
|
834
835
|
background,
|
|
835
|
-
spacing = "py-
|
|
836
|
+
spacing = "py-0 md:py-0",
|
|
836
837
|
pattern,
|
|
837
838
|
patternOpacity,
|
|
838
839
|
className,
|
|
839
|
-
containerClassName = "px-
|
|
840
|
+
containerClassName = "mx-0 min-h-screen h-full w-screen max-w-full relative z-10 px-0 sm:px-0 md:px-0 lg:px-0 flex items-end",
|
|
840
841
|
taglineClassName,
|
|
841
842
|
headingClassName,
|
|
842
|
-
descriptionClassName
|
|
843
|
+
descriptionClassName,
|
|
844
|
+
optixFlowConfig
|
|
843
845
|
}) {
|
|
844
846
|
const renderAction = React.useMemo(() => {
|
|
845
847
|
if (actionSlot) return actionSlot;
|
|
846
848
|
if (!action) return null;
|
|
847
|
-
const {
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
);
|
|
849
|
+
const {
|
|
850
|
+
label,
|
|
851
|
+
icon,
|
|
852
|
+
iconAfter,
|
|
853
|
+
children,
|
|
854
|
+
className: actionClassName,
|
|
855
|
+
...pressableProps
|
|
856
|
+
} = action;
|
|
857
|
+
return /* @__PURE__ */ jsxRuntime.jsx(Pressable, { asButton: true, className: actionClassName, ...pressableProps, children: children ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
858
|
+
icon,
|
|
859
|
+
typeof label === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "group-hover:underline", children: label }) : label,
|
|
860
|
+
iconAfter
|
|
861
|
+
] }) });
|
|
861
862
|
}, [actionSlot, action]);
|
|
862
|
-
return /* @__PURE__ */ jsxRuntime.
|
|
863
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
863
864
|
Section,
|
|
864
865
|
{
|
|
865
866
|
background,
|
|
@@ -867,21 +868,56 @@ function HeroArchitectureFullscreen({
|
|
|
867
868
|
pattern,
|
|
868
869
|
patternOpacity,
|
|
869
870
|
className: cn(
|
|
870
|
-
"relative flex items-center justify-center dark
|
|
871
|
+
"relative flex min-h-screen min-w-screen items-center justify-center dark w-full overflow-hidden font-poppins",
|
|
871
872
|
className
|
|
872
873
|
),
|
|
873
874
|
containerClassName,
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
875
|
+
children: [
|
|
876
|
+
backgroundImage && /* @__PURE__ */ jsxRuntime.jsx(
|
|
877
|
+
img.Img,
|
|
878
|
+
{
|
|
879
|
+
src: backgroundImage,
|
|
880
|
+
alt: "",
|
|
881
|
+
className: "absolute inset-0 min-h-screen min-w-screen object-cover object-center brightness-50",
|
|
882
|
+
optixFlowConfig
|
|
883
|
+
}
|
|
884
|
+
),
|
|
885
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative z-20 h-full w-full max-w-340 p-8 md:p-24", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col justify-end gap-6 md:gap-12", children: [
|
|
886
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-1", children: [
|
|
887
|
+
tagline && (typeof tagline === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
888
|
+
"p",
|
|
889
|
+
{
|
|
890
|
+
className: cn(
|
|
891
|
+
"text-sm leading-none uppercase text-balance text-white text-shadow-xl",
|
|
892
|
+
taglineClassName
|
|
893
|
+
),
|
|
894
|
+
children: tagline
|
|
895
|
+
}
|
|
896
|
+
) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: taglineClassName, children: tagline })),
|
|
897
|
+
heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
898
|
+
"h1",
|
|
899
|
+
{
|
|
900
|
+
className: cn(
|
|
901
|
+
"text-3xl leading-snug! md:text-4xl lg:text-6xl text-white text-balance text-shadow-xl",
|
|
902
|
+
headingClassName
|
|
903
|
+
),
|
|
904
|
+
children: heading
|
|
905
|
+
}
|
|
906
|
+
) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: headingClassName, children: heading }))
|
|
907
|
+
] }),
|
|
908
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-col justify-between gap-5 sm:flex-row sm:items-center", children: description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
909
|
+
"p",
|
|
910
|
+
{
|
|
911
|
+
className: cn(
|
|
912
|
+
"text-base text-balance text-white text-shadow-xl",
|
|
913
|
+
descriptionClassName
|
|
914
|
+
),
|
|
915
|
+
children: description
|
|
916
|
+
}
|
|
917
|
+
) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description })) }),
|
|
882
918
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "shrink-0", children: renderAction })
|
|
883
|
-
] })
|
|
884
|
-
]
|
|
919
|
+
] }) })
|
|
920
|
+
]
|
|
885
921
|
}
|
|
886
922
|
);
|
|
887
923
|
}
|
|
@@ -67,7 +67,14 @@ interface HeroArchitectureFullscreenProps {
|
|
|
67
67
|
* Additional CSS classes for the description
|
|
68
68
|
*/
|
|
69
69
|
descriptionClassName?: string;
|
|
70
|
+
/**
|
|
71
|
+
* Optional Optix Flow configuration for image optimization
|
|
72
|
+
*/
|
|
73
|
+
optixFlowConfig?: {
|
|
74
|
+
apiKey: string;
|
|
75
|
+
compression?: number;
|
|
76
|
+
};
|
|
70
77
|
}
|
|
71
|
-
declare function HeroArchitectureFullscreen({ tagline, heading, description, action, actionSlot, backgroundImage, background, spacing, pattern, patternOpacity, className, containerClassName, taglineClassName, headingClassName, descriptionClassName, }: HeroArchitectureFullscreenProps): React.JSX.Element;
|
|
78
|
+
declare function HeroArchitectureFullscreen({ tagline, heading, description, action, actionSlot, backgroundImage, background, spacing, pattern, patternOpacity, className, containerClassName, taglineClassName, headingClassName, descriptionClassName, optixFlowConfig, }: HeroArchitectureFullscreenProps): React.JSX.Element;
|
|
72
79
|
|
|
73
80
|
export { HeroArchitectureFullscreen, type HeroArchitectureFullscreenProps };
|
|
@@ -67,7 +67,14 @@ interface HeroArchitectureFullscreenProps {
|
|
|
67
67
|
* Additional CSS classes for the description
|
|
68
68
|
*/
|
|
69
69
|
descriptionClassName?: string;
|
|
70
|
+
/**
|
|
71
|
+
* Optional Optix Flow configuration for image optimization
|
|
72
|
+
*/
|
|
73
|
+
optixFlowConfig?: {
|
|
74
|
+
apiKey: string;
|
|
75
|
+
compression?: number;
|
|
76
|
+
};
|
|
70
77
|
}
|
|
71
|
-
declare function HeroArchitectureFullscreen({ tagline, heading, description, action, actionSlot, backgroundImage, background, spacing, pattern, patternOpacity, className, containerClassName, taglineClassName, headingClassName, descriptionClassName, }: HeroArchitectureFullscreenProps): React.JSX.Element;
|
|
78
|
+
declare function HeroArchitectureFullscreen({ tagline, heading, description, action, actionSlot, backgroundImage, background, spacing, pattern, patternOpacity, className, containerClassName, taglineClassName, headingClassName, descriptionClassName, optixFlowConfig, }: HeroArchitectureFullscreenProps): React.JSX.Element;
|
|
72
79
|
|
|
73
80
|
export { HeroArchitectureFullscreen, type HeroArchitectureFullscreenProps };
|
|
@@ -5,6 +5,7 @@ import { clsx } from 'clsx';
|
|
|
5
5
|
import { twMerge } from 'tailwind-merge';
|
|
6
6
|
import { cva } from 'class-variance-authority';
|
|
7
7
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
8
|
+
import { Img } from '@page-speed/img';
|
|
8
9
|
|
|
9
10
|
// components/blocks/hero/hero-architecture-fullscreen.tsx
|
|
10
11
|
function cn(...inputs) {
|
|
@@ -811,34 +812,34 @@ function HeroArchitectureFullscreen({
|
|
|
811
812
|
actionSlot,
|
|
812
813
|
backgroundImage,
|
|
813
814
|
background,
|
|
814
|
-
spacing = "py-
|
|
815
|
+
spacing = "py-0 md:py-0",
|
|
815
816
|
pattern,
|
|
816
817
|
patternOpacity,
|
|
817
818
|
className,
|
|
818
|
-
containerClassName = "px-
|
|
819
|
+
containerClassName = "mx-0 min-h-screen h-full w-screen max-w-full relative z-10 px-0 sm:px-0 md:px-0 lg:px-0 flex items-end",
|
|
819
820
|
taglineClassName,
|
|
820
821
|
headingClassName,
|
|
821
|
-
descriptionClassName
|
|
822
|
+
descriptionClassName,
|
|
823
|
+
optixFlowConfig
|
|
822
824
|
}) {
|
|
823
825
|
const renderAction = useMemo(() => {
|
|
824
826
|
if (actionSlot) return actionSlot;
|
|
825
827
|
if (!action) return null;
|
|
826
|
-
const {
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
);
|
|
828
|
+
const {
|
|
829
|
+
label,
|
|
830
|
+
icon,
|
|
831
|
+
iconAfter,
|
|
832
|
+
children,
|
|
833
|
+
className: actionClassName,
|
|
834
|
+
...pressableProps
|
|
835
|
+
} = action;
|
|
836
|
+
return /* @__PURE__ */ jsx(Pressable, { asButton: true, className: actionClassName, ...pressableProps, children: children ?? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
837
|
+
icon,
|
|
838
|
+
typeof label === "string" ? /* @__PURE__ */ jsx("p", { className: "group-hover:underline", children: label }) : label,
|
|
839
|
+
iconAfter
|
|
840
|
+
] }) });
|
|
840
841
|
}, [actionSlot, action]);
|
|
841
|
-
return /* @__PURE__ */
|
|
842
|
+
return /* @__PURE__ */ jsxs(
|
|
842
843
|
Section,
|
|
843
844
|
{
|
|
844
845
|
background,
|
|
@@ -846,21 +847,56 @@ function HeroArchitectureFullscreen({
|
|
|
846
847
|
pattern,
|
|
847
848
|
patternOpacity,
|
|
848
849
|
className: cn(
|
|
849
|
-
"relative flex items-center justify-center dark
|
|
850
|
+
"relative flex min-h-screen min-w-screen items-center justify-center dark w-full overflow-hidden font-poppins",
|
|
850
851
|
className
|
|
851
852
|
),
|
|
852
853
|
containerClassName,
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
854
|
+
children: [
|
|
855
|
+
backgroundImage && /* @__PURE__ */ jsx(
|
|
856
|
+
Img,
|
|
857
|
+
{
|
|
858
|
+
src: backgroundImage,
|
|
859
|
+
alt: "",
|
|
860
|
+
className: "absolute inset-0 min-h-screen min-w-screen object-cover object-center brightness-50",
|
|
861
|
+
optixFlowConfig
|
|
862
|
+
}
|
|
863
|
+
),
|
|
864
|
+
/* @__PURE__ */ jsx("div", { className: "relative z-20 h-full w-full max-w-340 p-8 md:p-24", children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col justify-end gap-6 md:gap-12", children: [
|
|
865
|
+
/* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-1", children: [
|
|
866
|
+
tagline && (typeof tagline === "string" ? /* @__PURE__ */ jsx(
|
|
867
|
+
"p",
|
|
868
|
+
{
|
|
869
|
+
className: cn(
|
|
870
|
+
"text-sm leading-none uppercase text-balance text-white text-shadow-xl",
|
|
871
|
+
taglineClassName
|
|
872
|
+
),
|
|
873
|
+
children: tagline
|
|
874
|
+
}
|
|
875
|
+
) : /* @__PURE__ */ jsx("div", { className: taglineClassName, children: tagline })),
|
|
876
|
+
heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
|
|
877
|
+
"h1",
|
|
878
|
+
{
|
|
879
|
+
className: cn(
|
|
880
|
+
"text-3xl leading-snug! md:text-4xl lg:text-6xl text-white text-balance text-shadow-xl",
|
|
881
|
+
headingClassName
|
|
882
|
+
),
|
|
883
|
+
children: heading
|
|
884
|
+
}
|
|
885
|
+
) : /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading }))
|
|
886
|
+
] }),
|
|
887
|
+
/* @__PURE__ */ jsx("div", { className: "flex flex-col justify-between gap-5 sm:flex-row sm:items-center", children: description && (typeof description === "string" ? /* @__PURE__ */ jsx(
|
|
888
|
+
"p",
|
|
889
|
+
{
|
|
890
|
+
className: cn(
|
|
891
|
+
"text-base text-balance text-white text-shadow-xl",
|
|
892
|
+
descriptionClassName
|
|
893
|
+
),
|
|
894
|
+
children: description
|
|
895
|
+
}
|
|
896
|
+
) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description })) }),
|
|
861
897
|
/* @__PURE__ */ jsx("div", { className: "shrink-0", children: renderAction })
|
|
862
|
-
] })
|
|
863
|
-
]
|
|
898
|
+
] }) })
|
|
899
|
+
]
|
|
864
900
|
}
|
|
865
901
|
);
|
|
866
902
|
}
|
|
@@ -972,7 +972,7 @@ function HeroBillingPlatformLogos({
|
|
|
972
972
|
logos,
|
|
973
973
|
logosSlot,
|
|
974
974
|
background,
|
|
975
|
-
spacing = "
|
|
975
|
+
spacing = "pt-28 pb-8 md:pt-32 md:pb-32",
|
|
976
976
|
pattern,
|
|
977
977
|
patternOpacity,
|
|
978
978
|
className,
|
|
@@ -1046,15 +1046,15 @@ function HeroBillingPlatformLogos({
|
|
|
1046
1046
|
"div",
|
|
1047
1047
|
{
|
|
1048
1048
|
className: cn(
|
|
1049
|
-
"flex flex-col items-center gap-4 lg:flex-row",
|
|
1049
|
+
"flex flex-col items-start md:items-center gap-4 lg:flex-row",
|
|
1050
1050
|
actionsClassName
|
|
1051
1051
|
),
|
|
1052
1052
|
children: renderActions
|
|
1053
1053
|
}
|
|
1054
1054
|
) })
|
|
1055
1055
|
] }) }),
|
|
1056
|
-
imagesSlot ? imagesSlot : mainImage ? /* @__PURE__ */ jsxRuntime.jsx("div", { children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative mr-auto ml-auto aspect-[1.28581291/1] w-full max-w-149 lg:mr-0 lg:ml-auto", children: [
|
|
1057
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative mx-auto aspect-[1.020365896/1] h-full w-[79.35%] max-w-118.25 overflow-hidden rounded-3xl", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1056
|
+
imagesSlot ? imagesSlot : mainImage ? /* @__PURE__ */ jsxRuntime.jsx("div", { children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative mr-auto ml-auto md:aspect-[1.28581291/1] w-full max-w-full md:max-w-149 lg:mr-0 lg:ml-auto", children: [
|
|
1057
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative mx-auto md:aspect-[1.020365896/1] h-full w-full md:w-[79.35%] max-w-full md:max-w-118.25 overflow-hidden rounded-3xl", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1058
1058
|
img.Img,
|
|
1059
1059
|
{
|
|
1060
1060
|
src: mainImage.src,
|
|
@@ -1108,7 +1108,7 @@ function HeroBillingPlatformLogos({
|
|
|
1108
1108
|
"div",
|
|
1109
1109
|
{
|
|
1110
1110
|
className: cn(
|
|
1111
|
-
"flex flex-col items-center justify-center gap-8 pt-28",
|
|
1111
|
+
"flex flex-col items-center justify-center gap-8 pt-8 md:pt-28",
|
|
1112
1112
|
logosClassName
|
|
1113
1113
|
),
|
|
1114
1114
|
children: [
|
|
@@ -947,7 +947,7 @@ function HeroBillingPlatformLogos({
|
|
|
947
947
|
logos,
|
|
948
948
|
logosSlot,
|
|
949
949
|
background,
|
|
950
|
-
spacing = "
|
|
950
|
+
spacing = "pt-28 pb-8 md:pt-32 md:pb-32",
|
|
951
951
|
pattern,
|
|
952
952
|
patternOpacity,
|
|
953
953
|
className,
|
|
@@ -1021,15 +1021,15 @@ function HeroBillingPlatformLogos({
|
|
|
1021
1021
|
"div",
|
|
1022
1022
|
{
|
|
1023
1023
|
className: cn(
|
|
1024
|
-
"flex flex-col items-center gap-4 lg:flex-row",
|
|
1024
|
+
"flex flex-col items-start md:items-center gap-4 lg:flex-row",
|
|
1025
1025
|
actionsClassName
|
|
1026
1026
|
),
|
|
1027
1027
|
children: renderActions
|
|
1028
1028
|
}
|
|
1029
1029
|
) })
|
|
1030
1030
|
] }) }),
|
|
1031
|
-
imagesSlot ? imagesSlot : mainImage ? /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsxs("div", { className: "relative mr-auto ml-auto aspect-[1.28581291/1] w-full max-w-149 lg:mr-0 lg:ml-auto", children: [
|
|
1032
|
-
/* @__PURE__ */ jsx("div", { className: "relative mx-auto aspect-[1.020365896/1] h-full w-[79.35%] max-w-118.25 overflow-hidden rounded-3xl", children: /* @__PURE__ */ jsx(
|
|
1031
|
+
imagesSlot ? imagesSlot : mainImage ? /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsxs("div", { className: "relative mr-auto ml-auto md:aspect-[1.28581291/1] w-full max-w-full md:max-w-149 lg:mr-0 lg:ml-auto", children: [
|
|
1032
|
+
/* @__PURE__ */ jsx("div", { className: "relative mx-auto md:aspect-[1.020365896/1] h-full w-full md:w-[79.35%] max-w-full md:max-w-118.25 overflow-hidden rounded-3xl", children: /* @__PURE__ */ jsx(
|
|
1033
1033
|
Img,
|
|
1034
1034
|
{
|
|
1035
1035
|
src: mainImage.src,
|
|
@@ -1083,7 +1083,7 @@ function HeroBillingPlatformLogos({
|
|
|
1083
1083
|
"div",
|
|
1084
1084
|
{
|
|
1085
1085
|
className: cn(
|
|
1086
|
-
"flex flex-col items-center justify-center gap-8 pt-28",
|
|
1086
|
+
"flex flex-col items-center justify-center gap-8 pt-8 md:pt-28",
|
|
1087
1087
|
logosClassName
|
|
1088
1088
|
),
|
|
1089
1089
|
children: [
|
|
@@ -6,6 +6,7 @@ var clsx = require('clsx');
|
|
|
6
6
|
var tailwindMerge = require('tailwind-merge');
|
|
7
7
|
var classVarianceAuthority = require('class-variance-authority');
|
|
8
8
|
var jsxRuntime = require('react/jsx-runtime');
|
|
9
|
+
var reactSlot = require('@radix-ui/react-slot');
|
|
9
10
|
|
|
10
11
|
function _interopNamespace(e) {
|
|
11
12
|
if (e && e.__esModule) return e;
|
|
@@ -824,6 +825,38 @@ var Section = React__namespace.default.forwardRef(
|
|
|
824
825
|
}
|
|
825
826
|
);
|
|
826
827
|
Section.displayName = "Section";
|
|
828
|
+
var badgeVariants = classVarianceAuthority.cva(
|
|
829
|
+
"inline-flex items-center justify-center rounded-full border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden",
|
|
830
|
+
{
|
|
831
|
+
variants: {
|
|
832
|
+
variant: {
|
|
833
|
+
default: "border-transparent bg-primary text-primary-foreground [a&]:hover:bg-primary/90",
|
|
834
|
+
secondary: "border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90",
|
|
835
|
+
destructive: "border-transparent bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",
|
|
836
|
+
outline: "text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground"
|
|
837
|
+
}
|
|
838
|
+
},
|
|
839
|
+
defaultVariants: {
|
|
840
|
+
variant: "default"
|
|
841
|
+
}
|
|
842
|
+
}
|
|
843
|
+
);
|
|
844
|
+
function Badge({
|
|
845
|
+
className,
|
|
846
|
+
variant,
|
|
847
|
+
asChild = false,
|
|
848
|
+
...props
|
|
849
|
+
}) {
|
|
850
|
+
const Comp = asChild ? reactSlot.Slot : "span";
|
|
851
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
852
|
+
Comp,
|
|
853
|
+
{
|
|
854
|
+
"data-slot": "badge",
|
|
855
|
+
className: cn(badgeVariants({ variant }), className),
|
|
856
|
+
...props
|
|
857
|
+
}
|
|
858
|
+
);
|
|
859
|
+
}
|
|
827
860
|
function HeroCenteredGradientCta({
|
|
828
861
|
badge,
|
|
829
862
|
badgeIcon,
|
|
@@ -835,7 +868,7 @@ function HeroCenteredGradientCta({
|
|
|
835
868
|
features,
|
|
836
869
|
featuresSlot,
|
|
837
870
|
background,
|
|
838
|
-
spacing = "
|
|
871
|
+
spacing = "pt-28 pb-8 md:pt-32 md:pb-32",
|
|
839
872
|
pattern,
|
|
840
873
|
patternOpacity,
|
|
841
874
|
className,
|
|
@@ -850,8 +883,15 @@ function HeroCenteredGradientCta({
|
|
|
850
883
|
const renderActions = React.useMemo(() => {
|
|
851
884
|
if (actionsSlot) return actionsSlot;
|
|
852
885
|
if (!actions || actions.length === 0) return null;
|
|
853
|
-
return actions.map((action, index) => {
|
|
854
|
-
const {
|
|
886
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-col items-start mt-6 md:mt-8 gap-4 sm:flex-row sm:items-center", children: actions.map((action, index) => {
|
|
887
|
+
const {
|
|
888
|
+
label,
|
|
889
|
+
icon,
|
|
890
|
+
iconAfter,
|
|
891
|
+
children,
|
|
892
|
+
className: actionClassName,
|
|
893
|
+
...pressableProps
|
|
894
|
+
} = action;
|
|
855
895
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
856
896
|
Pressable,
|
|
857
897
|
{
|
|
@@ -860,51 +900,94 @@ function HeroCenteredGradientCta({
|
|
|
860
900
|
...pressableProps,
|
|
861
901
|
children: children ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
862
902
|
icon,
|
|
863
|
-
label,
|
|
903
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { children: label }),
|
|
864
904
|
iconAfter
|
|
865
905
|
] })
|
|
866
906
|
},
|
|
867
907
|
index
|
|
868
908
|
);
|
|
869
|
-
});
|
|
909
|
+
}) });
|
|
870
910
|
}, [actionsSlot, actions]);
|
|
871
911
|
const renderFeatures = React.useMemo(() => {
|
|
872
912
|
if (featuresSlot) return featuresSlot;
|
|
873
913
|
if (!features || features.length === 0) return null;
|
|
874
|
-
return features.map((feature, index) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
|
|
914
|
+
return features.map((feature, index) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
915
|
+
Pressable,
|
|
916
|
+
{
|
|
917
|
+
href: feature.href,
|
|
918
|
+
className: cn("flex items-center gap-2", feature.className),
|
|
919
|
+
children: [
|
|
920
|
+
feature.icon,
|
|
921
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { children: feature.title })
|
|
922
|
+
]
|
|
923
|
+
},
|
|
924
|
+
index
|
|
925
|
+
));
|
|
878
926
|
}, [featuresSlot, features]);
|
|
879
|
-
return /* @__PURE__ */ jsxRuntime.
|
|
927
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
880
928
|
Section,
|
|
881
929
|
{
|
|
882
930
|
background,
|
|
883
931
|
spacing,
|
|
884
932
|
pattern,
|
|
885
933
|
patternOpacity,
|
|
886
|
-
className
|
|
934
|
+
className,
|
|
887
935
|
containerClassName,
|
|
888
|
-
children: [
|
|
889
|
-
/* @__PURE__ */ jsxRuntime.
|
|
890
|
-
|
|
891
|
-
badge
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
936
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative gap-6 z-10 flex flex-col items-center text-center", children: [
|
|
937
|
+
badge && /* @__PURE__ */ jsxRuntime.jsxs(Badge, { className: "px-3", children: [
|
|
938
|
+
badgeIcon,
|
|
939
|
+
typeof badge === "string" ? /* @__PURE__ */ jsxRuntime.jsx("span", { children: badge }) : badge
|
|
940
|
+
] }),
|
|
941
|
+
(heading || headingHighlight) && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
942
|
+
"h1",
|
|
943
|
+
{
|
|
944
|
+
className: cn(
|
|
945
|
+
"max-w-full md:max-w-md text-5xl font-bold tracking-tight md:text-6xl lg:text-7xl text-balance",
|
|
946
|
+
headingClassName
|
|
947
|
+
),
|
|
948
|
+
children: heading
|
|
949
|
+
}
|
|
950
|
+
) : heading ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: headingClassName, children: heading }) : headingHighlight ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
951
|
+
"h1",
|
|
952
|
+
{
|
|
953
|
+
className: cn(
|
|
954
|
+
"max-w-full md:max-w-md text-5xl font-bold tracking-tight md:text-6xl lg:text-7xl text-balance",
|
|
955
|
+
headingClassName
|
|
956
|
+
),
|
|
957
|
+
children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "bg-linear-to-r from-primary to-purple-600 bg-clip-text text-transparent", children: headingHighlight })
|
|
958
|
+
}
|
|
959
|
+
) : null),
|
|
960
|
+
description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
961
|
+
"p",
|
|
962
|
+
{
|
|
963
|
+
className: cn(
|
|
964
|
+
"max-w-full md:max-w-md text-md md:text-xl text-balance",
|
|
965
|
+
descriptionClassName
|
|
966
|
+
),
|
|
967
|
+
children: description
|
|
968
|
+
}
|
|
969
|
+
) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description })),
|
|
970
|
+
(actionsSlot || actions && actions.length > 0) && /* @__PURE__ */ jsxRuntime.jsx(
|
|
971
|
+
"div",
|
|
972
|
+
{
|
|
973
|
+
className: cn(
|
|
974
|
+
"mt-0 md:mt-6 flex flex-col gap-4 sm:flex-row",
|
|
975
|
+
actionsClassName
|
|
976
|
+
),
|
|
977
|
+
children: renderActions
|
|
978
|
+
}
|
|
979
|
+
),
|
|
980
|
+
(featuresSlot || features && features.length > 0) && /* @__PURE__ */ jsxRuntime.jsx(
|
|
981
|
+
"div",
|
|
982
|
+
{
|
|
983
|
+
className: cn(
|
|
984
|
+
"mt-4 md:mt-6 flex flex-col md:flex-row items-center gap-4 md:gap-8 text-sm",
|
|
985
|
+
featuresClassName
|
|
986
|
+
),
|
|
987
|
+
children: renderFeatures
|
|
988
|
+
}
|
|
989
|
+
)
|
|
990
|
+
] })
|
|
908
991
|
}
|
|
909
992
|
);
|
|
910
993
|
}
|