@opensite/ui 1.6.7 → 1.6.8
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 +7 -54
- package/dist/hero-architecture-fullscreen.js +7 -54
- package/dist/hero-badge-shadow-overlay.cjs +42 -45
- package/dist/hero-badge-shadow-overlay.d.cts +14 -2
- package/dist/hero-badge-shadow-overlay.d.ts +14 -2
- package/dist/hero-badge-shadow-overlay.js +42 -45
- package/dist/hero-billing-platform-logos.cjs +5 -9
- package/dist/hero-billing-platform-logos.d.cts +1 -5
- package/dist/hero-billing-platform-logos.d.ts +1 -5
- package/dist/hero-billing-platform-logos.js +5 -9
- package/dist/hero-centered-gradient-cta.cjs +12 -68
- package/dist/hero-centered-gradient-cta.js +12 -68
- package/dist/hero-conversion-video-play.cjs +13 -64
- package/dist/hero-conversion-video-play.js +13 -64
- package/dist/hero-customer-support-layered.cjs +1 -1
- package/dist/hero-customer-support-layered.js +1 -1
- package/dist/hero-dashed-border-features.cjs +8 -71
- package/dist/hero-dashed-border-features.js +8 -71
- package/dist/hero-design-showcase-logos.cjs +7 -32
- package/dist/hero-design-showcase-logos.js +7 -32
- package/dist/hero-floating-images.cjs +1 -1
- package/dist/hero-floating-images.js +1 -1
- package/dist/hero-grid-pattern-solutions.cjs +7 -66
- package/dist/hero-grid-pattern-solutions.js +7 -66
- package/dist/hero-hiring-animated-text.cjs +10 -5
- package/dist/hero-hiring-animated-text.js +10 -5
- package/dist/hero-marketplace-scattered-images.cjs +7 -32
- package/dist/hero-marketplace-scattered-images.js +7 -32
- package/dist/hero-mentorship-video-split.cjs +11 -14
- package/dist/hero-mentorship-video-split.js +11 -14
- package/dist/hero-mobile-app-download.cjs +2 -2
- package/dist/hero-mobile-app-download.d.cts +1 -1
- package/dist/hero-mobile-app-download.d.ts +1 -1
- package/dist/hero-mobile-app-download.js +2 -2
- package/dist/hero-premium-split-avatars.cjs +11 -9
- package/dist/hero-premium-split-avatars.d.cts +5 -1
- package/dist/hero-premium-split-avatars.d.ts +5 -1
- package/dist/hero-premium-split-avatars.js +11 -9
- package/dist/hero-presentation-platform-video.cjs +12 -9
- package/dist/hero-presentation-platform-video.d.cts +5 -1
- package/dist/hero-presentation-platform-video.d.ts +5 -1
- package/dist/hero-presentation-platform-video.js +12 -9
- package/dist/hero-productivity-launcher-video.cjs +11 -35
- package/dist/hero-productivity-launcher-video.js +11 -35
- package/dist/hero-spiral-pattern-cards.cjs +49 -92
- package/dist/hero-spiral-pattern-cards.d.cts +20 -3
- package/dist/hero-spiral-pattern-cards.d.ts +20 -3
- package/dist/hero-spiral-pattern-cards.js +49 -92
- package/dist/hero-split-spiral-shapes.cjs +43 -90
- package/dist/hero-split-spiral-shapes.d.cts +17 -4
- package/dist/hero-split-spiral-shapes.d.ts +17 -4
- package/dist/hero-split-spiral-shapes.js +43 -90
- package/dist/hero-startup-launch-cta.cjs +2 -2
- package/dist/hero-startup-launch-cta.js +2 -2
- package/dist/hero-task-timer-animated.cjs +64 -156
- package/dist/hero-task-timer-animated.d.cts +13 -1
- package/dist/hero-task-timer-animated.d.ts +13 -1
- package/dist/hero-task-timer-animated.js +64 -156
- package/dist/hero-testimonial-image-grid.cjs +10 -38
- package/dist/hero-testimonial-image-grid.js +10 -38
- package/dist/hero-therapy-testimonial-grid.cjs +11 -40
- package/dist/hero-therapy-testimonial-grid.js +11 -40
- package/dist/hero-video-background-dark.cjs +10 -34
- package/dist/hero-video-background-dark.d.cts +5 -1
- package/dist/hero-video-background-dark.d.ts +5 -1
- package/dist/hero-video-background-dark.js +10 -34
- package/dist/registry.cjs +353 -302
- package/dist/registry.js +353 -302
- package/package.json +1 -1
|
@@ -36,32 +36,6 @@ var AspectRatioPrimitive__namespace = /*#__PURE__*/_interopNamespace(AspectRatio
|
|
|
36
36
|
function cn(...inputs) {
|
|
37
37
|
return tailwindMerge.twMerge(clsx.clsx(inputs));
|
|
38
38
|
}
|
|
39
|
-
function getNestedCardBg(parentBg, variant = "muted", options) {
|
|
40
|
-
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
41
|
-
if (isDark) {
|
|
42
|
-
switch (variant) {
|
|
43
|
-
case "muted":
|
|
44
|
-
return "bg-background";
|
|
45
|
-
case "card":
|
|
46
|
-
return "bg-card";
|
|
47
|
-
case "accent":
|
|
48
|
-
return "bg-accent";
|
|
49
|
-
case "subtle":
|
|
50
|
-
return "bg-background/50";
|
|
51
|
-
}
|
|
52
|
-
} else {
|
|
53
|
-
switch (variant) {
|
|
54
|
-
case "muted":
|
|
55
|
-
return "bg-muted";
|
|
56
|
-
case "card":
|
|
57
|
-
return "bg-card";
|
|
58
|
-
case "accent":
|
|
59
|
-
return "bg-accent";
|
|
60
|
-
case "subtle":
|
|
61
|
-
return "bg-muted/50";
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
39
|
function normalizePhoneNumber(input) {
|
|
66
40
|
const trimmed = input.trim();
|
|
67
41
|
if (trimmed.toLowerCase().startsWith("tel:")) {
|
|
@@ -908,21 +882,18 @@ Section.displayName = "Section";
|
|
|
908
882
|
function HeroTestimonialImageGrid({
|
|
909
883
|
heading,
|
|
910
884
|
description,
|
|
911
|
-
button
|
|
912
|
-
text: "Get Started",
|
|
913
|
-
url: "#"
|
|
914
|
-
},
|
|
885
|
+
button,
|
|
915
886
|
buttonSlot,
|
|
916
887
|
testimonial,
|
|
917
888
|
testimonialSlot,
|
|
918
889
|
gridImages,
|
|
919
890
|
imagesSlot,
|
|
920
891
|
background,
|
|
921
|
-
spacing,
|
|
892
|
+
spacing = "py-32 md:py-32",
|
|
922
893
|
pattern,
|
|
923
894
|
patternOpacity,
|
|
924
895
|
className,
|
|
925
|
-
containerClassName,
|
|
896
|
+
containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
|
|
926
897
|
headingClassName,
|
|
927
898
|
descriptionClassName,
|
|
928
899
|
optixFlowConfig
|
|
@@ -968,7 +939,7 @@ function HeroTestimonialImageGrid({
|
|
|
968
939
|
if (!gridImages || gridImages.length < 4) return null;
|
|
969
940
|
const images = gridImages;
|
|
970
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.jsxs("div", { className: "grid h-full w-full grid-cols-2 grid-rows-2 gap-[3.5%]", children: [
|
|
971
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className:
|
|
942
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "overflow-hidden rounded-[5.2%] border border-border bg-card", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
972
943
|
img.Img,
|
|
973
944
|
{
|
|
974
945
|
src: images[0].src,
|
|
@@ -977,7 +948,7 @@ function HeroTestimonialImageGrid({
|
|
|
977
948
|
optixFlowConfig
|
|
978
949
|
}
|
|
979
950
|
) }),
|
|
980
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className:
|
|
951
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative overflow-hidden rounded-[5.2%] border border-border bg-card", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute top-1/2 left-[5%] w-[110%] max-w-100 -translate-y-1/2 overflow-hidden rounded-md", children: /* @__PURE__ */ jsxRuntime.jsx(AspectRatio, { ratio: 1.739130435 / 1, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
981
952
|
img.Img,
|
|
982
953
|
{
|
|
983
954
|
src: images[1].src,
|
|
@@ -986,7 +957,7 @@ function HeroTestimonialImageGrid({
|
|
|
986
957
|
optixFlowConfig
|
|
987
958
|
}
|
|
988
959
|
) }) }) }),
|
|
989
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className:
|
|
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(
|
|
990
961
|
img.Img,
|
|
991
962
|
{
|
|
992
963
|
src: images[2].src,
|
|
@@ -995,7 +966,7 @@ function HeroTestimonialImageGrid({
|
|
|
995
966
|
optixFlowConfig
|
|
996
967
|
}
|
|
997
968
|
) }) }) }),
|
|
998
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className:
|
|
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(
|
|
999
970
|
img.Img,
|
|
1000
971
|
{
|
|
1001
972
|
src: images[3].src,
|
|
@@ -1013,8 +984,9 @@ function HeroTestimonialImageGrid({
|
|
|
1013
984
|
spacing,
|
|
1014
985
|
pattern,
|
|
1015
986
|
patternOpacity,
|
|
1016
|
-
className: cn("py-12 md:py-20", className),
|
|
1017
|
-
|
|
987
|
+
className: cn("relative flex items-center justify-center py-12 md:py-20", className),
|
|
988
|
+
containerClassName,
|
|
989
|
+
children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col items-center gap-8 md:flex-row", children: [
|
|
1018
990
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex-1", children: [
|
|
1019
991
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-4 lg:gap-8", children: [
|
|
1020
992
|
heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h1", { className: cn("leading-tighter max-w-[80%] text-4xl font-semibold tracking-tight lg:text-5xl xl:text-7xl", headingClassName), children: heading }) : /* @__PURE__ */ jsxRuntime.jsx("h1", { className: cn("leading-tighter max-w-[80%] text-4xl font-semibold tracking-tight lg:text-5xl xl:text-7xl", headingClassName), children: heading })),
|
|
@@ -13,32 +13,6 @@ import * as AspectRatioPrimitive from '@radix-ui/react-aspect-ratio';
|
|
|
13
13
|
function cn(...inputs) {
|
|
14
14
|
return twMerge(clsx(inputs));
|
|
15
15
|
}
|
|
16
|
-
function getNestedCardBg(parentBg, variant = "muted", options) {
|
|
17
|
-
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
18
|
-
if (isDark) {
|
|
19
|
-
switch (variant) {
|
|
20
|
-
case "muted":
|
|
21
|
-
return "bg-background";
|
|
22
|
-
case "card":
|
|
23
|
-
return "bg-card";
|
|
24
|
-
case "accent":
|
|
25
|
-
return "bg-accent";
|
|
26
|
-
case "subtle":
|
|
27
|
-
return "bg-background/50";
|
|
28
|
-
}
|
|
29
|
-
} else {
|
|
30
|
-
switch (variant) {
|
|
31
|
-
case "muted":
|
|
32
|
-
return "bg-muted";
|
|
33
|
-
case "card":
|
|
34
|
-
return "bg-card";
|
|
35
|
-
case "accent":
|
|
36
|
-
return "bg-accent";
|
|
37
|
-
case "subtle":
|
|
38
|
-
return "bg-muted/50";
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
16
|
function normalizePhoneNumber(input) {
|
|
43
17
|
const trimmed = input.trim();
|
|
44
18
|
if (trimmed.toLowerCase().startsWith("tel:")) {
|
|
@@ -885,21 +859,18 @@ Section.displayName = "Section";
|
|
|
885
859
|
function HeroTestimonialImageGrid({
|
|
886
860
|
heading,
|
|
887
861
|
description,
|
|
888
|
-
button
|
|
889
|
-
text: "Get Started",
|
|
890
|
-
url: "#"
|
|
891
|
-
},
|
|
862
|
+
button,
|
|
892
863
|
buttonSlot,
|
|
893
864
|
testimonial,
|
|
894
865
|
testimonialSlot,
|
|
895
866
|
gridImages,
|
|
896
867
|
imagesSlot,
|
|
897
868
|
background,
|
|
898
|
-
spacing,
|
|
869
|
+
spacing = "py-32 md:py-32",
|
|
899
870
|
pattern,
|
|
900
871
|
patternOpacity,
|
|
901
872
|
className,
|
|
902
|
-
containerClassName,
|
|
873
|
+
containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
|
|
903
874
|
headingClassName,
|
|
904
875
|
descriptionClassName,
|
|
905
876
|
optixFlowConfig
|
|
@@ -945,7 +916,7 @@ function HeroTestimonialImageGrid({
|
|
|
945
916
|
if (!gridImages || gridImages.length < 4) return null;
|
|
946
917
|
const images = gridImages;
|
|
947
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__ */ jsxs("div", { className: "grid h-full w-full grid-cols-2 grid-rows-2 gap-[3.5%]", children: [
|
|
948
|
-
/* @__PURE__ */ jsx("div", { className:
|
|
919
|
+
/* @__PURE__ */ jsx("div", { className: "overflow-hidden rounded-[5.2%] border border-border bg-card", children: /* @__PURE__ */ jsx(
|
|
949
920
|
Img,
|
|
950
921
|
{
|
|
951
922
|
src: images[0].src,
|
|
@@ -954,7 +925,7 @@ function HeroTestimonialImageGrid({
|
|
|
954
925
|
optixFlowConfig
|
|
955
926
|
}
|
|
956
927
|
) }),
|
|
957
|
-
/* @__PURE__ */ jsx("div", { className:
|
|
928
|
+
/* @__PURE__ */ jsx("div", { className: "relative overflow-hidden rounded-[5.2%] border border-border bg-card", children: /* @__PURE__ */ jsx("div", { className: "absolute top-1/2 left-[5%] w-[110%] max-w-100 -translate-y-1/2 overflow-hidden rounded-md", children: /* @__PURE__ */ jsx(AspectRatio, { ratio: 1.739130435 / 1, children: /* @__PURE__ */ jsx(
|
|
958
929
|
Img,
|
|
959
930
|
{
|
|
960
931
|
src: images[1].src,
|
|
@@ -963,7 +934,7 @@ function HeroTestimonialImageGrid({
|
|
|
963
934
|
optixFlowConfig
|
|
964
935
|
}
|
|
965
936
|
) }) }) }),
|
|
966
|
-
/* @__PURE__ */ jsx("div", { className:
|
|
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(
|
|
967
938
|
Img,
|
|
968
939
|
{
|
|
969
940
|
src: images[2].src,
|
|
@@ -972,7 +943,7 @@ function HeroTestimonialImageGrid({
|
|
|
972
943
|
optixFlowConfig
|
|
973
944
|
}
|
|
974
945
|
) }) }) }),
|
|
975
|
-
/* @__PURE__ */ jsx("div", { className:
|
|
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(
|
|
976
947
|
Img,
|
|
977
948
|
{
|
|
978
949
|
src: images[3].src,
|
|
@@ -990,8 +961,9 @@ function HeroTestimonialImageGrid({
|
|
|
990
961
|
spacing,
|
|
991
962
|
pattern,
|
|
992
963
|
patternOpacity,
|
|
993
|
-
className: cn("py-12 md:py-20", className),
|
|
994
|
-
|
|
964
|
+
className: cn("relative flex items-center justify-center py-12 md:py-20", className),
|
|
965
|
+
containerClassName,
|
|
966
|
+
children: /* @__PURE__ */ jsx("div", { className: "relative", children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center gap-8 md:flex-row", children: [
|
|
995
967
|
/* @__PURE__ */ jsxs("div", { className: "flex-1", children: [
|
|
996
968
|
/* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-4 lg:gap-8", children: [
|
|
997
969
|
heading && (typeof heading === "string" ? /* @__PURE__ */ jsx("h1", { className: cn("leading-tighter max-w-[80%] text-4xl font-semibold tracking-tight lg:text-5xl xl:text-7xl", headingClassName), children: heading }) : /* @__PURE__ */ jsx("h1", { className: cn("leading-tighter max-w-[80%] text-4xl font-semibold tracking-tight lg:text-5xl xl:text-7xl", headingClassName), children: heading })),
|
|
@@ -32,36 +32,6 @@ var React__namespace = /*#__PURE__*/_interopNamespace(React);
|
|
|
32
32
|
function cn(...inputs) {
|
|
33
33
|
return tailwindMerge.twMerge(clsx.clsx(inputs));
|
|
34
34
|
}
|
|
35
|
-
function getNestedCardBg(parentBg, variant = "muted", options) {
|
|
36
|
-
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
37
|
-
if (isDark) {
|
|
38
|
-
switch (variant) {
|
|
39
|
-
case "muted":
|
|
40
|
-
return "bg-background";
|
|
41
|
-
case "card":
|
|
42
|
-
return "bg-card";
|
|
43
|
-
case "accent":
|
|
44
|
-
return "bg-accent";
|
|
45
|
-
case "subtle":
|
|
46
|
-
return "bg-background/50";
|
|
47
|
-
}
|
|
48
|
-
} else {
|
|
49
|
-
switch (variant) {
|
|
50
|
-
case "muted":
|
|
51
|
-
return "bg-muted";
|
|
52
|
-
case "card":
|
|
53
|
-
return "bg-card";
|
|
54
|
-
case "accent":
|
|
55
|
-
return "bg-accent";
|
|
56
|
-
case "subtle":
|
|
57
|
-
return "bg-muted/50";
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
function getNestedCardTextColor(parentBg, options) {
|
|
62
|
-
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
63
|
-
return isDark ? "text-foreground" : "";
|
|
64
|
-
}
|
|
65
35
|
function normalizePhoneNumber(input) {
|
|
66
36
|
const trimmed = input.trim();
|
|
67
37
|
if (trimmed.toLowerCase().startsWith("tel:")) {
|
|
@@ -865,11 +835,11 @@ function HeroTherapyTestimonialGrid({
|
|
|
865
835
|
testimonial,
|
|
866
836
|
testimonialSlot,
|
|
867
837
|
background,
|
|
868
|
-
spacing,
|
|
838
|
+
spacing = "py-32 md:py-32",
|
|
869
839
|
pattern,
|
|
870
840
|
patternOpacity,
|
|
871
841
|
className,
|
|
872
|
-
containerClassName,
|
|
842
|
+
containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
|
|
873
843
|
headerClassName,
|
|
874
844
|
headingClassName,
|
|
875
845
|
descriptionClassName,
|
|
@@ -899,11 +869,7 @@ function HeroTherapyTestimonialGrid({
|
|
|
899
869
|
const renderTestimonial = React.useMemo(() => {
|
|
900
870
|
if (testimonialSlot) return testimonialSlot;
|
|
901
871
|
if (!testimonial) return null;
|
|
902
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "col-[1/2] row-[3/4] md:col-[1/2] md:row-[2/3]", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className:
|
|
903
|
-
"flex h-full min-h-37.5 flex-col gap-3 overflow-hidden rounded-3xl p-5 px-5 md:flex-row md:items-center md:gap-7 md:py-8",
|
|
904
|
-
getNestedCardBg(background),
|
|
905
|
-
getNestedCardTextColor(background)
|
|
906
|
-
), children: [
|
|
872
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "col-[1/2] row-[3/4] md:col-[1/2] md:row-[2/3]", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex h-full min-h-37.5 flex-col gap-3 overflow-hidden rounded-3xl bg-card p-5 px-5 md:flex-row md:items-center md:gap-7 md:py-8", children: [
|
|
907
873
|
testimonial.avatar && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-20 w-20 shrink-0 overflow-hidden rounded-xl md:h-30 md:w-30", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
908
874
|
img.Img,
|
|
909
875
|
{
|
|
@@ -946,7 +912,7 @@ function HeroTherapyTestimonialGrid({
|
|
|
946
912
|
}
|
|
947
913
|
) }) }),
|
|
948
914
|
renderTestimonial,
|
|
949
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "row-[4/5] md:col-[2/3] md:row-[2/3]", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className:
|
|
915
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "row-[4/5] md:col-[2/3] md:row-[2/3]", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-full w-full overflow-hidden rounded-2xl bg-card", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
950
916
|
img.Img,
|
|
951
917
|
{
|
|
952
918
|
src: images[2].src,
|
|
@@ -960,8 +926,13 @@ function HeroTherapyTestimonialGrid({
|
|
|
960
926
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
961
927
|
Section,
|
|
962
928
|
{
|
|
963
|
-
|
|
964
|
-
|
|
929
|
+
background,
|
|
930
|
+
spacing,
|
|
931
|
+
pattern,
|
|
932
|
+
patternOpacity,
|
|
933
|
+
className: cn("relative flex items-center justify-center bg-background py-12 font-sans md:py-20", className),
|
|
934
|
+
containerClassName,
|
|
935
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative", children: [
|
|
965
936
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("mx-auto mb-16 flex max-w-[900px] flex-col items-center gap-6", headerClassName), children: [
|
|
966
937
|
heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h1", { className: cn("text-center text-4xl leading-tight font-medium sm:text-5xl md:text-6xl", headingClassName), children: heading }) : /* @__PURE__ */ jsxRuntime.jsx("h1", { className: cn("text-center text-4xl leading-tight font-medium sm:text-5xl md:text-6xl", headingClassName), children: heading })),
|
|
967
938
|
description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("text-center text-lg text-muted-foreground md:text-xl", descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description })),
|
|
@@ -11,36 +11,6 @@ import { Img } from '@page-speed/img';
|
|
|
11
11
|
function cn(...inputs) {
|
|
12
12
|
return twMerge(clsx(inputs));
|
|
13
13
|
}
|
|
14
|
-
function getNestedCardBg(parentBg, variant = "muted", options) {
|
|
15
|
-
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
16
|
-
if (isDark) {
|
|
17
|
-
switch (variant) {
|
|
18
|
-
case "muted":
|
|
19
|
-
return "bg-background";
|
|
20
|
-
case "card":
|
|
21
|
-
return "bg-card";
|
|
22
|
-
case "accent":
|
|
23
|
-
return "bg-accent";
|
|
24
|
-
case "subtle":
|
|
25
|
-
return "bg-background/50";
|
|
26
|
-
}
|
|
27
|
-
} else {
|
|
28
|
-
switch (variant) {
|
|
29
|
-
case "muted":
|
|
30
|
-
return "bg-muted";
|
|
31
|
-
case "card":
|
|
32
|
-
return "bg-card";
|
|
33
|
-
case "accent":
|
|
34
|
-
return "bg-accent";
|
|
35
|
-
case "subtle":
|
|
36
|
-
return "bg-muted/50";
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
function getNestedCardTextColor(parentBg, options) {
|
|
41
|
-
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
42
|
-
return isDark ? "text-foreground" : "";
|
|
43
|
-
}
|
|
44
14
|
function normalizePhoneNumber(input) {
|
|
45
15
|
const trimmed = input.trim();
|
|
46
16
|
if (trimmed.toLowerCase().startsWith("tel:")) {
|
|
@@ -844,11 +814,11 @@ function HeroTherapyTestimonialGrid({
|
|
|
844
814
|
testimonial,
|
|
845
815
|
testimonialSlot,
|
|
846
816
|
background,
|
|
847
|
-
spacing,
|
|
817
|
+
spacing = "py-32 md:py-32",
|
|
848
818
|
pattern,
|
|
849
819
|
patternOpacity,
|
|
850
820
|
className,
|
|
851
|
-
containerClassName,
|
|
821
|
+
containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
|
|
852
822
|
headerClassName,
|
|
853
823
|
headingClassName,
|
|
854
824
|
descriptionClassName,
|
|
@@ -878,11 +848,7 @@ function HeroTherapyTestimonialGrid({
|
|
|
878
848
|
const renderTestimonial = useMemo(() => {
|
|
879
849
|
if (testimonialSlot) return testimonialSlot;
|
|
880
850
|
if (!testimonial) return null;
|
|
881
|
-
return /* @__PURE__ */ jsx("div", { className: "col-[1/2] row-[3/4] md:col-[1/2] md:row-[2/3]", children: /* @__PURE__ */ jsxs("div", { className:
|
|
882
|
-
"flex h-full min-h-37.5 flex-col gap-3 overflow-hidden rounded-3xl p-5 px-5 md:flex-row md:items-center md:gap-7 md:py-8",
|
|
883
|
-
getNestedCardBg(background),
|
|
884
|
-
getNestedCardTextColor(background)
|
|
885
|
-
), children: [
|
|
851
|
+
return /* @__PURE__ */ jsx("div", { className: "col-[1/2] row-[3/4] md:col-[1/2] md:row-[2/3]", children: /* @__PURE__ */ jsxs("div", { className: "flex h-full min-h-37.5 flex-col gap-3 overflow-hidden rounded-3xl bg-card p-5 px-5 md:flex-row md:items-center md:gap-7 md:py-8", children: [
|
|
886
852
|
testimonial.avatar && /* @__PURE__ */ jsx("div", { className: "h-20 w-20 shrink-0 overflow-hidden rounded-xl md:h-30 md:w-30", children: /* @__PURE__ */ jsx(
|
|
887
853
|
Img,
|
|
888
854
|
{
|
|
@@ -925,7 +891,7 @@ function HeroTherapyTestimonialGrid({
|
|
|
925
891
|
}
|
|
926
892
|
) }) }),
|
|
927
893
|
renderTestimonial,
|
|
928
|
-
/* @__PURE__ */ jsx("div", { className: "row-[4/5] md:col-[2/3] md:row-[2/3]", children: /* @__PURE__ */ jsx("div", { className:
|
|
894
|
+
/* @__PURE__ */ jsx("div", { className: "row-[4/5] md:col-[2/3] md:row-[2/3]", children: /* @__PURE__ */ jsx("div", { className: "h-full w-full overflow-hidden rounded-2xl bg-card", children: /* @__PURE__ */ jsx(
|
|
929
895
|
Img,
|
|
930
896
|
{
|
|
931
897
|
src: images[2].src,
|
|
@@ -939,8 +905,13 @@ function HeroTherapyTestimonialGrid({
|
|
|
939
905
|
return /* @__PURE__ */ jsx(
|
|
940
906
|
Section,
|
|
941
907
|
{
|
|
942
|
-
|
|
943
|
-
|
|
908
|
+
background,
|
|
909
|
+
spacing,
|
|
910
|
+
pattern,
|
|
911
|
+
patternOpacity,
|
|
912
|
+
className: cn("relative flex items-center justify-center bg-background py-12 font-sans md:py-20", className),
|
|
913
|
+
containerClassName,
|
|
914
|
+
children: /* @__PURE__ */ jsxs("div", { className: "relative", children: [
|
|
944
915
|
/* @__PURE__ */ jsxs("div", { className: cn("mx-auto mb-16 flex max-w-[900px] flex-col items-center gap-6", headerClassName), children: [
|
|
945
916
|
heading && (typeof heading === "string" ? /* @__PURE__ */ jsx("h1", { className: cn("text-center text-4xl leading-tight font-medium sm:text-5xl md:text-6xl", headingClassName), children: heading }) : /* @__PURE__ */ jsx("h1", { className: cn("text-center text-4xl leading-tight font-medium sm:text-5xl md:text-6xl", headingClassName), children: heading })),
|
|
946
917
|
description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("text-center text-lg text-muted-foreground md:text-xl", descriptionClassName), children: description }) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description })),
|
|
@@ -31,32 +31,6 @@ var React__namespace = /*#__PURE__*/_interopNamespace(React);
|
|
|
31
31
|
function cn(...inputs) {
|
|
32
32
|
return tailwindMerge.twMerge(clsx.clsx(inputs));
|
|
33
33
|
}
|
|
34
|
-
function getTextColor(parentBg, variant = "default", options) {
|
|
35
|
-
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
36
|
-
if (isDark) {
|
|
37
|
-
switch (variant) {
|
|
38
|
-
case "default":
|
|
39
|
-
return "text-foreground";
|
|
40
|
-
case "muted":
|
|
41
|
-
return "text-foreground/80";
|
|
42
|
-
case "subtle":
|
|
43
|
-
return "text-foreground/60";
|
|
44
|
-
case "accent":
|
|
45
|
-
return "text-accent-foreground";
|
|
46
|
-
}
|
|
47
|
-
} else {
|
|
48
|
-
switch (variant) {
|
|
49
|
-
case "default":
|
|
50
|
-
return "text-foreground";
|
|
51
|
-
case "muted":
|
|
52
|
-
return "text-muted-foreground";
|
|
53
|
-
case "subtle":
|
|
54
|
-
return "text-muted-foreground/70";
|
|
55
|
-
case "accent":
|
|
56
|
-
return "text-primary";
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
34
|
function normalizePhoneNumber(input) {
|
|
61
35
|
const trimmed = input.trim();
|
|
62
36
|
if (trimmed.toLowerCase().startsWith("tel:")) {
|
|
@@ -859,10 +833,11 @@ function HeroVideoBackgroundDark({
|
|
|
859
833
|
videoSrc,
|
|
860
834
|
videoSlot,
|
|
861
835
|
background,
|
|
862
|
-
spacing,
|
|
836
|
+
spacing = "py-32 md:py-32",
|
|
863
837
|
pattern,
|
|
864
838
|
patternOpacity,
|
|
865
839
|
className,
|
|
840
|
+
containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
|
|
866
841
|
contentClassName,
|
|
867
842
|
headingClassName,
|
|
868
843
|
descriptionClassName
|
|
@@ -902,23 +877,24 @@ function HeroVideoBackgroundDark({
|
|
|
902
877
|
}
|
|
903
878
|
);
|
|
904
879
|
}, [videoSlot, videoSrc]);
|
|
905
|
-
return /* @__PURE__ */ jsxRuntime.
|
|
880
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
906
881
|
Section,
|
|
907
882
|
{
|
|
908
883
|
background,
|
|
909
884
|
spacing,
|
|
910
885
|
pattern,
|
|
911
886
|
patternOpacity,
|
|
912
|
-
className: cn(className),
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
|
|
887
|
+
className: cn("relative flex items-center justify-center", className),
|
|
888
|
+
containerClassName,
|
|
889
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative", children: [
|
|
890
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("relative z-10 mx-auto flex size-full max-w-3xl flex-col justify-center gap-4 lg:items-center lg:text-center", contentClassName), children: [
|
|
891
|
+
badgeText && (typeof badgeText === "string" ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs text-muted-foreground", children: badgeText }) : badgeText),
|
|
916
892
|
heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h1", { className: cn("text-5xl font-bold lg:text-[4.2rem]", headingClassName), children: heading }) : /* @__PURE__ */ jsxRuntime.jsx("h1", { className: cn("text-5xl font-bold lg:text-[4.2rem]", headingClassName), children: heading })),
|
|
917
|
-
description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("text-lg
|
|
893
|
+
description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("text-lg text-muted-foreground", descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description })),
|
|
918
894
|
renderActions
|
|
919
895
|
] }),
|
|
920
896
|
renderVideo
|
|
921
|
-
]
|
|
897
|
+
] })
|
|
922
898
|
}
|
|
923
899
|
);
|
|
924
900
|
}
|
|
@@ -54,6 +54,10 @@ interface HeroVideoBackgroundDarkProps {
|
|
|
54
54
|
* Additional CSS classes for the section
|
|
55
55
|
*/
|
|
56
56
|
className?: string;
|
|
57
|
+
/**
|
|
58
|
+
* Additional CSS classes for the container
|
|
59
|
+
*/
|
|
60
|
+
containerClassName?: string;
|
|
57
61
|
/**
|
|
58
62
|
* Additional CSS classes for the content area
|
|
59
63
|
*/
|
|
@@ -67,6 +71,6 @@ interface HeroVideoBackgroundDarkProps {
|
|
|
67
71
|
*/
|
|
68
72
|
descriptionClassName?: string;
|
|
69
73
|
}
|
|
70
|
-
declare function HeroVideoBackgroundDark({ badgeText, heading, description, actions, actionsSlot, videoSrc, videoSlot, background, spacing, pattern, patternOpacity, className, contentClassName, headingClassName, descriptionClassName, }: HeroVideoBackgroundDarkProps): React.JSX.Element;
|
|
74
|
+
declare function HeroVideoBackgroundDark({ badgeText, heading, description, actions, actionsSlot, videoSrc, videoSlot, background, spacing, pattern, patternOpacity, className, containerClassName, contentClassName, headingClassName, descriptionClassName, }: HeroVideoBackgroundDarkProps): React.JSX.Element;
|
|
71
75
|
|
|
72
76
|
export { HeroVideoBackgroundDark, type HeroVideoBackgroundDarkProps };
|
|
@@ -54,6 +54,10 @@ interface HeroVideoBackgroundDarkProps {
|
|
|
54
54
|
* Additional CSS classes for the section
|
|
55
55
|
*/
|
|
56
56
|
className?: string;
|
|
57
|
+
/**
|
|
58
|
+
* Additional CSS classes for the container
|
|
59
|
+
*/
|
|
60
|
+
containerClassName?: string;
|
|
57
61
|
/**
|
|
58
62
|
* Additional CSS classes for the content area
|
|
59
63
|
*/
|
|
@@ -67,6 +71,6 @@ interface HeroVideoBackgroundDarkProps {
|
|
|
67
71
|
*/
|
|
68
72
|
descriptionClassName?: string;
|
|
69
73
|
}
|
|
70
|
-
declare function HeroVideoBackgroundDark({ badgeText, heading, description, actions, actionsSlot, videoSrc, videoSlot, background, spacing, pattern, patternOpacity, className, contentClassName, headingClassName, descriptionClassName, }: HeroVideoBackgroundDarkProps): React.JSX.Element;
|
|
74
|
+
declare function HeroVideoBackgroundDark({ badgeText, heading, description, actions, actionsSlot, videoSrc, videoSlot, background, spacing, pattern, patternOpacity, className, containerClassName, contentClassName, headingClassName, descriptionClassName, }: HeroVideoBackgroundDarkProps): React.JSX.Element;
|
|
71
75
|
|
|
72
76
|
export { HeroVideoBackgroundDark, type HeroVideoBackgroundDarkProps };
|
|
@@ -10,32 +10,6 @@ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
|
10
10
|
function cn(...inputs) {
|
|
11
11
|
return twMerge(clsx(inputs));
|
|
12
12
|
}
|
|
13
|
-
function getTextColor(parentBg, variant = "default", options) {
|
|
14
|
-
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
15
|
-
if (isDark) {
|
|
16
|
-
switch (variant) {
|
|
17
|
-
case "default":
|
|
18
|
-
return "text-foreground";
|
|
19
|
-
case "muted":
|
|
20
|
-
return "text-foreground/80";
|
|
21
|
-
case "subtle":
|
|
22
|
-
return "text-foreground/60";
|
|
23
|
-
case "accent":
|
|
24
|
-
return "text-accent-foreground";
|
|
25
|
-
}
|
|
26
|
-
} else {
|
|
27
|
-
switch (variant) {
|
|
28
|
-
case "default":
|
|
29
|
-
return "text-foreground";
|
|
30
|
-
case "muted":
|
|
31
|
-
return "text-muted-foreground";
|
|
32
|
-
case "subtle":
|
|
33
|
-
return "text-muted-foreground/70";
|
|
34
|
-
case "accent":
|
|
35
|
-
return "text-primary";
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
13
|
function normalizePhoneNumber(input) {
|
|
40
14
|
const trimmed = input.trim();
|
|
41
15
|
if (trimmed.toLowerCase().startsWith("tel:")) {
|
|
@@ -838,10 +812,11 @@ function HeroVideoBackgroundDark({
|
|
|
838
812
|
videoSrc,
|
|
839
813
|
videoSlot,
|
|
840
814
|
background,
|
|
841
|
-
spacing,
|
|
815
|
+
spacing = "py-32 md:py-32",
|
|
842
816
|
pattern,
|
|
843
817
|
patternOpacity,
|
|
844
818
|
className,
|
|
819
|
+
containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
|
|
845
820
|
contentClassName,
|
|
846
821
|
headingClassName,
|
|
847
822
|
descriptionClassName
|
|
@@ -881,23 +856,24 @@ function HeroVideoBackgroundDark({
|
|
|
881
856
|
}
|
|
882
857
|
);
|
|
883
858
|
}, [videoSlot, videoSrc]);
|
|
884
|
-
return /* @__PURE__ */
|
|
859
|
+
return /* @__PURE__ */ jsx(
|
|
885
860
|
Section,
|
|
886
861
|
{
|
|
887
862
|
background,
|
|
888
863
|
spacing,
|
|
889
864
|
pattern,
|
|
890
865
|
patternOpacity,
|
|
891
|
-
className: cn(className),
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
|
|
866
|
+
className: cn("relative flex items-center justify-center", className),
|
|
867
|
+
containerClassName,
|
|
868
|
+
children: /* @__PURE__ */ jsxs("div", { className: "relative", children: [
|
|
869
|
+
/* @__PURE__ */ jsxs("div", { className: cn("relative z-10 mx-auto flex size-full max-w-3xl flex-col justify-center gap-4 lg:items-center lg:text-center", contentClassName), children: [
|
|
870
|
+
badgeText && (typeof badgeText === "string" ? /* @__PURE__ */ jsx("span", { className: "text-xs text-muted-foreground", children: badgeText }) : badgeText),
|
|
895
871
|
heading && (typeof heading === "string" ? /* @__PURE__ */ jsx("h1", { className: cn("text-5xl font-bold lg:text-[4.2rem]", headingClassName), children: heading }) : /* @__PURE__ */ jsx("h1", { className: cn("text-5xl font-bold lg:text-[4.2rem]", headingClassName), children: heading })),
|
|
896
|
-
description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("text-lg
|
|
872
|
+
description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("text-lg text-muted-foreground", descriptionClassName), children: description }) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description })),
|
|
897
873
|
renderActions
|
|
898
874
|
] }),
|
|
899
875
|
renderVideo
|
|
900
|
-
]
|
|
876
|
+
] })
|
|
901
877
|
}
|
|
902
878
|
);
|
|
903
879
|
}
|