nvis-fe-cms-libs 2.1.5 → 2.1.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -847,7 +847,7 @@ var __async = (__this, __arguments, generator) => {
847
847
  }
848
848
  );
849
849
  };
850
- function useWindowSize$1() {
850
+ function useWindowSize$3() {
851
851
  const [width, setWidth] = require$$0.useState(
852
852
  typeof window !== "undefined" ? window.innerWidth : 1200
853
853
  );
@@ -859,13 +859,13 @@ var __async = (__this, __arguments, generator) => {
859
859
  }, []);
860
860
  return width;
861
861
  }
862
- const PartnersSection = ({ data, t, imageBaseUrl = "", section }) => {
862
+ const PartnersSection$1 = ({ data, t, imageBaseUrl = "", section }) => {
863
863
  var _a, _b, _c;
864
864
  const partnersData = ((_c = (_b = (_a = data == null ? void 0 : data.sectionDataBindingItems) == null ? void 0 : _a.filter((item) => item == null ? void 0 : item.data)) == null ? void 0 : _b.sort((a, b) => (a.sortOrder || 0) - (b.sortOrder || 0))) == null ? void 0 : _c.map((item) => item.data)) || [];
865
865
  const [currentPartnerSlide, setCurrentPartnerSlide] = require$$0.useState(0);
866
866
  const [partnersVisible, setPartnersVisible] = require$$0.useState(false);
867
867
  const partnersRef = require$$0.useRef(null);
868
- const windowWidth = useWindowSize$1();
868
+ const windowWidth = useWindowSize$3();
869
869
  const sectionTitle = (section == null ? void 0 : section.title) || t("partners.sectionTitle") || "Đối tác";
870
870
  const getLogoUrl = (logoUrl) => {
871
871
  if (!logoUrl) return null;
@@ -951,6 +951,189 @@ var __async = (__this, __arguments, generator) => {
951
951
  ) })
952
952
  ] }) });
953
953
  };
