nvis-fe-cms-libs 1.1.25 → 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.
@@ -700,12 +700,14 @@ var __async = (__this, __arguments, generator) => {
700
700
  ] }) });
701
701
  }
702
702
  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: [
703
- /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "text-center mb-12", children: [
704
- /* @__PURE__ */ jsxRuntimeExports.jsx(
705
- "div",
706
- {
707
- className: `relative inline-block px-4 py-2 rounded-full text-sm 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"}`,
708
- children: isDarkMode && /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
703
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "text-center mb-12", children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
704
+ "div",
705
+ {
706
+ 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"}`,
707
+ children: [
708
+ "📈 ",
709
+ sectionTitle,
710
+ isDarkMode && /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
709
711
  /* @__PURE__ */ jsxRuntimeExports.jsx(
710
712
  "div",
711
713
  {
@@ -734,19 +736,9 @@ var __async = (__this, __arguments, generator) => {
734
736
  }
735
737
  )
736
738
  ] })
737
- }
738
- ),
739
- /* @__PURE__ */ jsxRuntimeExports.jsx(
740
- "h2",
741
- {
742
- className: `text-3xl lg:text-4xl font-bold mb-4 ${isDarkMode ? "text-white" : "text-gray-900"}`,
743
- children: /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "block bg-gradient-to-r from-emerald-600 to-teal-600 bg-clip-text text-transparent", children: [
744
- "📈 ",
745
- sectionTitle
746
- ] })
747
- }
748
- )
749
- ] }),
739
+ ]
740
+ }
741
+ ) }),
750
742
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "relative", children: [
751
743
  /* @__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" }),
752
744
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "space-y-8", children: timelineData.map((milestone, index2) => /* @__PURE__ */ jsxRuntimeExports.jsxs(
@@ -1071,11 +1063,12 @@ var __async = (__this, __arguments, generator) => {
1071
1063
  }
1072
1064
  );
1073
1065
  };
