!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e||self).darkMode={})}(this,function(e){e.init=function(e){var t=(e=e||{}).toggle||null,n=e.storageKey||"dark_mode_pref",o=localStorage.getItem(n),i=e.classes?e.classes.dark:"dark",a=e.classes?e.classes.light:"light",s=e.default||"light",d=s===i,c=function(o,s){"function"==typeof e.onChange&&e.onChange(o,t),document.body.classList.remove(i,a),document.body.classList.add(o),d=o===i,s&&localStorage.setItem(n,o)};if("function"==typeof e.onInit&&e.onInit(t),o)c(o===i||o===a?o:s);else{var l=function(e){return"(prefers-color-scheme: "+e+")"};window.matchMedia(l("dark")).matches?c(i):window.matchMedia(l("light")).matches?c(a):c(s),window.matchMedia(l("dark")).addEventListener("change",function(e){e.matches&&c(i)}),window.matchMedia(l("light")).addEventListener("change",function(e){e.matches&&c(a)})}null!==t&&t.addEventListener("click",function(){"function"==typeof e.onUserToggle&&e.onUserToggle(t),c(d?a:i,!0)})}});