codingpixel-expo-app 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +112 -0
  3. package/bin/cli.js +9 -0
  4. package/dist/babel.js +198 -0
  5. package/dist/bootstrap.js +54 -0
  6. package/dist/fonts.js +98 -0
  7. package/dist/index.js +120 -0
  8. package/dist/install.js +243 -0
  9. package/dist/overlay.js +141 -0
  10. package/dist/patch.js +212 -0
  11. package/dist/prompts.js +115 -0
  12. package/dist/scaffold.js +43 -0
  13. package/dist/sdkNotes.js +19 -0
  14. package/dist/util.js +48 -0
  15. package/package.json +56 -0
  16. package/templates/base/assets/fonts/.gitkeep +0 -0
  17. package/templates/base/assets/images/.gitkeep +0 -0
  18. package/templates/base/assets/index.ts +8 -0
  19. package/templates/base/src/app/_layout.tsx +39 -0
  20. package/templates/base/src/app/index.tsx +13 -0
  21. package/templates/base/src/app/routes.tsx +9 -0
  22. package/templates/base/src/core/hooks/.gitkeep +0 -0
  23. package/templates/base/src/core/redux/hooks.ts +6 -0
  24. package/templates/base/src/core/redux/mmkvStorage.ts +18 -0
  25. package/templates/base/src/core/redux/reducers.ts +20 -0
  26. package/templates/base/src/core/redux/slices/userSlice.ts +31 -0
  27. package/templates/base/src/core/redux/store.ts +28 -0
  28. package/templates/base/src/core/services/.gitkeep +0 -0
  29. package/templates/base/src/core/tanstack/index.tsx +93 -0
  30. package/templates/base/src/core/tanstack/tanstack-keys.ts +42 -0
  31. package/templates/base/src/core/utils/config.ts +50 -0
  32. package/templates/base/src/core/utils/constants.ts +11 -0
  33. package/templates/base/src/core/utils/endpoints.ts +29 -0
  34. package/templates/base/src/core/utils/types.ts +47 -0
  35. package/templates/base/src/core/utils/validation.ts +10 -0
  36. package/templates/base/src/features/.gitkeep +0 -0
  37. package/templates/base/src/ui/appComponents/AppRefreshControl/index.tsx +39 -0
  38. package/templates/base/src/ui/appComponents/appButton/index.tsx +122 -0
  39. package/templates/base/src/ui/appComponents/appColumnView/index.tsx +320 -0
  40. package/templates/base/src/ui/appComponents/appFlashList/index.tsx +191 -0
  41. package/templates/base/src/ui/appComponents/appFlatList/index.tsx +172 -0
  42. package/templates/base/src/ui/appComponents/appIcon/index.tsx +105 -0
  43. package/templates/base/src/ui/appComponents/appInput/index.tsx +226 -0
  44. package/templates/base/src/ui/appComponents/appKeyboardAvoidingView/index.tsx +168 -0
  45. package/templates/base/src/ui/appComponents/appKeyboardAwareScrollView/index.tsx +188 -0
  46. package/templates/base/src/ui/appComponents/appLogger/index.tsx +22 -0
  47. package/templates/base/src/ui/appComponents/appPressable/index.tsx +220 -0
  48. package/templates/base/src/ui/appComponents/appRowView/index.tsx +320 -0
  49. package/templates/base/src/ui/appComponents/appSafeAreaInsets/index.tsx +24 -0
  50. package/templates/base/src/ui/appComponents/appScrollView/index.tsx +166 -0
  51. package/templates/base/src/ui/appComponents/appSkeleton/index.tsx +22 -0
  52. package/templates/base/src/ui/appComponents/appStatusBar/index.tsx +8 -0
  53. package/templates/base/src/ui/appComponents/appTabHeader/index.tsx +111 -0
  54. package/templates/base/src/ui/appComponents/appText/index.tsx +258 -0
  55. package/templates/base/src/ui/appComponents/appTextWrapper/index.tsx +84 -0
  56. package/templates/base/src/ui/appComponents/appWrapper/index.tsx +56 -0
  57. package/templates/base/src/ui/appComponents/customActivityIndicator/index.tsx +34 -0
  58. package/templates/base/src/ui/appComponents/customGetPermissionModal/index.tsx +62 -0
  59. package/templates/base/src/ui/appComponents/customModal/index.tsx +26 -0
  60. package/templates/base/src/ui/appComponents/customTextInput/index.tsx +143 -0
  61. package/templates/base/src/ui/components/.gitkeep +0 -0
  62. package/templates/base/src/ui/components/avatarBlock/index.tsx +42 -0
  63. package/templates/base/src/ui/components/backgroundGradient/index.tsx +24 -0
  64. package/templates/base/src/ui/components/errorFallback/index.tsx +40 -0
  65. package/templates/base/src/ui/iconComponents/IconFontAwesome6/index.tsx +22 -0
  66. package/templates/base/src/ui/iconComponents/IoniconsIcons/index.tsx +33 -0
  67. package/templates/base/src/ui/iconComponents/antDesignicons/index.tsx +22 -0
  68. package/templates/base/src/ui/iconComponents/featherIcons/index.tsx +22 -0
  69. package/templates/base/src/ui/iconComponents/materialCommunityIcons/index.tsx +24 -0
  70. package/templates/base/src/ui/iconComponents/materialIcons/index.tsx +23 -0
  71. package/templates/base/src/ui/iconComponents/octiconsIcons/index.tsx +23 -0
  72. package/templates/base/src/ui/theme/allFileStyles.ts +39 -0
  73. package/templates/base/src/ui/theme/colors.ts +54 -0
  74. package/templates/base/src/ui/theme/fonts.ts +3 -0
  75. package/templates/base/src/ui/theme/responsive.ts +27 -0
  76. package/templates/bottom-sheet/src/ui/appComponents/BottomSheetKeyboardAwareScrollView/index.tsx +111 -0
  77. package/templates/bottom-sheet/src/ui/appComponents/appBottomSheetBackdrop/index.tsx +27 -0
  78. package/templates/bottom-sheet/src/ui/appComponents/appBottomSheetScrollView/index.tsx +99 -0
  79. package/templates/bottom-sheet/src/ui/appComponents/appBottomSheetView/index.tsx +173 -0
  80. package/templates/bottom-sheet/src/ui/appComponents/customBottomSheetModal/index.tsx +17 -0
  81. package/templates/claude-command/init-app.md +41 -0
  82. package/templates/image-picker/media-constants.snippet.ts +18 -0
  83. package/templates/image-picker/src/core/services/PermissionService.ts +48 -0
