Merge version_16_1780924729835 into main #13

Merged
bender merged 1 commits from version_16_1780924729835 into main 2026-06-08 13:22:39 +00:00

View File

@@ -11,37 +11,44 @@ const items = [
{
imageSrc: "http://img.b2bpic.net/free-photo/front-view-delicious-chocolate-cake_23-2148549963.jpg",
href: "#",
rating: 5
rating: 5,
recipe: "Rich chocolate cake layers with smooth chocolate buttercream and dark chocolate ganache drip."
},
{
imageSrc: "http://img.b2bpic.net/free-photo/delicious-pastry-with-dried-orange-slices-black-board-high-quality-photo_114579-69077.jpg",
href: "#",
rating: 4
rating: 4,
recipe: "Flaky pastry filled with orange zest cream and topped with candied orange slices."
},
{
imageSrc: "http://img.b2bpic.net/free-photo/marshmallow-white-plate-table-with-mug-hot-coffee_114579-604.jpg",
href: "#",
rating: 5
rating: 5,
recipe: "Homemade vanilla bean marshmallows, perfect for pairing with our signature hot coffee."
},
{
imageSrc: "http://img.b2bpic.net/free-photo/top-view-sliced-crusty-bread-cutting-board-wooden-background-with-copy-space_141793-25656.jpg",
href: "#",
rating: 3
rating: 3,
recipe: "Artisan sourdough bread with a crusty exterior and soft, chewy interior."
},
{
imageSrc: "http://img.b2bpic.net/free-photo/beautiful-cake-sweet-snacks_181624-27093.jpg",
href: "#",
rating: 4
rating: 4,
recipe: "Delicate sponge cake with fresh berries and light whipped cream frosting."
},
{
imageSrc: "http://img.b2bpic.net/free-photo/homemade-delicious-rustic-summer-berry-tartles_114579-10242.jpg",
href: "#",
rating: 5
rating: 5,
recipe: "Rustic tartlets filled with a mix of summer berries and a hint of lemon zest."
},
{
imageSrc: "http://img.b2bpic.net/free-photo/wedding-cake-with-flowers_23-2148120660.jpg",
href: "#",
rating: 4
rating: 4,
recipe: "Elegant multi-tiered wedding cake decorated with fresh, edible flowers."
}
];
@@ -114,28 +121,37 @@ const ProductsInline = () => {
<div className="w-content-width mx-auto grid grid-cols-1 md:grid-cols-6 gap-3">
{items.map((item, index) => {
const content = (
<div className="h-80 xl:h-100 2xl:h-120 overflow-hidden relative">
<ImageOrVideo
imageSrc={item.imageSrc}
videoSrc={item.videoSrc}
className="rounded group-hover:scale-105 transition-transform duration-500"
/>
<div className="absolute top-3 right-3 flex gap-0.5 bg-background/80 backdrop-blur-md px-2 py-1 rounded-full z-10">
{[...Array(item.rating || 5)].map((_, i) => (
<Star key={i} className="w-3.5 h-3.5 fill-yellow-400 text-yellow-400" />
))}
<div className="h-80 xl:h-100 2xl:h-120 relative w-full transition-transform duration-700 [transform-style:preserve-3d] group-hover:[transform:rotateY(180deg)]">
{/* Front side */}
<div className="absolute inset-0 [backface-visibility:hidden]">
<ImageOrVideo
imageSrc={item.imageSrc}
videoSrc={item.videoSrc}
className="rounded w-full h-full object-cover"
/>
<div className="absolute top-3 right-3 flex gap-0.5 bg-background/80 backdrop-blur-md px-2 py-1 rounded-full z-10">
{[...Array(item.rating || 5)].map((_, i) => (
<Star key={i} className="w-3.5 h-3.5 fill-yellow-400 text-yellow-400" />
))}
</div>
</div>
{/* Back side */}
<div className="absolute inset-0 h-full w-full rounded bg-card px-6 py-8 text-center [transform:rotateY(180deg)] [backface-visibility:hidden] flex flex-col items-center justify-center border border-border">
<h3 className="text-xl font-semibold mb-4 text-foreground">Recipe Details</h3>
<p className="text-muted-foreground">{item.recipe}</p>
</div>
</div>
);
return (
<ScrollReveal key={index} variant="fade-blur" delay={staggerDelays[index]} className={cls("col-span-1 group", gridClasses[index])}>
<ScrollReveal key={index} variant="fade-blur" delay={staggerDelays[index]} className={cls("col-span-1 group [perspective:1000px]", gridClasses[index])}>
{item.href ? (
<a href={item.href} className="block overflow-hidden rounded">
<a href={item.href} className="block rounded">
{content}
</a>
) : (
<div className="overflow-hidden rounded">
<div className="rounded">
{content}
</div>
)}