create-expo-stack 2.3.15 → 2.4.0-next.1fb5698

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 (38) hide show
  1. package/README.md +7 -1
  2. package/build/commands/create-expo-stack.js +14 -1
  3. package/build/templates/base/App.tsx.ejs +12 -0
  4. package/build/templates/base/package.json.ejs +5 -0
  5. package/build/templates/packages/expo-router/drawer/app/(drawer)/index.tsx.ejs +10 -1
  6. package/build/templates/packages/expo-router/drawer/app/(drawer)/news.tsx.ejs +10 -1
  7. package/build/templates/packages/expo-router/drawer/app/[...unmatched].tsx.ejs +25 -0
  8. package/build/templates/packages/expo-router/drawer/app/_layout.tsx.ejs +10 -2
  9. package/build/templates/packages/expo-router/stack/app/[...unmatched].tsx.ejs +25 -0
  10. package/build/templates/packages/expo-router/stack/app/_layout.tsx.ejs +9 -3
  11. package/build/templates/packages/expo-router/stack/app/details.tsx.ejs +26 -0
  12. package/build/templates/packages/expo-router/stack/app/index.tsx.ejs +51 -2
  13. package/build/templates/packages/expo-router/tabs/app/(tabs)/index.tsx.ejs +10 -0
  14. package/build/templates/packages/expo-router/tabs/app/(tabs)/two.tsx.ejs +10 -0
  15. package/build/templates/packages/expo-router/tabs/app/[...unmatched].tsx.ejs +25 -0
  16. package/build/templates/packages/expo-router/tabs/app/_layout.tsx.ejs +8 -0
  17. package/build/templates/packages/expo-router/tabs/app/modal.tsx.ejs +12 -0
  18. package/build/templates/packages/expo-router/tabs/components/edit-screen-info.tsx.ejs +16 -1
  19. package/build/templates/packages/react-navigation/App.tsx.ejs +11 -1
  20. package/build/templates/packages/react-navigation/components/edit-screen-info.tsx.ejs +23 -1
  21. package/build/templates/packages/react-navigation/navigation/index.tsx.ejs +19 -3
  22. package/build/templates/packages/react-navigation/navigation/tab-navigator.tsx.ejs +6 -2
  23. package/build/templates/packages/react-navigation/screens/details.tsx.ejs +13 -0
  24. package/build/templates/packages/react-navigation/screens/modal.tsx.ejs +25 -1
  25. package/build/templates/packages/react-navigation/screens/one.tsx.ejs +22 -0
  26. package/build/templates/packages/react-navigation/screens/overview.tsx.ejs +43 -0
  27. package/build/templates/packages/react-navigation/screens/two.tsx.ejs +23 -1
  28. package/build/templates/packages/restyle/theme/Box.tsx.ejs +6 -0
  29. package/build/templates/packages/restyle/theme/Text.tsx.ejs +6 -0
  30. package/build/templates/packages/restyle/theme/index.ts.ejs +6 -0
  31. package/build/templates/packages/restyle/theme/theme.ts.ejs +67 -0
  32. package/build/types/types.d.ts +1 -1
  33. package/build/types.js +3 -2
  34. package/build/utilities/configureProjectFiles.js +12 -1
  35. package/build/utilities/generateProjectFiles.js +4 -1
  36. package/build/utilities/runCLI.js +6 -2
  37. package/build/utilities/showHelp.js +2 -1
  38. package/package.json +66 -66
package/README.md CHANGED
@@ -12,13 +12,18 @@
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>
18
23
 
19
24
  ## Description
20
25
 
21
- This CLI tool is designed to help you get started with React Native and Expo as quickly as possible. The CLI options allow you to configure your project with Typescript, file-based routing with Expo Router, configuration-based navigation via React-Navigation, styling with StyleSheets, Tamagui, or NativeWind, and authentication via Supabase or Firebase.
26
+ This CLI tool is designed to help you get started with React Native and Expo as quickly as possible. The CLI options allow you to configure your project with Typescript, file-based routing with Expo Router, configuration-based navigation via React-Navigation, styling with NativeWind, Restyle, StyleSheets, or Tamagui and authentication via Supabase or Firebase.
22
27
 
23
28
  You can also use flags such as `--noInstall`, `--noGit`, and `--default` in order to customize your project. The CLI will attempt to automatically determine your package manager of choice but you can also pass in your preferred package manager via `--npm`, `--yarn`, `--pnpm`, or `--bun`. Roadmap coming soon...
