@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
|
@@ -32,66 +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
|
-
function getAccentColor(parentBg, options) {
|
|
92
|
-
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
93
|
-
return isDark ? "text-accent-foreground" : "text-primary";
|
|
94
|
-
}
|
|
95
35
|
function normalizePhoneNumber(input) {
|
|
96
36
|
const trimmed = input.trim();
|
|
97
37
|
if (trimmed.toLowerCase().startsWith("tel:")) {
|
|
@@ -885,6 +825,74 @@ var Section = React__namespace.default.forwardRef(
|
|
|
885
825
|
}
|
|
886
826
|
);
|
|
887
827
|
Section.displayName = "Section";
|
|
828
|
+
var MOBILE_CLASSES = {
|
|
829
|
+
"fit-left": "items-start md:items-center",
|
|
830
|
+
"fit-center": "items-center",
|
|
831
|
+
"fit-right": "items-end md:items-center",
|
|
832
|
+
"full-left": "items-stretch md:items-center",
|
|
833
|
+
"full-center": "items-stretch md:items-center",
|
|
834
|
+
"full-right": "items-stretch md:items-center"
|
|
835
|
+
};
|
|
836
|
+
function BlockActions({
|
|
837
|
+
mobileConfig,
|
|
838
|
+
actionsClassName,
|
|
839
|
+
verticalSpacing = "mt-4 md:mt-8",
|
|
840
|
+
actions,
|
|
841
|
+
actionsSlot
|
|
842
|
+
}) {
|
|
843
|
+
const renderAction = React__namespace.useCallback(
|
|
844
|
+
(action, idx) => {
|
|
845
|
+
const {
|
|
846
|
+
label,
|
|
847
|
+
icon,
|
|
848
|
+
iconAfter,
|
|
849
|
+
children,
|
|
850
|
+
href,
|
|
851
|
+
onClick,
|
|
852
|
+
className: actionClassName,
|
|
853
|
+
...pressableProps
|
|
854
|
+
} = action;
|
|
855
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
856
|
+
Pressable,
|
|
857
|
+
{
|
|
858
|
+
href,
|
|
859
|
+
onClick,
|
|
860
|
+
asButton: action.asButton || true,
|
|
861
|
+
className: actionClassName,
|
|
862
|
+
...pressableProps,
|
|
863
|
+
children: children ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
864
|
+
icon,
|
|
865
|
+
label,
|
|
866
|
+
iconAfter
|
|
867
|
+
] })
|
|
868
|
+
},
|
|
869
|
+
idx
|
|
870
|
+
);
|
|
871
|
+
},
|
|
872
|
+
[]
|
|
873
|
+
);
|
|
874
|
+
const width = mobileConfig?.width ?? "fit";
|
|
875
|
+
const position = mobileConfig?.position ?? "left";
|
|
876
|
+
const mobileLayoutClass = MOBILE_CLASSES[`${width}-${position}`];
|
|
877
|
+
if (actionsSlot) {
|
|
878
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { children: actionsSlot });
|
|
879
|
+
} else if (actions && actions?.length > 0) {
|
|
880
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
881
|
+
"div",
|
|
882
|
+
{
|
|
883
|
+
className: cn(
|
|
884
|
+
"flex flex-col md:flex-row flex-wrap gap-4",
|
|
885
|
+
mobileLayoutClass,
|
|
886
|
+
actionsClassName,
|
|
887
|
+
verticalSpacing
|
|
888
|
+
),
|
|
889
|
+
children: actions.map((action, index) => renderAction(action, index))
|
|
890
|
+
}
|
|
891
|
+
);
|
|
892
|
+
} else {
|
|
893
|
+
return null;
|
|
894
|
+
}
|
|
895
|
+
}
|
|
888
896
|
function AboutDeveloperProfile({
|
|
889
897
|
name,
|
|
890
898
|
role,
|
|
@@ -898,7 +906,6 @@ function AboutDeveloperProfile({
|
|
|
898
906
|
actions,
|
|
899
907
|
actionsSlot,
|
|
900
908
|
className,
|
|
901
|
-
containerClassName,
|
|
902
909
|
contentClassName,
|
|
903
910
|
nameClassName,
|
|
904
911
|
roleClassName,
|
|
@@ -910,7 +917,8 @@ function AboutDeveloperProfile({
|
|
|
910
917
|
actionsClassName,
|
|
911
918
|
optixFlowConfig,
|
|
912
919
|
background,
|
|
913
|
-
spacing,
|
|
920
|
+
spacing = "pt-28 pb-8 md:pt-32 md:pb-32",
|
|
921
|
+
containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
|
|
914
922
|
pattern,
|
|
915
923
|
patternOpacity
|
|
916
924
|
}) {
|
|
@@ -922,11 +930,7 @@ function AboutDeveloperProfile({
|
|
|
922
930
|
{
|
|
923
931
|
href: link.href,
|
|
924
932
|
"aria-label": link["aria-label"],
|
|
925
|
-
className: cn(
|
|
926
|
-
getTextColor(background, "muted"),
|
|
927
|
-
`hover:${getAccentColor(background)}`,
|
|
928
|
-
link.className
|
|
929
|
-
),
|
|
933
|
+
className: cn(link.className),
|
|
930
934
|
children: link.icon
|
|
931
935
|
},
|
|
932
936
|
idx
|
|
@@ -940,8 +944,6 @@ function AboutDeveloperProfile({
|
|
|
940
944
|
{
|
|
941
945
|
className: cn(
|
|
942
946
|
"rounded-full px-4 py-2 text-sm font-medium",
|
|
943
|
-
getNestedCardBg(background),
|
|
944
|
-
getNestedCardTextColor(background),
|
|
945
947
|
skillTagClassName
|
|
946
948
|
),
|
|
947
949
|
children: skill
|
|
@@ -949,34 +951,6 @@ function AboutDeveloperProfile({
|
|
|
949
951
|
idx
|
|
950
952
|
));
|
|
951
953
|
}, [skillsSlot, skills, skillTagClassName, background]);
|
|
952
|
-
const actionsContent = React.useMemo(() => {
|
|
953
|
-
if (actionsSlot) return actionsSlot;
|
|
954
|
-
if (!actions || actions.length === 0) return null;
|
|
955
|
-
return actions.map((action, index) => {
|
|
956
|
-
const {
|
|
957
|
-
label,
|
|
958
|
-
icon,
|
|
959
|
-
iconAfter,
|
|
960
|
-
children,
|
|
961
|
-
className: actionClassName,
|
|
962
|
-
...pressableProps
|
|
963
|
-
} = action;
|
|
964
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
965
|
-
Pressable,
|
|
966
|
-
{
|
|
967
|
-
asButton: true,
|
|
968
|
-
className: actionClassName,
|
|
969
|
-
...pressableProps,
|
|
970
|
-
children: children ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
971
|
-
icon,
|
|
972
|
-
label,
|
|
973
|
-
iconAfter
|
|
974
|
-
] })
|
|
975
|
-
},
|
|
976
|
-
index
|
|
977
|
-
);
|
|
978
|
-
});
|
|
979
|
-
}, [actionsSlot, actions]);
|
|
980
954
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
981
955
|
Section,
|
|
982
956
|
{
|
|
@@ -984,7 +958,7 @@ function AboutDeveloperProfile({
|
|
|
984
958
|
spacing,
|
|
985
959
|
pattern,
|
|
986
960
|
patternOpacity,
|
|
987
|
-
className
|
|
961
|
+
className,
|
|
988
962
|
containerClassName,
|
|
989
963
|
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("mx-auto max-w-4xl", contentClassName), children: [
|
|
990
964
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col items-center gap-8 md:flex-row md:items-start", children: [
|
|
@@ -1002,7 +976,7 @@ function AboutDeveloperProfile({
|
|
|
1002
976
|
),
|
|
1003
977
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-center md:text-left", children: [
|
|
1004
978
|
name && (typeof name === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h1", { className: cn("text-4xl font-bold", nameClassName), children: name }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: nameClassName, children: name })),
|
|
1005
|
-
role && (typeof role === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("mt-2 text-xl",
|
|
979
|
+
role && (typeof role === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("mt-2 text-xl", roleClassName), children: role }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mt-2", roleClassName), children: role })),
|
|
1006
980
|
(socialLinksSlot || socialLinks && socialLinks.length > 0) && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1007
981
|
"div",
|
|
1008
982
|
{
|
|
@@ -1015,29 +989,17 @@ function AboutDeveloperProfile({
|
|
|
1015
989
|
)
|
|
1016
990
|
] })
|
|
1017
991
|
] }),
|
|
1018
|
-
bio && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-12", children: typeof bio === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
1019
|
-
"p",
|
|
1020
|
-
{
|
|
1021
|
-
className: cn(
|
|
1022
|
-
"text-lg whitespace-pre-line",
|
|
1023
|
-
getTextColor(background, "muted"),
|
|
1024
|
-
bioClassName
|
|
1025
|
-
),
|
|
1026
|
-
children: bio
|
|
1027
|
-
}
|
|
1028
|
-
) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: bioClassName, children: bio }) }),
|
|
992
|
+
bio && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-12", children: typeof bio === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("text-lg whitespace-pre-line", bioClassName), children: bio }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: bioClassName, children: bio }) }),
|
|
1029
993
|
(skillsSlot || skills && skills.length > 0) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("mt-12", skillsClassName), children: [
|
|
1030
994
|
skillsTitle && (typeof skillsTitle === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-xl font-semibold", children: skillsTitle }) : skillsTitle),
|
|
1031
995
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-4 flex flex-wrap gap-2", children: skillsContent })
|
|
1032
996
|
] }),
|
|
1033
|
-
|
|
1034
|
-
|
|
997
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
998
|
+
BlockActions,
|
|
1035
999
|
{
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
),
|
|
1040
|
-
children: actionsContent
|
|
1000
|
+
actions,
|
|
1001
|
+
actionsSlot,
|
|
1002
|
+
actionsClassName
|
|
1041
1003
|
}
|
|
1042
1004
|
)
|
|
1043
1005
|
] })
|
|
@@ -119,6 +119,6 @@ interface AboutDeveloperProfileProps {
|
|
|
119
119
|
*/
|
|
120
120
|
patternOpacity?: number;
|
|
121
121
|
}
|
|
122
|
-
declare function AboutDeveloperProfile({ name, role, bio, avatar, skills, skillsSlot, skillsTitle, socialLinks, socialLinksSlot, actions, actionsSlot, className,
|
|
122
|
+
declare function AboutDeveloperProfile({ name, role, bio, avatar, skills, skillsSlot, skillsTitle, socialLinks, socialLinksSlot, actions, actionsSlot, className, contentClassName, nameClassName, roleClassName, bioClassName, avatarClassName, skillsClassName, skillTagClassName, socialLinksClassName, actionsClassName, optixFlowConfig, background, spacing, containerClassName, pattern, patternOpacity, }: AboutDeveloperProfileProps): React.JSX.Element;
|
|
123
123
|
|
|
124
124
|
export { AboutDeveloperProfile, type AboutDeveloperProfileProps };
|
|
@@ -119,6 +119,6 @@ interface AboutDeveloperProfileProps {
|
|
|
119
119
|
*/
|
|
120
120
|
patternOpacity?: number;
|
|
121
121
|
}
|
|
122
|
-
declare function AboutDeveloperProfile({ name, role, bio, avatar, skills, skillsSlot, skillsTitle, socialLinks, socialLinksSlot, actions, actionsSlot, className,
|
|
122
|
+
declare function AboutDeveloperProfile({ name, role, bio, avatar, skills, skillsSlot, skillsTitle, socialLinks, socialLinksSlot, actions, actionsSlot, className, contentClassName, nameClassName, roleClassName, bioClassName, avatarClassName, skillsClassName, skillTagClassName, socialLinksClassName, actionsClassName, optixFlowConfig, background, spacing, containerClassName, pattern, patternOpacity, }: AboutDeveloperProfileProps): React.JSX.Element;
|
|
123
123
|
|
|
124
124
|
export { AboutDeveloperProfile, type AboutDeveloperProfileProps };
|
|
@@ -11,66 +11,6 @@ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
|
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
|
-
function getAccentColor(parentBg, options) {
|
|
71
|
-
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
72
|
-
return isDark ? "text-accent-foreground" : "text-primary";
|
|
73
|
-
}
|
|
74
14
|
function normalizePhoneNumber(input) {
|
|
75
15
|
const trimmed = input.trim();
|
|
76
16
|
if (trimmed.toLowerCase().startsWith("tel:")) {
|
|
@@ -864,6 +804,74 @@ var Section = React__default.forwardRef(
|
|
|
864
804
|
}
|
|
865
805
|
);
|
|
866
806
|
Section.displayName = "Section";
|
|
807
|
+
var MOBILE_CLASSES = {
|
|
808
|
+
"fit-left": "items-start md:items-center",
|
|
809
|
+
"fit-center": "items-center",
|
|
810
|
+
"fit-right": "items-end md:items-center",
|
|
811
|
+
"full-left": "items-stretch md:items-center",
|
|
812
|
+
"full-center": "items-stretch md:items-center",
|
|
813
|
+
"full-right": "items-stretch md:items-center"
|
|
814
|
+
};
|
|
815
|
+
function BlockActions({
|
|
816
|
+
mobileConfig,
|
|
817
|
+
actionsClassName,
|
|
818
|
+
verticalSpacing = "mt-4 md:mt-8",
|
|
819
|
+
actions,
|
|
820
|
+
actionsSlot
|
|
821
|
+
}) {
|
|
822
|
+
const renderAction = React.useCallback(
|
|
823
|
+
(action, idx) => {
|
|
824
|
+
const {
|
|
825
|
+
label,
|
|
826
|
+
icon,
|
|
827
|
+
iconAfter,
|
|
828
|
+
children,
|
|
829
|
+
href,
|
|
830
|
+
onClick,
|
|
831
|
+
className: actionClassName,
|
|
832
|
+
...pressableProps
|
|
833
|
+
} = action;
|
|
834
|
+
return /* @__PURE__ */ jsx(
|
|
835
|
+
Pressable,
|
|
836
|
+
{
|
|
837
|
+
href,
|
|
838
|
+
onClick,
|
|
839
|
+
asButton: action.asButton || true,
|
|
840
|
+
className: actionClassName,
|
|
841
|
+
...pressableProps,
|
|
842
|
+
children: children ?? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
843
|
+
icon,
|
|
844
|
+
label,
|
|
845
|
+
iconAfter
|
|
846
|
+
] })
|
|
847
|
+
},
|
|
848
|
+
idx
|
|
849
|
+
);
|
|
850
|
+
},
|
|
851
|
+
[]
|
|
852
|
+
);
|
|
853
|
+
const width = mobileConfig?.width ?? "fit";
|
|
854
|
+
const position = mobileConfig?.position ?? "left";
|
|
855
|
+
const mobileLayoutClass = MOBILE_CLASSES[`${width}-${position}`];
|
|
856
|
+
if (actionsSlot) {
|
|
857
|
+
return /* @__PURE__ */ jsx("div", { children: actionsSlot });
|
|
858
|
+
} else if (actions && actions?.length > 0) {
|
|
859
|
+
return /* @__PURE__ */ jsx(
|
|
860
|
+
"div",
|
|
861
|
+
{
|
|
862
|
+
className: cn(
|
|
863
|
+
"flex flex-col md:flex-row flex-wrap gap-4",
|
|
864
|
+
mobileLayoutClass,
|
|
865
|
+
actionsClassName,
|
|
866
|
+
verticalSpacing
|
|
867
|
+
),
|
|
868
|
+
children: actions.map((action, index) => renderAction(action, index))
|
|
869
|
+
}
|
|
870
|
+
);
|
|
871
|
+
} else {
|
|
872
|
+
return null;
|
|
873
|
+
}
|
|
874
|
+
}
|
|
867
875
|
function AboutDeveloperProfile({
|
|
868
876
|
name,
|
|
869
877
|
role,
|
|
@@ -877,7 +885,6 @@ function AboutDeveloperProfile({
|
|
|
877
885
|
actions,
|
|
878
886
|
actionsSlot,
|
|
879
887
|
className,
|
|
880
|
-
containerClassName,
|
|
881
888
|
contentClassName,
|
|
882
889
|
nameClassName,
|
|
883
890
|
roleClassName,
|
|
@@ -889,7 +896,8 @@ function AboutDeveloperProfile({
|
|
|
889
896
|
actionsClassName,
|
|
890
897
|
optixFlowConfig,
|
|
891
898
|
background,
|
|
892
|
-
spacing,
|
|
899
|
+
spacing = "pt-28 pb-8 md:pt-32 md:pb-32",
|
|
900
|
+
containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
|
|
893
901
|
pattern,
|
|
894
902
|
patternOpacity
|
|
895
903
|
}) {
|
|
@@ -901,11 +909,7 @@ function AboutDeveloperProfile({
|
|
|
901
909
|
{
|
|
902
910
|
href: link.href,
|
|
903
911
|
"aria-label": link["aria-label"],
|
|
904
|
-
className: cn(
|
|
905
|
-
getTextColor(background, "muted"),
|
|
906
|
-
`hover:${getAccentColor(background)}`,
|
|
907
|
-
link.className
|
|
908
|
-
),
|
|
912
|
+
className: cn(link.className),
|
|
909
913
|
children: link.icon
|
|
910
914
|
},
|
|
911
915
|
idx
|
|
@@ -919,8 +923,6 @@ function AboutDeveloperProfile({
|
|
|
919
923
|
{
|
|
920
924
|
className: cn(
|
|
921
925
|
"rounded-full px-4 py-2 text-sm font-medium",
|
|
922
|
-
getNestedCardBg(background),
|
|
923
|
-
getNestedCardTextColor(background),
|
|
924
926
|
skillTagClassName
|
|
925
927
|
),
|
|
926
928
|
children: skill
|
|
@@ -928,34 +930,6 @@ function AboutDeveloperProfile({
|
|
|
928
930
|
idx
|
|
929
931
|
));
|
|
930
932
|
}, [skillsSlot, skills, skillTagClassName, background]);
|
|
931
|
-
const actionsContent = useMemo(() => {
|
|
932
|
-
if (actionsSlot) return actionsSlot;
|
|
933
|
-
if (!actions || actions.length === 0) return null;
|
|
934
|
-
return actions.map((action, index) => {
|
|
935
|
-
const {
|
|
936
|
-
label,
|
|
937
|
-
icon,
|
|
938
|
-
iconAfter,
|
|
939
|
-
children,
|
|
940
|
-
className: actionClassName,
|
|
941
|
-
...pressableProps
|
|
942
|
-
} = action;
|
|
943
|
-
return /* @__PURE__ */ jsx(
|
|
944
|
-
Pressable,
|
|
945
|
-
{
|
|
946
|
-
asButton: true,
|
|
947
|
-
className: actionClassName,
|
|
948
|
-
...pressableProps,
|
|
949
|
-
children: children ?? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
950
|
-
icon,
|
|
951
|
-
label,
|
|
952
|
-
iconAfter
|
|
953
|
-
] })
|
|
954
|
-
},
|
|
955
|
-
index
|
|
956
|
-
);
|
|
957
|
-
});
|
|
958
|
-
}, [actionsSlot, actions]);
|
|
959
933
|
return /* @__PURE__ */ jsx(
|
|
960
934
|
Section,
|
|
961
935
|
{
|
|
@@ -963,7 +937,7 @@ function AboutDeveloperProfile({
|
|
|
963
937
|
spacing,
|
|
964
938
|
pattern,
|
|
965
939
|
patternOpacity,
|
|
966
|
-
className
|
|
940
|
+
className,
|
|
967
941
|
containerClassName,
|
|
968
942
|
children: /* @__PURE__ */ jsxs("div", { className: cn("mx-auto max-w-4xl", contentClassName), children: [
|
|
969
943
|
/* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center gap-8 md:flex-row md:items-start", children: [
|
|
@@ -981,7 +955,7 @@ function AboutDeveloperProfile({
|
|
|
981
955
|
),
|
|
982
956
|
/* @__PURE__ */ jsxs("div", { className: "text-center md:text-left", children: [
|
|
983
957
|
name && (typeof name === "string" ? /* @__PURE__ */ jsx("h1", { className: cn("text-4xl font-bold", nameClassName), children: name }) : /* @__PURE__ */ jsx("div", { className: nameClassName, children: name })),
|
|
984
|
-
role && (typeof role === "string" ? /* @__PURE__ */ jsx("p", { className: cn("mt-2 text-xl",
|
|
958
|
+
role && (typeof role === "string" ? /* @__PURE__ */ jsx("p", { className: cn("mt-2 text-xl", roleClassName), children: role }) : /* @__PURE__ */ jsx("div", { className: cn("mt-2", roleClassName), children: role })),
|
|
985
959
|
(socialLinksSlot || socialLinks && socialLinks.length > 0) && /* @__PURE__ */ jsx(
|
|
986
960
|
"div",
|
|
987
961
|
{
|
|
@@ -994,29 +968,17 @@ function AboutDeveloperProfile({
|
|
|
994
968
|
)
|
|
995
969
|
] })
|
|
996
970
|
] }),
|
|
997
|
-
bio && /* @__PURE__ */ jsx("div", { className: "mt-12", children: typeof bio === "string" ? /* @__PURE__ */ jsx(
|
|
998
|
-
"p",
|
|
999
|
-
{
|
|
1000
|
-
className: cn(
|
|
1001
|
-
"text-lg whitespace-pre-line",
|
|
1002
|
-
getTextColor(background, "muted"),
|
|
1003
|
-
bioClassName
|
|
1004
|
-
),
|
|
1005
|
-
children: bio
|
|
1006
|
-
}
|
|
1007
|
-
) : /* @__PURE__ */ jsx("div", { className: bioClassName, children: bio }) }),
|
|
971
|
+
bio && /* @__PURE__ */ jsx("div", { className: "mt-12", children: typeof bio === "string" ? /* @__PURE__ */ jsx("p", { className: cn("text-lg whitespace-pre-line", bioClassName), children: bio }) : /* @__PURE__ */ jsx("div", { className: bioClassName, children: bio }) }),
|
|
1008
972
|
(skillsSlot || skills && skills.length > 0) && /* @__PURE__ */ jsxs("div", { className: cn("mt-12", skillsClassName), children: [
|
|
1009
973
|
skillsTitle && (typeof skillsTitle === "string" ? /* @__PURE__ */ jsx("h2", { className: "text-xl font-semibold", children: skillsTitle }) : skillsTitle),
|
|
1010
974
|
/* @__PURE__ */ jsx("div", { className: "mt-4 flex flex-wrap gap-2", children: skillsContent })
|
|
1011
975
|
] }),
|
|
1012
|
-
|
|
1013
|
-
|
|
976
|
+
/* @__PURE__ */ jsx(
|
|
977
|
+
BlockActions,
|
|
1014
978
|
{
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
),
|
|
1019
|
-
children: actionsContent
|
|
979
|
+
actions,
|
|
980
|
+
actionsSlot,
|
|
981
|
+
actionsClassName
|
|
1020
982
|
}
|
|
1021
983
|
)
|
|
1022
984
|
] })
|
|
@@ -1146,7 +1146,7 @@ function AboutDeveloperStory({
|
|
|
1146
1146
|
src: storyImage.src,
|
|
1147
1147
|
alt: storyImage.alt,
|
|
1148
1148
|
className: cn(
|
|
1149
|
-
"rounded-2xl object-cover
|
|
1149
|
+
"rounded-2xl object-cover w-full h-auto",
|
|
1150
1150
|
storyImageClassName
|
|
1151
1151
|
),
|
|
1152
1152
|
optixFlowConfig
|
|
@@ -1125,7 +1125,7 @@ function AboutDeveloperStory({
|
|
|
1125
1125
|
src: storyImage.src,
|
|
1126
1126
|
alt: storyImage.alt,
|
|
1127
1127
|
className: cn(
|
|
1128
|
-
"rounded-2xl object-cover
|
|
1128
|
+
"rounded-2xl object-cover w-full h-auto",
|
|
1129
1129
|
storyImageClassName
|
|
1130
1130
|
),
|
|
1131
1131
|
optixFlowConfig
|