{"version":3,"file":"theme-provider.mjs","sources":["../../../packages/theme/theme-provider.tsx"],"sourcesContent":["import { FC, PropsWithChildren } from 'react'\nimport styled, {\n  ThemeProvider as StyledThemeProvider,\n} from '../utils/styled-components-wrapper.js'\nimport {\n  reverseThemeMap,\n  themeDark,\n  themeDefault,\n  themeLight,\n} from './themes.js'\nimport { initColors } from './document-head-contents/index.js'\nimport { generateCssColorVariables } from './utils/generate-css-color-variables.js'\nimport { Theme } from './types.js'\n\n// we need to initialize this before react component code if we're using this provider or CookieThemeProvider\ninitColors()\n\nconst StyledWrapper = styled.div<{ colors?: Record<string, string> }>`\n  display: contents;\n  ${({ colors }) => (colors ? generateCssColorVariables(colors) : null)}\n`\nexport const ThemeProvider: FC<PropsWithChildren<{ theme?: Theme }>> = ({\n  theme = themeDefault,\n  children,\n  ...rest\n}) => {\n  const internalThemeName = reverseThemeMap.get(theme)\n  const props = internalThemeName\n    ? {\n        // if theme is detected as internally defined, we can just use data-lido-theme to set CSS vars instead of colors\n        'data-lido-theme': internalThemeName,\n      }\n    : {\n        // if theme is auto-detected from cookies, it will interfere with global script logic - so we need to not provide CSS\n        colors: theme.colors,\n      }\n\n  return (\n    <StyledWrapper {...props}>\n      <StyledThemeProvider theme={theme} {...rest}>\n        {children}\n      </StyledThemeProvider>\n    </StyledWrapper>\n  )\n}\n\nexport const LightThemeProvider: FC<PropsWithChildren> = (props) => (\n  <ThemeProvider {...props} theme={themeLight} />\n)\n\nexport const DarkThemeProvider: FC<PropsWithChildren> = (props) => (\n  <ThemeProvider {...props} theme={themeDark} />\n)\n"],"names":["initColors","StyledWrapper","styled","div","_ref","colors","generateCssColorVariables","ThemeProvider","_ref2","theme","themeDefault","children","rest","internalThemeName","reverseThemeMap","get","props","_jsx","StyledThemeProvider","LightThemeProvider","themeLight","DarkThemeProvider","themeDark"],"mappings":";;;;;;;AAcA;AACAA,UAAU,EAAE,CAAA;AAEZ,MAAMC,aAAa,GAAGC,MAAM,CAACC,GAAwC,CAAA;AACrE;AACA,EAAA,EAAIC,IAAA,IAAA;EAAA,IAAC;AAAEC,IAAAA,MAAAA;AAAO,GAAC,GAAAD,IAAA,CAAA;AAAA,EAAA,OAAMC,MAAM,GAAGC,yBAAyB,CAACD,MAAM,CAAC,GAAG,IAAI,CAAA;AAAA,CAAC,CAAA;AACvE,CAAC,CAAA;AACYE,MAAAA,aAAuD,GAAGC,KAAA,IAIjE;EAAA,IAJkE;AACtEC,IAAAA,KAAK,GAAGC,YAAY;IACpBC,QAAQ;IACR,GAAGC,IAAAA;AACL,GAAC,GAAAJ,KAAA,CAAA;AACC,EAAA,MAAMK,iBAAiB,GAAGC,eAAe,CAACC,GAAG,CAACN,KAAK,CAAC,CAAA;EACpD,MAAMO,KAAK,GAAGH,iBAAiB,GAC3B;AACE;AACA,IAAA,iBAAiB,EAAEA,iBAAAA;AACrB,GAAC,GACD;AACE;IACAR,MAAM,EAAEI,KAAK,CAACJ,MAAAA;GACf,CAAA;EAEL,oBACEY,GAAA,CAAChB,aAAa,EAAA;AAAA,IAAA,GAAKe,KAAK;IAAAL,QAAA,eACtBM,GAAA,CAACC,eAAmB,EAAA;AAACT,MAAAA,KAAK,EAAEA,KAAM;AAAA,MAAA,GAAKG,IAAI;AAAAD,MAAAA,QAAA,EACxCA,QAAAA;KACkB,CAAA;AAAC,GACT,CAAC,CAAA;AAEpB,EAAC;MAEYQ,kBAAyC,GAAIH,KAAK,iBAC7DC,GAAA,CAACV,aAAa,EAAA;AAAA,EAAA,GAAKS,KAAK;AAAEP,EAAAA,KAAK,EAAEW,UAAAA;AAAW,CAAE,EAC/C;MAEYC,iBAAwC,GAAIL,KAAK,iBAC5DC,GAAA,CAACV,aAAa,EAAA;AAAA,EAAA,GAAKS,KAAK;AAAEP,EAAAA,KAAK,EAAEa,SAAAA;AAAU,CAAE;;;;"}