/* Cordish Plaza — shared UI components + inline Lucide-style icons. Exports to window so other babel scripts can use them. */ const PLAZA_ICONS = { "arrow-right": '', "map-pin": '', "store": '', "ruler": '', "banknote": '', "droplets": '', "zap": '', "shield-check": '', "sparkles": '', "trees": '', "pill": '', "hammer": '', "cup-soda": '', "cookie": '', "check": '', "phone": '', "message-circle": '', "mail": '', "building-2": '', "key-round": '', "filter": '', "send": '', "scaling": '', "users": '' }; function Icon({ name, size = 22, style }) { return React.createElement("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 1.8, strokeLinecap: "round", strokeLinejoin: "round", style, "aria-hidden": "true", dangerouslySetInnerHTML: { __html: PLAZA_ICONS[name] || "" } }); } function DS() { return window.CordishGroupDesignSystem_93cd80 || {}; } /* Btn — delegates to the DS Button for real buttons; renders a DS-styled for links. */ const BTN_SIZES = { sm: { padding: "8px 16px", fontSize: 13 }, md: { padding: "11px 22px", fontSize: 14 }, lg: { padding: "14px 28px", fontSize: 15 } }; const BTN_VARIANTS = { primary: { background: "var(--cd-purple)", color: "#fff", border: "1px solid var(--cd-purple)" }, secondary: { background: "transparent", color: "var(--cd-purple)", border: "1px solid var(--cd-purple)" }, gold: { background: "var(--cd-gold)", color: "#fff", border: "1px solid var(--cd-gold)" } }; function Btn({ variant = "primary", size, href, onClick, icon, iconRight, children, block, type, style }) { const dsSize = size === "sm" ? "sm" : (size === "lg" ? "lg" : "md"); const iSz = size === "sm" ? 16 : 18; const il = icon ? React.createElement(Icon, { name: icon, size: iSz }) : null; const ir = iconRight ? React.createElement(Icon, { name: iconRight, size: iSz }) : null; const extra = block ? { width: "100%" } : {}; if (href) { return React.createElement("a", { href, onClick, className: "btn", style: { ...BTN_SIZES[dsSize], ...BTN_VARIANTS[variant], ...extra, ...style } }, il, React.createElement("span", null, children), ir); } const Button = DS().Button; if (Button) return React.createElement(Button, { variant, size: dsSize, iconLeft: il, iconRight: ir, onClick, type: type || "button", style: { ...extra, ...style } }, children); return React.createElement("button", { className: "btn", onClick, type: type || "button", style: { ...BTN_SIZES[dsSize], ...BTN_VARIANTS[variant], ...extra, ...style } }, il, children, ir); } /* IconChip — DS circular line-icon badge. tone: purple | gold | teal. Fallback honors the tone so the gold + teal accents show without the DS bundle. */ const CHIP_TONES = { purple: "var(--cd-purple)", gold: "var(--cd-gold)", teal: "var(--cd-teal)" }; function IconChip({ tone = "purple", solid = false, size = "md", icon, style }) { const child = React.createElement(Icon, { name: icon, size: size === "sm" ? 19 : 26 }); const Chip = DS().IconChip; if (Chip) return React.createElement(Chip, { tone, solid, size, style }, child); const c = CHIP_TONES[tone] || CHIP_TONES.purple; const dim = size === "sm" ? 38 : 56; return React.createElement("div", { style: { width: dim, height: dim, borderRadius: "50%", display: "grid", placeItems: "center", flex: "none", border: "2px solid " + c, color: solid ? "#fff" : c, background: solid ? c : "transparent", ...style } }, child); } /* Badge — DS pill label. tone: purple | gold | teal | neutral; variant: subtle | solid. Fallback honors the tone so chips read in their accent colour without the DS bundle. */ const BADGE_TONES = { purple: { sub: { bg: "var(--cd-purple-100)", fg: "var(--cd-purple-700)" }, solid: { bg: "var(--cd-purple)", fg: "#fff" } }, gold: { sub: { bg: "var(--cd-gold-100)", fg: "var(--cd-gold-700)" }, solid: { bg: "var(--cd-gold)", fg: "#fff" } }, teal: { sub: { bg: "var(--cd-teal-100)", fg: "var(--cd-teal-700)" }, solid: { bg: "var(--cd-teal)", fg: "#fff" } }, neutral: { sub: { bg: "#EFEFF2", fg: "var(--cd-muted)" }, solid: { bg: "var(--cd-muted)", fg: "#fff" } } }; function Badge({ tone = "purple", variant = "subtle", children, style }) { const B = DS().Badge; if (B) return React.createElement(B, { tone, variant, style }, children); const t = (BADGE_TONES[tone] || BADGE_TONES.purple)[variant === "solid" ? "solid" : "sub"]; return React.createElement("span", { style: { display: "inline-flex", alignItems: "center", gap: 6, padding: "4px 12px", borderRadius: "var(--radius-pill)", fontFamily: "var(--font-head)", fontWeight: 600, fontSize: 12, background: t.bg, color: t.fg, ...style } }, children); } /* SectionHead — the signature DS SectionHeader (uppercase title + gold underline) */ function SectionHead({ eyebrow, title, sub, onDark, align, style }) { const SH = DS().SectionHeader; if (SH) return React.createElement(SH, { eyebrow, title, sub, onDark, align, style }); return React.createElement("div", { style }, eyebrow ? React.createElement("div", { className: "eyebrow", style: { marginBottom: 10 } }, eyebrow) : null, React.createElement("h2", { style: { fontSize: 26, textTransform: "uppercase", letterSpacing: ".04em" } }, title), React.createElement("div", { style: { width: 48, height: 2, background: "var(--cd-gold)", marginTop: 12 } }), sub ? React.createElement("p", { style: { marginTop: 14, color: "var(--cd-muted)" } }, sub) : null ); } function fmt(n) { return n.toLocaleString("en-US"); } Object.assign(window, { Icon, Btn, IconChip, Badge, SectionHead, fmt });