// Medway MSS — brand primitives. Logo recreates the actual wordmark: // "medway" in lowercase rounded weight green + tagline "MEDICAL SOLUTIONS AND SUPPLY" function MedwayWordmark({ height = 28, color, accent, light = false }) { // Real logo: lowercase "medway" rounded, green; the 'y' descender is exaggerated. // Tagline beneath in spaced caps. We recreate the spirit: lowercase rounded sans, // with a styled 'y' tail, plus the tagline. const green = accent || '#1ea34d'; const inkColor = color || (light ? '#fafafa' : '#171717'); // We scale to "logo unit" = height; tagline below const wordSize = height * 1.05; const tagSize = height * 0.34; return (
medwa y Medical Solutions and Supply
); } // Compact lockup for tight nav contexts — just the wordmark, no tagline function MedwayMark({ height = 22, color, accent }) { const green = accent || '#1ea34d'; return ( medway ); } // Numeric label, tabular figures function Num({ children, size = 12 }) { return ( {children} ); } // Small uppercase eyebrow with optional dot function Eyebrow({ children, accent, color }) { return (
{accent !== false && ( )} {children}
); } function Rule({ color, style = {} }) { return
; } function I({ name, size = 18, stroke = 1.5, color = 'currentColor', style = {} }) { const ref = React.useRef(null); React.useEffect(() => { if (ref.current && window.lucide) { ref.current.innerHTML = ''; const i = document.createElement('i'); i.setAttribute('data-lucide', name); ref.current.appendChild(i); window.lucide.createIcons({ attrs: { width: size, height: size, stroke: color, 'stroke-width': stroke }, }); } }, [name, size, stroke, color]); return ; } // Language switcher — three small text buttons function LangSwitcher({ lang, onChange, light = false }) { return (
{window.MEDWAY_LANGS.map((l) => { const isActive = lang === l.code; return ( ); })}
); } // Mobile detection — single source of truth used by every section. // Returns true when the viewport is narrower than `breakpoint` (default 760px). function useIsMobile(breakpoint = 760) { const get = () => typeof window !== 'undefined' && window.innerWidth < breakpoint; const [m, setM] = React.useState(get); React.useEffect(() => { const on = () => setM(get()); window.addEventListener('resize', on); return () => window.removeEventListener('resize', on); }, []); return m; } Object.assign(window, { MedwayWordmark, MedwayMark, Num, Eyebrow, Rule, I, LangSwitcher, useIsMobile });