/* global React, Reveal, Spark, Eyebrow, Ethno, DividerMark, CTA, openProduct, openLead, PriceTag, AddToCartBtn */
const { useState: useStateCat } = React;
const PBASE = "assets/products2026/";

const PRODUCTS = [
  { img: "ball-flag.jpg", name: "Шар с флагом", kz: "Қазақстан туы", cat: "balls", hit: true,
    desc: "Хит коллекции. Государственный флаг Казахстана на выдувном стекле — символ гордости за страну под ёлкой каждой семьи." },

  // ── Фигурки ──
  { img: "barys.jpg", name: "Барыс", kz: "Снежный барс", cat: "figures", top: true,
    desc: "Символ свободы и силы. Снежный барс в золотом орнаменте qoshqar-muyiz." },
  { img: "ayaz-ata.jpg", name: "Аяз Ата", kz: "Дед Мороз", cat: "figures", top: true,
    desc: "Казахский Дед Мороз в национальном чапане с тонкой золотой росписью." },
  { img: "aqshaqar.jpg", name: "Ақшақар", kz: "Снегурочка", cat: "figures",
    desc: "Казахская Снегурочка — нежный образ зимней сказки в золоте." },
  { img: "snowman.jpg", name: "Снеговик", kz: "Аққар", cat: "figures",
    desc: "Праздничный снеговик в золотом жилете с национальным орнаментом." },
  { img: "horse-white.jpg", name: "Алтын ат", kz: "Золотой конь", cat: "figures",
    desc: "Конь — символ удачи и достатка в наступающем году." },
  { img: "horse-brown.jpg", name: "Гнедой конь", kz: "Qoñyr at", cat: "figures",
    desc: "Гнедой конь — сила, скорость и удача в новом году." },
  { img: "yurta.jpg", name: "Юрта", kz: "Символ дома", cat: "figures", top: true,
    desc: "Юрта — тепло родного дома и семейного очага." },
  { img: "tazy.jpg", name: "Тазы", kz: "Казахская борзая", cat: "figures",
    desc: "Тазы — верность и благородство, гордость казахских степей." },
  { img: "cat.jpg", name: "Котёнок", kz: "Mysyq", cat: "figures",
    desc: "Уютный котёнок в золотом орнаменте — символ домашнего тепла." },
  { img: "sheep.jpg", name: "Барашек", kz: "Qoı", cat: "figures",
    desc: "Пушистый барашек — символ достатка и доброго года." },
  { img: "lamb.jpg", name: "Ягнёнок", kz: "Qozy", cat: "figures", top: true,
    desc: "Маленький ягнёнок — нежность и тепло семейного очага." },
  { img: "matryoshka.jpg", name: "Матрёшка", kz: "Matreshka", cat: "figures",
    desc: "Матрёшка-неваляшка в казахском наряде — добрая улыбка праздника." },
  { img: "owl.jpg", name: "Филин", kz: "Úki", cat: "figures",
    desc: "Филин (үкі) — древний оберег, хранящий дом от бед." },
  { img: "rocket.jpg", name: "Ракета", kz: "Zymyran", cat: "figures",
    desc: "Ракета — мечта о космосе и большое будущее под ёлкой." },
  { img: "chocolate.jpg", name: "Шоколад", kz: "Shokolad", cat: "figures", top: true,
    desc: "Шоколадка-сувенир с национальным акцентом — сладкий символ праздника." },

  // ── Шары · серия «Ornament» ──
  { img: "ball-ornament-1.jpg", name: "Шар «Ornament» №1", kz: "Алтын · золото", cat: "balls",
    desc: "Серия «Ornament». Золотой шар ручной росписи со снежинкой, ø 80 мм." },
  { img: "ball-ornament-2.jpg", name: "Шар «Ornament» №2", kz: "Қызыл · красный", cat: "balls",
    desc: "Серия «Ornament». Красное стекло, золотой орнамент qoshqar-muyiz, ø 80 мм." },
  { img: "ball-ornament-3.jpg", name: "Шар «Ornament» №3", kz: "Қызыл · красный", cat: "balls",
    desc: "Серия «Ornament». Красное стекло, золотой орнамент с архаром, ø 80 мм." },

  // ── Шары · именные ──
  { img: "ball-yurt.jpg", name: "Шар «Юрта»", kz: "Kıız úı", cat: "balls",
    desc: "Стеклянный шар с зимней юртой внутри — тепло родного дома." },
  { img: "ball-map.jpg", name: "Шар «Қазақстан»", kz: "Qazaqstan", cat: "balls",
    desc: "Шар с картой Казахстана — гордость за свою страну." },
  { img: "ball-arkhar.jpg", name: "Шар «Архар»", kz: "Arqar", cat: "balls",
    desc: "Шар с архаром — благородство и сила степей." },
  { img: "ball-sheep.jpg", name: "Шар «Овечка»", kz: "Qoı share", cat: "balls",
    desc: "Шар с овечкой — мягкость и уют зимней сказки." },
];

