nvis-fe-cms-libs 2.0.6 → 2.0.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.
|
@@ -3391,18 +3391,52 @@ const DiagramSection = ({ data, t, isDarkMode }) => {
|
|
|
3391
3391
|
] })
|
|
3392
3392
|
] });
|
|
3393
3393
|
};
|
|
3394
|
-
const MindMapNode = ({ id, icon: Icon2, text, color, position, delay = 0, onDragStart, isDragging, onClick, description }) => {
|
|
3394
|
+
const MindMapNode = ({ id, icon: Icon2, text, color, position, delay = 0, onDragStart, isDragging, onClick, description, isDarkMode }) => {
|
|
3395
3395
|
const [isHovered, setIsHovered] = useState(false);
|
|
3396
3396
|
const [dragStartPos, setDragStartPos] = useState(null);
|
|
3397
3397
|
const [hasMoved, setHasMoved] = useState(false);
|
|
3398
|
-
const
|
|
3399
|
-
|
|
3400
|
-
|
|
3401
|
-
|
|
3402
|
-
|
|
3403
|
-
|
|
3404
|
-
|
|
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;
|
|
3405
3438
|
};
|
|
3439
|
+
const colorStyle = getColorStyles(color);
|
|
3406
3440
|
const handleMouseDown = (e) => {
|
|
3407
3441
|
setDragStartPos({ x: e.clientX, y: e.clientY });
|
|
3408
3442
|
setHasMoved(false);
|
|
@@ -3485,12 +3519,45 @@ const MindMapNode = ({ id, icon: Icon2, text, color, position, delay = 0, onDrag
|
|
|
3485
3519
|
onTouchMove: handleTouchMove,
|
|
3486
3520
|
onTouchEnd: handleTouchEnd,
|
|
3487
3521
|
children: [
|
|
3488
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
3489
|
-
|
|
3490
|
-
|
|
3491
|
-
|
|
3492
|
-
|
|
3493
|
-
|
|
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 ${colorStyle.shadowColor}4D`,
|
|
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
|
+
)
|
|
3494
3561
|
]
|
|
3495
3562
|
}
|
|
3496
3563
|
);
|
|
@@ -3711,49 +3778,108 @@ const DiagramSection2 = ({ data, t, isDarkMode }) => {
|
|
|
3711
3778
|
"div",
|
|
3712
3779
|
{
|
|
3713
3780
|
ref: containerRef,
|
|
3714
|
-
className:
|
|
3715
|
-
style: {
|
|
3781
|
+
className: "mind-map-container relative w-full h-screen overflow-hidden bg-section-soft",
|
|
3782
|
+
style: {
|
|
3783
|
+
touchAction: "none"
|
|
3784
|
+
},
|
|
3716
3785
|
children: [
|
|
3717
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
3718
|
-
/* @__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"}` }),
|
|
3719
|
-
/* @__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" }),
|
|
3720
|
-
/* @__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" })
|
|
3721
|
-
] }),
|
|
3722
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: `absolute inset-0 pointer-events-none ${isDarkMode ? "opacity-60" : "opacity-40"}`, children: [...Array(150)].map((_, i) => /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
3786
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
3723
3787
|
"div",
|
|
3724
3788
|
{
|
|
3725
|
-
className: "absolute
|
|
3726
|
-
style: {
|
|
3727
|
-
|
|
3728
|
-
|
|
3729
|
-
|
|
3730
|
-
|
|
3731
|
-
|
|
3732
|
-
|
|
3733
|
-
|
|
3734
|
-
|
|
3735
|
-
|
|
3736
|
-
|
|
3737
|
-
|
|
3738
|
-
|
|
3739
|
-
|
|
3740
|
-
|
|
3741
|
-
|
|
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(
|
|
3843
|
+
"div",
|
|
3844
|
+
{
|
|
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
|
+
),
|
|
3742
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: [
|
|
3743
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
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
|
+
}
|
|
3868
|
+
}
|
|
3869
|
+
),
|
|
3744
3870
|
/* @__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" }) })
|
|
3745
3871
|
] }) }),
|
|
3746
3872
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("svg", { className: "absolute inset-0 w-full h-full pointer-events-none", style: { zIndex: 1 }, children: [
|
|
3747
3873
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("defs", { children: [
|
|
3748
3874
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("linearGradient", { id: "circuit-gradient", x1: "0%", y1: "0%", x2: "100%", y2: "0%", children: [
|
|
3749
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("stop", { offset: "0%", stopColor: "
|
|
3750
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("stop", { offset: "50%", stopColor: "
|
|
3751
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("stop", { offset: "100%", stopColor: "
|
|
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
3878
|
] }),
|
|
3753
3879
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("linearGradient", { id: "sparkle-gradient", x1: "0%", y1: "0%", x2: "100%", y2: "100%", children: [
|
|
3754
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("stop", { offset: "0%", stopColor: "
|
|
3755
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("stop", { offset: "50%", stopColor: "
|
|
3756
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("stop", { offset: "100%", stopColor: "
|
|
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
3883
|
] }),
|
|
3758
3884
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("filter", { id: "glow", children: [
|
|
3759
3885
|
/* @__PURE__ */ jsxRuntimeExports.jsx("feGaussianBlur", { stdDeviation: "4", result: "coloredBlur" }),
|
|
@@ -3768,11 +3894,11 @@ const DiagramSection2 = ({ data, t, isDarkMode }) => {
|
|
|
3768
3894
|
"path",
|
|
3769
3895
|
{
|
|
3770
3896
|
d: line.path,
|
|
3771
|
-
stroke: "
|
|
3897
|
+
stroke: "var(--gradient-brand-soft-start)",
|
|
3772
3898
|
strokeWidth: "6",
|
|
3773
3899
|
fill: "none",
|
|
3774
3900
|
className: "transition-all duration-200",
|
|
3775
|
-
style: { filter: "blur(8px)" }
|
|
3901
|
+
style: { filter: "blur(8px)", opacity: 0.2 }
|
|
3776
3902
|
}
|
|
3777
3903
|
),
|
|
3778
3904
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
@@ -3804,7 +3930,8 @@ const DiagramSection2 = ({ data, t, isDarkMode }) => {
|
|
|
3804
3930
|
delay: node.delay,
|
|
3805
3931
|
onDragStart: handleNodeDragStart,
|
|
3806
3932
|
isDragging: draggingNodeId === node.id,
|
|
3807
|
-
onClick: handleNodeClick
|
|
3933
|
+
onClick: handleNodeClick,
|
|
3934
|
+
isDarkMode
|
|
3808
3935
|
},
|
|
3809
3936
|
node.id
|
|
3810
3937
|
)) }),
|
|
@@ -3838,15 +3965,52 @@ const DiagramSection2 = ({ data, t, isDarkMode }) => {
|
|
|
3838
3965
|
},
|
|
3839
3966
|
onTouchEnd: () => setIsDragging(false),
|
|
3840
3967
|
children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "relative", children: [
|
|
3841
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
3842
|
-
|
|
3843
|
-
|
|
3844
|
-
|
|
3845
|
-
|
|
3846
|
-
|
|
3847
|
-
|
|
3848
|
-
|
|
3849
|
-
|
|
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: "var(--brand-primary)",
|
|
3984
|
+
borderOpacity: 0.5,
|
|
3985
|
+
transform: isDragging ? "scale(1.1)" : "scale(1)",
|
|
3986
|
+
transition: "transform 0.3s ease"
|
|
3987
|
+
},
|
|
3988
|
+
children: [
|
|
3989
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
3990
|
+
"div",
|
|
3991
|
+
{
|
|
3992
|
+
className: "p-2 sm:p-3 rounded-xl backdrop-blur-sm",
|
|
3993
|
+
style: { backgroundColor: "rgba(255, 255, 255, 0.25)" },
|
|
3994
|
+
children: /* @__PURE__ */ jsxRuntimeExports.jsx(Briefcase, { className: "w-5 h-5 sm:w-7 sm:h-7 text-inverse" })
|
|
3995
|
+
}
|
|
3996
|
+
),
|
|
3997
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "text-center", children: [
|
|
3998
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("h1", { className: "text-inverse text-body sm:text-subtitle", children: diagramName }),
|
|
3999
|
+
diagramDescription && /* @__PURE__ */ jsxRuntimeExports.jsx("h2", { className: "text-inverse text-caption sm:text-small opacity-90", children: diagramDescription })
|
|
4000
|
+
] })
|
|
4001
|
+
]
|
|
4002
|
+
}
|
|
4003
|
+
),
|
|
4004
|
+
!isDragging && /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
4005
|
+
"div",
|
|
4006
|
+
{
|
|
4007
|
+
className: `absolute -bottom-8 left-1/2 transform -translate-x-1/2 text-caption whitespace-nowrap ${isDarkMode ? "text-brand-primary" : "text-brand-secondary"}`,
|
|
4008
|
+
style: {
|
|
4009
|
+
opacity: 0.6
|
|
4010
|
+
},
|
|
4011
|
+
children: safeT("diagram.dragToMove")
|
|
4012
|
+
}
|
|
4013
|
+
)
|
|
3850
4014
|
] })
|
|
3851
4015
|
}
|
|
3852
4016
|
),
|
|
@@ -3866,7 +4030,6 @@ const DiagramSection2 = ({ data, t, isDarkMode }) => {
|
|
|
3866
4030
|
animation: fadeIn 0.8s cubic-bezier(0.4, 0, 0.2, 1) forwards;
|
|
3867
4031
|
opacity: 0;
|
|
3868
4032
|
}
|
|
3869
|
-
.animate-twinkle { animation: twinkle 5s ease-in-out infinite; }
|
|
3870
4033
|
` })
|
|
3871
4034
|
]
|
|
3872
4035
|
}
|
|
@@ -4125,14 +4288,14 @@ const PageHighlightSection = ({ data, t, isDarkMode, imageBaseUrl = "" }) => {
|
|
|
4125
4288
|
"div",
|
|
4126
4289
|
{
|
|
4127
4290
|
className: `transition-opacity duration-700 ${activeTab === index2 ? "opacity-100" : "opacity-0 absolute inset-0 pointer-events-none"}`,
|
|
4128
|
-
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
|
|
4129
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "relative h-[280px] lg:h-
|
|
4291
|
+
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", children: [
|
|
4292
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "relative h-[280px] lg:h-[500px] overflow-hidden group", children: [
|
|
4130
4293
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
4131
4294
|
"img",
|
|
4132
4295
|
{
|
|
4133
4296
|
src: item.image || defaultImage,
|
|
4134
4297
|
alt: item.title,
|
|
4135
|
-
className: "w-full h-full object-cover transition-transform duration-700 group-hover:scale-110",
|
|
4298
|
+
className: "absolute inset-0 w-full h-full object-cover transition-transform duration-700 group-hover:scale-110",
|
|
4136
4299
|
onError: (e) => {
|
|
4137
4300
|
e.target.src = defaultImage;
|
|
4138
4301
|
}
|
|
@@ -4141,10 +4304,10 @@ const PageHighlightSection = ({ data, t, isDarkMode, imageBaseUrl = "" }) => {
|
|
|
4141
4304
|
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: `absolute inset-0 bg-gradient-to-br ${color} opacity-20` }),
|
|
4142
4305
|
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "absolute inset-0 bg-gradient-to-t from-black/60 via-transparent to-transparent" })
|
|
4143
4306
|
] }),
|
|
4144
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "p-5 lg:p-8 flex flex-col justify-center", children: [
|
|
4307
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "p-5 lg:p-8 flex flex-col justify-center h-[280px] lg:h-[500px]", children: [
|
|
4145
4308
|
/* @__PURE__ */ jsxRuntimeExports.jsx("h1", { className: "text-3xl lg:text-4xl font-black mb-3 text-gradient-brand", children: item.title }),
|
|
4146
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "mb-6 text-muted", children: item.description }),
|
|
4147
|
-
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: [
|
|
4309
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "mb-6 text-muted line-clamp-3 lg:line-clamp-4", children: item.description }),
|
|
4310
|
+
item.features && item.features.length > 0 && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "grid grid-cols-1 sm:grid-cols-2 gap-2 mb-6 overflow-y-auto max-h-32 lg:max-h-48", children: item.features.map((feature, idx) => /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-start gap-2 group", children: [
|
|
4148
4311
|
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "mt-0.5 w-4 h-4 rounded-full bg-gradient-accent flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsxRuntimeExports.jsx("svg", { className: "w-2.5 h-2.5 text-inverse", 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" }) }) }),
|
|
4149
4312
|
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-muted group-hover:text-main font-medium text-xs transition-colors", children: feature })
|
|
4150
4313
|
] }, idx)) }),
|
|
@@ -4153,7 +4316,7 @@ const PageHighlightSection = ({ data, t, isDarkMode, imageBaseUrl = "" }) => {
|
|
|
4153
4316
|
{
|
|
4154
4317
|
href: item.slug,
|
|
4155
4318
|
rel: "noopener noreferrer",
|
|
4156
|
-
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 text-center`,
|
|
4319
|
+
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 text-center mt-auto`,
|
|
4157
4320
|
onClick: (e) => {
|
|
4158
4321
|
if (!e.ctrlKey && !e.metaKey && e.button !== 1) {
|
|
4159
4322
|
e.preventDefault();
|
|
@@ -4246,6 +4409,20 @@ const PageHighlightSection = ({ data, t, isDarkMode, imageBaseUrl = "" }) => {
|
|
|
4246
4409
|
linear-gradient(90deg, rgba(0, 0, 0, 0.03) 1px, transparent 1px);
|
|
4247
4410
|
background-size: 50px 50px;
|
|
4248
4411
|
}
|
|
4412
|
+
|
|
4413
|
+
.line-clamp-3 {
|
|
4414
|
+
display: -webkit-box;
|
|
4415
|
+
-webkit-line-clamp: 3;
|
|
4416
|
+
-webkit-box-orient: vertical;
|
|
4417
|
+
overflow: hidden;
|
|
4418
|
+
}
|
|
4419
|
+
|
|
4420
|
+
.line-clamp-4 {
|
|
4421
|
+
display: -webkit-box;
|
|
4422
|
+
-webkit-line-clamp: 4;
|
|
4423
|
+
-webkit-box-orient: vertical;
|
|
4424
|
+
overflow: hidden;
|
|
4425
|
+
}
|
|
4249
4426
|
` })
|
|
4250
4427
|
]
|
|
4251
4428
|
}
|