nvis-fe-cms-libs 2.0.4 → 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.
|
@@ -378,11 +378,12 @@ var __async = (__this, __arguments, generator) => {
|
|
|
378
378
|
name,
|
|
379
379
|
className = "",
|
|
380
380
|
color,
|
|
381
|
+
folder = "common",
|
|
382
|
+
// ← Thêm prop folder, mặc định là "common"
|
|
381
383
|
useOriginalColor = false
|
|
382
|
-
// ← Prop mới để chọn chế độ
|
|
383
384
|
}) {
|
|
384
385
|
if (!name) return null;
|
|
385
|
-
const iconUrl = `/icons/${name}.svg`;
|
|
386
|
+
const iconUrl = `/icons/${folder}/${name}.svg`;
|
|
386
387
|
if (useOriginalColor) {
|
|
387
388
|
return /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
388
389
|
"img",
|
|
@@ -392,6 +393,7 @@ var __async = (__this, __arguments, generator) => {
|
|
|
392
393
|
className: `icon ${className}`,
|
|
393
394
|
onError: (e) => {
|
|
394
395
|
e.target.style.display = "none";
|
|
396
|
+
console.warn(`Icon not found: ${iconUrl}`);
|
|
395
397
|
}
|
|
396
398
|
}
|
|
397
399
|
);
|
|
@@ -407,6 +409,7 @@ var __async = (__this, __arguments, generator) => {
|
|
|
407
409
|
},
|
|
408
410
|
onError: (e) => {
|
|
409
411
|
e.target.style.display = "none";
|
|
412
|
+
console.warn(`Icon not found: ${iconUrl}`);
|
|
410
413
|
}
|
|
411
414
|
}
|
|
412
415
|
);
|
|
@@ -1499,14 +1502,14 @@ var __async = (__this, __arguments, generator) => {
|
|
|
1499
1502
|
`;
|
|
1500
1503
|
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
1504
|
/* @__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" }) }),
|
|
1505
|
+
/* @__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
1506
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
|
|
1504
1507
|
/* @__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
1508
|
/* @__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
1509
|
] })
|
|
1507
1510
|
] }),
|
|
1508
1511
|
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" }),
|
|
1512
|
+
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
1513
|
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-small font-medium", children: submitMessage })
|
|
1511
1514
|
] }) }),
|
|
1512
1515
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("form", { onSubmit: handleSubmit, className: "space-y-6", children: [
|
|
@@ -1531,7 +1534,7 @@ var __async = (__this, __arguments, generator) => {
|
|
|
1531
1534
|
}
|
|
1532
1535
|
),
|
|
1533
1536
|
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" }),
|
|
1537
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-ContactFormAlertCircle", folder: "ContactFormSection", className: "w-4 h-4 icon-gradient" }),
|
|
1535
1538
|
formErrors.fullName
|
|
1536
1539
|
] })
|
|
1537
1540
|
] }),
|
|
@@ -1555,7 +1558,7 @@ var __async = (__this, __arguments, generator) => {
|
|
|
1555
1558
|
}
|
|
1556
1559
|
),
|
|
1557
1560
|
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" }),
|
|
1561
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-ContactFormAlertCircle", folder: "ContactFormSection", className: "w-4 h-4 icon-gradient" }),
|
|
1559
1562
|
formErrors.workEmail
|
|
1560
1563
|
] })
|
|
1561
1564
|
] })
|
|
@@ -1577,7 +1580,7 @@ var __async = (__this, __arguments, generator) => {
|
|
|
1577
1580
|
}
|
|
1578
1581
|
),
|
|
1579
1582
|
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" }),
|
|
1583
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-ContactFormAlertCircle", folder: "ContactFormSection", className: "w-4 h-4 icon-gradient" }),
|
|
1581
1584
|
formErrors.phoneNumber
|
|
1582
1585
|
] })
|
|
1583
1586
|
] }),
|
|
@@ -1597,7 +1600,7 @@ var __async = (__this, __arguments, generator) => {
|
|
|
1597
1600
|
}
|
|
1598
1601
|
),
|
|
1599
1602
|
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" }),
|
|
1603
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-ContactFormAlertCircle", folder: "ContactFormSection", className: "w-4 h-4 icon-gradient" }),
|
|
1601
1604
|
formErrors.companyName
|
|
1602
1605
|
] })
|
|
1603
1606
|
] })
|
|
@@ -1619,7 +1622,7 @@ var __async = (__this, __arguments, generator) => {
|
|
|
1619
1622
|
}
|
|
1620
1623
|
),
|
|
1621
1624
|
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" }),
|
|
1625
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-ContactFormAlertCircle", folder: "ContactFormSection", className: "w-4 h-4 icon-gradient" }),
|
|
1623
1626
|
formErrors.jobTitle
|
|
1624
1627
|
] })
|
|
1625
1628
|
] }),
|
|
@@ -1691,7 +1694,7 @@ var __async = (__this, __arguments, generator) => {
|
|
|
1691
1694
|
}
|
|
1692
1695
|
),
|
|
1693
1696
|
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" }),
|
|
1697
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-ContactFormAlertCircle", folder: "ContactFormSection", className: "w-4 h-4 icon-gradient" }),
|
|
1695
1698
|
formErrors.requestTitle
|
|
1696
1699
|
] })
|
|
1697
1700
|
] }),
|
|
@@ -1715,7 +1718,7 @@ var __async = (__this, __arguments, generator) => {
|
|
|
1715
1718
|
}
|
|
1716
1719
|
),
|
|
1717
1720
|
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" }),
|
|
1721
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-ContactFormAlertCircle", folder: "ContactFormSection", className: "w-4 h-4 icon-gradient" }),
|
|
1719
1722
|
formErrors.requestDescription
|
|
1720
1723
|
] })
|
|
1721
1724
|
] }),
|
|
@@ -1726,10 +1729,10 @@ var __async = (__this, __arguments, generator) => {
|
|
|
1726
1729
|
disabled: isSubmitting,
|
|
1727
1730
|
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
1731
|
children: isSubmitting ? /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
|
|
1729
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-ContactFormLoader2", className: "w-4 h-4 icon-muted" }),
|
|
1732
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-ContactFormLoader2", folder: "ContactFormSection", className: "w-4 h-4 icon-muted" }),
|
|
1730
1733
|
t("form.submitting") || "Đang gửi..."
|
|
1731
1734
|
] }) : /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
|
|
1732
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-contactFormSend", className: "w-4 h-4 icon-gradient" }),
|
|
1735
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-contactFormSend", folder: "ContactFormSection", className: "w-4 h-4 icon-gradient" }),
|
|
1733
1736
|
t("form.submit") || "Gửi yêu cầu"
|
|
1734
1737
|
] })
|
|
1735
1738
|
}
|
|
@@ -1744,7 +1747,7 @@ var __async = (__this, __arguments, generator) => {
|
|
|
1744
1747
|
if (!contactData.length) return null;
|
|
1745
1748
|
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
1749
|
/* @__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" }),
|
|
1750
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-contactInfoUser", folder: "ContactInfoSection", className: "w-4 h-4 icon-gradient" }),
|
|
1748
1751
|
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-main", children: sectionTitle })
|
|
1749
1752
|
] }) }),
|
|
1750
1753
|
/* @__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 +1760,7 @@ var __async = (__this, __arguments, generator) => {
|
|
|
1757
1760
|
display: "flex",
|
|
1758
1761
|
alignItems: "center",
|
|
1759
1762
|
justifyContent: "center"
|
|
1760
|
-
}, children: /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-contactInfoUser", className: "w-4 h-4 icon-gradient" }) }),
|
|
1763
|
+
}, children: /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-contactInfoUser", folder: "ContactInfoSection", className: "w-4 h-4 icon-gradient" }) }),
|
|
1761
1764
|
/* @__PURE__ */ jsxRuntimeExports.jsx("h3", { className: "card-title text-subtitle mb-2", children: contact.name }),
|
|
1762
1765
|
/* @__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
1766
|
] }),
|
|
@@ -1784,7 +1787,7 @@ var __async = (__this, __arguments, generator) => {
|
|
|
1784
1787
|
alignItems: "center",
|
|
1785
1788
|
justifyContent: "center",
|
|
1786
1789
|
marginRight: "0.75rem"
|
|
1787
|
-
}, children: /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-contactInfoPhone", className: "w-4 h-4 icon-gradient" }) }),
|
|
1790
|
+
}, children: /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-contactInfoPhone", folder: "ContactInfoSection", className: "w-4 h-4 icon-gradient" }) }),
|
|
1788
1791
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { style: { flex: 1 }, children: [
|
|
1789
1792
|
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-small text-muted", style: { marginBottom: "0.25rem" }, children: t("contact.info.phone") || "Điện thoại" }),
|
|
1790
1793
|
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-body text-main", style: { fontWeight: 600 }, children: contact.phone })
|
|
@@ -1814,7 +1817,7 @@ var __async = (__this, __arguments, generator) => {
|
|
|
1814
1817
|
alignItems: "center",
|
|
1815
1818
|
justifyContent: "center",
|
|
1816
1819
|
marginRight: "0.75rem"
|
|
1817
|
-
}, children: /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-contactInfoEmail", className: "w-4 h-4 icon-gradient" }) }),
|
|
1820
|
+
}, children: /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-contactInfoEmail", folder: "ContactInfoSection", className: "w-4 h-4 icon-gradient" }) }),
|
|
1818
1821
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { style: { flex: 1 }, children: [
|
|
1819
1822
|
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-small text-muted", style: { marginBottom: "0.25rem" }, children: "Email" }),
|
|
1820
1823
|
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-body text-main", style: { fontWeight: 600 }, children: contact.email })
|
|
@@ -1839,7 +1842,7 @@ var __async = (__this, __arguments, generator) => {
|
|
|
1839
1842
|
alignItems: "center",
|
|
1840
1843
|
justifyContent: "center",
|
|
1841
1844
|
marginRight: "0.75rem"
|
|
1842
|
-
}, children: /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-contactInfoClock", className: "w-4 h-4 icon-muted" }) }),
|
|
1845
|
+
}, children: /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-contactInfoClock", folder: "ContactInfoSection", className: "w-4 h-4 icon-muted" }) }),
|
|
1843
1846
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { style: { flex: 1 }, children: [
|
|
1844
1847
|
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-small text-muted", style: { marginBottom: "0.25rem" }, children: t("contact.info.workingHours") || "Giờ làm việc" }),
|
|
1845
1848
|
/* @__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 +1900,7 @@ var __async = (__this, __arguments, generator) => {
|
|
|
1897
1900
|
}
|
|
1898
1901
|
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
1902
|
/* @__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" }),
|
|
1903
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-contactInfoUser", folder: "ContactInfoSection", className: "w-4 h-4 icon-gradient" }),
|
|
1901
1904
|
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-main", children: sectionTitle })
|
|
1902
1905
|
] }) }),
|
|
1903
1906
|
/* @__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 +1917,7 @@ var __async = (__this, __arguments, generator) => {
|
|
|
1914
1917
|
display: "flex",
|
|
1915
1918
|
alignItems: "center",
|
|
1916
1919
|
justifyContent: "center"
|
|
1917
|
-
}, children: /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-contactInfoUser", className: "w-4 h-4 icon-gradient" }) }),
|
|
1920
|
+
}, children: /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-contactInfoUser", folder: "ContactInfoSection", className: "w-4 h-4 icon-gradient" }) }),
|
|
1918
1921
|
/* @__PURE__ */ jsxRuntimeExports.jsx("h3", { className: "card-title text-subtitle mb-2", children: contact.name || t("contactList.card.noName") || "Không có tên" }),
|
|
1919
1922
|
/* @__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
1923
|
] }),
|
|
@@ -1941,7 +1944,7 @@ var __async = (__this, __arguments, generator) => {
|
|
|
1941
1944
|
alignItems: "center",
|
|
1942
1945
|
justifyContent: "center",
|
|
1943
1946
|
marginRight: "0.75rem"
|
|
1944
|
-
}, children: /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-contactInfoPhone", className: "w-4 h-4 icon-gradient" }) }),
|
|
1947
|
+
}, children: /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-contactInfoPhone", folder: "ContactInfoSection", className: "w-4 h-4 icon-gradient" }) }),
|
|
1945
1948
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { style: { flex: 1 }, children: [
|
|
1946
1949
|
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-small text-muted", style: { marginBottom: "0.25rem" }, children: t("contactList.card.phone") || "Điện thoại" }),
|
|
1947
1950
|
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-body text-main", style: { fontWeight: 600 }, children: contact.phone })
|
|
@@ -1971,7 +1974,7 @@ var __async = (__this, __arguments, generator) => {
|
|
|
1971
1974
|
alignItems: "center",
|
|
1972
1975
|
justifyContent: "center",
|
|
1973
1976
|
marginRight: "0.75rem"
|
|
1974
|
-
}, children: /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-contactInfoEmail", className: "w-4 h-4 icon-gradient" }) }),
|
|
1977
|
+
}, children: /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-contactInfoEmail", folder: "ContactInfoSection", className: "w-4 h-4 icon-gradient" }) }),
|
|
1975
1978
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { style: { flex: 1 }, children: [
|
|
1976
1979
|
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-small text-muted", style: { marginBottom: "0.25rem" }, children: "Email" }),
|
|
1977
1980
|
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-body text-main", style: { fontWeight: 600 }, children: contact.email })
|
|
@@ -1996,7 +1999,7 @@ var __async = (__this, __arguments, generator) => {
|
|
|
1996
1999
|
alignItems: "center",
|
|
1997
2000
|
justifyContent: "center",
|
|
1998
2001
|
marginRight: "0.75rem"
|
|
1999
|
-
}, children: /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-contactInfoClock", className: "w-4 h-4 icon-muted" }) }),
|
|
2002
|
+
}, children: /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-contactInfoClock", folder: "ContactInfoSection", className: "w-4 h-4 icon-muted" }) }),
|
|
2000
2003
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { style: { flex: 1 }, children: [
|
|
2001
2004
|
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-small text-muted", style: { marginBottom: "0.25rem" }, children: t("contactList.card.workingHours") || "Giờ làm việc" }),
|
|
2002
2005
|
/* @__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 +3394,18 @@ var __async = (__this, __arguments, generator) => {
|
|
|
3391
3394
|
] })
|
|
3392
3395
|
] });
|
|
3393
3396
|
};
|
|
3394
|
-
const MindMapNode = ({ id, icon: Icon2, text, color, position, delay = 0, onDragStart, isDragging, onClick, description
|
|
3397
|
+
const MindMapNode = ({ id, icon: Icon2, text, color, position, delay = 0, onDragStart, isDragging, onClick, description }) => {
|
|
3395
3398
|
const [isHovered, setIsHovered] = require$$0.useState(false);
|
|
3396
3399
|
const [dragStartPos, setDragStartPos] = require$$0.useState(null);
|
|
3397
3400
|
const [hasMoved, setHasMoved] = require$$0.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;
|
|
3401
|
+
const colorClasses = {
|
|
3402
|
+
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",
|
|
3403
|
+
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",
|
|
3404
|
+
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",
|
|
3405
|
+
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",
|
|
3406
|
+
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",
|
|
3407
|
+
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
3408
|
};
|
|
3439
|
-
const colorStyle = getColorStyles(color);
|
|
3440
3409
|
const handleMouseDown = (e) => {
|
|
3441
3410
|
setDragStartPos({ x: e.clientX, y: e.clientY });
|
|
3442
3411
|
setHasMoved(false);
|
|
@@ -3519,45 +3488,12 @@ var __async = (__this, __arguments, generator) => {
|
|
|
3519
3488
|
onTouchMove: handleTouchMove,
|
|
3520
3489
|
onTouchEnd: handleTouchEnd,
|
|
3521
3490
|
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
|
-
)
|
|
3491
|
+
/* @__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: [
|
|
3492
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(Icon2, { className: "w-4 h-4 text-white flex-shrink-0" }),
|
|
3493
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-white font-medium whitespace-nowrap text-xs sm:text-sm", children: text })
|
|
3494
|
+
] }),
|
|
3495
|
+
isDragging && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "absolute inset-0 bg-white/10 rounded-2xl blur-xl animate-pulse", style: { transform: "scale(1.5)" } }),
|
|
3496
|
+
(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
3497
|
]
|
|
3562
3498
|
}
|
|
3563
3499
|
);
|
|
@@ -3778,108 +3714,49 @@ var __async = (__this, __arguments, generator) => {
|
|
|
3778
3714
|
"div",
|
|
3779
3715
|
{
|
|
3780
3716
|
ref: containerRef,
|
|
3781
|
-
className:
|
|
3782
|
-
style: {
|
|
3783
|
-
touchAction: "none"
|
|
3784
|
-
},
|
|
3717
|
+
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`,
|
|
3718
|
+
style: { touchAction: "none" },
|
|
3785
3719
|
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(
|
|
3720
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: `absolute inset-0 ${isDarkMode ? "opacity-30" : "opacity-20"}`, children: [
|
|
3721
|
+
/* @__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"}` }),
|
|
3722
|
+
/* @__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" }),
|
|
3723
|
+
/* @__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" })
|
|
3724
|
+
] }),
|
|
3725
|
+
/* @__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
3726
|
"div",
|
|
3844
3727
|
{
|
|
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
|
-
}
|
|
3728
|
+
className: "absolute rounded-full animate-twinkle",
|
|
3729
|
+
style: {
|
|
3730
|
+
left: `${Math.random() * 100}%`,
|
|
3731
|
+
top: `${Math.random() * 100}%`,
|
|
3732
|
+
width: `${Math.random() * 3 + 1}px`,
|
|
3733
|
+
height: `${Math.random() * 3 + 1}px`,
|
|
3734
|
+
background: isDarkMode ? ["#60a5fa", "#818cf8", "#a78bfa", "#c084fc", "#e879f9"][Math.floor(Math.random() * 5)] : ["#3b82f6", "#6366f1", "#8b5cf6", "#a855f7", "#d946ef"][Math.floor(Math.random() * 5)],
|
|
3735
|
+
animationDelay: `${Math.random() * 5}s`,
|
|
3736
|
+
animationDuration: `${4 + Math.random() * 6}s`
|
|
3868
3737
|
}
|
|
3869
|
-
|
|
3738
|
+
},
|
|
3739
|
+
i
|
|
3740
|
+
)) }),
|
|
3741
|
+
/* @__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: {
|
|
3742
|
+
backgroundImage: `radial-gradient(circle at 1px 1px, ${isDarkMode ? "rgba(255,255,255,0.15)" : "rgba(0,0,0,0.1)"} 1px, transparent 0)`,
|
|
3743
|
+
backgroundSize: "40px 40px"
|
|
3744
|
+
} }) }),
|
|
3745
|
+
/* @__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: [
|
|
3746
|
+
/* @__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
3747
|
/* @__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
3748
|
] }) }),
|
|
3872
3749
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("svg", { className: "absolute inset-0 w-full h-full pointer-events-none", style: { zIndex: 1 }, children: [
|
|
3873
3750
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("defs", { children: [
|
|
3874
3751
|
/* @__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%",
|
|
3752
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("stop", { offset: "0%", stopColor: "#60a5fa", stopOpacity: "0.6" }),
|
|
3753
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("stop", { offset: "50%", stopColor: "#a78bfa", stopOpacity: "0.9" }),
|
|
3754
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("stop", { offset: "100%", stopColor: "#c084fc", stopOpacity: "0.6" })
|
|
3878
3755
|
] }),
|
|
3879
3756
|
/* @__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%",
|
|
3757
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("stop", { offset: "0%", stopColor: "#60a5fa" }),
|
|
3758
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("stop", { offset: "50%", stopColor: "#a78bfa" }),
|
|
3759
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("stop", { offset: "100%", stopColor: "#c084fc" })
|
|
3883
3760
|
] }),
|
|
3884
3761
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("filter", { id: "glow", children: [
|
|
3885
3762
|
/* @__PURE__ */ jsxRuntimeExports.jsx("feGaussianBlur", { stdDeviation: "4", result: "coloredBlur" }),
|
|
@@ -3894,11 +3771,11 @@ var __async = (__this, __arguments, generator) => {
|
|
|
3894
3771
|
"path",
|
|
3895
3772
|
{
|
|
3896
3773
|
d: line.path,
|
|
3897
|
-
stroke: "
|
|
3774
|
+
stroke: "rgba(167, 139, 250, 0.2)",
|
|
3898
3775
|
strokeWidth: "6",
|
|
3899
3776
|
fill: "none",
|
|
3900
3777
|
className: "transition-all duration-200",
|
|
3901
|
-
style: { filter: "blur(8px)"
|
|
3778
|
+
style: { filter: "blur(8px)" }
|
|
3902
3779
|
}
|
|
3903
3780
|
),
|
|
3904
3781
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
@@ -3930,8 +3807,7 @@ var __async = (__this, __arguments, generator) => {
|
|
|
3930
3807
|
delay: node.delay,
|
|
3931
3808
|
onDragStart: handleNodeDragStart,
|
|
3932
3809
|
isDragging: draggingNodeId === node.id,
|
|
3933
|
-
onClick: handleNodeClick
|
|
3934
|
-
isDarkMode
|
|
3810
|
+
onClick: handleNodeClick
|
|
3935
3811
|
},
|
|
3936
3812
|
node.id
|
|
3937
3813
|
)) }),
|
|
@@ -3965,51 +3841,15 @@ var __async = (__this, __arguments, generator) => {
|
|
|
3965
3841
|
},
|
|
3966
3842
|
onTouchEnd: () => setIsDragging(false),
|
|
3967
3843
|
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
|
-
)
|
|
3844
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "absolute inset-0 bg-indigo-400/30 rounded-full blur-2xl", style: { transform: "scale(1.5)" } }),
|
|
3845
|
+
/* @__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: [
|
|
3846
|
+
/* @__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" }) }),
|
|
3847
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "text-center", children: [
|
|
3848
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("h1", { className: "text-white font-bold text-sm sm:text-xl leading-tight tracking-wide", children: diagramName }),
|
|
3849
|
+
diagramDescription && /* @__PURE__ */ jsxRuntimeExports.jsx("h2", { className: "text-white/90 font-medium text-xs sm:text-base leading-tight", children: diagramDescription })
|
|
3850
|
+
] })
|
|
3851
|
+
] }),
|
|
3852
|
+
!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
3853
|
] })
|
|
4014
3854
|
}
|
|
4015
3855
|
),
|
|
@@ -4029,6 +3869,7 @@ var __async = (__this, __arguments, generator) => {
|
|
|
4029
3869
|
animation: fadeIn 0.8s cubic-bezier(0.4, 0, 0.2, 1) forwards;
|
|
4030
3870
|
opacity: 0;
|
|
4031
3871
|
}
|
|
3872
|
+
.animate-twinkle { animation: twinkle 5s ease-in-out infinite; }
|
|
4032
3873
|
` })
|
|
4033
3874
|
]
|
|
4034
3875
|
}
|
|
@@ -4059,7 +3900,7 @@ var __async = (__this, __arguments, generator) => {
|
|
|
4059
3900
|
ThemeIcon,
|
|
4060
3901
|
{
|
|
4061
3902
|
name: "icon-faqChevronDown",
|
|
4062
|
-
folder: "
|
|
3903
|
+
folder: "FaqSection",
|
|
4063
3904
|
className: `w-5 h-5 icon-muted transition-transform duration-500 ${isActive ? "rotate-180" : ""}`
|
|
4064
3905
|
}
|
|
4065
3906
|
) })
|
|
@@ -4141,7 +3982,7 @@ var __async = (__this, __arguments, generator) => {
|
|
|
4141
3982
|
},
|
|
4142
3983
|
onMouseEnter: (e) => e.currentTarget.style.transform = "scale(1.1)",
|
|
4143
3984
|
onMouseLeave: (e) => e.currentTarget.style.transform = "scale(1)",
|
|
4144
|
-
children: /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-faqQuestion", className: "w-4 h-4 icon-gradient" })
|
|
3985
|
+
children: /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-faqQuestion", folder: "FaqSection", className: "w-4 h-4 icon-gradient" })
|
|
4145
3986
|
}
|
|
4146
3987
|
) }),
|
|
4147
3988
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "text-center mb-12 animate-fade-in", children: [
|