export function setButtonTooltip(button, text) { if (button instanceof HTMLElement) { button.title = text; } const tooltip = button?.querySelector(".earth-toolbar-tooltip"); if (tooltip) { tooltip.textContent = text; } } export function updateLayerButtonState(button, isActive) { if (!button) return; button.classList.toggle("active", isActive); button.setAttribute("aria-checked", isActive ? "true" : "false"); const state = button.querySelector(".earth-layer-btn__state"); if (state) { state.textContent = isActive ? "ON" : "OFF"; } } export function setLayerButtonState(button, options = {}) { if (!(button instanceof HTMLButtonElement)) return; const { active = null, loading = false, disabled = null, tooltip = null, statusText = null, } = options; button.classList.toggle("is-loading", loading); button.toggleAttribute("aria-busy", loading); button.disabled = loading || (disabled === true); button.classList.toggle("is-disabled", disabled === true); if (typeof active === "boolean") { updateLayerButtonState(button, active); } if (tooltip) { setButtonTooltip(button, tooltip); } if (statusText) { const statusTarget = button.dataset.statusTarget ? document.getElementById(button.dataset.statusTarget) : null; if (statusTarget) { statusTarget.textContent = statusText; } } }