/* global React, Icon, Flower, GCMark, Eyebrow, Button */
// Espalhe Gardênias — shared editorial building blocks
// -------------------------------------------------------- Section header
function SectionHead({ kicker, title, intro, align = "center", titleSize = 42, light = false, maxw }) {
const ink = light ? "var(--pessego)" : "var(--fg1)";
const body = light ? "var(--fg-on-dark-soft)" : "var(--fg2)";
return (
{kicker &&
{kicker} }
{title}
{intro &&
{intro}
}
);
}
// -------------------------------------------------------- Big quote band
function QuoteBand({ children, attribution, bg = "var(--linen)", mark = true }) {
return (
{mark &&
}
{children}
{attribution &&
{attribution}
}
);
}
// -------------------------------------------------------- Manifesto strip (dark, ceremonial)
function ManifestoBand({ kicker, children, action, onAction, bg = "var(--vinho)" }) {
return (
{kicker &&
{kicker} }
{children}
{action &&
{action}
}
);
}
// -------------------------------------------------------- Inner page hero (image)
function PageHero({ kicker, title, intro, image, pos = "center 18%", height = 520, children, align = "left" }) {
return (
{image && }
{kicker}
{title}
{intro &&
{intro}
}
{children &&
{children}
}
);
}
// -------------------------------------------------------- Simple light hero (no photo)
function PlainHero({ kicker, title, intro, bg = "var(--blush)", children }) {
return (
{kicker}
{title}
{intro &&
{intro}
}
{children &&
{children}
}
);
}
// -------------------------------------------------------- Press strip
function PressStrip() {
const veiculos = ["BAND RIO", "GRANDE RIO", "VOGUE", "REVISTA J.P", "GLOBO", "METRÓPOLES"];
return (
Na mídia
{veiculos.map((v) => (
{v}
))}
);
}
// -------------------------------------------------------- Newsletter / launch capture
function LaunchCTA({ kicker = "Faça parte do movimento", title = "Acompanhe a nova fase",
text = "Receba bastidores, trechos do livro e novidades de “Espalhe Gardênias”, direto da fonte." }) {
return (
);
}
// -------------------------------------------------------- Three-up (verbs / pillars) in a bordered grid
function TriadGrid({ items, light = false }) {
const border = light ? "1px solid rgba(243,231,218,.18)" : "1px solid var(--border-faint)";
return (
{items.map((p, i) => (
{p.i &&
}
{p.n &&
{p.n}
}
{p.t}
{p.d}
))}
);
}
// -------------------------------------------------------- Editorial split (image | text)
function EditorialSplit({ image, pos = "center", reverse = false, eyebrow, title, children, action, onAction,
dark = false, serifTitle = false, flower }) {
const bg = dark ? "var(--vinho)" : "var(--cream)";
const ink = dark ? "var(--pessego)" : "var(--fg1)";
const body = dark ? "var(--fg-on-dark-soft)" : "var(--fg2)";
const imgPane =
;
const txtPane = (
{flower &&
}
{eyebrow &&
{eyebrow} }
{title}
{children}
{action &&
{action}
}
);
return (
{reverse ? [txtPane, imgPane] : [imgPane, txtPane]}
);
}
Object.assign(window, { SectionHead, QuoteBand, ManifestoBand, PageHero, PlainHero, PressStrip, LaunchCTA, TriadGrid, EditorialSplit });