Jex Client Download Apr 2026
primaryBtn.onclick = () => downloadClient(detectedOS); else detectedSpan.textContent = 'Unknown (select manually)'; osLabel.textContent = 'your OS'; primaryBtn.onclick = () => alert('Please select your OS from the options below.');
// Toast notification function showToast(message) const toast = document.createElement('div'); toast.className = 'toast-notification'; toast.textContent = message; document.body.appendChild(toast); setTimeout(() => toast.remove(), 3000);
.release-notes margin-top: 1rem; font-size: 0.9rem; background: #f8f9fa; padding: 12px; border-radius: 12px;
<details class="release-notes"> <summary>📝 Release Notes v2.5.0</summary> <ul> <li>✨ New dark mode UI</li> <li>⚡ 30% faster sync</li> <li>🐛 Fixed connection timeout bug</li> </ul> </details> </div> // Download URLs mapping const downloadUrls = windows: 'https://cdn.jex.com/client/latest/Jex-Setup-2.5.0.exe', mac: 'https://cdn.jex.com/client/latest/Jex-2.5.0.dmg', 'mac-arm': 'https://cdn.jex.com/client/latest/Jex-2.5.0-arm64.dmg', linux: 'https://cdn.jex.com/client/latest/jex_2.5.0_amd64.deb', 'linux-rpm': 'https://cdn.jex.com/client/latest/jex-2.5.0-1.x86_64.rpm' ; // Detect OS function detectOS() const platform = navigator.platform.toLowerCase(); const userAgent = navigator.userAgent.toLowerCase(); Jex Client Download
.platform-options display: flex; flex-wrap: wrap; gap: 10px; margin: 1.5rem 0;
// Add manual platform buttons document.querySelectorAll('.platform-btn').forEach(btn => btn.addEventListener('click', (e) => const osKey = btn.getAttribute('data-os'); downloadClient(osKey); ); );
// Trigger download function downloadClient(osKey) const url = downloadUrls[osKey]; if (!url) alert('Download not available for this OS yet.'); return; primaryBtn
// Initialize feature function initJexDownload() const detectedOS = detectOS(); const osLabel = document.getElementById('primary-os-label'); const detectedSpan = document.getElementById('detected-os-name'); const primaryBtn = document.getElementById('primary-download-btn');
if (detectedOS && detectedSpan) detectedSpan.textContent = getReadableOS(detectedOS); osLabel.textContent = getReadableOS(detectedOS);
// Run when DOM ready document.addEventListener('DOMContentLoaded', initJexDownload); .jex-download-card max-width: 500px; margin: 2rem auto; padding: 1.8rem; background: #ffffff; border-radius: 24px; box-shadow: 0 8px 20px rgba(0,0,0,0.1); font-family: system-ui, -apple-system, sans-serif; primaryBtn.onclick = () =>
@keyframes fadeInOut 0% opacity: 0; bottom: 0; 10% opacity: 1; bottom: 20px; 90% opacity: 1; bottom: 20px; 100% opacity: 0; bottom: 0;
// Show confirmation showToast( ⬇️ Download started for $getReadableOS(osKey) );
if (platform.includes('win')) return 'windows'; if (platform.includes('mac')) if (platform.includes('linux')) return 'linux'; return null;
.version color: #4a6a8b; font-size: 0.9rem; margin-bottom: 1.5rem;