// ── Цены: РРЦ в ₸. Опт = РРЦ − 30% считается автоматически. Правьте ТОЛЬКО эти числа. ──
const RRP = {
  "ball-flag.jpg": 4900,
  "barys.jpg": 4900, "ayaz-ata.jpg": 4900, "aqshaqar.jpg": 4900, "snowman.jpg": 4900,
  "horse-white.jpg": 4900, "horse-brown.jpg": 4900, "yurta.jpg": 4900, "tazy.jpg": 4900,
  "cat.jpg": 4900, "sheep.jpg": 4900, "lamb.jpg": 4900, "matryoshka.jpg": 4900,
  "owl.jpg": 4900, "rocket.jpg": 4900, "chocolate.jpg": 4900,
  "ball-ornament-1.jpg": 2500, "ball-ornament-2.jpg": 2500, "ball-ornament-3.jpg": 2500,
  "ball-yurt.jpg": 4900, "ball-map.jpg": 2900, "ball-arkhar.jpg": 2800, "ball-sheep.jpg": 4900,
  "box-qe-1.jpg": 12500, "box-qe-2.jpg": 9500, "box-qe-3-cut.png": 16900,
  "box-orn.jpg": 7500, "box-qazaqstan.jpg": 7500,
};
PRODUCTS.forEach((p) => { p.rrp = RRP[p.img]; });

function ProductCardTile({ p, delay }) {
  const open = () => openProduct(p);
  return React.createElement(Reveal, { delay, className: `lp-prod${p.hit ? " hit" : ""}`, tag: "div", role: "button", tabIndex: 0,
      onClick: open, onKeyDown: (e) => { if (e.key === "Enter" || e.key === " ") { e.preventDefault(); open(); } } },
    p.top && React.createElement("span", { className: "lp-prod-hit" }, React.createElement(Spark, { style: { width: 11, height: 11 } }), "Хит сезона"),
    React.createElement("div", { className: "pic" }, React.createElement("img", { src: PBASE + p.img, alt: p.name })),
    React.createElement("div", { className: "meta" },
      React.createElement("div", { className: "nm" }, p.name),
      React.createElement("div", { className: "sub" }, p.kz),
      React.createElement(PriceTag, { rrp: p.rrp }),
      React.createElement("div", { className: "lp-prod-cta" }, React.createElement(AddToCartBtn, { p }))),
    React.createElement("span", { className: "zoomcue", "aria-hidden": "true" }, "+"));
}

