// 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 });