1074
- const MilestoneSection = ({ data, t, isDarkMode, getMilestoneTimeline }) => {
1066
+ const MilestoneSection = ({ data, t, isDarkMode, getMilestoneTimeline, section }) => {
1075
1067
  const [milestones, setMilestones] = require$$0.useState([]);
1076
1068
  const [loading, setLoading] = require$$0.useState(true);
1077
1069
  const [timelineVisible, setTimelineVisible] = require$$0.useState([]);
1078
1070
  const timelineRefs = require$$0.useRef([]);
1071
+ const sectionTitle = (section == null ? void 0 : section.title) || "...";
1079
1072
  require$$0.useEffect(() => {
1080
1073
  const fetchMilestones = () => __async(null, null, function* () {
1081
1074
  var _a, _b;
@@ -1162,28 +1155,16 @@ var __async = (__this, __arguments, generator) => {
1162
1155
  {
1163
1156
  className: `py-20 ${isDarkMode ? "bg-gray-800" : "bg-white"}`,
1164
1157
  children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8", children: [
1165
- /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "text-center mb-12", children: [
1166
- /* @__PURE__ */ jsxRuntimeExports.jsxs(
1167
- "div",
1168
- {
1169
- className: `relative inline-block px-4 py-2 rounded-full text-sm 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"}`,
1170
- children: [
1171
- "📈 ",
1172
- t("milestone.header.badge")
1173
- ]
1174
- }
1175
- ),
1176
- /* @__PURE__ */ jsxRuntimeExports.jsxs(
1177
- "h2",
1178
- {
1179
- className: `text-3xl lg:text-4xl font-bold mb-4 ${isDarkMode ? "text-white" : "text-gray-900"}`,
1180
- children: [
1181
- t("milestone.header.title"),
1182
- /* @__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") })
1183
- ]
1184
- }
1185
- )
1186
- ] }),
1158
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "text-center mb-12", children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
1159
+ "div",
1160
+ {
1161
+ 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"}`,
1162
+ children: [
1163
+ "📈 ",
1164
+ sectionTitle
1165
+ ]
1166
+ }
1167
+ ) }),
1187
1168
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "relative", children: [
1188
1169
  /* @__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" }),
1189
1170
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "space-y-8", children: milestones.map((milestone, index2) => /* @__PURE__ */ jsxRuntimeExports.jsxs(
@@ -1232,9 +1213,10 @@ var __async = (__this, __arguments, generator) => {
1232
1213
  }
1233
1214
  );
1234
1215
  };
1235
- const TestimonialsSection = ({ data, t, isDarkMode }) => {
1216
+ const TestimonialsSection = ({ data, t, isDarkMode, section }) => {
1236
1217
  var _a;
1237
1218
  const [currentIndex, setCurrentIndex] = require$$0.useState(0);
1219
+ const sectionTitle = (section == null ? void 0 : section.title) || "...";
1238
1220
  const testimonials = ((_a = data == null ? void 0 : data.sectionDataBindingItems) == null ? void 0 : _a.filter((item) => item == null ? void 0 : item.data).map((item) => {
1239
1221
  var _a2, _b, _c, _d;
1240
1222
  return {
@@ -1281,20 +1263,10 @@ var __async = (__this, __arguments, generator) => {
1281
1263
  /* @__PURE__ */ jsxRuntimeExports.jsxs(
1282
1264
  "div",
1283
1265
  {
1284
- className: `inline-block px-4 py-2 rounded-full text-sm font-semibold mb-4 ${isDarkMode ? "bg-indigo-900/50 text-indigo-300 border border-indigo-800" : "bg-indigo-100 text-indigo-800"}`,
1266
+ 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"}`,
1285
1267
  children: [
1286
1268
  "💬 ",
1287
- t("testimonials.header.badge")
1288
- ]
1289
- }
1290
- ),
1291
- /* @__PURE__ */ jsxRuntimeExports.jsxs(
1292
- "h2",
1293
- {
1294
- className: `text-3xl lg:text-4xl font-bold mb-8 transition-colors duration-200 ${isDarkMode ? "text-white" : "text-gray-900"}`,
1295
- children: [
1296
- t("testimonials.header.title"),
1297
- /* @__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") })
1269
+ sectionTitle
1298
1270
  ]
1299
1271
  }
1300
1272
  ),
@@ -2721,22 +2693,16 @@ var __async = (__this, __arguments, generator) => {
2721
2693
  ] })
2722
2694
  ] }) }) });
2723
2695
  };
2724
- const ContactInfoSection = ({ data, t, isDarkMode }) => {
2696
+ const ContactInfoSection = ({ data, t, isDarkMode, section }) => {
2725
2697
  var _a, _b;
2726
2698
  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)) || [];
2699
+ const sectionTitle = (section == null ? void 0 : section.title) || "...";
2727
2700
  if (!contactData.length) return null;
2728
2701
  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: [
2729
- /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "text-center mb-12", children: [
2730
- /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: `inline-flex items-center px-4 py-2 rounded-full text-sm font-semibold mb-4 ${isDarkMode ? "bg-indigo-900/50 text-indigo-300" : "bg-indigo-50 text-indigo-700"}`, children: [
2731
- /* @__PURE__ */ jsxRuntimeExports.jsx(User, { size: 16, className: "mr-2" }),
2732
- t("contact.team.badge") || "Đội ngũ hỗ trợ"
2733
- ] }),
2734
- /* @__PURE__ */ jsxRuntimeExports.jsxs("h2", { className: `text-3xl lg:text-4xl font-bold mb-4 ${isDarkMode ? "text-white" : "text-slate-800"}`, children: [
2735
- t("contact.team.title") || "Liên hệ với đội ngũ",
2736
- /* @__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" })
2737
- ] }),
2738
- /* @__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" })
2739
- ] }),
2702
+ /* @__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: [
2703
+ /* @__PURE__ */ jsxRuntimeExports.jsx(User, { size: 22, className: "mr-2" }),
2704
+ sectionTitle
2705
+ ] }) }),
2740
2706
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "grid md:grid-cols-2 lg:grid-cols-3 gap-8", children: contactData.map((contact, index2) => {
2741
2707
  var _a2;
2742
2708
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(
@@ -2794,10 +2760,11 @@ var __async = (__this, __arguments, generator) => {
2794
2760
  }) })
2795
2761
  ] }) });
2796
2762
  };
2797
- const ContactListAutoSection = ({ data, t, isDarkMode, getContactList }) => {
2763
+ const ContactListAutoSection = ({ data, t, isDarkMode, getContactList, section }) => {
2798
2764
  const [contacts, setContacts] = require$$0.useState([]);
2799
2765
  const [loading, setLoading] = require$$0.useState(true);
2800
2766
  const [error, setError] = require$$0.useState(null);
2767
+ const sectionTitle = (section == null ? void 0 : section.title) || "...";
2801
2768
  require$$0.useEffect(() => {
2802
2769
  loadContacts();
2803
2770
  }, []);
@@ -2840,10 +2807,7 @@ var __async = (__this, __arguments, generator) => {
2840
2807
  ] });
2841
2808
  }
2842
2809
  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: [
2843
- /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "text-center mb-16", children: [
2844
- /* @__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ệ" }),
2845
- /* @__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" })
2846
- ] }),
2810
+ /* @__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 }) }),
2847
2811
  /* @__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)) })
2848
2812
  ] }) });
2849
2813
  };
@@ -2905,9 +2869,10 @@ var __async = (__this, __arguments, generator) => {
2905
2869
  }
2906
2870
  return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "-mx-2 px-2", children: content });
2907
2871
  };
2908
- const CustomerFeedbackAutoSection = ({ data, t, isDarkMode, loadCustomerFeedback }) => {
2872
+ const CustomerFeedbackAutoSection = ({ data, t, isDarkMode, loadCustomerFeedback, section }) => {
2909
2873
  const [feedbacks, setFeedbacks] = require$$0.useState([]);
2910
2874
  const [currentIndex, setCurrentIndex] = require$$0.useState(0);
2875
+ const sectionTitle = (section == null ? void 0 : section.title) || "...";
2911
2876
  require$$0.useEffect(() => {
2912
2877
  const fetchData = () => __async(null, null, function* () {
2913
2878
  const res = yield loadCustomerFeedback();
@@ -2990,20 +2955,10 @@ var __async = (__this, __arguments, generator) => {
2990
2955
  /* @__PURE__ */ jsxRuntimeExports.jsxs(
2991
2956
  "div",
2992
2957
  {
2993
- className: `inline-block px-4 py-2 rounded-full text-sm font-semibold mb-4 ${isDarkMode ? "bg-indigo-900/50 text-indigo-300 border border-indigo-800" : "bg-indigo-100 text-indigo-800"}`,
2958
+ 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"}`,
2994
2959
  children: [
2995
2960
  "💬 ",
2996
- t("customerFeedback.badge") || "Phản hồi khách hàng"
2997
- ]
2998
- }
2999
- ),
3000
- /* @__PURE__ */ jsxRuntimeExports.jsxs(
3001
- "h2",
3002
- {
3003
- className: `text-3xl lg:text-4xl font-bold mb-8 transition-colors duration-200 ${isDarkMode ? "text-white" : "text-gray-900"}`,
3004
- children: [
3005
- t("customerFeedback.titlelanding") || "Khách hàng nói gì",
3006
- /* @__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" })
2961
+ sectionTitle
3007
2962
  ]
3008
2963
  }
3009
2964
  ),
@@ -4760,7 +4715,7 @@ var __async = (__this, __arguments, generator) => {
4760
4715
  onMouseEnter: (e) => {
4761
4716
  e.currentTarget.style.transform = "translateY(-8px)";
4762
4717
  e.currentTarget.style.boxShadow = isDarkMode ? "0 20px 25px -5px rgba(0, 0, 0, 0.5)" : "0 20px 25px -5px rgba(0, 0, 0, 0.15)";
4763
- e.currentTarget.style.borderColor = "#1638f9ff";
4718
+ e.currentTarget.style.borderColor = "#361985ff";
4764
4719
  },
4765
4720
  onMouseLeave: (e) => {
4766
4721
  e.currentTarget.style.transform = "translateY(0)";
@@ -4811,7 +4766,7 @@ var __async = (__this, __arguments, generator) => {
4811
4766
  fontSize: "16px",
4812
4767
  fontWeight: "600",
4813
4768
  color: "#fff",
4814
- backgroundColor: "#f97316",
4769
+ backgroundColor: "#361985ff",
4815
4770
  border: "none",
4816
4771
  borderRadius: "9999px",
4817
4772
  cursor: "pointer",
@@ -4819,11 +4774,11 @@ var __async = (__this, __arguments, generator) => {
4819
4774
  boxShadow: "0 4px 6px -1px rgba(249, 115, 22, 0.3)"
4820
4775
  },
4821
4776
  onMouseEnter: (e) => {
4822
- e.currentTarget.style.backgroundColor = "#ea580c";
4777
+ e.currentTarget.style.backgroundColor = "#361985ff";
4823
4778
  e.currentTarget.style.transform = "translateY(-2px)";
4824
4779
  },
4825
4780
  onMouseLeave: (e) => {
4826
- e.currentTarget.style.backgroundColor = "#f97316";
4781
+ e.currentTarget.style.backgroundColor = "#361985ff";
4827
4782
  e.currentTarget.style.transform = "translateY(0)";
4828
4783
  },
4829
4784
  children: [
@@ -4978,7 +4933,7 @@ var __async = (__this, __arguments, generator) => {
4978
4933
  fontSize: "16px",
4979
4934
  fontWeight: "600",
4980
4935
  color: "#fff",
4981
- backgroundColor: "#2563eb",
4936
+ backgroundColor: "#361985ff",
4982
4937
  border: "none",
4983
4938
  borderRadius: "9999px",
4984
4939
  cursor: "pointer",
@@ -4986,11 +4941,11 @@ var __async = (__this, __arguments, generator) => {
4986
4941
  boxShadow: "0 4px 6px -1px rgba(37, 99, 235, 0.3)"
4987
4942
  },
4988
4943
  onMouseEnter: (e) => {
4989
- e.currentTarget.style.backgroundColor = "#1d4ed8";
4944
+ e.currentTarget.style.backgroundColor = "#361985ff";
4990
4945
  e.currentTarget.style.transform = "translateY(-2px)";
4991
4946
  },
4992
4947
  onMouseLeave: (e) => {
4993
- e.currentTarget.style.backgroundColor = "#2563eb";
4948
+ e.currentTarget.style.backgroundColor = "#361985ff";
4994
4949
  e.currentTarget.style.transform = "translateY(0)";
4995
4950
  },
4996
4951
  children: [
@@ -5133,7 +5088,7 @@ var __async = (__this, __arguments, generator) => {
5133
5088
  fontSize: "16px",
5134
5089
  fontWeight: "600",
5135
5090
  color: "#ffffff",
5136
- backgroundColor: "#ef4444",
5091
+ backgroundColor: "#361985ff",
5137
5092
  border: "none",
5138
5093
  borderRadius: "50px",
5139
5094
  cursor: "pointer",
@@ -5141,12 +5096,12 @@ var __async = (__this, __arguments, generator) => {
5141
5096
  boxShadow: "0 4px 6px -1px rgba(239, 68, 68, 0.3)"
5142
5097
  },
5143
5098
  onMouseEnter: (e) => {
5144
- e.currentTarget.style.backgroundColor = "#dc2626";
5099
+ e.currentTarget.style.backgroundColor = "#361985ff";
5145
5100
  e.currentTarget.style.transform = "translateY(-2px)";
5146
5101
  e.currentTarget.style.boxShadow = "0 10px 15px -3px rgba(239, 68, 68, 0.4)";
5147
5102
  },
5148
5103
  onMouseLeave: (e) => {
5149
- e.currentTarget.style.backgroundColor = "#ef4444";
5104
+ e.currentTarget.style.backgroundColor = "#361985ff";
5150
5105
  e.currentTarget.style.transform = "translateY(0)";
5151
5106
  e.currentTarget.style.boxShadow = "0 4px 6px -1px rgba(239, 68, 68, 0.3)";
5152
5107
  },