nvis-fe-cms-libs 2.1.6 → 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.
@@ -971,108 +971,57 @@ var __async = (__this, __arguments, generator) => {
971
971
  return () => itemRef.current && observer.unobserve(itemRef.current);
972
972
  }, []);
973
973
  const logoSrc = getLogoUrl(partner.logoUrl);
974
- const cardContent = /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
975
- isDarkMode && /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
976
- /* @__PURE__ */ jsxRuntimeExports.jsx(
977
- "div",
978
- {
979
- className: "absolute w-12 h-12 rounded-full",
980
- style: { left: "10%", top: "20%", background: "rgba(255,255,255,0.05)" }
981
- }
982
- ),
983
- /* @__PURE__ */ jsxRuntimeExports.jsx(
984
- "div",
985
- {
986
- className: "absolute w-10 h-10 rounded-full",
987
- style: { right: "30%", bottom: "10%", background: "rgba(255,255,255,0.05)" }
988
- }
989
- ),
990
- /* @__PURE__ */ jsxRuntimeExports.jsx(
991
- "div",
992
- {
993
- className: "absolute w-14 h-14 rounded-md",
994
- style: { left: "20%", bottom: "30%", background: "rgba(255,255,255,0.05)" }
995
- }
996
- ),
997
- /* @__PURE__ */ jsxRuntimeExports.jsx(
998
- "div",
999
- {
1000
- className: "absolute inset-0 opacity-20",
1001
- style: {
1002
- backgroundImage: 'url("data:image/svg+xml,%3Csvg width=\\"60\\" height=\\"60\\" viewBox=\\"0 0 60 60\\" xmlns=\\"http://www.w3.org/2000/svg\\"%3E%3Cg fill=\\"none\\" fill-rule=\\"evenodd\\"%3E%3Cg fill=\\"%23ffffff\\" fill-opacity=\\"0.05\\"%3E%3Ccircle cx=\\"30\\" cy=\\"30\\" r=\\"2\\"/\\%3E%3C/g\\%3E%3C/g\\%3E%3C/svg\\%3E")'
1003
- }
1004
- }
1005
- )
1006
- ] }),
1007
- /* @__PURE__ */ jsxRuntimeExports.jsx(
1008
- "div",
1009
- {
1010
- className: "w-full rounded-lg overflow-hidden bg-surface flex items-center justify-center p-4",
1011
- style: {
1012
- height: "75%",
1013
- borderWidth: "1px",
1014
- borderStyle: "solid",
1015
- borderColor: isHovered ? "var(--brand-primary)" : "var(--border-color)",
1016
- backgroundColor: isHovered ? "var(--bg-body)" : "var(--bg-surface)",
1017
- transition: "all 0.3s ease"
1018
- },
1019
- children: logoSrc ? /* @__PURE__ */ jsxRuntimeExports.jsx(
1020
- "img",
1021
- {
1022
- src: logoSrc,
1023
- alt: partner.name,
1024
- className: "max-w-full max-h-full object-contain",
1025
- style: {
1026
- filter: isHovered ? "grayscale(0) opacity(1)" : isDarkMode ? "grayscale(0.3) opacity(0.8)" : "grayscale(0.2) opacity(0.9)",
1027
- transform: isHovered ? "scale(1.05)" : "scale(1)",
1028
- transition: "all 0.3s ease"
1029
- }
1030
- }
1031
- ) : /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "w-full h-full bg-gradient-brand flex items-center justify-center", children: /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-white font-bold text-center text-small px-1", children: partner.name }) })
1032
- }
1033
- ),
1034
- partner.websiteUrl && /* @__PURE__ */ jsxRuntimeExports.jsxs(
1035
- "div",
1036
- {
1037
- className: "card-link justify-center",
1038
- style: {
1039
- opacity: isHovered ? 1 : 0,
1040
- transform: isHovered ? "translateY(0)" : "translateY(4px)",
1041
- transition: "all 0.3s ease"
1042
- },
1043
- children: [
1044
- t("partners.viewDetails") || "Xem chi tiết",
1045
- " →"
1046
- ]
1047
- }
1048
- )
1049
- ] });
1050
- const baseClasses = `card items-center justify-center transition-all duration-700 ease-out overflow-hidden ${visible ? "opacity-100 scale-100" : "opacity-0 scale-75"}`;
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"}`;
1051
1009
  const dynamicStyles = {
1052
- transitionDelay: `${idx * 150}ms`
1010
+ transitionDelay: `${idx * 150}ms`,
1011
+ textDecoration: "none",
1012
+ overflow: "hidden",
1013
+ minHeight: "280px",
1014
+ padding: "1.5rem",
1015
+ display: "flex",
1016
+ flexDirection: "column"
1053
1017
  };
1054
- if (partner.websiteUrl) {
1055
- return /* @__PURE__ */ jsxRuntimeExports.jsx(
1056
- "a",
1057
- {
1058
- ref: itemRef,
1059
- href: partner.websiteUrl,
1060
- target: "_blank",
1061
- rel: "noopener noreferrer",
1062
- className: `${baseClasses} cursor-pointer`,
1063
- style: __spreadProps(__spreadValues({}, dynamicStyles), {
1064
- textDecoration: "none"
1065
- }),
1066
- onMouseEnter: () => setIsHovered(true),
1067
- onMouseLeave: () => setIsHovered(false),
1068
- children: cardContent
1069
- }
1070
- );
1071
- }
1072
1018
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
1073
- "div",
1019
+ "a",
1074
1020
  {
1075
1021
  ref: itemRef,
1022
+ href: partner.websiteUrl || "#",
1023
+ target: partner.websiteUrl ? "_blank" : "_self",
1024
+ rel: partner.websiteUrl ? "noopener noreferrer" : "",
1076
1025
  className: baseClasses,
1077
1026
  style: dynamicStyles,
1078
1027
  onMouseEnter: () => setIsHovered(true),