// Telegram WebApp SDK обёртки const TG = window.Telegram?.WebApp; // isAvailable — только если есть initData (значит мы внутри Telegram) const TG_AVAILABLE = !!(TG && TG.initData); window.TG_APP = { initData: TG?.initData || '', initDataUnsafe: TG?.initDataUnsafe || {}, user: TG?.initDataUnsafe?.user || null, colorScheme: TG?.colorScheme || 'light', isAvailable: TG_AVAILABLE, close: () => { if (TG_AVAILABLE) TG.close(); }, sendData: (data) => { if (TG_AVAILABLE) TG.sendData(JSON.stringify(data)); }, haptic: (type) => { if (!TG_AVAILABLE) return; try { TG.HapticFeedback?.impactOccurred(type || 'light'); } catch (e) {} }, showAlert: (msg) => { try { if (TG_AVAILABLE && TG.showAlert) TG.showAlert(String(msg)); else alert(String(msg)); } catch (e) { try { alert(String(msg)); } catch {} } }, showConfirm: (msg) => { try { if (TG_AVAILABLE && TG.showConfirm) return new Promise((r) => TG.showConfirm(msg, r)); return Promise.resolve(confirm(String(msg))); } catch (e) { try { return Promise.resolve(confirm(String(msg))); } catch { return Promise.resolve(false); } } }, theme: () => TG?.themeParams || {}, };