
/*
English:

JS framework framework.averin.pro 
Version: 7.0.0
Prefix: ""
Author: Artemiy Averin (ya@averin.pro)
Company: Design studio Artemy Averin (https://averin.pro/) 

Docs & Examples: https://framework.averin.pro/ 

Русский: 

JS фреймворк framework.averin.pro
Версия: 7.0.0
Префикс: ""
Студия Артемия Аверина (ya@averin.pro)
 
Документая и примеры: httpы://framework.averin.pro/
*/

	/*** Start tooltip component ***/
/*
AverinTooltip — Vanilla js plugin Version: 2.0
*/
document.addEventListener('DOMContentLoaded', function() {
    const elementsWithTooltip = document.querySelectorAll('[data-title]');

    const removeTooltip = () => {
        const tooltip = document.querySelector('.tooltip');
        if (tooltip) {
            tooltip.remove();
        }
    };

    const showTooltip = (e) => {
        removeTooltip();

        const tooltip = document.createElement('div');
        tooltip.classList.add('tooltip');
        tooltip.innerText = e.target.closest('[data-title]').dataset.title;
        document.body.appendChild(tooltip);

        // Учитываем прокрутку страницы
        const scrollX = window.scrollX || window.pageXOffset;
        const scrollY = window.scrollY || window.pageYOffset;

        // Позиционируем относительно курсора + прокрутка
        let mouseX = e.clientX + scrollX + 10;
        let mouseY = e.clientY + scrollY + 10;

        const tooltipRect = tooltip.getBoundingClientRect();

        // Проверка на выход за правую границу
        if (mouseX + tooltipRect.width > window.innerWidth + scrollX) {
            mouseX = e.clientX + scrollX - tooltipRect.width - 10;
        }

        // Проверка на выход за нижнюю границу
        if (mouseY + tooltipRect.height > window.innerHeight + scrollY) {
            mouseY = e.clientY + scrollY - tooltipRect.height - 10;
        }

        tooltip.style.position = 'absolute';
        tooltip.style.left = `${mouseX}px`;
        tooltip.style.top = `${mouseY}px`;
    };

    elementsWithTooltip.forEach(element => {
        element.addEventListener('mouseenter', showTooltip);
        element.addEventListener('mousemove', showTooltip);
        element.addEventListener('mouseleave', removeTooltip);
    });
});
/*** End tooltip component ***/
/*** End tooltip component ***/
	
	