UNPKG

repoweaver

Version:

A GitHub App that skillfully weaves multiple templates together to create and update repositories with intelligent merge strategies

1 lines 15.4 kB
{"ast":null,"code":"import StyleSheet from \"react-native-web/dist/exports/StyleSheet\";\nimport color from 'color';\nimport { black, white } from \"../../styles/themes/v2/colors\";\nimport { splitStyles } from \"../../utils/splitStyles\";\nconst isDark = ({\n dark,\n backgroundColor\n}) => {\n if (typeof dark === 'boolean') {\n return dark;\n }\n if (backgroundColor === 'transparent') {\n return false;\n }\n if (backgroundColor !== 'transparent') {\n return !color(backgroundColor).isLight();\n }\n return false;\n};\nconst getButtonBackgroundColor = ({\n isMode,\n theme,\n disabled,\n customButtonColor\n}) => {\n if (customButtonColor && !disabled) {\n return customButtonColor;\n }\n if (theme.isV3) {\n if (disabled) {\n if (isMode('outlined') || isMode('text')) {\n return 'transparent';\n }\n return theme.colors.surfaceDisabled;\n }\n if (isMode('elevated')) {\n return theme.colors.elevation.level1;\n }\n if (isMode('contained')) {\n return theme.colors.primary;\n }\n if (isMode('contained-tonal')) {\n return theme.colors.secondaryContainer;\n }\n }\n if (isMode('contained')) {\n if (disabled) {\n return color(theme.dark ? white : black).alpha(0.12).rgb().string();\n }\n return theme.colors.primary;\n }\n return 'transparent';\n};\nconst getButtonTextColor = ({\n isMode,\n theme,\n disabled,\n customTextColor,\n backgroundColor,\n dark\n}) => {\n if (customTextColor && !disabled) {\n return customTextColor;\n }\n if (theme.isV3) {\n if (disabled) {\n return theme.colors.onSurfaceDisabled;\n }\n if (typeof dark === 'boolean') {\n if (isMode('contained') || isMode('contained-tonal') || isMode('elevated')) {\n return isDark({\n dark,\n backgroundColor\n }) ? white : black;\n }\n }\n if (isMode('outlined') || isMode('text') || isMode('elevated')) {\n return theme.colors.primary;\n }\n if (isMode('contained')) {\n return theme.colors.onPrimary;\n }\n if (isMode('contained-tonal')) {\n return theme.colors.onSecondaryContainer;\n }\n }\n if (disabled) {\n return color(theme.dark ? white : black).alpha(0.32).rgb().string();\n }\n if (isMode('contained')) {\n return isDark({\n dark,\n backgroundColor\n }) ? white : black;\n }\n return theme.colors.primary;\n};\nconst getButtonBorderColor = ({\n isMode,\n disabled,\n theme\n}) => {\n if (theme.isV3) {\n if (disabled && isMode('outlined')) {\n return theme.colors.surfaceDisabled;\n }\n if (isMode('outlined')) {\n return theme.colors.outline;\n }\n }\n if (isMode('outlined')) {\n return color(theme.dark ? white : black).alpha(0.29).rgb().string();\n }\n return 'transparent';\n};\nconst getButtonBorderWidth = ({\n isMode,\n theme\n}) => {\n if (theme.isV3) {\n if (isMode('outlined')) {\n return 1;\n }\n }\n if (isMode('outlined')) {\n return StyleSheet.hairlineWidth;\n }\n return 0;\n};\nexport const getButtonColors = ({\n theme,\n mode,\n customButtonColor,\n customTextColor,\n disabled,\n dark\n}) => {\n const isMode = modeToCompare => {\n return mode === modeToCompare;\n };\n const backgroundColor = getButtonBackgroundColor({\n isMode,\n theme,\n disabled,\n customButtonColor\n });\n const textColor = getButtonTextColor({\n isMode,\n theme,\n disabled,\n customTextColor,\n backgroundColor,\n dark\n });\n const borderColor = getButtonBorderColor({\n isMode,\n theme,\n disabled\n });\n const borderWidth = getButtonBorderWidth({\n isMode,\n theme\n });\n return {\n backgroundColor,\n borderColor,\n textColor,\n borderWidth\n };\n};\nexport const getButtonTouchableRippleStyle = (style, borderWidth = 0) => {\n if (!style) return {};\n const touchableRippleStyle = {};\n const [, borderRadiusStyles] = splitStyles(style, style => style.startsWith('border') && style.endsWith('Radius'));\n Object.keys(borderRadiusStyles).forEach(key => {\n const value = style[key];\n if (typeof value === 'number') {\n const radius = value > 0 ? value - borderWidth : 0;\n touchableRippleStyle[key] = radius;\n }\n });\n return touchableRippleStyle;\n};","map":{"version":3,"names":["color","black","white","splitStyles","isDark","dark","backgroundColor","isLight","getButtonBackgroundColor","isMode","theme","disabled","customButtonColor","isV3","colors","surfaceDisabled","elevation","level1","primary","secondaryContainer","alpha","rgb","string","getButtonTextColor","customTextColor","onSurfaceDisabled","onPrimary","onSecondaryContainer","getButtonBorderColor","outline","getButtonBorderWidth","StyleSheet","hairlineWidth","getButtonColors","mode","modeToCompare","textColor","borderColor","borderWidth","getButtonTouchableRippleStyle","style","touchableRippleStyle","borderRadiusStyles","startsWith","endsWith","Object","keys","forEach","key","value","radius"],"sources":["/Users/pmouli/Documents/GitHub.nosync/boots-strapper/mobile/node_modules/react-native-paper/src/components/Button/utils.tsx"],"sourcesContent":["import { StyleSheet, type ViewStyle } from 'react-native';\n\nimport color from 'color';\n\nimport { black, white } from '../../styles/themes/v2/colors';\nimport type { InternalTheme } from '../../types';\nimport { splitStyles } from '../../utils/splitStyles';\n\nexport type ButtonMode =\n | 'text'\n | 'outlined'\n | 'contained'\n | 'elevated'\n | 'contained-tonal';\n\ntype BaseProps = {\n isMode: (mode: ButtonMode) => boolean;\n theme: InternalTheme;\n disabled?: boolean;\n};\n\nconst isDark = ({\n dark,\n backgroundColor,\n}: {\n dark?: boolean;\n backgroundColor?: string;\n}) => {\n if (typeof dark === 'boolean') {\n return dark;\n }\n\n if (backgroundColor === 'transparent') {\n return false;\n }\n\n if (backgroundColor !== 'transparent') {\n return !color(backgroundColor).isLight();\n }\n\n return false;\n};\n\nconst getButtonBackgroundColor = ({\n isMode,\n theme,\n disabled,\n customButtonColor,\n}: BaseProps & {\n customButtonColor?: string;\n}) => {\n if (customButtonColor && !disabled) {\n return customButtonColor;\n }\n\n if (theme.isV3) {\n if (disabled) {\n if (isMode('outlined') || isMode('text')) {\n return 'transparent';\n }\n\n return theme.colors.surfaceDisabled;\n }\n\n if (isMode('elevated')) {\n return theme.colors.elevation.level1;\n }\n\n if (isMode('contained')) {\n return theme.colors.primary;\n }\n\n if (isMode('contained-tonal')) {\n return theme.colors.secondaryContainer;\n }\n }\n\n if (isMode('contained')) {\n if (disabled) {\n return color(theme.dark ? white : black)\n .alpha(0.12)\n .rgb()\n .string();\n }\n\n return theme.colors.primary;\n }\n\n return 'transparent';\n};\n\nconst getButtonTextColor = ({\n isMode,\n theme,\n disabled,\n customTextColor,\n backgroundColor,\n dark,\n}: BaseProps & {\n customTextColor?: string;\n backgroundColor: string;\n dark?: boolean;\n}) => {\n if (customTextColor && !disabled) {\n return customTextColor;\n }\n\n if (theme.isV3) {\n if (disabled) {\n return theme.colors.onSurfaceDisabled;\n }\n\n if (typeof dark === 'boolean') {\n if (\n isMode('contained') ||\n isMode('contained-tonal') ||\n isMode('elevated')\n ) {\n return isDark({ dark, backgroundColor }) ? white : black;\n }\n }\n\n if (isMode('outlined') || isMode('text') || isMode('elevated')) {\n return theme.colors.primary;\n }\n\n if (isMode('contained')) {\n return theme.colors.onPrimary;\n }\n\n if (isMode('contained-tonal')) {\n return theme.colors.onSecondaryContainer;\n }\n }\n\n if (disabled) {\n return color(theme.dark ? white : black)\n .alpha(0.32)\n .rgb()\n .string();\n }\n\n if (isMode('contained')) {\n return isDark({ dark, backgroundColor }) ? white : black;\n }\n\n return theme.colors.primary;\n};\n\nconst getButtonBorderColor = ({ isMode, disabled, theme }: BaseProps) => {\n if (theme.isV3) {\n if (disabled && isMode('outlined')) {\n return theme.colors.surfaceDisabled;\n }\n\n if (isMode('outlined')) {\n return theme.colors.outline;\n }\n }\n\n if (isMode('outlined')) {\n return color(theme.dark ? white : black)\n .alpha(0.29)\n .rgb()\n .string();\n }\n\n return 'transparent';\n};\n\nconst getButtonBorderWidth = ({\n isMode,\n theme,\n}: Omit<BaseProps, 'disabled'>) => {\n if (theme.isV3) {\n if (isMode('outlined')) {\n return 1;\n }\n }\n\n if (isMode('outlined')) {\n return StyleSheet.hairlineWidth;\n }\n\n return 0;\n};\n\nexport const getButtonColors = ({\n theme,\n mode,\n customButtonColor,\n customTextColor,\n disabled,\n dark,\n}: {\n theme: InternalTheme;\n mode: ButtonMode;\n customButtonColor?: string;\n customTextColor?: string;\n disabled?: boolean;\n dark?: boolean;\n}) => {\n const isMode = (modeToCompare: ButtonMode) => {\n return mode === modeToCompare;\n };\n\n const backgroundColor = getButtonBackgroundColor({\n isMode,\n theme,\n disabled,\n customButtonColor,\n });\n\n const textColor = getButtonTextColor({\n isMode,\n theme,\n disabled,\n customTextColor,\n backgroundColor,\n dark,\n });\n\n const borderColor = getButtonBorderColor({ isMode, theme, disabled });\n\n const borderWidth = getButtonBorderWidth({ isMode, theme });\n\n return {\n backgroundColor,\n borderColor,\n textColor,\n borderWidth,\n };\n};\n\ntype ViewStyleBorderRadiusStyles = Partial<\n Pick<\n ViewStyle,\n | 'borderBottomEndRadius'\n | 'borderBottomLeftRadius'\n | 'borderBottomRightRadius'\n | 'borderBottomStartRadius'\n | 'borderTopEndRadius'\n | 'borderTopLeftRadius'\n | 'borderTopRightRadius'\n | 'borderTopStartRadius'\n | 'borderRadius'\n >\n>;\nexport const getButtonTouchableRippleStyle = (\n style?: ViewStyle,\n borderWidth: number = 0\n): ViewStyleBorderRadiusStyles => {\n if (!style) return {};\n const touchableRippleStyle: ViewStyleBorderRadiusStyles = {};\n\n const [, borderRadiusStyles] = splitStyles(\n style,\n (style) => style.startsWith('border') && style.endsWith('Radius')\n );\n\n (\n Object.keys(borderRadiusStyles) as Array<keyof ViewStyleBorderRadiusStyles>\n ).forEach((key) => {\n const value = style[key as keyof ViewStyleBorderRadiusStyles];\n if (typeof value === 'number') {\n // Only subtract borderWidth if value is greater than 0\n const radius = value > 0 ? value - borderWidth : 0;\n touchableRippleStyle[key as keyof ViewStyleBorderRadiusStyles] = radius;\n }\n });\n return touchableRippleStyle;\n};\n"],"mappings":"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","ignoreList":[]},"metadata":{"hasCjsExports":false},"sourceType":"module","externalDependencies":[]}