nvis-fe-cms-libs 2.0.5 → 2.0.6
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" })
|
|
@@ -3391,52 +3391,18 @@ const DiagramSection = ({ data, t, isDarkMode }) => {
|
|
|
3391
3391
|
] })
|
|
3392
3392
|
] });
|
|
3393
3393
|
};
|
|
3394
|
-
const MindMapNode = ({ id, icon: Icon2, text, color, position, delay = 0, onDragStart, isDragging, onClick, description
|
|
3394
|
+
const MindMapNode = ({ id, icon: Icon2, text, color, position, delay = 0, onDragStart, isDragging, onClick, description }) => {
|
|
3395
3395
|
const [isHovered, setIsHovered] = useState(false);
|
|
3396
3396
|
const [dragStartPos, setDragStartPos] = useState(null);
|
|
3397
3397
|
const [hasMoved, setHasMoved] = useState(false);
|
|
3398
|
-
const
|
|
3399
|
-
|
|
3400
|
-
|
|
3401
|
-
|
|
3402
|
-
|
|
3403
|
-
|
|
3404
|
-
|
|
3405
|
-
},
|
|
3406
|
-
teal: {
|
|
3407
|
-
gradient: "linear-gradient(to bottom right, var(--gradient-brand-soft-start), var(--gradient-brand-soft-end))",
|
|
3408
|
-
gradientHover: "linear-gradient(to bottom right, var(--gradient-brand-strong-start), var(--gradient-brand-strong-end))",
|
|
3409
|
-
border: "var(--gradient-brand-soft-start)",
|
|
3410
|
-
shadowColor: "var(--gradient-brand-soft-start)"
|
|
3411
|
-
},
|
|
3412
|
-
purple: {
|
|
3413
|
-
gradient: "linear-gradient(to bottom right, var(--brand-secondary), var(--gradient-accent-soft-start))",
|
|
3414
|
-
gradientHover: "linear-gradient(to bottom right, var(--gradient-accent-soft-start), var(--gradient-accent-soft-end))",
|
|
3415
|
-
border: "var(--brand-secondary)",
|
|
3416
|
-
shadowColor: "var(--brand-secondary)"
|
|
3417
|
-
},
|
|
3418
|
-
orange: {
|
|
3419
|
-
gradient: "linear-gradient(to bottom right, var(--gradient-accent-strong-start), var(--gradient-accent-strong-end))",
|
|
3420
|
-
gradientHover: "linear-gradient(to bottom right, var(--gradient-accent-soft-start), var(--gradient-accent-soft-end))",
|
|
3421
|
-
border: "var(--gradient-accent-strong-start)",
|
|
3422
|
-
shadowColor: "var(--gradient-accent-strong-start)"
|
|
3423
|
-
},
|
|
3424
|
-
cyan: {
|
|
3425
|
-
gradient: "linear-gradient(to bottom right, var(--gradient-brand-strong-start), var(--gradient-brand-strong-end))",
|
|
3426
|
-
gradientHover: "linear-gradient(to bottom right, var(--gradient-brand-soft-start), var(--gradient-brand-soft-end))",
|
|
3427
|
-
border: "var(--gradient-brand-strong-start)",
|
|
3428
|
-
shadowColor: "var(--gradient-brand-strong-start)"
|
|
3429
|
-
},
|
|
3430
|
-
indigo: {
|
|
3431
|
-
gradient: "linear-gradient(to bottom right, var(--gradient-accent-soft-start), var(--gradient-accent-soft-end))",
|
|
3432
|
-
gradientHover: "linear-gradient(to bottom right, var(--gradient-accent-strong-start), var(--gradient-accent-strong-end))",
|
|
3433
|
-
border: "var(--gradient-accent-soft-start)",
|
|
3434
|
-
shadowColor: "var(--gradient-accent-soft-start)"
|
|
3435
|
-
}
|
|
3436
|
-
};
|
|
3437
|
-
return styles[colorName] || styles.blue;
|
|
3398
|
+
const colorClasses = {
|
|
3399
|
+
blue: "bg-gradient-to-br from-blue-600 to-blue-700 hover:from-blue-500 hover:to-blue-600 border-blue-400/50 shadow-blue-500/30",
|
|
3400
|
+
teal: "bg-gradient-to-br from-teal-600 to-teal-700 hover:from-teal-500 hover:to-teal-600 border-teal-400/50 shadow-teal-500/30",
|
|
3401
|
+
purple: "bg-gradient-to-br from-purple-600 to-purple-700 hover:from-purple-500 hover:to-purple-600 border-purple-400/50 shadow-purple-500/30",
|
|
3402
|
+
orange: "bg-gradient-to-br from-orange-500 to-orange-600 hover:from-orange-400 hover:to-orange-500 border-orange-300/50 shadow-orange-500/30",
|
|
3403
|
+
cyan: "bg-gradient-to-br from-cyan-600 to-cyan-700 hover:from-cyan-500 hover:to-cyan-600 border-cyan-400/50 shadow-cyan-500/30",
|
|
3404
|
+
indigo: "bg-gradient-to-br from-indigo-600 to-indigo-700 hover:from-indigo-500 hover:to-indigo-600 border-indigo-400/50 shadow-indigo-500/30"
|
|
3438
3405
|
};
|
|
3439
|
-
const colorStyle = getColorStyles(color);
|
|
3440
3406
|
const handleMouseDown = (e) => {
|
|
3441
3407
|
setDragStartPos({ x: e.clientX, y: e.clientY });
|
|
3442
3408
|
setHasMoved(false);
|
|
@@ -3519,45 +3485,12 @@ const MindMapNode = ({ id, icon: Icon2, text, color, position, delay = 0, onDrag
|
|
|
3519
3485
|
onTouchMove: handleTouchMove,
|
|
3520
3486
|
onTouchEnd: handleTouchEnd,
|
|
3521
3487
|
children: [
|
|
3522
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
3523
|
-
"
|
|
3524
|
-
{
|
|
3525
|
-
|
|
3526
|
-
|
|
3527
|
-
|
|
3528
|
-
borderColor: colorStyle.border + "80",
|
|
3529
|
-
boxShadow: `0 10px 40px rgba(var(--brand-primary), 0.3)`,
|
|
3530
|
-
transform: isHovered || isDragging ? "scale(1.1)" : "scale(1)",
|
|
3531
|
-
filter: isHovered || isDragging ? "brightness(1.1)" : "brightness(1)",
|
|
3532
|
-
rotate: isDragging ? "2deg" : "0deg"
|
|
3533
|
-
},
|
|
3534
|
-
children: [
|
|
3535
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(Icon2, { className: "w-4 h-4 flex-shrink-0 text-inverse" }),
|
|
3536
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-inverse text-small whitespace-nowrap", children: text })
|
|
3537
|
-
]
|
|
3538
|
-
}
|
|
3539
|
-
),
|
|
3540
|
-
isDragging && /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
3541
|
-
"div",
|
|
3542
|
-
{
|
|
3543
|
-
className: "absolute inset-0 rounded-2xl blur-xl animate-pulse",
|
|
3544
|
-
style: {
|
|
3545
|
-
background: "rgba(255, 255, 255, 0.1)",
|
|
3546
|
-
transform: "scale(1.5)"
|
|
3547
|
-
}
|
|
3548
|
-
}
|
|
3549
|
-
),
|
|
3550
|
-
(isHovered || isDragging) && description && /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
3551
|
-
"div",
|
|
3552
|
-
{
|
|
3553
|
-
className: `absolute top-full left-1/2 -translate-x-1/2 mt-2 px-3 py-2 text-caption rounded-lg shadow-xl border whitespace-nowrap z-50 max-w-xs ${isDarkMode ? "bg-surface text-inverse" : "bg-body text-main"}`,
|
|
3554
|
-
style: {
|
|
3555
|
-
borderColor: "var(--border-color)",
|
|
3556
|
-
opacity: 0.95
|
|
3557
|
-
},
|
|
3558
|
-
children: description
|
|
3559
|
-
}
|
|
3560
|
-
)
|
|
3488
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: `${colorClasses[color]} backdrop-blur-md px-4 py-2.5 rounded-2xl shadow-2xl border-2 flex items-center gap-2.5 cursor-pointer transform transition-all duration-300 ${isHovered || isDragging ? "scale-110 shadow-2xl brightness-110" : ""} ${isDragging ? "rotate-2" : ""}`, children: [
|
|
3489
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Icon2, { className: "w-4 h-4 text-white flex-shrink-0" }),
|
|
3490
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-white font-medium whitespace-nowrap text-xs sm:text-sm", children: text })
|
|
3491
|
+
] }),
|
|
3492
|
+
isDragging && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "absolute inset-0 bg-white/10 rounded-2xl blur-xl animate-pulse", style: { transform: "scale(1.5)" } }),
|
|
3493
|
+
(isHovered || isDragging) && description && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "absolute top-full left-1/2 -translate-x-1/2 mt-2 px-3 py-2 bg-slate-900/95 text-white text-xs rounded-lg shadow-xl border border-slate-700 whitespace-nowrap z-50 max-w-xs", children: description })
|
|
3561
3494
|
]
|
|
3562
3495
|
}
|
|
3563
3496
|
);
|
|
@@ -3778,108 +3711,49 @@ const DiagramSection2 = ({ data, t, isDarkMode }) => {
|
|
|
3778
3711
|
"div",
|
|
3779
3712
|
{
|
|
3780
3713
|
ref: containerRef,
|
|
3781
|
-
className:
|
|
3782
|
-
style: {
|
|
3783
|
-
touchAction: "none"
|
|
3784
|
-
},
|
|
3714
|
+
className: `mind-map-container relative w-full h-screen ${isDarkMode ? "bg-gradient-to-br from-slate-950 via-indigo-950 to-purple-950" : "bg-gradient-to-br from-blue-50 via-indigo-50 to-purple-50"} overflow-hidden transition-colors duration-300`,
|
|
3715
|
+
style: { touchAction: "none" },
|
|
3785
3716
|
children: [
|
|
3786
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
3787
|
-
"div",
|
|
3788
|
-
{
|
|
3789
|
-
|
|
3790
|
-
|
|
3791
|
-
|
|
3792
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
3793
|
-
"div",
|
|
3794
|
-
{
|
|
3795
|
-
className: "absolute inset-0 bg-gradient-brand",
|
|
3796
|
-
style: {
|
|
3797
|
-
opacity: 0.2
|
|
3798
|
-
}
|
|
3799
|
-
}
|
|
3800
|
-
),
|
|
3801
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
3802
|
-
"div",
|
|
3803
|
-
{
|
|
3804
|
-
className: "absolute inset-0 bg-gradient-accent",
|
|
3805
|
-
style: {
|
|
3806
|
-
opacity: 0.1
|
|
3807
|
-
}
|
|
3808
|
-
}
|
|
3809
|
-
)
|
|
3810
|
-
]
|
|
3811
|
-
}
|
|
3812
|
-
),
|
|
3813
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
3814
|
-
"div",
|
|
3815
|
-
{
|
|
3816
|
-
className: "absolute inset-0 pointer-events-none",
|
|
3817
|
-
style: { opacity: isDarkMode ? 0.6 : 0.4 },
|
|
3818
|
-
children: [...Array(150)].map((_, i) => {
|
|
3819
|
-
const colors = ["bg-brand-primary", "bg-brand-secondary"];
|
|
3820
|
-
const randomColor = colors[Math.floor(Math.random() * colors.length)];
|
|
3821
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
3822
|
-
"div",
|
|
3823
|
-
{
|
|
3824
|
-
className: `absolute rounded-full ${randomColor}`,
|
|
3825
|
-
style: {
|
|
3826
|
-
left: `${Math.random() * 100}%`,
|
|
3827
|
-
top: `${Math.random() * 100}%`,
|
|
3828
|
-
width: `${Math.random() * 3 + 1}px`,
|
|
3829
|
-
height: `${Math.random() * 3 + 1}px`,
|
|
3830
|
-
animationName: "twinkle",
|
|
3831
|
-
animationDelay: `${Math.random() * 5}s`,
|
|
3832
|
-
animationDuration: `${4 + Math.random() * 6}s`,
|
|
3833
|
-
animationIterationCount: "infinite",
|
|
3834
|
-
animationTimingFunction: "ease-in-out"
|
|
3835
|
-
}
|
|
3836
|
-
},
|
|
3837
|
-
i
|
|
3838
|
-
);
|
|
3839
|
-
})
|
|
3840
|
-
}
|
|
3841
|
-
),
|
|
3842
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
3717
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: `absolute inset-0 ${isDarkMode ? "opacity-30" : "opacity-20"}`, children: [
|
|
3718
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: `absolute inset-0 ${isDarkMode ? "bg-gradient-to-tr from-blue-600/20 via-purple-600/20 to-pink-600/20" : "bg-gradient-to-tr from-blue-400/20 via-purple-400/20 to-pink-400/20"}` }),
|
|
3719
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "absolute inset-0 bg-[radial-gradient(ellipse_at_top_right,_var(--tw-gradient-stops))] from-cyan-500/10 via-transparent to-transparent" }),
|
|
3720
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "absolute inset-0 bg-[radial-gradient(ellipse_at_bottom_left,_var(--tw-gradient-stops))] from-purple-500/10 via-transparent to-transparent" })
|
|
3721
|
+
] }),
|
|
3722
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: `absolute inset-0 pointer-events-none ${isDarkMode ? "opacity-60" : "opacity-40"}`, children: [...Array(150)].map((_, i) => /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
3843
3723
|
"div",
|
|
3844
3724
|
{
|
|
3845
|
-
className: "absolute
|
|
3846
|
-
style: {
|
|
3847
|
-
|
|
3848
|
-
|
|
3849
|
-
{
|
|
3850
|
-
|
|
3851
|
-
|
|
3852
|
-
|
|
3853
|
-
|
|
3854
|
-
opacity: 0.15
|
|
3855
|
-
}
|
|
3856
|
-
}
|
|
3857
|
-
)
|
|
3858
|
-
}
|
|
3859
|
-
),
|
|
3860
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "absolute right-4 sm:right-16 bottom-4 sm:bottom-16 z-0 pointer-events-none", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "relative", children: [
|
|
3861
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
3862
|
-
"div",
|
|
3863
|
-
{
|
|
3864
|
-
className: "absolute inset-0 blur-3xl w-20 h-20 sm:w-32 sm:h-32 bg-gradient-brand",
|
|
3865
|
-
style: {
|
|
3866
|
-
opacity: 0.2
|
|
3867
|
-
}
|
|
3725
|
+
className: "absolute rounded-full animate-twinkle",
|
|
3726
|
+
style: {
|
|
3727
|
+
left: `${Math.random() * 100}%`,
|
|
3728
|
+
top: `${Math.random() * 100}%`,
|
|
3729
|
+
width: `${Math.random() * 3 + 1}px`,
|
|
3730
|
+
height: `${Math.random() * 3 + 1}px`,
|
|
3731
|
+
background: isDarkMode ? ["#60a5fa", "#818cf8", "#a78bfa", "#c084fc", "#e879f9"][Math.floor(Math.random() * 5)] : ["#3b82f6", "#6366f1", "#8b5cf6", "#a855f7", "#d946ef"][Math.floor(Math.random() * 5)],
|
|
3732
|
+
animationDelay: `${Math.random() * 5}s`,
|
|
3733
|
+
animationDuration: `${4 + Math.random() * 6}s`
|
|
3868
3734
|
}
|
|
3869
|
-
|
|
3735
|
+
},
|
|
3736
|
+
i
|
|
3737
|
+
)) }),
|
|
3738
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: `absolute inset-0 ${isDarkMode ? "opacity-10" : "opacity-5"} pointer-events-none`, children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "absolute inset-0", style: {
|
|
3739
|
+
backgroundImage: `radial-gradient(circle at 1px 1px, ${isDarkMode ? "rgba(255,255,255,0.15)" : "rgba(0,0,0,0.1)"} 1px, transparent 0)`,
|
|
3740
|
+
backgroundSize: "40px 40px"
|
|
3741
|
+
} }) }),
|
|
3742
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "absolute right-4 sm:right-16 bottom-4 sm:bottom-16 z-0 pointer-events-none", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "relative", children: [
|
|
3743
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "absolute inset-0 bg-gradient-to-r from-blue-500/20 to-purple-500/20 blur-3xl w-20 h-20 sm:w-32 sm:h-32" }),
|
|
3870
3744
|
/* @__PURE__ */ jsxRuntimeExports.jsx("svg", { width: "60", height: "60", viewBox: "0 0 80 80", className: "relative sm:w-24 sm:h-24", children: /* @__PURE__ */ jsxRuntimeExports.jsx("path", { d: "M40 0 L45 35 L80 40 L45 45 L40 80 L35 45 L0 40 L35 35 Z", fill: "url(#sparkle-gradient)", opacity: "0.4" }) })
|
|
3871
3745
|
] }) }),
|
|
3872
3746
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("svg", { className: "absolute inset-0 w-full h-full pointer-events-none", style: { zIndex: 1 }, children: [
|
|
3873
3747
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("defs", { children: [
|
|
3874
3748
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("linearGradient", { id: "circuit-gradient", x1: "0%", y1: "0%", x2: "100%", y2: "0%", children: [
|
|
3875
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("stop", { offset: "0%",
|
|
3876
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("stop", { offset: "50%",
|
|
3877
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("stop", { offset: "100%",
|
|
3749
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("stop", { offset: "0%", stopColor: "#60a5fa", stopOpacity: "0.6" }),
|
|
3750
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("stop", { offset: "50%", stopColor: "#a78bfa", stopOpacity: "0.9" }),
|
|
3751
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("stop", { offset: "100%", stopColor: "#c084fc", stopOpacity: "0.6" })
|
|
3878
3752
|
] }),
|
|
3879
3753
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("linearGradient", { id: "sparkle-gradient", x1: "0%", y1: "0%", x2: "100%", y2: "100%", children: [
|
|
3880
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("stop", { offset: "0%",
|
|
3881
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("stop", { offset: "50%",
|
|
3882
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("stop", { offset: "100%",
|
|
3754
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("stop", { offset: "0%", stopColor: "#60a5fa" }),
|
|
3755
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("stop", { offset: "50%", stopColor: "#a78bfa" }),
|
|
3756
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("stop", { offset: "100%", stopColor: "#c084fc" })
|
|
3883
3757
|
] }),
|
|
3884
3758
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("filter", { id: "glow", children: [
|
|
3885
3759
|
/* @__PURE__ */ jsxRuntimeExports.jsx("feGaussianBlur", { stdDeviation: "4", result: "coloredBlur" }),
|
|
@@ -3894,11 +3768,11 @@ const DiagramSection2 = ({ data, t, isDarkMode }) => {
|
|
|
3894
3768
|
"path",
|
|
3895
3769
|
{
|
|
3896
3770
|
d: line.path,
|
|
3897
|
-
stroke: "
|
|
3771
|
+
stroke: "rgba(167, 139, 250, 0.2)",
|
|
3898
3772
|
strokeWidth: "6",
|
|
3899
3773
|
fill: "none",
|
|
3900
3774
|
className: "transition-all duration-200",
|
|
3901
|
-
style: { filter: "blur(8px)"
|
|
3775
|
+
style: { filter: "blur(8px)" }
|
|
3902
3776
|
}
|
|
3903
3777
|
),
|
|
3904
3778
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
@@ -3930,8 +3804,7 @@ const DiagramSection2 = ({ data, t, isDarkMode }) => {
|
|
|
3930
3804
|
delay: node.delay,
|
|
3931
3805
|
onDragStart: handleNodeDragStart,
|
|
3932
3806
|
isDragging: draggingNodeId === node.id,
|
|
3933
|
-
onClick: handleNodeClick
|
|
3934
|
-
isDarkMode
|
|
3807
|
+
onClick: handleNodeClick
|
|
3935
3808
|
},
|
|
3936
3809
|
node.id
|
|
3937
3810
|
)) }),
|
|
@@ -3965,51 +3838,15 @@ const DiagramSection2 = ({ data, t, isDarkMode }) => {
|
|
|
3965
3838
|
},
|
|
3966
3839
|
onTouchEnd: () => setIsDragging(false),
|
|
3967
3840
|
children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "relative", children: [
|
|
3968
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
3969
|
-
|
|
3970
|
-
{
|
|
3971
|
-
|
|
3972
|
-
|
|
3973
|
-
|
|
3974
|
-
|
|
3975
|
-
|
|
3976
|
-
|
|
3977
|
-
),
|
|
3978
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
3979
|
-
"div",
|
|
3980
|
-
{
|
|
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
|
-
style: {
|
|
3983
|
-
borderColor: "rgba(var(--brand-primary-rgb), 0.5)",
|
|
3984
|
-
transform: isDragging ? "scale(1.1)" : "scale(1)",
|
|
3985
|
-
transition: "transform 0.3s ease"
|
|
3986
|
-
},
|
|
3987
|
-
children: [
|
|
3988
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
3989
|
-
"div",
|
|
3990
|
-
{
|
|
3991
|
-
className: "p-2 sm:p-3 rounded-xl backdrop-blur-sm",
|
|
3992
|
-
style: { backgroundColor: "rgba(255, 255, 255, 0.25)" },
|
|
3993
|
-
children: /* @__PURE__ */ jsxRuntimeExports.jsx(Briefcase, { className: "w-5 h-5 sm:w-7 sm:h-7 text-inverse" })
|
|
3994
|
-
}
|
|
3995
|
-
),
|
|
3996
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "text-center", children: [
|
|
3997
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("h1", { className: "text-inverse text-body sm:text-subtitle", children: diagramName }),
|
|
3998
|
-
diagramDescription && /* @__PURE__ */ jsxRuntimeExports.jsx("h2", { className: "text-inverse text-caption sm:text-small opacity-90", children: diagramDescription })
|
|
3999
|
-
] })
|
|
4000
|
-
]
|
|
4001
|
-
}
|
|
4002
|
-
),
|
|
4003
|
-
!isDragging && /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
4004
|
-
"div",
|
|
4005
|
-
{
|
|
4006
|
-
className: `absolute -bottom-8 left-1/2 transform -translate-x-1/2 text-caption whitespace-nowrap ${isDarkMode ? "text-brand-primary" : "text-brand-secondary"}`,
|
|
4007
|
-
style: {
|
|
4008
|
-
opacity: 0.6
|
|
4009
|
-
},
|
|
4010
|
-
children: safeT("diagram.dragToMove")
|
|
4011
|
-
}
|
|
4012
|
-
)
|
|
3841
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "absolute inset-0 bg-indigo-400/30 rounded-full blur-2xl", style: { transform: "scale(1.5)" } }),
|
|
3842
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: `relative bg-gradient-to-br from-indigo-500 via-blue-500 to-cyan-500 px-6 sm:px-10 py-3 sm:py-5 rounded-3xl shadow-2xl border-4 border-indigo-300/50 flex items-center gap-3 sm:gap-4 transition-transform backdrop-blur-md ${isDragging ? "scale-110" : ""}`, children: [
|
|
3843
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "bg-white/25 p-2 sm:p-3 rounded-xl backdrop-blur-sm", children: /* @__PURE__ */ jsxRuntimeExports.jsx(Briefcase, { className: "w-5 h-5 sm:w-7 sm:h-7 text-white" }) }),
|
|
3844
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "text-center", children: [
|
|
3845
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("h1", { className: "text-white font-bold text-sm sm:text-xl leading-tight tracking-wide", children: diagramName }),
|
|
3846
|
+
diagramDescription && /* @__PURE__ */ jsxRuntimeExports.jsx("h2", { className: "text-white/90 font-medium text-xs sm:text-base leading-tight", children: diagramDescription })
|
|
3847
|
+
] })
|
|
3848
|
+
] }),
|
|
3849
|
+
!isDragging && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: `absolute -bottom-8 left-1/2 transform -translate-x-1/2 ${isDarkMode ? "text-indigo-300/60" : "text-indigo-600/60"} text-xs whitespace-nowrap`, children: safeT("diagram.dragToMove") })
|
|
4013
3850
|
] })
|
|
4014
3851
|
}
|
|
4015
3852
|
),
|
|
@@ -4029,6 +3866,7 @@ const DiagramSection2 = ({ data, t, isDarkMode }) => {
|
|
|
4029
3866
|
animation: fadeIn 0.8s cubic-bezier(0.4, 0, 0.2, 1) forwards;
|
|
4030
3867
|
opacity: 0;
|
|
4031
3868
|
}
|
|
3869
|
+
.animate-twinkle { animation: twinkle 5s ease-in-out infinite; }
|
|
4032
3870
|
` })
|
|
4033
3871
|
]
|
|
4034
3872
|
}
|
|
@@ -4059,7 +3897,7 @@ const FaqItem = ({ faq, index: index2, isActive, onToggle, t }) => {
|
|
|
4059
3897
|
ThemeIcon,
|
|
4060
3898
|
{
|
|
4061
3899
|
name: "icon-faqChevronDown",
|
|
4062
|
-
folder: "
|
|
3900
|
+
folder: "FaqSection",
|
|
4063
3901
|
className: `w-5 h-5 icon-muted transition-transform duration-500 ${isActive ? "rotate-180" : ""}`
|
|
4064
3902
|
}
|
|
4065
3903
|
) })
|
|
@@ -4141,7 +3979,7 @@ const FaqSection = ({ data, t, isDarkMode, section }) => {
|
|
|
4141
3979
|
},
|
|
4142
3980
|
onMouseEnter: (e) => e.currentTarget.style.transform = "scale(1.1)",
|
|
4143
3981
|
onMouseLeave: (e) => e.currentTarget.style.transform = "scale(1)",
|
|
4144
|
-
children: /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-faqQuestion", className: "w-4 h-4 icon-gradient" })
|
|
3982
|
+
children: /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-faqQuestion", folder: "FaqSection", className: "w-4 h-4 icon-gradient" })
|
|
4145
3983
|
}
|
|
4146
3984
|
) }),
|
|
4147
3985
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "text-center mb-12 animate-fade-in", children: [
|