24
29
 
@@ -51,6 +56,7 @@ Each project is generated based on the results of the CLI, on a per-file basis.
51
56
  | Expo System UI | System UI Library | v2 | System UI support |
52
57
  | Expo Web Browser | Web Browser Library | v12 | Open links in the browser |
53
58
  | NativeWind | UI Framework | v2 | Tailwind CSS for React Native |
59
+ | Restyle | UI Framework | v2 | Theme-based styling library for React Native |
54
60
  | Tamagui | UI Framework | v1 | Universal UI with a smart optimizing compiler |
55
61
  | Safe Area Context | Safe Area Library | v4 | Safe area support |
56
62
  | React Native Web | Web Support | v0.19 | React Native for Web |
@@ -211,6 +211,19 @@ var command = {
211
211
  type: 'styling'
212
212
  });
213
213
  }
214
+ else if (options.restyle) {
215
+ try {
216
+ cliResults = (0, clearStylingPackages_1.default)(cliResults);
217
+ // Add stylesheet package
218
+ cliResults.packages.push({
219
+ name: 'restyle',
220
+ type: 'styling'
221
+ });
222
+ }
223
+ catch (error) {
224
+ console.log({ error: error });
225
+ }
226
+ }
214
227
  // if there is no style package, add stylesheet
215
228
  else if (cliResults.packages.find(function (p) { return p.type === 'styling'; }) === undefined) {
216
229
  cliResults.packages.push({
@@ -304,4 +317,4 @@ var command = {
304
317
  }); }
305
318
  };
306
319
  exports.default = command;
307
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWV4cG8tc3RhY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbWFuZHMvY3JlYXRlLWV4cG8tc3RhY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSxJQUFNLElBQUksR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7QUFFN0IsMENBU3NCO0FBQ3RCLDBDQUFnRTtBQUNoRSxrQ0FBeUQ7QUFDekQsMkZBQXFFO0FBQ3JFLHdFQUF1RTtBQUV2RSxJQUFNLE9BQU8sR0FBbUI7SUFDOUIsSUFBSSxFQUFFLG1CQUFtQjtJQUN6QixXQUFXLEVBQUUsMkJBQTJCO0lBQ3hDLEdBQUcsRUFBRSxVQUFPLE9BQU87Ozs7O29CQUVmLEtBS0UsT0FBTyxXQUwwQixFQUFyQixNQUFNLFlBQUEsRUFBRSxXQUFXLGlCQUFBLEVBQ2pDLEtBSUUsT0FBTyxXQUpxQixFQUFoQixLQUFLLFdBQUEsRUFBRSxPQUFPLGFBQUEsRUFDNUIsS0FHRSxPQUFPLE1BSG1DLEVBQW5DLElBQUksVUFBQSxFQUFFLFNBQVMsZUFBQSxFQUFFLE9BQU8sYUFBQSxFQUFFLE9BQU8sYUFBQSxFQUMxQyxNQUFNLEdBRUosT0FBTyxPQUZILEVBQ0ssVUFBVSxHQUNuQixPQUFPLG1CQURZLENBQ1g7b0JBRU4sdUJBQXVCLEdBQUc7d0JBQzlCLElBQUksQ0FBQyx1RUFBNkQsQ0FBQyxDQUFDO3dCQUNwRSxJQUFJLENBQ0YsMkhBQTJILENBQzVILENBQUM7d0JBQ0YsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO29CQUNYLENBQUMsQ0FBQztvQkFDRixJQUFJLE9BQU8sQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDO3dCQUM5QixJQUFBLG9CQUFRLEVBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQzt3QkFFbkMsc0JBQU87b0JBQ1Qs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
320
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWV4cG8tc3RhY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbWFuZHMvY3JlYXRlLWV4cG8tc3RhY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSxJQUFNLElBQUksR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7QUFFN0IsMENBU3NCO0FBQ3RCLDBDQUFnRTtBQUNoRSxrQ0FBeUQ7QUFDekQsMkZBQXFFO0FBQ3JFLHdFQUF1RTtBQUV2RSxJQUFNLE9BQU8sR0FBbUI7SUFDOUIsSUFBSSxFQUFFLG1CQUFtQjtJQUN6QixXQUFXLEVBQUUsMkJBQTJCO0lBQ3hDLEdBQUcsRUFBRSxVQUFPLE9BQU87Ozs7O29CQUVmLEtBS0UsT0FBTyxXQUwwQixFQUFyQixNQUFNLFlBQUEsRUFBRSxXQUFXLGlCQUFBLEVBQ2pDLEtBSUUsT0FBTyxXQUpxQixFQUFoQixLQUFLLFdBQUEsRUFBRSxPQUFPLGFBQUEsRUFDNUIsS0FHRSxPQUFPLE1BSG1DLEVBQW5DLElBQUksVUFBQSxFQUFFLFNBQVMsZUFBQSxFQUFFLE9BQU8sYUFBQSxFQUFFLE9BQU8sYUFBQSxFQUMxQyxNQUFNLEdBRUosT0FBTyxPQUZILEVBQ0ssVUFBVSxHQUNuQixPQUFPLG1CQURZLENBQ1g7b0JBRU4sdUJBQXVCLEdBQUc7d0JBQzlCLElBQUksQ0FBQyx1RUFBNkQsQ0FBQyxDQUFDO3dCQUNwRSxJQUFJLENBQ0YsMkhBQTJILENBQzVILENBQUM7d0JBQ0YsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO29CQUNYLENBQUMsQ0FBQztvQkFDRixJQUFJLE9BQU8sQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDO3dCQUM5QixJQUFBLG9CQUFRLEVBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQzt3QkFFbkMsc0JBQU87b0JBQ1Qs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
@@ -6,6 +6,9 @@ import React from 'react';
6
6
  import { View } from 'react-native';
