// icons.jsx — єдина система лінійних іконок (stroke-based, 24-grid, currentColor) // Використання: // — за іменем // — за емодзі (мапиться через EMOJI_MAP) // Розмір за замовчуванням 1.1em (успадковує font-size контейнера). (function () { const I = { dot: '', building: '', home: '', factory: '', landmark: '', hardhat: '', construction:'', ruler: '', mountain: '', search: '', tag: '', clipboard: '', settings: '', map: '', book: '', mail: '', pencil: '', trees: '', shapes: '', brick: '', calculator: '', file: '', files: '', wrench: '', wind: '', utensils: '', droplet: '', zap: '', radio: '', flame: '', plug: '', coins: '', banknote: '', card: '', chart: '', trending: '', package: '', upload: '', download: '', checkCircle:'', check: '', lock: '', shield: '', receipt: '', car: '', notebook: '', camera: '', flask: '', graduation: '', medal: '', user: '', users: '', briefcase: '', key: '', mic: '', scroll: '', alert: '', cake: '', target: '', calendar: '', sun: '', sprout: '', refresh: '', plus: '', minus: '', swap: '', mapPin: '', folder: '', externalLink:'', image: '', megaphone: '', lightbulb: '', laptop: '', monitor: '', paperclip: '', message: '', bot: '', star: '', clock: '', disc: '', fuel: '', plusCircle: '', circle: '', play: '', arrowRight: '', }; // Емодзі → ім'я іконки const E = { '👔':'briefcase','🏷':'tag','📐':'ruler','🪨':'mountain','🔍':'search','📋':'clipboard', '⚙️':'settings','⚙':'settings','🏺':'book','🏛':'landmark','🗺':'map','📗':'book','📨':'mail', '✏️':'pencil','✏':'pencil','✎':'pencil','✍️':'pencil','✍':'pencil','📝':'pencil', '🌳':'trees','🛝':'shapes','🧱':'brick','🧮':'calculator','🏗':'construction','📄':'file', '🔧':'wrench','🛠':'wrench','🛠️':'wrench','🧰':'wrench','🌬':'wind','🌬️':'wind','🍽':'utensils','🍽️':'utensils', '💧':'droplet','⚡':'zap','⚡️':'zap','📡':'radio','🔥':'flame','🔌':'plug','💰':'coins','💵':'banknote', '📊':'chart','📈':'trending','📑':'files','📦':'package','📤':'upload','📥':'download', '✅':'checkCircle','✓':'check','🔐':'lock','💳':'card','🧾':'receipt','🚗':'car','📓':'notebook', '📷':'camera','✉':'mail','✉️':'mail','🏭':'factory','🏘':'building','🏘️':'building','🔬':'flask','🛡':'shield','🛡️':'shield', '👷':'hardhat','🏢':'building','💡':'lightbulb','💻':'laptop','📎':'paperclip','🖥':'monitor','🖥️':'monitor', '📢':'megaphone','🏦':'landmark','🤝':'users','🎓':'graduation','🎖':'medal','🎖️':'medal', '👤':'user','🏫':'building','🏡':'home','🔑':'key','👥':'users','📚':'book','🎤':'mic','📜':'scroll', '⚠':'alert','⚠️':'alert','🎂':'cake','🎯':'target','📅':'calendar','🏖':'sun','🏖️':'sun', '🌱':'sprout','🔄':'refresh','➕':'plus','➖':'minus','⇄':'swap','📍':'mapPin','📁':'folder', '↗':'externalLink','↗️':'externalLink','🖼':'image','🖼️':'image','📕':'book','📘':'book', '💬':'message','🤖':'bot','★':'star','⭐':'star','⏱':'clock','⏱️':'clock','💿':'disc','⛽':'fuel', '+':'plus','−':'minus','➗':'dot','→':'arrowRight','↑':'upload','🅿️':'car','🅿':'car','•':'dot', }; function Icon(props) { const { name, e, size, stroke, className, style } = props || {}; const key = name || E[e] || (e ? 'dot' : 'dot'); const inner = I[key] || I.dot; const s = size != null ? size : '1.1em'; return React.createElement('svg', { className: 'ic' + (className ? ' ' + className : ''), width: s, height: s, viewBox: '0 0 24 24', fill: 'none', stroke: 'currentColor', strokeWidth: stroke != null ? stroke : 1.8, strokeLinecap: 'round', strokeLinejoin: 'round', 'aria-hidden': true, style: { flexShrink: 0, ...(style || {}) }, dangerouslySetInnerHTML: { __html: inner }, }); } // ВАЖЛИВО: не чіпаємо існуючий window.Icon (об'єкт із Plus/Check/X…). // Лінійна система живе під window.Ico. window.Ico = Icon; window.ICON_PATHS = I; window.EMOJI_ICONS = E; window.emojiIcon = function (emoji) { return E[emoji] || 'dot'; }; })();