/* global React */
function Icon({ name, size = 20, stroke = 1.75, style }) {
const paths = {
'arrow-right': <>>,
'arrow-up-right': <>>,
'arrow-down-right': <>>,
'check': <>>,
'target': <>>,
'chart': <>>,
'zap': <>>,
'users': <>>,
'mail': <>>,
'calendar': <>>,
'play': <>>,
'menu': <>>,
'sparkles': <>>,
'brain': <>>,
'megaphone': <>>,
'search': <>>,
'graduation': <>>,
'film': <>>,
'home': <>>,
'shopping': <>>,
'credit-card': <>>,
'heart': <>>,
'scale': <>>,
'server': <>>,
'rocket': <>>,
'globe': <>>,
'briefcase': <>>,
'compass': <>>,
'message': <>>,
'clipboard': <>>,
'quote': <>>,
};
return (
);
}
function Button({ variant = 'primary', size = 'md', children, icon, iconLeft, ...p }) {
const base = {
fontFamily: 'var(--font-body)', fontWeight: 600, border: 0, cursor: 'pointer',
display: 'inline-flex', alignItems: 'center', gap: 8, lineHeight: 1,
borderRadius: 999, letterSpacing: '-0.005em',
transition: 'transform var(--dur-base) var(--ease-out), box-shadow var(--dur-base) var(--ease-out), background var(--dur-base) var(--ease-out)',
whiteSpace: 'nowrap',
};
const sizes = {
sm: { padding: '9px 16px', fontSize: 13 },
md: { padding: '13px 22px', fontSize: 15 },
lg: { padding: '16px 28px', fontSize: 16 },
};
const variants = {
cta: { background: 'var(--cta)', color: 'var(--teal-900)', boxShadow: 'var(--shadow-cta)' },
primary: { background: 'var(--brand)', color: '#fff', boxShadow: 'var(--shadow-brand)' },
ghost: { background: 'transparent', color: 'var(--brand)', border: '1px solid var(--teal-200)' },
text: { background: 'transparent', color: 'var(--brand)', padding: '8px 4px' },
inverse: { background: '#fff', color: 'var(--teal-800)' },
dark: { background: 'var(--teal-900)', color: '#fff' },
};
return (
);
}
function Eyebrow({ children, dark, color }) {
return (
{children}
);
}
function Badge({ children, tone = 'brand' }) {
const tones = {
brand: { bg: 'var(--teal-50)', fg: 'var(--teal-700)' },
accent: { bg: 'var(--cyan-50)', fg: 'var(--cyan-800)' },
cta: { bg: 'var(--yellow-50)', fg: 'var(--yellow-800)' },
neutral: { bg: 'var(--ink-100)', fg: 'var(--ink-700)' },
dark: { bg: 'rgba(255,255,255,0.1)', fg: 'rgba(255,255,255,0.92)' },
};
const t = tones[tone];
return {children};
}
function Droplets({ color = 'var(--teal-100)', opacity = 0.55, style, size = 180 }) {
return (
);
}
// Container shorthand
function Container({ children, style, maxW = 1200 }) {
return {children}
;
}
Object.assign(window, { Icon, Button, Eyebrow, Badge, Droplets, Container });