@opensite/ui 1.8.6 → 1.8.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/about-developer-profile.cjs +79 -117
- package/dist/about-developer-profile.d.cts +1 -1
- package/dist/about-developer-profile.d.ts +1 -1
- package/dist/about-developer-profile.js +79 -117
- package/dist/about-developer-story.cjs +1 -1
- package/dist/about-developer-story.js +1 -1
- package/dist/about-story-expertise.cjs +715 -702
- package/dist/about-story-expertise.js +712 -699
- package/dist/hero-architecture-fullscreen.cjs +1 -1
- package/dist/hero-architecture-fullscreen.js +1 -1
- package/dist/hero-community-survey-cta.cjs +131 -60
- package/dist/hero-community-survey-cta.js +131 -60
- package/dist/hero-software-growth-video-dialog.cjs +63 -57
- package/dist/hero-software-growth-video-dialog.js +63 -57
- package/dist/hero-stats-social-proof.cjs +773 -729
- package/dist/hero-stats-social-proof.d.cts +1 -1
- package/dist/hero-stats-social-proof.d.ts +1 -1
- package/dist/hero-stats-social-proof.js +772 -728
- package/dist/registry.cjs +19405 -19323
- package/dist/registry.js +18734 -18652
- package/package.json +6 -1
|
@@ -899,7 +899,7 @@ function HeroArchitectureFullscreen({
|
|
|
899
899
|
react.motion.h1,
|
|
900
900
|
{
|
|
901
901
|
className: cn(
|
|
902
|
-
"text-6xl font-bold md:text-7xl lg:text-8xl text-white text-balance text-shadow-xl tracking-tight leading-
|
|
902
|
+
"text-6xl font-bold md:text-7xl lg:text-8xl text-white text-balance text-shadow-xl tracking-tight leading-[1.1]",
|
|
903
903
|
headingClassName
|
|
904
904
|
),
|
|
905
905
|
initial: "hidden",
|
|
@@ -878,7 +878,7 @@ function HeroArchitectureFullscreen({
|
|
|
878
878
|
motion.h1,
|
|
879
879
|
{
|
|
880
880
|
className: cn(
|
|
881
|
-
"text-6xl font-bold md:text-7xl lg:text-8xl text-white text-balance text-shadow-xl tracking-tight leading-
|
|
881
|
+
"text-6xl font-bold md:text-7xl lg:text-8xl text-white text-balance text-shadow-xl tracking-tight leading-[1.1]",
|
|
882
882
|
headingClassName
|
|
883
883
|
),
|
|
884
884
|
initial: "hidden",
|
|
@@ -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:")) {
|
|
@@ -956,11 +930,79 @@ var Section = React__namespace.default.forwardRef(
|
|
|
956
930
|
}
|
|
957
931
|
);
|
|
958
932
|
Section.displayName = "Section";
|
|
933
|
+
var MOBILE_CLASSES = {
|
|
934
|
+
"fit-left": "items-start md:items-center",
|
|
935
|
+
"fit-center": "items-center",
|
|
936
|
+
"fit-right": "items-end md:items-center",
|
|
937
|
+
"full-left": "items-stretch md:items-center",
|
|
938
|
+
"full-center": "items-stretch md:items-center",
|
|
939
|
+
"full-right": "items-stretch md:items-center"
|
|
940
|
+
};
|
|
941
|
+
function BlockActions({
|
|
942
|
+
mobileConfig,
|
|
943
|
+
actionsClassName,
|
|
944
|
+
verticalSpacing = "mt-4 md:mt-8",
|
|
945
|
+
actions,
|
|
946
|
+
actionsSlot
|
|
947
|
+
}) {
|
|
948
|
+
const renderAction = React__namespace.useCallback(
|
|
949
|
+
(action, idx) => {
|
|
950
|
+
const {
|
|
951
|
+
label,
|
|
952
|
+
icon,
|
|
953
|
+
iconAfter,
|
|
954
|
+
children,
|
|
955
|
+
href,
|
|
956
|
+
onClick,
|
|
957
|
+
className: actionClassName,
|
|
958
|
+
...pressableProps
|
|
959
|
+
} = action;
|
|
960
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
961
|
+
Pressable,
|
|
962
|
+
{
|
|
963
|
+
href,
|
|
964
|
+
onClick,
|
|
965
|
+
asButton: action.asButton || true,
|
|
966
|
+
className: actionClassName,
|
|
967
|
+
...pressableProps,
|
|
968
|
+
children: children ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
969
|
+
icon,
|
|
970
|
+
label,
|
|
971
|
+
iconAfter
|
|
972
|
+
] })
|
|
973
|
+
},
|
|
974
|
+
idx
|
|
975
|
+
);
|
|
976
|
+
},
|
|
977
|
+
[]
|
|
978
|
+
);
|
|
979
|
+
const width = mobileConfig?.width ?? "fit";
|
|
980
|
+
const position = mobileConfig?.position ?? "left";
|
|
981
|
+
const mobileLayoutClass = MOBILE_CLASSES[`${width}-${position}`];
|
|
982
|
+
if (actionsSlot) {
|
|
983
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { children: actionsSlot });
|
|
984
|
+
} else if (actions && actions?.length > 0) {
|
|
985
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
986
|
+
"div",
|
|
987
|
+
{
|
|
988
|
+
className: cn(
|
|
989
|
+
"flex flex-col md:flex-row flex-wrap gap-4",
|
|
990
|
+
mobileLayoutClass,
|
|
991
|
+
actionsClassName,
|
|
992
|
+
verticalSpacing
|
|
993
|
+
),
|
|
994
|
+
children: actions.map((action, index) => renderAction(action, index))
|
|
995
|
+
}
|
|
996
|
+
);
|
|
997
|
+
} else {
|
|
998
|
+
return null;
|
|
999
|
+
}
|
|
1000
|
+
}
|
|
959
1001
|
function HeroCommunitySurveyCta({
|
|
960
|
-
announcementPrimary
|
|
961
|
-
announcementSecondary
|
|
962
|
-
announcementLinkText
|
|
963
|
-
announcementHref
|
|
1002
|
+
announcementPrimary,
|
|
1003
|
+
announcementSecondary,
|
|
1004
|
+
announcementLinkText,
|
|
1005
|
+
announcementHref,
|
|
964
1006
|
announcementSlot,
|
|
965
1007
|
heading,
|
|
966
1008
|
description,
|
|
@@ -989,37 +1031,33 @@ function HeroCommunitySurveyCta({
|
|
|
989
1031
|
Pressable,
|
|
990
1032
|
{
|
|
991
1033
|
href: announcementHref,
|
|
992
|
-
className: cn(
|
|
1034
|
+
className: cn(
|
|
1035
|
+
"group mx-auto mb-3 w-fit gap-3 rounded-full border px-5 py-2 text-sm",
|
|
1036
|
+
announcementClassName
|
|
1037
|
+
),
|
|
993
1038
|
children: [
|
|
994
1039
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "mr-1 font-medium", children: announcementPrimary }),
|
|
995
1040
|
announcementSecondary,
|
|
996
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1041
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1042
|
+
DynamicIcon,
|
|
1043
|
+
{
|
|
1044
|
+
name: "lucide/minus",
|
|
1045
|
+
size: 16,
|
|
1046
|
+
className: "mx-1 inline-block"
|
|
1047
|
+
}
|
|
1048
|
+
),
|
|
997
1049
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-semibold group-hover:underline", children: announcementLinkText })
|
|
998
1050
|
]
|
|
999
1051
|
}
|
|
1000
1052
|
);
|
|
1001
|
-
}, [
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
{
|
|
1010
|
-
asButton: true,
|
|
1011
|
-
className: actionClassName,
|
|
1012
|
-
...pressableProps,
|
|
1013
|
-
children: children ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
1014
|
-
icon,
|
|
1015
|
-
label,
|
|
1016
|
-
iconAfter
|
|
1017
|
-
] })
|
|
1018
|
-
},
|
|
1019
|
-
index
|
|
1020
|
-
);
|
|
1021
|
-
});
|
|
1022
|
-
}, [actionsSlot, actions]);
|
|
1053
|
+
}, [
|
|
1054
|
+
announcementSlot,
|
|
1055
|
+
announcementHref,
|
|
1056
|
+
announcementClassName,
|
|
1057
|
+
announcementPrimary,
|
|
1058
|
+
announcementSecondary,
|
|
1059
|
+
announcementLinkText
|
|
1060
|
+
]);
|
|
1023
1061
|
const renderImages = React.useMemo(() => {
|
|
1024
1062
|
if (imagesSlot) return imagesSlot;
|
|
1025
1063
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("relative mx-auto max-w-5xl", imagesClassName), children: [
|
|
@@ -1051,7 +1089,14 @@ function HeroCommunitySurveyCta({
|
|
|
1051
1089
|
}
|
|
1052
1090
|
)
|
|
1053
1091
|
] });
|
|
1054
|
-
}, [
|
|
1092
|
+
}, [
|
|
1093
|
+
imagesSlot,
|
|
1094
|
+
imagesClassName,
|
|
1095
|
+
mainImage,
|
|
1096
|
+
leftOverlayImage,
|
|
1097
|
+
rightOverlayImage,
|
|
1098
|
+
optixFlowConfig
|
|
1099
|
+
]);
|
|
1055
1100
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1056
1101
|
Section,
|
|
1057
1102
|
{
|
|
@@ -1059,13 +1104,39 @@ function HeroCommunitySurveyCta({
|
|
|
1059
1104
|
spacing,
|
|
1060
1105
|
pattern,
|
|
1061
1106
|
patternOpacity,
|
|
1062
|
-
className
|
|
1107
|
+
className,
|
|
1108
|
+
containerClassName,
|
|
1063
1109
|
children: [
|
|
1064
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className:
|
|
1110
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative", children: [
|
|
1065
1111
|
renderAnnouncement,
|
|
1066
|
-
heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
1067
|
-
|
|
1068
|
-
|
|
1112
|
+
heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
1113
|
+
"h1",
|
|
1114
|
+
{
|
|
1115
|
+
className: cn(
|
|
1116
|
+
"mx-auto max-w-4xl text-4xl font-semibold text-balance lg:text-6xl",
|
|
1117
|
+
headingClassName
|
|
1118
|
+
),
|
|
1119
|
+
children: heading
|
|
1120
|
+
}
|
|
1121
|
+
) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: headingClassName, children: heading })),
|
|
1122
|
+
description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
1123
|
+
"p",
|
|
1124
|
+
{
|
|
1125
|
+
className: cn(
|
|
1126
|
+
"mx-auto max-w-4xl lg:text-xl",
|
|
1127
|
+
descriptionClassName
|
|
1128
|
+
),
|
|
1129
|
+
children: description
|
|
1130
|
+
}
|
|
1131
|
+
) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description })),
|
|
1132
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1133
|
+
BlockActions,
|
|
1134
|
+
{
|
|
1135
|
+
actions,
|
|
1136
|
+
actionsClassName,
|
|
1137
|
+
actionsSlot
|
|
1138
|
+
}
|
|
1139
|
+
)
|
|
1069
1140
|
] }),
|
|
1070
1141
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative px-8", children: [
|
|
1071
1142
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute inset-0 top-1/2 h-full w-full bg-linear-to-b from-muted to-transparent to-50%" }),
|
|
@@ -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:")) {
|
|
@@ -935,11 +909,79 @@ var Section = React__default.forwardRef(
|
|
|
935
909
|
}
|
|
936
910
|
);
|
|
937
911
|
Section.displayName = "Section";
|
|
912
|
+
var MOBILE_CLASSES = {
|
|
913
|
+
"fit-left": "items-start md:items-center",
|
|
914
|
+
"fit-center": "items-center",
|
|
915
|
+
"fit-right": "items-end md:items-center",
|
|
916
|
+
"full-left": "items-stretch md:items-center",
|
|
917
|
+
"full-center": "items-stretch md:items-center",
|
|
918
|
+
"full-right": "items-stretch md:items-center"
|
|
919
|
+
};
|
|
920
|
+
function BlockActions({
|
|
921
|
+
mobileConfig,
|
|
922
|
+
actionsClassName,
|
|
923
|
+
verticalSpacing = "mt-4 md:mt-8",
|
|
924
|
+
actions,
|
|
925
|
+
actionsSlot
|
|
926
|
+
}) {
|
|
927
|
+
const renderAction = React.useCallback(
|
|
928
|
+
(action, idx) => {
|
|
929
|
+
const {
|
|
930
|
+
label,
|
|
931
|
+
icon,
|
|
932
|
+
iconAfter,
|
|
933
|
+
children,
|
|
934
|
+
href,
|
|
935
|
+
onClick,
|
|
936
|
+
className: actionClassName,
|
|
937
|
+
...pressableProps
|
|
938
|
+
} = action;
|
|
939
|
+
return /* @__PURE__ */ jsx(
|
|
940
|
+
Pressable,
|
|
941
|
+
{
|
|
942
|
+
href,
|
|
943
|
+
onClick,
|
|
944
|
+
asButton: action.asButton || true,
|
|
945
|
+
className: actionClassName,
|
|
946
|
+
...pressableProps,
|
|
947
|
+
children: children ?? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
948
|
+
icon,
|
|
949
|
+
label,
|
|
950
|
+
iconAfter
|
|
951
|
+
] })
|
|
952
|
+
},
|
|
953
|
+
idx
|
|
954
|
+
);
|
|
955
|
+
},
|
|
956
|
+
[]
|
|
957
|
+
);
|
|
958
|
+
const width = mobileConfig?.width ?? "fit";
|
|
959
|
+
const position = mobileConfig?.position ?? "left";
|
|
960
|
+
const mobileLayoutClass = MOBILE_CLASSES[`${width}-${position}`];
|
|
961
|
+
if (actionsSlot) {
|
|
962
|
+
return /* @__PURE__ */ jsx("div", { children: actionsSlot });
|
|
963
|
+
} else if (actions && actions?.length > 0) {
|
|
964
|
+
return /* @__PURE__ */ jsx(
|
|
965
|
+
"div",
|
|
966
|
+
{
|
|
967
|
+
className: cn(
|
|
968
|
+
"flex flex-col md:flex-row flex-wrap gap-4",
|
|
969
|
+
mobileLayoutClass,
|
|
970
|
+
actionsClassName,
|
|
971
|
+
verticalSpacing
|
|
972
|
+
),
|
|
973
|
+
children: actions.map((action, index) => renderAction(action, index))
|
|
974
|
+
}
|
|
975
|
+
);
|
|
976
|
+
} else {
|
|
977
|
+
return null;
|
|
978
|
+
}
|
|
979
|
+
}
|
|
938
980
|
function HeroCommunitySurveyCta({
|
|
939
|
-
announcementPrimary
|
|
940
|
-
announcementSecondary
|
|
941
|
-
announcementLinkText
|
|
942
|
-
announcementHref
|
|
981
|
+
announcementPrimary,
|
|
982
|
+
announcementSecondary,
|
|
983
|
+
announcementLinkText,
|
|
984
|
+
announcementHref,
|
|
943
985
|
announcementSlot,
|
|
944
986
|
heading,
|
|
945
987
|
description,
|
|
@@ -968,37 +1010,33 @@ function HeroCommunitySurveyCta({
|
|
|
968
1010
|
Pressable,
|
|
969
1011
|
{
|
|
970
1012
|
href: announcementHref,
|
|
971
|
-
className: cn(
|
|
1013
|
+
className: cn(
|
|
1014
|
+
"group mx-auto mb-3 w-fit gap-3 rounded-full border px-5 py-2 text-sm",
|
|
1015
|
+
announcementClassName
|
|
1016
|
+
),
|
|
972
1017
|
children: [
|
|
973
1018
|
/* @__PURE__ */ jsx("span", { className: "mr-1 font-medium", children: announcementPrimary }),
|
|
974
1019
|
announcementSecondary,
|
|
975
|
-
/* @__PURE__ */ jsx(
|
|
1020
|
+
/* @__PURE__ */ jsx(
|
|
1021
|
+
DynamicIcon,
|
|
1022
|
+
{
|
|
1023
|
+
name: "lucide/minus",
|
|
1024
|
+
size: 16,
|
|
1025
|
+
className: "mx-1 inline-block"
|
|
1026
|
+
}
|
|
1027
|
+
),
|
|
976
1028
|
/* @__PURE__ */ jsx("span", { className: "font-semibold group-hover:underline", children: announcementLinkText })
|
|
977
1029
|
]
|
|
978
1030
|
}
|
|
979
1031
|
);
|
|
980
|
-
}, [
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
{
|
|
989
|
-
asButton: true,
|
|
990
|
-
className: actionClassName,
|
|
991
|
-
...pressableProps,
|
|
992
|
-
children: children ?? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
993
|
-
icon,
|
|
994
|
-
label,
|
|
995
|
-
iconAfter
|
|
996
|
-
] })
|
|
997
|
-
},
|
|
998
|
-
index
|
|
999
|
-
);
|
|
1000
|
-
});
|
|
1001
|
-
}, [actionsSlot, actions]);
|
|
1032
|
+
}, [
|
|
1033
|
+
announcementSlot,
|
|
1034
|
+
announcementHref,
|
|
1035
|
+
announcementClassName,
|
|
1036
|
+
announcementPrimary,
|
|
1037
|
+
announcementSecondary,
|
|
1038
|
+
announcementLinkText
|
|
1039
|
+
]);
|
|
1002
1040
|
const renderImages = useMemo(() => {
|
|
1003
1041
|
if (imagesSlot) return imagesSlot;
|
|
1004
1042
|
return /* @__PURE__ */ jsxs("div", { className: cn("relative mx-auto max-w-5xl", imagesClassName), children: [
|
|
@@ -1030,7 +1068,14 @@ function HeroCommunitySurveyCta({
|
|
|
1030
1068
|
}
|
|
1031
1069
|
)
|
|
1032
1070
|
] });
|
|
1033
|
-
}, [
|
|
1071
|
+
}, [
|
|
1072
|
+
imagesSlot,
|
|
1073
|
+
imagesClassName,
|
|
1074
|
+
mainImage,
|
|
1075
|
+
leftOverlayImage,
|
|
1076
|
+
rightOverlayImage,
|
|
1077
|
+
optixFlowConfig
|
|
1078
|
+
]);
|
|
1034
1079
|
return /* @__PURE__ */ jsxs(
|
|
1035
1080
|
Section,
|
|
1036
1081
|
{
|
|
@@ -1038,13 +1083,39 @@ function HeroCommunitySurveyCta({
|
|
|
1038
1083
|
spacing,
|
|
1039
1084
|
pattern,
|
|
1040
1085
|
patternOpacity,
|
|
1041
|
-
className
|
|
1086
|
+
className,
|
|
1087
|
+
containerClassName,
|
|
1042
1088
|
children: [
|
|
1043
|
-
/* @__PURE__ */ jsxs("div", { className:
|
|
1089
|
+
/* @__PURE__ */ jsxs("div", { className: "relative", children: [
|
|
1044
1090
|
renderAnnouncement,
|
|
1045
|
-
heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
|
|
1046
|
-
|
|
1047
|
-
|
|
1091
|
+
heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
|
|
1092
|
+
"h1",
|
|
1093
|
+
{
|
|
1094
|
+
className: cn(
|
|
1095
|
+
"mx-auto max-w-4xl text-4xl font-semibold text-balance lg:text-6xl",
|
|
1096
|
+
headingClassName
|
|
1097
|
+
),
|
|
1098
|
+
children: heading
|
|
1099
|
+
}
|
|
1100
|
+
) : /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading })),
|
|
1101
|
+
description && (typeof description === "string" ? /* @__PURE__ */ jsx(
|
|
1102
|
+
"p",
|
|
1103
|
+
{
|
|
1104
|
+
className: cn(
|
|
1105
|
+
"mx-auto max-w-4xl lg:text-xl",
|
|
1106
|
+
descriptionClassName
|
|
1107
|
+
),
|
|
1108
|
+
children: description
|
|
1109
|
+
}
|
|
1110
|
+
) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description })),
|
|
1111
|
+
/* @__PURE__ */ jsx(
|
|
1112
|
+
BlockActions,
|
|
1113
|
+
{
|
|
1114
|
+
actions,
|
|
1115
|
+
actionsClassName,
|
|
1116
|
+
actionsSlot
|
|
1117
|
+
}
|
|
1118
|
+
)
|
|
1048
1119
|
] }),
|
|
1049
1120
|
/* @__PURE__ */ jsxs("div", { className: "relative px-8", children: [
|
|
1050
1121
|
/* @__PURE__ */ jsx("div", { className: "absolute inset-0 top-1/2 h-full w-full bg-linear-to-b from-muted to-transparent to-50%" }),
|
|
@@ -36,54 +36,6 @@ var DialogPrimitive__namespace = /*#__PURE__*/_interopNamespace(DialogPrimitive)
|
|
|
36
36
|
function cn(...inputs) {
|
|
37
37
|
return tailwindMerge.twMerge(clsx.clsx(inputs));
|
|
38
38
|
}
|
|
39
|
-
function getTextColor(parentBg, variant = "default", options) {
|
|
40
|
-
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
41
|
-
if (isDark) {
|
|
42
|
-
switch (variant) {
|
|
43
|
-
case "default":
|
|
44
|
-
return "text-foreground";
|
|
45
|
-
case "muted":
|
|
46
|
-
return "text-foreground/80";
|
|
47
|
-
case "subtle":
|
|
48
|
-
return "text-foreground/60";
|
|
49
|
-
case "accent":
|
|
50
|
-
return "text-accent-foreground";
|
|
51
|
-
}
|
|
52
|
-
} else {
|
|
53
|
-
switch (variant) {
|
|
54
|
-
case "default":
|
|
55
|
-
return "text-foreground";
|
|
56
|
-
case "muted":
|
|
57
|
-
return "text-muted-foreground";
|
|
58
|
-
case "subtle":
|
|
59
|
-
return "text-muted-foreground/70";
|
|
60
|
-
case "accent":
|
|
61
|
-
return "text-primary";
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
function getBorderColor(parentBg, variant = "default", options) {
|
|
66
|
-
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
67
|
-
if (isDark) {
|
|
68
|
-
switch (variant) {
|
|
69
|
-
case "default":
|
|
70
|
-
return "border-foreground/20";
|
|
71
|
-
case "muted":
|
|
72
|
-
return "border-foreground/10";
|
|
73
|
-
case "accent":
|
|
74
|
-
return "border-accent-foreground";
|
|
75
|
-
}
|
|
76
|
-
} else {
|
|
77
|
-
switch (variant) {
|
|
78
|
-
case "default":
|
|
79
|
-
return "border-border";
|
|
80
|
-
case "muted":
|
|
81
|
-
return "border-muted";
|
|
82
|
-
case "accent":
|
|
83
|
-
return "border-primary";
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
39
|
function normalizePhoneNumber(input) {
|
|
88
40
|
const trimmed = input.trim();
|
|
89
41
|
if (trimmed.toLowerCase().startsWith("tel:")) {
|
|
@@ -1119,7 +1071,15 @@ function HeroSoftwareGrowthVideoDialog({
|
|
|
1119
1071
|
if (actionsSlot) return actionsSlot;
|
|
1120
1072
|
const actionsToRender = actions || defaultActions;
|
|
1121
1073
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-col items-center justify-center gap-3 md:flex-row", children: actionsToRender.map((action, index) => {
|
|
1122
|
-
const {
|
|
1074
|
+
const {
|
|
1075
|
+
label,
|
|
1076
|
+
icon,
|
|
1077
|
+
iconAfter,
|
|
1078
|
+
children,
|
|
1079
|
+
className: actionClassName,
|
|
1080
|
+
onClick,
|
|
1081
|
+
...pressableProps
|
|
1082
|
+
} = action;
|
|
1123
1083
|
const isVideoButton = index === 0 && !actions;
|
|
1124
1084
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1125
1085
|
Pressable,
|
|
@@ -1149,17 +1109,36 @@ function HeroSoftwareGrowthVideoDialog({
|
|
|
1149
1109
|
if (showcaseImagesSlot) return showcaseImagesSlot;
|
|
1150
1110
|
if (!showcaseImages || showcaseImages.length < 4) return null;
|
|
1151
1111
|
const imageConfigs = [
|
|
1152
|
-
{
|
|
1153
|
-
|
|
1154
|
-
|
|
1155
|
-
|
|
1112
|
+
{
|
|
1113
|
+
index: 0,
|
|
1114
|
+
className: "absolute -top-[28%] left-[18%] w-[28.47%] max-w-102.5",
|
|
1115
|
+
ratio: 1.11372549 / 1
|
|
1116
|
+
},
|
|
1117
|
+
{
|
|
1118
|
+
index: 1,
|
|
1119
|
+
className: "absolute -top-[28%] left-[51%] w-[18.75%] max-w-67.5",
|
|
1120
|
+
ratio: 0.845559846 / 1
|
|
1121
|
+
},
|
|
1122
|
+
{
|
|
1123
|
+
index: 2,
|
|
1124
|
+
className: "absolute -bottom-[14%] left-[51%] w-[38.19%] max-w-137.5",
|
|
1125
|
+
ratio: 1.686153846 / 1
|
|
1126
|
+
},
|
|
1127
|
+
{
|
|
1128
|
+
index: 3,
|
|
1129
|
+
className: "absolute -bottom-[30%] left-[10.7%] w-[38.19%] max-w-137.5",
|
|
1130
|
+
ratio: 1.415041783 / 1
|
|
1131
|
+
}
|
|
1156
1132
|
];
|
|
1157
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("w-full py-[16%]", showcaseClassName), children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("relative aspect-[2.716981132/1] w-full border"
|
|
1133
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("w-full py-[16%]", showcaseClassName), children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("relative aspect-[2.716981132/1] w-full border"), children: imageConfigs.map(({ index, className: posClassName, ratio }) => /* @__PURE__ */ jsxRuntime.jsx("div", { className: posClassName, children: /* @__PURE__ */ jsxRuntime.jsx(AspectRatio, { ratio, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1158
1134
|
img.Img,
|
|
1159
1135
|
{
|
|
1160
1136
|
src: showcaseImages[index].src,
|
|
1161
1137
|
alt: showcaseImages[index].alt,
|
|
1162
|
-
className: cn(
|
|
1138
|
+
className: cn(
|
|
1139
|
+
"size-full object-cover object-center",
|
|
1140
|
+
showcaseImages[index].className
|
|
1141
|
+
),
|
|
1163
1142
|
optixFlowConfig
|
|
1164
1143
|
}
|
|
1165
1144
|
) }) }, index)) }) });
|
|
@@ -1171,8 +1150,35 @@ function HeroSoftwareGrowthVideoDialog({
|
|
|
1171
1150
|
className: cn("font-dm_sans bg-background py-12 md:py-24", className),
|
|
1172
1151
|
children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("container max-w-[1440px]", containerClassName), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col", children: [
|
|
1173
1152
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col items-center justify-center gap-8", children: [
|
|
1174
|
-
heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
1175
|
-
|
|
1153
|
+
heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
1154
|
+
"h1",
|
|
1155
|
+
{
|
|
1156
|
+
className: cn(
|
|
1157
|
+
"max-w-[1000px] text-center text-[3.125rem] leading-none md:text-[4.25rem] lg:text-[5.5rem]",
|
|
1158
|
+
headingClassName
|
|
1159
|
+
),
|
|
1160
|
+
children: heading
|
|
1161
|
+
}
|
|
1162
|
+
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
1163
|
+
"h1",
|
|
1164
|
+
{
|
|
1165
|
+
className: cn(
|
|
1166
|
+
"max-w-[1000px] text-center text-[3.125rem] leading-none md:text-[4.25rem] lg:text-[5.5rem]",
|
|
1167
|
+
headingClassName
|
|
1168
|
+
),
|
|
1169
|
+
children: heading
|
|
1170
|
+
}
|
|
1171
|
+
)),
|
|
1172
|
+
description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
1173
|
+
"p",
|
|
1174
|
+
{
|
|
1175
|
+
className: cn(
|
|
1176
|
+
"max-w-212.5 text-center text-lg leading-snug md:text-xl",
|
|
1177
|
+
descriptionClassName
|
|
1178
|
+
),
|
|
1179
|
+
children: description
|
|
1180
|
+
}
|
|
1181
|
+
) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description })),
|
|
1176
1182
|
renderActions
|
|
1177
1183
|
] }),
|
|
1178
1184
|
renderShowcaseImages
|