create-expo-stack 2.4.0-next.8829c0c → 2.4.0-next.9d605d9

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 (40) hide show
  1. package/README.md +6 -0
  2. package/build/commands/create-expo-stack.js +10 -2
  3. package/build/templates/base/App.tsx.ejs +22 -0
  4. package/build/templates/base/package.json.ejs +4 -0
  5. package/build/templates/packages/expo-router/drawer/app/(drawer)/index.tsx.ejs +13 -1
  6. package/build/templates/packages/expo-router/drawer/app/(drawer)/news.tsx.ejs +13 -1
  7. package/build/templates/packages/expo-router/drawer/app/[...unmatched].tsx.ejs +26 -0
  8. package/build/templates/packages/expo-router/drawer/app/_layout.tsx.ejs +4 -0
  9. package/build/templates/packages/expo-router/stack/app/[...unmatched].tsx.ejs +28 -0
  10. package/build/templates/packages/expo-router/stack/app/_layout.tsx.ejs +4 -0
  11. package/build/templates/packages/expo-router/stack/app/details.tsx.ejs +43 -1
  12. package/build/templates/packages/expo-router/stack/app/index.tsx.ejs +36 -0
  13. package/build/templates/packages/expo-router/tabs/app/(tabs)/_layout.tsx.ejs +30 -8
  14. package/build/templates/packages/expo-router/tabs/app/(tabs)/index.tsx.ejs +15 -2
  15. package/build/templates/packages/expo-router/tabs/app/(tabs)/two.tsx.ejs +15 -2
  16. package/build/templates/packages/expo-router/tabs/app/[...unmatched].tsx.ejs +28 -0
  17. package/build/templates/packages/expo-router/tabs/app/_layout.tsx.ejs +4 -0
  18. package/build/templates/packages/expo-router/tabs/app/modal.tsx.ejs +15 -1
  19. package/build/templates/packages/expo-router/tabs/components/edit-screen-info.tsx.ejs +36 -0
  20. package/build/templates/packages/react-navigation/App.tsx.ejs +3 -0
  21. package/build/templates/packages/react-navigation/components/edit-screen-info.tsx.ejs +59 -0
  22. package/build/templates/packages/react-navigation/navigation/index.tsx.ejs +28 -0
  23. package/build/templates/packages/react-navigation/navigation/tab-navigator.tsx.ejs +24 -1
  24. package/build/templates/packages/react-navigation/screens/details.tsx.ejs +25 -0
  25. package/build/templates/packages/react-navigation/screens/modal.tsx.ejs +13 -0
  26. package/build/templates/packages/react-navigation/screens/one.tsx.ejs +12 -0
  27. package/build/templates/packages/react-navigation/screens/overview.tsx.ejs +33 -2
  28. package/build/templates/packages/react-navigation/screens/two.tsx.ejs +12 -0
  29. package/build/templates/packages/unistyles/breakpoints.ts.ejs +9 -0
  30. package/build/templates/packages/unistyles/theme.ts.ejs +76 -0
  31. package/build/templates/packages/unistyles/unistyles.ts.ejs +27 -0
  32. package/build/types/types.d.ts +1 -1
  33. package/build/types/utilities/printOutput.d.ts +2 -2
  34. package/build/types.js +3 -2
  35. package/build/utilities/configureProjectFiles.js +11 -1
  36. package/build/utilities/generateProjectFiles.js +4 -1
  37. package/build/utilities/printOutput.js +14 -2
  38. package/build/utilities/runCLI.js +6 -2
  39. package/build/utilities/showHelp.js +2 -1
  40. package/package.json +1 -1
package/README.md CHANGED
@@ -12,6 +12,11 @@
12
12
 
13
13
  ## Sponsors
14
14
 
15
+ NativeWind
16
+ Restyle
17
+ StyleSheets
18
+ Tamagui
19
+
15
20
  Support this project by <a href="https://github.com/sponsors/danstepanov" target="_blank">becoming a sponsor</a>. Your logo will show up here with a link to your website.
16
21
 
17
22
  <a href="https://galaxies.dev/" target="_blank" style="margin-top: 10px;margin-right: 10px; margin-bottom: 10px;" ><img src="https://expostack.dev/galaxies-logo.svg" style="border-radius: 50%;"></a> <a href="https://expo.dev/" target="_blank" style="margin: 10px;"><img src="https://expostack.dev/expo-logo.svg" style="border-radius: 50%;"></a>
