repoweaver
Version:
A GitHub App that skillfully weaves multiple templates together to create and update repositories with intelligent merge strategies
1 lines • 17.5 kB
JSON
{"ast":null,"code":"import * as React from 'react';\nimport Animated from \"react-native-web/dist/exports/Animated\";\nimport StyleSheet from \"react-native-web/dist/exports/StyleSheet\";\nimport View from \"react-native-web/dist/exports/View\";\nimport color from 'color';\nimport { getSegmentedButtonBorderRadius, getSegmentedButtonColors, getSegmentedButtonDensityPadding } from \"./utils\";\nimport { useInternalTheme } from \"../../core/theming\";\nimport Icon from \"../Icon\";\nimport TouchableRipple from \"../TouchableRipple/TouchableRipple\";\nimport Text from \"../Typography/Text\";\nconst SegmentedButtonItem = ({\n checked,\n accessibilityLabel,\n disabled,\n style,\n labelStyle,\n showSelectedCheck,\n checkedColor,\n uncheckedColor,\n rippleColor: customRippleColor,\n background,\n icon,\n testID,\n label,\n onPress,\n segment,\n density = 'regular',\n theme: themeOverrides,\n labelMaxFontSizeMultiplier,\n hitSlop\n}) => {\n const theme = useInternalTheme(themeOverrides);\n const checkScale = React.useRef(new Animated.Value(0)).current;\n React.useEffect(() => {\n if (!showSelectedCheck) {\n return;\n }\n if (checked) {\n Animated.spring(checkScale, {\n toValue: 1,\n useNativeDriver: true\n }).start();\n } else {\n Animated.spring(checkScale, {\n toValue: 0,\n useNativeDriver: true\n }).start();\n }\n }, [checked, checkScale, showSelectedCheck]);\n const {\n roundness,\n isV3\n } = theme;\n const {\n borderColor,\n textColor,\n borderWidth,\n backgroundColor\n } = getSegmentedButtonColors({\n checked,\n theme,\n disabled,\n checkedColor,\n uncheckedColor\n });\n const borderRadius = (isV3 ? 5 : 1) * roundness;\n const segmentBorderRadius = getSegmentedButtonBorderRadius({\n theme,\n segment\n });\n const rippleColor = customRippleColor || color(textColor).alpha(0.12).rgb().string();\n const showIcon = !icon ? false : label && checked ? !showSelectedCheck : true;\n const showCheckedIcon = checked && showSelectedCheck;\n const iconSize = isV3 ? 18 : 16;\n const iconStyle = Object.assign({\n marginRight: label ? 5 : showCheckedIcon ? 3 : 0\n }, label && {\n transform: [{\n scale: checkScale.interpolate({\n inputRange: [0, 1],\n outputRange: [1, 0]\n })\n }]\n });\n const buttonStyle = Object.assign({\n backgroundColor,\n borderColor,\n borderWidth,\n borderRadius\n }, segmentBorderRadius);\n const paddingVertical = getSegmentedButtonDensityPadding({\n density\n });\n const rippleStyle = Object.assign({\n borderRadius\n }, segmentBorderRadius);\n const labelTextStyle = Object.assign({}, !isV3 ? {\n textTransform: 'uppercase',\n fontWeight: '500'\n } : theme.fonts.labelLarge, {\n color: textColor\n });\n return React.createElement(View, {\n style: [buttonStyle, styles.button, style]\n }, React.createElement(TouchableRipple, {\n borderless: true,\n onPress: onPress,\n accessibilityLabel: accessibilityLabel,\n accessibilityState: {\n disabled,\n checked\n },\n accessibilityRole: \"button\",\n disabled: disabled,\n rippleColor: rippleColor,\n testID: testID,\n style: rippleStyle,\n background: background,\n theme: theme,\n hitSlop: hitSlop\n }, React.createElement(View, {\n style: [styles.content, {\n paddingVertical\n }]\n }, showCheckedIcon ? React.createElement(Animated.View, {\n testID: `${testID}-check-icon`,\n style: [iconStyle, {\n transform: [{\n scale: checkScale\n }]\n }]\n }, React.createElement(Icon, {\n source: 'check',\n size: iconSize,\n color: textColor\n })) : null, showIcon ? React.createElement(Animated.View, {\n testID: `${testID}-icon`,\n style: iconStyle\n }, React.createElement(Icon, {\n source: icon,\n size: iconSize,\n color: textColor\n })) : null, React.createElement(Text, {\n variant: \"labelLarge\",\n style: [styles.label, labelTextStyle, labelStyle],\n selectable: false,\n numberOfLines: 1,\n maxFontSizeMultiplier: labelMaxFontSizeMultiplier,\n testID: `${testID}-label`\n }, label))));\n};\nconst styles = StyleSheet.create({\n button: {\n flex: 1,\n minWidth: 76,\n borderStyle: 'solid'\n },\n label: {\n textAlign: 'center'\n },\n content: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center',\n paddingVertical: 9,\n paddingHorizontal: 16\n }\n});\nexport default SegmentedButtonItem;\nexport { SegmentedButtonItem as SegmentedButton };","map":{"version":3,"names":["React","Animated","StyleSheet","View","color","getSegmentedButtonBorderRadius","getSegmentedButtonColors","getSegmentedButtonDensityPadding","useInternalTheme","Icon","TouchableRipple","Text","SegmentedButtonItem","checked","accessibilityLabel","disabled","style","labelStyle","showSelectedCheck","checkedColor","uncheckedColor","rippleColor","customRippleColor","background","icon","testID","label","onPress","segment","density","theme","themeOverrides","labelMaxFontSizeMultiplier","hitSlop","checkScale","useRef","Value","current","useEffect","spring","toValue","useNativeDriver","start","roundness","isV3","borderColor","textColor","borderWidth","backgroundColor","borderRadius","segmentBorderRadius","alpha","rgb","string","showIcon","showCheckedIcon","iconSize","iconStyle","Object","assign","marginRight","transform","scale","interpolate","inputRange","outputRange","buttonStyle","paddingVertical","rippleStyle","labelTextStyle","textTransform","fontWeight","fonts","labelLarge","createElement","styles","button","borderless","accessibilityState","accessibilityRole","content","source","size","variant","selectable","numberOfLines","maxFontSizeMultiplier","create","flex","minWidth","borderStyle","textAlign","flexDirection","alignItems","justifyContent","paddingHorizontal","SegmentedButton"],"sources":["/Users/pmouli/Documents/GitHub.nosync/boots-strapper/mobile/node_modules/react-native-paper/src/components/SegmentedButtons/SegmentedButtonItem.tsx"],"sourcesContent":["import * as React from 'react';\nimport {\n Animated,\n ColorValue,\n GestureResponderEvent,\n PressableAndroidRippleConfig,\n StyleProp,\n StyleSheet,\n TextStyle,\n View,\n ViewStyle,\n} from 'react-native';\n\nimport color from 'color';\nimport type { ThemeProp } from 'src/types';\n\nimport {\n getSegmentedButtonBorderRadius,\n getSegmentedButtonColors,\n getSegmentedButtonDensityPadding,\n} from './utils';\nimport { useInternalTheme } from '../../core/theming';\nimport type { IconSource } from '../Icon';\nimport Icon from '../Icon';\nimport TouchableRipple, {\n Props as TouchableRippleProps,\n} from '../TouchableRipple/TouchableRipple';\nimport Text from '../Typography/Text';\n\nexport type Props = {\n /**\n * Whether the segmented button is checked\n */\n checked: boolean;\n /**\n * Icon to display for the `SegmentedButtonItem`.\n */\n icon?: IconSource;\n /**\n * @supported Available in v5.x with theme version 3\n * Custom color for unchecked Text and Icon.\n */\n uncheckedColor?: string;\n /**\n * @supported Available in v5.x with theme version 3\n * Custom color for checked Text and Icon.\n */\n checkedColor?: string;\n /**\n * Color of the ripple effect.\n */\n rippleColor?: ColorValue;\n /**\n * Whether the button is disabled.\n */\n disabled?: boolean;\n /**\n * Type of background drawabale to display the feedback (Android).\n * https://reactnative.dev/docs/pressable#rippleconfig\n */\n background?: PressableAndroidRippleConfig;\n /**\n * Accessibility label for the `SegmentedButtonItem`. This is read by the screen reader when the user taps the button.\n */\n accessibilityLabel?: string;\n /**\n * Function to execute on press.\n */\n onPress?: (event: GestureResponderEvent) => void;\n /**\n * Value of button.\n */\n value: string;\n /**\n * Label text of the button.\n */\n label?: string;\n /**\n * Button segment.\n */\n segment?: 'first' | 'last';\n /**\n * Show optional check icon to indicate selected state\n */\n showSelectedCheck?: boolean;\n /**\n * Density is applied to the height, to allow usage in denser UIs.\n */\n density?: 'regular' | 'small' | 'medium' | 'high';\n /**\n * Specifies the largest possible scale a label font can reach.\n */\n labelMaxFontSizeMultiplier?: number;\n style?: StyleProp<ViewStyle>;\n /**\n * Style for the button label.\n */\n labelStyle?: StyleProp<TextStyle>;\n /**\n * testID to be used on tests.\n */\n testID?: string;\n /**\n * Sets additional distance outside of element in which a press can be detected.\n */\n hitSlop?: TouchableRippleProps['hitSlop'];\n /**\n * @optional\n */\n theme?: ThemeProp;\n};\n\nconst SegmentedButtonItem = ({\n checked,\n accessibilityLabel,\n disabled,\n style,\n labelStyle,\n showSelectedCheck,\n checkedColor,\n uncheckedColor,\n rippleColor: customRippleColor,\n background,\n icon,\n testID,\n label,\n onPress,\n segment,\n density = 'regular',\n theme: themeOverrides,\n labelMaxFontSizeMultiplier,\n hitSlop,\n}: Props) => {\n const theme = useInternalTheme(themeOverrides);\n\n const checkScale = React.useRef(new Animated.Value(0)).current;\n\n React.useEffect(() => {\n if (!showSelectedCheck) {\n return;\n }\n if (checked) {\n Animated.spring(checkScale, {\n toValue: 1,\n useNativeDriver: true,\n }).start();\n } else {\n Animated.spring(checkScale, {\n toValue: 0,\n useNativeDriver: true,\n }).start();\n }\n }, [checked, checkScale, showSelectedCheck]);\n\n const { roundness, isV3 } = theme;\n const { borderColor, textColor, borderWidth, backgroundColor } =\n getSegmentedButtonColors({\n checked,\n theme,\n disabled,\n checkedColor,\n uncheckedColor,\n });\n\n const borderRadius = (isV3 ? 5 : 1) * roundness;\n const segmentBorderRadius = getSegmentedButtonBorderRadius({\n theme,\n segment,\n });\n const rippleColor =\n customRippleColor || color(textColor).alpha(0.12).rgb().string();\n\n const showIcon = !icon ? false : label && checked ? !showSelectedCheck : true;\n const showCheckedIcon = checked && showSelectedCheck;\n\n const iconSize = isV3 ? 18 : 16;\n const iconStyle = {\n marginRight: label ? 5 : showCheckedIcon ? 3 : 0,\n ...(label && {\n transform: [\n {\n scale: checkScale.interpolate({\n inputRange: [0, 1],\n outputRange: [1, 0],\n }),\n },\n ],\n }),\n };\n\n const buttonStyle: ViewStyle = {\n backgroundColor,\n borderColor,\n borderWidth,\n borderRadius,\n ...segmentBorderRadius,\n };\n const paddingVertical = getSegmentedButtonDensityPadding({ density });\n const rippleStyle: ViewStyle = {\n borderRadius,\n ...segmentBorderRadius,\n };\n const labelTextStyle: TextStyle = {\n ...(!isV3\n ? {\n textTransform: 'uppercase',\n fontWeight: '500',\n }\n : theme.fonts.labelLarge),\n color: textColor,\n };\n\n return (\n <View style={[buttonStyle, styles.button, style]}>\n <TouchableRipple\n borderless\n onPress={onPress}\n accessibilityLabel={accessibilityLabel}\n accessibilityState={{ disabled, checked }}\n accessibilityRole=\"button\"\n disabled={disabled}\n rippleColor={rippleColor}\n testID={testID}\n style={rippleStyle}\n background={background}\n theme={theme}\n hitSlop={hitSlop}\n >\n <View style={[styles.content, { paddingVertical }]}>\n {showCheckedIcon ? (\n <Animated.View\n testID={`${testID}-check-icon`}\n style={[iconStyle, { transform: [{ scale: checkScale }] }]}\n >\n <Icon source={'check'} size={iconSize} color={textColor} />\n </Animated.View>\n ) : null}\n {showIcon ? (\n <Animated.View testID={`${testID}-icon`} style={iconStyle}>\n <Icon source={icon} size={iconSize} color={textColor} />\n </Animated.View>\n ) : null}\n <Text\n variant=\"labelLarge\"\n style={[styles.label, labelTextStyle, labelStyle]}\n selectable={false}\n numberOfLines={1}\n maxFontSizeMultiplier={labelMaxFontSizeMultiplier}\n testID={`${testID}-label`}\n >\n {label}\n </Text>\n </View>\n </TouchableRipple>\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n button: {\n flex: 1,\n minWidth: 76,\n borderStyle: 'solid',\n },\n label: {\n textAlign: 'center',\n },\n content: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center',\n paddingVertical: 9,\n paddingHorizontal: 16,\n },\n});\n\nexport default SegmentedButtonItem;\n\nexport { SegmentedButtonItem as SegmentedButton };\n"],"mappings":"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","ignoreList":[]},"metadata":{"hasCjsExports":false},"sourceType":"module","externalDependencies":[]}