// Tiny shared UI primitives — wordmark, icons, eyebrow, button, rule. const Wordmark = ({ small }) => ( MAMIYA JEWELLERS · SINCE 1966 ); const Eyebrow = ({ children, n }) => (
{n && {n}} {children}
); const GoldRule = ({ style }) =>
; const Btn = ({ children, variant = 'primary', onClick, href, type, full, small }) => { const cls = `mm-btn mm-btn-${variant} ${full ? 'full' : ''} ${small ? 'small' : ''}`; if (href) return {children}; return ; }; // Inline SVG icon set — minimal, geometric only (per design rules) const Icon = ({ name, size = 16 }) => { const s = { width: size, height: size, fill: 'none', stroke: 'currentColor', strokeWidth: 1.25, strokeLinecap: 'round', strokeLinejoin: 'round' }; switch (name) { case 'whatsapp': return (); case 'phone': return (); case 'pin': return (); case 'arrow': return (); case 'arrowL': return (); case 'star': return (); case 'check': return (); case 'menu': return (); case 'x': return (); case 'diamond': return (); case 'gem': return (); case 'ring': return (); default: return null; } }; // Striped placeholder for any missing imagery const StripePlaceholder = ({ label, ratio = '1 / 1' }) => (
{label}
); const formatAED = (n) => 'Dhs. ' + n.toLocaleString('en-US'); Object.assign(window, { Wordmark, Eyebrow, GoldRule, Btn, Icon, StripePlaceholder, formatAED });