/* Lucide-style line icons — 24×24, 1.75 stroke, round caps. */
function Icon({ name, size = 24, stroke = 1.75, className = '', style = {} }) {
const P = {
users: <>>,
package: <>>,
link: <>>,
clock: <>>,
message: <>>,
wallet: <>>,
globe: <>>,
layers: <>>,
pen: <>>,
code: <>>,
megaphone: <>>,
trending: <>>,
server: <>>,
bot: <>>,
sun: <>>,
moon: <>>,
arrow: <>>,
arrowUpRight: <>>,
check: <>>,
search: <>>,
briefcase: <>>,
menu: <>>,
x: <>>,
chevron: <>>,
spark: <>>,
};
return (
);
}
/* Orbital mark — ink (light bg) / paper (dark bg) / gradient (brand moments). Satellite always vivid. */
let __bneMarkId = 0;
function Mark({ size = 30, variant = 'paper' }) {
const idRef = React.useRef(null);
if (idRef.current === null) idRef.current = ++__bneMarkId;
if (variant === 'gradient') {
const gid = `bneMarkGrad${idRef.current}`;
return (
);
}
const ring = variant === 'ink' ? '#2A0F4F' : variant === 'auto' ? 'var(--text-1)' : '#FFFFFF';
// On dark/colored backgrounds (paper) the satellite is white & smaller; on light (ink) it stays vivid purple.
const satFill = variant === 'ink' ? '#7B2FBE' : '#FFFFFF';
const satR = variant === 'ink' ? 5.3 : 4.2;
return (
);
}
Object.assign(window, { Icon, Mark });