/* global React */
const { useState, useEffect, useRef } = React;
/* ----------------------------------------------------------
Rooster silhouette — composed shapes, unified fill.
Proud gamecock facing right, tail sweeping up-left.
---------------------------------------------------------- */
function Rooster({ size = 80, color = "currentColor", style }) {
return (
);
}
/* ----------------------------------------------------------
Logo oficial (imagen) — escudo Rancho La Vega
---------------------------------------------------------- */
function LogoImg({ height = 48, className = "", style }) {
return (
);
}
/* Emblema = logo oficial (mantiene API previa) */
function Emblem({ size = 150 }) {
return ;
}
/* ----------------------------------------------------------
Reveal-on-scroll hook
---------------------------------------------------------- */
function useReveal() {
useEffect(() => {
const els = document.querySelectorAll(".reveal");
if (!("IntersectionObserver" in window)) {
els.forEach((e) => e.classList.add("in"));
return;
}
const io = new IntersectionObserver(
(entries) => {
entries.forEach((en) => {
if (en.isIntersecting) {
en.target.classList.add("in");
io.unobserve(en.target);
}
});
},
{ threshold: 0.12 }
);
els.forEach((e) => io.observe(e));
return () => io.disconnect();
});
}
/* Section heading with flourishes */
function SectionHead({ children, className = "" }) {
return (
{children}
);
}
Object.assign(window, { Rooster, Emblem, LogoImg, useReveal, SectionHead });