import { useEffect, useState } from 'react'; /** * Tracks whether dark mode is active by observing the html.dark class. * Useful in components that don't receive the theme as a prop (showcase, * pricing backdrop) but must keep canvas/map content in sync with it. */ export function useIsDarkTheme(): boolean { const [isDark, setIsDark] = useState(() => document.documentElement.classList.contains('dark')); useEffect(() => { const observer = new MutationObserver(() => setIsDark(document.documentElement.classList.contains('dark')) ); observer.observe(document.documentElement, { attributes: true, attributeFilter: ['class'] }); return () => observer.disconnect(); }, []); return isDark; }