@@ -53,6 +58,7 @@ Each project is generated based on the results of the CLI, on a per-file basis.
53
58
  | NativeWind | UI Framework | v2 | Tailwind CSS for React Native |
54
59
  | Restyle | UI Framework | v2 | Theme-based styling library for React Native |
55
60
  | Tamagui | UI Framework | v1 | Universal UI with a smart optimizing compiler |
61
+ | Unistyles | UI Framework | v2 | Superset of StyleSheet |
56
62
  | Safe Area Context | Safe Area Library | v4 | Safe area support |
57
63
  | React Native Web | Web Support | v0.19 | React Native for Web |
58
64
  | Firebase | Backend and Auth | v10 | Cloud-hosted NoSQL database from Google |
@@ -203,6 +203,14 @@ var command = {
203
203
  type: 'styling'
204
204
  });
205
205
  }
206
+ else if (options.unistyles) {
207
+ cliResults = (0, clearStylingPackages_1.default)(cliResults);
208
+ // Add unistyles package
209
+ cliResults.packages.push({
210
+ name: 'unistyles',
211
+ type: 'styling'
212
+ });
213
+ }
206
214
  else if (options.stylesheet) {
207
215
  cliResults = (0, clearStylingPackages_1.default)(cliResults);
208
216
  // Add stylesheet package
@@ -296,7 +304,7 @@ var command = {
296
304
  files = (0, utilities_1.configureProjectFiles)(authenticationPackage, files, navigationPackage, stylingPackage, toolbox, cliResults);
297
305
  formattedFiles = [];
298
306
  formattedFiles = (0, utilities_1.generateProjectFiles)(authenticationPackage, cliResults, files, formattedFiles, navigationPackage, packageManager, stylingPackage, toolbox);
299
- return [4 /*yield*/, (0, utilities_1.printOutput)(cliResults, formattedFiles, toolbox)];
307
+ return [4 /*yield*/, (0, utilities_1.printOutput)(cliResults, formattedFiles, toolbox, stylingPackage)];
300
308
  case 16:
301
309
  _d.sent();
302
310
  _d.label = 17;
@@ -317,4 +325,4 @@ var command = {
317
325
  }); }
318
326
  };
319
327
  exports.default = command;
