{{-- format-ignore-start --}} @props([ 'lightIcon' => 'sun', 'lightText' => 'Light', 'darkIcon' => 'moon', 'darkText' => 'Dark', 'systemIcon' => 'computer-desktop', 'systemText' => 'System', 'iconRight' => true, 'iconType' => 'outline', 'iconDir' => '', 'modular' => false, 'class' => '', 'nonce' => config('bladewind.script.nonce', null), ]) @php $iconRight = parseBladewindVariable($iconRight); $modular = parseBladewindVariable($modular); @endphp {{-- format-ignore-end --}} @once {{$lightText}} {{$darkText}} {{$systemText}} const chooseTheme = (theme) => { theme = (theme !== 'null' && theme !== undefined && theme !== null) ? theme : 'system'; addToStorage('theme', theme); if (theme === 'dark' || theme === 'system') { document.documentElement.classList.add('dark'); } else { document.documentElement.classList.remove('dark'); } hide('.theme-dark'); hide('.theme-light'); hide('.theme-system'); unhide(`.theme-${theme}`); } chooseTheme(getFromStorage('theme')); // Listen for changes in the system theme window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', (event) => { chooseTheme(event.matches ? 'dark' : 'light'); }); @endonce