{"version":3,"file":"config.mjs","sources":["../src/config.tsx"],"sourcesContent":["import { createContext } from 'react';\nimport { Manifest } from '@rsdoctor/types';\nimport {\n  getLocaleFromStorage,\n  getThemeFromStorage,\n  getViewModeFromStorage,\n} from './utils/storage';\nimport { PageState, ViewMode, Language, Theme } from './constants';\n\nexport interface Config {\n  locale: Language;\n  theme: Theme;\n  pageState: PageState;\n  viewMode: {\n    bundleAlerts: ViewMode;\n    compileAlerts: ViewMode;\n  };\n  json: Manifest.RsdoctorManifest;\n  setTheme(theme: Config['theme']): void;\n  setManifest(json: Manifest.RsdoctorManifest): void;\n  setPageState(state: PageState): void;\n  setViewMode(mode: Partial<Config['viewMode']>, saveStorage?: boolean): void;\n  // whether the page is embedded in another page\n  embedded?: boolean;\n}\n\nexport const defaultConfig: Config = {\n  locale: getLocaleFromStorage(),\n  theme: getThemeFromStorage(),\n  pageState: PageState.Pending,\n  viewMode: getViewModeFromStorage(),\n  json: {} as Manifest.RsdoctorManifest,\n  setTheme() {},\n  setManifest() {},\n  setPageState(_state: PageState) {},\n  setViewMode() {},\n};\n\nexport const ConfigContext = createContext<Config>({\n  ...defaultConfig,\n});\n"],"names":["defaultConfig","getLocaleFromStorage","getThemeFromStorage","PageState","getViewModeFromStorage","_state","ConfigContext","createContext"],"mappings":";;;AA0BO,MAAMA,gBAAwB;IACnC,QAAQC;IACR,OAAOC;IACP,WAAWC,UAAU,OAAO;IAC5B,UAAUC;IACV,MAAM,CAAC;IACP,aAAY;IACZ,gBAAe;IACf,cAAaC,MAAiB,GAAG;IACjC,gBAAe;AACjB;AAEO,MAAMC,gBAAgB,WAAHA,GAAGC,cAAsB;IACjD,GAAGP,aAAa;AAClB"}