{"ast":null,"code":"import * as React from 'react';\nimport AccessibilityInfo from \"react-native-web/dist/exports/AccessibilityInfo\";\nimport Appearance from \"react-native-web/dist/exports/Appearance\";\nimport SafeAreaProviderCompat from \"./SafeAreaProviderCompat\";\nimport { Provider as SettingsProvider } from \"./settings\";\nimport { defaultThemesByVersion, ThemeProvider } from \"./theming\";\nimport MaterialCommunityIcon from \"../components/MaterialCommunityIcon\";\nimport PortalHost from \"../components/Portal/PortalHost\";\nimport { addEventListener } from \"../utils/addEventListener\";\nconst PaperProvider = props => {\n  const isOnlyVersionInTheme = props.theme && Object.keys(props.theme).length === 1 && props.theme.version;\n  const colorSchemeName = (!props.theme || isOnlyVersionInTheme) && (Appearance === null || Appearance === void 0 ? void 0 : Appearance.getColorScheme()) || 'light';\n  const [reduceMotionEnabled, setReduceMotionEnabled] = React.useState(false);\n  const [colorScheme, setColorScheme] = React.useState(colorSchemeName);\n  const handleAppearanceChange = preferences => {\n    const {\n      colorScheme\n    } = preferences;\n    setColorScheme(colorScheme);\n  };\n  React.useEffect(() => {\n    let subscription;\n    if (!props.theme) {\n      subscription = addEventListener(AccessibilityInfo, 'reduceMotionChanged', setReduceMotionEnabled);\n    }\n    return () => {\n      if (!props.theme) {\n        var _subscription;\n        (_subscription = subscription) === null || _subscription === void 0 || _subscription.remove();\n      }\n    };\n  }, [props.theme]);\n  React.useEffect(() => {\n    let appearanceSubscription;\n    if (!props.theme || isOnlyVersionInTheme) {\n      appearanceSubscription = Appearance === null || Appearance === void 0 ? void 0 : Appearance.addChangeListener(handleAppearanceChange);\n    }\n    return () => {\n      if (!props.theme || isOnlyVersionInTheme) {\n        if (appearanceSubscription) {\n          appearanceSubscription.remove();\n        } else {\n          Appearance === null || Appearance === void 0 || Appearance.removeChangeListener(handleAppearanceChange);\n        }\n      }\n    };\n  }, [props.theme, isOnlyVersionInTheme]);\n  const theme = React.useMemo(() => {\n    var _props$theme, _props$theme2;\n    const themeVersion = ((_props$theme = props.theme) === null || _props$theme === void 0 ? void 0 : _props$theme.version) || 3;\n    const scheme = colorScheme || 'light';\n    const defaultThemeBase = defaultThemesByVersion[themeVersion][scheme];\n    const extendedThemeBase = Object.assign({}, defaultThemeBase, props.theme, {\n      version: themeVersion,\n      animation: Object.assign({}, (_props$theme2 = props.theme) === null || _props$theme2 === void 0 ? void 0 : _props$theme2.animation, {\n        scale: reduceMotionEnabled ? 0 : 1\n      })\n    });\n    return Object.assign({}, extendedThemeBase, {\n      isV3: extendedThemeBase.version === 3\n    });\n  }, [colorScheme, props.theme, reduceMotionEnabled]);\n  const {\n    children,\n    settings\n  } = props;\n  const settingsValue = React.useMemo(() => Object.assign({\n    icon: MaterialCommunityIcon,\n    rippleEffectEnabled: true\n  }, settings), [settings]);\n  return React.createElement(SafeAreaProviderCompat, null, React.createElement(PortalHost, null, React.createElement(SettingsProvider, {\n    value: settingsValue\n  }, React.createElement(ThemeProvider, {\n    theme: theme\n  }, children))));\n};\nexport default PaperProvider;","map":{"version":3,"names":["React","AccessibilityInfo","Appearance","SafeAreaProviderCompat","Provider","SettingsProvider","defaultThemesByVersion","ThemeProvider","MaterialCommunityIcon","PortalHost","addEventListener","PaperProvider","props","isOnlyVersionInTheme","theme","Object","keys","length","version","colorSchemeName","getColorScheme","reduceMotionEnabled","setReduceMotionEnabled","useState","colorScheme","setColorScheme","handleAppearanceChange","preferences","useEffect","subscription","_subscription","remove","appearanceSubscription","addChangeListener","removeChangeListener","useMemo","_props$theme","_props$theme2","themeVersion","scheme","defaultThemeBase","extendedThemeBase","assign","animation","scale","isV3","children","settings","settingsValue","icon","rippleEffectEnabled","createElement","value"],"sources":["/Users/pmouli/Documents/GitHub.nosync/boots-strapper/mobile/node_modules/react-native-paper/src/core/PaperProvider.tsx"],"sourcesContent":["import * as React from 'react';\nimport {\n  AccessibilityInfo,\n  Appearance,\n  ColorSchemeName,\n  NativeEventSubscription,\n} from 'react-native';\n\nimport SafeAreaProviderCompat from './SafeAreaProviderCompat';\nimport { Provider as SettingsProvider, Settings } from './settings';\nimport { defaultThemesByVersion, ThemeProvider } from './theming';\nimport MaterialCommunityIcon from '../components/MaterialCommunityIcon';\nimport PortalHost from '../components/Portal/PortalHost';\nimport type { ThemeProp } from '../types';\nimport { addEventListener } from '../utils/addEventListener';\n\nexport type Props = {\n  children: React.ReactNode;\n  theme?: ThemeProp;\n  settings?: Settings;\n};\n\nconst PaperProvider = (props: Props) => {\n  const isOnlyVersionInTheme =\n    props.theme && Object.keys(props.theme).length === 1 && props.theme.version;\n\n  const colorSchemeName =\n    ((!props.theme || isOnlyVersionInTheme) && Appearance?.getColorScheme()) ||\n    'light';\n\n  const [reduceMotionEnabled, setReduceMotionEnabled] =\n    React.useState<boolean>(false);\n  const [colorScheme, setColorScheme] =\n    React.useState<ColorSchemeName>(colorSchemeName);\n\n  const handleAppearanceChange = (\n    preferences: Appearance.AppearancePreferences\n  ) => {\n    const { colorScheme } = preferences;\n    setColorScheme(colorScheme);\n  };\n\n  React.useEffect(() => {\n    let subscription: NativeEventSubscription | undefined;\n\n    if (!props.theme) {\n      subscription = addEventListener(\n        AccessibilityInfo,\n        'reduceMotionChanged',\n        setReduceMotionEnabled\n      );\n    }\n    return () => {\n      if (!props.theme) {\n        subscription?.remove();\n      }\n    };\n  }, [props.theme]);\n\n  React.useEffect(() => {\n    let appearanceSubscription: NativeEventSubscription | undefined;\n    if (!props.theme || isOnlyVersionInTheme) {\n      appearanceSubscription = Appearance?.addChangeListener(\n        handleAppearanceChange\n      ) as NativeEventSubscription | undefined;\n    }\n    return () => {\n      if (!props.theme || isOnlyVersionInTheme) {\n        if (appearanceSubscription) {\n          appearanceSubscription.remove();\n        } else {\n          // @ts-expect-error: We keep deprecated listener remove method for backwards compat with old RN versions\n          Appearance?.removeChangeListener(handleAppearanceChange);\n        }\n      }\n    };\n  }, [props.theme, isOnlyVersionInTheme]);\n\n  const theme = React.useMemo(() => {\n    const themeVersion = props.theme?.version || 3;\n    const scheme = colorScheme || 'light';\n    const defaultThemeBase = defaultThemesByVersion[themeVersion][scheme];\n\n    const extendedThemeBase = {\n      ...defaultThemeBase,\n      ...props.theme,\n      version: themeVersion,\n      animation: {\n        ...props.theme?.animation,\n        scale: reduceMotionEnabled ? 0 : 1,\n      },\n    };\n\n    return {\n      ...extendedThemeBase,\n      isV3: extendedThemeBase.version === 3,\n    };\n  }, [colorScheme, props.theme, reduceMotionEnabled]);\n\n  const { children, settings } = props;\n\n  const settingsValue = React.useMemo(\n    () => ({\n      icon: MaterialCommunityIcon,\n      rippleEffectEnabled: true,\n      ...settings,\n    }),\n    [settings]\n  );\n\n  return (\n    <SafeAreaProviderCompat>\n      <PortalHost>\n        <SettingsProvider value={settingsValue}>\n          <ThemeProvider theme={theme}>{children}</ThemeProvider>\n        </SettingsProvider>\n      </PortalHost>\n    </SafeAreaProviderCompat>\n  );\n};\n\nexport default PaperProvider;\n"],"mappings":"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","ignoreList":[]},"metadata":{"hasCjsExports":false},"sourceType":"module","externalDependencies":[]}