//// /** * OmniForge Theme Toggle Button * Botão flutuante para alternar entre dark/light mode * * Dependências: omniforge-utils.js */ (function () { 'use strict'; function createToggleButton() { // Criar botão const button = document.createElement('button'); button.id = 'omniforge-theme-toggle'; button.setAttribute('aria-label', 'Alternar tema'); button.setAttribute('title', 'Alternar entre modo claro e escuro'); // Ícones SVG button.innerHTML = ` `; // Event listener button.addEventListener('click', () => { const newTheme = window.OmniForge.Theme.toggle(); console.log('[OmniForge] Tema alternado para:', newTheme); }); // Injetar CSS window.OmniForge.CSS.inject('omniforge-theme-toggle-styles', ` #omniforge-theme-toggle { position: fixed; bottom: 20px; right: 20px; width: 50px; height: 50px; border-radius: 50%; border: none; background: ${window.OmniForge.Colors.get('accent.primary')}; color: #000; cursor: pointer; box-shadow: 0 4px 12px rgba(0,0,0,0.3); transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); z-index: 999999; display: flex; align-items: center; justify-content: center; } #omniforge-theme-toggle:hover { transform: scale(1.1); box-shadow: 0 6px 16px rgba(0,0,0,0.4); } #omniforge-theme-toggle:active { transform: scale(0.95); } #omniforge-theme-toggle .sun-icon, #omniforge-theme-toggle .moon-icon { position: absolute; transition: opacity 0.3s, transform 0.3s; } /* Dark mode: mostra sol */ html[data-theme="dark"] #omniforge-theme-toggle .sun-icon { opacity: 1; transform: rotate(0deg); } html[data-theme="dark"] #omniforge-theme-toggle .moon-icon { opacity: 0; transform: rotate(180deg); } /* Light mode: mostra lua */ html[data-theme="light"] #omniforge-theme-toggle .sun-icon { opacity: 0; transform: rotate(-180deg); } html[data-theme="light"] #omniforge-theme-toggle .moon-icon { opacity: 1; transform: rotate(0deg); } /* Animação de entrada */ @keyframes slideInUp { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } } #omniforge-theme-toggle { animation: slideInUp 0.5s ease-out; } `); // Adicionar ao DOM document.body.appendChild(button); console.log('[OmniForge] Theme toggle button criado'); } // Aguardar OmniForge carregar if (window.OmniForge) { createToggleButton(); } else { document.addEventListener('omniforge-ready', createToggleButton); } })(); ////