/* WOAH! — Icon, DjLogo, Cocktail SVG components */
const Icon = ({ name, size = 18, color = 'currentColor', stroke = 2 }) => {
const s = { width: size, height: size, color };
const p = { width: size, height: size, fill: 'none', stroke: 'currentColor', strokeWidth: stroke, strokeLinecap: 'round', strokeLinejoin: 'round', viewBox: '0 0 24 24' };
switch (name) {
case 'arrow': return ;
case 'globe': return ;
case 'menu': return ;
case 'speaker': return ;
case 'speakerOff': return ;
case 'upload': return ;
case 'play': return ;
case 'pause': return ;
case 'volume': return ;
case 'volumeLow': return ;
case 'volumeOff': return ;
case 'fullscreen': return ;
case 'chevronL': return ;
case 'chevronR': return ;
case 'x': return ;
case 'instagram': return ;
case 'twitter': return ;
case 'discord': return ;
case 'twitch': return ;
case 'spotify': return ;
case 'zap': return ;
case 'wine': return ;
case 'sparkles': return ;
case 'heart': return ;
case 'moon': return ;
case 'calendar': return ;
case 'crown': return ;
case 'trophy': return ;
case 'camera': return ;
case 'shield': return ;
case 'star': return ;
case 'dices': return ;
case 'megaphone': return ;
case 'music': return ;
case 'lock': return ;
default: return null;
}
};
/* === DJ LOGO — real PNG art === */
const DjLogo = ({ id, size = 140 }) => {
const cfg = {
gaia: { c1:'#FF2E97', c2:'#8B5CF6' },
aemilia: { c1:'#5DD3FF', c2:'#FF2E97' },
reyalex: { c1:'#FF6BCB', c2:'#00F0FF' },
khangomon: { c1:'#FF3B3B', c2:'#FFD700' },
rekse: { c1:'#5DD3FF', c2:'#FF6BCB' },
alec: { c1:'#FF3B3B', c2:'#FF0033' },
rin: { c1:'#8B5CF6', c2:'#FF3B3B' },
kiwi: { c1:'#A4DD3A', c2:'#FFD700' },
iris: { c1:'#8B5CF6', c2:'#5DD3FF' },
}[id] || { c1:'#FF2E97', c2:'#00F0FF' };
const { c1, c2 } = cfg;
return (
=)
p))(`logos/${id}.png`)} alt={`${id} logo`} loading="lazy"
style={{
position:'relative', zIndex:1,
width:'100%', height:'100%', objectFit:'contain',
filter:`drop-shadow(0 0 12px ${c1}88) drop-shadow(0 0 24px ${c2}55)`
}}/>
);
};
/* legacy (unused in active build) */
const _DjLogoLegacy = ({ id, size = 140 }) => {
const cfg = {
gaia: { glyph:'狐', sub:'Gaia', mono:'GA', c1:'#FF2E97', c2:'#8B5CF6', shape:'mask' },
aemilia: { glyph:'蝶', sub:'Aemilia', mono:'AE', c1:'#5DD3FF', c2:'#FF2E97', shape:'butterfly' },
reyalex: { glyph:'猫', sub:'Rey Alex', mono:'RA', c1:'#FF6BCB', c2:'#00F0FF', shape:'cat' },
khangomon: { glyph:'柴', sub:'Khango XIV', mono:'KX', c1:'#FF3B3B', c2:'#FFD700', shape:'shiba' },
rekse: { glyph:'桜', sub:'Rekse', mono:'RN', c1:'#5DD3FF', c2:'#FF6BCB', shape:'kitty' },
alec: { glyph:'髑', sub:'Marston', mono:'AM', c1:'#FF3B3B', c2:'#0a0a14', shape:'skull' },
rin: { glyph:'月', sub:'Rin Tsukii', mono:'RT', c1:'#8B5CF6', c2:'#FF3B3B', shape:'flame' },
kiwi: { glyph:'実', sub:'Kiwi', mono:'KW', c1:'#A4DD3A', c2:'#FFD700', shape:'splash' },
iris: { glyph:'星', sub:'Iris', mono:'IS', c1:'#8B5CF6', c2:'#5DD3FF', shape:'galaxy' },
}[id] || { glyph:'?', sub:'?', mono:'??', c1:'#FF2E97', c2:'#00F0FF', shape:'mask' };
const { glyph, sub, mono, c1, c2, shape } = cfg;
const id2 = `g-${id}`;
return (
);
};
/* === COCKTAIL SVG === */
const Cocktail = ({ kind, c1, c2, glass, extras = [] }) => {
const gid = `cg-${kind}`;
// Glass shapes
let shape;
if (glass === 'martini') {
shape = (
);
} else if (glass === 'highball') {
shape = (
);
} else if (glass === 'shot') {
shape = (
);
} else if (glass === 'coupe') {
shape = (
);
} else if (glass === 'can') {
shape = (
POWA
);
}
return (
);
};
Object.assign(window, { Icon, DjLogo, Cocktail });