@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
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import * as React from 'react';
|
|
3
|
-
import React__default, { useMemo } from 'react';
|
|
3
|
+
import React__default, { useState, useCallback, useEffect, useMemo } from 'react';
|
|
4
4
|
import { clsx } from 'clsx';
|
|
5
5
|
import { twMerge } from 'tailwind-merge';
|
|
6
6
|
import { cva } from 'class-variance-authority';
|
|
@@ -814,7 +814,7 @@ function HeroHiringAnimatedText({
|
|
|
814
814
|
scrollActionSlot,
|
|
815
815
|
backgroundImage,
|
|
816
816
|
background,
|
|
817
|
-
spacing = "
|
|
817
|
+
spacing = "pt-28 pb-8 md:pt-32 md:pb-32",
|
|
818
818
|
pattern,
|
|
819
819
|
patternOpacity,
|
|
820
820
|
className,
|
|
@@ -824,32 +824,60 @@ function HeroHiringAnimatedText({
|
|
|
824
824
|
descriptionClassName,
|
|
825
825
|
actionsClassName
|
|
826
826
|
}) {
|
|
827
|
+
const [activeIndex, setActiveIndex] = useState(0);
|
|
828
|
+
const cycleText = useCallback(() => {
|
|
829
|
+
if (!animatedTexts || animatedTexts.length <= 1) return;
|
|
830
|
+
setActiveIndex((prev) => (prev + 1) % animatedTexts.length);
|
|
831
|
+
}, [animatedTexts]);
|
|
832
|
+
useEffect(() => {
|
|
833
|
+
if (!animatedTexts || animatedTexts.length <= 1) return;
|
|
834
|
+
const interval = setInterval(cycleText, 2e3);
|
|
835
|
+
return () => clearInterval(interval);
|
|
836
|
+
}, [animatedTexts, cycleText]);
|
|
827
837
|
const renderHeading = useMemo(() => {
|
|
828
838
|
if (headingSlot) return headingSlot;
|
|
829
|
-
return /* @__PURE__ */ jsxs(
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
),
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
839
|
+
return /* @__PURE__ */ jsxs(
|
|
840
|
+
"h1",
|
|
841
|
+
{
|
|
842
|
+
className: cn(
|
|
843
|
+
"text-4xl leading-9 font-bold lg:text-5xl lg:leading-12! xl:text-7xl xl:leading-22! text-white text-shadow-xl",
|
|
844
|
+
headingClassName
|
|
845
|
+
),
|
|
846
|
+
children: [
|
|
847
|
+
/* @__PURE__ */ jsx("div", { className: "mb-2", children: headingPrefix }),
|
|
848
|
+
animatedTexts && animatedTexts.length > 0 && /* @__PURE__ */ jsx("div", { className: "relative h-9 lg:h-12 xl:h-22", children: animatedTexts.map((text, index) => /* @__PURE__ */ jsx(
|
|
849
|
+
"div",
|
|
850
|
+
{
|
|
851
|
+
className: "absolute top-0 left-0 text-white transition-opacity duration-1000 ease-in-out",
|
|
852
|
+
style: {
|
|
853
|
+
opacity: index === activeIndex ? 1 : 0
|
|
854
|
+
},
|
|
855
|
+
children: text
|
|
856
|
+
},
|
|
857
|
+
index
|
|
858
|
+
)) })
|
|
859
|
+
]
|
|
860
|
+
}
|
|
861
|
+
);
|
|
862
|
+
}, [
|
|
863
|
+
headingSlot,
|
|
864
|
+
headingPrefix,
|
|
865
|
+
animatedTexts,
|
|
866
|
+
headingClassName,
|
|
867
|
+
activeIndex
|
|
868
|
+
]);
|
|
848
869
|
const renderActions = useMemo(() => {
|
|
849
870
|
if (actionsSlot) return actionsSlot;
|
|
850
871
|
if (!actions || actions.length === 0) return null;
|
|
851
|
-
return /* @__PURE__ */ jsx("div", { className: cn("flex flex-
|
|
852
|
-
const {
|
|
872
|
+
return /* @__PURE__ */ jsx("div", { className: cn("flex flex-col md:flex-row gap-4", actionsClassName), children: actions.map((action, index) => {
|
|
873
|
+
const {
|
|
874
|
+
label,
|
|
875
|
+
icon,
|
|
876
|
+
iconAfter,
|
|
877
|
+
children,
|
|
878
|
+
className: actionClassName,
|
|
879
|
+
...pressableProps
|
|
880
|
+
} = action;
|
|
853
881
|
return /* @__PURE__ */ jsx(
|
|
854
882
|
Pressable,
|
|
855
883
|
{
|
|
@@ -869,7 +897,14 @@ function HeroHiringAnimatedText({
|
|
|
869
897
|
const renderScrollAction = useMemo(() => {
|
|
870
898
|
if (scrollActionSlot) return scrollActionSlot;
|
|
871
899
|
if (!scrollAction) return null;
|
|
872
|
-
const {
|
|
900
|
+
const {
|
|
901
|
+
label,
|
|
902
|
+
icon,
|
|
903
|
+
iconAfter,
|
|
904
|
+
children,
|
|
905
|
+
className: actionClassName,
|
|
906
|
+
...pressableProps
|
|
907
|
+
} = scrollAction;
|
|
873
908
|
return /* @__PURE__ */ jsx(Pressable, { asButton: true, className: actionClassName, ...pressableProps, children: children ?? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
874
909
|
icon,
|
|
875
910
|
/* @__PURE__ */ jsx("div", { children: label }),
|
|
@@ -884,21 +919,39 @@ function HeroHiringAnimatedText({
|
|
|
884
919
|
pattern,
|
|
885
920
|
patternOpacity,
|
|
886
921
|
className: cn(
|
|
887
|
-
"relative flex items-center justify-center
|
|
922
|
+
"relative flex items-center justify-center h-svh max-h-[1400px] w-full bg-cover bg-position-[100%] bg-no-repeat before:absolute before:top-0 before:left-0 before:size-full before:bg-[radial-gradient(circle_at_100%_-100%,transparent_40%,rgba(0,0,0,.75)_85%)] before:content-['']",
|
|
888
923
|
className
|
|
889
924
|
),
|
|
890
925
|
containerClassName,
|
|
891
926
|
style: { backgroundImage: `url('${backgroundImage}')` },
|
|
892
|
-
children: /* @__PURE__ */ jsx("div", { className: "relative z-10 flex size-full max-w-412.5 flex-col justify-between pt-24 pb-14 md:justify-end", children: /* @__PURE__ */ jsxs(
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
|
|
927
|
+
children: /* @__PURE__ */ jsx("div", { className: "relative z-10 flex size-full max-w-412.5 flex-col justify-between pt-24 pb-14 md:justify-end", children: /* @__PURE__ */ jsxs(
|
|
928
|
+
"div",
|
|
929
|
+
{
|
|
930
|
+
className: cn(
|
|
931
|
+
"flex h-full flex-col justify-between gap-6 md:justify-end max-w-full md:max-w-md",
|
|
932
|
+
contentClassName
|
|
933
|
+
),
|
|
934
|
+
children: [
|
|
935
|
+
renderHeading,
|
|
936
|
+
/* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-8", children: [
|
|
937
|
+
description && (typeof description === "string" ? /* @__PURE__ */ jsx(
|
|
938
|
+
"p",
|
|
939
|
+
{
|
|
940
|
+
className: cn(
|
|
941
|
+
"text-lg lg:text-2xl text-white text-balance",
|
|
942
|
+
descriptionClassName
|
|
943
|
+
),
|
|
944
|
+
children: description
|
|
945
|
+
}
|
|
946
|
+
) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description })),
|
|
947
|
+
/* @__PURE__ */ jsxs("div", { className: "flex flex-wrap items-center justify-between gap-4", children: [
|
|
948
|
+
renderActions,
|
|
949
|
+
renderScrollAction
|
|
950
|
+
] })
|
|
951
|
+
] })
|
|
952
|
+
]
|
|
953
|
+
}
|
|
954
|
+
) })
|
|
902
955
|
}
|
|
903
956
|
);
|
|
904
957
|
}
|
|
@@ -846,7 +846,7 @@ function HeroProductivityLauncherVideo({
|
|
|
846
846
|
const renderActions = React.useMemo(() => {
|
|
847
847
|
if (actionsSlot) return actionsSlot;
|
|
848
848
|
if (!actions || actions.length === 0) return null;
|
|
849
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-
|
|
849
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-col md:flex-row items-center justify-center gap-4", children: actions.map((action, index) => {
|
|
850
850
|
const {
|
|
851
851
|
label,
|
|
852
852
|
icon,
|
|
@@ -904,8 +904,8 @@ function HeroProductivityLauncherVideo({
|
|
|
904
904
|
className,
|
|
905
905
|
containerClassName,
|
|
906
906
|
children: [
|
|
907
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("relative z-20 max-w-204.5", contentClassName), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col items-center", children: [
|
|
908
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col items-center gap-8
|
|
907
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("relative z-20 max-w-204.5", contentClassName), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col items-center pb-8", children: [
|
|
908
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col items-center gap-8 pb-16 pt-16", children: [
|
|
909
909
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "max-w-100 sm:max-w-135", children: heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
910
910
|
"h1",
|
|
911
911
|
{
|
|
@@ -825,7 +825,7 @@ function HeroProductivityLauncherVideo({
|
|
|
825
825
|
const renderActions = useMemo(() => {
|
|
826
826
|
if (actionsSlot) return actionsSlot;
|
|
827
827
|
if (!actions || actions.length === 0) return null;
|
|
828
|
-
return /* @__PURE__ */ jsx("div", { className: "flex flex-
|
|
828
|
+
return /* @__PURE__ */ jsx("div", { className: "flex flex-col md:flex-row items-center justify-center gap-4", children: actions.map((action, index) => {
|
|
829
829
|
const {
|
|
830
830
|
label,
|
|
831
831
|
icon,
|
|
@@ -883,8 +883,8 @@ function HeroProductivityLauncherVideo({
|
|
|
883
883
|
className,
|
|
884
884
|
containerClassName,
|
|
885
885
|
children: [
|
|
886
|
-
/* @__PURE__ */ jsx("div", { className: cn("relative z-20 max-w-204.5", contentClassName), children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center", children: [
|
|
887
|
-
/* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center gap-8
|
|
886
|
+
/* @__PURE__ */ jsx("div", { className: cn("relative z-20 max-w-204.5", contentClassName), children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center pb-8", children: [
|
|
887
|
+
/* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center gap-8 pb-16 pt-16", children: [
|
|
888
888
|
/* @__PURE__ */ jsx("div", { className: "max-w-100 sm:max-w-135", children: heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
|
|
889
889
|
"h1",
|
|
890
890
|
{
|
|
@@ -929,7 +929,7 @@ function HeroSplitSpiralShapes({
|
|
|
929
929
|
optixFlowConfig
|
|
930
930
|
}
|
|
931
931
|
) }) }),
|
|
932
|
-
images[1] && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "overflow-hidden rounded-lg shadow-xl md:absolute md:top-[12%] md:right-[5%] md:w-[35%]", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "aspect-
|
|
932
|
+
images[1] && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "overflow-hidden rounded-lg shadow-xl md:absolute md:top-[12%] md:right-[5%] md:w-[35%]", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "aspect-5/6", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
933
933
|
img.Img,
|
|
934
934
|
{
|
|
935
935
|
src: images[1].src,
|
|
@@ -941,7 +941,7 @@ function HeroSplitSpiralShapes({
|
|
|
941
941
|
optixFlowConfig
|
|
942
942
|
}
|
|
943
943
|
) }) }),
|
|
944
|
-
images[2] && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "overflow-hidden rounded-lg shadow-xl md:absolute md:right-[10%] md:bottom-[15%] md:w-[55%]", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "aspect-
|
|
944
|
+
images[2] && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "overflow-hidden rounded-lg shadow-xl md:absolute md:right-[10%] md:bottom-[15%] md:w-[55%]", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "aspect-5/6", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
945
945
|
img.Img,
|
|
946
946
|
{
|
|
947
947
|
src: images[2].src,
|
|
@@ -908,7 +908,7 @@ function HeroSplitSpiralShapes({
|
|
|
908
908
|
optixFlowConfig
|
|
909
909
|
}
|
|
910
910
|
) }) }),
|
|
911
|
-
images[1] && /* @__PURE__ */ jsx("div", { className: "overflow-hidden rounded-lg shadow-xl md:absolute md:top-[12%] md:right-[5%] md:w-[35%]", children: /* @__PURE__ */ jsx("div", { className: "aspect-
|
|
911
|
+
images[1] && /* @__PURE__ */ jsx("div", { className: "overflow-hidden rounded-lg shadow-xl md:absolute md:top-[12%] md:right-[5%] md:w-[35%]", children: /* @__PURE__ */ jsx("div", { className: "aspect-5/6", children: /* @__PURE__ */ jsx(
|
|
912
912
|
Img,
|
|
913
913
|
{
|
|
914
914
|
src: images[1].src,
|
|
@@ -920,7 +920,7 @@ function HeroSplitSpiralShapes({
|
|
|
920
920
|
optixFlowConfig
|
|
921
921
|
}
|
|
922
922
|
) }) }),
|
|
923
|
-
images[2] && /* @__PURE__ */ jsx("div", { className: "overflow-hidden rounded-lg shadow-xl md:absolute md:right-[10%] md:bottom-[15%] md:w-[55%]", children: /* @__PURE__ */ jsx("div", { className: "aspect-
|
|
923
|
+
images[2] && /* @__PURE__ */ jsx("div", { className: "overflow-hidden rounded-lg shadow-xl md:absolute md:right-[10%] md:bottom-[15%] md:w-[55%]", children: /* @__PURE__ */ jsx("div", { className: "aspect-5/6", children: /* @__PURE__ */ jsx(
|
|
924
924
|
Img,
|
|
925
925
|
{
|
|
926
926
|
src: images[2].src,
|
|
@@ -907,29 +907,21 @@ function HeroTestimonialImageGrid({
|
|
|
907
907
|
if (testimonialSlot) return testimonialSlot;
|
|
908
908
|
if (!testimonial || !testimonial.avatars) return null;
|
|
909
909
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap items-center gap-3", children: [
|
|
910
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex -space-x-2", children: testimonial.avatars.map((avatar, index) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
911
|
-
|
|
912
|
-
{
|
|
913
|
-
|
|
914
|
-
children: [
|
|
915
|
-
/* @__PURE__ */ jsxRuntime.jsx(AvatarImage, { src: avatar.image, alt: "" }),
|
|
916
|
-
/* @__PURE__ */ jsxRuntime.jsx(AvatarFallback, { children: avatar.fallback })
|
|
917
|
-
]
|
|
918
|
-
},
|
|
919
|
-
index
|
|
920
|
-
)) }),
|
|
910
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex -space-x-2", children: testimonial.avatars.map((avatar, index) => /* @__PURE__ */ jsxRuntime.jsxs(Avatar, { className: "size-10 border-2 border-border", children: [
|
|
911
|
+
/* @__PURE__ */ jsxRuntime.jsx(AvatarImage, { src: avatar.image, alt: testimonial.author }),
|
|
912
|
+
/* @__PURE__ */ jsxRuntime.jsx(AvatarFallback, { children: avatar.fallback })
|
|
913
|
+
] }, index)) }),
|
|
921
914
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
922
|
-
/* @__PURE__ */ jsxRuntime.jsxs("p", { className: "mb-1 text-sm
|
|
915
|
+
/* @__PURE__ */ jsxRuntime.jsxs("p", { className: "mb-1 text-sm italic", children: [
|
|
923
916
|
'"',
|
|
924
917
|
testimonial.quote,
|
|
925
918
|
'"'
|
|
926
919
|
] }),
|
|
927
|
-
/* @__PURE__ */ jsxRuntime.jsxs("p", { className: "text-sm font-medium
|
|
920
|
+
/* @__PURE__ */ jsxRuntime.jsxs("p", { className: "text-sm font-medium ", children: [
|
|
928
921
|
testimonial.author,
|
|
929
922
|
", ",
|
|
930
923
|
testimonial.role,
|
|
931
|
-
|
|
932
|
-
testimonial.company
|
|
924
|
+
testimonial.company?.length ? ` | ${testimonial.company}` : ""
|
|
933
925
|
] })
|
|
934
926
|
] })
|
|
935
927
|
] });
|
|
@@ -938,44 +930,22 @@ function HeroTestimonialImageGrid({
|
|
|
938
930
|
if (imagesSlot) return imagesSlot;
|
|
939
931
|
if (!gridImages || gridImages.length < 4) return null;
|
|
940
932
|
const images = gridImages;
|
|
941
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full flex-1", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full max-w-200", children: /* @__PURE__ */ jsxRuntime.jsx(AspectRatio, { ratio: 1 / 1, className: "h-full w-full", children: /* @__PURE__ */ jsxRuntime.
|
|
942
|
-
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
optixFlowConfig
|
|
958
|
-
}
|
|
959
|
-
) }) }) }),
|
|
960
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative overflow-hidden rounded-[5.2%] border border-border bg-card", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute top-[9%] left-[9%] w-[200%] max-w-150 overflow-hidden rounded-md", children: /* @__PURE__ */ jsxRuntime.jsx(AspectRatio, { ratio: 1.6 / 1, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
961
|
-
img.Img,
|
|
962
|
-
{
|
|
963
|
-
src: images[2].src,
|
|
964
|
-
alt: images[2].alt || "",
|
|
965
|
-
className: "size-full object-cover object-center",
|
|
966
|
-
optixFlowConfig
|
|
967
|
-
}
|
|
968
|
-
) }) }) }),
|
|
969
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative overflow-hidden rounded-[5.2%] border border-border bg-card", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative top-[12%] left-[50%] w-[70%] max-w-70 -translate-x-[50%]", children: /* @__PURE__ */ jsxRuntime.jsx(AspectRatio, { ratio: 0.52 / 1, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
970
|
-
img.Img,
|
|
971
|
-
{
|
|
972
|
-
src: images[3].src,
|
|
973
|
-
alt: images[3].alt || "",
|
|
974
|
-
className: "absolute z-10 w-full rounded-[16%]",
|
|
975
|
-
optixFlowConfig
|
|
976
|
-
}
|
|
977
|
-
) }) }) })
|
|
978
|
-
] }) }) }) });
|
|
933
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full flex-1", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full max-w-full md:max-w-200", children: /* @__PURE__ */ jsxRuntime.jsx(AspectRatio, { ratio: 1 / 1, className: "h-full w-full", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid h-full w-full grid-cols-2 grid-rows-2 gap-4", children: images.slice(0, 4).map((image, index) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
934
|
+
"div",
|
|
935
|
+
{
|
|
936
|
+
className: "overflow-hidden rounded-lg shadow-xl",
|
|
937
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
938
|
+
img.Img,
|
|
939
|
+
{
|
|
940
|
+
src: image.src,
|
|
941
|
+
alt: image.alt || "",
|
|
942
|
+
className: "size-full object-cover object-center",
|
|
943
|
+
optixFlowConfig
|
|
944
|
+
}
|
|
945
|
+
)
|
|
946
|
+
},
|
|
947
|
+
index
|
|
948
|
+
)) }) }) }) });
|
|
979
949
|
}, [imagesSlot, gridImages, optixFlowConfig]);
|
|
980
950
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
981
951
|
Section,
|
|
@@ -984,13 +954,49 @@ function HeroTestimonialImageGrid({
|
|
|
984
954
|
spacing,
|
|
985
955
|
pattern,
|
|
986
956
|
patternOpacity,
|
|
987
|
-
className
|
|
957
|
+
className,
|
|
988
958
|
containerClassName,
|
|
989
959
|
children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col items-center gap-8 md:flex-row", children: [
|
|
990
960
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex-1", children: [
|
|
991
961
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-4 lg:gap-8", children: [
|
|
992
|
-
heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
993
|
-
|
|
962
|
+
heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
963
|
+
"h1",
|
|
964
|
+
{
|
|
965
|
+
className: cn(
|
|
966
|
+
"leading-tighter max-w-[80%] text-4xl font-semibold tracking-tight lg:text-5xl xl:text-7xl",
|
|
967
|
+
headingClassName
|
|
968
|
+
),
|
|
969
|
+
children: heading
|
|
970
|
+
}
|
|
971
|
+
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
972
|
+
"h1",
|
|
973
|
+
{
|
|
974
|
+
className: cn(
|
|
975
|
+
"leading-tighter max-w-[80%] text-4xl font-semibold tracking-tight lg:text-5xl xl:text-7xl",
|
|
976
|
+
headingClassName
|
|
977
|
+
),
|
|
978
|
+
children: heading
|
|
979
|
+
}
|
|
980
|
+
)),
|
|
981
|
+
description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
982
|
+
"p",
|
|
983
|
+
{
|
|
984
|
+
className: cn(
|
|
985
|
+
"text-lg leading-relaxed text-balance xl:text-2xl",
|
|
986
|
+
descriptionClassName
|
|
987
|
+
),
|
|
988
|
+
children: description
|
|
989
|
+
}
|
|
990
|
+
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
991
|
+
"div",
|
|
992
|
+
{
|
|
993
|
+
className: cn(
|
|
994
|
+
"text-lg leading-relaxed text-balance xl:text-2xl",
|
|
995
|
+
descriptionClassName
|
|
996
|
+
),
|
|
997
|
+
children: description
|
|
998
|
+
}
|
|
999
|
+
))
|
|
994
1000
|
] }),
|
|
995
1001
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "my-6 lg:my-10", children: renderButton }),
|
|
996
1002
|
renderTestimonial
|
|
@@ -884,29 +884,21 @@ function HeroTestimonialImageGrid({
|
|
|
884
884
|
if (testimonialSlot) return testimonialSlot;
|
|
885
885
|
if (!testimonial || !testimonial.avatars) return null;
|
|
886
886
|
return /* @__PURE__ */ jsxs("div", { className: "flex flex-wrap items-center gap-3", children: [
|
|
887
|
-
/* @__PURE__ */ jsx("div", { className: "flex -space-x-2", children: testimonial.avatars.map((avatar, index) => /* @__PURE__ */ jsxs(
|
|
888
|
-
|
|
889
|
-
{
|
|
890
|
-
|
|
891
|
-
children: [
|
|
892
|
-
/* @__PURE__ */ jsx(AvatarImage, { src: avatar.image, alt: "" }),
|
|
893
|
-
/* @__PURE__ */ jsx(AvatarFallback, { children: avatar.fallback })
|
|
894
|
-
]
|
|
895
|
-
},
|
|
896
|
-
index
|
|
897
|
-
)) }),
|
|
887
|
+
/* @__PURE__ */ jsx("div", { className: "flex -space-x-2", children: testimonial.avatars.map((avatar, index) => /* @__PURE__ */ jsxs(Avatar, { className: "size-10 border-2 border-border", children: [
|
|
888
|
+
/* @__PURE__ */ jsx(AvatarImage, { src: avatar.image, alt: testimonial.author }),
|
|
889
|
+
/* @__PURE__ */ jsx(AvatarFallback, { children: avatar.fallback })
|
|
890
|
+
] }, index)) }),
|
|
898
891
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
899
|
-
/* @__PURE__ */ jsxs("p", { className: "mb-1 text-sm
|
|
892
|
+
/* @__PURE__ */ jsxs("p", { className: "mb-1 text-sm italic", children: [
|
|
900
893
|
'"',
|
|
901
894
|
testimonial.quote,
|
|
902
895
|
'"'
|
|
903
896
|
] }),
|
|
904
|
-
/* @__PURE__ */ jsxs("p", { className: "text-sm font-medium
|
|
897
|
+
/* @__PURE__ */ jsxs("p", { className: "text-sm font-medium ", children: [
|
|
905
898
|
testimonial.author,
|
|
906
899
|
", ",
|
|
907
900
|
testimonial.role,
|
|
908
|
-
|
|
909
|
-
testimonial.company
|
|
901
|
+
testimonial.company?.length ? ` | ${testimonial.company}` : ""
|
|
910
902
|
] })
|
|
911
903
|
] })
|
|
912
904
|
] });
|
|
@@ -915,44 +907,22 @@ function HeroTestimonialImageGrid({
|
|
|
915
907
|
if (imagesSlot) return imagesSlot;
|
|
916
908
|
if (!gridImages || gridImages.length < 4) return null;
|
|
917
909
|
const images = gridImages;
|
|
918
|
-
return /* @__PURE__ */ jsx("div", { className: "w-full flex-1", children: /* @__PURE__ */ jsx("div", { className: "w-full max-w-200", children: /* @__PURE__ */ jsx(AspectRatio, { ratio: 1 / 1, className: "h-full w-full", children: /* @__PURE__ */
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
|
|
934
|
-
optixFlowConfig
|
|
935
|
-
}
|
|
936
|
-
) }) }) }),
|
|
937
|
-
/* @__PURE__ */ jsx("div", { className: "relative overflow-hidden rounded-[5.2%] border border-border bg-card", children: /* @__PURE__ */ jsx("div", { className: "absolute top-[9%] left-[9%] w-[200%] max-w-150 overflow-hidden rounded-md", children: /* @__PURE__ */ jsx(AspectRatio, { ratio: 1.6 / 1, children: /* @__PURE__ */ jsx(
|
|
938
|
-
Img,
|
|
939
|
-
{
|
|
940
|
-
src: images[2].src,
|
|
941
|
-
alt: images[2].alt || "",
|
|
942
|
-
className: "size-full object-cover object-center",
|
|
943
|
-
optixFlowConfig
|
|
944
|
-
}
|
|
945
|
-
) }) }) }),
|
|
946
|
-
/* @__PURE__ */ jsx("div", { className: "relative overflow-hidden rounded-[5.2%] border border-border bg-card", children: /* @__PURE__ */ jsx("div", { className: "relative top-[12%] left-[50%] w-[70%] max-w-70 -translate-x-[50%]", children: /* @__PURE__ */ jsx(AspectRatio, { ratio: 0.52 / 1, children: /* @__PURE__ */ jsx(
|
|
947
|
-
Img,
|
|
948
|
-
{
|
|
949
|
-
src: images[3].src,
|
|
950
|
-
alt: images[3].alt || "",
|
|
951
|
-
className: "absolute z-10 w-full rounded-[16%]",
|
|
952
|
-
optixFlowConfig
|
|
953
|
-
}
|
|
954
|
-
) }) }) })
|
|
955
|
-
] }) }) }) });
|
|
910
|
+
return /* @__PURE__ */ jsx("div", { className: "w-full flex-1", children: /* @__PURE__ */ jsx("div", { className: "w-full max-w-full md:max-w-200", children: /* @__PURE__ */ jsx(AspectRatio, { ratio: 1 / 1, className: "h-full w-full", children: /* @__PURE__ */ jsx("div", { className: "grid h-full w-full grid-cols-2 grid-rows-2 gap-4", children: images.slice(0, 4).map((image, index) => /* @__PURE__ */ jsx(
|
|
911
|
+
"div",
|
|
912
|
+
{
|
|
913
|
+
className: "overflow-hidden rounded-lg shadow-xl",
|
|
914
|
+
children: /* @__PURE__ */ jsx(
|
|
915
|
+
Img,
|
|
916
|
+
{
|
|
917
|
+
src: image.src,
|
|
918
|
+
alt: image.alt || "",
|
|
919
|
+
className: "size-full object-cover object-center",
|
|
920
|
+
optixFlowConfig
|
|
921
|
+
}
|
|
922
|
+
)
|
|
923
|
+
},
|
|
924
|
+
index
|
|
925
|
+
)) }) }) }) });
|
|
956
926
|
}, [imagesSlot, gridImages, optixFlowConfig]);
|
|
957
927
|
return /* @__PURE__ */ jsx(
|
|
958
928
|
Section,
|
|
@@ -961,13 +931,49 @@ function HeroTestimonialImageGrid({
|
|
|
961
931
|
spacing,
|
|
962
932
|
pattern,
|
|
963
933
|
patternOpacity,
|
|
964
|
-
className
|
|
934
|
+
className,
|
|
965
935
|
containerClassName,
|
|
966
936
|
children: /* @__PURE__ */ jsx("div", { className: "relative", children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center gap-8 md:flex-row", children: [
|
|
967
937
|
/* @__PURE__ */ jsxs("div", { className: "flex-1", children: [
|
|
968
938
|
/* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-4 lg:gap-8", children: [
|
|
969
|
-
heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
|
|
970
|
-
|
|
939
|
+
heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
|
|
940
|
+
"h1",
|
|
941
|
+
{
|
|
942
|
+
className: cn(
|
|
943
|
+
"leading-tighter max-w-[80%] text-4xl font-semibold tracking-tight lg:text-5xl xl:text-7xl",
|
|
944
|
+
headingClassName
|
|
945
|
+
),
|
|
946
|
+
children: heading
|
|
947
|
+
}
|
|
948
|
+
) : /* @__PURE__ */ jsx(
|
|
949
|
+
"h1",
|
|
950
|
+
{
|
|
951
|
+
className: cn(
|
|
952
|
+
"leading-tighter max-w-[80%] text-4xl font-semibold tracking-tight lg:text-5xl xl:text-7xl",
|
|
953
|
+
headingClassName
|
|
954
|
+
),
|
|
955
|
+
children: heading
|
|
956
|
+
}
|
|
957
|
+
)),
|
|
958
|
+
description && (typeof description === "string" ? /* @__PURE__ */ jsx(
|
|
959
|
+
"p",
|
|
960
|
+
{
|
|
961
|
+
className: cn(
|
|
962
|
+
"text-lg leading-relaxed text-balance xl:text-2xl",
|
|
963
|
+
descriptionClassName
|
|
964
|
+
),
|
|
965
|
+
children: description
|
|
966
|
+
}
|
|
967
|
+
) : /* @__PURE__ */ jsx(
|
|
968
|
+
"div",
|
|
969
|
+
{
|
|
970
|
+
className: cn(
|
|
971
|
+
"text-lg leading-relaxed text-balance xl:text-2xl",
|
|
972
|
+
descriptionClassName
|
|
973
|
+
),
|
|
974
|
+
children: description
|
|
975
|
+
}
|
|
976
|
+
))
|
|
971
977
|
] }),
|
|
972
978
|
/* @__PURE__ */ jsx("div", { className: "my-6 lg:my-10", children: renderButton }),
|
|
973
979
|
renderTestimonial
|