/* Abstract decorative shapes — simple primitives only (circles, rects, lines, arcs).
No hand-drawn people. Used for hero, page banners, team avatars. */
const { useMemo } = React;
// ---- Hero art: layered organic composition ----
function PPHeroArt() {
return (
);
}
// ---- Section banner (small decorative strip) ----
function PPBanner({ tone = "warm" }) {
return (
);
}
// ---- Team avatar: deterministic geometric portrait (no human drawings) ----
function PPAvatar({ hue = 1, name = "" }) {
// Take initials so the avatar still reads as a person
const initials = useMemo(() => {
const parts = name.replace(/^(mgr|dr|MA|PhD)\.?\s*/i, "").trim().split(/\s+/);
return parts.slice(0, 2).map((p) => p[0] || "").join("").toUpperCase();
}, [name]);
const palettes = [
["#c97b4e", "#f7e3d2"],
["#8b6f47", "#efe8dc"],
["#6a5232", "#e8d5b5"],
["#a78b5f", "#f4e7d1"],
["#7e5a3a", "#ead4ba"],
["#b88555", "#f1dec3"],
["#9c6f3d", "#ecdcc0"],
["#5d4126", "#e3d0b3"],
];
const [c1, c2] = palettes[(hue - 1) % palettes.length];
return (
);
}
// ---- Logo mark ----
function PPLogoMark() {
return (
);
}
// ---- Map illustration (Lubraniec area schematic; abstract, not a real map) ----
function PPMapArt() {
return (
);
}
// ---- Service category icon (geometric only) ----
function PPServiceIcon({ idx }) {
const variants = [
// 0 — concentric circles
,
// 1 — overlapping rounded squares
,
// 2 — three dots in arc (sound wave-like)
,
// 3 — book lines
,
// 4 — sparkle / sensory
,
// 5 — seedling
,
];
return (
);
}
Object.assign(window, { PPHeroArt, PPBanner, PPAvatar, PPLogoMark, PPMapArt, PPServiceIcon });