{"version":3,"sources":["../src/storage-manager.ts"],"sourcesContent":["import { ColorMode } from \"./color-mode-types\"\n\nexport const STORAGE_KEY = \"chakra-ui-color-mode\"\n\ntype MaybeColorMode = ColorMode | undefined\n\nexport interface StorageManager {\n  type: \"cookie\" | \"localStorage\"\n  ssr?: boolean\n  get(init?: ColorMode): MaybeColorMode\n  set(value: ColorMode | \"system\"): void\n}\n\nexport function createLocalStorageManager(key: string): StorageManager {\n  return {\n    ssr: false,\n    type: \"localStorage\",\n    get(init?) {\n      if (!globalThis?.document) return init\n      let value: any\n      try {\n        value = localStorage.getItem(key) || init\n      } catch (e) {\n        // no op\n      }\n\n      return value || init\n    },\n    set(value) {\n      try {\n        localStorage.setItem(key, value)\n      } catch (e) {\n        // no op\n      }\n    },\n  }\n}\n\nexport const localStorageManager = createLocalStorageManager(STORAGE_KEY)\n\nfunction parseCookie(cookie: string, key: string): MaybeColorMode {\n  const match = cookie.match(new RegExp(`(^| )${key}=([^;]+)`))\n  return match?.[2] as MaybeColorMode\n}\n\nexport function createCookieStorageManager(\n  key: string,\n  cookie?: string,\n): StorageManager {\n  return {\n    ssr: !!cookie,\n    type: \"cookie\",\n    get(init?): MaybeColorMode {\n      if (cookie) return parseCookie(cookie, key)\n      if (!globalThis?.document) return init\n      return parseCookie(document.cookie, key) || init\n    },\n    set(value) {\n      document.cookie = `${key}=${value}; max-age=31536000; path=/`\n    },\n  }\n}\n\nexport const cookieStorageManager = createCookieStorageManager(STORAGE_KEY)\n\nexport const cookieStorageManagerSSR = (cookie: string) =>\n  createCookieStorageManager(STORAGE_KEY, cookie)\n"],"mappings":";;;AAEO,IAAM,cAAc;AAWpB,SAAS,0BAA0B,KAA6B;AACrE,SAAO;AAAA,IACL,KAAK;AAAA,IACL,MAAM;AAAA,IACN,IAAI,MAAO;AACT,UAAI,EAAC,yCAAY;AAAU,eAAO;AAClC,UAAI;AACJ,UAAI;AACF,gBAAQ,aAAa,QAAQ,GAAG,KAAK;AAAA,MACvC,SAAS,GAAP;AAAA,MAEF;AAEA,aAAO,SAAS;AAAA,IAClB;AAAA,IACA,IAAI,OAAO;AACT,UAAI;AACF,qBAAa,QAAQ,KAAK,KAAK;AAAA,MACjC,SAAS,GAAP;AAAA,MAEF;AAAA,IACF;AAAA,EACF;AACF;AAEO,IAAM,sBAAsB,0BAA0B,WAAW;AAExE,SAAS,YAAY,QAAgB,KAA6B;AAChE,QAAM,QAAQ,OAAO,MAAM,IAAI,OAAO,QAAQ,aAAa,CAAC;AAC5D,SAAO,+BAAQ;AACjB;AAEO,SAAS,2BACd,KACA,QACgB;AAChB,SAAO;AAAA,IACL,KAAK,CAAC,CAAC;AAAA,IACP,MAAM;AAAA,IACN,IAAI,MAAuB;AACzB,UAAI;AAAQ,eAAO,YAAY,QAAQ,GAAG;AAC1C,UAAI,EAAC,yCAAY;AAAU,eAAO;AAClC,aAAO,YAAY,SAAS,QAAQ,GAAG,KAAK;AAAA,IAC9C;AAAA,IACA,IAAI,OAAO;AACT,eAAS,SAAS,GAAG,OAAO;AAAA,IAC9B;AAAA,EACF;AACF;AAEO,IAAM,uBAAuB,2BAA2B,WAAW;AAEnE,IAAM,0BAA0B,CAAC,WACtC,2BAA2B,aAAa,MAAM;","names":[]}