320
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWV4cG8tc3RhY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbWFuZHMvY3JlYXRlLWV4cG8tc3RhY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSxJQUFNLElBQUksR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7QUFFN0IsMENBU3NCO0FBQ3RCLDBDQUFnRTtBQUNoRSxrQ0FBeUQ7QUFDekQsMkZBQXFFO0FBQ3JFLHdFQUF1RTtBQUV2RSxJQUFNLE9BQU8sR0FBbUI7SUFDOUIsSUFBSSxFQUFFLG1CQUFtQjtJQUN6QixXQUFXLEVBQUUsMkJBQTJCO0lBQ3hDLEdBQUcsRUFBRSxVQUFPLE9BQU87Ozs7O29CQUVmLEtBS0UsT0FBTyxXQUwwQixFQUFyQixNQUFNLFlBQUEsRUFBRSxXQUFXLGlCQUFBLEVBQ2pDLEtBSUUsT0FBTyxXQUpxQixFQUFoQixLQUFLLFdBQUEsRUFBRSxPQUFPLGFBQUEsRUFDNUIsS0FHRSxPQUFPLE1BSG1DLEVBQW5DLElBQUksVUFBQSxFQUFFLFNBQVMsZUFBQSxFQUFFLE9BQU8sYUFBQSxFQUFFLE9BQU8sYUFBQSxFQUMxQyxNQUFNLEdBRUosT0FBTyxPQUZILEVBQ0ssVUFBVSxHQUNuQixPQUFPLG1CQURZLENBQ1g7b0JBRU4sdUJBQXVCLEdBQUc7d0JBQzlCLElBQUksQ0FBQyx1RUFBNkQsQ0FBQyxDQUFDO3dCQUNwRSxJQUFJLENBQ0YsMkhBQTJILENBQzVILENBQUM7d0JBQ0YsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO29CQUNYLENBQUMsQ0FBQztvQkFDRixJQUFJLE9BQU8sQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDO3dCQUM5QixJQUFBLG9CQUFRLEVBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQzt3QkFFbkMsc0JBQU87b0JBQ1Qs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
328
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWV4cG8tc3RhY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbWFuZHMvY3JlYXRlLWV4cG8tc3RhY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSxJQUFNLElBQUksR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7QUFFN0IsMENBU3NCO0FBQ3RCLDBDQUFnRTtBQUNoRSxrQ0FBeUQ7QUFDekQsMkZBQXFFO0FBQ3JFLHdFQUF1RTtBQUV2RSxJQUFNLE9BQU8sR0FBbUI7SUFDOUIsSUFBSSxFQUFFLG1CQUFtQjtJQUN6QixXQUFXLEVBQUUsMkJBQTJCO0lBQ3hDLEdBQUcsRUFBRSxVQUFPLE9BQU87Ozs7O29CQUVmLEtBS0UsT0FBTyxXQUwwQixFQUFyQixNQUFNLFlBQUEsRUFBRSxXQUFXLGlCQUFBLEVBQ2pDLEtBSUUsT0FBTyxXQUpxQixFQUFoQixLQUFLLFdBQUEsRUFBRSxPQUFPLGFBQUEsRUFDNUIsS0FHRSxPQUFPLE1BSG1DLEVBQW5DLElBQUksVUFBQSxFQUFFLFNBQVMsZUFBQSxFQUFFLE9BQU8sYUFBQSxFQUFFLE9BQU8sYUFBQSxFQUMxQyxNQUFNLEdBRUosT0FBTyxPQUZILEVBQ0ssVUFBVSxHQUNuQixPQUFPLG1CQURZLENBQ1g7b0JBRU4sdUJBQXVCLEdBQUc7d0JBQzlCLElBQUksQ0FBQyx1RUFBNkQsQ0FBQyxDQUFDO3dCQUNwRSxJQUFJLENBQ0YsMkhBQTJILENBQzVILENBQUM7d0JBQ0YsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO29CQUNYLENBQUMsQ0FBQztvQkFDRixJQUFJLE9BQU8sQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDO3dCQUM5QixJQUFBLG9CQUFRLEVBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQzt3QkFFbkMsc0JBQU87b0JBQ1Qs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
@@ -9,6 +9,9 @@ import React from 'react';
9
9
  <% } else if (props.stylingPackage?.name === "restyle") {%>
10
10
  import { ThemeProvider } from '@shopify/restyle';
11
11
  import {theme, Text} from './theme';
12
+ <% } else if (props.stylingPackage?.name === "unistyles") {%>
13
+ import { createStyleSheet, useStyles } from 'react-native-unistyles'
14
+ import { Text, View } from 'react-native';
12
15
  <% } else {%>
13
16
  import { StyleSheet, Text, View } from 'react-native';
14
17
  <% } %>
@@ -55,6 +58,25 @@ import { StatusBar } from 'expo-status-bar';
55
58
  </ThemeProvider>
56
59
  );
57
60
  }
