nvis-fe-cms-libs 2.0.5 → 2.0.7
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.
|
@@ -1499,14 +1499,14 @@ const ContactFormSection = ({ data, t, isDarkMode, consultationRequestService })
|
|
|
1499
1499
|
`;
|
|
1500
1500
|
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: "bg-surface rounded-2xl p-8 shadow-lg border transition-colors duration-200", style: { borderColor: "var(--border-color)" }, children: [
|
|
1501
1501
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center mb-6", children: [
|
|
1502
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "w-10 h-10 rounded-lg bg-gradient-brand flex items-center justify-center mr-4", children: /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-contactFormSend", className: "w-4 h-4 icon-gradient" }) }),
|
|
1502
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "w-10 h-10 rounded-lg bg-gradient-brand flex items-center justify-center mr-4", children: /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-contactFormSend", folder: "ContactFormSection", className: "w-4 h-4 icon-gradient" }) }),
|
|
1503
1503
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
|
|
1504
1504
|
/* @__PURE__ */ jsxRuntimeExports.jsx("h2", { className: "text-subtitle font-bold text-main", children: t("form.title") || "Gửi yêu cầu tư vấn" }),
|
|
1505
1505
|
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-small text-muted", children: t("form.subtitle") || "Điền thông tin để nhận tư vấn miễn phí từ chuyên gia" })
|
|
1506
1506
|
] })
|
|
1507
1507
|
] }),
|
|
1508
1508
|
submitStatus && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: `mb-6 p-4 rounded-xl border transition-colors duration-200 ${submitStatus === "success" ? "bg-emerald-50 dark:bg-emerald-900/30 text-emerald-800 dark:text-emerald-300" : "bg-red-50 dark:bg-red-900/30 text-red-800 dark:text-red-300"}`, style: { borderColor: submitStatus === "success" ? "#10b981" : "#ef4444" }, children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center", children: [
|
|
1509
|
-
submitStatus === "success" ? /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-contactFormCheck", className: "w-4 h-4 icon-gradient" }) : /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-ContactFormAlertCircle", className: "w-4 h-4 icon-gradient" }),
|
|
1509
|
+
submitStatus === "success" ? /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-contactFormCheck", folder: "ContactFormSection", className: "w-4 h-4 icon-gradient" }) : /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-ContactFormAlertCircle", folder: "ContactFormSection", className: "w-4 h-4 icon-gradient" }),
|
|
1510
1510
|
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-small font-medium", children: submitMessage })
|
|
1511
1511
|
] }) }),
|
|
1512
1512
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("form", { onSubmit: handleSubmit, className: "space-y-6", children: [
|
|
@@ -1531,7 +1531,7 @@ const ContactFormSection = ({ data, t, isDarkMode, consultationRequestService })
|
|
|
1531
1531
|
}
|
|
1532
1532
|
),
|
|
1533
1533
|
formErrors.fullName && /* @__PURE__ */ jsxRuntimeExports.jsxs("p", { className: "mt-1 text-small text-red-500 flex items-center", children: [
|
|
1534
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-ContactFormAlertCircle", className: "w-4 h-4 icon-gradient" }),
|
|
1534
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-ContactFormAlertCircle", folder: "ContactFormSection", className: "w-4 h-4 icon-gradient" }),
|
|
1535
1535
|
formErrors.fullName
|
|
1536
1536
|
] })
|
|
1537
1537
|
] }),
|
|
@@ -1555,7 +1555,7 @@ const ContactFormSection = ({ data, t, isDarkMode, consultationRequestService })
|
|
|
1555
1555
|
}
|
|
1556
1556
|
),
|
|
1557
1557
|
formErrors.workEmail && /* @__PURE__ */ jsxRuntimeExports.jsxs("p", { className: "mt-1 text-small text-red-500 flex items-center", children: [
|
|
1558
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-ContactFormAlertCircle", className: "w-4 h-4 icon-gradient" }),
|
|
1558
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-ContactFormAlertCircle", folder: "ContactFormSection", className: "w-4 h-4 icon-gradient" }),
|
|
1559
1559
|
formErrors.workEmail
|
|
1560
1560
|
] })
|
|
1561
1561
|
] })
|
|
@@ -1577,7 +1577,7 @@ const ContactFormSection = ({ data, t, isDarkMode, consultationRequestService })
|
|
|
1577
1577
|
}
|
|
1578
1578
|
),
|
|
1579
1579
|
formErrors.phoneNumber && /* @__PURE__ */ jsxRuntimeExports.jsxs("p", { className: "mt-1 text-small text-red-500 flex items-center", children: [
|
|
1580
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-ContactFormAlertCircle", className: "w-4 h-4 icon-gradient" }),
|
|
1580
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-ContactFormAlertCircle", folder: "ContactFormSection", className: "w-4 h-4 icon-gradient" }),
|
|
1581
1581
|
formErrors.phoneNumber
|
|
1582
1582
|
] })
|
|
1583
1583
|
] }),
|
|
@@ -1597,7 +1597,7 @@ const ContactFormSection = ({ data, t, isDarkMode, consultationRequestService })
|
|
|
1597
1597
|
}
|
|
1598
1598
|
),
|
|
1599
1599
|
formErrors.companyName && /* @__PURE__ */ jsxRuntimeExports.jsxs("p", { className: "mt-1 text-small text-red-500 flex items-center", children: [
|
|
1600
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-ContactFormAlertCircle", className: "w-4 h-4 icon-gradient" }),
|
|
1600
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-ContactFormAlertCircle", folder: "ContactFormSection", className: "w-4 h-4 icon-gradient" }),
|
|
1601
1601
|
formErrors.companyName
|
|
1602
1602
|
] })
|
|
1603
1603
|
] })
|
|
@@ -1619,7 +1619,7 @@ const ContactFormSection = ({ data, t, isDarkMode, consultationRequestService })
|
|
|
1619
1619
|
}
|
|
1620
1620
|
),
|
|
1621
1621
|
formErrors.jobTitle && /* @__PURE__ */ jsxRuntimeExports.jsxs("p", { className: "mt-1 text-small text-red-500 flex items-center", children: [
|
|
1622
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-ContactFormAlertCircle", className: "w-4 h-4 icon-gradient" }),
|
|
1622
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-ContactFormAlertCircle", folder: "ContactFormSection", className: "w-4 h-4 icon-gradient" }),
|
|
1623
1623
|
formErrors.jobTitle
|
|
1624
1624
|
] })
|
|
1625
1625
|
] }),
|
|
@@ -1691,7 +1691,7 @@ const ContactFormSection = ({ data, t, isDarkMode, consultationRequestService })
|
|
|
1691
1691
|
}
|
|
1692
1692
|
),
|
|
1693
1693
|
formErrors.requestTitle && /* @__PURE__ */ jsxRuntimeExports.jsxs("p", { className: "mt-1 text-small text-red-500 flex items-center", children: [
|
|
1694
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-ContactFormAlertCircle", className: "w-4 h-4 icon-gradient" }),
|
|
1694
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-ContactFormAlertCircle", folder: "ContactFormSection", className: "w-4 h-4 icon-gradient" }),
|
|
1695
1695
|
formErrors.requestTitle
|
|
1696
1696
|
] })
|
|
1697
1697
|
] }),
|
|
@@ -1715,7 +1715,7 @@ const ContactFormSection = ({ data, t, isDarkMode, consultationRequestService })
|
|
|
1715
1715
|
}
|
|
1716
1716
|
),
|
|
1717
1717
|
formErrors.requestDescription && /* @__PURE__ */ jsxRuntimeExports.jsxs("p", { className: "mt-1 text-small text-red-500 flex items-center", children: [
|
|
1718
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-ContactFormAlertCircle", className: "w-4 h-4 icon-gradient" }),
|
|
1718
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-ContactFormAlertCircle", folder: "ContactFormSection", className: "w-4 h-4 icon-gradient" }),
|
|
1719
1719
|
formErrors.requestDescription
|
|
1720
1720
|
] })
|
|
1721
1721
|
] }),
|
|
@@ -1726,10 +1726,10 @@ const ContactFormSection = ({ data, t, isDarkMode, consultationRequestService })
|
|
|
1726
1726
|
disabled: isSubmitting,
|
|
1727
1727
|
className: "flex-1 btn-primary text-white py-4 px-6 rounded-xl transition-all disabled:opacity-50 disabled:cursor-not-allowed flex items-center justify-center font-semibold",
|
|
1728
1728
|
children: isSubmitting ? /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
|
|
1729
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-ContactFormLoader2", className: "w-4 h-4 icon-muted" }),
|
|
1729
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-ContactFormLoader2", folder: "ContactFormSection", className: "w-4 h-4 icon-muted" }),
|
|
1730
1730
|
t("form.submitting") || "Đang gửi..."
|
|
1731
1731
|
] }) : /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
|
|
1732
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-contactFormSend", className: "w-4 h-4 icon-gradient" }),
|
|
1732
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-contactFormSend", folder: "ContactFormSection", className: "w-4 h-4 icon-gradient" }),
|
|
1733
1733
|
t("form.submit") || "Gửi yêu cầu"
|
|
1734
1734
|
] })
|
|
1735
1735
|
}
|
|
@@ -1744,7 +1744,7 @@ const ContactInfoSection = ({ data, t, isDarkMode, section }) => {
|
|
|
1744
1744
|
if (!contactData.length) return null;
|
|
1745
1745
|
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: [
|
|
1746
1746
|
/* @__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 bg-surface", style: { borderWidth: "1px", borderColor: "var(--border-color)" }, children: [
|
|
1747
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-contactInfoUser", className: "w-4 h-4 icon-gradient" }),
|
|
1747
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-contactInfoUser", folder: "ContactInfoSection", className: "w-4 h-4 icon-gradient" }),
|
|
1748
1748
|
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-main", children: sectionTitle })
|
|
1749
1749
|
] }) }),
|
|
1750
1750
|
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "grid md:grid-cols-2 lg:grid-cols-3 gap-8", children: contactData.map((contact, index2) => /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "card", children: [
|
|
@@ -1757,7 +1757,7 @@ const ContactInfoSection = ({ data, t, isDarkMode, section }) => {
|
|
|
1757
1757
|
display: "flex",
|
|
1758
1758
|
alignItems: "center",
|
|
1759
1759
|
justifyContent: "center"
|
|
1760
|
-
}, children: /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-contactInfoUser", className: "w-4 h-4 icon-gradient" }) }),
|
|
1760
|
+
}, children: /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-contactInfoUser", folder: "ContactInfoSection", className: "w-4 h-4 icon-gradient" }) }),
|
|
1761
1761
|
/* @__PURE__ */ jsxRuntimeExports.jsx("h3", { className: "card-title text-subtitle mb-2", children: contact.name }),
|
|
1762
1762
|
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "inline-block px-3 py-1 rounded-full text-small font-semibold bg-surface text-brand-primary", style: { borderWidth: "1px", borderColor: "var(--border-color)" }, children: contact.position })
|
|
1763
1763
|
] }),
|
|
@@ -1784,7 +1784,7 @@ const ContactInfoSection = ({ data, t, isDarkMode, section }) => {
|
|
|
1784
1784
|
alignItems: "center",
|
|
1785
1785
|
justifyContent: "center",
|
|
1786
1786
|
marginRight: "0.75rem"
|
|
1787
|
-
}, children: /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-contactInfoPhone", className: "w-4 h-4 icon-gradient" }) }),
|
|
1787
|
+
}, children: /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-contactInfoPhone", folder: "ContactInfoSection", className: "w-4 h-4 icon-gradient" }) }),
|
|
1788
1788
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { style: { flex: 1 }, children: [
|
|
1789
1789
|
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-small text-muted", style: { marginBottom: "0.25rem" }, children: t("contact.info.phone") || "Điện thoại" }),
|
|
1790
1790
|
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-body text-main", style: { fontWeight: 600 }, children: contact.phone })
|
|
@@ -1814,7 +1814,7 @@ const ContactInfoSection = ({ data, t, isDarkMode, section }) => {
|
|
|
1814
1814
|
alignItems: "center",
|
|
1815
1815
|
justifyContent: "center",
|
|
1816
1816
|
marginRight: "0.75rem"
|
|
1817
|
-
}, children: /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-contactInfoEmail", className: "w-4 h-4 icon-gradient" }) }),
|
|
1817
|
+
}, children: /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-contactInfoEmail", folder: "ContactInfoSection", className: "w-4 h-4 icon-gradient" }) }),
|
|
1818
1818
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { style: { flex: 1 }, children: [
|
|
1819
1819
|
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-small text-muted", style: { marginBottom: "0.25rem" }, children: "Email" }),
|
|
1820
1820
|
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-body text-main", style: { fontWeight: 600 }, children: contact.email })
|
|
@@ -1839,7 +1839,7 @@ const ContactInfoSection = ({ data, t, isDarkMode, section }) => {
|
|
|
1839
1839
|
alignItems: "center",
|
|
1840
1840
|
justifyContent: "center",
|
|
1841
1841
|
marginRight: "0.75rem"
|
|
1842
|
-
}, children: /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-contactInfoClock", className: "w-4 h-4 icon-muted" }) }),
|
|
1842
|
+
}, children: /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-contactInfoClock", folder: "ContactInfoSection", className: "w-4 h-4 icon-muted" }) }),
|
|
1843
1843
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { style: { flex: 1 }, children: [
|
|
1844
1844
|
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-small text-muted", style: { marginBottom: "0.25rem" }, children: t("contact.info.workingHours") || "Giờ làm việc" }),
|
|
1845
1845
|
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-body text-main", style: { fontWeight: 600 }, children: contact.workingHours || t("contact.info.defaultWorkingHours") || "T2-T6: 8:00-18:00" })
|
|
@@ -1897,7 +1897,7 @@ const ContactListAutoSection = ({ data, t, isDarkMode, getContactList, section }
|
|
|
1897
1897
|
}
|
|
1898
1898
|
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: [
|
|
1899
1899
|
/* @__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 bg-surface", style: { borderWidth: "1px", borderColor: "var(--border-color)" }, children: [
|
|
1900
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-contactInfoUser", className: "w-4 h-4 icon-gradient" }),
|
|
1900
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-contactInfoUser", folder: "ContactInfoSection", className: "w-4 h-4 icon-gradient" }),
|
|
1901
1901
|
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-main", children: sectionTitle })
|
|
1902
1902
|
] }) }),
|
|
1903
1903
|
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "grid md:grid-cols-2 lg:grid-cols-3 gap-8", children: contacts.map((contact, index2) => /* @__PURE__ */ jsxRuntimeExports.jsx(ContactCard, { contact, t, isDarkMode }, contact.id || index2)) })
|
|
@@ -1914,7 +1914,7 @@ const ContactCard = ({ contact, t, isDarkMode }) => {
|
|
|
1914
1914
|
display: "flex",
|
|
1915
1915
|
alignItems: "center",
|
|
1916
1916
|
justifyContent: "center"
|
|
1917
|
-
}, children: /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-contactInfoUser", className: "w-4 h-4 icon-gradient" }) }),
|
|
1917
|
+
}, children: /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-contactInfoUser", folder: "ContactInfoSection", className: "w-4 h-4 icon-gradient" }) }),
|
|
1918
1918
|
/* @__PURE__ */ jsxRuntimeExports.jsx("h3", { className: "card-title text-subtitle mb-2", children: contact.name || t("contactList.card.noName") || "Không có tên" }),
|
|
1919
1919
|
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "inline-block px-3 py-1 rounded-full text-small font-semibold bg-surface text-brand-primary", style: { borderWidth: "1px", borderColor: "var(--border-color)" }, children: contact.position || t("contactList.card.noPosition") || "Chưa có chức vụ" })
|
|
1920
1920
|
] }),
|
|
@@ -1941,7 +1941,7 @@ const ContactCard = ({ contact, t, isDarkMode }) => {
|
|
|
1941
1941
|
alignItems: "center",
|
|
1942
1942
|
justifyContent: "center",
|
|
1943
1943
|
marginRight: "0.75rem"
|
|
1944
|
-
}, children: /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-contactInfoPhone", className: "w-4 h-4 icon-gradient" }) }),
|
|
1944
|
+
}, children: /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-contactInfoPhone", folder: "ContactInfoSection", className: "w-4 h-4 icon-gradient" }) }),
|
|
1945
1945
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { style: { flex: 1 }, children: [
|
|
1946
1946
|
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-small text-muted", style: { marginBottom: "0.25rem" }, children: t("contactList.card.phone") || "Điện thoại" }),
|
|
1947
1947
|
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-body text-main", style: { fontWeight: 600 }, children: contact.phone })
|
|
@@ -1971,7 +1971,7 @@ const ContactCard = ({ contact, t, isDarkMode }) => {
|
|
|
1971
1971
|
alignItems: "center",
|
|
1972
1972
|
justifyContent: "center",
|
|
1973
1973
|
marginRight: "0.75rem"
|
|
1974
|
-
}, children: /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-contactInfoEmail", className: "w-4 h-4 icon-gradient" }) }),
|
|
1974
|
+
}, children: /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-contactInfoEmail", folder: "ContactInfoSection", className: "w-4 h-4 icon-gradient" }) }),
|
|
1975
1975
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { style: { flex: 1 }, children: [
|
|
1976
1976
|
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-small text-muted", style: { marginBottom: "0.25rem" }, children: "Email" }),
|
|
1977
1977
|
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-body text-main", style: { fontWeight: 600 }, children: contact.email })
|
|
@@ -1996,7 +1996,7 @@ const ContactCard = ({ contact, t, isDarkMode }) => {
|
|
|
1996
1996
|
alignItems: "center",
|
|
1997
1997
|
justifyContent: "center",
|
|
1998
1998
|
marginRight: "0.75rem"
|
|
1999
|
-
}, children: /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-contactInfoClock", className: "w-4 h-4 icon-muted" }) }),
|
|
1999
|
+
}, children: /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-contactInfoClock", folder: "ContactInfoSection", className: "w-4 h-4 icon-muted" }) }),
|
|
2000
2000
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { style: { flex: 1 }, children: [
|
|
2001
2001
|
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-small text-muted", style: { marginBottom: "0.25rem" }, children: t("contactList.card.workingHours") || "Giờ làm việc" }),
|
|
2002
2002
|
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-body text-main", style: { fontWeight: 600 }, children: contact.workingHours || t("contactList.card.defaultWorkingHours") || "T2-T6: 8:00-18:00" })
|
|
@@ -3526,7 +3526,7 @@ const MindMapNode = ({ id, icon: Icon2, text, color, position, delay = 0, onDrag
|
|
|
3526
3526
|
style: {
|
|
3527
3527
|
background: isHovered || isDragging ? colorStyle.gradientHover : colorStyle.gradient,
|
|
3528
3528
|
borderColor: colorStyle.border + "80",
|
|
3529
|
-
boxShadow: `0 10px 40px
|
|
3529
|
+
boxShadow: `0 10px 40px ${colorStyle.shadowColor}4D`,
|
|
3530
3530
|
transform: isHovered || isDragging ? "scale(1.1)" : "scale(1)",
|
|
3531
3531
|
filter: isHovered || isDragging ? "brightness(1.1)" : "brightness(1)",
|
|
3532
3532
|
rotate: isDragging ? "2deg" : "0deg"
|
|
@@ -3980,7 +3980,8 @@ const DiagramSection2 = ({ data, t, isDarkMode }) => {
|
|
|
3980
3980
|
{
|
|
3981
3981
|
className: "relative px-6 sm:px-10 py-3 sm:py-5 rounded-3xl shadow-2xl border-4 flex items-center gap-3 sm:gap-4 backdrop-blur-md bg-gradient-brand",
|
|
3982
3982
|
style: {
|
|
3983
|
-
borderColor: "
|
|
3983
|
+
borderColor: "var(--brand-primary)",
|
|
3984
|
+
borderOpacity: 0.5,
|
|
3984
3985
|
transform: isDragging ? "scale(1.1)" : "scale(1)",
|
|
3985
3986
|
transition: "transform 0.3s ease"
|
|
3986
3987
|
},
|
|
@@ -4059,7 +4060,7 @@ const FaqItem = ({ faq, index: index2, isActive, onToggle, t }) => {
|
|
|
4059
4060
|
ThemeIcon,
|
|
4060
4061
|
{
|
|
4061
4062
|
name: "icon-faqChevronDown",
|
|
4062
|
-
folder: "
|
|
4063
|
+
folder: "FaqSection",
|
|
4063
4064
|
className: `w-5 h-5 icon-muted transition-transform duration-500 ${isActive ? "rotate-180" : ""}`
|
|
4064
4065
|
}
|
|
4065
4066
|
) })
|
|
@@ -4141,7 +4142,7 @@ const FaqSection = ({ data, t, isDarkMode, section }) => {
|
|
|
4141
4142
|
},
|
|
4142
4143
|
onMouseEnter: (e) => e.currentTarget.style.transform = "scale(1.1)",
|
|
4143
4144
|
onMouseLeave: (e) => e.currentTarget.style.transform = "scale(1)",
|
|
4144
|
-
children: /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-faqQuestion", className: "w-4 h-4 icon-gradient" })
|
|
4145
|
+
children: /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-faqQuestion", folder: "FaqSection", className: "w-4 h-4 icon-gradient" })
|
|
4145
4146
|
}
|
|
4146
4147
|
) }),
|
|
4147
4148
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "text-center mb-12 animate-fade-in", children: [
|
|
@@ -4287,14 +4288,14 @@ const PageHighlightSection = ({ data, t, isDarkMode, imageBaseUrl = "" }) => {
|
|
|
4287
4288
|
"div",
|
|
4288
4289
|
{
|
|
4289
4290
|
className: `transition-opacity duration-700 ${activeTab === index2 ? "opacity-100" : "opacity-0 absolute inset-0 pointer-events-none"}`,
|
|
4290
|
-
children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: `${isDarkMode ? "bg-gradient-to-br from-slate-900/30 to-slate-950/30 border-slate-700/20" : "bg-white/40 border-white/30"} backdrop-blur-md rounded-3xl shadow-lg overflow-hidden border transition-colors duration-500`, children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "grid grid-cols-1 lg:grid-cols-2 gap-0
|
|
4291
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "relative h-[280px] lg:h-
|
|
4291
|
+
children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: `${isDarkMode ? "bg-gradient-to-br from-slate-900/30 to-slate-950/30 border-slate-700/20" : "bg-white/40 border-white/30"} backdrop-blur-md rounded-3xl shadow-lg overflow-hidden border transition-colors duration-500`, children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "grid grid-cols-1 lg:grid-cols-2 gap-0", children: [
|
|
4292
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "relative h-[280px] lg:h-[500px] overflow-hidden group", children: [
|
|
4292
4293
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
4293
4294
|
"img",
|
|
4294
4295
|
{
|
|
4295
4296
|
src: item.image || defaultImage,
|
|
4296
4297
|
alt: item.title,
|
|
4297
|
-
className: "w-full h-full object-cover transition-transform duration-700 group-hover:scale-110",
|
|
4298
|
+
className: "absolute inset-0 w-full h-full object-cover transition-transform duration-700 group-hover:scale-110",
|
|
4298
4299
|
onError: (e) => {
|
|
4299
4300
|
e.target.src = defaultImage;
|
|
4300
4301
|
}
|
|
@@ -4303,10 +4304,10 @@ const PageHighlightSection = ({ data, t, isDarkMode, imageBaseUrl = "" }) => {
|
|
|
4303
4304
|
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: `absolute inset-0 bg-gradient-to-br ${color} opacity-20` }),
|
|
4304
4305
|
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "absolute inset-0 bg-gradient-to-t from-black/60 via-transparent to-transparent" })
|
|
4305
4306
|
] }),
|
|
4306
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "p-5 lg:p-8 flex flex-col justify-center", children: [
|
|
4307
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "p-5 lg:p-8 flex flex-col justify-center h-[280px] lg:h-[500px]", children: [
|
|
4307
4308
|
/* @__PURE__ */ jsxRuntimeExports.jsx("h1", { className: "text-3xl lg:text-4xl font-black mb-3 text-gradient-brand", children: item.title }),
|
|
4308
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "mb-6 text-muted", children: item.description }),
|
|
4309
|
-
item.features && item.features.length > 0 && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "grid grid-cols-1 sm:grid-cols-2 gap-2 mb-6", children: item.features.map((feature, idx) => /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-start gap-2 group", children: [
|
|
4309
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "mb-6 text-muted line-clamp-3 lg:line-clamp-4", children: item.description }),
|
|
4310
|
+
item.features && item.features.length > 0 && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "grid grid-cols-1 sm:grid-cols-2 gap-2 mb-6 overflow-y-auto max-h-32 lg:max-h-48", children: item.features.map((feature, idx) => /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-start gap-2 group", children: [
|
|
4310
4311
|
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "mt-0.5 w-4 h-4 rounded-full bg-gradient-accent flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsxRuntimeExports.jsx("svg", { className: "w-2.5 h-2.5 text-inverse", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ jsxRuntimeExports.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 3, d: "M5 13l4 4L19 7" }) }) }),
|
|
4311
4312
|
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-muted group-hover:text-main font-medium text-xs transition-colors", children: feature })
|
|
4312
4313
|
] }, idx)) }),
|
|
@@ -4315,7 +4316,7 @@ const PageHighlightSection = ({ data, t, isDarkMode, imageBaseUrl = "" }) => {
|
|
|
4315
4316
|
{
|
|
4316
4317
|
href: item.slug,
|
|
4317
4318
|
rel: "noopener noreferrer",
|
|
4318
|
-
className: `group relative px-6 py-3 rounded-xl font-bold text-sm transition-all duration-300 transform hover:scale-105 hover:shadow-2xl overflow-hidden bg-gradient-to-r ${color} text-white shadow-xl w-full text-center`,
|
|
4319
|
+
className: `group relative px-6 py-3 rounded-xl font-bold text-sm transition-all duration-300 transform hover:scale-105 hover:shadow-2xl overflow-hidden bg-gradient-to-r ${color} text-white shadow-xl w-full text-center mt-auto`,
|
|
4319
4320
|
onClick: (e) => {
|
|
4320
4321
|
if (!e.ctrlKey && !e.metaKey && e.button !== 1) {
|
|
4321
4322
|
e.preventDefault();
|
|
@@ -4408,6 +4409,20 @@ const PageHighlightSection = ({ data, t, isDarkMode, imageBaseUrl = "" }) => {
|
|
|
4408
4409
|
linear-gradient(90deg, rgba(0, 0, 0, 0.03) 1px, transparent 1px);
|
|
4409
4410
|
background-size: 50px 50px;
|
|
4410
4411
|
}
|
|
4412
|
+
|
|
4413
|
+
.line-clamp-3 {
|
|
4414
|
+
display: -webkit-box;
|
|
4415
|
+
-webkit-line-clamp: 3;
|
|
4416
|
+
-webkit-box-orient: vertical;
|
|
4417
|
+
overflow: hidden;
|
|
4418
|
+
}
|
|
4419
|
+
|
|
4420
|
+
.line-clamp-4 {
|
|
4421
|
+
display: -webkit-box;
|
|
4422
|
+
-webkit-line-clamp: 4;
|
|
4423
|
+
-webkit-box-orient: vertical;
|
|
4424
|
+
overflow: hidden;
|
|
4425
|
+
}
|
|
4411
4426
|
` })
|
|
4412
4427
|
]
|
|
4413
4428
|
}
|