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.
@@ -700,7 +700,45 @@ 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.jsx("div", { className: "text-center mb-12", children: /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "block bg-gradient-to-r from-emerald-600 to-teal-600 bg-clip-text text-transparent", children: sectionTitle }) }),
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: [
711
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
712
+ "div",
713
+ {
714
+ className: "absolute w-12 h-12 bg-white/5 rounded-full",
715
+ style: { left: "10%", top: "20%" }
716
+ }
717
+ ),
718
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
719
+ "div",
720
+ {
721
+ className: "absolute w-10 h-10 bg-white/5 rounded-full",
722
+ style: { right: "30%", bottom: "10%" }
723
+ }
724
+ ),
725
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
726
+ "div",
727
+ {
728
+ className: "absolute w-14 h-14 bg-white/5 rounded-md",
729
+ style: { left: "20%", bottom: "30%" }
730
+ }
731
+ ),
732
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
733
+ "div",
734
+ {
735
+ 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'
736
+ }
737
+ )
738
+ ] })
739
+ ]
740
+ }
741
+ ) }),
704
742
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "relative", children: [
705
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" }),
706
744
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "space-y-8", children: timelineData.map((milestone, index2) => /* @__PURE__ */ jsxRuntimeExports.jsxs(
@@ -1025,11 +1063,12 @@ var __async = (__this, __arguments, generator) => {
1025
1063
  }
1026
1064
  );
1027
1065
  };
1028
- const MilestoneSection = ({ data, t, isDarkMode, getMilestoneTimeline }) => {
1066
+ const MilestoneSection = ({ data, t, isDarkMode, getMilestoneTimeline, section }) => {
1029
1067
  const [milestones, setMilestones] = require$$0.useState([]);
1030
1068
  const [loading, setLoading] = require$$0.useState(true);
1031
1069
  const [timelineVisible, setTimelineVisible] = require$$0.useState([]);
1032
1070
  const timelineRefs = require$$0.useRef([]);
1071
+ const sectionTitle = (section == null ? void 0 : section.title) || "...";
1033
1072
  require$$0.useEffect(() => {
1034
1073
  const fetchMilestones = () => __async(null, null, function* () {
1035
1074
  var _a, _b;
@@ -1116,28 +1155,16 @@ var __async = (__this, __arguments, generator) => {
1116
1155
  {
1117
1156
  className: `py-20 ${isDarkMode ? "bg-gray-800" : "bg-white"}`,
1118
1157
  children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8", children: [
1119
- /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "text-center mb-12", children: [
1120
- /* @__PURE__ */ jsxRuntimeExports.jsxs(
1121
- "div",
1122
- {
1123
- 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"}`,
1124
- children: [
1125
- "📈 ",
1126
- t("milestone.header.badge")
1127
- ]
1128
- }
1129
- ),
1130
- /* @__PURE__ */ jsxRuntimeExports.jsxs(
1131
- "h2",
1132
- {
1133
- className: `text-3xl lg:text-4xl font-bold mb-4 ${isDarkMode ? "text-white" : "text-gray-900"}`,
1134
- children: [
1135
- t("milestone.header.title"),
1136
- /* @__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") })
1137
- ]
1138
- }
1139
- )
1140
- ] }),
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
+ ) }),
1141
1168
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "relative", children: [
1142
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" }),
1143
1170
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "space-y-8", children: milestones.map((milestone, index2) => /* @__PURE__ */ jsxRuntimeExports.jsxs(
@@ -1186,9 +1213,10 @@ var __async = (__this, __arguments, generator) => {
1186
1213
  }
1187
1214
  );
1188
1215
  };
1189
- const TestimonialsSection = ({ data, t, isDarkMode }) => {
1216
+ const TestimonialsSection = ({ data, t, isDarkMode, section }) => {
1190
1217
  var _a;
1191
1218
  const [currentIndex, setCurrentIndex] = require$$0.useState(0);
1219
+ const sectionTitle = (section == null ? void 0 : section.title) || "...";
1192
1220
  const testimonials = ((_a = data == null ? void 0 : data.sectionDataBindingItems) == null ? void 0 : _a.filter((item) => item == null ? void 0 : item.data).map((item) => {
1193
1221
  var _a2, _b, _c, _d;
1194
1222
  return {
@@ -1235,20 +1263,10 @@ var __async = (__this, __arguments, generator) => {
1235
1263
  /* @__PURE__ */ jsxRuntimeExports.jsxs(
1236
1264
  "div",
1237
1265
  {
1238
- 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"}`,
1239
1267
  children: [
1240
1268
  "💬 ",
1241
- t("testimonials.header.badge")
1242
- ]
1243
- }
1244
- ),
1245
- /* @__PURE__ */ jsxRuntimeExports.jsxs(
1246
- "h2",
1247
- {
1248
- className: `text-3xl lg:text-4xl font-bold mb-8 transition-colors duration-200 ${isDarkMode ? "text-white" : "text-gray-900"}`,
1249
- children: [
1250
- t("testimonials.header.title"),
1251
- /* @__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
1252
1270
  ]
1253
1271
  }
1254
1272
  ),
@@ -2675,22 +2693,16 @@ var __async = (__this, __arguments, generator) => {
2675
2693
  ] })
2676
2694
  ] }) }) });
2677
2695
  };
2678
- const ContactInfoSection = ({ data, t, isDarkMode }) => {
2696
+ const ContactInfoSection = ({ data, t, isDarkMode, section }) => {
2679
2697
  var _a, _b;
2680
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) || "...";
2681
2700
  if (!contactData.length) return null;
2682
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: [
2683
- /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "text-center mb-12", children: [
2684
- /* @__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: [
2685
- /* @__PURE__ */ jsxRuntimeExports.jsx(User, { size: 16, className: "mr-2" }),
2686
- t("contact.team.badge") || "Đội ngũ hỗ trợ"
2687
- ] }),
2688
- /* @__PURE__ */ jsxRuntimeExports.jsxs("h2", { className: `text-3xl lg:text-4xl font-bold mb-4 ${isDarkMode ? "text-white" : "text-slate-800"}`, children: [
2689
- t("contact.team.title") || "Liên hệ với đội ngũ",
2690
- /* @__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" })
2691
- ] }),
2692
- /* @__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" })
2693
- ] }),
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
+ ] }) }),
2694
2706
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "grid md:grid-cols-2 lg:grid-cols-3 gap-8", children: contactData.map((contact, index2) => {
2695
2707
  var _a2;
2696
2708
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(
@@ -2748,10 +2760,11 @@ var __async = (__this, __arguments, generator) => {
2748
2760
  }) })
2749
2761
  ] }) });
2750
2762
  };
2751
- const ContactListAutoSection = ({ data, t, isDarkMode, getContactList }) => {
2763
+ const ContactListAutoSection = ({ data, t, isDarkMode, getContactList, section }) => {
2752
2764
  const [contacts, setContacts] = require$$0.useState([]);
2753
2765
  const [loading, setLoading] = require$$0.useState(true);
2754
2766
  const [error, setError] = require$$0.useState(null);
2767
+ const sectionTitle = (section == null ? void 0 : section.title) || "...";
2755
2768
  require$$0.useEffect(() => {
2756
2769
  loadContacts();
2757
2770
  }, []);
@@ -2794,10 +2807,7 @@ var __async = (__this, __arguments, generator) => {
2794
2807
  ] });
2795
2808
  }
2796
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: [
2797
- /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "text-center mb-16", children: [
2798
- /* @__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ệ" }),
2799
- /* @__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" })
2800
- ] }),
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 }) }),
2801
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)) })
2802
2812
  ] }) });
2803
2813
  };
@@ -2859,9 +2869,10 @@ var __async = (__this, __arguments, generator) => {
2859
2869
  }
2860
2870
  return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "-mx-2 px-2", children: content });
2861
2871
  };
2862
- const CustomerFeedbackAutoSection = ({ data, t, isDarkMode, loadCustomerFeedback }) => {
2872
+ const CustomerFeedbackAutoSection = ({ data, t, isDarkMode, loadCustomerFeedback, section }) => {
2863
2873
  const [feedbacks, setFeedbacks] = require$$0.useState([]);
2864
2874
  const [currentIndex, setCurrentIndex] = require$$0.useState(0);
2875
+ const sectionTitle = (section == null ? void 0 : section.title) || "...";
2865
2876
  require$$0.useEffect(() => {
2866
2877
  const fetchData = () => __async(null, null, function* () {
2867
2878
  const res = yield loadCustomerFeedback();
@@ -2944,20 +2955,10 @@ var __async = (__this, __arguments, generator) => {
2944
2955
  /* @__PURE__ */ jsxRuntimeExports.jsxs(
2945
2956
  "div",
2946
2957
  {
2947
- 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"}`,
2948
2959
  children: [
2949
2960
  "💬 ",
2950
- t("customerFeedback.badge") || "Phản hồi khách hàng"
2951
- ]
2952
- }
2953
- ),
2954
- /* @__PURE__ */ jsxRuntimeExports.jsxs(
2955
- "h2",
2956
- {
2957
- className: `text-3xl lg:text-4xl font-bold mb-8 transition-colors duration-200 ${isDarkMode ? "text-white" : "text-gray-900"}`,
2958
- children: [
2959
- t("customerFeedback.titlelanding") || "Khách hàng nói gì",
2960
- /* @__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
2961
2962
  ]
2962
2963
  }
2963
2964
  ),