954
+ const PartnerCard_2 = ({ partner, idx, t, getLogoUrl, isDarkMode }) => {
955
+ const itemRef = require$$0.useRef(null);
956
+ const [visible, setVisible] = require$$0.useState(false);
957
+ const [isHovered, setIsHovered] = require$$0.useState(false);
958
+ require$$0.useEffect(() => {
959
+ const observer = new IntersectionObserver(
960
+ (entries) => {
961
+ entries.forEach((entry) => {
962
+ if (entry.isIntersecting) {
963
+ setVisible(true);
964
+ observer.unobserve(entry.target);
965
+ }
966
+ });
967
+ },
968
+ { threshold: 0.2 }
969
+ );
970
+ if (itemRef.current) observer.observe(itemRef.current);
971
+ return () => itemRef.current && observer.unobserve(itemRef.current);
972
+ }, []);
973
+ const logoSrc = getLogoUrl(partner.logoUrl);
974
+ const cardContent = /* @__PURE__ */ jsxRuntimeExports.jsx("div", { style: {
975
+ display: "flex",
976
+ flexDirection: "column",
977
+ alignItems: "center",
978
+ justifyContent: "center",
979
+ flex: 1
980
+ }, children: logoSrc ? /* @__PURE__ */ jsxRuntimeExports.jsx("div", { style: {
981
+ width: "100%",
982
+ height: "100px",
983
+ display: "flex",
984
+ alignItems: "center",
985
+ justifyContent: "center"
986
+ }, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
987
+ "img",
988
+ {
989
+ src: logoSrc,
990
+ alt: partner.name || t("partners.logoAlt") || "Partner logo",
991
+ style: {
992
+ maxWidth: "100%",
993
+ maxHeight: "100%",
994
+ objectFit: "contain",
995
+ transform: isHovered ? "scale(1.05)" : "scale(1)",
996
+ transition: "transform 300ms cubic-bezier(0.4, 0, 0.2, 1)"
997
+ },
998
+ loading: "lazy"
999
+ }
1000
+ ) }) : /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "bg-surface", style: {
1001
+ width: "5rem",
1002
+ height: "5rem",
1003
+ borderRadius: "9999px",
1004
+ display: "flex",
1005
+ alignItems: "center",
1006
+ justifyContent: "center"
1007
+ }, children: /* @__PURE__ */ jsxRuntimeExports.jsx("span", { style: { fontSize: "1.875rem" }, children: "🤝" }) }) });
1008
+ const baseClasses = `card transition-all duration-700 ease-out ${visible ? "opacity-100 scale-100" : "opacity-0 scale-75"}`;
1009
+ const dynamicStyles = {
1010
+ transitionDelay: `${idx * 150}ms`,
1011
+ textDecoration: "none",
1012
+ overflow: "hidden",
1013
+ minHeight: "280px",
1014
+ padding: "1.5rem",
1015
+ display: "flex",
1016
+ flexDirection: "column"
1017
+ };
1018
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(
1019
+ "a",
1020
+ {
1021
+ ref: itemRef,
1022
+ href: partner.websiteUrl || "#",
1023
+ target: partner.websiteUrl ? "_blank" : "_self",
1024
+ rel: partner.websiteUrl ? "noopener noreferrer" : "",
1025
+ className: baseClasses,
1026
+ style: dynamicStyles,
1027
+ onMouseEnter: () => setIsHovered(true),
1028
+ onMouseLeave: () => setIsHovered(false),
1029
+ children: cardContent
1030
+ }
1031
+ );
1032
+ };
1033
+ function useWindowSize$2() {
1034
+ const [width, setWidth] = require$$0.useState(
1035
+ typeof window !== "undefined" ? window.innerWidth : 1200
1036
+ );
1037
+ require$$0.useEffect(() => {
1038
+ if (typeof window === "undefined") return;
1039
+ const handleResize = () => setWidth(window.innerWidth);
1040
+ window.addEventListener("resize", handleResize);
1041
+ return () => window.removeEventListener("resize", handleResize);
1042
+ }, []);
1043
+ return width;
1044
+ }
1045
+ const PartnersSection = ({ data, t, imageBaseUrl = "", section }) => {
1046
+ var _a, _b, _c;
1047
+ const partnersData = ((_c = (_b = (_a = data == null ? void 0 : data.sectionDataBindingItems) == null ? void 0 : _a.filter((item) => item == null ? void 0 : item.data)) == null ? void 0 : _b.sort((a, b) => (a.sortOrder || 0) - (b.sortOrder || 0))) == null ? void 0 : _c.map((item) => item.data)) || [];
1048
+ const [currentPartnerSlide, setCurrentPartnerSlide] = require$$0.useState(0);
1049
+ const [partnersVisible, setPartnersVisible] = require$$0.useState(false);
1050
+ const partnersRef = require$$0.useRef(null);
1051
+ const windowWidth = useWindowSize$2();
1052
+ const sectionTitle = (section == null ? void 0 : section.title) || t("partners.sectionTitle") || "Đối tác";
1053
+ const getLogoUrl = (logoUrl) => {
1054
+ if (!logoUrl) return null;
1055
+ if (logoUrl.startsWith("http")) return logoUrl;
1056
+ return `${imageBaseUrl}${logoUrl}`;
1057
+ };
1058
+ const partners = require$$0.useMemo(() => {
1059
+ const getPerSlide = () => {
1060
+ if (windowWidth < 640) return 2;
1061
+ if (windowWidth < 1024) return 3;
1062
+ return 4;
1063
+ };
1064
+ const grouped = [];
1065
+ const perSlide = getPerSlide();
1066
+ for (let i = 0; i < partnersData.length; i += perSlide) {
1067
+ grouped.push(partnersData.slice(i, i + perSlide));
1068
+ }
1069
+ return grouped;
1070
+ }, [partnersData, windowWidth]);
1071
+ require$$0.useEffect(() => {
1072
+ if (partners.length > 1) {
1073
+ const interval = setInterval(() => {
1074
+ setCurrentPartnerSlide((prev) => (prev + 1) % partners.length);
1075
+ }, 5e3);
1076
+ return () => clearInterval(interval);
1077
+ }
1078
+ }, [partners.length]);
1079
+ require$$0.useEffect(() => {
1080
+ const observer = new IntersectionObserver(
1081
+ (entries) => {
1082
+ entries.forEach((entry) => {
1083
+ if (entry.isIntersecting) {
1084
+ setPartnersVisible(true);
1085
+ observer.unobserve(entry.target);
1086
+ }
1087
+ });
1088
+ },
1089
+ { threshold: 0.1 }
1090
+ );
1091
+ if (partnersRef.current) observer.observe(partnersRef.current);
1092
+ return () => partnersRef.current && observer.unobserve(partnersRef.current);
1093
+ }, []);
1094
+ if (!partnersData.length) return null;
1095
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(SectionWrapper, { children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8", children: [
1096
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "text-center mb-12", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "inline-block px-4 py-2 rounded-full border border-[var(--border-color)] bg-surface text-subtitle font-semibold text-brand-primary shadow-sm", children: [
1097
+ /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-partner", folder: "PartnersSection", className: "w-4 h-4 icon-gradient" }),
1098
+ " ",
1099
+ sectionTitle
1100
+ ] }) }),
1101
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { ref: partnersRef, className: "relative overflow-hidden", children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
1102
+ "div",
1103
+ {
1104
+ className: `transition-all duration-1000 ease-out ${partnersVisible ? "opacity-100 scale-100" : "opacity-0 scale-95"}`,
1105
+ children: [
1106
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "relative h-56 md:h-64 lg:h-72 xl:h-80 mb-8", children: partners.map((group, slideIndex) => /* @__PURE__ */ jsxRuntimeExports.jsx(
1107
+ "div",
1108
+ {
1109
+ className: `absolute inset-0 transition-all duration-1000 ease-in-out ${slideIndex === currentPartnerSlide ? "opacity-100 translate-x-0" : slideIndex < currentPartnerSlide ? "opacity-0 -translate-x-full" : "opacity-0 translate-x-full"}`,
1110
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "grid grid-cols-2 sm:grid-cols-3 lg:grid-cols-4 gap-6 h-full px-2", children: group.map((partner, idx) => /* @__PURE__ */ jsxRuntimeExports.jsx(
1111
+ PartnerCard_2,
1112
+ {
1113
+ partner,
1114
+ idx,
1115
+ t,
1116
+ getLogoUrl
1117
+ },
1118
+ partner.id || idx
1119
+ )) })
1120
+ },
1121
+ slideIndex
1122
+ )) }),
1123
+ partners.length > 1 && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex justify-center space-x-2", children: partners.map((_, index2) => /* @__PURE__ */ jsxRuntimeExports.jsx(
1124
+ "button",
1125
+ {
1126
+ onClick: () => setCurrentPartnerSlide(index2),
1127
+ className: `w-3 h-3 rounded-full transition-all duration-300 ${index2 === currentPartnerSlide ? "bg-brand-primary scale-125 shadow-lg" : "bg-surface hover:bg-brand-primary/70"}`,
1128
+ "aria-label": `Slide ${index2 + 1}`
1129
+ },
1130
+ index2
1131
+ )) })
1132
+ ]
1133
+ }
1134
+ ) })
1135
+ ] }) });
1136
+ };
954
1137
  const MilestoneSection = ({ data, t, isDarkMode, getMilestoneTimeline, section }) => {
955
1138
  const [milestones, setMilestones] = require$$0.useState([]);
956
1139
  const [loading, setLoading] = require$$0.useState(true);
@@ -1124,7 +1307,7 @@ var __async = (__this, __arguments, generator) => {
1124
1307
  ] })