function Catalog() {
  const [tab, setTab] = useStateCat("all");
  const tabs = [["all", "Все"], ["figures", "Фигурки"], ["balls", "Шары"]];
  const hit = PRODUCTS.find((p) => p.hit);
  const rest = PRODUCTS.filter((p) => !p.hit);
  const shown = rest.filter((p) => tab === "all" || p.cat === tab);
  const boxes = [
    { tier: "Бокс «Qazaq Ertegi» №1", img: "box-qe-1.jpg", desc: "Набор фигурок в национальном этно-стиле — казахская легенда в подарочной коробке." },
    { tier: "Бокс «Qazaq Ertegi» №2", img: "box-qe-2.jpg", desc: "Праздничный набор фигурок — национальные образы под ёлку всей команде." },
    { tier: "Бокс «Qazaq Ertegi» №3", img: "box-qe-3-cut.png", desc: "Фигурки казахских легенд — юрта, Аяз Ата, Ақшақар и барашек. Самый большой набор коллекции.", feature: true, badge: "Топ продаж" },
    { tier: "Бокс «Ornament»", img: "box-orn.jpg", desc: "Стеклянные шары серии «Ornament» в подарочной коробке — лаконично и со вкусом." },
    { tier: "Бокс «Qazaqstan»", img: "box-qazaqstan.jpg", desc: "Шар с флагом Казахстана, золотой шар и шоколад — патриотичный набор-пожелание." },
  ];
  boxes.forEach((b) => { b.rrp = RRP[b.img]; });
  return React.createElement("section", { className: "lp-section lp-cream-alt", id: "katalog",
    style: { scrollMarginTop: 96, position: "relative", overflow: "hidden" } },
    React.createElement(Ethno, { color: "var(--red-800)", variant: "faint", parallax: 0.05 }),
    React.createElement("div", { className: "lp-inner lp-pad-lg" },
      React.createElement("div", { style: { maxWidth: 680 } },
        React.createElement(Reveal, null, React.createElement(Eyebrow, null, "Каталог · пик коллекции")),
        React.createElement(Reveal, { tag: "h2", className: "lp-h2", delay: 1, style: { marginTop: 16 } },
          "Игрушки, на которые хочется ", React.createElement("span", { className: "lp-red-ink" }, "смотреть")),
        React.createElement(Reveal, { tag: "p", className: "lp-lead", delay: 2, style: { marginTop: 16 } },
          "Выдувное стекло, ручная роспись золотом, национальные образы. Нажмите на любую игрушку, чтобы рассмотреть ближе.")),

      // Featured HIT
      React.createElement(Reveal, { delay: 1, style: { marginTop: 44 } },
        React.createElement("div", { className: "lp-card lp-glare", style: { background: "var(--gradient-red)", borderColor: "transparent", borderRadius: "var(--radius-xl)", cursor: "pointer", display: "grid", gridTemplateColumns: "1fr", overflow: "hidden" }, onClick: () => openProduct(hit) },
          React.createElement("div", { className: "lp-hit-inner" },
            React.createElement("div", { style: { position: "relative", minHeight: 300, display: "flex", alignItems: "center", justifyContent: "center", padding: 30 } },
              React.createElement("div", { className: "lp-glow", style: { width: "70%", height: "70%", background: "radial-gradient(circle, rgba(255,225,180,0.55), rgba(255,225,180,0))", opacity: 0.8 } }),
              React.createElement("img", { src: PBASE + "ball-flag-cut.png", alt: "Шар с флагом Казахстана", style: { position: "relative", maxHeight: 320, maxWidth: "70%", objectFit: "contain", filter: "drop-shadow(0 24px 36px rgba(0,0,0,0.4))" } })),
            React.createElement("div", { style: { padding: "10px 34px 40px", color: "#fff" } },
              React.createElement("span", { style: { display: "inline-flex", alignItems: "center", gap: 6, padding: "5px 13px", borderRadius: 999, background: "var(--amber-500)", color: "var(--ink-900)", fontFamily: "var(--font-body)", fontWeight: 700, fontSize: 12, letterSpacing: "0.04em", textTransform: "uppercase" } }, React.createElement(Spark, { style: { width: 11, height: 11 } }), "Хит сезона"),
              React.createElement("h3", { style: { fontFamily: "var(--font-display)", fontWeight: 900, fontSize: "clamp(1.8rem,4vw,2.6rem)", color: "#fff", margin: "14px 0 0", lineHeight: 1.1 } }, "Шар с флагом Казахстана"),
              React.createElement("p", { style: { color: "rgba(255,238,228,0.9)", fontSize: "1.05rem", lineHeight: 1.55, margin: "12px 0 0", maxWidth: "44ch" } }, "Символ гордости за страну — на выдувном стекле под ёлкой каждой семьи. Самая желанная игрушка коллекции."),
              React.createElement("div", { style: { marginTop: 20 } }, React.createElement(PriceTag, { rrp: hit.rrp, onRed: true })),
              React.createElement("div", { style: { marginTop: 16, display: "flex", flexWrap: "wrap", gap: 12, alignItems: "center" } },
                React.createElement(AddToCartBtn, { p: hit, block: false }),
                React.createElement(CTA, { variant: "glass", size: "sm" }, "Рассмотреть ближе", React.createElement(Spark, { style: { width: 13, height: 13 } })))))
        )),

      // Tabs + grid
      React.createElement(Reveal, { className: "lp-cat-tabs", delay: 1, style: { marginTop: 40, justifyContent: "center" } },
        tabs.map(([k, t]) => React.createElement("button", { key: k, className: `lp-tab ${tab === k ? "active" : ""}`, onClick: () => setTab(k) }, t))),
      React.createElement("div", { className: "lp-prodgrid", style: { marginTop: 28 } },
        shown.map((p, i) => React.createElement(ProductCardTile, { key: p.img, p, delay: (i % 4) + 1 }))),

      // Ready boxes
      React.createElement(Reveal, { style: { marginTop: 70 } }, React.createElement(DividerMark)),
      React.createElement("div", { style: { maxWidth: 680, marginTop: 44 } },
        React.createElement(Reveal, null, React.createElement(Eyebrow, null, "Готовые боксы")),
        React.createElement(Reveal, { tag: "h2", className: "lp-h2", delay: 1, style: { marginTop: 16 } }, "Под разные бюджеты"),
        React.createElement(Reveal, { tag: "p", className: "lp-lead", delay: 2, style: { marginTop: 16 } },
          "Готовые подарочные наборы — от лаконичного до премиального. Соберём под численность и бюджет вашей команды.")),
      React.createElement("div", { className: "lp-boxgrid", style: { marginTop: 36 } },
        boxes.map((b, i) => React.createElement(Reveal, { key: b.tier, delay: (i % 3) + 1 },
          React.createElement("div", { className: `lp-box lp-glare ${b.feature ? "feature" : ""}` },
            b.badge && React.createElement("span", { className: "lp-box-badge" }, React.createElement(Spark, { style: { width: 11, height: 11 } }), b.badge),
            React.createElement("span", { className: "tier" }, b.tier),
            React.createElement("div", { className: "pic" }, React.createElement("img", { src: PBASE + b.img + "?v=2", alt: b.tier })),
            React.createElement("p", null, b.desc),
            React.createElement(PriceTag, { rrp: b.rrp, onRed: b.feature }),
            React.createElement("div", { className: "lp-box-cta" },
              React.createElement(AddToCartBtn, { p: b, variant: b.feature ? "amber" : "red" }),
              React.createElement("button", { type: "button", className: `lp-box-quote${b.feature ? " on-red" : ""}`, onClick: openLead },
                "Запросить расчёт", React.createElement(Spark, { style: { width: 12, height: 12 } }))))))
      )
    )
  );
}

Object.assign(window, { Catalog, PRODUCTS });