61
+ <% } else if (props.stylingPackage?.name === "unistyles") {%>
62
+ export default function App() {
63
+ const {styles} = useStyles(stylesheet)
64
+ return (
65
+ <View style={styles.container}>
66
+ <Text>Open up App.tsx to start working on your app!</Text>
67
+ <StatusBar style="auto" />
68
+ </View >
69
+ );
70
+ }
71
+
72
+ const stylesheet = createStyleSheet({
73
+ container: {
74
+ flex: 1,
75
+ backgroundColor: '#fff',
76
+ alignItems: 'center',
77
+ justifyContent: 'center',
78
+ },
79
+ });
58
80
  <% } else {%>
59
81
  export default function App() {
60
82
  return (
@@ -30,6 +30,10 @@
30
30
  "expo-font": "~11.4.0",
31
31
  <% } %>
32
32
 
33
+ <% if (props.stylingPackage?.name === "unistyles") { %>
34
+ "react-native-unistyles": "^2.1.1",
35
+ <% } %>
36
+
33
37
  <% if (props.navigationPackage?.type === "navigation") { %>
34
38
  "@react-navigation/native": "^6.1.7",
35
39
  "react-native-gesture-handler": "~2.12.0",
@@ -4,12 +4,24 @@
4
4
  import { YStack, H2, Separator, Theme } from "tamagui";
5
5
  <% } else if (props.stylingPackage?.name === "restyle") { %>
6
6
  import { Box, Text } from 'theme';
7
+ <% } else if (props.stylingPackage?.name === "unistyles") { %>
8
+ import { useStyles } from 'react-native-unistyles'
9
+ import { Text, View } from 'react-native';
7
10
  <% } else if (props.stylingPackage?.name === "stylesheet") { %>
8
11
  import { StyleSheet, Text, View } from "react-native";
9
12
  <% } %>
10
13
 
11
14
  const Page = () => {
12
- <% if (props.stylingPackage?.name === "nativewind") { %>
15
+ <% if (props.stylingPackage?.name === "unistyles") { %>
16
+ const { theme } = useStyles()
17
+
18
+ return (
19
+ <View style={theme.components.container}>
20
+ <Text style={theme.components.title}>Home</Text>
21
+ <View style={theme.components.separator} />
22
+ </View>
23
+ );
24
+ <% } else if (props.stylingPackage?.name === "nativewind") { %>
13
25
  return (
14
26
  <View className={styles.container}>
15
27
  <Text className={styles.title}>Home</Text>
@@ -4,12 +4,24 @@
4
4
  import { YStack, H2, Separator, Theme } from "tamagui";
5
5
  <% } else if (props.stylingPackage?.name === "restyle") { %>
6
6
  import { Box, Text } from 'theme';
7
+ <% } else if (props.stylingPackage?.name === "unistyles") { %>
8
+ import { useStyles } from 'react-native-unistyles'
9
+ import { Text, View } from 'react-native';
7
10
  <% } else if (props.stylingPackage?.name === "stylesheet") { %>
8
11
  import { StyleSheet, Text, View } from "react-native";
9
12
  <% } %>
10
13
 
11
14
  const Page = () => {
12
- <% if (props.stylingPackage?.name === "nativewind") { %>
15
+ <% if (props.stylingPackage?.name === "unistyles") { %>
16
+ const { theme } = useStyles();
17
+
18
+ return (
19
+ <View style={theme.components.container}>
20
+ <Text style={theme.components.title}>News</Text>
21
+ <View style={theme.components.separator} />
22
+ </View>
23
+ );
24
+ <% } else if (props.stylingPackage?.name === "nativewind") { %>
13
25
  return (
14
26
  <View className={styles.container}>
15
27
  <Text className={styles.title}>News</Text>
@@ -1,6 +1,9 @@
1
1
  import { Link, Stack } from 'expo-router';
2
2
  <% if (props.stylingPackage?.name === "nativewind") {%>
3
3
  import { Text, View } from 'react-native';
4
+ <% } else if (props.stylingPackage?.name === "unistyles") { %>
5
+ import { createStyleSheet, useStyles } from 'react-native-unistyles'
6
+ import { Text, View } from 'react-native';
4
7
  <% } else if (props.stylingPackage?.name === "stylesheet") { %>
5
8
  import { StyleSheet, Text, View } from 'react-native';
6
9
  <% } else if (props.stylingPackage?.name === "tamagui") { %>
@@ -13,6 +16,8 @@ import { Link, Stack } from 'expo-router';
13
16
  export default function NotFoundScreen() {
14
17
  <% if (props.stylingPackage?.name === "restyle") { %>
15
18
  const styles = useStyles();
19
+ <% } else if (props.stylingPackage?.name === "unistyles") {%>
20
+ const { styles } = useStyles(stylesheet);
16
21
  <% } %>
17
22
 
18
23
  return (
@@ -71,6 +76,27 @@ export default function NotFoundScreen() {
71
76
  link: `mt-4 pt-4`,
72
77
  linkText: `text-base text-[#2e78b7]`,
73
78
  };
79
+ <% } else if (props.stylingPackage?.name === "unistyles") { %>
80
+ const stylesheet = createStyleSheet((theme) => ({
81
+ container: {
82
+ flex: 1,
83
+ alignItems: 'center',
84
+ justifyContent: 'center',
85
+ padding: 20,
86
+ },
87
+ title: {
88
+ fontSize: 20,
89
+ fontWeight: 'bold',
90
+ },
91
+ link: {
92
+ marginTop: 16,
93
+ paddingVertical: 16,
94
+ },
95
+ linkText: {
96
+ fontSize: 14,
97
+ color: theme.colors.astral,
98
+ },
99
+ }));
74
100
  <% } else if (props.stylingPackage?.name === "stylesheet") { %>
75
101
  const styles = StyleSheet.create({
76
102
  container: {
@@ -1,3 +1,7 @@
1
+ <% if (props.stylingPackage?.name === "unistyles") { %>
2
+ import '../unistyles';
3
+ <% } %>
4
+
1
5
  import 'react-native-gesture-handler';
2
6
  import { GestureHandlerRootView } from 'react-native-gesture-handler';
3
7
  import { Slot } from 'expo-router';
@@ -1,6 +1,9 @@
1
1
  import { Link, Stack } from 'expo-router';
2
2
  <% if (props.stylingPackage?.name === "nativewind") {%>
3
3
  import { Text, View } from 'react-native';
4
+ <% } else if (props.stylingPackage?.name === "unistyles") { %>
5
+ import { createStyleSheet, useStyles } from 'react-native-unistyles'
6
+ import { Text, View } from 'react-native';
4
7
  <% } else if (props.stylingPackage?.name === "stylesheet") { %>
5
8
  import { StyleSheet, Text, View } from 'react-native';
6
9
  <% } else if (props.stylingPackage?.name === "tamagui") { %>
@@ -15,6 +18,10 @@ export default function NotFoundScreen() {
15
18
  const styles = useStyles();
16
19
  <% } %>
17
20
 
21
+ <% if (props.stylingPackage?.name === "unistyles") {%>
22
+ const { styles } = useStyles(stylesheet)
23
+ <% } %>
24
+
18
25
  return (
19
26
  <% if (props.stylingPackage?.name === "nativewind") {%>
20
27
  <>
@@ -71,6 +78,27 @@ export default function NotFoundScreen() {
71
78
  link: `mt-4 pt-4`,
72
79
  linkText: `text-base text-[#2e78b7]`,
73
80
  };
81
+ <% } else if (props.stylingPackage?.name === "unistyles") { %>
82
+ const stylesheet = createStyleSheet({
83
+ container: {
84
+ flex: 1,
85
+ alignItems: 'center',
86
+ justifyContent: 'center',
87
+ padding: 20,
88
+ },
89
+ title: {
90
+ fontSize: 20,
91
+ fontWeight: 'bold',
92
+ },
93
+ link: {
94
+ marginTop: 16,
95
+ paddingVertical: 16,
96
+ },
97
+ linkText: {
98
+ fontSize: 14,
99
+ color: '#2e78b7',
100
+ },
101
+ });
74
102
  <% } else if (props.stylingPackage?.name === "stylesheet") { %>
75
103
  const styles = StyleSheet.create({
76
104
  container: {
@@ -1,3 +1,7 @@
1
+ <% if (props.stylingPackage?.name === "unistyles") { %>
2
+ import '../unistyles';
3
+ <% } %>
4
+
1
5
  <% if (props.stylingPackage?.name === "tamagui") { %>
2
6
  import { useFonts } from 'expo-font';
3
7
  import { SplashScreen, Stack } from 'expo-router';
@@ -8,6 +8,9 @@
8
8
  <% } else if (props.stylingPackage?.name === "restyle") { %>
9
9
  import { Box, Text } from 'theme';
10
10
  import { TouchableOpacity } from 'react-native';
11
+ <% } else if (props.stylingPackage?.name === "unistyles") { %>
12
+ import { createStyleSheet, useStyles } from 'react-native-unistyles';
13
+ import { Text, TouchableOpacity, View } from "react-native";
11
14
  <% } else { %>
12
15
  import { StyleSheet, Text, TouchableOpacity, View } from "react-native";
13
16
  <% } %>
@@ -17,7 +20,19 @@ import { Stack, useLocalSearchParams, useRouter } from "expo-router";
17
20
  export default function Details() {
18
21
  const { name } = useLocalSearchParams();
19
22
  const router = useRouter();
20
- <% if (props.stylingPackage?.name === "nativewind") { %>
23
+
24
+ <% if (props.stylingPackage?.name === "unistyles") { %>
25
+ const { styles, theme } = useStyles(stylesheet);
26
+
27
+ const BackButton = () => (
28
+ <TouchableOpacity onPress={router.back}>
29
+ <View style={styles.backButton}>
30
+ <Feather name='chevron-left' size={16} color={theme.colors.azureRadiance} />
31
+ <Text style={styles.backButtonText}>Back</Text>
32
+ </View>
33
+ </TouchableOpacity>
34
+ );
35
+ <% } else if (props.stylingPackage?.name === "nativewind") { %>
21
36
  const BackButton = () => (
22
37
  <TouchableOpacity onPress={router.back}>
23
38
  <View className={styles.backButton}>
@@ -84,6 +99,14 @@ export default function Details() {
84
99
  </Box>
85
100
  </Box>
86
101
  </>
102
+ <% } else if (props.stylingPackage?.name === "unistyles") { %>
103
+ <View style={styles.container}>
104
+ <Stack.Screen options={{ title: "Details", headerLeft: () => <BackButton /> }} />
105
+ <View style={styles.main}>
106
+ <Text style={theme.components.title}>Details</Text>
107
+ <Text style={theme.components.subtitle}>Showing details for user {name}.</Text>
108
+ </View>
109
+ </View>
87
110
  <% } else { %>
88
111
  <View style={styles.container}>
89
112
  <Stack.Screen options={{ title: "Details", headerLeft: () => <BackButton /> }} />
@@ -105,6 +128,25 @@ export default function Details() {
105
128
  title: "text-[64px] font-bold",
106
129
  subtitle: "text-4xl text-gray-700",
107
130
  };
131
+ <% } else if (props.stylingPackage?.name === "unistyles") { %>
132
+ const stylesheet = createStyleSheet((theme) => ({
133
+ backButton: {
134
+ flexDirection: 'row',
135
+ },
136
+ backButtonText: {
137
+ color: theme.colors.azureRadiance,
138
+ marginLeft: 4,
139
+ },
140
+ container: {
141
+ flex: 1,
142
+ padding: 24,
143
+ },
144
+ main: {
145
+ flex: 1,
146
+ maxWidth: 960,
147
+ marginHorizontal: 'auto',
148
+ },
149
+ }));
108
150
  <% } else if (props.stylingPackage?.name === "stylesheet") { %>
109
151
  const styles = StyleSheet.create({
110
152
  backButton: {
@@ -6,6 +6,9 @@
6
6
  <% } else if (props.stylingPackage?.name === "restyle") { %>
7
7
  import { TouchableOpacity } from 'react-native';
8
8
  import { Box, Text, makeStyles } from 'theme';
9
+ <% } else if (props.stylingPackage?.name === "unistyles") { %>
10
+ import { createStyleSheet, useStyles } from 'react-native-unistyles';
11
+ import { Text, TouchableOpacity, View } from 'react-native';
9
12
  <% } else { %>
10
13
  import { StyleSheet, Text, TouchableOpacity, View } from "react-native";
11
14
  <% } %>
@@ -18,6 +21,10 @@ export default function Page() {
18
21
  const styles = useStyles();
19
22
  <% } %>
20
23
 
24
+ <% if (props.stylingPackage?.name === "unistyles") { %>
25
+ const { styles, theme } = useStyles(stylesheet);
26
+ <% } %>
27
+
21
28
  return (
22
29
  <% if (props.stylingPackage?.name === "nativewind") { %>
23
30
  <View className={styles.container}>
@@ -70,6 +77,21 @@ export default function Page() {
70
77
  </Box>
71
78
  </Box>
72
79
  </>
80
+ <% } else if (props.stylingPackage?.name === "unistyles") { %>
81
+ <View style={styles.container}>
82
+ <View style={styles.main}>
83
+ <Stack.Screen options={{ title: 'Overview' }} />
84
+ <View>
85
+ <Text style={theme.components.title}>Hello World</Text>
86
+ <Text style={theme.components.subtitle}>This is the first page of your app.</Text>
87
+ </View>
88
+ <Link href={{ pathname: '/details', params: { name: 'Dan' } }} asChild>
89
+ <TouchableOpacity style={theme.components.button} >
90
+ <Text style={theme.components.buttonText}>Show Details</Text>
91
+ </TouchableOpacity>
92
+ </Link>
93
+ </View>
94
+ </View>
73
95
  <% } else { %>
74
96
  <View style={styles.container}>
75
97
  <View style={styles.main}>
@@ -117,6 +139,20 @@ export default function Page() {
117
139
  shadowRadius: 3.84,
118
140
  },
119
141
  }));
142
+ <% } else if (props.stylingPackage?.name === "unistyles") { %>
143
+ const stylesheet = createStyleSheet({
144
+ container: {
145
+ flex: 1,
146
+ padding: 24,
147
+ },
148
+ main: {
149
+ flex: 1,
150
+ maxWidth: 960,
151
+ marginHorizontal: 'auto',
152
+ justifyContent: 'space-between',
153
+ },
154
+ });
155
+
120
156
  <% } else if (props.stylingPackage?.name === "stylesheet") { %>
121
157
  const styles = StyleSheet.create({
122
158
  button: {
@@ -1,33 +1,44 @@
1
1
  import FontAwesome from "@expo/vector-icons/FontAwesome";
2
2
  import { Link, Tabs } from "expo-router";
3
+ <% if (props.stylingPackage?.name === "unistyles") { %>
4
+ import { createStyleSheet, useStyles } from 'react-native-unistyles'
5
+ import { Pressable } from 'react-native';
6
+ <% } else { %>
3
7
  import { Pressable, StyleSheet } from "react-native";
8
+ <% } %>
4
9
 
5
10
  function TabBarIcon(props: {
6
11
  name: React.ComponentProps<typeof FontAwesome>["name"];
7
12
  color: string;
8
13
  }) {
14
+ <% if (props.stylingPackage?.name === "unistyles") { %>
15
+ const {styles} = useStyles(stylesheet)
16
+ <% } %>
9
17
  return <FontAwesome size={28} style={styles.tabBarIcon} {...props} />;
10
18
  }
11
19
 
12
20
  export default function TabLayout() {
21
+ <% if (props.stylingPackage?.name === "unistyles") { %>
22
+ const { styles } = useStyles(stylesheet)
23
+ <% } %>
13
24
  return (
14
25
  <Tabs
15
26
  screenOptions={{
16
- tabBarActiveTintColor: "black",
27
+ tabBarActiveTintColor: 'black',
17
28
  }}>
18
29
  <Tabs.Screen
19
- name="index"
30
+ name='index'
20
31
  options={{
21
- title: "Tab One",
22
- tabBarIcon: ({ color }) => <TabBarIcon name="code" color={color} />,
32
+ title: 'Tab One',
33
+ tabBarIcon: ({ color }) => <TabBarIcon name='code' color={color} />,
23
34
  headerRight: () => (
24
- <Link href="/modal" asChild>
35
+ <Link href='/modal' asChild>
25
36
  <Pressable>
26
37
  {({ pressed }) => (
27
38
  <FontAwesome
28
- name="info-circle"
39
+ name='info-circle'
29
40
  size={25}
30
- color="gray"
41
+ color='gray'
31
42
  style={[styles.headerRight, { opacity: pressed ? 0.5 : 1 }]}
32
43
  />
33
44
  )}
@@ -47,6 +58,16 @@ export default function TabLayout() {
47
58
  );
48
59
  }
49
60
 
61
+ <% if (props.stylingPackage?.name === "unistyles") { %>
62
+ const stylesheet = createStyleSheet({
63
+ headerRight: {
64
+ marginRight: 15
65
+ },
66
+ tabBarIcon: {
67
+ marginBottom: -3
68
+ }
69
+ });
70
+ <% } else { %>
50
71
  const styles = StyleSheet.create({
51
72
  headerRight: {
52
73
  marginRight: 15
@@ -54,4 +75,5 @@ const styles = StyleSheet.create({
54
75
  tabBarIcon: {
55
76
  marginBottom: -3
56
77
  }
57
- });
78
+ });
79
+ <% } %>
@@ -4,6 +4,9 @@
4
4
  import { YStack, H2, Separator, Theme } from "tamagui";
5
5
  <% } else if (props.stylingPackage?.name === "restyle") { %>
6
6
  import { Box, Text } from 'theme';
7
+ <% } else if (props.stylingPackage?.name === "unistyles") { %>
8
+ import { useStyles } from 'react-native-unistyles'
9
+ import { Text, View } from 'react-native';
7
10
  <% } else { %>
8
11
  import { StyleSheet, Text, View } from "react-native";
9
12
  <% } %>
@@ -11,7 +14,17 @@
11
14
  import EditScreenInfo from "../../components/edit-screen-info";
12
15
 
13
16
  export default function TabOneScreen() {
14
- <% if (props.stylingPackage?.name === "nativewind") { %>
17
+ <% if (props.stylingPackage?.name === "unistyles") { %>
18
+ const { theme } = useStyles()
19
+
20
+ return (
21
+ <View style={theme.components.container}>
22
+ <Text style={theme.components.title}>Tab One</Text>
23
+ <View style={theme.components.separator} />
24
+ <EditScreenInfo path="app/(tabs)/index.tsx" />
25
+ </View>
26
+ );
27
+ <% } else if (props.stylingPackage?.name === "nativewind") { %>
15
28
  return (
16
29
  <View className={styles.container}>
17
30
  <Text className={styles.title}>Tab One</Text>
@@ -36,7 +49,7 @@ export default function TabOneScreen() {
36
49
  <Box height={1} marginVertical="l_32" width="80%" />
37
50
  <EditScreenInfo path="app/(tabs)/index.tsx" />
38
51
  </Box>
39
- );
52
+ );
40
53
  <% } else { %>
41
54
  return (
42
55
  <View style={styles.container}>
@@ -4,6 +4,9 @@
4
4
  import { YStack, H2, Separator, Theme } from "tamagui";
5
5
  <% } else if (props.stylingPackage?.name === "restyle") { %>
6
6
  import { Box, Text } from 'theme';
7
+ <% } else if (props.stylingPackage?.name === "unistyles") { %>
8
+ import { useStyles } from 'react-native-unistyles'
9
+ import { Text, View } from 'react-native';
7
10
  <% } else { %>
8
11
  import { StyleSheet, Text, View } from "react-native";
9
12
  <% } %>
@@ -11,7 +14,17 @@
11
14
  import EditScreenInfo from "../../components/edit-screen-info";
12
15
 
13
16
  export default function TabTwoScreen() {
14
- <% if (props.stylingPackage?.name === "nativewind") { %>
17
+ <% if (props.stylingPackage?.name === "unistyles") { %>
18
+ const { theme } = useStyles()
19
+
20
+ return (
21
+ <View style={theme.components.container}>
22
+ <Text style={theme.components.title}>Tab Two</Text>
23
+ <View style={theme.components.separator} />
24
+ <EditScreenInfo path='app/(tabs)/two.tsx' />
25
+ </View>
26
+ );
27
+ <% } else if (props.stylingPackage?.name === "nativewind") { %>
15
28
  return (
16
29
  <View className={styles.container}>
17
30
  <Text className={styles.title}>Tab Two</Text>
@@ -36,7 +49,7 @@ export default function TabTwoScreen() {
36
49
  <Box height={1} marginVertical="l_32" width="80%" />
37
50
  <EditScreenInfo path="app/(tabs)/two.tsx" />
38
51
  </Box>
39
- );
52
+ );
40
53
  <% } else { %>
41
54
  return (
42
55
  <View style={styles.container}>
@@ -1,6 +1,9 @@
1
1
  import { Link, Stack } from 'expo-router';
2
2
  <% if (props.stylingPackage?.name === "nativewind") {%>
3
3
  import { Text, View } from 'react-native';
4
+ <% } else if (props.stylingPackage?.name === "unistyles") { %>
5
+ import { createStyleSheet, useStyles } from 'react-native-unistyles'
6
+ import { Text, View } from 'react-native';
4
7
  <% } else if (props.stylingPackage?.name === "stylesheet") { %>
5
8
  import { StyleSheet, Text, View } from 'react-native';
6
9
  <% } else if (props.stylingPackage?.name === "tamagui") { %>
@@ -15,6 +18,10 @@ export default function NotFoundScreen() {
15
18
  const styles = useStyles();
16
19
  <% } %>
17
20
 
21
+ <% if (props.stylingPackage?.name === "unistyles") {%>
22
+ const { styles } = useStyles(stylesheet);
23
+ <% } %>
24
+
18
25
  return (
19
26
  <% if (props.stylingPackage?.name === "nativewind") {%>
20
27
  <>
@@ -71,6 +78,27 @@ export default function NotFoundScreen() {
71
78
  link: `mt-4 pt-4`,
72
79
  linkText: `text-base text-[#2e78b7]`,
73
80
  };
81
+ <% } else if (props.stylingPackage?.name === "unistyles") { %>
82
+ const stylesheet = createStyleSheet((theme) => ({
83
+ container: {
84
+ flex: 1,
85
+ alignItems: 'center',
86
+ justifyContent: 'center',
87
+ padding: 20,
88
+ },
89
+ title: {
90
+ fontSize: 20,
91
+ fontWeight: 'bold',
92
+ },
93
+ link: {
94
+ marginTop: 16,
95
+ paddingVertical: 16,
96
+ },
97
+ linkText: {
98
+ fontSize: 14,
99
+ color: theme.colors.astral,
100
+ },
101
+ }));
74
102
  <% } else if (props.stylingPackage?.name === "stylesheet") { %>
75
103
  const styles = StyleSheet.create({
76
104
  container: {
@@ -1,3 +1,7 @@
1
+ <% if (props.stylingPackage?.name === "unistyles") { %>
2
+ import '../unistyles';
3
+ <% } %>
4
+
1
5
  <% if (props.stylingPackage?.name === "tamagui") { %>
2
6
  import React, { useEffect } from "react";
3
7
  import { TamaguiProvider } from 'tamagui'