1125
1308
  ] }) });
1126
1309
  };
1127
- const PartnerListCard = ({ partner, idx, t, isDarkMode, getLogoUrl }) => {
1310
+ const PartnerListCard$1 = ({ partner, idx, t, isDarkMode, getLogoUrl }) => {
1128
1311
  const logoUrl = getLogoUrl(partner.logoUrl);
1129
1312
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
1130
1313
  "a",
@@ -1204,7 +1387,7 @@ var __async = (__this, __arguments, generator) => {
1204
1387
  }
1205
1388
  );
1206
1389
  };
1207
- function useWindowSize() {
1390
+ function useWindowSize$1() {
1208
1391
  const [width, setWidth] = require$$0.useState(
1209
1392
  typeof window !== "undefined" ? window.innerWidth : 1200
1210
1393
  );
@@ -1216,6 +1399,230 @@ var __async = (__this, __arguments, generator) => {
1216
1399
  return width;
1217
1400
  }
1218
1401
  const PartnerListSection = ({ t, getPartnerList, imageBaseUrl = "", section }) => {
1402
+ const [partnersData, setPartnersData] = require$$0.useState([]);
1403
+ const [error, setError] = require$$0.useState(null);
1404
+ const [loading, setLoading] = require$$0.useState(true);
1405
+ const [currentPartnerSlide, setCurrentPartnerSlide] = require$$0.useState(0);
1406
+ const [partnersVisible, setPartnersVisible] = require$$0.useState(false);
1407
+ const partnersRef = require$$0.useRef(null);
1408
+ const windowWidth = useWindowSize$1();
1409
+ const sectionTitle = (section == null ? void 0 : section.title) || t("partners.sectionTitle");
1410
+ const getLogoUrl = (logoUrl) => {
1411
+ if (!logoUrl) return null;
1412
+ if (logoUrl.startsWith("http")) return logoUrl;
1413
+ return `${imageBaseUrl}${logoUrl}`;
1414
+ };
1415
+ require$$0.useEffect(() => {
1416
+ const fetchData = () => __async(null, null, function* () {
1417
+ try {
1418
+ const res = yield getPartnerList();
1419
+ if (res.success) {
1420
+ setPartnersData(res.data || []);
1421
+ } else {
1422
+ setError(res.error || "Error fetching partners");
1423
+ }
1424
+ } catch (err) {
1425
+ setError(err.message);
1426
+ } finally {
1427
+ setLoading(false);
1428
+ }
1429
+ });
1430
+ fetchData();
1431
+ }, []);
1432
+ const partners = require$$0.useMemo(() => {
1433
+ const getPerSlide = () => {
1434
+ if (windowWidth < 640) return 2;
1435
+ if (windowWidth < 1024) return 3;
1436
+ return 4;
1437
+ };
1438
+ const grouped = [];
1439
+ const perSlide = getPerSlide();
1440
+ for (let i = 0; i < partnersData.length; i += perSlide) {
1441
+ grouped.push(partnersData.slice(i, i + perSlide));
1442
+ }
1443
+ return grouped;
1444
+ }, [partnersData, windowWidth]);
1445
+ require$$0.useEffect(() => {
1446
+ if (partners.length > 1) {
1447
+ const interval = setInterval(() => {
1448
+ setCurrentPartnerSlide((prev) => (prev + 1) % partners.length);
1449
+ }, 5e3);
1450
+ return () => clearInterval(interval);
1451
+ }
1452
+ }, [partners.length]);
1453
+ require$$0.useEffect(() => {
1454
+ const fallbackTimer = setTimeout(() => setPartnersVisible(true), 500);
1455
+ const observer = new IntersectionObserver(
1456
+ (entries) => {
1457
+ entries.forEach((entry) => {
1458
+ if (entry.isIntersecting) {
1459
+ clearTimeout(fallbackTimer);
1460
+ setPartnersVisible(true);
1461
+ observer.unobserve(entry.target);
1462
+ }
1463
+ });
1464
+ },
1465
+ { threshold: 0.1, rootMargin: "50px" }
1466
+ );
1467
+ if (partnersRef.current) observer.observe(partnersRef.current);
1468
+ else {
1469
+ clearTimeout(fallbackTimer);
1470
+ setPartnersVisible(true);
1471
+ }
1472
+ return () => {
1473
+ clearTimeout(fallbackTimer);
1474
+ if (partnersRef.current) observer.unobserve(partnersRef.current);
1475
+ };
1476
+ }, []);
1477
+ if (loading) {
1478
+ return /* @__PURE__ */ jsxRuntimeExports.jsx("section", { className: "py-20 text-center bg-body", children: /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-body text-muted", children: t("partners.loading") || "Đang tải danh sách đối tác..." }) });
1479
+ }
1480
+ if (error) {
1481
+ return /* @__PURE__ */ jsxRuntimeExports.jsx("section", { className: "py-20 text-center bg-body", children: /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-body text-brand-secondary", children: t("partners.error") || error }) });
1482
+ }
1483
+ if (!partnersData.length) return null;
1484
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(SectionWrapper, { children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8", children: [
1485
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "text-center mb-12", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "inline-block px-4 py-2 rounded-full border border-[var(--border-color)] bg-surface text-subtitle font-semibold text-brand-primary shadow-sm", children: [
1486
+ /* @__PURE__ */ jsxRuntimeExports.jsx(ThemeIcon, { name: "icon-partner", folder: "PartnersSection", className: "w-4 h-4 icon-gradient" }),
1487
+ " ",
1488
+ sectionTitle
1489
+ ] }) }),
1490
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { ref: partnersRef, className: "relative", children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
1491
+ "div",
1492
+ {
1493
+ className: `transition-all duration-1000 ease-out ${partnersVisible ? "opacity-100 scale-100" : "opacity-0 scale-95"}`,
1494
+ children: [
1495
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "relative overflow-hidden mb-12", children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { style: { minHeight: "320px" }, children: partners.map((group, slideIndex) => /* @__PURE__ */ jsxRuntimeExports.jsx(
1496
+ "div",
1497
+ {
1498
+ className: `absolute inset-0 w-full transition-all duration-1000 ease-in-out ${slideIndex === currentPartnerSlide ? "opacity-100 translate-x-0" : slideIndex < currentPartnerSlide ? "opacity-0 -translate-x-full" : "opacity-0 translate-x-full"}`,
1499
+ style: {
1500
+ zIndex: slideIndex === currentPartnerSlide ? 10 : 1
1501
+ },
1502
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "grid grid-cols-2 sm:grid-cols-3 lg:grid-cols-4 gap-8 px-2", children: group.map((partner, idx) => /* @__PURE__ */ jsxRuntimeExports.jsx(
1503
+ PartnerListCard$1,
1504
+ {
1505
+ partner,
1506
+ idx,
1507
+ t,
1508
+ getLogoUrl
1509
+ },
1510
+ partner.id || `${slideIndex}-${idx}`
1511
+ )) })
1512
+ },
1513
+ slideIndex
1514
+ )) }) }),
1515
+ partners.length > 1 && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex justify-center space-x-3", style: {
1516
+ position: "relative",
1517
+ zIndex: 100,
1518
+ paddingTop: "1rem"
1519
+ }, children: partners.map((_, index2) => /* @__PURE__ */ jsxRuntimeExports.jsx(
1520
+ "button",
1521
+ {
1522
+ onClick: () => setCurrentPartnerSlide(index2),
1523
+ style: {
1524
+ width: "12px",
1525
+ height: "12px",
1526
+ borderRadius: "50%",
1527
+ border: "none",
1528
+ cursor: "pointer",
1529
+ transition: "all 0.3s ease",
1530
+ backgroundColor: index2 === currentPartnerSlide ? "var(--brand-primary)" : "rgba(151, 151, 151, 0.8)",
1531
+ transform: index2 === currentPartnerSlide ? "scale(1.3)" : "scale(1)"
1532
+ },
1533
+ onMouseEnter: (e) => {
1534
+ if (index2 !== currentPartnerSlide) {
1535
+ e.currentTarget.style.backgroundColor = "rgba(151, 151, 151, 0.8)";
1536
+ }
1537
+ },
1538
+ onMouseLeave: (e) => {
1539
+ if (index2 !== currentPartnerSlide) {
1540
+ e.currentTarget.style.backgroundColor = "rgba(151, 151, 151, 0.8)";
1541
+ }
1542
+ },
1543
+ "aria-label": `Slide ${index2 + 1}`
1544
+ },
1545
+ index2
1546
+ )) })
1547
+ ]
1548
+ }
1549
+ ) })
1550
+ ] }) });
1551
+ };
1552
+ const PartnerListCard = ({ partner, idx, t, isDarkMode, getLogoUrl }) => {
1553
+ const logoUrl = getLogoUrl(partner.logoUrl);
1554
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(
1555
+ "a",
1556
+ {
1557
+ href: partner.websiteUrl || "#",
1558
+ target: partner.websiteUrl ? "_blank" : "_self",
1559
+ rel: partner.websiteUrl ? "noopener noreferrer" : "",
1560
+ className: "card",
1561
+ style: {
1562
+ animationDelay: `${idx * 0.1}s`,
1563
+ textDecoration: "none",
1564
+ overflow: "hidden",
1565
+ minHeight: "280px",
1566
+ padding: "1.5rem",
1567
+ display: "flex",
1568
+ flexDirection: "column"
1569
+ },
1570
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { style: {
1571
+ display: "flex",
1572
+ flexDirection: "column",
1573
+ alignItems: "center",
1574
+ justifyContent: "center",
1575
+ flex: 1
1576
+ }, children: logoUrl ? /* @__PURE__ */ jsxRuntimeExports.jsx("div", { style: {
1577
+ width: "100%",
1578
+ height: "100px",
1579
+ display: "flex",
1580
+ alignItems: "center",
1581
+ justifyContent: "center",
1582
+ marginBottom: "1rem"
1583
+ }, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
1584
+ "img",
1585
+ {
1586
+ src: logoUrl,
1587
+ alt: partner.name || t("partners.logoAlt") || "Partner logo",
1588
+ style: {
1589
+ maxWidth: "100%",
1590
+ maxHeight: "100%",
1591
+ objectFit: "contain",
1592
+ transition: "transform 300ms cubic-bezier(0.4, 0, 0.2, 1)"
1593
+ },
1594
+ onMouseEnter: (e) => {
1595
+ e.currentTarget.style.transform = "scale(1.05)";
1596
+ },
1597
+ onMouseLeave: (e) => {
1598
+ e.currentTarget.style.transform = "scale(1)";
1599
+ },
1600
+ loading: "lazy"
1601
+ }
1602
+ ) }) : /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "bg-surface", style: {
1603
+ width: "5rem",
1604
+ height: "5rem",
1605
+ borderRadius: "9999px",
1606
+ display: "flex",
1607
+ alignItems: "center",
1608
+ justifyContent: "center",
1609
+ marginBottom: "1rem"
1610
+ }, children: /* @__PURE__ */ jsxRuntimeExports.jsx("span", { style: { fontSize: "1.875rem" }, children: "🤝" }) }) })
1611
+ }
1612
+ );
1613
+ };
1614
+ function useWindowSize() {
1615
+ const [width, setWidth] = require$$0.useState(
1616
+ typeof window !== "undefined" ? window.innerWidth : 1200
1617
+ );
1618
+ require$$0.useEffect(() => {
1619
+ const handleResize = () => setWidth(window.innerWidth);
1620
+ window.addEventListener("resize", handleResize);
1621
+ return () => window.removeEventListener("resize", handleResize);
1622
+ }, []);
1623
+ return width;
1624
+ }
1625
+ const PartnerListSection_2 = ({ t, getPartnerList, imageBaseUrl = "", section }) => {
1219
1626
  const [partnersData, setPartnersData] = require$$0.useState([]);
1220
1627
  const [error, setError] = require$$0.useState(null);
1221
1628
  const [loading, setLoading] = require$$0.useState(true);
@@ -4944,10 +5351,12 @@ var __async = (__this, __arguments, generator) => {
4944
5351
  CompanyValues,
4945
5352
  TimelineSection,
4946
5353
  PartnerCard,
4947
- PartnersSection,
5354
+ PartnersSection: PartnersSection$1,
5355
+ PartnersSection_2: PartnersSection,
4948
5356
  MilestoneSection,
4949
5357
  TestimonialsSection,
4950
- PartnerListCard,
5358
+ PartnerListCard: PartnerListCard$1,
5359
+ PartnerListSection_2,
4951
5360
  PartnerListSection,
4952
5361
  ContactFormSection,
4953
5362
  ContactInfoSection,
@@ -4981,9 +5390,11 @@ var __async = (__this, __arguments, generator) => {
4981
5390
  exports2.PageChildrenSelectSection2 = PageChildrenSelectSection2;
4982
5391
  exports2.PageHighlightSection = PageHighlightSection;
4983
5392
  exports2.PartnerCard = PartnerCard;
4984
- exports2.PartnerListCard = PartnerListCard;
5393
+ exports2.PartnerListCard = PartnerListCard$1;
4985
5394
  exports2.PartnerListSection = PartnerListSection;
4986
- exports2.PartnersSection = PartnersSection;
5395
+ exports2.PartnerListSection_2 = PartnerListSection_2;
5396
+ exports2.PartnersSection = PartnersSection$1;
5397
+ exports2.PartnersSection_2 = PartnersSection;
4987
5398
  exports2.ProductListSection = ProductListSection;
4988
5399
  exports2.TestimonialsSection = TestimonialsSection;
4989
5400
  exports2.TextSection = TextSection;