Abmacode12's picture
<!doctype html>
d225191 verified
raw
history blame
1.99 kB
document.addEventListener('DOMContentLoaded', () => {
// Initialize tooltips for icons
const initTooltips = () => {
const buttons = document.querySelectorAll('button');
buttons.forEach(button => {
const icon = button.querySelector('[data-feather]');
if (icon) {
const iconName = icon.getAttribute('data-feather');
button.setAttribute('title', iconName.charAt(0).toUpperCase() + iconName.slice(1));
}
});
};
// Handle microphone functionality
const setupMicrophone = () => {
const micButton = document.querySelector('#btnMic');
if (!micButton) return;
micButton.addEventListener('click', async () => {
try {
const stream = await navigator.mediaDevices.getUserMedia({ audio: true });
// Here you would typically connect to a speech recognition API
alert('Microphone access granted. Speech recognition would be implemented here.');
stream.getTracks().forEach(track => track.stop());
} catch (error) {
console.error('Error accessing microphone:', error);
alert('Could not access microphone. Please check permissions.');
}
});
};
// Initialize everything
feather.replace();
initTooltips();
setupMicrophone();
});
// Toast notification utility
export function toast(msg) {
const t = document.createElement("div");
t.textContent = msg;
t.style.position="fixed";
t.style.left="50%";
t.style.bottom="18px";
t.style.transform="translateX(-50%)";
t.style.padding="10px 12px";
t.style.borderRadius="14px";
t.style.border="1px solid rgba(255,255,255,.12)";
t.style.background="rgba(0,0,0,.55)";
t.style.backdropFilter="blur(8px)";
t.style.color="rgba(232,238,252,.95)";
t.style.fontSize="13px";
t.style.boxShadow="0 10px 24px rgba(0,0,0,.35)";
t.style.zIndex=9999;
document.body.appendChild(t);
setTimeout(()=>{ t.style.opacity="0"; t.style.transition="opacity .2s"; }, 1100);
setTimeout(()=> t.remove(), 1400);
}