nvis-fe-cms-libs 1.1.35 → 1.1.37
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.
|
@@ -580,7 +580,7 @@ var __async = (__this, __arguments, generator) => {
|
|
|
580
580
|
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "relative z-10", children })
|
|
581
581
|
] });
|
|
582
582
|
};
|
|
583
|
-
const AboutCompanySection = ({ data, t, isDarkMode }) => {
|
|
583
|
+
const AboutCompanySection = ({ data, t, isDarkMode, imageBaseUrl = "" }) => {
|
|
584
584
|
var _a, _b;
|
|
585
585
|
const safeT = typeof t === "function" ? t : (key, options) => {
|
|
586
586
|
console.warn(`Translation function not provided for key: ${key}`);
|
|
@@ -596,6 +596,13 @@ var __async = (__this, __arguments, generator) => {
|
|
|
596
596
|
const establishedYear = companyData.establishedYear || "----";
|
|
597
597
|
const experienceYears = companyData.experienceYears || "0";
|
|
598
598
|
const description = companyData.description || "";
|
|
599
|
+
const logo = companyData.logo || null;
|
|
600
|
+
const getLogoUrl = (logoUrl2) => {
|
|
601
|
+
if (!logoUrl2) return null;
|
|
602
|
+
if (logoUrl2.startsWith("http")) return logoUrl2;
|
|
603
|
+
return `${imageBaseUrl}${logoUrl2}`;
|
|
604
|
+
};
|
|
605
|
+
const logoUrl = getLogoUrl(logo);
|
|
599
606
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
|
|
600
607
|
/* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
601
608
|
"section",
|
|
@@ -639,8 +646,22 @@ var __async = (__this, __arguments, generator) => {
|
|
|
639
646
|
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "w-20 h-20 mx-auto rounded-full bg-gradient-to-r from-blue-500 to-purple-600 p-1", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
640
647
|
"div",
|
|
641
648
|
{
|
|
642
|
-
className: `w-full h-full rounded-full flex items-center justify-center ${isDarkMode ? "bg-gray-900" : "bg-white"}`,
|
|
643
|
-
children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
649
|
+
className: `w-full h-full rounded-full flex items-center justify-center overflow-hidden ${isDarkMode ? "bg-gray-900" : "bg-white"}`,
|
|
650
|
+
children: logoUrl ? /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
651
|
+
"img",
|
|
652
|
+
{
|
|
653
|
+
src: logoUrl,
|
|
654
|
+
alt: name || shortName,
|
|
655
|
+
className: "w-full h-full object-cover rounded-full",
|
|
656
|
+
onError: (e) => {
|
|
657
|
+
e.target.style.display = "none";
|
|
658
|
+
const fallbackDiv = document.createElement("div");
|
|
659
|
+
fallbackDiv.className = "text-2xl font-bold bg-gradient-to-r from-blue-600 to-purple-600 bg-clip-text text-transparent";
|
|
660
|
+
fallbackDiv.textContent = shortName;
|
|
661
|
+
e.target.parentElement.appendChild(fallbackDiv);
|
|
662
|
+
}
|
|
663
|
+
}
|
|
664
|
+
) : /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "text-2xl font-bold bg-gradient-to-r from-blue-600 to-purple-600 bg-clip-text text-transparent", children: shortName })
|
|
644
665
|
}
|
|
645
666
|
) }),
|
|
646
667
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
@@ -695,7 +716,7 @@ var __async = (__this, __arguments, generator) => {
|
|
|
695
716
|
children: [
|
|
696
717
|
safeT("aboutCompany.story.title"),
|
|
697
718
|
" ",
|
|
698
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "block bg-gradient-to-r from-blue-600 to-purple-600 bg-clip-text text-transparent", children:
|
|
719
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "block bg-gradient-to-r from-blue-600 to-purple-600 bg-clip-text text-transparent", children: shortName })
|
|
699
720
|
]
|
|
700
721
|
}
|
|
701
722
|
),
|
|
@@ -897,72 +918,63 @@ var __async = (__this, __arguments, generator) => {
|
|
|
897
918
|
return () => itemRef.current && observer.unobserve(itemRef.current);
|
|
898
919
|
}, []);
|
|
899
920
|
const logoSrc = getLogoUrl(partner.logoUrl);
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
|
|
934
|
-
|
|
935
|
-
|
|
936
|
-
|
|
937
|
-
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
className: `text-sm text-center mb-2 ${isDarkMode ? "text-gray-300" : "text-gray-600"}`,
|
|
958
|
-
children: partner.description
|
|
959
|
-
}
|
|
960
|
-
),
|
|
961
|
-
partner.websiteUrl && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "website-hint", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "text-sm text-blue-600 font-medium", children: [
|
|
962
|
-
t("partners.viewDetails") || "Xem chi tiết",
|
|
963
|
-
" →"
|
|
964
|
-
] }) }),
|
|
965
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("style", { jsx: true, children: `
|
|
921
|
+
const cardContent = /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
|
|
922
|
+
isDarkMode && /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
|
|
923
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
924
|
+
"div",
|
|
925
|
+
{
|
|
926
|
+
className: "absolute w-12 h-12 bg-white/5 rounded-full",
|
|
927
|
+
style: { left: "10%", top: "20%" }
|
|
928
|
+
}
|
|
929
|
+
),
|
|
930
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
931
|
+
"div",
|
|
932
|
+
{
|
|
933
|
+
className: "absolute w-10 h-10 bg-white/5 rounded-full",
|
|
934
|
+
style: { right: "30%", bottom: "10%" }
|
|
935
|
+
}
|
|
936
|
+
),
|
|
937
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
938
|
+
"div",
|
|
939
|
+
{
|
|
940
|
+
className: "absolute w-14 h-14 bg-white/5 rounded-md",
|
|
941
|
+
style: { left: "20%", bottom: "30%" }
|
|
942
|
+
}
|
|
943
|
+
),
|
|
944
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
945
|
+
"div",
|
|
946
|
+
{
|
|
947
|
+
className: 'absolute inset-0 bg-[url("data:image/svg+xml,%3Csvg width=\\\\\\"60\\\\\\" height=\\\\\\"60\\\\\\" viewBox=\\\\\\"0 0 60 60\\\\\\" xmlns=\\\\\\"http://www.w3.org/2000/svg\\\\\\"%3E%3Cg fill=\\\\\\"none\\\\\\" fill-rule=\\\\\\"evenodd\\\\\\"%3E%3Cg fill=\\\\\\"%23ffffff\\\\\\" fill-opacity=\\\\\\"0.05\\\\\\"%3E%3Ccircle cx=\\\\\\"30\\\\\\" cy=\\\\\\"30\\\\\\" r=\\\\\\"2\\\\\\"/%3E%3C/g%3E%3C/g%3E%3C/svg%3E")] opacity-20'
|
|
948
|
+
}
|
|
949
|
+
)
|
|
950
|
+
] }),
|
|
951
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "logo-container w-20 h-14 flex items-center justify-center mb-4 rounded-lg overflow-hidden", children: logoSrc ? /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
952
|
+
"img",
|
|
953
|
+
{
|
|
954
|
+
src: logoSrc,
|
|
955
|
+
alt: partner.name,
|
|
956
|
+
className: "logo-image max-w-full max-h-full object-contain"
|
|
957
|
+
}
|
|
958
|
+
) : /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "w-full h-full bg-gradient-to-br from-blue-500 to-purple-600 flex items-center justify-center", children: /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-white font-bold text-center text-sm px-1", children: partner.name }) }) }),
|
|
959
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
960
|
+
"h4",
|
|
961
|
+
{
|
|
962
|
+
className: `font-bold text-center mb-2 ${isDarkMode ? "text-white" : "text-gray-900"}`,
|
|
963
|
+
children: partner.name
|
|
964
|
+
}
|
|
965
|
+
),
|
|
966
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
967
|
+
"p",
|
|
968
|
+
{
|
|
969
|
+
className: `text-sm text-center mb-2 ${isDarkMode ? "text-gray-300" : "text-gray-600"}`,
|
|
970
|
+
children: partner.description
|
|
971
|
+
}
|
|
972
|
+
),
|
|
973
|
+
partner.websiteUrl && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "website-hint", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "text-sm text-blue-600 font-medium", children: [
|
|
974
|
+
t("partners.viewDetails") || "Xem chi tiết",
|
|
975
|
+
" →"
|
|
976
|
+
] }) }),
|
|
977
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("style", { jsx: true, children: `
|
|
966
978
|
.partner-card {
|
|
967
979
|
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
|
968
980
|
}
|
|
@@ -997,7 +1009,32 @@ var __async = (__this, __arguments, generator) => {
|
|
|
997
1009
|
transform: translateY(0);
|
|
998
1010
|
}
|
|
999
1011
|
` })
|
|
1000
|
-
|
|
1012
|
+
] });
|
|
1013
|
+
if (partner.websiteUrl) {
|
|
1014
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
1015
|
+
"a",
|
|
1016
|
+
{
|
|
1017
|
+
ref: itemRef,
|
|
1018
|
+
href: partner.websiteUrl,
|
|
1019
|
+
target: "_blank",
|
|
1020
|
+
rel: "noopener noreferrer",
|
|
1021
|
+
className: `partner-card relative flex flex-col items-center justify-center p-4 rounded-xl shadow-sm transition-all duration-700 ease-out cursor-pointer overflow-hidden
|
|
1022
|
+
${isDarkMode ? "bg-gradient-to-br from-slate-900 via-blue-900 to-indigo-900 border border-blue-800 hover:border-blue-500" : "bg-white border border-gray-200 hover:border-blue-300"}
|
|
1023
|
+
${visible ? "opacity-100 scale-100" : "opacity-0 scale-75"}`,
|
|
1024
|
+
style: { transitionDelay: `${idx * 150}ms`, textDecoration: "none" },
|
|
1025
|
+
children: cardContent
|
|
1026
|
+
}
|
|
1027
|
+
);
|
|
1028
|
+
}
|
|
1029
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
1030
|
+
"div",
|
|
1031
|
+
{
|
|
1032
|
+
ref: itemRef,
|
|
1033
|
+
className: `partner-card relative flex flex-col items-center justify-center p-4 rounded-xl shadow-sm transition-all duration-700 ease-out overflow-hidden
|
|
1034
|
+
${isDarkMode ? "bg-gradient-to-br from-slate-900 via-blue-900 to-indigo-900 border border-blue-800" : "bg-white border border-gray-200"}
|
|
1035
|
+
${visible ? "opacity-100 scale-100" : "opacity-0 scale-75"}`,
|
|
1036
|
+
style: { transitionDelay: `${idx * 150}ms` },
|
|
1037
|
+
children: cardContent
|
|
1001
1038
|
}
|
|
1002
1039
|
);
|
|
1003
1040
|
};
|
|
@@ -1013,13 +1050,14 @@ var __async = (__this, __arguments, generator) => {
|
|
|
1013
1050
|
}, []);
|
|
1014
1051
|
return width;
|
|
1015
1052
|
}
|
|
1016
|
-
const PartnersSection = ({ data, t, isDarkMode, imageBaseUrl = "" }) => {
|
|
1053
|
+
const PartnersSection = ({ data, t, isDarkMode, imageBaseUrl = "", section }) => {
|
|
1017
1054
|
var _a, _b;
|
|
1018
1055
|
const partnersData = ((_b = (_a = data == null ? void 0 : data.sectionDataBindingItems) == null ? void 0 : _a.filter((item) => item == null ? void 0 : item.data)) == null ? void 0 : _b.map((item) => item.data)) || [];
|
|
1019
1056
|
const [currentPartnerSlide, setCurrentPartnerSlide] = require$$0.useState(0);
|
|
1020
1057
|
const [partnersVisible, setPartnersVisible] = require$$0.useState(false);
|
|
1021
1058
|
const partnersRef = require$$0.useRef(null);
|
|
1022
1059
|
const windowWidth = useWindowSize$1();
|
|
1060
|
+
const sectionTitle = (section == null ? void 0 : section.title) || "...";
|
|
1023
1061
|
const getLogoUrl = (logoUrl) => {
|
|
1024
1062
|
if (!logoUrl) return null;
|
|
1025
1063
|
if (logoUrl.startsWith("http")) return logoUrl;
|
|
@@ -1063,28 +1101,16 @@ var __async = (__this, __arguments, generator) => {
|
|
|
1063
1101
|
}, []);
|
|
1064
1102
|
if (!partnersData.length) return null;
|
|
1065
1103
|
return /* @__PURE__ */ jsxRuntimeExports.jsx(SectionWrapper, { isDarkMode, children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8", children: [
|
|
1066
|
-
/* @__PURE__ */ jsxRuntimeExports.
|
|
1067
|
-
|
|
1068
|
-
|
|
1069
|
-
{
|
|
1070
|
-
|
|
1071
|
-
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
),
|
|
1077
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
1078
|
-
"h2",
|
|
1079
|
-
{
|
|
1080
|
-
className: `text-3xl lg:text-5xl font-bold leading-tight ${isDarkMode ? "text-white" : "text-gray-800"}`,
|
|
1081
|
-
children: [
|
|
1082
|
-
t("partners.header.title"),
|
|
1083
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "block bg-gradient-to-r from-blue-500 to-purple-500 bg-clip-text text-transparent mt-2", children: t("partners.header.subtitle") })
|
|
1084
|
-
]
|
|
1085
|
-
}
|
|
1086
|
-
)
|
|
1087
|
-
] }),
|
|
1104
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "text-center mb-12", children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
1105
|
+
"div",
|
|
1106
|
+
{
|
|
1107
|
+
className: `inline-block px-4 py-2 rounded-full text-lg font-semibold mb-4 border shadow-sm ${isDarkMode ? "bg-blue-900/30 text-blue-300 border-blue-800" : "bg-blue-100 text-blue-800 border-blue-200"}`,
|
|
1108
|
+
children: [
|
|
1109
|
+
"🤝 ",
|
|
1110
|
+
sectionTitle
|
|
1111
|
+
]
|
|
1112
|
+
}
|
|
1113
|
+
) }),
|
|
1088
1114
|
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { ref: partnersRef, className: "relative overflow-hidden", children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
1089
1115
|
"div",
|
|
1090
1116
|
{
|
|
@@ -1370,114 +1396,54 @@ var __async = (__this, __arguments, generator) => {
|
|
|
1370
1396
|
] })
|
|
1371
1397
|
] }) });
|
|
1372
1398
|
};
|
|
1373
|
-
const PartnerListCard = ({ partner, idx
|
|
1374
|
-
const
|
|
1375
|
-
const [visible, setVisible] = require$$0.useState(false);
|
|
1376
|
-
const [isHovered, setIsHovered] = require$$0.useState(false);
|
|
1377
|
-
if (!partner) return null;
|
|
1378
|
-
require$$0.useEffect(() => {
|
|
1379
|
-
const observer = new IntersectionObserver(
|
|
1380
|
-
(entries) => {
|
|
1381
|
-
entries.forEach((entry) => {
|
|
1382
|
-
if (entry.isIntersecting) {
|
|
1383
|
-
setVisible(true);
|
|
1384
|
-
observer.unobserve(entry.target);
|
|
1385
|
-
}
|
|
1386
|
-
});
|
|
1387
|
-
},
|
|
1388
|
-
{ threshold: 0.2 }
|
|
1389
|
-
);
|
|
1390
|
-
if (itemRef.current) observer.observe(itemRef.current);
|
|
1391
|
-
return () => itemRef.current && observer.unobserve(itemRef.current);
|
|
1392
|
-
}, []);
|
|
1393
|
-
const logoSrc = getLogoUrl ? getLogoUrl(partner.logoUrl) : null;
|
|
1394
|
-
const handleImageError = (e) => {
|
|
1395
|
-
e.target.style.display = "none";
|
|
1396
|
-
e.target.nextSibling.style.display = "flex";
|
|
1397
|
-
};
|
|
1398
|
-
const handleClick = () => {
|
|
1399
|
-
if (partner.websiteUrl) {
|
|
1400
|
-
window.open(partner.websiteUrl, "_blank", "noopener,noreferrer");
|
|
1401
|
-
}
|
|
1402
|
-
};
|
|
1399
|
+
const PartnerListCard = ({ partner, idx, t, isDarkMode, getLogoUrl }) => {
|
|
1400
|
+
const logoUrl = getLogoUrl(partner.logo);
|
|
1403
1401
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
1404
|
-
"
|
|
1402
|
+
"a",
|
|
1405
1403
|
{
|
|
1406
|
-
|
|
1407
|
-
|
|
1408
|
-
|
|
1409
|
-
${
|
|
1410
|
-
${isHovered ? isDarkMode ? "border-blue-500 shadow-lg shadow-blue-500/20" : "border-blue-300 shadow-lg shadow-blue-500/20" : ""}`,
|
|
1404
|
+
href: partner.website || partner.url || "#",
|
|
1405
|
+
target: partner.website || partner.url ? "_blank" : "_self",
|
|
1406
|
+
rel: partner.website || partner.url ? "noopener noreferrer" : "",
|
|
1407
|
+
className: `group relative overflow-hidden rounded-2xl transition-all duration-500 hover:-translate-y-2 hover:scale-105 ${isDarkMode ? "bg-gradient-to-br from-gray-800 to-gray-900 border border-gray-700 hover:border-blue-500/50" : "bg-gradient-to-br from-white to-gray-50 border border-gray-200 hover:border-blue-400/50"} shadow-lg hover:shadow-2xl`,
|
|
1411
1408
|
style: {
|
|
1412
|
-
|
|
1413
|
-
|
|
1414
|
-
position: "relative",
|
|
1415
|
-
zIndex: isHovered ? 10 : 1
|
|
1409
|
+
animationDelay: `${idx * 0.1}s`,
|
|
1410
|
+
textDecoration: "none"
|
|
1416
1411
|
},
|
|
1417
|
-
onMouseEnter: () => setIsHovered(true),
|
|
1418
|
-
onMouseLeave: () => setIsHovered(false),
|
|
1419
|
-
onClick: handleClick,
|
|
1420
1412
|
children: [
|
|
1421
|
-
|
|
1422
|
-
|
|
1423
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "
|
|
1424
|
-
|
|
1425
|
-
|
|
1413
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "absolute inset-0 bg-gradient-to-br from-blue-500/0 via-purple-500/0 to-pink-500/0 group-hover:from-blue-500/10 group-hover:via-purple-500/10 group-hover:to-pink-500/10 transition-all duration-700" }),
|
|
1414
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "relative p-6 flex flex-col items-center justify-center min-h-[180px]", children: [
|
|
1415
|
+
logoUrl ? /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "w-full h-24 flex items-center justify-center mb-4", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
1416
|
+
"img",
|
|
1417
|
+
{
|
|
1418
|
+
src: logoUrl,
|
|
1419
|
+
alt: partner.name || t("partners.logoAlt") || "Partner logo",
|
|
1420
|
+
className: "max-w-full max-h-full object-contain filter grayscale group-hover:grayscale-0 transition-all duration-500 group-hover:scale-110",
|
|
1421
|
+
loading: "lazy"
|
|
1422
|
+
}
|
|
1423
|
+
) }) : /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
1426
1424
|
"div",
|
|
1427
1425
|
{
|
|
1428
|
-
|
|
1429
|
-
|
|
1430
|
-
|
|
1431
|
-
|
|
1432
|
-
|
|
1426
|
+
className: `w-20 h-20 rounded-full flex items-center justify-center mb-4 ${isDarkMode ? "bg-gray-700" : "bg-gray-200"}`,
|
|
1427
|
+
children: /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-3xl", children: "🤝" })
|
|
1428
|
+
}
|
|
1429
|
+
),
|
|
1430
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
1431
|
+
"h3",
|
|
1432
|
+
{
|
|
1433
|
+
className: `text-base font-bold text-center line-clamp-2 ${isDarkMode ? "text-white" : "text-gray-800"} group-hover:text-transparent group-hover:bg-gradient-to-r group-hover:from-blue-500 group-hover:to-purple-500 group-hover:bg-clip-text transition-all duration-300`,
|
|
1434
|
+
children: partner.name || t("partners.unnamed") || "Partner"
|
|
1433
1435
|
}
|
|
1434
|
-
)
|
|
1436
|
+
),
|
|
1437
|
+
partner.description && /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
1438
|
+
"p",
|
|
1439
|
+
{
|
|
1440
|
+
className: `text-xs text-center mt-2 line-clamp-2 ${isDarkMode ? "text-gray-400" : "text-gray-600"}`,
|
|
1441
|
+
children: partner.description
|
|
1442
|
+
}
|
|
1443
|
+
)
|
|
1435
1444
|
] }),
|
|
1436
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
1437
|
-
|
|
1438
|
-
{
|
|
1439
|
-
className: `relative w-20 h-14 flex items-center justify-center mb-4 rounded-lg overflow-hidden border transition-all duration-300
|
|
1440
|
-
${isDarkMode ? "border-gray-600" : "border-gray-200"}
|
|
1441
|
-
${isHovered ? "border-blue-500" : ""}
|
|
1442
|
-
`,
|
|
1443
|
-
style: {
|
|
1444
|
-
background: isDarkMode ? isHovered ? "linear-gradient(135deg, #4b5563 0%, #374151 100%)" : "linear-gradient(135deg, #374151 0%, #1f2937 100%)" : isHovered ? "linear-gradient(135deg, #ffffff 0%, #f8fafc 100%)" : "linear-gradient(135deg, #f8fafc 0%, #f1f5f9 100%)"
|
|
1445
|
-
},
|
|
1446
|
-
children: logoSrc ? /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
|
|
1447
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
1448
|
-
"img",
|
|
1449
|
-
{
|
|
1450
|
-
src: logoSrc,
|
|
1451
|
-
alt: partner.name || (t == null ? void 0 : t("partners.logoAlt")) || "Partner logo",
|
|
1452
|
-
className: "max-w-full max-h-full object-contain transition-all duration-300",
|
|
1453
|
-
style: {
|
|
1454
|
-
filter: isDarkMode ? isHovered ? "grayscale(0) opacity(1)" : "grayscale(0.3) opacity(0.8)" : isHovered ? "grayscale(0) opacity(1)" : "grayscale(0.2) opacity(0.9)",
|
|
1455
|
-
transform: isHovered ? "scale(1.05)" : "scale(1)"
|
|
1456
|
-
},
|
|
1457
|
-
onError: handleImageError,
|
|
1458
|
-
loading: "lazy"
|
|
1459
|
-
}
|
|
1460
|
-
),
|
|
1461
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "absolute inset-0 bg-gradient-to-br from-blue-500 to-purple-600 flex items-center justify-center", style: { display: "none" }, children: /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-white font-bold text-center text-sm px-1", children: partner.name }) })
|
|
1462
|
-
] }) : /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "w-full h-full bg-gradient-to-br from-blue-500 to-purple-600 flex items-center justify-center", children: /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-white font-bold text-center text-sm px-1", children: partner.name }) })
|
|
1463
|
-
}
|
|
1464
|
-
),
|
|
1465
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("h4", { className: `font-bold text-center mb-2 text-sm leading-tight ${isDarkMode ? "text-white" : "text-gray-900"}`, children: partner.name }),
|
|
1466
|
-
partner.description && /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: `text-xs text-center mb-3 line-clamp-2 px-1 ${isDarkMode ? "text-gray-300" : "text-gray-600"}`, children: partner.description }),
|
|
1467
|
-
partner.websiteUrl && /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
1468
|
-
"div",
|
|
1469
|
-
{
|
|
1470
|
-
className: "transition-all duration-300 absolute bottom-4",
|
|
1471
|
-
style: {
|
|
1472
|
-
opacity: isHovered ? 1 : 0,
|
|
1473
|
-
transform: `translateY(${isHovered ? "0px" : "4px"})`
|
|
1474
|
-
},
|
|
1475
|
-
children: /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "text-xs text-blue-600 font-medium", children: [
|
|
1476
|
-
(t == null ? void 0 : t("partners.viewDetails")) || "Xem chi tiết",
|
|
1477
|
-
" →"
|
|
1478
|
-
] })
|
|
1479
|
-
}
|
|
1480
|
-
)
|
|
1445
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "absolute top-0 right-0 w-20 h-20 bg-gradient-to-br from-blue-500/20 to-purple-500/20 rounded-bl-full opacity-0 group-hover:opacity-100 transition-opacity duration-500" }),
|
|
1446
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "absolute bottom-0 left-0 w-20 h-20 bg-gradient-to-tr from-purple-500/20 to-pink-500/20 rounded-tr-full opacity-0 group-hover:opacity-100 transition-opacity duration-500" })
|
|
1481
1447
|
]
|
|
1482
1448
|
}
|
|
1483
1449
|
);
|
|
@@ -1493,7 +1459,7 @@ var __async = (__this, __arguments, generator) => {
|
|
|
1493
1459
|
}, []);
|
|
1494
1460
|
return width;
|
|
1495
1461
|
}
|
|
1496
|
-
const PartnerListSection = ({ t, isDarkMode, getPartnerList, imageBaseUrl = "" }) => {
|
|
1462
|
+
const PartnerListSection = ({ t, isDarkMode, getPartnerList, imageBaseUrl = "", section }) => {
|
|
1497
1463
|
const [partnersData, setPartnersData] = require$$0.useState([]);
|
|
1498
1464
|
const [error, setError] = require$$0.useState(null);
|
|
1499
1465
|
const [loading, setLoading] = require$$0.useState(true);
|
|
@@ -1501,6 +1467,7 @@ var __async = (__this, __arguments, generator) => {
|
|
|
1501
1467
|
const [partnersVisible, setPartnersVisible] = require$$0.useState(false);
|
|
1502
1468
|
const partnersRef = require$$0.useRef(null);
|
|
1503
1469
|
const windowWidth = useWindowSize();
|
|
1470
|
+
const sectionTitle = (section == null ? void 0 : section.title) || "...";
|
|
1504
1471
|
const getLogoUrl = (logoUrl) => {
|
|
1505
1472
|
if (!logoUrl) return null;
|
|
1506
1473
|
if (logoUrl.startsWith("http")) return logoUrl;
|
|
@@ -1581,28 +1548,16 @@ var __async = (__this, __arguments, generator) => {
|
|
|
1581
1548
|
}
|
|
1582
1549
|
if (!partnersData.length) return null;
|
|
1583
1550
|
return /* @__PURE__ */ jsxRuntimeExports.jsx(SectionWrapper, { isDarkMode, children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8", children: [
|
|
1584
|
-
/* @__PURE__ */ jsxRuntimeExports.
|
|
1585
|
-
|
|
1586
|
-
|
|
1587
|
-
{
|
|
1588
|
-
|
|
1589
|
-
|
|
1590
|
-
|
|
1591
|
-
|
|
1592
|
-
|
|
1593
|
-
|
|
1594
|
-
),
|
|
1595
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
1596
|
-
"h2",
|
|
1597
|
-
{
|
|
1598
|
-
className: `text-3xl lg:text-5xl font-bold leading-tight ${isDarkMode ? "text-white" : "text-gray-800"}`,
|
|
1599
|
-
children: [
|
|
1600
|
-
t("partners.title.part1") || "Đồng hành cùng",
|
|
1601
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "block bg-gradient-to-r from-blue-500 to-purple-500 bg-clip-text text-transparent mt-2", children: t("partners.title.part2") || "Những thương hiệu hàng đầu" })
|
|
1602
|
-
]
|
|
1603
|
-
}
|
|
1604
|
-
)
|
|
1605
|
-
] }),
|
|
1551
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "text-center mb-12", children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
1552
|
+
"div",
|
|
1553
|
+
{
|
|
1554
|
+
className: `inline-block px-4 py-2 rounded-full text-lg font-semibold mb-4 border shadow-sm ${isDarkMode ? "bg-blue-900/30 text-blue-300 border-blue-800" : "bg-blue-100 text-blue-800 border-blue-200"}`,
|
|
1555
|
+
children: [
|
|
1556
|
+
"🤝 ",
|
|
1557
|
+
sectionTitle
|
|
1558
|
+
]
|
|
1559
|
+
}
|
|
1560
|
+
) }),
|
|
1606
1561
|
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { ref: partnersRef, className: "relative", children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
1607
1562
|
"div",
|
|
1608
1563
|
{
|
|
@@ -1756,42 +1711,42 @@ var __async = (__this, __arguments, generator) => {
|
|
|
1756
1711
|
* This source code is licensed under the ISC license.
|
|
1757
1712
|
* See the LICENSE file in the root directory of this source tree.
|
|
1758
1713
|
*/
|
|
1759
|
-
const __iconNode$
|
|
1714
|
+
const __iconNode$z = [
|
|
1760
1715
|
["path", { d: "M5 12h14", key: "1ays0h" }],
|
|
1761
1716
|
["path", { d: "m12 5 7 7-7 7", key: "xquz4c" }]
|
|
1762
1717
|
];
|
|
1763
|
-
const ArrowRight = createLucideIcon("arrow-right", __iconNode$
|
|
1718
|
+
const ArrowRight = createLucideIcon("arrow-right", __iconNode$z);
|
|
1764
1719
|
/**
|
|
1765
1720
|
* @license lucide-react v0.536.0 - ISC
|
|
1766
1721
|
*
|
|
1767
1722
|
* This source code is licensed under the ISC license.
|
|
1768
1723
|
* See the LICENSE file in the root directory of this source tree.
|
|
1769
1724
|
*/
|
|
1770
|
-
const __iconNode$
|
|
1725
|
+
const __iconNode$y = [
|
|
1771
1726
|
["path", { d: "M2 4v16", key: "vw9hq8" }],
|
|
1772
1727
|
["path", { d: "M2 8h18a2 2 0 0 1 2 2v10", key: "1dgv2r" }],
|
|
1773
1728
|
["path", { d: "M2 17h20", key: "18nfp3" }],
|
|
1774
1729
|
["path", { d: "M6 8v9", key: "1yriud" }]
|
|
1775
1730
|
];
|
|
1776
|
-
const Bed = createLucideIcon("bed", __iconNode$
|
|
1731
|
+
const Bed = createLucideIcon("bed", __iconNode$y);
|
|
1777
1732
|
/**
|
|
1778
1733
|
* @license lucide-react v0.536.0 - ISC
|
|
1779
1734
|
*
|
|
1780
1735
|
* This source code is licensed under the ISC license.
|
|
1781
1736
|
* See the LICENSE file in the root directory of this source tree.
|
|
1782
1737
|
*/
|
|
1783
|
-
const __iconNode$
|
|
1738
|
+
const __iconNode$x = [
|
|
1784
1739
|
["path", { d: "M16 20V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16", key: "jecpp" }],
|
|
1785
1740
|
["rect", { width: "20", height: "14", x: "2", y: "6", rx: "2", key: "i6l2r4" }]
|
|
1786
1741
|
];
|
|
1787
|
-
const Briefcase = createLucideIcon("briefcase", __iconNode$
|
|
1742
|
+
const Briefcase = createLucideIcon("briefcase", __iconNode$x);
|
|
1788
1743
|
/**
|
|
1789
1744
|
* @license lucide-react v0.536.0 - ISC
|
|
1790
1745
|
*
|
|
1791
1746
|
* This source code is licensed under the ISC license.
|
|
1792
1747
|
* See the LICENSE file in the root directory of this source tree.
|
|
1793
1748
|
*/
|
|
1794
|
-
const __iconNode$
|
|
1749
|
+
const __iconNode$w = [
|
|
1795
1750
|
["path", { d: "M6 22V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v18Z", key: "1b4qmf" }],
|
|
1796
1751
|
["path", { d: "M6 12H4a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h2", key: "i71pzd" }],
|
|
1797
1752
|
["path", { d: "M18 9h2a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2h-2", key: "10jefs" }],
|
|
@@ -1800,14 +1755,14 @@ var __async = (__this, __arguments, generator) => {
|
|
|
1800
1755
|
["path", { d: "M10 14h4", key: "kelpxr" }],
|
|
1801
1756
|
["path", { d: "M10 18h4", key: "1ulq68" }]
|
|
1802
1757
|
];
|
|
1803
|
-
const Building2 = createLucideIcon("building-2", __iconNode$
|
|
1758
|
+
const Building2 = createLucideIcon("building-2", __iconNode$w);
|
|
1804
1759
|
/**
|
|
1805
1760
|
* @license lucide-react v0.536.0 - ISC
|
|
1806
1761
|
*
|
|
1807
1762
|
* This source code is licensed under the ISC license.
|
|
1808
1763
|
* See the LICENSE file in the root directory of this source tree.
|
|
1809
1764
|
*/
|
|
1810
|
-
const __iconNode$
|
|
1765
|
+
const __iconNode$v = [
|
|
1811
1766
|
["rect", { width: "16", height: "20", x: "4", y: "2", rx: "2", ry: "2", key: "76otgf" }],
|
|
1812
1767
|
["path", { d: "M9 22v-4h6v4", key: "r93iot" }],
|
|
1813
1768
|
["path", { d: "M8 6h.01", key: "1dz90k" }],
|
|
@@ -1820,14 +1775,14 @@ var __async = (__this, __arguments, generator) => {
|
|
|
1820
1775
|
["path", { d: "M8 10h.01", key: "19clt8" }],
|
|
1821
1776
|
["path", { d: "M8 14h.01", key: "6423bh" }]
|
|
1822
1777
|
];
|
|
1823
|
-
const Building = createLucideIcon("building", __iconNode$
|
|
1778
|
+
const Building = createLucideIcon("building", __iconNode$v);
|
|
1824
1779
|
/**
|
|
1825
1780
|
* @license lucide-react v0.536.0 - ISC
|
|
1826
1781
|
*
|
|
1827
1782
|
* This source code is licensed under the ISC license.
|
|
1828
1783
|
* See the LICENSE file in the root directory of this source tree.
|
|
1829
1784
|
*/
|
|
1830
|
-
const __iconNode$
|
|
1785
|
+
const __iconNode$u = [
|
|
1831
1786
|
["rect", { width: "16", height: "20", x: "4", y: "2", rx: "2", key: "1nb95v" }],
|
|
1832
1787
|
["line", { x1: "8", x2: "16", y1: "6", y2: "6", key: "x4nwl0" }],
|
|
1833
1788
|
["line", { x1: "16", x2: "16", y1: "14", y2: "18", key: "wjye3r" }],
|
|
@@ -1839,86 +1794,86 @@ var __async = (__this, __arguments, generator) => {
|
|
|
1839
1794
|
["path", { d: "M12 18h.01", key: "mhygvu" }],
|
|
1840
1795
|
["path", { d: "M8 18h.01", key: "lrp35t" }]
|
|
1841
1796
|
];
|
|
1842
|
-
const Calculator = createLucideIcon("calculator", __iconNode$
|
|
1797
|
+
const Calculator = createLucideIcon("calculator", __iconNode$u);
|
|
1843
1798
|
/**
|
|
1844
1799
|
* @license lucide-react v0.536.0 - ISC
|
|
1845
1800
|
*
|
|
1846
1801
|
* This source code is licensed under the ISC license.
|
|
1847
1802
|
* See the LICENSE file in the root directory of this source tree.
|
|
1848
1803
|
*/
|
|
1849
|
-
const __iconNode$
|
|
1850
|
-
const ChevronDown = createLucideIcon("chevron-down", __iconNode$
|
|
1804
|
+
const __iconNode$t = [["path", { d: "m6 9 6 6 6-6", key: "qrunsl" }]];
|
|
1805
|
+
const ChevronDown = createLucideIcon("chevron-down", __iconNode$t);
|
|
1851
1806
|
/**
|
|
1852
1807
|
* @license lucide-react v0.536.0 - ISC
|
|
1853
1808
|
*
|
|
1854
1809
|
* This source code is licensed under the ISC license.
|
|
1855
1810
|
* See the LICENSE file in the root directory of this source tree.
|
|
1856
1811
|
*/
|
|
1857
|
-
const __iconNode$
|
|
1858
|
-
const ChevronRight = createLucideIcon("chevron-right", __iconNode$
|
|
1812
|
+
const __iconNode$s = [["path", { d: "m9 18 6-6-6-6", key: "mthhwq" }]];
|
|
1813
|
+
const ChevronRight = createLucideIcon("chevron-right", __iconNode$s);
|
|
1859
1814
|
/**
|
|
1860
1815
|
* @license lucide-react v0.536.0 - ISC
|
|
1861
1816
|
*
|
|
1862
1817
|
* This source code is licensed under the ISC license.
|
|
1863
1818
|
* See the LICENSE file in the root directory of this source tree.
|
|
1864
1819
|
*/
|
|
1865
|
-
const __iconNode$
|
|
1820
|
+
const __iconNode$r = [
|
|
1866
1821
|
["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
|
|
1867
1822
|
["line", { x1: "12", x2: "12", y1: "8", y2: "12", key: "1pkeuh" }],
|
|
1868
1823
|
["line", { x1: "12", x2: "12.01", y1: "16", y2: "16", key: "4dfq90" }]
|
|
1869
1824
|
];
|
|
1870
|
-
const CircleAlert = createLucideIcon("circle-alert", __iconNode$
|
|
1825
|
+
const CircleAlert = createLucideIcon("circle-alert", __iconNode$r);
|
|
1871
1826
|
/**
|
|
1872
1827
|
* @license lucide-react v0.536.0 - ISC
|
|
1873
1828
|
*
|
|
1874
1829
|
* This source code is licensed under the ISC license.
|
|
1875
1830
|
* See the LICENSE file in the root directory of this source tree.
|
|
1876
1831
|
*/
|
|
1877
|
-
const __iconNode$
|
|
1832
|
+
const __iconNode$q = [
|
|
1878
1833
|
["path", { d: "M21.801 10A10 10 0 1 1 17 3.335", key: "yps3ct" }],
|
|
1879
1834
|
["path", { d: "m9 11 3 3L22 4", key: "1pflzl" }]
|
|
1880
1835
|
];
|
|
1881
|
-
const CircleCheckBig = createLucideIcon("circle-check-big", __iconNode$
|
|
1836
|
+
const CircleCheckBig = createLucideIcon("circle-check-big", __iconNode$q);
|
|
1882
1837
|
/**
|
|
1883
1838
|
* @license lucide-react v0.536.0 - ISC
|
|
1884
1839
|
*
|
|
1885
1840
|
* This source code is licensed under the ISC license.
|
|
1886
1841
|
* See the LICENSE file in the root directory of this source tree.
|
|
1887
1842
|
*/
|
|
1888
|
-
const __iconNode$
|
|
1843
|
+
const __iconNode$p = [
|
|
1889
1844
|
["path", { d: "M12 6v6l4 2", key: "mmk7yg" }],
|
|
1890
1845
|
["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }]
|
|
1891
1846
|
];
|
|
1892
|
-
const Clock = createLucideIcon("clock", __iconNode$
|
|
1847
|
+
const Clock = createLucideIcon("clock", __iconNode$p);
|
|
1893
1848
|
/**
|
|
1894
1849
|
* @license lucide-react v0.536.0 - ISC
|
|
1895
1850
|
*
|
|
1896
1851
|
* This source code is licensed under the ISC license.
|
|
1897
1852
|
* See the LICENSE file in the root directory of this source tree.
|
|
1898
1853
|
*/
|
|
1899
|
-
const __iconNode$
|
|
1854
|
+
const __iconNode$o = [
|
|
1900
1855
|
["path", { d: "M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z", key: "p7xjir" }]
|
|
1901
1856
|
];
|
|
1902
|
-
const Cloud = createLucideIcon("cloud", __iconNode$
|
|
1857
|
+
const Cloud = createLucideIcon("cloud", __iconNode$o);
|
|
1903
1858
|
/**
|
|
1904
1859
|
* @license lucide-react v0.536.0 - ISC
|
|
1905
1860
|
*
|
|
1906
1861
|
* This source code is licensed under the ISC license.
|
|
1907
1862
|
* See the LICENSE file in the root directory of this source tree.
|
|
1908
1863
|
*/
|
|
1909
|
-
const __iconNode$
|
|
1864
|
+
const __iconNode$n = [
|
|
1910
1865
|
["ellipse", { cx: "12", cy: "5", rx: "9", ry: "3", key: "msslwz" }],
|
|
1911
1866
|
["path", { d: "M3 5V19A9 3 0 0 0 21 19V5", key: "1wlel7" }],
|
|
1912
1867
|
["path", { d: "M3 12A9 3 0 0 0 21 12", key: "mv7ke4" }]
|
|
1913
1868
|
];
|
|
1914
|
-
const Database = createLucideIcon("database", __iconNode$
|
|
1869
|
+
const Database = createLucideIcon("database", __iconNode$n);
|
|
1915
1870
|
/**
|
|
1916
1871
|
* @license lucide-react v0.536.0 - ISC
|
|
1917
1872
|
*
|
|
1918
1873
|
* This source code is licensed under the ISC license.
|
|
1919
1874
|
* See the LICENSE file in the root directory of this source tree.
|
|
1920
1875
|
*/
|
|
1921
|
-
const __iconNode$
|
|
1876
|
+
const __iconNode$m = [
|
|
1922
1877
|
["path", { d: "M12 16h.01", key: "1drbdi" }],
|
|
1923
1878
|
["path", { d: "M16 16h.01", key: "1f9h7w" }],
|
|
1924
1879
|
[
|
|
@@ -1930,40 +1885,40 @@ var __async = (__this, __arguments, generator) => {
|
|
|
1930
1885
|
],
|
|
1931
1886
|
["path", { d: "M8 16h.01", key: "18s6g9" }]
|
|
1932
1887
|
];
|
|
1933
|
-
const Factory = createLucideIcon("factory", __iconNode$
|
|
1888
|
+
const Factory = createLucideIcon("factory", __iconNode$m);
|
|
1934
1889
|
/**
|
|
1935
1890
|
* @license lucide-react v0.536.0 - ISC
|
|
1936
1891
|
*
|
|
1937
1892
|
* This source code is licensed under the ISC license.
|
|
1938
1893
|
* See the LICENSE file in the root directory of this source tree.
|
|
1939
1894
|
*/
|
|
1940
|
-
const __iconNode$
|
|
1895
|
+
const __iconNode$l = [
|
|
1941
1896
|
["path", { d: "M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z", key: "1rqfz7" }],
|
|
1942
1897
|
["path", { d: "M14 2v4a2 2 0 0 0 2 2h4", key: "tnqrlb" }],
|
|
1943
1898
|
["path", { d: "M10 9H8", key: "b1mrlr" }],
|
|
1944
1899
|
["path", { d: "M16 13H8", key: "t4e002" }],
|
|
1945
1900
|
["path", { d: "M16 17H8", key: "z1uh3a" }]
|
|
1946
1901
|
];
|
|
1947
|
-
const FileText = createLucideIcon("file-text", __iconNode$
|
|
1902
|
+
const FileText = createLucideIcon("file-text", __iconNode$l);
|
|
1948
1903
|
/**
|
|
1949
1904
|
* @license lucide-react v0.536.0 - ISC
|
|
1950
1905
|
*
|
|
1951
1906
|
* This source code is licensed under the ISC license.
|
|
1952
1907
|
* See the LICENSE file in the root directory of this source tree.
|
|
1953
1908
|
*/
|
|
1954
|
-
const __iconNode$
|
|
1909
|
+
const __iconNode$k = [
|
|
1955
1910
|
["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
|
|
1956
1911
|
["path", { d: "M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20", key: "13o1zl" }],
|
|
1957
1912
|
["path", { d: "M2 12h20", key: "9i4pu4" }]
|
|
1958
1913
|
];
|
|
1959
|
-
const Globe = createLucideIcon("globe", __iconNode$
|
|
1914
|
+
const Globe = createLucideIcon("globe", __iconNode$k);
|
|
1960
1915
|
/**
|
|
1961
1916
|
* @license lucide-react v0.536.0 - ISC
|
|
1962
1917
|
*
|
|
1963
1918
|
* This source code is licensed under the ISC license.
|
|
1964
1919
|
* See the LICENSE file in the root directory of this source tree.
|
|
1965
1920
|
*/
|
|
1966
|
-
const __iconNode$
|
|
1921
|
+
const __iconNode$j = [
|
|
1967
1922
|
[
|
|
1968
1923
|
"path",
|
|
1969
1924
|
{
|
|
@@ -1974,14 +1929,14 @@ var __async = (__this, __arguments, generator) => {
|
|
|
1974
1929
|
["path", { d: "M22 10v6", key: "1lu8f3" }],
|
|
1975
1930
|
["path", { d: "M6 12.5V16a6 3 0 0 0 12 0v-3.5", key: "1r8lef" }]
|
|
1976
1931
|
];
|
|
1977
|
-
const GraduationCap = createLucideIcon("graduation-cap", __iconNode$
|
|
1932
|
+
const GraduationCap = createLucideIcon("graduation-cap", __iconNode$j);
|
|
1978
1933
|
/**
|
|
1979
1934
|
* @license lucide-react v0.536.0 - ISC
|
|
1980
1935
|
*
|
|
1981
1936
|
* This source code is licensed under the ISC license.
|
|
1982
1937
|
* See the LICENSE file in the root directory of this source tree.
|
|
1983
1938
|
*/
|
|
1984
|
-
const __iconNode$
|
|
1939
|
+
const __iconNode$i = [
|
|
1985
1940
|
[
|
|
1986
1941
|
"path",
|
|
1987
1942
|
{
|
|
@@ -1990,14 +1945,14 @@ var __async = (__this, __arguments, generator) => {
|
|
|
1990
1945
|
}
|
|
1991
1946
|
]
|
|
1992
1947
|
];
|
|
1993
|
-
const Heart = createLucideIcon("heart", __iconNode$
|
|
1948
|
+
const Heart = createLucideIcon("heart", __iconNode$i);
|
|
1994
1949
|
/**
|
|
1995
1950
|
* @license lucide-react v0.536.0 - ISC
|
|
1996
1951
|
*
|
|
1997
1952
|
* This source code is licensed under the ISC license.
|
|
1998
1953
|
* See the LICENSE file in the root directory of this source tree.
|
|
1999
1954
|
*/
|
|
2000
|
-
const __iconNode$
|
|
1955
|
+
const __iconNode$h = [
|
|
2001
1956
|
["path", { d: "M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8", key: "5wwlr5" }],
|
|
2002
1957
|
[
|
|
2003
1958
|
"path",
|
|
@@ -2007,33 +1962,33 @@ var __async = (__this, __arguments, generator) => {
|
|
|
2007
1962
|
}
|
|
2008
1963
|
]
|
|
2009
1964
|
];
|
|
2010
|
-
const House = createLucideIcon("house", __iconNode$
|
|
1965
|
+
const House = createLucideIcon("house", __iconNode$h);
|
|
2011
1966
|
/**
|
|
2012
1967
|
* @license lucide-react v0.536.0 - ISC
|
|
2013
1968
|
*
|
|
2014
1969
|
* This source code is licensed under the ISC license.
|
|
2015
1970
|
* See the LICENSE file in the root directory of this source tree.
|
|
2016
1971
|
*/
|
|
2017
|
-
const __iconNode$
|
|
2018
|
-
const LoaderCircle = createLucideIcon("loader-circle", __iconNode$
|
|
1972
|
+
const __iconNode$g = [["path", { d: "M21 12a9 9 0 1 1-6.219-8.56", key: "13zald" }]];
|
|
1973
|
+
const LoaderCircle = createLucideIcon("loader-circle", __iconNode$g);
|
|
2019
1974
|
/**
|
|
2020
1975
|
* @license lucide-react v0.536.0 - ISC
|
|
2021
1976
|
*
|
|
2022
1977
|
* This source code is licensed under the ISC license.
|
|
2023
1978
|
* See the LICENSE file in the root directory of this source tree.
|
|
2024
1979
|
*/
|
|
2025
|
-
const __iconNode$
|
|
1980
|
+
const __iconNode$f = [
|
|
2026
1981
|
["path", { d: "m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7", key: "132q7q" }],
|
|
2027
1982
|
["rect", { x: "2", y: "4", width: "20", height: "16", rx: "2", key: "izxlao" }]
|
|
2028
1983
|
];
|
|
2029
|
-
const Mail = createLucideIcon("mail", __iconNode$
|
|
1984
|
+
const Mail = createLucideIcon("mail", __iconNode$f);
|
|
2030
1985
|
/**
|
|
2031
1986
|
* @license lucide-react v0.536.0 - ISC
|
|
2032
1987
|
*
|
|
2033
1988
|
* This source code is licensed under the ISC license.
|
|
2034
1989
|
* See the LICENSE file in the root directory of this source tree.
|
|
2035
1990
|
*/
|
|
2036
|
-
const __iconNode$
|
|
1991
|
+
const __iconNode$e = [
|
|
2037
1992
|
[
|
|
2038
1993
|
"path",
|
|
2039
1994
|
{
|
|
@@ -2044,39 +1999,7 @@ var __async = (__this, __arguments, generator) => {
|
|
|
2044
1999
|
["path", { d: "M6 14a12 12 0 0 0 2.4 7.2 2 2 0 0 0 3.2-2.4A8 8 0 0 1 10 14", key: "1853fq" }],
|
|
2045
2000
|
["path", { d: "M8 6v8", key: "15ugcq" }]
|
|
2046
2001
|
];
|
|
2047
|
-
const Megaphone = createLucideIcon("megaphone", __iconNode$
|
|
2048
|
-
/**
|
|
2049
|
-
* @license lucide-react v0.536.0 - ISC
|
|
2050
|
-
*
|
|
2051
|
-
* This source code is licensed under the ISC license.
|
|
2052
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
2053
|
-
*/
|
|
2054
|
-
const __iconNode$f = [
|
|
2055
|
-
[
|
|
2056
|
-
"path",
|
|
2057
|
-
{
|
|
2058
|
-
d: "M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719",
|
|
2059
|
-
key: "1sd12s"
|
|
2060
|
-
}
|
|
2061
|
-
]
|
|
2062
|
-
];
|
|
2063
|
-
const MessageCircle = createLucideIcon("message-circle", __iconNode$f);
|
|
2064
|
-
/**
|
|
2065
|
-
* @license lucide-react v0.536.0 - ISC
|
|
2066
|
-
*
|
|
2067
|
-
* This source code is licensed under the ISC license.
|
|
2068
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
2069
|
-
*/
|
|
2070
|
-
const __iconNode$e = [
|
|
2071
|
-
[
|
|
2072
|
-
"path",
|
|
2073
|
-
{
|
|
2074
|
-
d: "M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",
|
|
2075
|
-
key: "18887p"
|
|
2076
|
-
}
|
|
2077
|
-
]
|
|
2078
|
-
];
|
|
2079
|
-
const MessageSquare = createLucideIcon("message-square", __iconNode$e);
|
|
2002
|
+
const Megaphone = createLucideIcon("megaphone", __iconNode$e);
|
|
2080
2003
|
/**
|
|
2081
2004
|
* @license lucide-react v0.536.0 - ISC
|
|
2082
2005
|
*
|
|
@@ -2422,316 +2345,252 @@ var __async = (__this, __arguments, generator) => {
|
|
|
2422
2345
|
});
|
|
2423
2346
|
const inputBaseClasses = `w-full px-4 py-3 rounded-xl border transition-all duration-200 focus:ring-2 focus:ring-indigo-500/20 focus:outline-none ${isDarkMode ? "bg-gray-700 border-gray-600 text-white placeholder-gray-400 focus:border-indigo-500" : "bg-white border-slate-300 text-slate-900 placeholder-slate-500 focus:border-indigo-500"}`;
|
|
2424
2347
|
const labelClasses = `block text-sm font-semibold mb-2 ${isDarkMode ? "text-gray-300" : "text-slate-700"}`;
|
|
2425
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx(SectionWrapper, { isDarkMode, children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8", children: /* @__PURE__ */ jsxRuntimeExports.
|
|
2426
|
-
/* @__PURE__ */ jsxRuntimeExports.
|
|
2427
|
-
/* @__PURE__ */ jsxRuntimeExports.
|
|
2428
|
-
|
|
2429
|
-
/* @__PURE__ */ jsxRuntimeExports.
|
|
2430
|
-
|
|
2431
|
-
|
|
2432
|
-
|
|
2433
|
-
|
|
2434
|
-
submitStatus
|
|
2435
|
-
|
|
2436
|
-
|
|
2437
|
-
|
|
2438
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs("
|
|
2439
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "grid md:grid-cols-2 gap-6", children: [
|
|
2440
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
|
|
2441
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs("label", { className: labelClasses, children: [
|
|
2442
|
-
t("form.fields.fullName") || "Họ và tên",
|
|
2443
|
-
" *"
|
|
2444
|
-
] }),
|
|
2445
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
2446
|
-
"input",
|
|
2447
|
-
{
|
|
2448
|
-
type: "text",
|
|
2449
|
-
name: "fullName",
|
|
2450
|
-
value: formData.fullName || "",
|
|
2451
|
-
onChange: handleInputChange,
|
|
2452
|
-
onBlur: handleBlur,
|
|
2453
|
-
className: `${inputBaseClasses} ${formErrors.fullName ? "border-red-500" : ""}`,
|
|
2454
|
-
placeholder: "Nguyễn Văn A",
|
|
2455
|
-
required: true
|
|
2456
|
-
}
|
|
2457
|
-
),
|
|
2458
|
-
formErrors.fullName && /* @__PURE__ */ jsxRuntimeExports.jsxs("p", { className: "mt-1 text-sm text-red-500 flex items-center", children: [
|
|
2459
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(CircleAlert, { size: 14, className: "mr-1" }),
|
|
2460
|
-
formErrors.fullName
|
|
2461
|
-
] })
|
|
2462
|
-
] }),
|
|
2463
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
|
|
2464
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs("label", { className: labelClasses, children: [
|
|
2465
|
-
t("form.fields.workEmail") || "Email",
|
|
2466
|
-
" *"
|
|
2467
|
-
] }),
|
|
2468
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
2469
|
-
"input",
|
|
2470
|
-
{
|
|
2471
|
-
type: "email",
|
|
2472
|
-
name: "workEmail",
|
|
2473
|
-
value: formData.workEmail || "",
|
|
2474
|
-
onChange: handleInputChange,
|
|
2475
|
-
onBlur: handleBlur,
|
|
2476
|
-
className: `${inputBaseClasses} ${formErrors.workEmail ? "border-red-500" : ""}`,
|
|
2477
|
-
placeholder: "email@company.com",
|
|
2478
|
-
required: true
|
|
2479
|
-
}
|
|
2480
|
-
),
|
|
2481
|
-
formErrors.workEmail && /* @__PURE__ */ jsxRuntimeExports.jsxs("p", { className: "mt-1 text-sm text-red-500 flex items-center", children: [
|
|
2482
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(CircleAlert, { size: 14, className: "mr-1" }),
|
|
2483
|
-
formErrors.workEmail
|
|
2484
|
-
] })
|
|
2485
|
-
] })
|
|
2486
|
-
] }),
|
|
2487
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "grid md:grid-cols-2 gap-6", children: [
|
|
2488
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
|
|
2489
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("label", { className: labelClasses, children: t("form.fields.phoneNumber") || "Số điện thoại" }),
|
|
2490
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
2491
|
-
"input",
|
|
2492
|
-
{
|
|
2493
|
-
type: "tel",
|
|
2494
|
-
name: "phoneNumber",
|
|
2495
|
-
value: formData.phoneNumber || "",
|
|
2496
|
-
onChange: handleInputChange,
|
|
2497
|
-
onBlur: handleBlur,
|
|
2498
|
-
className: `${inputBaseClasses} ${formErrors.phoneNumber ? "border-red-500" : ""}`,
|
|
2499
|
-
placeholder: "0901 234 567"
|
|
2500
|
-
}
|
|
2501
|
-
),
|
|
2502
|
-
formErrors.phoneNumber && /* @__PURE__ */ jsxRuntimeExports.jsxs("p", { className: "mt-1 text-sm text-red-500 flex items-center", children: [
|
|
2503
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(CircleAlert, { size: 14, className: "mr-1" }),
|
|
2504
|
-
formErrors.phoneNumber
|
|
2505
|
-
] })
|
|
2506
|
-
] }),
|
|
2507
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
|
|
2508
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("label", { className: labelClasses, children: t("form.fields.companyName") || "Công ty/Tổ chức" }),
|
|
2509
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
2510
|
-
"input",
|
|
2511
|
-
{
|
|
2512
|
-
type: "text",
|
|
2513
|
-
name: "companyName",
|
|
2514
|
-
value: formData.companyName || "",
|
|
2515
|
-
onChange: handleInputChange,
|
|
2516
|
-
onBlur: handleBlur,
|
|
2517
|
-
className: `${inputBaseClasses} ${formErrors.companyName ? "border-red-500" : ""}`,
|
|
2518
|
-
placeholder: "ABC Company"
|
|
2519
|
-
}
|
|
2520
|
-
),
|
|
2521
|
-
formErrors.companyName && /* @__PURE__ */ jsxRuntimeExports.jsxs("p", { className: "mt-1 text-sm text-red-500 flex items-center", children: [
|
|
2522
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(CircleAlert, { size: 14, className: "mr-1" }),
|
|
2523
|
-
formErrors.companyName
|
|
2524
|
-
] })
|
|
2525
|
-
] })
|
|
2526
|
-
] }),
|
|
2527
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "grid md:grid-cols-2 gap-6", children: [
|
|
2528
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
|
|
2529
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("label", { className: labelClasses, children: t("form.fields.jobTitle") || "Chức vụ" }),
|
|
2530
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
2531
|
-
"input",
|
|
2532
|
-
{
|
|
2533
|
-
type: "text",
|
|
2534
|
-
name: "jobTitle",
|
|
2535
|
-
value: formData.jobTitle || "",
|
|
2536
|
-
onChange: handleInputChange,
|
|
2537
|
-
onBlur: handleBlur,
|
|
2538
|
-
className: `${inputBaseClasses} ${formErrors.jobTitle ? "border-red-500" : ""}`,
|
|
2539
|
-
placeholder: "Giám đốc công nghệ"
|
|
2540
|
-
}
|
|
2541
|
-
),
|
|
2542
|
-
formErrors.jobTitle && /* @__PURE__ */ jsxRuntimeExports.jsxs("p", { className: "mt-1 text-sm text-red-500 flex items-center", children: [
|
|
2543
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(CircleAlert, { size: 14, className: "mr-1" }),
|
|
2544
|
-
formErrors.jobTitle
|
|
2545
|
-
] })
|
|
2546
|
-
] }),
|
|
2547
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
|
|
2548
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("label", { className: labelClasses, children: t("form.fields.businessType") || "Loại hình kinh doanh" }),
|
|
2549
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
2550
|
-
"input",
|
|
2551
|
-
{
|
|
2552
|
-
type: "text",
|
|
2553
|
-
name: "businessType",
|
|
2554
|
-
value: formData.businessType || "",
|
|
2555
|
-
onChange: handleInputChange,
|
|
2556
|
-
className: inputBaseClasses,
|
|
2557
|
-
placeholder: "Công nghệ thông tin"
|
|
2558
|
-
}
|
|
2559
|
-
)
|
|
2560
|
-
] })
|
|
2561
|
-
] }),
|
|
2562
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "grid md:grid-cols-2 gap-6", children: [
|
|
2563
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
|
|
2564
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("label", { className: labelClasses, children: t("form.fields.expectedBudget") || "Ngân sách dự kiến" }),
|
|
2565
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
2566
|
-
"input",
|
|
2567
|
-
{
|
|
2568
|
-
type: "text",
|
|
2569
|
-
name: "expectedBudget",
|
|
2570
|
-
value: formData.expectedBudget || "",
|
|
2571
|
-
onChange: handleInputChange,
|
|
2572
|
-
className: inputBaseClasses,
|
|
2573
|
-
placeholder: "500,000,000 - 1,000,000,000 VNĐ"
|
|
2574
|
-
}
|
|
2575
|
-
)
|
|
2576
|
-
] }),
|
|
2577
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
|
|
2578
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("label", { className: labelClasses, children: t("form.fields.expectedTimeline") || "Thời gian dự kiến" }),
|
|
2579
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
2580
|
-
"input",
|
|
2581
|
-
{
|
|
2582
|
-
type: "text",
|
|
2583
|
-
name: "expectedTimeline",
|
|
2584
|
-
value: formData.expectedTimeline || "",
|
|
2585
|
-
onChange: handleInputChange,
|
|
2586
|
-
className: inputBaseClasses,
|
|
2587
|
-
placeholder: "3-6 tháng"
|
|
2588
|
-
}
|
|
2589
|
-
)
|
|
2590
|
-
] })
|
|
2591
|
-
] }),
|
|
2348
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(SectionWrapper, { isDarkMode, children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8", children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "grid lg:grid-cols-3 gap-12", children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "lg:col-span-4", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: `rounded-2xl p-8 shadow-lg border transition-colors duration-200 ${isDarkMode ? "bg-gray-800 border-gray-700" : "bg-white border-slate-200"}`, children: [
|
|
2349
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center mb-6", children: [
|
|
2350
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "w-10 h-10 rounded-lg bg-gradient-to-r from-indigo-500 to-purple-600 flex items-center justify-center mr-4", children: /* @__PURE__ */ jsxRuntimeExports.jsx(Send, { size: 20, className: "text-white" }) }),
|
|
2351
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
|
|
2352
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("h2", { className: `text-2xl font-bold transition-colors duration-200 ${isDarkMode ? "text-white" : "text-slate-800"}`, children: t("form.title") || "Gửi yêu cầu tư vấn" }),
|
|
2353
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: `text-sm transition-colors duration-200 ${isDarkMode ? "text-gray-400" : "text-slate-600"}`, children: t("form.subtitle") || "Điền thông tin để nhận tư vấn miễn phí từ chuyên gia" })
|
|
2354
|
+
] })
|
|
2355
|
+
] }),
|
|
2356
|
+
submitStatus && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: `mb-6 p-4 rounded-xl border transition-colors duration-200 ${submitStatus === "success" ? isDarkMode ? "bg-emerald-900/50 border-emerald-700 text-emerald-300" : "bg-emerald-50 border-emerald-200 text-emerald-800" : isDarkMode ? "bg-red-900/50 border-red-700 text-red-300" : "bg-red-50 border-red-200 text-red-800"}`, children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center", children: [
|
|
2357
|
+
submitStatus === "success" ? /* @__PURE__ */ jsxRuntimeExports.jsx(CircleCheckBig, { size: 20, className: "mr-2 flex-shrink-0" }) : /* @__PURE__ */ jsxRuntimeExports.jsx(CircleAlert, { size: 20, className: "mr-2 flex-shrink-0" }),
|
|
2358
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-sm font-medium", children: submitMessage })
|
|
2359
|
+
] }) }),
|
|
2360
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("form", { onSubmit: handleSubmit, className: "space-y-6", children: [
|
|
2361
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "grid md:grid-cols-2 gap-6", children: [
|
|
2592
2362
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
|
|
2593
2363
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("label", { className: labelClasses, children: [
|
|
2594
|
-
t("form.fields.
|
|
2364
|
+
t("form.fields.fullName") || "Họ và tên",
|
|
2595
2365
|
" *"
|
|
2596
2366
|
] }),
|
|
2597
2367
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
2598
2368
|
"input",
|
|
2599
2369
|
{
|
|
2600
2370
|
type: "text",
|
|
2601
|
-
name: "
|
|
2602
|
-
value: formData.
|
|
2371
|
+
name: "fullName",
|
|
2372
|
+
value: formData.fullName || "",
|
|
2603
2373
|
onChange: handleInputChange,
|
|
2604
2374
|
onBlur: handleBlur,
|
|
2605
|
-
className: `${inputBaseClasses} ${formErrors.
|
|
2606
|
-
placeholder: "
|
|
2375
|
+
className: `${inputBaseClasses} ${formErrors.fullName ? "border-red-500" : ""}`,
|
|
2376
|
+
placeholder: t("contact.form.namePlaceholder"),
|
|
2607
2377
|
required: true
|
|
2608
2378
|
}
|
|
2609
2379
|
),
|
|
2610
|
-
formErrors.
|
|
2380
|
+
formErrors.fullName && /* @__PURE__ */ jsxRuntimeExports.jsxs("p", { className: "mt-1 text-sm text-red-500 flex items-center", children: [
|
|
2611
2381
|
/* @__PURE__ */ jsxRuntimeExports.jsx(CircleAlert, { size: 14, className: "mr-1" }),
|
|
2612
|
-
formErrors.
|
|
2382
|
+
formErrors.fullName
|
|
2613
2383
|
] })
|
|
2614
2384
|
] }),
|
|
2615
2385
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
|
|
2616
2386
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("label", { className: labelClasses, children: [
|
|
2617
|
-
t("form.fields.
|
|
2387
|
+
t("form.fields.workEmail") || "Email",
|
|
2618
2388
|
" *"
|
|
2619
2389
|
] }),
|
|
2620
2390
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
2621
|
-
"
|
|
2391
|
+
"input",
|
|
2622
2392
|
{
|
|
2623
|
-
|
|
2624
|
-
|
|
2393
|
+
type: "email",
|
|
2394
|
+
name: "workEmail",
|
|
2395
|
+
value: formData.workEmail || "",
|
|
2625
2396
|
onChange: handleInputChange,
|
|
2626
2397
|
onBlur: handleBlur,
|
|
2627
|
-
|
|
2628
|
-
|
|
2629
|
-
placeholder: "Vui lòng mô tả chi tiết về nhu cầu của bạn...",
|
|
2398
|
+
className: `${inputBaseClasses} ${formErrors.workEmail ? "border-red-500" : ""}`,
|
|
2399
|
+
placeholder: "email@company.com",
|
|
2630
2400
|
required: true
|
|
2631
2401
|
}
|
|
2632
2402
|
),
|
|
2633
|
-
formErrors.
|
|
2403
|
+
formErrors.workEmail && /* @__PURE__ */ jsxRuntimeExports.jsxs("p", { className: "mt-1 text-sm text-red-500 flex items-center", children: [
|
|
2634
2404
|
/* @__PURE__ */ jsxRuntimeExports.jsx(CircleAlert, { size: 14, className: "mr-1" }),
|
|
2635
|
-
formErrors.
|
|
2405
|
+
formErrors.workEmail
|
|
2636
2406
|
] })
|
|
2637
|
-
] })
|
|
2638
|
-
|
|
2407
|
+
] })
|
|
2408
|
+
] }),
|
|
2409
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "grid md:grid-cols-2 gap-6", children: [
|
|
2410
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
|
|
2411
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("label", { className: labelClasses, children: t("form.fields.phoneNumber") || "Số điện thoại" }),
|
|
2639
2412
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
2640
|
-
"
|
|
2413
|
+
"input",
|
|
2641
2414
|
{
|
|
2642
|
-
type: "
|
|
2643
|
-
|
|
2644
|
-
|
|
2645
|
-
|
|
2646
|
-
|
|
2647
|
-
|
|
2648
|
-
|
|
2649
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(Send, { size: 20, className: "mr-2" }),
|
|
2650
|
-
t("form.submit") || "Gửi yêu cầu"
|
|
2651
|
-
] })
|
|
2415
|
+
type: "tel",
|
|
2416
|
+
name: "phoneNumber",
|
|
2417
|
+
value: formData.phoneNumber || "",
|
|
2418
|
+
onChange: handleInputChange,
|
|
2419
|
+
onBlur: handleBlur,
|
|
2420
|
+
className: `${inputBaseClasses} ${formErrors.phoneNumber ? "border-red-500" : ""}`,
|
|
2421
|
+
placeholder: "0901 234 567"
|
|
2652
2422
|
}
|
|
2653
2423
|
),
|
|
2654
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
2655
|
-
"
|
|
2424
|
+
formErrors.phoneNumber && /* @__PURE__ */ jsxRuntimeExports.jsxs("p", { className: "mt-1 text-sm text-red-500 flex items-center", children: [
|
|
2425
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(CircleAlert, { size: 14, className: "mr-1" }),
|
|
2426
|
+
formErrors.phoneNumber
|
|
2427
|
+
] })
|
|
2428
|
+
] }),
|
|
2429
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
|
|
2430
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("label", { className: labelClasses, children: t("form.fields.companyName") || "Công ty/Tổ chức" }),
|
|
2431
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
2432
|
+
"input",
|
|
2656
2433
|
{
|
|
2657
|
-
type: "
|
|
2658
|
-
|
|
2659
|
-
|
|
2660
|
-
|
|
2661
|
-
|
|
2662
|
-
|
|
2434
|
+
type: "text",
|
|
2435
|
+
name: "companyName",
|
|
2436
|
+
value: formData.companyName || "",
|
|
2437
|
+
onChange: handleInputChange,
|
|
2438
|
+
onBlur: handleBlur,
|
|
2439
|
+
className: `${inputBaseClasses} ${formErrors.companyName ? "border-red-500" : ""}`,
|
|
2440
|
+
placeholder: t("contact.form.fields.company")
|
|
2663
2441
|
}
|
|
2664
|
-
)
|
|
2665
|
-
|
|
2666
|
-
|
|
2667
|
-
|
|
2668
|
-
|
|
2442
|
+
),
|
|
2443
|
+
formErrors.companyName && /* @__PURE__ */ jsxRuntimeExports.jsxs("p", { className: "mt-1 text-sm text-red-500 flex items-center", children: [
|
|
2444
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(CircleAlert, { size: 14, className: "mr-1" }),
|
|
2445
|
+
formErrors.companyName
|
|
2446
|
+
] })
|
|
2669
2447
|
] })
|
|
2670
|
-
] })
|
|
2671
|
-
|
|
2672
|
-
|
|
2673
|
-
|
|
2674
|
-
|
|
2675
|
-
|
|
2676
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "space-y-3", children: [
|
|
2677
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
2678
|
-
"a",
|
|
2448
|
+
] }),
|
|
2449
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "grid md:grid-cols-2 gap-6", children: [
|
|
2450
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
|
|
2451
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("label", { className: labelClasses, children: t("form.fields.jobTitle") || "Chức vụ" }),
|
|
2452
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
2453
|
+
"input",
|
|
2679
2454
|
{
|
|
2680
|
-
|
|
2681
|
-
|
|
2682
|
-
|
|
2683
|
-
|
|
2684
|
-
|
|
2685
|
-
|
|
2455
|
+
type: "text",
|
|
2456
|
+
name: "jobTitle",
|
|
2457
|
+
value: formData.jobTitle || "",
|
|
2458
|
+
onChange: handleInputChange,
|
|
2459
|
+
onBlur: handleBlur,
|
|
2460
|
+
className: `${inputBaseClasses} ${formErrors.jobTitle ? "border-red-500" : ""}`,
|
|
2461
|
+
placeholder: t("contact.form.positionPlaceholder")
|
|
2686
2462
|
}
|
|
2687
2463
|
),
|
|
2688
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs("
|
|
2689
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
2690
|
-
|
|
2464
|
+
formErrors.jobTitle && /* @__PURE__ */ jsxRuntimeExports.jsxs("p", { className: "mt-1 text-sm text-red-500 flex items-center", children: [
|
|
2465
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(CircleAlert, { size: 14, className: "mr-1" }),
|
|
2466
|
+
formErrors.jobTitle
|
|
2691
2467
|
] })
|
|
2468
|
+
] }),
|
|
2469
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
|
|
2470
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("label", { className: labelClasses, children: t("form.fields.businessType") || "Loại hình kinh doanh" }),
|
|
2471
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
2472
|
+
"input",
|
|
2473
|
+
{
|
|
2474
|
+
type: "text",
|
|
2475
|
+
name: "businessType",
|
|
2476
|
+
value: formData.businessType || "",
|
|
2477
|
+
onChange: handleInputChange,
|
|
2478
|
+
className: inputBaseClasses,
|
|
2479
|
+
placeholder: "Công nghệ thông tin"
|
|
2480
|
+
}
|
|
2481
|
+
)
|
|
2692
2482
|
] })
|
|
2693
2483
|
] }),
|
|
2694
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className:
|
|
2695
|
-
/* @__PURE__ */ jsxRuntimeExports.
|
|
2696
|
-
|
|
2697
|
-
/* @__PURE__ */ jsxRuntimeExports.
|
|
2698
|
-
|
|
2699
|
-
|
|
2700
|
-
|
|
2701
|
-
|
|
2702
|
-
|
|
2703
|
-
|
|
2704
|
-
|
|
2705
|
-
|
|
2706
|
-
|
|
2707
|
-
|
|
2708
|
-
|
|
2709
|
-
|
|
2710
|
-
|
|
2711
|
-
/* @__PURE__ */ jsxRuntimeExports.
|
|
2712
|
-
|
|
2713
|
-
|
|
2714
|
-
|
|
2715
|
-
|
|
2716
|
-
|
|
2717
|
-
|
|
2484
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "grid md:grid-cols-2 gap-6", children: [
|
|
2485
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
|
|
2486
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("label", { className: labelClasses, children: t("form.fields.expectedBudget") || "Ngân sách dự kiến" }),
|
|
2487
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
2488
|
+
"input",
|
|
2489
|
+
{
|
|
2490
|
+
type: "text",
|
|
2491
|
+
name: "expectedBudget",
|
|
2492
|
+
value: formData.expectedBudget || "",
|
|
2493
|
+
onChange: handleInputChange,
|
|
2494
|
+
className: inputBaseClasses,
|
|
2495
|
+
placeholder: t("form.fields.expectedBudget")
|
|
2496
|
+
}
|
|
2497
|
+
)
|
|
2498
|
+
] }),
|
|
2499
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
|
|
2500
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("label", { className: labelClasses, children: t("form.fields.expectedTimeline") || "Thời gian dự kiến" }),
|
|
2501
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
2502
|
+
"input",
|
|
2503
|
+
{
|
|
2504
|
+
type: "text",
|
|
2505
|
+
name: "expectedTimeline",
|
|
2506
|
+
value: formData.expectedTimeline || "",
|
|
2507
|
+
onChange: handleInputChange,
|
|
2508
|
+
className: inputBaseClasses,
|
|
2509
|
+
placeholder: t("form.fields.expectedTimeline")
|
|
2510
|
+
}
|
|
2511
|
+
)
|
|
2718
2512
|
] })
|
|
2719
2513
|
] }),
|
|
2720
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", {
|
|
2721
|
-
/* @__PURE__ */ jsxRuntimeExports.
|
|
2722
|
-
|
|
2723
|
-
|
|
2724
|
-
|
|
2725
|
-
|
|
2726
|
-
|
|
2727
|
-
|
|
2728
|
-
|
|
2729
|
-
|
|
2730
|
-
|
|
2514
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
|
|
2515
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("label", { className: labelClasses, children: [
|
|
2516
|
+
t("form.fields.requestTitle") || "Tiêu đề yêu cầu",
|
|
2517
|
+
" *"
|
|
2518
|
+
] }),
|
|
2519
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
2520
|
+
"input",
|
|
2521
|
+
{
|
|
2522
|
+
type: "text",
|
|
2523
|
+
name: "requestTitle",
|
|
2524
|
+
value: formData.requestTitle || "",
|
|
2525
|
+
onChange: handleInputChange,
|
|
2526
|
+
onBlur: handleBlur,
|
|
2527
|
+
className: `${inputBaseClasses} ${formErrors.requestTitle ? "border-red-500" : ""}`,
|
|
2528
|
+
placeholder: t("contact.form.placeholders.subject"),
|
|
2529
|
+
required: true
|
|
2530
|
+
}
|
|
2531
|
+
),
|
|
2532
|
+
formErrors.requestTitle && /* @__PURE__ */ jsxRuntimeExports.jsxs("p", { className: "mt-1 text-sm text-red-500 flex items-center", children: [
|
|
2533
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(CircleAlert, { size: 14, className: "mr-1" }),
|
|
2534
|
+
formErrors.requestTitle
|
|
2731
2535
|
] })
|
|
2536
|
+
] }),
|
|
2537
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
|
|
2538
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("label", { className: labelClasses, children: [
|
|
2539
|
+
t("form.fields.requestDescription") || "Mô tả yêu cầu",
|
|
2540
|
+
" *"
|
|
2541
|
+
] }),
|
|
2542
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
2543
|
+
"textarea",
|
|
2544
|
+
{
|
|
2545
|
+
name: "requestDescription",
|
|
2546
|
+
value: formData.requestDescription || "",
|
|
2547
|
+
onChange: handleInputChange,
|
|
2548
|
+
onBlur: handleBlur,
|
|
2549
|
+
rows: "5",
|
|
2550
|
+
className: `${inputBaseClasses} resize-none ${formErrors.requestDescription ? "border-red-500" : ""}`,
|
|
2551
|
+
placeholder: t("contact.form.placeholders.message"),
|
|
2552
|
+
required: true
|
|
2553
|
+
}
|
|
2554
|
+
),
|
|
2555
|
+
formErrors.requestDescription && /* @__PURE__ */ jsxRuntimeExports.jsxs("p", { className: "mt-1 text-sm text-red-500 flex items-center", children: [
|
|
2556
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(CircleAlert, { size: 14, className: "mr-1" }),
|
|
2557
|
+
formErrors.requestDescription
|
|
2558
|
+
] })
|
|
2559
|
+
] }),
|
|
2560
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center space-x-4", children: [
|
|
2561
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
2562
|
+
"button",
|
|
2563
|
+
{
|
|
2564
|
+
type: "submit",
|
|
2565
|
+
disabled: isSubmitting,
|
|
2566
|
+
className: "flex-1 bg-gradient-to-r from-indigo-600 to-purple-600 text-white py-4 px-6 rounded-xl hover:from-indigo-700 hover:to-purple-700 transition-all transform hover:scale-105 disabled:opacity-50 disabled:cursor-not-allowed disabled:transform-none flex items-center justify-center font-semibold shadow-lg",
|
|
2567
|
+
children: isSubmitting ? /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
|
|
2568
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(LoaderCircle, { className: "animate-spin h-5 w-5 mr-2" }),
|
|
2569
|
+
t("form.submitting") || "Đang gửi..."
|
|
2570
|
+
] }) : /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
|
|
2571
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Send, { size: 20, className: "mr-2" }),
|
|
2572
|
+
t("form.submit") || "Gửi yêu cầu"
|
|
2573
|
+
] })
|
|
2574
|
+
}
|
|
2575
|
+
),
|
|
2576
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
2577
|
+
"button",
|
|
2578
|
+
{
|
|
2579
|
+
type: "button",
|
|
2580
|
+
className: `px-6 py-4 rounded-xl border-2 font-semibold transition-all hover:scale-105 ${isDarkMode ? "border-gray-600 text-gray-300 hover:bg-gray-700" : "border-slate-300 text-slate-700 hover:bg-slate-50"}`,
|
|
2581
|
+
children: [
|
|
2582
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Phone, { size: 20, className: "inline mr-2" }),
|
|
2583
|
+
t("form.callNow") || "Gọi ngay"
|
|
2584
|
+
]
|
|
2585
|
+
}
|
|
2586
|
+
)
|
|
2587
|
+
] }),
|
|
2588
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: `flex items-center space-x-2 text-sm transition-colors duration-200 ${isDarkMode ? "text-gray-400" : "text-slate-600"}`, children: [
|
|
2589
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(CircleCheckBig, { size: 16, className: "text-emerald-500" }),
|
|
2590
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: t("form.privacy") || "Cam kết bảo mật thông tin và phản hồi trong 24 giờ" })
|
|
2732
2591
|
] })
|
|
2733
2592
|
] })
|
|
2734
|
-
] }) }) });
|
|
2593
|
+
] }) }) }) }) });
|
|
2735
2594
|
};
|
|
2736
2595
|
const ContactInfoSection = ({ data, t, isDarkMode, section }) => {
|
|
2737
2596
|
var _a, _b;
|
|
@@ -4289,7 +4148,7 @@ var __async = (__this, __arguments, generator) => {
|
|
|
4289
4148
|
}
|
|
4290
4149
|
);
|
|
4291
4150
|
};
|
|
4292
|
-
const FaqSection = ({ data, t, isDarkMode }) => {
|
|
4151
|
+
const FaqSection = ({ data, t, isDarkMode, section }) => {
|
|
4293
4152
|
const [activeIndex, setActiveIndex] = require$$0.useState(-1);
|
|
4294
4153
|
const faqs = require$$0.useMemo(() => {
|
|
4295
4154
|
if ((data == null ? void 0 : data.sectionDataBindingItems) && Array.isArray(data.sectionDataBindingItems)) {
|
|
@@ -4300,6 +4159,7 @@ var __async = (__this, __arguments, generator) => {
|
|
|
4300
4159
|
const toggleFaq = (index2) => {
|
|
4301
4160
|
setActiveIndex(activeIndex === index2 ? -1 : index2);
|
|
4302
4161
|
};
|
|
4162
|
+
const sectionTitle = (section == null ? void 0 : section.title) || "...";
|
|
4303
4163
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs(SectionWrapper, { isDarkMode, children: [
|
|
4304
4164
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "max-w-4xl mx-auto", children: [
|
|
4305
4165
|
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex justify-center mb-6 animate-fade-in", children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: `
|
|
@@ -4316,7 +4176,7 @@ var __async = (__this, __arguments, generator) => {
|
|
|
4316
4176
|
}
|
|
4317
4177
|
) }) }),
|
|
4318
4178
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "text-center mb-12 animate-fade-in", children: [
|
|
4319
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("h2", { className: `text-4xl font-bold mb-3 ${isDarkMode ? "text-white" : "text-gray-900"}`, children:
|
|
4179
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("h2", { className: `text-4xl font-bold mb-3 ${isDarkMode ? "text-white" : "text-gray-900"}`, children: sectionTitle }),
|
|
4320
4180
|
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: `h-1 w-20 mx-auto rounded-full ${isDarkMode ? "bg-gradient-to-r from-blue-500 to-purple-500" : "bg-gradient-to-r from-blue-600 to-indigo-600"}` })
|
|
4321
4181
|
] }),
|
|
4322
4182
|
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "space-y-4", children: faqs.map((faq, index2) => /* @__PURE__ */ jsxRuntimeExports.jsx(
|