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, isDarkMode }) => {
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 getColorStyles = (colorName) => {
3399
- const styles = {
3400
- blue: {
3401
- gradient: "linear-gradient(to bottom right, var(--brand-primary), var(--brand-primary))",
3402
- gradientHover: "linear-gradient(to bottom right, var(--gradient-brand-soft-start), var(--gradient-brand-soft-end))",
3403
- border: "var(--brand-primary)",
3404
- shadowColor: "var(--brand-primary)"
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
- "div",
3524
- {
3525
- className: "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",
3526
- style: {
3527
- background: isHovered || isDragging ? colorStyle.gradientHover : colorStyle.gradient,
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: "mind-map-container relative w-full h-screen overflow-hidden bg-section-soft",
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
- className: "absolute inset-0",
3790
- style: { opacity: isDarkMode ? 0.3 : 0.2 },
3791
- children: [
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 inset-0 pointer-events-none",
3846
- style: { opacity: isDarkMode ? 0.1 : 0.05 },
3847
- children: /* @__PURE__ */ jsxRuntimeExports.jsx(
3848
- "div",
3849
- {
3850
- className: "absolute inset-0",
3851
- style: {
3852
- backgroundImage: isDarkMode ? "radial-gradient(circle at 1px 1px, var(--text-inverse) 1px, transparent 0)" : "radial-gradient(circle at 1px 1px, var(--text-main) 1px, transparent 0)",
3853
- backgroundSize: "40px 40px",
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%", style: { stopColor: "var(--brand-primary)", stopOpacity: 0.6 } }),
3876
- /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { offset: "50%", style: { stopColor: "var(--gradient-brand-soft-start)", stopOpacity: 0.9 } }),
3877
- /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { offset: "100%", style: { stopColor: "var(--gradient-brand-soft-end)", stopOpacity: 0.6 } })
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%", style: { stopColor: "var(--brand-primary)" } }),
3881
- /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { offset: "50%", style: { stopColor: "var(--gradient-brand-soft-start)" } }),
3882
- /* @__PURE__ */ jsxRuntimeExports.jsx("stop", { offset: "100%", style: { stopColor: "var(--gradient-brand-soft-end)" } })
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: "var(--gradient-brand-soft-start)",
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)", opacity: 0.2 }
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
- "div",
3970
- {
3971
- className: "absolute inset-0 rounded-full blur-2xl bg-brand-primary",
3972
- style: {
3973
- opacity: 0.3,
3974
- transform: "scale(1.5)"
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: "common",
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: [