import{St as e}from"./BHlvaIqp.js";import{Kr as t}from"./aeFnjB9H.js";var n;(function(e){e.Light=`light`,e.Dark=`dark`})(n||={});var r;(function(e){e.Light=`light`,e.Dark=`dark`,e.System=`system`})(r||={});var i;(function(e){e.Divider=`divider`})(i||={});var a=class{#e;#t;#n=()=>{};#r;get current(){return this.#t(),this.#e}set current(e){this.#r(e),this.#n(),this.#e=e}constructor(t,n,r){let i=r.read(t);this.#e=i===void 0?n:i,this.#r=e=>r.write(t,e),this.#t=e(e=>(this.#n=e,()=>{this.#n=()=>{}}))}},o=e=>t=>(typeof t==`object`&&(t={...e,...t}),t),s=e=>e,c=class extends a{constructor(e,t,n={}){let r=n.valid||(()=>!0),i=n.upgrade===`merge`?o(t):n.upgrade??s,a=n.serializer||JSON;super(e,t,{read:e=>{let t=localStorage.getItem(e)??void 0;if(t===void 0)return;let n=a.parse(t);if(r(n))return i(n)},write:(e,t)=>{localStorage.setItem(e,a.stringify(t))}})}},l=`light`,u=`dark`,d=`darkreader-lock`,f=new class{#e=new t(`(prefers-color-scheme: dark)`);#t=new c(`immich-ui-theme`,r.System,{upgrade:e=>{if(typeof e==`object`&&e.system){if(e.system)return r.System;e.value&&(e=e.value)}return typeof e==`string`&&Object.values(r).includes(e)?e:r.System}});get prefersDark(){return this.#e.current}get preference(){return this.#t.current}get value(){switch(this.#t.current){case r.System:return this.#e.current?n.Dark:n.Light;case r.Light:return n.Light;default:return n.Dark}}constructor(){matchMedia(`(prefers-color-scheme: dark)`).addEventListener(`change`,()=>this.#n(),{passive:!0})}toggle(){this.#t.current=this.value===n.Dark?r.Light:r.Dark,this.#n()}setPreference(e){this.#t.current=e,this.#n()}#n(){let e=document.querySelector(`html`);if(e)switch(this.value){case n.Dark:{e.classList.remove(l),e.classList.add(u);let t=document.createElement(`meta`);t.name=d,document.head.append(t);break}case n.Light:{e.classList.add(l),e.classList.remove(u);let t=document.querySelector(`head > meta[name=${CSS.escape(d)}]`);t&&t.remove();break}}}};export{r as i,c as n,n as r,f as t};