nvis-fe-cms-libs 1.1.33 → 1.1.35
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.
|
@@ -516,7 +516,7 @@ var __async = (__this, __arguments, generator) => {
|
|
|
516
516
|
className = "",
|
|
517
517
|
children
|
|
518
518
|
}) => {
|
|
519
|
-
const defaultVariant = "
|
|
519
|
+
const defaultVariant = "softLight";
|
|
520
520
|
const currentVariant = variant || defaultVariant;
|
|
521
521
|
const variants = {
|
|
522
522
|
blue: {
|
|
@@ -4413,98 +4413,148 @@ var __async = (__this, __arguments, generator) => {
|
|
|
4413
4413
|
];
|
|
4414
4414
|
const defaultImage = "https://images.unsplash.com/photo-1460925895917-afdab827c52f?w=1200&h=800&fit=crop&q=80";
|
|
4415
4415
|
if (!highlightData.length) {
|
|
4416
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx("section", { className: `py-20 ${isDarkMode ? "bg-
|
|
4416
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx("section", { className: `py-20 ${isDarkMode ? "bg-slate-950" : "bg-white"}`, children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "max-w-7xl mx-auto px-4 text-center", children: [
|
|
4417
4417
|
/* @__PURE__ */ jsxRuntimeExports.jsx("h3", { className: `text-lg font-semibold mb-2 ${isDarkMode ? "text-white" : "text-gray-900"}`, children: t("highlight.noData.title") || "Chưa có dữ liệu" }),
|
|
4418
4418
|
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: `${isDarkMode ? "text-gray-300" : "text-gray-600"}`, children: t("highlight.noData.description") || "Hiện tại chưa có sản phẩm nào được thiết lập." })
|
|
4419
4419
|
] }) });
|
|
4420
4420
|
}
|
|
4421
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
4422
|
-
"div",
|
|
4423
|
-
{
|
|
4424
|
-
|
|
4425
|
-
|
|
4426
|
-
|
|
4427
|
-
|
|
4428
|
-
|
|
4429
|
-
|
|
4430
|
-
|
|
4431
|
-
|
|
4432
|
-
|
|
4433
|
-
|
|
4434
|
-
|
|
4435
|
-
|
|
4436
|
-
|
|
4437
|
-
|
|
4438
|
-
|
|
4439
|
-
|
|
4440
|
-
|
|
4441
|
-
|
|
4442
|
-
|
|
4443
|
-
|
|
4444
|
-
|
|
4445
|
-
|
|
4446
|
-
|
|
4447
|
-
|
|
4448
|
-
|
|
4449
|
-
|
|
4450
|
-
|
|
4451
|
-
|
|
4452
|
-
|
|
4453
|
-
|
|
4454
|
-
|
|
4455
|
-
|
|
4456
|
-
|
|
4457
|
-
|
|
4458
|
-
|
|
4459
|
-
|
|
4460
|
-
|
|
4461
|
-
|
|
4462
|
-
|
|
4463
|
-
|
|
4464
|
-
|
|
4465
|
-
|
|
4466
|
-
|
|
4467
|
-
|
|
4468
|
-
|
|
4469
|
-
|
|
4470
|
-
|
|
4471
|
-
|
|
4472
|
-
|
|
4473
|
-
|
|
4474
|
-
|
|
4475
|
-
|
|
4476
|
-
|
|
4477
|
-
|
|
4478
|
-
|
|
4479
|
-
|
|
4480
|
-
|
|
4481
|
-
|
|
4482
|
-
|
|
4483
|
-
|
|
4484
|
-
|
|
4485
|
-
|
|
4486
|
-
|
|
4487
|
-
|
|
4488
|
-
|
|
4489
|
-
|
|
4490
|
-
|
|
4491
|
-
|
|
4492
|
-
|
|
4493
|
-
|
|
4494
|
-
|
|
4495
|
-
|
|
4496
|
-
|
|
4497
|
-
|
|
4498
|
-
|
|
4499
|
-
|
|
4500
|
-
|
|
4501
|
-
|
|
4502
|
-
|
|
4503
|
-
|
|
4504
|
-
|
|
4505
|
-
|
|
4506
|
-
|
|
4507
|
-
|
|
4421
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsxs("section", { className: `relative overflow-hidden ${isDarkMode ? "bg-gradient-to-br from-slate-950 via-slate-900 to-slate-950" : "bg-gradient-to-br from-white via-blue-50/30 to-purple-50/30"}`, children: [
|
|
4422
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "absolute inset-0 overflow-hidden pointer-events-none opacity-30", children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: `absolute top-0 left-0 w-full h-full ${isDarkMode ? "bg-grid-white" : "bg-grid-slate"}` }) }),
|
|
4423
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "absolute inset-0 overflow-hidden pointer-events-none", children: [
|
|
4424
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
4425
|
+
"div",
|
|
4426
|
+
{
|
|
4427
|
+
className: `absolute top-20 right-10 w-96 h-96 rounded-full blur-3xl opacity-20 animate-blob ${isDarkMode ? "bg-blue-500" : "bg-blue-400"}`
|
|
4428
|
+
}
|
|
4429
|
+
),
|
|
4430
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
4431
|
+
"div",
|
|
4432
|
+
{
|
|
4433
|
+
className: `absolute top-40 -left-20 w-96 h-96 rounded-full blur-3xl opacity-20 animate-blob animation-delay-2000 ${isDarkMode ? "bg-purple-500" : "bg-purple-400"}`
|
|
4434
|
+
}
|
|
4435
|
+
),
|
|
4436
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
4437
|
+
"div",
|
|
4438
|
+
{
|
|
4439
|
+
className: `absolute -bottom-20 right-40 w-96 h-96 rounded-full blur-3xl opacity-20 animate-blob animation-delay-4000 ${isDarkMode ? "bg-pink-500" : "bg-pink-400"}`
|
|
4440
|
+
}
|
|
4441
|
+
)
|
|
4442
|
+
] }),
|
|
4443
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "relative w-full px-4 sm:px-6 lg:px-8 py-16 sm:py-24", children: [
|
|
4444
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "relative w-full", children: highlightData.map((item, index2) => {
|
|
4445
|
+
const color = gradientColors[index2 % gradientColors.length];
|
|
4446
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
4447
|
+
"div",
|
|
4448
|
+
{
|
|
4449
|
+
className: `transition-opacity duration-700 ${activeTab === index2 ? "opacity-100" : "opacity-0 absolute inset-0 pointer-events-none"}`,
|
|
4450
|
+
children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: `${isDarkMode ? "bg-gradient-to-br from-slate-900/30 to-slate-950/30 border-slate-700/20" : "bg-white/40 border-white/30"} backdrop-blur-md rounded-3xl shadow-lg overflow-hidden border transition-colors duration-500`, children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "grid grid-cols-1 lg:grid-cols-2 gap-0 min-h-[420px] lg:h-auto", children: [
|
|
4451
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "relative h-[280px] lg:h-full overflow-hidden group", children: [
|
|
4452
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
4453
|
+
"img",
|
|
4454
|
+
{
|
|
4455
|
+
src: item.image || defaultImage,
|
|
4456
|
+
alt: item.title,
|
|
4457
|
+
className: "w-full h-full object-cover transition-transform duration-700 group-hover:scale-110",
|
|
4458
|
+
onError: (e) => {
|
|
4459
|
+
e.target.src = defaultImage;
|
|
4460
|
+
}
|
|
4461
|
+
}
|
|
4462
|
+
),
|
|
4463
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: `absolute inset-0 bg-gradient-to-br ${color} opacity-20` }),
|
|
4464
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "absolute inset-0 bg-gradient-to-t from-black/60 via-transparent to-transparent" }),
|
|
4465
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "absolute top-8 left-8", children: /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: `inline-block bg-gradient-to-r ${color} text-white px-6 py-3 rounded-full text-sm font-bold shadow-xl`, children: item.tag }) })
|
|
4466
|
+
] }),
|
|
4467
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "p-5 lg:p-8 flex flex-col justify-center", children: [
|
|
4468
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("h1", { className: `text-3xl lg:text-4xl font-black mb-3 bg-gradient-to-r ${color} bg-clip-text text-transparent`, children: item.title }),
|
|
4469
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: `${isDarkMode ? "text-gray-300" : "text-gray-600"} text-base leading-relaxed mb-5`, children: item.description }),
|
|
4470
|
+
item.features && item.features.length > 0 && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "grid grid-cols-1 sm:grid-cols-2 gap-2 mb-6", children: item.features.map((feature, idx) => /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-start gap-2 group", children: [
|
|
4471
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: `mt-0.5 w-4 h-4 rounded-full bg-gradient-to-r ${color} flex items-center justify-center flex-shrink-0`, children: /* @__PURE__ */ jsxRuntimeExports.jsx("svg", { className: "w-2.5 h-2.5 text-white", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ jsxRuntimeExports.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 3, d: "M5 13l4 4L19 7" }) }) }),
|
|
4472
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: `${isDarkMode ? "text-gray-300 group-hover:text-white" : "text-gray-700 group-hover:text-gray-900"} font-medium text-xs transition-colors`, children: feature })
|
|
4473
|
+
] }, idx)) }),
|
|
4474
|
+
item.tagKeys.length > 0 && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "mb-6", children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex flex-wrap gap-2", children: item.tagKeys.map((tag, idx) => /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
4475
|
+
"span",
|
|
4476
|
+
{
|
|
4477
|
+
className: `px-3 py-1 rounded-lg text-xs font-semibold transition-all duration-300 ${isDarkMode ? "bg-gray-700/50 text-gray-300 hover:bg-gray-700" : "bg-gray-100 text-gray-700 hover:bg-gray-200"}`,
|
|
4478
|
+
children: tag.key
|
|
4479
|
+
},
|
|
4480
|
+
idx
|
|
4481
|
+
)) }) }),
|
|
4482
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
4483
|
+
"button",
|
|
4484
|
+
{
|
|
4485
|
+
onClick: () => handleNavigate(item.slug),
|
|
4486
|
+
className: `group relative px-6 py-3 rounded-xl font-bold text-sm transition-all duration-300 transform hover:scale-105 hover:shadow-2xl overflow-hidden bg-gradient-to-r ${color} text-white shadow-xl w-full`,
|
|
4487
|
+
children: [
|
|
4488
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "relative z-10 flex items-center justify-center gap-2", children: [
|
|
4489
|
+
t("highlight.cta") || "Khám phá",
|
|
4490
|
+
" ",
|
|
4491
|
+
item.title,
|
|
4492
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("svg", { className: "w-5 h-5 group-hover:translate-x-1 transition-transform", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ jsxRuntimeExports.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M17 8l4 4m0 0l-4 4m4-4H3" }) })
|
|
4493
|
+
] }),
|
|
4494
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "absolute inset-0 bg-white/20 transform scale-x-0 group-hover:scale-x-100 transition-transform origin-left" })
|
|
4495
|
+
]
|
|
4496
|
+
}
|
|
4497
|
+
)
|
|
4498
|
+
] })
|
|
4499
|
+
] }) })
|
|
4500
|
+
},
|
|
4501
|
+
index2
|
|
4502
|
+
);
|
|
4503
|
+
}) }),
|
|
4504
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex flex-wrap justify-center gap-4 mt-12", children: highlightData.map((item, index2) => {
|
|
4505
|
+
const color = gradientColors[index2 % gradientColors.length];
|
|
4506
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
4507
|
+
"button",
|
|
4508
|
+
{
|
|
4509
|
+
onClick: () => setActiveTab(index2),
|
|
4510
|
+
className: `group relative px-8 py-4 rounded-xl font-bold text-lg transition-all duration-300 transform hover:scale-105 overflow-hidden ${activeTab === index2 ? `bg-gradient-to-r ${color} text-white shadow-xl` : isDarkMode ? "bg-gray-800/50 text-gray-300 hover:shadow-xl shadow-lg border border-gray-700/50 backdrop-blur-sm" : "bg-white text-gray-700 hover:shadow-xl shadow-lg"}`,
|
|
4511
|
+
children: [
|
|
4512
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "relative z-10", children: item.title }),
|
|
4513
|
+
activeTab !== index2 && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: `absolute inset-0 bg-gradient-to-r ${color} opacity-0 group-hover:opacity-100 transition-opacity duration-300` })
|
|
4514
|
+
]
|
|
4515
|
+
},
|
|
4516
|
+
index2
|
|
4517
|
+
);
|
|
4518
|
+
}) })
|
|
4519
|
+
] }),
|
|
4520
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("style", { jsx: true, children: `
|
|
4521
|
+
@keyframes blob {
|
|
4522
|
+
0%, 100% {
|
|
4523
|
+
transform: translate(0px, 0px) scale(1);
|
|
4524
|
+
}
|
|
4525
|
+
33% {
|
|
4526
|
+
transform: translate(30px, -50px) scale(1.1);
|
|
4527
|
+
}
|
|
4528
|
+
66% {
|
|
4529
|
+
transform: translate(-20px, 20px) scale(0.9);
|
|
4530
|
+
}
|
|
4531
|
+
}
|
|
4532
|
+
|
|
4533
|
+
.animate-blob {
|
|
4534
|
+
animation: blob 7s ease-in-out infinite;
|
|
4535
|
+
}
|
|
4536
|
+
|
|
4537
|
+
.animation-delay-2000 {
|
|
4538
|
+
animation-delay: 2s;
|
|
4539
|
+
}
|
|
4540
|
+
|
|
4541
|
+
.animation-delay-4000 {
|
|
4542
|
+
animation-delay: 4s;
|
|
4543
|
+
}
|
|
4544
|
+
|
|
4545
|
+
.bg-grid-white {
|
|
4546
|
+
background-image: linear-gradient(rgba(255, 255, 255, 0.05) 1px, transparent 1px),
|
|
4547
|
+
linear-gradient(90deg, rgba(255, 255, 255, 0.05) 1px, transparent 1px);
|
|
4548
|
+
background-size: 50px 50px;
|
|
4549
|
+
}
|
|
4550
|
+
|
|
4551
|
+
.bg-grid-slate {
|
|
4552
|
+
background-image: linear-gradient(rgba(0, 0, 0, 0.03) 1px, transparent 1px),
|
|
4553
|
+
linear-gradient(90deg, rgba(0, 0, 0, 0.03) 1px, transparent 1px);
|
|
4554
|
+
background-size: 50px 50px;
|
|
4555
|
+
}
|
|
4556
|
+
` })
|
|
4557
|
+
] });
|
|
4508
4558
|
};
|
|
4509
4559
|
const PageChildrenSelectSection = ({ data, isDarkMode, t, section, imageBaseUrl = "" }) => {
|
|
4510
4560
|
var _a;
|
|
@@ -4517,9 +4567,6 @@ var __async = (__this, __arguments, generator) => {
|
|
|
4517
4567
|
if (!pages || pages.length === 0) {
|
|
4518
4568
|
return null;
|
|
4519
4569
|
}
|
|
4520
|
-
const handleNavigate = (slug) => {
|
|
4521
|
-
window.location.href = slug;
|
|
4522
|
-
};
|
|
4523
4570
|
const handleLoadMore = () => {
|
|
4524
4571
|
setVisibleCount((prev) => prev + 8);
|
|
4525
4572
|
};
|
|
@@ -4558,9 +4605,9 @@ var __async = (__this, __arguments, generator) => {
|
|
|
4558
4605
|
}, children: visiblePages.map((page) => {
|
|
4559
4606
|
const iconUrl = getImageUrl(page.icon);
|
|
4560
4607
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
4561
|
-
"
|
|
4608
|
+
"a",
|
|
4562
4609
|
{
|
|
4563
|
-
|
|
4610
|
+
href: page.slug,
|
|
4564
4611
|
style: {
|
|
4565
4612
|
backgroundColor: isDarkMode ? "#1f2937" : "#ffffff",
|
|
4566
4613
|
borderRadius: "12px",
|
|
@@ -4573,7 +4620,8 @@ var __async = (__this, __arguments, generator) => {
|
|
|
4573
4620
|
flexDirection: "column",
|
|
4574
4621
|
alignItems: "center",
|
|
4575
4622
|
textAlign: "center",
|
|
4576
|
-
gap: "16px"
|
|
4623
|
+
gap: "16px",
|
|
4624
|
+
textDecoration: "none"
|
|
4577
4625
|
},
|
|
4578
4626
|
onMouseEnter: (e) => {
|
|
4579
4627
|
e.currentTarget.style.transform = "translateY(-8px)";
|
|
@@ -4662,9 +4710,6 @@ var __async = (__this, __arguments, generator) => {
|
|
|
4662
4710
|
if (!pages || pages.length === 0) {
|
|
4663
4711
|
return null;
|
|
4664
4712
|
}
|
|
4665
|
-
const handleNavigate = (slug) => {
|
|
4666
|
-
window.location.href = slug;
|
|
4667
|
-
};
|
|
4668
4713
|
const handleLoadMore = () => {
|
|
4669
4714
|
setVisibleCount((prev) => prev + 5);
|
|
4670
4715
|
};
|
|
@@ -4694,9 +4739,9 @@ var __async = (__this, __arguments, generator) => {
|
|
|
4694
4739
|
const mainImage = ((_b = (_a2 = page.pageImages) == null ? void 0 : _a2.find((img) => img.isMain)) == null ? void 0 : _b.url) || page.icon;
|
|
4695
4740
|
const imageUrl = getImageUrl(mainImage);
|
|
4696
4741
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
4697
|
-
"
|
|
4742
|
+
"a",
|
|
4698
4743
|
{
|
|
4699
|
-
|
|
4744
|
+
href: page.slug,
|
|
4700
4745
|
style: {
|
|
4701
4746
|
display: "flex",
|
|
4702
4747
|
gap: "20px",
|
|
@@ -4706,7 +4751,8 @@ var __async = (__this, __arguments, generator) => {
|
|
|
4706
4751
|
cursor: "pointer",
|
|
4707
4752
|
transition: "all 0.2s",
|
|
4708
4753
|
border: `1px solid ${isDarkMode ? "#374151" : "#e5e7eb"}`,
|
|
4709
|
-
padding: "16px"
|
|
4754
|
+
padding: "16px",
|
|
4755
|
+
textDecoration: "none"
|
|
4710
4756
|
},
|
|
4711
4757
|
onMouseEnter: (e) => {
|
|
4712
4758
|
e.currentTarget.style.backgroundColor = isDarkMode ? "#374151" : "#f9fafb";
|
|
@@ -4823,9 +4869,6 @@ var __async = (__this, __arguments, generator) => {
|
|
|
4823
4869
|
if (!pages || pages.length === 0) {
|
|
4824
4870
|
return null;
|
|
4825
4871
|
}
|
|
4826
|
-
const handleNavigate = (slug) => {
|
|
4827
|
-
window.location.href = slug;
|
|
4828
|
-
};
|
|
4829
4872
|
const getImageUrl = (url) => {
|
|
4830
4873
|
if (!url) return "";
|
|
4831
4874
|
if (url.startsWith("http://") || url.startsWith("https://")) return url;
|
|
@@ -4856,9 +4899,9 @@ var __async = (__this, __arguments, generator) => {
|
|
|
4856
4899
|
const mainImage = ((_b = (_a2 = page.pageImages) == null ? void 0 : _a2.find((img) => img.isMain)) == null ? void 0 : _b.url) || page.icon;
|
|
4857
4900
|
const imageUrl = getImageUrl(mainImage);
|
|
4858
4901
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
4859
|
-
"
|
|
4902
|
+
"a",
|
|
4860
4903
|
{
|
|
4861
|
-
|
|
4904
|
+
href: page.slug,
|
|
4862
4905
|
style: {
|
|
4863
4906
|
backgroundColor: isDarkMode ? "#1e293b" : "#ffffff",
|
|
4864
4907
|
borderRadius: "16px",
|
|
@@ -4866,7 +4909,9 @@ var __async = (__this, __arguments, generator) => {
|
|
|
4866
4909
|
cursor: "pointer",
|
|
4867
4910
|
transition: "all 0.3s",
|
|
4868
4911
|
boxShadow: isDarkMode ? "0 4px 6px -1px rgba(0, 0, 0, 0.5)" : "0 4px 6px -1px rgba(0, 0, 0, 0.1)",
|
|
4869
|
-
border: `1px solid ${isDarkMode ? "#334155" : "#e2e8f0"}
|
|
4912
|
+
border: `1px solid ${isDarkMode ? "#334155" : "#e2e8f0"}`,
|
|
4913
|
+
textDecoration: "none",
|
|
4914
|
+
display: "block"
|
|
4870
4915
|
},
|
|
4871
4916
|
onMouseEnter: (e) => {
|
|
4872
4917
|
e.currentTarget.style.transform = "translateY(-8px)";
|