1import { Controller } from "@hotwired/stimulus" 2 3// Connects to data-controller="admin--theme" 4export default class extends Controller { 5 connect () { 6 let existingPreference = sessionStorage.getItem('cms-theme') 7 if (existingPreference) { 8 document.documentElement.dataset.bsTheme = existingPreference 9 } else if (window.matchMedia("(prefers-color-scheme: dark)").matches) { 10 if (!existingPreference) { 11 document.documentElement.dataset.bsTheme = 'dark' 12 sessionStorage.setItem('cms-theme', 'dark') 13 } 14 } 15 } 16 17 toggleTheme () { 18 if (document.documentElement.dataset.bsTheme === 'dark') { 19 document.documentElement.dataset.bsTheme = 'light' 20 sessionStorage.setItem('cms-theme', 'light') 21 } else { 22 document.documentElement.dataset.bsTheme = 'dark' 23 sessionStorage.setItem('cms-theme', 'dark') 24 } 25 } 26}
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.