nvis-fe-cms-libs 1.1.26 → 1.1.27
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.
|
@@ -697,7 +697,45 @@ const TimelineSection = ({ data, t, isDarkMode, section }) => {
|
|
|
697
697
|
] }) });
|
|
698
698
|
}
|
|
699
699
|
return /* @__PURE__ */ jsxRuntimeExports.jsx("section", { className: `py-20 ${isDarkMode ? "bg-gray-800" : "bg-white"}`, children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8", children: [
|
|
700
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "text-center mb-12", children: /* @__PURE__ */ jsxRuntimeExports.
|
|
700
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "text-center mb-12", children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
701
|
+
"div",
|
|
702
|
+
{
|
|
703
|
+
className: `relative inline-block px-4 py-2 rounded-full text-lg font-semibold mb-4 border transition-all duration-300 transform hover:scale-105 shadow-md hover:shadow-lg overflow-hidden ${isDarkMode ? "bg-gradient-to-br from-slate-900 via-blue-900 to-indigo-900 text-emerald-300 border-blue-800" : "bg-white text-emerald-800 border-gray-200"}`,
|
|
704
|
+
children: [
|
|
705
|
+
"📈 ",
|
|
706
|
+
sectionTitle,
|
|
707
|
+
isDarkMode && /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
|
|
708
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
709
|
+
"div",
|
|
710
|
+
{
|
|
711
|
+
className: "absolute w-12 h-12 bg-white/5 rounded-full",
|
|
712
|
+
style: { left: "10%", top: "20%" }
|
|
713
|
+
}
|
|
714
|
+
),
|
|
715
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
716
|
+
"div",
|
|
717
|
+
{
|
|
718
|
+
className: "absolute w-10 h-10 bg-white/5 rounded-full",
|
|
719
|
+
style: { right: "30%", bottom: "10%" }
|
|
720
|
+
}
|
|
721
|
+
),
|
|
722
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
723
|
+
"div",
|
|
724
|
+
{
|
|
725
|
+
className: "absolute w-14 h-14 bg-white/5 rounded-md",
|
|
726
|
+
style: { left: "20%", bottom: "30%" }
|
|
727
|
+
}
|
|
728
|
+
),
|
|
729
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
730
|
+
"div",
|
|
731
|
+
{
|
|
732
|
+
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'
|
|
733
|
+
}
|
|
734
|
+
)
|
|
735
|
+
] })
|
|
736
|
+
]
|
|
737
|
+
}
|
|
738
|
+
) }),
|
|
701
739
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "relative", children: [
|
|
702
740
|
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "absolute left-1/2 transform -translate-x-1/2 w-1 h-full bg-gradient-to-b from-blue-500 to-purple-600 rounded-full" }),
|
|
703
741
|
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "space-y-8", children: timelineData.map((milestone, index2) => /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
@@ -1022,11 +1060,12 @@ const PartnersSection = ({ data, t, isDarkMode, imageBaseUrl = "" }) => {
|
|
|
1022
1060
|
}
|
|
1023
1061
|
);
|
|
1024
1062
|
};
|
|
1025
|
-
const MilestoneSection = ({ data, t, isDarkMode, getMilestoneTimeline }) => {
|
|
1063
|
+
const MilestoneSection = ({ data, t, isDarkMode, getMilestoneTimeline, section }) => {
|
|
1026
1064
|
const [milestones, setMilestones] = useState([]);
|
|
1027
1065
|
const [loading, setLoading] = useState(true);
|
|
1028
1066
|
const [timelineVisible, setTimelineVisible] = useState([]);
|
|
1029
1067
|
const timelineRefs = useRef([]);
|
|
1068
|
+
const sectionTitle = (section == null ? void 0 : section.title) || "...";
|
|
1030
1069
|
useEffect(() => {
|
|
1031
1070
|
const fetchMilestones = () => __async(null, null, function* () {
|
|
1032
1071
|
var _a, _b;
|
|
@@ -1113,28 +1152,16 @@ const MilestoneSection = ({ data, t, isDarkMode, getMilestoneTimeline }) => {
|
|
|
1113
1152
|
{
|
|
1114
1153
|
className: `py-20 ${isDarkMode ? "bg-gray-800" : "bg-white"}`,
|
|
1115
1154
|
children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8", children: [
|
|
1116
|
-
/* @__PURE__ */ jsxRuntimeExports.
|
|
1117
|
-
|
|
1118
|
-
|
|
1119
|
-
{
|
|
1120
|
-
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
|
|
1124
|
-
|
|
1125
|
-
|
|
1126
|
-
),
|
|
1127
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
1128
|
-
"h2",
|
|
1129
|
-
{
|
|
1130
|
-
className: `text-3xl lg:text-4xl font-bold mb-4 ${isDarkMode ? "text-white" : "text-gray-900"}`,
|
|
1131
|
-
children: [
|
|
1132
|
-
t("milestone.header.title"),
|
|
1133
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "block bg-gradient-to-r from-emerald-600 to-teal-600 bg-clip-text text-transparent", children: t("milestone.header.subtitle") })
|
|
1134
|
-
]
|
|
1135
|
-
}
|
|
1136
|
-
)
|
|
1137
|
-
] }),
|
|
1155
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "text-center mb-12", children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
1156
|
+
"div",
|
|
1157
|
+
{
|
|
1158
|
+
className: `relative inline-block px-4 py-2 rounded-full text-lg font-semibold mb-4 border transition-all duration-300 transform hover:scale-105 shadow-md hover:shadow-lg overflow-hidden ${isDarkMode ? "bg-gradient-to-br from-slate-900 via-blue-900 to-indigo-900 text-emerald-300 border-blue-800" : "bg-white text-emerald-800 border-gray-200"}`,
|
|
1159
|
+
children: [
|
|
1160
|
+
"📈 ",
|
|
1161
|
+
sectionTitle
|
|
1162
|
+
]
|
|
1163
|
+
}
|
|
1164
|
+
) }),
|
|
1138
1165
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "relative", children: [
|
|
1139
1166
|
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "absolute left-1/2 transform -translate-x-1/2 w-1 h-full bg-gradient-to-b from-blue-500 to-purple-600 rounded-full" }),
|
|
1140
1167
|
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "space-y-8", children: milestones.map((milestone, index2) => /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
@@ -1183,9 +1210,10 @@ const MilestoneSection = ({ data, t, isDarkMode, getMilestoneTimeline }) => {
|
|
|
1183
1210
|
}
|
|
1184
1211
|
);
|
|
1185
1212
|
};
|
|
1186
|
-
const TestimonialsSection = ({ data, t, isDarkMode }) => {
|
|
1213
|
+
const TestimonialsSection = ({ data, t, isDarkMode, section }) => {
|
|
1187
1214
|
var _a;
|
|
1188
1215
|
const [currentIndex, setCurrentIndex] = useState(0);
|
|
1216
|
+
const sectionTitle = (section == null ? void 0 : section.title) || "...";
|
|
1189
1217
|
const testimonials = ((_a = data == null ? void 0 : data.sectionDataBindingItems) == null ? void 0 : _a.filter((item) => item == null ? void 0 : item.data).map((item) => {
|
|
1190
1218
|
var _a2, _b, _c, _d;
|
|
1191
1219
|
return {
|
|
@@ -1232,20 +1260,10 @@ const TestimonialsSection = ({ data, t, isDarkMode }) => {
|
|
|
1232
1260
|
/* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
1233
1261
|
"div",
|
|
1234
1262
|
{
|
|
1235
|
-
className: `inline-block px-4 py-2 rounded-full text-
|
|
1263
|
+
className: `inline-block px-4 py-2 rounded-full text-lg font-semibold mb-4 ${isDarkMode ? "bg-indigo-900/50 text-indigo-300 border border-indigo-800" : "bg-indigo-100 text-indigo-800"}`,
|
|
1236
1264
|
children: [
|
|
1237
1265
|
"💬 ",
|
|
1238
|
-
|
|
1239
|
-
]
|
|
1240
|
-
}
|
|
1241
|
-
),
|
|
1242
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
1243
|
-
"h2",
|
|
1244
|
-
{
|
|
1245
|
-
className: `text-3xl lg:text-4xl font-bold mb-8 transition-colors duration-200 ${isDarkMode ? "text-white" : "text-gray-900"}`,
|
|
1246
|
-
children: [
|
|
1247
|
-
t("testimonials.header.title"),
|
|
1248
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "block bg-gradient-to-r from-indigo-600 to-purple-600 bg-clip-text text-transparent", children: t("testimonials.header.subtitle") })
|
|
1266
|
+
sectionTitle
|
|
1249
1267
|
]
|
|
1250
1268
|
}
|
|
1251
1269
|
),
|
|
@@ -2672,22 +2690,16 @@ const ContactFormSection = ({ data, t, isDarkMode, consultationRequestService })
|
|
|
2672
2690
|
] })
|
|
2673
2691
|
] }) }) });
|
|
2674
2692
|
};
|
|
2675
|
-
const ContactInfoSection = ({ data, t, isDarkMode }) => {
|
|
2693
|
+
const ContactInfoSection = ({ data, t, isDarkMode, section }) => {
|
|
2676
2694
|
var _a, _b;
|
|
2677
2695
|
const contactData = ((_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)) || [];
|
|
2696
|
+
const sectionTitle = (section == null ? void 0 : section.title) || "...";
|
|
2678
2697
|
if (!contactData.length) return null;
|
|
2679
2698
|
return /* @__PURE__ */ jsxRuntimeExports.jsx("section", { className: `py-16 ${isDarkMode ? "bg-gray-900" : "bg-slate-50"}`, children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8", children: [
|
|
2680
|
-
/* @__PURE__ */ jsxRuntimeExports.
|
|
2681
|
-
/* @__PURE__ */ jsxRuntimeExports.
|
|
2682
|
-
|
|
2683
|
-
|
|
2684
|
-
] }),
|
|
2685
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs("h2", { className: `text-3xl lg:text-4xl font-bold mb-4 ${isDarkMode ? "text-white" : "text-slate-800"}`, children: [
|
|
2686
|
-
t("contact.team.title") || "Liên hệ với đội ngũ",
|
|
2687
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "block bg-gradient-to-r from-indigo-600 to-purple-600 bg-clip-text text-transparent", children: t("contact.team.subtitle") || "chuyên nghiệp của chúng tôi" })
|
|
2688
|
-
] }),
|
|
2689
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: `text-lg max-w-3xl mx-auto ${isDarkMode ? "text-gray-300" : "text-slate-600"}`, children: t("contact.team.description") || "Chúng tôi luôn sẵn sàng hỗ trợ bạn với đội ngũ chuyên nghiệp và giàu kinh nghiệm" })
|
|
2690
|
-
] }),
|
|
2699
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "text-center mb-12", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: `inline-flex items-center px-4 py-2 rounded-full text-lg font-semibold mb-4 ${isDarkMode ? "bg-indigo-900/50 text-indigo-300" : "bg-indigo-50 text-indigo-700"}`, children: [
|
|
2700
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(User, { size: 22, className: "mr-2" }),
|
|
2701
|
+
sectionTitle
|
|
2702
|
+
] }) }),
|
|
2691
2703
|
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "grid md:grid-cols-2 lg:grid-cols-3 gap-8", children: contactData.map((contact, index2) => {
|
|
2692
2704
|
var _a2;
|
|
2693
2705
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
@@ -2745,10 +2757,11 @@ const ContactInfoSection = ({ data, t, isDarkMode }) => {
|
|
|
2745
2757
|
}) })
|
|
2746
2758
|
] }) });
|
|
2747
2759
|
};
|
|
2748
|
-
const ContactListAutoSection = ({ data, t, isDarkMode, getContactList }) => {
|
|
2760
|
+
const ContactListAutoSection = ({ data, t, isDarkMode, getContactList, section }) => {
|
|
2749
2761
|
const [contacts, setContacts] = useState([]);
|
|
2750
2762
|
const [loading, setLoading] = useState(true);
|
|
2751
2763
|
const [error, setError] = useState(null);
|
|
2764
|
+
const sectionTitle = (section == null ? void 0 : section.title) || "...";
|
|
2752
2765
|
useEffect(() => {
|
|
2753
2766
|
loadContacts();
|
|
2754
2767
|
}, []);
|
|
@@ -2791,10 +2804,7 @@ const ContactListAutoSection = ({ data, t, isDarkMode, getContactList }) => {
|
|
|
2791
2804
|
] });
|
|
2792
2805
|
}
|
|
2793
2806
|
return /* @__PURE__ */ jsxRuntimeExports.jsx("section", { className: `py-20 ${isDarkMode ? "bg-gray-900" : "bg-gray-50"} transition-colors duration-300`, children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "max-w-6xl mx-auto px-5", children: [
|
|
2794
|
-
/* @__PURE__ */ jsxRuntimeExports.
|
|
2795
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("h2", { className: `text-4xl font-bold ${isDarkMode ? "text-white" : "text-gray-900"} mb-4`, children: t("contactList.header.title") || "Thông Tin Liên Hệ" }),
|
|
2796
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: `text-lg ${isDarkMode ? "text-gray-400" : "text-gray-600"} max-w-2xl mx-auto`, children: t("contactList.header.description") || "Đội ngũ chuyên nghiệp của chúng tôi luôn sẵn sàng hỗ trợ bạn" })
|
|
2797
|
-
] }),
|
|
2807
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "text-center mb-16", children: /* @__PURE__ */ jsxRuntimeExports.jsx("h2", { className: `text-4xl font-bold ${isDarkMode ? "text-white" : "text-gray-900"} mb-4`, children: sectionTitle }) }),
|
|
2798
2808
|
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8 mt-10", children: contacts.map((contact, index2) => /* @__PURE__ */ jsxRuntimeExports.jsx(ContactCard, { contact, t, isDarkMode }, contact.id || index2)) })
|
|
2799
2809
|
] }) });
|
|
2800
2810
|
};
|
|
@@ -2856,9 +2866,10 @@ const ContactInfo = ({ icon, label, value, href, isDarkMode }) => {
|
|
|
2856
2866
|
}
|
|
2857
2867
|
return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "-mx-2 px-2", children: content });
|
|
2858
2868
|
};
|
|
2859
|
-
const CustomerFeedbackAutoSection = ({ data, t, isDarkMode, loadCustomerFeedback }) => {
|
|
2869
|
+
const CustomerFeedbackAutoSection = ({ data, t, isDarkMode, loadCustomerFeedback, section }) => {
|
|
2860
2870
|
const [feedbacks, setFeedbacks] = useState([]);
|
|
2861
2871
|
const [currentIndex, setCurrentIndex] = useState(0);
|
|
2872
|
+
const sectionTitle = (section == null ? void 0 : section.title) || "...";
|
|
2862
2873
|
useEffect(() => {
|
|
2863
2874
|
const fetchData = () => __async(null, null, function* () {
|
|
2864
2875
|
const res = yield loadCustomerFeedback();
|
|
@@ -2941,20 +2952,10 @@ const CustomerFeedbackAutoSection = ({ data, t, isDarkMode, loadCustomerFeedback
|
|
|
2941
2952
|
/* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
2942
2953
|
"div",
|
|
2943
2954
|
{
|
|
2944
|
-
className: `inline-block px-4 py-2 rounded-full text-
|
|
2955
|
+
className: `inline-block px-4 py-2 rounded-full text-lg font-semibold mb-4 ${isDarkMode ? "bg-indigo-900/50 text-indigo-300 border border-indigo-800" : "bg-indigo-100 text-indigo-800"}`,
|
|
2945
2956
|
children: [
|
|
2946
2957
|
"💬 ",
|
|
2947
|
-
|
|
2948
|
-
]
|
|
2949
|
-
}
|
|
2950
|
-
),
|
|
2951
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
2952
|
-
"h2",
|
|
2953
|
-
{
|
|
2954
|
-
className: `text-3xl lg:text-4xl font-bold mb-8 transition-colors duration-200 ${isDarkMode ? "text-white" : "text-gray-900"}`,
|
|
2955
|
-
children: [
|
|
2956
|
-
t("customerFeedback.titlelanding") || "Khách hàng nói gì",
|
|
2957
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "block bg-gradient-to-r from-indigo-600 to-purple-600 bg-clip-text text-transparent", children: t("customerFeedback.subtitle") || "về chúng tôi" })
|
|
2958
|
+
sectionTitle
|
|
2958
2959
|
]
|
|
2959
2960
|
}
|
|
2960
2961
|
),
|