@@ -0,0 +1,168 @@
1
+ import { RF } from "@theme/responsive";
2
+ import React from "react";
3
+ import { DimensionValue, StyleProp, ViewStyle } from "react-native";
4
+ import {
5
+ KeyboardAvoidingView,
6
+ KeyboardAvoidingViewProps,
7
+ } from "react-native-keyboard-controller";
8
+
9
+ type CustomKeyboardAvoidingViewProps = KeyboardAvoidingViewProps & {
10
+ children?: React.ReactNode;
11
+
12
+ padding?: number;
13
+ paddingHorizontal?: number;
14
+ paddingVertical?: number;
15
+ paddingTop?: number;
16
+ paddingBottom?: number;
17
+ paddingLeft?: number;
18
+ paddingRight?: number;
19
+
20
+ margin?: number;
21
+ marginHorizontal?: number;
22
+ marginVertical?: number;
23
+ marginTop?: number;
24
+ marginBottom?: number;
25
+ marginLeft?: number;
26
+ marginRight?: number;
27
+
28
+ borderTopLeftRadius?: number;
29
+ borderTopRightRadius?: number;
30
+
31
+ gap?: number;
32
+ rowGap?: number;
33
+ columnGap?: number;
34
+
35
+ flex?: number;
36
+ flexGrow?: number;
37
+ flexShrink?: number;
38
+ flexBasis?: number;
39
+ flexDirection?: ViewStyle["flexDirection"];
40
+ alignItems?: ViewStyle["alignItems"];
41
+ justifyContent?: ViewStyle["justifyContent"];
42
+ alignSelf?: ViewStyle["alignSelf"];
43
+ flexWrap?: ViewStyle["flexWrap"];
44
+
45
+ width?: number | DimensionValue;
46
+ height?: number | DimensionValue;
47
+ minWidth?: number | DimensionValue;
48
+ maxWidth?: number | DimensionValue;
49
+ minHeight?: number | DimensionValue;
50
+ maxHeight?: number | DimensionValue;
51
+
52
+ backgroundColor?: string;
53
+ borderRadius?: number;
54
+ opacity?: number;
55
+ overflow?: ViewStyle["overflow"];
56
+ };
57
+
58
+ const AppKeyboardAvoidingView: React.FC<CustomKeyboardAvoidingViewProps> = ({
59
+ children,
60
+ style,
61
+ padding,
62
+ paddingHorizontal,
63
+ paddingVertical,
64
+ paddingTop,
65
+ paddingBottom,
66
+ paddingLeft,
67
+ paddingRight,
68
+ margin,
69
+ marginHorizontal,
70
+ marginVertical,
71
+ marginTop,
72
+ marginBottom,
73
+ marginLeft,
74
+ marginRight,
75
+ borderTopLeftRadius,
76
+ borderTopRightRadius,
77
+ gap,
78
+ rowGap,
79
+ columnGap,
80
+ flex,
81
+ flexGrow,
82
+ flexShrink,
83
+ flexBasis,
84
+ flexDirection,
85
+ alignItems,
86
+ justifyContent,
87
+ alignSelf,
88
+ flexWrap,
89
+ width,
90
+ height,
91
+ minWidth,
92
+ maxWidth,
93
+ minHeight,
94
+ maxHeight,
95
+ backgroundColor,
96
+ borderRadius,
97
+ opacity,
98
+ overflow,
99
+ ...rest
100
+ }) => {
101
+ const toDim = (v?: number | DimensionValue) =>
102
+ v === undefined
103
+ ? undefined
104
+ : typeof v === "number"
105
+ ? (RF(v) as unknown as DimensionValue)
106
+ : v;
107
+
108
+ const customStyle: StyleProp<ViewStyle> = {
109
+ padding: padding !== undefined ? RF(padding) : undefined,
110
+ paddingHorizontal:
111
+ paddingHorizontal !== undefined ? RF(paddingHorizontal) : undefined,
112
+ paddingVertical:
113
+ paddingVertical !== undefined ? RF(paddingVertical) : undefined,
114
+ paddingTop: paddingTop !== undefined ? RF(paddingTop) : undefined,
115
+ paddingBottom: paddingBottom !== undefined ? RF(paddingBottom) : undefined,
116
+ paddingLeft: paddingLeft !== undefined ? RF(paddingLeft) : undefined,
117
+ paddingRight: paddingRight !== undefined ? RF(paddingRight) : undefined,
118
+
119
+ margin: margin !== undefined ? RF(margin) : undefined,
120
+ marginHorizontal:
121
+ marginHorizontal !== undefined ? RF(marginHorizontal) : undefined,
122
+ marginVertical:
123
+ marginVertical !== undefined ? RF(marginVertical) : undefined,
124
+ marginTop: marginTop !== undefined ? RF(marginTop) : undefined,
125
+ marginBottom: marginBottom !== undefined ? RF(marginBottom) : undefined,
126
+ marginLeft: marginLeft !== undefined ? RF(marginLeft) : undefined,
127
+ marginRight: marginRight !== undefined ? RF(marginRight) : undefined,
128
+
129
+ gap: gap !== undefined ? RF(gap) : undefined,
130
+ rowGap: rowGap !== undefined ? RF(rowGap) : undefined,
131
+ columnGap: columnGap !== undefined ? RF(columnGap) : undefined,
132
+
133
+ borderTopLeftRadius:
134
+ borderTopLeftRadius !== undefined ? RF(borderTopLeftRadius) : undefined,
135
+ borderTopRightRadius:
136
+ borderTopRightRadius !== undefined ? RF(borderTopRightRadius) : undefined,
137
+
138
+ flex,
139
+ flexGrow,
140
+ flexShrink,
141
+ flexBasis,
142
+ flexDirection,
143
+ alignItems,
144
+ justifyContent,
145
+ alignSelf,
146
+ flexWrap,
147
+
148
+ width: toDim(width),
149
+ height: toDim(height),
150
+ minWidth: toDim(minWidth),
151
+ maxWidth: toDim(maxWidth),
152
+ minHeight: toDim(minHeight),
153
+ maxHeight: toDim(maxHeight),
154
+
155
+ backgroundColor,
156
+ borderRadius: borderRadius !== undefined ? RF(borderRadius) : undefined,
157
+ opacity,
158
+ overflow,
159
+ };
160
+
161
+ return (
162
+ <KeyboardAvoidingView style={[customStyle, style]} {...rest}>
163
+ {children}
164
+ </KeyboardAvoidingView>
165
+ );
166
+ };
167
+
168
+ export default AppKeyboardAvoidingView;
@@ -0,0 +1,188 @@
1
+ import {RF} from '@theme/responsive';
2
+ import React from 'react';
3
+ import {DimensionValue, StyleProp, ViewStyle} from 'react-native';
4
+ import {
5
+ KeyboardAwareScrollView,
6
+ KeyboardAwareScrollViewProps,
7
+ } from 'react-native-keyboard-controller';
8
+
9
+ type NumericOrDim = number | DimensionValue;
10
+
11
+ export interface AppKeyboardAwareScrollViewProps
12
+ extends Omit<
13
+ KeyboardAwareScrollViewProps,
14
+ 'style' | 'contentContainerStyle'
15
+ > {
16
+ flex?: number;
17
+ flexGrow?: number;
18
+ flexShrink?: number;
19
+ flexBasis?: NumericOrDim;
20
+
21
+ flexWrap?: ViewStyle['flexWrap'];
22
+ flexDirection?: ViewStyle['flexDirection'];
23
+ alignItems?: ViewStyle['alignItems'];
24
+ justifyContent?: ViewStyle['justifyContent'];
25
+ alignSelf?: ViewStyle['alignSelf'];
26
+
27
+ width?: NumericOrDim;
28
+ height?: NumericOrDim;
29
+ minWidth?: NumericOrDim;
30
+ maxWidth?: NumericOrDim;
31
+ minHeight?: NumericOrDim;
32
+ maxHeight?: NumericOrDim;
33
+
34
+ padding?: number;
35
+ paddingHorizontal?: number;
36
+ paddingVertical?: number;
37
+ paddingTop?: number;
38
+ paddingBottom?: number;
39
+ paddingLeft?: number;
40
+ paddingRight?: number;
41
+ gap?:number;
42
+
43
+ margin?: number;
44
+ marginHorizontal?: number;
45
+ marginVertical?: number;
46
+ marginTop?: number;
47
+ marginBottom?: number;
48
+ marginLeft?: number;
49
+ marginRight?: number;
50
+
51
+ borderRadius?: number;
52
+ borderWidth?: number;
53
+ borderColor?: string;
54
+ backgroundColor?: string;
55
+
56
+ position?: ViewStyle['position'];
57
+ top?: NumericOrDim;
58
+ right?: NumericOrDim;
59
+ bottom?: NumericOrDim;
60
+ left?: NumericOrDim;
61
+
62
+ style?: StyleProp<ViewStyle>;
63
+ contentContainerStyle?: StyleProp<ViewStyle>;
64
+ }
65
+
66
+ const toDim = (v?: number | DimensionValue) =>
67
+ v === undefined
68
+ ? undefined
69
+ : typeof v === 'number'
70
+ ? (RF(v) as unknown as DimensionValue)
71
+ : v;
72
+
73
+ function buildContainerStyle(
74
+ props: AppKeyboardAwareScrollViewProps,
75
+ ): ViewStyle {
76
+ const {
77
+ flex,
78
+ flexGrow,
79
+ flexShrink,
80
+ flexBasis,
81
+ flexWrap,
82
+ flexDirection,
83
+ alignItems,
84
+ justifyContent,
85
+ alignSelf,
86
+ width,
87
+ height,
88
+ minWidth,
89
+ maxWidth,
90
+ minHeight,
91
+ maxHeight,
92
+ padding,
93
+ paddingHorizontal,
94
+ paddingVertical,
95
+ paddingTop,
96
+ paddingBottom,
97
+ paddingLeft,
98
+ paddingRight,
99
+ gap,
100
+ margin,
101
+ marginHorizontal,
102
+ marginVertical,
103
+ marginTop,
104
+ marginBottom,
105
+ marginLeft,
106
+ marginRight,
107
+ borderRadius,
108
+ borderWidth,
109
+ borderColor,
110
+ backgroundColor,
111
+ position,
112
+ top,
113
+ right,
114
+ bottom,
115
+ left,
116
+ } = props;
117
+
118
+ return {
119
+ flex,
120
+ flexGrow,
121
+ flexShrink,
122
+ flexBasis: toDim(flexBasis),
123
+ flexWrap,
124
+ flexDirection,
125
+ alignItems,
126
+ justifyContent,
127
+ alignSelf,
128
+
129
+ width: toDim(width),
130
+ height: toDim(height),
131
+ minWidth: toDim(minWidth),
132
+ maxWidth: toDim(maxWidth),
133
+ minHeight: toDim(minHeight),
134
+ maxHeight: toDim(maxHeight),
135
+
136
+ padding: padding !== undefined ? RF(padding) : undefined,
137
+ paddingHorizontal:
138
+ paddingHorizontal !== undefined ? RF(paddingHorizontal) : undefined,
139
+ paddingVertical:
140
+ paddingVertical !== undefined ? RF(paddingVertical) : undefined,
141
+ paddingTop: paddingTop !== undefined ? RF(paddingTop) : undefined,
142
+ paddingBottom: paddingBottom !== undefined ? RF(paddingBottom) : undefined,
143
+ paddingLeft: paddingLeft !== undefined ? RF(paddingLeft) : undefined,
144
+ paddingRight: paddingRight !== undefined ? RF(paddingRight) : undefined,
145
+ gap: gap !== undefined ? RF(gap) : undefined,
146
+
147
+ margin: margin !== undefined ? RF(margin) : undefined,
148
+ marginHorizontal:
149
+ marginHorizontal !== undefined ? RF(marginHorizontal) : undefined,
150
+ marginVertical:
151
+ marginVertical !== undefined ? RF(marginVertical) : undefined,
152
+ marginTop: marginTop !== undefined ? RF(marginTop) : undefined,
153
+ marginBottom: marginBottom !== undefined ? RF(marginBottom) : undefined,
154
+ marginLeft: marginLeft !== undefined ? RF(marginLeft) : undefined,
155
+ marginRight: marginRight !== undefined ? RF(marginRight) : undefined,
156
+
157
+ borderRadius: borderRadius !== undefined ? RF(borderRadius) : undefined,
158
+ borderWidth: borderWidth !== undefined ? RF(borderWidth) : undefined,
159
+ borderColor,
160
+ backgroundColor,
161
+
162
+ position,
163
+ top: toDim(top),
164
+ right: toDim(right),
165
+ bottom: toDim(bottom),
166
+ left: toDim(left),
167
+ };
168
+ }
169
+
170
+ const AppKeyboardAwareScrollView: React.FC<AppKeyboardAwareScrollViewProps> = ({
171
+ style,
172
+ contentContainerStyle,
173
+ children,
174
+ ...rest
175
+ }) => {
176
+ const containerStyle = buildContainerStyle(rest);
177
+
178
+ return (
179
+ <KeyboardAwareScrollView
180
+ {...rest}
181
+ style={style}
182
+ contentContainerStyle={[containerStyle, contentContainerStyle]}>
183
+ {children}
184
+ </KeyboardAwareScrollView>
185
+ );
186
+ };
187
+
188
+ export default AppKeyboardAwareScrollView;
@@ -0,0 +1,22 @@
1
+ // Deviation #3 (docs/MIRROR_NOTES.md): Reactotron import stripped.
2
+ // MyRoster's appLogger imported `../../../../ReactotronConfig` from project root —
3
+ // app-specific dev tooling. Generated apps add Reactotron back per their own setup.
4
+ //
5
+ // Default transport is the built-in console transport from react-native-logs.
6
+ import { consoleTransport, logger } from "react-native-logs";
7
+
8
+ const config = {
9
+ transport: consoleTransport,
10
+ severity: __DEV__ ? "debug" : "error",
11
+ transportOptions: {
12
+ colors: {
13
+ info: "blueBright" as const,
14
+ warn: "yellowBright" as const,
15
+ error: "redBright" as const,
16
+ },
17
+ },
18
+ };
19
+
20
+ const log = logger.createLogger(config);
21
+
22
+ export default log;
@@ -0,0 +1,220 @@
1
+ import { RF } from '@theme/responsive';
2
+ import React from 'react';
3
+ import {
4
+ DimensionValue,
5
+ Pressable,
6
+ PressableProps,
7
+ StyleProp,
8
+ ViewStyle,
9
+ } from 'react-native';
10
+
11
+ type CustomPressableProps = PressableProps & {
12
+ children?: React.ReactNode;
13
+
14
+ padding?: number;
15
+ paddingHorizontal?: number;
16
+ paddingVertical?: number;
17
+ paddingTop?: number;
18
+ paddingBottom?: number;
19
+ paddingLeft?: number;
20
+ paddingRight?: number;
21
+
22
+ margin?: number;
23
+ marginHorizontal?: number;
24
+ marginVertical?: number;
25
+ marginTop?: number;
26
+ marginBottom?: number;
27
+ marginLeft?: number;
28
+ marginRight?: number;
29
+
30
+ flex?: number;
31
+ flexGrow?: number;
32
+ flexShrink?: number;
33
+ flexBasis?: number | DimensionValue;
34
+ flexWrap?: ViewStyle['flexWrap'];
35
+ alignItems?: ViewStyle['alignItems'];
36
+ justifyContent?: ViewStyle['justifyContent'];
37
+ alignSelf?: ViewStyle['alignSelf'];
38
+ alignContent?: ViewStyle['alignContent'];
39
+ flexDirection?: ViewStyle['flexDirection'];
40
+
41
+ gap?: number;
42
+ rowGap?: number;
43
+ columnGap?: number;
44
+
45
+ width?: number | DimensionValue;
46
+ height?: number | DimensionValue;
47
+ minWidth?: number | DimensionValue;
48
+ maxWidth?: number | DimensionValue;
49
+ minHeight?: number | DimensionValue;
50
+ maxHeight?: number | DimensionValue;
51
+ aspectRatio?: number;
52
+
53
+ position?: ViewStyle['position'];
54
+ top?: number | DimensionValue;
55
+ left?: number | DimensionValue;
56
+ right?: number | DimensionValue;
57
+ bottom?: number | DimensionValue;
58
+ zIndex?: number;
59
+
60
+ backgroundColor?: string;
61
+ opacity?: number;
62
+ overflow?: ViewStyle['overflow'];
63
+ display?: ViewStyle['display'];
64
+ borderRadius?: number;
65
+ borderTopLeftRadius?: number;
66
+ borderTopRightRadius?: number;
67
+ borderBottomLeftRadius?: number;
68
+ borderBottomRightRadius?: number;
69
+
70
+ borderWidth?: number;
71
+ borderTopWidth?: number;
72
+ borderBottomWidth?: number;
73
+ borderLeftWidth?: number;
74
+ borderRightWidth?: number;
75
+ borderColor?: string;
76
+ borderTopColor?: string;
77
+ borderBottomColor?: string;
78
+ borderLeftColor?: string;
79
+ borderRightColor?: string;
80
+ borderStyle?: ViewStyle['borderStyle'];
81
+
82
+ shadowColor?: string;
83
+ shadowOffset?: { width: number; height: number };
84
+ shadowOpacity?: number;
85
+ shadowRadius?: number;
86
+ elevation?: number;
87
+
88
+ transform?: ViewStyle['transform'];
89
+ backfaceVisibility?: ViewStyle['backfaceVisibility'];
90
+ };
91
+
92
+ const AppPressable: React.FC<CustomPressableProps> = ({
93
+ children,
94
+ style,
95
+ position,
96
+ top,
97
+ left,
98
+ right,
99
+ bottom,
100
+ zIndex,
101
+ gap,
102
+ rowGap,
103
+ columnGap,
104
+ alignItems,
105
+ justifyContent,
106
+ alignSelf,
107
+ alignContent,
108
+ flexDirection,
109
+ flex,
110
+ flexGrow,
111
+ flexShrink,
112
+ flexBasis,
113
+ flexWrap,
114
+ width,
115
+ height,
116
+ minWidth,
117
+ maxWidth,
118
+ minHeight,
119
+ maxHeight,
120
+ aspectRatio,
121
+ backgroundColor,
122
+ opacity,
123
+ overflow,
124
+ display,
125
+ borderRadius,
126
+ borderTopLeftRadius,
127
+ borderTopRightRadius,
128
+ borderBottomLeftRadius,
129
+ borderBottomRightRadius,
130
+ borderWidth,
131
+ borderTopWidth,
132
+ borderBottomWidth,
133
+ borderLeftWidth,
134
+ borderRightWidth,
135
+ borderColor,
136
+ borderTopColor,
137
+ borderBottomColor,
138
+ borderLeftColor,
139
+ borderRightColor,
140
+ borderStyle,
141
+ ...rest
142
+ }) => {
143
+ const toDim = (v?: number | DimensionValue) =>
144
+ v === undefined
145
+ ? undefined
146
+ : typeof v === 'number'
147
+ ? (RF(v) as unknown as DimensionValue)
148
+ : v;
149
+
150
+ const customStyle: ViewStyle = {
151
+ position,
152
+ top: toDim(top),
153
+ left: toDim(left),
154
+ right: toDim(right),
155
+ bottom: toDim(bottom),
156
+ zIndex,
157
+
158
+ gap: gap !== undefined ? RF(gap) : undefined,
159
+ rowGap: rowGap !== undefined ? RF(rowGap) : undefined,
160
+ columnGap: columnGap !== undefined ? RF(columnGap) : undefined,
161
+
162
+ alignItems,
163
+ justifyContent,
164
+ alignSelf,
165
+ alignContent,
166
+ flexDirection,
167
+ flex,
168
+ flexGrow,
169
+ flexShrink,
170
+ flexBasis,
171
+ flexWrap,
172
+ width: toDim(width),
173
+ height: toDim(height),
174
+ minWidth: toDim(minWidth),
175
+ maxWidth: toDim(maxWidth),
176
+ minHeight: toDim(minHeight),
177
+ maxHeight: toDim(maxHeight),
178
+ aspectRatio,
179
+ backgroundColor,
180
+ opacity,
181
+ overflow,
182
+ display,
183
+ borderRadius: borderRadius !== undefined ? RF(borderRadius) : undefined,
184
+ borderTopLeftRadius:
185
+ borderTopLeftRadius !== undefined ? RF(borderTopLeftRadius) : undefined,
186
+ borderTopRightRadius:
187
+ borderTopRightRadius !== undefined ? RF(borderTopRightRadius) : undefined,
188
+ borderBottomLeftRadius:
189
+ borderBottomLeftRadius !== undefined
190
+ ? RF(borderBottomLeftRadius)
191
+ : undefined,
192
+ borderBottomRightRadius:
193
+ borderBottomRightRadius !== undefined
194
+ ? RF(borderBottomRightRadius)
195
+ : undefined,
196
+ borderWidth: borderWidth !== undefined ? RF(borderWidth) : undefined,
197
+ borderTopWidth:
198
+ borderTopWidth !== undefined ? RF(borderTopWidth) : undefined,
199
+ borderBottomWidth:
200
+ borderBottomWidth !== undefined ? RF(borderBottomWidth) : undefined,
201
+ borderLeftWidth:
202
+ borderLeftWidth !== undefined ? RF(borderLeftWidth) : undefined,
203
+ borderRightWidth:
204
+ borderRightWidth !== undefined ? RF(borderRightWidth) : undefined,
205
+ borderColor,
206
+ borderTopColor,
207
+ borderBottomColor,
208
+ borderLeftColor,
209
+ borderRightColor,
210
+ borderStyle,
211
+ };
212
+
213
+ return (
214
+ <Pressable style={[customStyle, style as StyleProp<ViewStyle>]} {...rest}>
215
+ {children}
216
+ </Pressable>
217
+ );
218
+ };
219
+
220
+ export default AppPressable;