@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
|
@@ -12,62 +12,6 @@ import * as AvatarPrimitive from '@radix-ui/react-avatar';
|
|
|
12
12
|
function cn(...inputs) {
|
|
13
13
|
return twMerge(clsx(inputs));
|
|
14
14
|
}
|
|
15
|
-
function getNestedCardBg(parentBg, variant = "muted", options) {
|
|
16
|
-
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
17
|
-
if (isDark) {
|
|
18
|
-
switch (variant) {
|
|
19
|
-
case "muted":
|
|
20
|
-
return "bg-background";
|
|
21
|
-
case "card":
|
|
22
|
-
return "bg-card";
|
|
23
|
-
case "accent":
|
|
24
|
-
return "bg-accent";
|
|
25
|
-
case "subtle":
|
|
26
|
-
return "bg-background/50";
|
|
27
|
-
}
|
|
28
|
-
} else {
|
|
29
|
-
switch (variant) {
|
|
30
|
-
case "muted":
|
|
31
|
-
return "bg-muted";
|
|
32
|
-
case "card":
|
|
33
|
-
return "bg-card";
|
|
34
|
-
case "accent":
|
|
35
|
-
return "bg-accent";
|
|
36
|
-
case "subtle":
|
|
37
|
-
return "bg-muted/50";
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
function getNestedCardTextColor(parentBg, options) {
|
|
42
|
-
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
43
|
-
return isDark ? "text-foreground" : "";
|
|
44
|
-
}
|
|
45
|
-
function getTextColor(parentBg, variant = "default", options) {
|
|
46
|
-
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
47
|
-
if (isDark) {
|
|
48
|
-
switch (variant) {
|
|
49
|
-
case "default":
|
|
50
|
-
return "text-foreground";
|
|
51
|
-
case "muted":
|
|
52
|
-
return "text-foreground/80";
|
|
53
|
-
case "subtle":
|
|
54
|
-
return "text-foreground/60";
|
|
55
|
-
case "accent":
|
|
56
|
-
return "text-accent-foreground";
|
|
57
|
-
}
|
|
58
|
-
} else {
|
|
59
|
-
switch (variant) {
|
|
60
|
-
case "default":
|
|
61
|
-
return "text-foreground";
|
|
62
|
-
case "muted":
|
|
63
|
-
return "text-muted-foreground";
|
|
64
|
-
case "subtle":
|
|
65
|
-
return "text-muted-foreground/70";
|
|
66
|
-
case "accent":
|
|
67
|
-
return "text-primary";
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
15
|
var badgeVariants = cva(
|
|
72
16
|
"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",
|
|
73
17
|
{
|
|
@@ -1040,11 +984,11 @@ function HeroDashedBorderFeatures({
|
|
|
1040
984
|
features,
|
|
1041
985
|
featuresSlot,
|
|
1042
986
|
background,
|
|
1043
|
-
spacing,
|
|
987
|
+
spacing = "py-32 md:py-32",
|
|
1044
988
|
pattern,
|
|
1045
989
|
patternOpacity,
|
|
1046
990
|
className,
|
|
1047
|
-
containerClassName,
|
|
991
|
+
containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
|
|
1048
992
|
contentClassName,
|
|
1049
993
|
headingClassName,
|
|
1050
994
|
descriptionClassName,
|
|
@@ -1057,11 +1001,7 @@ function HeroDashedBorderFeatures({
|
|
|
1057
1001
|
Pressable,
|
|
1058
1002
|
{
|
|
1059
1003
|
href: announcementHref,
|
|
1060
|
-
className:
|
|
1061
|
-
"mx-auto mb-4 flex w-fit items-center gap-2 rounded-full px-4 py-2 text-sm",
|
|
1062
|
-
getNestedCardBg(background),
|
|
1063
|
-
getNestedCardTextColor(background)
|
|
1064
|
-
),
|
|
1004
|
+
className: "mx-auto mb-4 flex w-fit items-center gap-2 rounded-full px-4 py-2 text-sm bg-card",
|
|
1065
1005
|
children: [
|
|
1066
1006
|
/* @__PURE__ */ jsx(Badge, { children: badgeText }),
|
|
1067
1007
|
announcementText,
|
|
@@ -1124,11 +1064,7 @@ function HeroDashedBorderFeatures({
|
|
|
1124
1064
|
index === 1 && "border-x"
|
|
1125
1065
|
),
|
|
1126
1066
|
children: [
|
|
1127
|
-
/* @__PURE__ */ jsx("span", { className:
|
|
1128
|
-
"flex size-10 shrink-0 items-center justify-center rounded-md text-sm lg:size-12 lg:text-base",
|
|
1129
|
-
getNestedCardBg(background),
|
|
1130
|
-
getNestedCardTextColor(background)
|
|
1131
|
-
), children: feature.icon ?? /* @__PURE__ */ jsx(DynamicIcon, { name: feature.iconName || "lucide/check", size: 20 }) }),
|
|
1067
|
+
/* @__PURE__ */ jsx("span", { className: "flex size-10 shrink-0 items-center justify-center rounded-md text-sm lg:size-12 lg:text-base bg-card", children: feature.icon ?? /* @__PURE__ */ jsx(DynamicIcon, { name: feature.iconName || "lucide/check", size: 20 }) }),
|
|
1132
1068
|
feature.title
|
|
1133
1069
|
]
|
|
1134
1070
|
},
|
|
@@ -1142,12 +1078,13 @@ function HeroDashedBorderFeatures({
|
|
|
1142
1078
|
spacing,
|
|
1143
1079
|
pattern,
|
|
1144
1080
|
patternOpacity,
|
|
1145
|
-
className,
|
|
1146
|
-
|
|
1081
|
+
className: cn("relative flex items-center justify-center", className),
|
|
1082
|
+
containerClassName,
|
|
1083
|
+
children: /* @__PURE__ */ jsxs("div", { className: "relative", children: [
|
|
1147
1084
|
/* @__PURE__ */ jsx("div", { className: cn("border-x border-t border-dashed px-4 py-20 md:px-16", contentClassName), children: /* @__PURE__ */ jsxs("div", { className: "mx-auto max-w-3xl", children: [
|
|
1148
1085
|
renderAnnouncement,
|
|
1149
1086
|
heading && (typeof heading === "string" ? /* @__PURE__ */ jsx("h1", { className: cn("my-4 mb-6 text-center text-3xl font-semibold lg:text-8xl", headingClassName), children: heading }) : /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading })),
|
|
1150
|
-
description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("mx-auto mb-6 max-w-2xl text-center lg:text-xl
|
|
1087
|
+
description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("mx-auto mb-6 max-w-2xl text-center lg:text-xl text-muted-foreground", descriptionClassName), children: description }) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description })),
|
|
1151
1088
|
/* @__PURE__ */ jsx("div", { className: cn("flex flex-col justify-center gap-2 sm:flex-row", actionsClassName), children: renderActions })
|
|
1152
1089
|
] }) }),
|
|
1153
1090
|
/* @__PURE__ */ jsxs("div", { className: cn("relative grid border-x border-dashed md:grid-cols-3", featuresClassName), children: [
|
|
@@ -32,32 +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 getTextColor(parentBg, variant = "default", options) {
|
|
36
|
-
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
37
|
-
if (isDark) {
|
|
38
|
-
switch (variant) {
|
|
39
|
-
case "default":
|
|
40
|
-
return "text-foreground";
|
|
41
|
-
case "muted":
|
|
42
|
-
return "text-foreground/80";
|
|
43
|
-
case "subtle":
|
|
44
|
-
return "text-foreground/60";
|
|
45
|
-
case "accent":
|
|
46
|
-
return "text-accent-foreground";
|
|
47
|
-
}
|
|
48
|
-
} else {
|
|
49
|
-
switch (variant) {
|
|
50
|
-
case "default":
|
|
51
|
-
return "text-foreground";
|
|
52
|
-
case "muted":
|
|
53
|
-
return "text-muted-foreground";
|
|
54
|
-
case "subtle":
|
|
55
|
-
return "text-muted-foreground/70";
|
|
56
|
-
case "accent":
|
|
57
|
-
return "text-primary";
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
35
|
function normalizePhoneNumber(input) {
|
|
62
36
|
const trimmed = input.trim();
|
|
63
37
|
if (trimmed.toLowerCase().startsWith("tel:")) {
|
|
@@ -856,17 +830,17 @@ function HeroDesignShowcaseLogos({
|
|
|
856
830
|
description,
|
|
857
831
|
actions,
|
|
858
832
|
actionsSlot,
|
|
859
|
-
logosLabel
|
|
833
|
+
logosLabel,
|
|
860
834
|
logos,
|
|
861
835
|
logosSlot,
|
|
862
836
|
showcaseImage,
|
|
863
837
|
showcaseSlot,
|
|
864
838
|
background,
|
|
865
|
-
spacing,
|
|
839
|
+
spacing = "py-32 md:py-32",
|
|
866
840
|
pattern,
|
|
867
841
|
patternOpacity,
|
|
868
842
|
className,
|
|
869
|
-
containerClassName,
|
|
843
|
+
containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
|
|
870
844
|
contentClassName,
|
|
871
845
|
headingClassName,
|
|
872
846
|
descriptionClassName,
|
|
@@ -936,12 +910,13 @@ function HeroDesignShowcaseLogos({
|
|
|
936
910
|
spacing,
|
|
937
911
|
pattern,
|
|
938
912
|
patternOpacity,
|
|
939
|
-
className,
|
|
913
|
+
className: cn("relative flex items-center justify-center", className),
|
|
914
|
+
containerClassName,
|
|
940
915
|
children: [
|
|
941
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className:
|
|
916
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex flex-col items-center gap-8", contentClassName), children: [
|
|
942
917
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex max-w-[920px] flex-col items-center gap-6", children: [
|
|
943
918
|
heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h1", { className: cn("mb-6 text-center text-[2.75rem] leading-tight font-semibold md:text-[3.5rem] lg:text-[4.375rem]", headingClassName), children: heading }) : /* @__PURE__ */ jsxRuntime.jsx("h1", { className: cn("mb-6 text-center text-[2.75rem] leading-tight font-semibold md:text-[3.5rem] lg:text-[4.375rem]", headingClassName), children: heading })),
|
|
944
|
-
description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("text-center text-xl
|
|
919
|
+
description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("text-center text-xl text-muted-foreground", descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description }))
|
|
945
920
|
] }),
|
|
946
921
|
/* @__PURE__ */ jsxRuntime.jsx("div", { children: renderActions }),
|
|
947
922
|
/* @__PURE__ */ jsxRuntime.jsx("div", { children: renderLogos })
|
|
@@ -11,32 +11,6 @@ import { Img } from '@page-speed/img';
|
|
|
11
11
|
function cn(...inputs) {
|
|
12
12
|
return twMerge(clsx(inputs));
|
|
13
13
|
}
|
|
14
|
-
function getTextColor(parentBg, variant = "default", options) {
|
|
15
|
-
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
16
|
-
if (isDark) {
|
|
17
|
-
switch (variant) {
|
|
18
|
-
case "default":
|
|
19
|
-
return "text-foreground";
|
|
20
|
-
case "muted":
|
|
21
|
-
return "text-foreground/80";
|
|
22
|
-
case "subtle":
|
|
23
|
-
return "text-foreground/60";
|
|
24
|
-
case "accent":
|
|
25
|
-
return "text-accent-foreground";
|
|
26
|
-
}
|
|
27
|
-
} else {
|
|
28
|
-
switch (variant) {
|
|
29
|
-
case "default":
|
|
30
|
-
return "text-foreground";
|
|
31
|
-
case "muted":
|
|
32
|
-
return "text-muted-foreground";
|
|
33
|
-
case "subtle":
|
|
34
|
-
return "text-muted-foreground/70";
|
|
35
|
-
case "accent":
|
|
36
|
-
return "text-primary";
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
14
|
function normalizePhoneNumber(input) {
|
|
41
15
|
const trimmed = input.trim();
|
|
42
16
|
if (trimmed.toLowerCase().startsWith("tel:")) {
|
|
@@ -835,17 +809,17 @@ function HeroDesignShowcaseLogos({
|
|
|
835
809
|
description,
|
|
836
810
|
actions,
|
|
837
811
|
actionsSlot,
|
|
838
|
-
logosLabel
|
|
812
|
+
logosLabel,
|
|
839
813
|
logos,
|
|
840
814
|
logosSlot,
|
|
841
815
|
showcaseImage,
|
|
842
816
|
showcaseSlot,
|
|
843
817
|
background,
|
|
844
|
-
spacing,
|
|
818
|
+
spacing = "py-32 md:py-32",
|
|
845
819
|
pattern,
|
|
846
820
|
patternOpacity,
|
|
847
821
|
className,
|
|
848
|
-
containerClassName,
|
|
822
|
+
containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
|
|
849
823
|
contentClassName,
|
|
850
824
|
headingClassName,
|
|
851
825
|
descriptionClassName,
|
|
@@ -915,12 +889,13 @@ function HeroDesignShowcaseLogos({
|
|
|
915
889
|
spacing,
|
|
916
890
|
pattern,
|
|
917
891
|
patternOpacity,
|
|
918
|
-
className,
|
|
892
|
+
className: cn("relative flex items-center justify-center", className),
|
|
893
|
+
containerClassName,
|
|
919
894
|
children: [
|
|
920
|
-
/* @__PURE__ */ jsx("div", { className:
|
|
895
|
+
/* @__PURE__ */ jsx("div", { className: "relative", children: /* @__PURE__ */ jsxs("div", { className: cn("flex flex-col items-center gap-8", contentClassName), children: [
|
|
921
896
|
/* @__PURE__ */ jsxs("div", { className: "flex max-w-[920px] flex-col items-center gap-6", children: [
|
|
922
897
|
heading && (typeof heading === "string" ? /* @__PURE__ */ jsx("h1", { className: cn("mb-6 text-center text-[2.75rem] leading-tight font-semibold md:text-[3.5rem] lg:text-[4.375rem]", headingClassName), children: heading }) : /* @__PURE__ */ jsx("h1", { className: cn("mb-6 text-center text-[2.75rem] leading-tight font-semibold md:text-[3.5rem] lg:text-[4.375rem]", headingClassName), children: heading })),
|
|
923
|
-
description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("text-center text-xl
|
|
898
|
+
description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("text-center text-xl text-muted-foreground", descriptionClassName), children: description }) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description }))
|
|
924
899
|
] }),
|
|
925
900
|
/* @__PURE__ */ jsx("div", { children: renderActions }),
|
|
926
901
|
/* @__PURE__ */ jsx("div", { children: renderLogos })
|
|
@@ -531,7 +531,7 @@ function HeroFloatingImages({
|
|
|
531
531
|
zoomIndicatorClassName,
|
|
532
532
|
optixFlowConfig,
|
|
533
533
|
containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
|
|
534
|
-
spacing = "py-
|
|
534
|
+
spacing = "py-32 md:py-32"
|
|
535
535
|
}) {
|
|
536
536
|
const [lightboxOpen, setLightboxOpen] = React3.useState(false);
|
|
537
537
|
const [lightboxIndex, setLightboxIndex] = React3.useState(0);
|
|
@@ -510,7 +510,7 @@ function HeroFloatingImages({
|
|
|
510
510
|
zoomIndicatorClassName,
|
|
511
511
|
optixFlowConfig,
|
|
512
512
|
containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
|
|
513
|
-
spacing = "py-
|
|
513
|
+
spacing = "py-32 md:py-32"
|
|
514
514
|
}) {
|
|
515
515
|
const [lightboxOpen, setLightboxOpen] = useState(false);
|
|
516
516
|
const [lightboxIndex, setLightboxIndex] = useState(0);
|
|
@@ -32,62 +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
|
-
function getTextColor(parentBg, variant = "default", options) {
|
|
66
|
-
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
67
|
-
if (isDark) {
|
|
68
|
-
switch (variant) {
|
|
69
|
-
case "default":
|
|
70
|
-
return "text-foreground";
|
|
71
|
-
case "muted":
|
|
72
|
-
return "text-foreground/80";
|
|
73
|
-
case "subtle":
|
|
74
|
-
return "text-foreground/60";
|
|
75
|
-
case "accent":
|
|
76
|
-
return "text-accent-foreground";
|
|
77
|
-
}
|
|
78
|
-
} else {
|
|
79
|
-
switch (variant) {
|
|
80
|
-
case "default":
|
|
81
|
-
return "text-foreground";
|
|
82
|
-
case "muted":
|
|
83
|
-
return "text-muted-foreground";
|
|
84
|
-
case "subtle":
|
|
85
|
-
return "text-muted-foreground/70";
|
|
86
|
-
case "accent":
|
|
87
|
-
return "text-primary";
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
35
|
function normalizePhoneNumber(input) {
|
|
92
36
|
const trimmed = input.trim();
|
|
93
37
|
if (trimmed.toLowerCase().startsWith("tel:")) {
|
|
@@ -998,11 +942,11 @@ function HeroGridPatternSolutions({
|
|
|
998
942
|
imagesSlot,
|
|
999
943
|
showGridPattern = true,
|
|
1000
944
|
background,
|
|
1001
|
-
spacing,
|
|
945
|
+
spacing = "py-32 md:py-32",
|
|
1002
946
|
pattern,
|
|
1003
947
|
patternOpacity,
|
|
1004
948
|
className,
|
|
1005
|
-
containerClassName,
|
|
949
|
+
containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
|
|
1006
950
|
contentClassName,
|
|
1007
951
|
headingClassName,
|
|
1008
952
|
descriptionClassName,
|
|
@@ -1016,11 +960,7 @@ function HeroGridPatternSolutions({
|
|
|
1016
960
|
Pressable,
|
|
1017
961
|
{
|
|
1018
962
|
href: badgeHref,
|
|
1019
|
-
className:
|
|
1020
|
-
"mx-auto mb-4 flex w-fit items-center gap-2 rounded-full px-4 py-2 text-sm",
|
|
1021
|
-
getNestedCardBg(background),
|
|
1022
|
-
getNestedCardTextColor(background)
|
|
1023
|
-
),
|
|
963
|
+
className: "mx-auto mb-4 flex w-fit items-center gap-2 rounded-full px-4 py-2 text-sm bg-card",
|
|
1024
964
|
children: [
|
|
1025
965
|
badgeText,
|
|
1026
966
|
/* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/arrow-right", size: 16 })
|
|
@@ -1070,14 +1010,15 @@ function HeroGridPatternSolutions({
|
|
|
1070
1010
|
spacing,
|
|
1071
1011
|
pattern,
|
|
1072
1012
|
patternOpacity,
|
|
1073
|
-
className: cn(className),
|
|
1074
|
-
|
|
1013
|
+
className: cn("relative flex items-center justify-center", className),
|
|
1014
|
+
containerClassName,
|
|
1015
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative", children: [
|
|
1075
1016
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative overflow-hidden", children: [
|
|
1076
1017
|
showGridPattern && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute inset-0 -top-1 -left-1 -z-10 h-full w-full bg-[linear-gradient(to_right,hsl(var(--muted-foreground))_1px,transparent_1px),linear-gradient(to_bottom,hsl(var(--muted-foreground))_1px,transparent_1px)] mask-[radial-gradient(ellipse_50%_100%_at_50%_50%,transparent_60%,#000_100%)] bg-size-[92px_92px] opacity-15" }),
|
|
1077
1018
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("mx-auto max-w-4xl", contentClassName), children: [
|
|
1078
1019
|
renderBadge,
|
|
1079
1020
|
heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h1", { className: cn("my-4 mb-6 text-center text-3xl font-semibold lg:text-8xl", headingClassName), children: heading }) : /* @__PURE__ */ jsxRuntime.jsx("h1", { className: cn("my-4 mb-6 text-center text-3xl font-semibold lg:text-8xl", headingClassName), children: heading })),
|
|
1080
|
-
description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("mx-auto mb-8 max-w-2xl text-center lg:text-xl
|
|
1021
|
+
description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("mx-auto mb-8 max-w-2xl text-center lg:text-xl text-muted-foreground", descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description })),
|
|
1081
1022
|
renderActions
|
|
1082
1023
|
] })
|
|
1083
1024
|
] }),
|
|
@@ -11,62 +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
|
-
function getTextColor(parentBg, variant = "default", options) {
|
|
45
|
-
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
46
|
-
if (isDark) {
|
|
47
|
-
switch (variant) {
|
|
48
|
-
case "default":
|
|
49
|
-
return "text-foreground";
|
|
50
|
-
case "muted":
|
|
51
|
-
return "text-foreground/80";
|
|
52
|
-
case "subtle":
|
|
53
|
-
return "text-foreground/60";
|
|
54
|
-
case "accent":
|
|
55
|
-
return "text-accent-foreground";
|
|
56
|
-
}
|
|
57
|
-
} else {
|
|
58
|
-
switch (variant) {
|
|
59
|
-
case "default":
|
|
60
|
-
return "text-foreground";
|
|
61
|
-
case "muted":
|
|
62
|
-
return "text-muted-foreground";
|
|
63
|
-
case "subtle":
|
|
64
|
-
return "text-muted-foreground/70";
|
|
65
|
-
case "accent":
|
|
66
|
-
return "text-primary";
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
14
|
function normalizePhoneNumber(input) {
|
|
71
15
|
const trimmed = input.trim();
|
|
72
16
|
if (trimmed.toLowerCase().startsWith("tel:")) {
|
|
@@ -977,11 +921,11 @@ function HeroGridPatternSolutions({
|
|
|
977
921
|
imagesSlot,
|
|
978
922
|
showGridPattern = true,
|
|
979
923
|
background,
|
|
980
|
-
spacing,
|
|
924
|
+
spacing = "py-32 md:py-32",
|
|
981
925
|
pattern,
|
|
982
926
|
patternOpacity,
|
|
983
927
|
className,
|
|
984
|
-
containerClassName,
|
|
928
|
+
containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
|
|
985
929
|
contentClassName,
|
|
986
930
|
headingClassName,
|
|
987
931
|
descriptionClassName,
|
|
@@ -995,11 +939,7 @@ function HeroGridPatternSolutions({
|
|
|
995
939
|
Pressable,
|
|
996
940
|
{
|
|
997
941
|
href: badgeHref,
|
|
998
|
-
className:
|
|
999
|
-
"mx-auto mb-4 flex w-fit items-center gap-2 rounded-full px-4 py-2 text-sm",
|
|
1000
|
-
getNestedCardBg(background),
|
|
1001
|
-
getNestedCardTextColor(background)
|
|
1002
|
-
),
|
|
942
|
+
className: "mx-auto mb-4 flex w-fit items-center gap-2 rounded-full px-4 py-2 text-sm bg-card",
|
|
1003
943
|
children: [
|
|
1004
944
|
badgeText,
|
|
1005
945
|
/* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/arrow-right", size: 16 })
|
|
@@ -1049,14 +989,15 @@ function HeroGridPatternSolutions({
|
|
|
1049
989
|
spacing,
|
|
1050
990
|
pattern,
|
|
1051
991
|
patternOpacity,
|
|
1052
|
-
className: cn(className),
|
|
1053
|
-
|
|
992
|
+
className: cn("relative flex items-center justify-center", className),
|
|
993
|
+
containerClassName,
|
|
994
|
+
children: /* @__PURE__ */ jsxs("div", { className: "relative", children: [
|
|
1054
995
|
/* @__PURE__ */ jsxs("div", { className: "relative overflow-hidden", children: [
|
|
1055
996
|
showGridPattern && /* @__PURE__ */ jsx("div", { className: "absolute inset-0 -top-1 -left-1 -z-10 h-full w-full bg-[linear-gradient(to_right,hsl(var(--muted-foreground))_1px,transparent_1px),linear-gradient(to_bottom,hsl(var(--muted-foreground))_1px,transparent_1px)] mask-[radial-gradient(ellipse_50%_100%_at_50%_50%,transparent_60%,#000_100%)] bg-size-[92px_92px] opacity-15" }),
|
|
1056
997
|
/* @__PURE__ */ jsxs("div", { className: cn("mx-auto max-w-4xl", contentClassName), children: [
|
|
1057
998
|
renderBadge,
|
|
1058
999
|
heading && (typeof heading === "string" ? /* @__PURE__ */ jsx("h1", { className: cn("my-4 mb-6 text-center text-3xl font-semibold lg:text-8xl", headingClassName), children: heading }) : /* @__PURE__ */ jsx("h1", { className: cn("my-4 mb-6 text-center text-3xl font-semibold lg:text-8xl", headingClassName), children: heading })),
|
|
1059
|
-
description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("mx-auto mb-8 max-w-2xl text-center lg:text-xl
|
|
1000
|
+
description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("mx-auto mb-8 max-w-2xl text-center lg:text-xl text-muted-foreground", descriptionClassName), children: description }) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description })),
|
|
1060
1001
|
renderActions
|
|
1061
1002
|
] })
|
|
1062
1003
|
] }),
|
|
@@ -825,7 +825,7 @@ var Section = React__namespace.default.forwardRef(
|
|
|
825
825
|
);
|
|
826
826
|
Section.displayName = "Section";
|
|
827
827
|
function HeroHiringAnimatedText({
|
|
828
|
-
headingPrefix
|
|
828
|
+
headingPrefix,
|
|
829
829
|
animatedTexts,
|
|
830
830
|
headingSlot,
|
|
831
831
|
description,
|
|
@@ -835,11 +835,11 @@ function HeroHiringAnimatedText({
|
|
|
835
835
|
scrollActionSlot,
|
|
836
836
|
backgroundImage,
|
|
837
837
|
background,
|
|
838
|
-
spacing,
|
|
838
|
+
spacing = "py-32 md:py-32",
|
|
839
839
|
pattern,
|
|
840
840
|
patternOpacity,
|
|
841
841
|
className,
|
|
842
|
-
containerClassName,
|
|
842
|
+
containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
|
|
843
843
|
contentClassName,
|
|
844
844
|
headingClassName,
|
|
845
845
|
descriptionClassName,
|
|
@@ -900,12 +900,17 @@ function HeroHiringAnimatedText({
|
|
|
900
900
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
901
901
|
Section,
|
|
902
902
|
{
|
|
903
|
+
background,
|
|
904
|
+
spacing,
|
|
905
|
+
pattern,
|
|
906
|
+
patternOpacity,
|
|
903
907
|
className: cn(
|
|
904
|
-
"dark
|
|
908
|
+
"relative flex items-center justify-center dark 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-['']",
|
|
905
909
|
className
|
|
906
910
|
),
|
|
911
|
+
containerClassName,
|
|
907
912
|
style: { backgroundImage: `url('${backgroundImage}')` },
|
|
908
|
-
children: /* @__PURE__ */ jsxRuntime.jsx("div", { className:
|
|
913
|
+
children: /* @__PURE__ */ jsxRuntime.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__ */ jsxRuntime.jsxs("div", { className: cn("flex h-full flex-col justify-between gap-6 md:justify-end", contentClassName), children: [
|
|
909
914
|
renderHeading,
|
|
910
915
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-8", children: [
|
|
911
916
|
description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("text-lg lg:text-2xl", descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description })),
|
|
@@ -804,7 +804,7 @@ var Section = React__default.forwardRef(
|
|
|
804
804
|
);
|
|
805
805
|
Section.displayName = "Section";
|
|
806
806
|
function HeroHiringAnimatedText({
|
|
807
|
-
headingPrefix
|
|
807
|
+
headingPrefix,
|
|
808
808
|
animatedTexts,
|
|
809
809
|
headingSlot,
|
|
810
810
|
description,
|
|
@@ -814,11 +814,11 @@ function HeroHiringAnimatedText({
|
|
|
814
814
|
scrollActionSlot,
|
|
815
815
|
backgroundImage,
|
|
816
816
|
background,
|
|
817
|
-
spacing,
|
|
817
|
+
spacing = "py-32 md:py-32",
|
|
818
818
|
pattern,
|
|
819
819
|
patternOpacity,
|
|
820
820
|
className,
|
|
821
|
-
containerClassName,
|
|
821
|
+
containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
|
|
822
822
|
contentClassName,
|
|
823
823
|
headingClassName,
|
|
824
824
|
descriptionClassName,
|
|
@@ -879,12 +879,17 @@ function HeroHiringAnimatedText({
|
|
|
879
879
|
return /* @__PURE__ */ jsx(
|
|
880
880
|
Section,
|
|
881
881
|
{
|
|
882
|
+
background,
|
|
883
|
+
spacing,
|
|
884
|
+
pattern,
|
|
885
|
+
patternOpacity,
|
|
882
886
|
className: cn(
|
|
883
|
-
"dark
|
|
887
|
+
"relative flex items-center justify-center dark 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-['']",
|
|
884
888
|
className
|
|
885
889
|
),
|
|
890
|
+
containerClassName,
|
|
886
891
|
style: { backgroundImage: `url('${backgroundImage}')` },
|
|
887
|
-
children: /* @__PURE__ */ jsx("div", { className:
|
|
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("div", { className: cn("flex h-full flex-col justify-between gap-6 md:justify-end", contentClassName), children: [
|
|
888
893
|
renderHeading,
|
|
889
894
|
/* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-8", children: [
|
|
890
895
|
description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("text-lg lg:text-2xl", descriptionClassName), children: description }) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description })),
|
|
@@ -32,32 +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 getTextColor(parentBg, variant = "default", options) {
|
|
36
|
-
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
37
|
-
if (isDark) {
|
|
38
|
-
switch (variant) {
|
|
39
|
-
case "default":
|
|
40
|
-
return "text-foreground";
|
|
41
|
-
case "muted":
|
|
42
|
-
return "text-foreground/80";
|
|
43
|
-
case "subtle":
|
|
44
|
-
return "text-foreground/60";
|
|
45
|
-
case "accent":
|
|
46
|
-
return "text-accent-foreground";
|
|
47
|
-
}
|
|
48
|
-
} else {
|
|
49
|
-
switch (variant) {
|
|
50
|
-
case "default":
|
|
51
|
-
return "text-foreground";
|
|
52
|
-
case "muted":
|
|
53
|
-
return "text-muted-foreground";
|
|
54
|
-
case "subtle":
|
|
55
|
-
return "text-muted-foreground/70";
|
|
56
|
-
case "accent":
|
|
57
|
-
return "text-primary";
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
35
|
function normalizePhoneNumber(input) {
|
|
62
36
|
const trimmed = input.trim();
|
|
63
37
|
if (trimmed.toLowerCase().startsWith("tel:")) {
|
|
@@ -968,11 +942,11 @@ function HeroMarketplaceScatteredImages({
|
|
|
968
942
|
imagesSlot,
|
|
969
943
|
showGridPattern = true,
|
|
970
944
|
background,
|
|
971
|
-
spacing,
|
|
945
|
+
spacing = "py-32 md:py-32",
|
|
972
946
|
pattern,
|
|
973
947
|
patternOpacity,
|
|
974
948
|
className,
|
|
975
|
-
containerClassName,
|
|
949
|
+
containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
|
|
976
950
|
contentClassName,
|
|
977
951
|
headingClassName,
|
|
978
952
|
descriptionClassName,
|
|
@@ -1017,12 +991,13 @@ function HeroMarketplaceScatteredImages({
|
|
|
1017
991
|
spacing,
|
|
1018
992
|
pattern,
|
|
1019
993
|
patternOpacity,
|
|
1020
|
-
className: cn(className),
|
|
1021
|
-
|
|
1022
|
-
|
|
994
|
+
className: cn("relative flex items-center justify-center", className),
|
|
995
|
+
containerClassName,
|
|
996
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative", children: [
|
|
997
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("relative mx-auto max-w-xl py-10 text-center", contentClassName), children: [
|
|
1023
998
|
showGridPattern && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute inset-0 -z-10 h-full w-full bg-[linear-gradient(to_right,hsl(var(--muted))_1px,transparent_1px),linear-gradient(to_bottom,hsl(var(--muted))_1px,transparent_1px)] mask-[radial-gradient(ellipse_50%_100%_at_50%_50%,#000_60%,transparent_100%)] bg-size-[64px_64px]" }),
|
|
1024
999
|
heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h1", { className: cn("mb-3 text-4xl lg:text-7xl", headingClassName), children: heading }) : /* @__PURE__ */ jsxRuntime.jsx("h1", { className: cn("mb-3 text-4xl lg:text-7xl", headingClassName), children: heading })),
|
|
1025
|
-
description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("mb-5 text-sm md:text-base
|
|
1000
|
+
description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("mb-5 text-sm md:text-base text-muted-foreground", descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description })),
|
|
1026
1001
|
renderAction,
|
|
1027
1002
|
renderTagline
|
|
1028
1003
|
] }),
|