7
7
  import { TamaguiProvider, Text, styled } from 'tamagui';
8
8
  import config from './tamagui.config'
9
+ <% } else if (props.stylingPackage?.name === "restyle") {%>
10
+ import { ThemeProvider } from '@shopify/restyle';
11
+ import {theme, Text} from './theme';
9
12
  <% } else {%>
10
13
  import { StyleSheet, Text, View } from 'react-native';
11
14
  <% } %>
@@ -43,6 +46,15 @@ import { StatusBar } from 'expo-status-bar';
43
46
  </TamaguiProvider >
44
47
  );
45
48
  }
49
+ <% } else if (props.stylingPackage?.name === "restyle") {%>
50
+ export default function App() {
51
+ return (
52
+ <ThemeProvider theme={theme}>
53
+ <Text>Open up App.tsx to start working on your app!</Text>
54
+ <StatusBar style="auto" />
55
+ </ThemeProvider>
56
+ );
57
+ }
46
58
  <% } else {%>
47
59
  export default function App() {
48
60
  return (
@@ -16,6 +16,10 @@
16
16
  <% if (props.stylingPackage?.name === "nativewind") { %>
17
17
  "nativewind": "^2.0.11",
18
18
  <% } %>
19
+
20
+ <% if (props.stylingPackage?.name === "restyle") { %>
21
+ "@shopify/restyle": "^2.4.2",
22
+ <% } %>
19
23
 
20
24
  <% if (props.stylingPackage?.name === "tamagui") { %>
21
25
  "tamagui": "1.74.8",
@@ -35,6 +39,7 @@
35
39
 
36
40
  <% if (props.navigationPackage?.name === "react-navigation") { %>
37
41
  "@react-navigation/stack": "^6.3.17",
42
+ "@expo/vector-icons": "^13.0.0",
38
43
  <% } %>
39
44
 
40
45
  <% if ((props.navigationPackage?.name === "react-navigation") && (props.stylingPackage?.name === "tamagui")) { %>
@@ -2,7 +2,9 @@
2
2
  import { Text, View } from "react-native";
3
3
  <% } else if (props.stylingPackage?.name === "tamagui") { %>
4
4
  import { YStack, H2, Separator, Theme } from "tamagui";
5
- <% } else { %>
5
+ <% } else if (props.stylingPackage?.name === "restyle") { %>
6
+ import { Box, Text } from 'theme';
7
+ <% } else if (props.stylingPackage?.name === "stylesheet") { %>
6
8
  import { StyleSheet, Text, View } from "react-native";
7
9
  <% } %>
8
10
 
@@ -24,6 +26,13 @@ const Page = () => {
24
26
  </YStack>
25
27
  </Theme>
26
28
  );
29
+ <% } else if (props.stylingPackage?.name === "restyle") { %>
30
+ return (
31
+ <Box flex={1} alignItems="center" justifyContent="center">
32
+ <Text variant="title">Home</Text>
33
+ <Box height={1} marginVertical="l_32" width="80%" />
34
+ </Box>
35
+ );
27
36
  <% } else { %>
28
37
  return (
29
38
  <View style={styles.container}>
@@ -2,7 +2,9 @@
2
2
  import { Text, View } from "react-native";
3
3
  <% } else if (props.stylingPackage?.name === "tamagui") { %>
4
4
  import { YStack, H2, Separator, Theme } from "tamagui";
5
- <% } else { %>
5
+ <% } else if (props.stylingPackage?.name === "restyle") { %>
6
+ import { Box, Text } from 'theme';
7
+ <% } else if (props.stylingPackage?.name === "stylesheet") { %>
6
8
  import { StyleSheet, Text, View } from "react-native";
7
9
  <% } %>
8
10
 
@@ -24,6 +26,13 @@ const Page = () => {
24
26
  </YStack>
25
27
  </Theme>
26
28
  );
29
+ <% } else if (props.stylingPackage?.name === "restyle") { %>
30
+ return (
31
+ <Box flex={1} alignItems="center" justifyContent="center">
32
+ <Text variant="title">News</Text>
33
+ <Box height={1} marginVertical="l_32" width="80%" />
34
+ </Box>
35
+ );
27
36
  <% } else { %>
28
37
  return (
29
38
  <View style={styles.container}>
@@ -6,9 +6,15 @@ import { Link, Stack } from 'expo-router';
6
6
  <% } else if (props.stylingPackage?.name === "tamagui") { %>
7
7
  import { YStack } from "tamagui";
8
8
  import { Container, Main, Subtitle, Title } from "../tamagui.config";
9
+ <% } else if (props.stylingPackage?.name === "restyle") { %>
10
+ import { Box, Text, makeStyles } from 'theme';
9
11
  <% } %>
10
12
 
11
13
  export default function NotFoundScreen() {
14
+ <% if (props.stylingPackage?.name === "restyle") { %>
15
+ const styles = useStyles();
16
+ <% } %>
17
+
12
18
  return (
13
19
  <% if (props.stylingPackage?.name === "nativewind") {%>
14
20
  <>
@@ -32,6 +38,18 @@ export default function NotFoundScreen() {
32
38
  </YStack>
33
39
  </Main>
34
40
  </Container>
41
+ <% } else if (props.stylingPackage?.name === "restyle") {%>
42
+ <>
43
+ <Stack.Screen options={{ title: 'Oops!' }} />
44
+ <Box flex={1} justifyContent="center" alignItems="center" padding="ml_24">
45
+ <Text variant="title">This screen doesn't exist.</Text>
46
+ <Link href="/" style={styles.link}>
47
+ <Text variant="body" color="blue">
48
+ Go to home screen!
49
+ </Text>
50
+ </Link>
51
+ </Box>
52
+ </>
35
53
  <% } else { %>
36
54
  <>
37
55
  <Stack.Screen options={{ title: "Oops!" }} />
@@ -74,4 +92,11 @@ export default function NotFoundScreen() {
74
92
  color: '#2e78b7',
75
93
  },
76
94
  });
95
+ <% } else if (props.stylingPackage?.name === "restyle") { %>
96
+ const useStyles = makeStyles((theme) => ({
97
+ link: {
98
+ marginTop: theme.spacing.m_16,
99
+ paddingVertical: theme.spacing.m_16,
100
+ },
101
+ }));
77
102
  <% } %>
@@ -10,7 +10,11 @@ import { Slot } from 'expo-router';
10
10
  import config from '../tamagui.config'
11
11
 
12
12
  SplashScreen.preventAutoHideAsync();
13
- <% } %>
13
+ <% } else if (props.stylingPackage?.name === "restyle") { %>
14
+ import { ThemeProvider } from '@shopify/restyle';
15
+
16
+ import { theme } from '../theme';
17
+ <% } %>
14
18
 
15
19
  export const unstable_settings = {
16
20
  // Ensure that reloading on `/modal` keeps a back button present.
@@ -36,12 +40,16 @@ export default function RootLayout() {
36
40
  return (
37
41
  <% if (props.stylingPackage?.name === "tamagui") { %>
38
42
  <TamaguiProvider config={config}>
43
+ <% } else if (props.stylingPackage?.name === "restyle") { %>
44
+ <ThemeProvider theme={theme}>
39
45
  <% } %>
40
46
  <GestureHandlerRootView style={{ flex: 1 }}>
41
47
  <Slot />
42
48
  </GestureHandlerRootView>
43
49
  <% if (props.stylingPackage?.name === "tamagui") { %>
44
50
  </TamaguiProvider>
45
- <% } %>
51
+ <% } else if (props.stylingPackage?.name === "restyle") { %>
52
+ </ThemeProvider>
53
+ <% } %>
46
54
  );
47
55
  }
@@ -6,9 +6,15 @@ import { Link, Stack } from 'expo-router';
6
6
  <% } else if (props.stylingPackage?.name === "tamagui") { %>
7
7
  import { YStack } from "tamagui";
8
8
  import { Container, Main, Subtitle, Title } from "../tamagui.config";
9
+ <% } else if (props.stylingPackage?.name === "restyle") { %>
10
+ import { Box, Text, makeStyles } from 'theme';
9
11
  <% } %>
10
12
 
11
13
  export default function NotFoundScreen() {
14
+ <% if (props.stylingPackage?.name === "restyle") { %>
15
+ const styles = useStyles();
16
+ <% } %>
17
+
12
18
  return (
13
19
  <% if (props.stylingPackage?.name === "nativewind") {%>
14
20
  <>
@@ -32,6 +38,18 @@ export default function NotFoundScreen() {
32
38
  </YStack>
33
39
  </Main>
34
40
  </Container>
41
+ <% } else if (props.stylingPackage?.name === "restyle") {%>
42
+ <>
43
+ <Stack.Screen options={{ title: 'Oops!' }} />
44
+ <Box flex={1} justifyContent="center" alignItems="center" padding="ml_24">
45
+ <Text variant="title">This screen doesn't exist.</Text>
46
+ <Link href="/" style={styles.link}>
47
+ <Text variant="body" color="blue">
48
+ Go to home screen!
49
+ </Text>
50
+ </Link>
51
+ </Box>
52
+ </>
35
53
  <% } else { %>
36
54
  <>
37
55
  <Stack.Screen options={{ title: "Oops!" }} />
@@ -74,4 +92,11 @@ export default function NotFoundScreen() {
74
92
  color: '#2e78b7',
75
93
  },
76
94
  });
95
+ <% } else if (props.stylingPackage?.name === "restyle") { %>
96
+ const useStyles = makeStyles((theme) => ({
97
+ link: {
98
+ marginTop: theme.spacing.m_16,
99
+ paddingVertical: theme.spacing.m_16,
100
+ },
101
+ }));
77
102
  <% } %>
@@ -5,9 +5,11 @@
5
5
  import { TamaguiProvider } from 'tamagui';
6
6
 
7
7
  import config from '../tamagui.config';
8
- <% } else { %>
9
- import { Stack } from "expo-router";
8
+ <% } else if (props.stylingPackage?.name === "restyle") { %>
9
+ import { ThemeProvider } from '@shopify/restyle';
10
+ import { theme } from 'theme';
10
11
  <% } %>
12
+ import { Stack } from "expo-router";
11
13
 
12
14
  export default function Layout() {
13
15
 
@@ -29,10 +31,14 @@ export default function Layout() {
29
31
  return (
30
32
  <% if (props.stylingPackage?.name === "tamagui") { %>
31
33
  <TamaguiProvider config={config}>
34
+ <% } else if (props.stylingPackage?.name === "restyle") { %>
35
+ <ThemeProvider theme={theme}>
32
36
  <% } %>
33
- <Stack />
37
+ <Stack />
34
38
  <% if (props.stylingPackage?.name === "tamagui") { %>
35
39
  </TamaguiProvider>
40
+ <% } else if (props.stylingPackage?.name === "restyle") { %>
41
+ </ThemeProvider >
36
42
  <% } %>
37
43
  );
38
44
  }
@@ -5,6 +5,9 @@
5
5
  import { Stack, useRouter } from "expo-router";
6
6
  import { Button, Text, YStack } from "tamagui";
7
7
  import { Container, Main, Subtitle, Title } from "../tamagui.config";
8
+ <% } else if (props.stylingPackage?.name === "restyle") { %>
9
+ import { Box, Text } from 'theme';
10
+ import { TouchableOpacity } from 'react-native';
8
11
  <% } else { %>
9
12
  import { StyleSheet, Text, TouchableOpacity, View } from "react-native";
10
13
  <% } %>
@@ -28,6 +31,17 @@ export default function Details() {
28
31
  const BackButton = () => (
29
32
  <Button unstyled flexDirection="row" backgroundColor="transparent" paddingLeft={0} pressStyle={{ opacity: 0.5 }} onPress={router.back} icon={<Feather name="chevron-left" size={16} color="#007AFF" />}><Text color="#007AFF">Back</Text></Button>
30
33
  )
34
+ <% } else if (props.stylingPackage?.name === "restyle") { %>
35
+ const BackButton = () => (
36
+ <TouchableOpacity onPress={router.back}>
37
+ <Box flexDirection="row">
38
+ <Feather name="chevron-left" size={16} color="#007AFF" />
39
+ <Text color="blue" marginLeft="xs_4">
40
+ Back
41
+ </Text>
42
+ </Box>
43
+ </TouchableOpacity>
44
+ );
31
45
  <% } else { %>
32
46
  const BackButton = () => (
33
47
  <TouchableOpacity onPress={router.back}>
@@ -58,6 +72,18 @@ export default function Details() {
58
72
  </YStack>
59
73
  </Main>
60
74
  </Container>
75
+ <% } else if (props.stylingPackage?.name === "restyle") { %>
76
+ <>
77
+ <Stack.Screen options={{ title: 'Details', headerLeft: () => <BackButton /> }} />
78
+ <Box flex={1} padding="ml_24">
79
+ <Box flex={1} maxWidth={960}>
80
+ <Text variant="extra_large">Details</Text>
81
+ <Text variant="large" color="darkGray">
82
+ Showing details for user {name}.
83
+ </Text>
84
+ </Box>
85
+ </Box>
86
+ </>
61
87
  <% } else { %>
62
88
  <View style={styles.container}>
63
89
  <Stack.Screen options={{ title: "Details", headerLeft: () => <BackButton /> }} />
@@ -3,6 +3,9 @@
3
3
  <% } else if (props.stylingPackage?.name === "tamagui") { %>
4
4
  import { YStack } from "tamagui";
5
5
  import { Container, Main, Title, Subtitle, Button, ButtonText } from '../tamagui.config';
6
+ <% } else if (props.stylingPackage?.name === "restyle") { %>
7
+ import { TouchableOpacity } from 'react-native';
8
+ import { Box, Text, makeStyles } from 'theme';
6
9
  <% } else { %>
7
10
  import { StyleSheet, Text, TouchableOpacity, View } from "react-native";
8
11
  <% } %>
@@ -11,6 +14,10 @@ import { Stack } from "expo-router";
11
14
  import { Link } from "expo-router";
12
15
 
13
16
  export default function Page() {
17
+ <% if (props.stylingPackage?.name === "restyle") { %>
18
+ const styles = useStyles();
19
+ <% } %>
20
+
14
21
  return (
15
22
  <% if (props.stylingPackage?.name === "nativewind") { %>
16
23
  <View className={styles.container}>
@@ -27,7 +34,7 @@ export default function Page() {
27
34
  </Link>
28
35
  </View>
29
36
  </View>
30
- <% } else if (props.stylingPackage?.name === "tamagui") { %>
37
+ <% } else if (props.stylingPackage?.name === "tamagui") { %>
31
38
  <Container>
32
39
  <Main>
33
40
  <Stack.Screen options={{ title: "Overview" }} />
@@ -40,7 +47,30 @@ export default function Page() {
40
47
  </Link>
41
48
  </Main>
42
49
  </Container>
43
- <% } else { %>
50
+ <% } else if (props.stylingPackage?.name === "restyle") { %>
51
+ <>
52
+ <Stack.Screen options={{ title: "Overview" }} />
53
+ <Box flex={1} padding="ml_24">
54
+ <Box flex={1} maxWidth={960} justifyContent="space-between">
55
+ <Box>
56
+ <Text variant="extra_large">Hello World</Text>
57
+ <Text variant="large" color="darkGray">
58
+ This is the first page of your app.
59
+ </Text>
60
+ </Box>
61
+ <Link href={{ pathname: '/details', params: { name: 'Dan' } }} asChild>
62
+ <TouchableOpacity
63
+ style={styles.button}
64
+ >
65
+ <Text variant="body" textAlign="center" color="white" fontWeight="600">
66
+ Show Details
67
+ </Text>
68
+ </TouchableOpacity>
69
+ </Link>
70
+ </Box>
71
+ </Box>
72
+ </>
73
+ <% } else { %>
44
74
  <View style={styles.container}>
45
75
  <View style={styles.main}>
46
76
  <Stack.Screen options={{ title: "Overview" }} />
@@ -68,6 +98,25 @@ export default function Page() {
68
98
  title: "text-[64px] font-bold",
69
99
  subtitle: "text-4xl text-gray-700",
70
100
  };
101
+ <% } else if (props.stylingPackage?.name === "restyle") { %>
102
+ const useStyles = makeStyles((theme) => ({
103
+ button: {
104
+ alignItems: 'center',
105
+ backgroundColor: theme.colors.purple,
106
+ borderRadius: theme.borderRadii.xl_24,
107
+ elevation: 5,
108
+ flexDirection: 'row',
109
+ justifyContent: 'center',
110
+ padding: theme.spacing.m_16,
111
+ shadowColor: theme.colors.black,
112
+ shadowOffset: {
113
+ height: 2,
114
+ width: 0,
115
+ },
116
+ shadowOpacity: 0.25,
117
+ shadowRadius: 3.84,
118
+ },
119
+ }));
71
120
  <% } else if (props.stylingPackage?.name === "stylesheet") { %>
72
121
  const styles = StyleSheet.create({
73
122
  button: {
@@ -2,6 +2,8 @@
2
2
  import { Text, View } from "react-native";
3
3
  <% } else if (props.stylingPackage?.name === "tamagui") { %>
4
4
  import { YStack, H2, Separator, Theme } from "tamagui";
5
+ <% } else if (props.stylingPackage?.name === "restyle") { %>
6
+ import { Box, Text } from 'theme';
5
7
  <% } else { %>
6
8
  import { StyleSheet, Text, View } from "react-native";
7
9
  <% } %>
@@ -27,6 +29,14 @@ export default function TabOneScreen() {
27
29
  </YStack>
28
30
  </Theme>
29
31
  );
32
+ <% } else if (props.stylingPackage?.name === "restyle") { %>
33
+ return (
34
+ <Box flex={1} alignItems="center" justifyContent="center">
35
+ <Text variant="title">Tab One</Text>
36
+ <Box height={1} marginVertical="l_32" width="80%" />
37
+ <EditScreenInfo path="app/(tabs)/index.tsx" />
38
+ </Box>
39
+ );
30
40
  <% } else { %>
31
41
  return (
32
42
  <View style={styles.container}>
@@ -2,6 +2,8 @@
2
2
  import { Text, View } from "react-native";
3
3
  <% } else if (props.stylingPackage?.name === "tamagui") { %>
4
4
  import { YStack, H2, Separator, Theme } from "tamagui";
5
+ <% } else if (props.stylingPackage?.name === "restyle") { %>
6
+ import { Box, Text } from 'theme';
5
7
  <% } else { %>
6
8
  import { StyleSheet, Text, View } from "react-native";
7
9
  <% } %>
@@ -27,6 +29,14 @@ export default function TabTwoScreen() {
27
29
  </YStack>
28
30
  </Theme>
29
31
  );
32
+ <% } else if (props.stylingPackage?.name === "restyle") { %>
33
+ return (
34
+ <Box flex={1} alignItems="center" justifyContent="center">
35
+ <Text variant="title">Tab Two</Text>
36
+ <Box height={1} marginVertical="l_32" width="80%" />
37
+ <EditScreenInfo path="app/(tabs)/two.tsx" />
38
+ </Box>
39
+ );
30
40
  <% } else { %>
31
41
  return (
32
42
  <View style={styles.container}>
@@ -6,9 +6,15 @@ import { Link, Stack } from 'expo-router';
6
6
  <% } else if (props.stylingPackage?.name === "tamagui") { %>
7
7
  import { YStack } from "tamagui";
8
8
  import { Container, Main, Subtitle, Title } from "../tamagui.config";
9
+ <% } else if (props.stylingPackage?.name === "restyle") { %>
10
+ import { Box, Text, makeStyles } from 'theme';
9
11
  <% } %>
10
12
 
11
13
  export default function NotFoundScreen() {
14
+ <% if (props.stylingPackage?.name === "restyle") { %>
15
+ const styles = useStyles();
16
+ <% } %>
17
+
12
18
  return (
13
19
  <% if (props.stylingPackage?.name === "nativewind") {%>
14
20
  <>
@@ -32,6 +38,18 @@ export default function NotFoundScreen() {
32
38
  </YStack>
33
39
  </Main>
34
40
  </Container>
41
+ <% } else if (props.stylingPackage?.name === "restyle") {%>
42
+ <>
43
+ <Stack.Screen options={{ title: 'Oops!' }} />
44
+ <Box flex={1} justifyContent="center" alignItems="center" padding="ml_24">
45
+ <Text variant="title">This screen doesn't exist.</Text>
46
+ <Link href="/" style={styles.link}>
47
+ <Text variant="body" color="blue">
48
+ Go to home screen!
49
+ </Text>
50
+ </Link>
51
+ </Box>
52
+ </>
35
53
  <% } else { %>
36
54
  <>
37
55
  <Stack.Screen options={{ title: "Oops!" }} />
@@ -74,4 +92,11 @@ export default function NotFoundScreen() {
74
92
  color: '#2e78b7',
75
93
  },
76
94
  });
95
+ <% } else if (props.stylingPackage?.name === "restyle") { %>
96
+ const useStyles = makeStyles((theme) => ({
97
+ link: {
98
+ marginTop: theme.spacing.m_16,
99
+ paddingVertical: theme.spacing.m_16,
100
+ },
101
+ }));
77
102
  <% } %>
@@ -7,6 +7,10 @@
7
7
  import config from '../tamagui.config'
8
8
 
9
9
  SplashScreen.preventAutoHideAsync();
10
+ <% } else if (props.stylingPackage?.name === "restyle") { %>
11
+ import { ThemeProvider } from '@shopify/restyle';
12
+ import { Stack } from 'expo-router';
13
+ import { theme } from 'theme';
10
14
  <% } else { %>
11
15
  import { Stack } from "expo-router";
12
16
  <% } %>
@@ -35,6 +39,8 @@ export default function RootLayout() {
35
39
  return (
36
40
  <% if (props.stylingPackage?.name === "tamagui") { %>
37
41
  <TamaguiProvider config={config}>
42
+ <% } else if (props.stylingPackage?.name === "restyle") { %>
43
+ <ThemeProvider theme={theme}>
38
44
  <% } %>
39
45
  <Stack>
40
46
  <Stack.Screen name="(tabs)" options={{ headerShown: false }} />
@@ -42,6 +48,8 @@ export default function RootLayout() {
42
48
  </Stack>
43
49
  <% if (props.stylingPackage?.name === "tamagui") { %>
44
50
  </TamaguiProvider>
51
+ <% } else if (props.stylingPackage?.name === "restyle") { %>
52
+ </ThemeProvider>
45
53
  <% } %>
46
54
  );
47
55
  }
@@ -3,6 +3,9 @@
3
3
  <% } else if (props.stylingPackage?.name === "tamagui") { %>
4
4
  import { YStack, Paragraph, Separator, Theme } from "tamagui";
5
5
  import { Platform } from 'react-native'
6
+ <% } else if (props.stylingPackage?.name === "restyle") { %>
7
+ import { Platform } from 'react-native';
8
+ import { Box, Text } from 'theme';
6
9
  <% } else { %>
7
10
  import { Platform, StyleSheet, Text, View } from "react-native";
8
11
  <% } %>
@@ -31,6 +34,15 @@ export default function ModalScreen() {
31
34
  </YStack>
32
35
  </Theme>
33
36
  );
37
+ <% } else if (props.stylingPackage?.name === "restyle") { %>
38
+ return (
39
+ <Box flex={1} alignItems="center" justifyContent="center">
40
+ <StatusBar style={Platform.OS === 'ios' ? 'light' : 'auto'} />
41
+ <Text variant="title">Modal</Text>
42
+ <Box height={1} marginVertical="l_32" width="80%" />
43
+ <EditScreenInfo path="app/modal.tsx" />
44
+ </Box>
45
+ );
34
46
  <% } else { %>
35
47
  return (
36
48
  <View style={styles.container}>