{"ast":null,"code":"import { createTheming } from '@callstack/react-theme-provider';\nimport color from 'color';\nimport { MD2DarkTheme, MD2LightTheme, MD3DarkTheme, MD3LightTheme } from \"../styles/themes\";\nexport const DefaultTheme = MD3LightTheme;\nexport const {\n  ThemeProvider,\n  withTheme,\n  useTheme: useAppTheme\n} = createTheming(MD3LightTheme);\nexport function useTheme(overrides) {\n  return useAppTheme(overrides);\n}\nexport const useInternalTheme = themeOverrides => useAppTheme(themeOverrides);\nexport const withInternalTheme = WrappedComponent => withTheme(WrappedComponent);\nexport const defaultThemesByVersion = {\n  2: {\n    light: MD2LightTheme,\n    dark: MD2DarkTheme\n  },\n  3: {\n    light: MD3LightTheme,\n    dark: MD3DarkTheme\n  }\n};\nexport const getTheme = (isDark = false, isV3 = true) => {\n  const themeVersion = isV3 ? 3 : 2;\n  const scheme = isDark ? 'dark' : 'light';\n  return defaultThemesByVersion[themeVersion][scheme];\n};\nexport function adaptNavigationTheme(themes) {\n  const {\n    reactNavigationLight,\n    reactNavigationDark,\n    materialLight,\n    materialDark\n  } = themes;\n  const MD3Themes = {\n    light: materialLight || MD3LightTheme,\n    dark: materialDark || MD3DarkTheme\n  };\n  const result = {};\n  if (reactNavigationLight) {\n    result.LightTheme = getAdaptedTheme(reactNavigationLight, MD3Themes.light);\n  }\n  if (reactNavigationDark) {\n    result.DarkTheme = getAdaptedTheme(reactNavigationDark, MD3Themes.dark);\n  }\n  return result;\n}\nconst getAdaptedTheme = (theme, materialTheme) => {\n  const base = Object.assign({}, theme, {\n    colors: Object.assign({}, theme.colors, {\n      primary: materialTheme.colors.primary,\n      background: materialTheme.colors.background,\n      card: materialTheme.colors.elevation.level2,\n      text: materialTheme.colors.onSurface,\n      border: materialTheme.colors.outline,\n      notification: materialTheme.colors.error\n    })\n  });\n  if ('fonts' in theme) {\n    return Object.assign({}, base, {\n      fonts: {\n        regular: {\n          fontFamily: materialTheme.fonts.bodyMedium.fontFamily,\n          fontWeight: materialTheme.fonts.bodyMedium.fontWeight,\n          letterSpacing: materialTheme.fonts.bodyMedium.letterSpacing\n        },\n        medium: {\n          fontFamily: materialTheme.fonts.titleMedium.fontFamily,\n          fontWeight: materialTheme.fonts.titleMedium.fontWeight,\n          letterSpacing: materialTheme.fonts.titleMedium.letterSpacing\n        },\n        bold: {\n          fontFamily: materialTheme.fonts.headlineSmall.fontFamily,\n          fontWeight: materialTheme.fonts.headlineSmall.fontWeight,\n          letterSpacing: materialTheme.fonts.headlineSmall.letterSpacing\n        },\n        heavy: {\n          fontFamily: materialTheme.fonts.headlineLarge.fontFamily,\n          fontWeight: materialTheme.fonts.headlineLarge.fontWeight,\n          letterSpacing: materialTheme.fonts.headlineLarge.letterSpacing\n        }\n      }\n    });\n  }\n  return base;\n};\nexport const getDynamicThemeElevations = scheme => {\n  const elevationValues = ['transparent', 0.05, 0.08, 0.11, 0.12, 0.14];\n  return elevationValues.reduce((elevations, elevationValue, index) => {\n    return Object.assign({}, elevations, {\n      [`level${index}`]: index === 0 ? elevationValue : color(scheme.surface).mix(color(scheme.primary), elevationValue).rgb().string()\n    });\n  }, {});\n};","map":{"version":3,"names":["createTheming","color","MD2DarkTheme","MD2LightTheme","MD3DarkTheme","MD3LightTheme","DefaultTheme","ThemeProvider","withTheme","useTheme","useAppTheme","overrides","useInternalTheme","themeOverrides","withInternalTheme","WrappedComponent","defaultThemesByVersion","light","dark","getTheme","isDark","isV3","themeVersion","scheme","adaptNavigationTheme","themes","reactNavigationLight","reactNavigationDark","materialLight","materialDark","MD3Themes","result","LightTheme","getAdaptedTheme","DarkTheme","theme","materialTheme","base","Object","assign","colors","primary","background","card","elevation","level2","text","onSurface","border","outline","notification","error","fonts","regular","fontFamily","bodyMedium","fontWeight","letterSpacing","medium","titleMedium","bold","headlineSmall","heavy","headlineLarge","getDynamicThemeElevations","elevationValues","reduce","elevations","elevationValue","index","surface","mix","rgb","string"],"sources":["/Users/pmouli/Documents/GitHub.nosync/boots-strapper/mobile/node_modules/react-native-paper/src/core/theming.tsx"],"sourcesContent":["import type { ComponentType } from 'react';\n\nimport { $DeepPartial, createTheming } from '@callstack/react-theme-provider';\nimport color from 'color';\n\nimport {\n  MD2DarkTheme,\n  MD2LightTheme,\n  MD3DarkTheme,\n  MD3LightTheme,\n} from '../styles/themes';\nimport type {\n  InternalTheme,\n  MD3Theme,\n  MD3AndroidColors,\n  NavigationTheme,\n} from '../types';\n\nexport const DefaultTheme = MD3LightTheme;\n\nexport const {\n  ThemeProvider,\n  withTheme,\n  useTheme: useAppTheme,\n} = createTheming<unknown>(MD3LightTheme);\n\nexport function useTheme<T = MD3Theme>(overrides?: $DeepPartial<T>) {\n  return useAppTheme<T>(overrides);\n}\n\nexport const useInternalTheme = (\n  themeOverrides: $DeepPartial<InternalTheme> | undefined\n) => useAppTheme<InternalTheme>(themeOverrides);\n\nexport const withInternalTheme = <Props extends { theme: InternalTheme }, C>(\n  WrappedComponent: ComponentType<Props & { theme: InternalTheme }> & C\n) => withTheme<Props, C>(WrappedComponent);\n\nexport const defaultThemesByVersion = {\n  2: {\n    light: MD2LightTheme,\n    dark: MD2DarkTheme,\n  },\n  3: {\n    light: MD3LightTheme,\n    dark: MD3DarkTheme,\n  },\n};\n\nexport const getTheme = <\n  Scheme extends boolean = false,\n  IsVersion3 extends boolean = true\n>(\n  isDark: Scheme = false as Scheme,\n  isV3: IsVersion3 = true as IsVersion3\n): (typeof defaultThemesByVersion)[IsVersion3 extends true\n  ? 3\n  : 2][Scheme extends true ? 'dark' : 'light'] => {\n  const themeVersion = isV3 ? 3 : 2;\n  const scheme = isDark ? 'dark' : 'light';\n\n  return defaultThemesByVersion[themeVersion][scheme];\n};\n\n// eslint-disable-next-line no-redeclare\nexport function adaptNavigationTheme<T extends NavigationTheme>(themes: {\n  reactNavigationLight: T;\n  materialLight?: MD3Theme;\n}): {\n  LightTheme: NavigationTheme;\n};\n// eslint-disable-next-line no-redeclare\nexport function adaptNavigationTheme<T extends NavigationTheme>(themes: {\n  reactNavigationDark: T;\n  materialDark?: MD3Theme;\n}): {\n  DarkTheme: NavigationTheme;\n};\n// eslint-disable-next-line no-redeclare\nexport function adaptNavigationTheme<\n  TLight extends NavigationTheme,\n  TDark extends NavigationTheme\n>(themes: {\n  reactNavigationLight: TLight;\n  reactNavigationDark: TDark;\n  materialLight?: MD3Theme;\n  materialDark?: MD3Theme;\n}): { LightTheme: TLight; DarkTheme: TDark };\n// eslint-disable-next-line no-redeclare\nexport function adaptNavigationTheme(themes: any) {\n  const {\n    reactNavigationLight,\n    reactNavigationDark,\n    materialLight,\n    materialDark,\n  } = themes;\n\n  const MD3Themes = {\n    light: materialLight || MD3LightTheme,\n    dark: materialDark || MD3DarkTheme,\n  };\n\n  const result: { LightTheme?: any; DarkTheme?: any } = {};\n\n  if (reactNavigationLight) {\n    result.LightTheme = getAdaptedTheme(reactNavigationLight, MD3Themes.light);\n  }\n\n  if (reactNavigationDark) {\n    result.DarkTheme = getAdaptedTheme(reactNavigationDark, MD3Themes.dark);\n  }\n\n  return result;\n}\n\nconst getAdaptedTheme = <T extends NavigationTheme>(\n  theme: T,\n  materialTheme: MD3Theme\n): T => {\n  const base = {\n    ...theme,\n    colors: {\n      ...theme.colors,\n      primary: materialTheme.colors.primary,\n      background: materialTheme.colors.background,\n      card: materialTheme.colors.elevation.level2,\n      text: materialTheme.colors.onSurface,\n      border: materialTheme.colors.outline,\n      notification: materialTheme.colors.error,\n    },\n  };\n\n  if ('fonts' in theme) {\n    return {\n      ...base,\n      fonts: {\n        regular: {\n          fontFamily: materialTheme.fonts.bodyMedium.fontFamily,\n          fontWeight: materialTheme.fonts.bodyMedium.fontWeight,\n          letterSpacing: materialTheme.fonts.bodyMedium.letterSpacing,\n        },\n        medium: {\n          fontFamily: materialTheme.fonts.titleMedium.fontFamily,\n          fontWeight: materialTheme.fonts.titleMedium.fontWeight,\n          letterSpacing: materialTheme.fonts.titleMedium.letterSpacing,\n        },\n        bold: {\n          fontFamily: materialTheme.fonts.headlineSmall.fontFamily,\n          fontWeight: materialTheme.fonts.headlineSmall.fontWeight,\n          letterSpacing: materialTheme.fonts.headlineSmall.letterSpacing,\n        },\n        heavy: {\n          fontFamily: materialTheme.fonts.headlineLarge.fontFamily,\n          fontWeight: materialTheme.fonts.headlineLarge.fontWeight,\n          letterSpacing: materialTheme.fonts.headlineLarge.letterSpacing,\n        },\n      },\n    };\n  }\n\n  return base;\n};\n\nexport const getDynamicThemeElevations = (scheme: MD3AndroidColors) => {\n  const elevationValues = ['transparent', 0.05, 0.08, 0.11, 0.12, 0.14];\n  return elevationValues.reduce((elevations, elevationValue, index) => {\n    return {\n      ...elevations,\n      [`level${index}`]:\n        index === 0\n          ? elevationValue\n          : color(scheme.surface)\n              .mix(color(scheme.primary), elevationValue as number)\n              .rgb()\n              .string(),\n    };\n  }, {});\n};\n"],"mappings":"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","ignoreList":[]},"metadata":{"hasCjsExports":false},"sourceType":"module","externalDependencies":[]}