const { useState: useStateG, useEffect: useEffectG, useRef: useRefG } = React;
function GalleryMarquee() {
  const imgs = typeof window !== "undefined" && window.GALLERY || [];
  const [open, setOpen] = useStateG(-1);
  const trackRef = useRefG(null);
  const pausedRef = useRefG(false);
  const initRef = useRefG(false);
  const reducedRef = useRefG(false);
  const resumeTimer = useRefG(null);
  const drag = useRefG({ down: false, startX: 0, startScroll: 0, moved: 0 });
  useEffectG(() => {
    try {
      reducedRef.current = !!(window.matchMedia && window.matchMedia("(prefers-reduced-motion: reduce)").matches);
    } catch (e) {
    }
  }, []);
  const pauseNow = () => {
    pausedRef.current = true;
    if (resumeTimer.current) clearTimeout(resumeTimer.current);
  };
  const resumeSoon = () => {
    if (resumeTimer.current) clearTimeout(resumeTimer.current);
    resumeTimer.current = setTimeout(() => {
      pausedRef.current = false;
    }, 1600);
  };
  useEffectG(() => {
    let raf;
    const step = () => {
      const el = trackRef.current;
      if (el) {
        const setW = el.scrollWidth / 3;
        if (setW > 0) {
          if (!initRef.current) {
            el.scrollLeft = setW;
            initRef.current = true;
          }
          if (!pausedRef.current && !reducedRef.current && open < 0) el.scrollLeft += 0.5;
          if (el.scrollLeft >= setW * 2) el.scrollLeft -= setW;
          else if (el.scrollLeft < setW) el.scrollLeft += setW;
        }
      }
      raf = requestAnimationFrame(step);
    };
    raf = requestAnimationFrame(step);
    return () => cancelAnimationFrame(raf);
  }, [open]);
  useEffectG(() => {
    const el = trackRef.current;
    if (!el) return;
    const onWheel = (e) => {
      const d = Math.abs(e.deltaY) >= Math.abs(e.deltaX) ? e.deltaY : e.deltaX;
      if (!d) return;
      el.scrollLeft += d;
      e.preventDefault();
      pauseNow();
      resumeSoon();
    };
    el.addEventListener("wheel", onWheel, { passive: false });
    return () => el.removeEventListener("wheel", onWheel);
  }, []);
  useEffectG(() => {
    if (open < 0) return;
    const onKey = (e) => {
      if (e.key === "Escape") setOpen(-1);
      else if (e.key === "ArrowRight") setOpen((i) => (i + 1) % imgs.length);
      else if (e.key === "ArrowLeft") setOpen((i) => (i - 1 + imgs.length) % imgs.length);
    };
    window.addEventListener("keydown", onKey);
    document.body.style.overflow = "hidden";
    return () => {
      window.removeEventListener("keydown", onKey);
      document.body.style.overflow = "";
    };
  }, [open, imgs.length]);
  const onPointerDown = (e) => {
    pauseNow();
    if (e.pointerType !== "mouse") return;
    const el = trackRef.current;
    drag.current = { down: true, startX: e.clientX, startScroll: el.scrollLeft, moved: 0 };
    try {
      el.setPointerCapture(e.pointerId);
    } catch (x) {
    }
  };
  const onPointerMove = (e) => {
    if (!drag.current.down) return;
    const el = trackRef.current;
    const dx = e.clientX - drag.current.startX;
    drag.current.moved = Math.max(drag.current.moved, Math.abs(dx));
    el.scrollLeft = drag.current.startScroll - dx;
  };
  const endDrag = () => {
    if (drag.current.down) {
      drag.current.down = false;
    }
    resumeSoon();
  };
  const handleClick = (idx) => {
    if (drag.current.moved > 6) return;
    setOpen(idx);
  };
  if (!imgs.length) return null;
  const loop = imgs.concat(imgs, imgs);
  return /* @__PURE__ */ React.createElement("section", { className: "pt-2 pb-10 lg:pb-16 bg-bg", "aria-label": "K\xE9pek a centrumainkb\xF3l" }, /* @__PURE__ */ React.createElement(
    "div",
    {
      ref: trackRef,
      className: "flex gap-[14px] overflow-x-auto no-scrollbar px-5 lg:px-12 cursor-grab active:cursor-grabbing",
      style: { scrollBehavior: "auto", WebkitOverflowScrolling: "touch", touchAction: "pan-x" },
      onMouseEnter: pauseNow,
      onMouseLeave: () => {
        if (!drag.current.down) resumeSoon();
      },
      onPointerDown,
      onPointerMove,
      onPointerUp: endDrag,
      onPointerCancel: endDrag,
      onTouchStart: pauseNow,
      onTouchEnd: resumeSoon
    },
    loop.map((src, i) => /* @__PURE__ */ React.createElement(
      "button",
      {
        key: i,
        onClick: () => handleClick(i % imgs.length),
        "aria-label": "K\xE9p megnyit\xE1sa",
        className: "relative shrink-0 rounded-2xl overflow-hidden border border-border bg-surface focus:outline-none group"
      },
      /* @__PURE__ */ React.createElement(
        "img",
        {
          src,
          alt: "Plazmacentrum \u2014 \xE9letk\xE9p",
          draggable: "false",
          style: { height: "clamp(190px, 30vw, 320px)" },
          className: "w-auto block select-none pointer-events-none group-hover:scale-[1.04] transition-transform duration-500"
        }
      )
    ))
  ), open >= 0 && /* @__PURE__ */ React.createElement(
    "div",
    {
      className: "fixed inset-0 z-[100] flex items-center justify-center bg-black/85",
      style: { backdropFilter: "blur(4px)", WebkitBackdropFilter: "blur(4px)" },
      onClick: () => setOpen(-1)
    },
    /* @__PURE__ */ React.createElement(
      "button",
      {
        onClick: (e) => {
          e.stopPropagation();
          setOpen(-1);
        },
        "aria-label": "Bez\xE1r\xE1s",
        className: "absolute top-4 right-4 w-11 h-11 rounded-full bg-white/10 hover:bg-white/20 text-white flex items-center justify-center transition"
      },
      /* @__PURE__ */ React.createElement(IClose, { size: 22 })
    ),
    /* @__PURE__ */ React.createElement(
      "button",
      {
        onClick: (e) => {
          e.stopPropagation();
          setOpen((i) => (i - 1 + imgs.length) % imgs.length);
        },
        "aria-label": "El\u0151z\u0151 k\xE9p",
        className: "absolute left-3 lg:left-6 w-11 h-11 rounded-full bg-white/10 hover:bg-white/20 text-white flex items-center justify-center rotate-180 transition"
      },
      /* @__PURE__ */ React.createElement(IArrow, { size: 22 })
    ),
    /* @__PURE__ */ React.createElement(
      "button",
      {
        onClick: (e) => {
          e.stopPropagation();
          setOpen((i) => (i + 1) % imgs.length);
        },
        "aria-label": "K\xF6vetkez\u0151 k\xE9p",
        className: "absolute right-3 lg:right-6 w-11 h-11 rounded-full bg-white/10 hover:bg-white/20 text-white flex items-center justify-center transition"
      },
      /* @__PURE__ */ React.createElement(IArrow, { size: 22 })
    ),
    /* @__PURE__ */ React.createElement(
      "img",
      {
        src: imgs[open],
        alt: "Plazmacentrum \u2014 \xE9letk\xE9p",
        onClick: (e) => e.stopPropagation(),
        className: "max-h-[86vh] max-w-[92vw] rounded-xl object-contain shadow-2xl"
      }
    ),
    /* @__PURE__ */ React.createElement("div", { className: "absolute bottom-5 left-0 right-0 text-center text-white/70 mono text-[12px]" }, open + 1, " / ", imgs.length)
  ));
}
window.GalleryMarquee = GalleryMarquee;
