@nx/react-native 0.0.0-pr-22179-271588f

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 (276) hide show
  1. package/.eslintrc.json +48 -0
  2. package/LICENSE +22 -0
  3. package/README.md +68 -0
  4. package/executors.json +59 -0
  5. package/generators.json +58 -0
  6. package/index.d.ts +5 -0
  7. package/index.js +13 -0
  8. package/migrations.json +632 -0
  9. package/package.json +57 -0
  10. package/plugin.d.ts +1 -0
  11. package/plugin.js +6 -0
  12. package/plugins/jest/svg-mock.d.ts +0 -0
  13. package/plugins/jest/svg-mock.js +3 -0
  14. package/plugins/metro-resolver.d.ts +1 -0
  15. package/plugins/metro-resolver.js +136 -0
  16. package/plugins/plugin.d.ts +14 -0
  17. package/plugins/plugin.js +162 -0
  18. package/plugins/with-nx-metro.d.ts +8 -0
  19. package/plugins/with-nx-metro.js +31 -0
  20. package/project.json +54 -0
  21. package/src/executors/build-android/build-android.impl.d.ts +6 -0
  22. package/src/executors/build-android/build-android.impl.js +48 -0
  23. package/src/executors/build-android/build-android.impl.ts +69 -0
  24. package/src/executors/build-android/schema.d.ts +14 -0
  25. package/src/executors/build-android/schema.json +81 -0
  26. package/src/executors/build-ios/build-ios.impl.d.ts +6 -0
  27. package/src/executors/build-ios/build-ios.impl.js +55 -0
  28. package/src/executors/build-ios/build-ios.impl.ts +77 -0
  29. package/src/executors/build-ios/schema.d.ts +17 -0
  30. package/src/executors/build-ios/schema.json +91 -0
  31. package/src/executors/bundle/bundle.impl.d.ts +6 -0
  32. package/src/executors/bundle/bundle.impl.js +56 -0
  33. package/src/executors/bundle/bundle.impl.ts +77 -0
  34. package/src/executors/bundle/schema.d.ts +16 -0
  35. package/src/executors/bundle/schema.json +92 -0
  36. package/src/executors/ensure-symlink/ensure-symlink.impl.d.ts +9 -0
  37. package/src/executors/ensure-symlink/ensure-symlink.impl.js +13 -0
  38. package/src/executors/ensure-symlink/ensure-symlink.impl.ts +22 -0
  39. package/src/executors/ensure-symlink/schema.json +11 -0
  40. package/src/executors/pod-install/pod-install.impl.d.ts +6 -0
  41. package/src/executors/pod-install/pod-install.impl.js +11 -0
  42. package/src/executors/pod-install/pod-install.impl.ts +21 -0
  43. package/src/executors/pod-install/schema.d.ts +6 -0
  44. package/src/executors/pod-install/schema.json +33 -0
  45. package/src/executors/run-android/run-android.impl.d.ts +6 -0
  46. package/src/executors/run-android/run-android.impl.js +66 -0
  47. package/src/executors/run-android/run-android.impl.ts +94 -0
  48. package/src/executors/run-android/schema.d.ts +13 -0
  49. package/src/executors/run-android/schema.json +100 -0
  50. package/src/executors/run-ios/run-ios.impl.d.ts +6 -0
  51. package/src/executors/run-ios/run-ios.impl.js +65 -0
  52. package/src/executors/run-ios/run-ios.impl.ts +92 -0
  53. package/src/executors/run-ios/schema.d.ts +7 -0
  54. package/src/executors/run-ios/schema.json +96 -0
  55. package/src/executors/start/lib/is-packager-running.d.ts +1 -0
  56. package/src/executors/start/lib/is-packager-running.js +15 -0
  57. package/src/executors/start/schema.d.ts +7 -0
  58. package/src/executors/start/schema.json +28 -0
  59. package/src/executors/start/start.impl.d.ts +10 -0
  60. package/src/executors/start/start.impl.js +87 -0
  61. package/src/executors/start/start.impl.ts +111 -0
  62. package/src/executors/storybook/schema.d.ts +5 -0
  63. package/src/executors/storybook/schema.json +29 -0
  64. package/src/executors/storybook/storybook.impl.d.ts +10 -0
  65. package/src/executors/storybook/storybook.impl.js +51 -0
  66. package/src/executors/storybook/storybook.impl.ts +85 -0
  67. package/src/executors/sync-deps/schema.d.ts +5 -0
  68. package/src/executors/sync-deps/schema.json +33 -0
  69. package/src/executors/sync-deps/sync-deps.impl.d.ts +9 -0
  70. package/src/executors/sync-deps/sync-deps.impl.js +78 -0
  71. package/src/executors/sync-deps/sync-deps.impl.ts +140 -0
  72. package/src/executors/upgrade/schema.d.ts +1 -0
  73. package/src/executors/upgrade/schema.json +11 -0
  74. package/src/executors/upgrade/upgrade.impl.d.ts +13 -0
  75. package/src/executors/upgrade/upgrade.impl.js +47 -0
  76. package/src/executors/upgrade/upgrade.impl.ts +64 -0
  77. package/src/generators/application/application.d.ts +5 -0
  78. package/src/generators/application/application.js +87 -0
  79. package/src/generators/application/application.spec.ts +258 -0
  80. package/src/generators/application/files/app/.babelrc.js.template +23 -0
  81. package/src/generators/application/files/app/Gemfile.template +7 -0
  82. package/src/generators/application/files/app/android/app/build.gradle.template +119 -0
  83. package/src/generators/application/files/app/android/app/debug.keystore +0 -0
  84. package/src/generators/application/files/app/android/app/proguard-rules.pro +10 -0
  85. package/src/generators/application/files/app/android/app/src/androidTest/java/com/__lowerCaseName__/DetoxTest.java.template +30 -0
  86. package/src/generators/application/files/app/android/app/src/debug/AndroidManifest.xml.template +10 -0
  87. package/src/generators/application/files/app/android/app/src/main/AndroidManifest.xml.template +26 -0
  88. package/src/generators/application/files/app/android/app/src/main/java/com/__lowerCaseName__/MainActivity.kt.template +22 -0
  89. package/src/generators/application/files/app/android/app/src/main/java/com/__lowerCaseName__/MainApplication.kt.template +45 -0
  90. package/src/generators/application/files/app/android/app/src/main/res/drawable/rn_edit_text_material.xml +36 -0
  91. package/src/generators/application/files/app/android/app/src/main/res/mipmap-hdpi/ic_launcher.png +0 -0
  92. package/src/generators/application/files/app/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png +0 -0
  93. package/src/generators/application/files/app/android/app/src/main/res/mipmap-mdpi/ic_launcher.png +0 -0
  94. package/src/generators/application/files/app/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png +0 -0
  95. package/src/generators/application/files/app/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png +0 -0
  96. package/src/generators/application/files/app/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png +0 -0
  97. package/src/generators/application/files/app/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  98. package/src/generators/application/files/app/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png +0 -0
  99. package/src/generators/application/files/app/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  100. package/src/generators/application/files/app/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png +0 -0
  101. package/src/generators/application/files/app/android/app/src/main/res/values/strings.xml.template +3 -0
  102. package/src/generators/application/files/app/android/app/src/main/res/values/styles.xml +9 -0
  103. package/src/generators/application/files/app/android/app/src/main/res/xml/network_security_config.xml +7 -0
  104. package/src/generators/application/files/app/android/build.gradle.template +21 -0
  105. package/src/generators/application/files/app/android/gradle/wrapper/gradle-wrapper.jar +0 -0
  106. package/src/generators/application/files/app/android/gradle/wrapper/gradle-wrapper.properties +7 -0
  107. package/src/generators/application/files/app/android/gradle.properties +41 -0
  108. package/src/generators/application/files/app/android/gradlew.bat +92 -0
  109. package/src/generators/application/files/app/android/gradlew.template +249 -0
  110. package/src/generators/application/files/app/android/settings.gradle.template +4 -0
  111. package/src/generators/application/files/app/app.json.template +4 -0
  112. package/src/generators/application/files/app/ios/.xcode.env.template +12 -0
  113. package/src/generators/application/files/app/ios/Podfile.template +55 -0
  114. package/src/generators/application/files/app/ios/__className__/AppDelegate.h +6 -0
  115. package/src/generators/application/files/app/ios/__className__/AppDelegate.mm.template +31 -0
  116. package/src/generators/application/files/app/ios/__className__/Images.xcassets/AppIcon.appiconset/Contents.json +53 -0
  117. package/src/generators/application/files/app/ios/__className__/Images.xcassets/Contents.json +6 -0
  118. package/src/generators/application/files/app/ios/__className__/Info.plist.template +52 -0
  119. package/src/generators/application/files/app/ios/__className__/LaunchScreen.storyboard.template +47 -0
  120. package/src/generators/application/files/app/ios/__className__/main.m +10 -0
  121. package/src/generators/application/files/app/ios/__className__.xcodeproj/project.pbxproj.template +684 -0
  122. package/src/generators/application/files/app/ios/__className__.xcodeproj/xcshareddata/xcschemes/__className__.xcscheme.template +88 -0
  123. package/src/generators/application/files/app/ios/__className__.xcworkspace/contents.xcworkspacedata +10 -0
  124. package/src/generators/application/files/app/ios/__className__Tests/Info.plist +24 -0
  125. package/src/generators/application/files/app/ios/__className__Tests/__className__Tests.m +66 -0
  126. package/src/generators/application/files/app/metro.config.js.template +31 -0
  127. package/src/generators/application/files/app/package.json.template +14 -0
  128. package/src/generators/application/files/app/src/app/App.spec.tsx.template +9 -0
  129. package/src/generators/application/files/app/src/app/App.tsx.template +731 -0
  130. package/src/generators/application/files/app/src/main.tsx.template +4 -0
  131. package/src/generators/application/files/app/test-setup.ts.template +1 -0
  132. package/src/generators/application/files/app/tsconfig.app.json.template +10 -0
  133. package/src/generators/application/files/app/tsconfig.json.template +19 -0
  134. package/src/generators/application/lib/add-e2e.d.ts +3 -0
  135. package/src/generators/application/lib/add-e2e.js +46 -0
  136. package/src/generators/application/lib/add-project.d.ts +3 -0
  137. package/src/generators/application/lib/add-project.js +91 -0
  138. package/src/generators/application/lib/create-application-files.d.ts +3 -0
  139. package/src/generators/application/lib/create-application-files.js +24 -0
  140. package/src/generators/application/lib/normalize-options.d.ts +17 -0
  141. package/src/generators/application/lib/normalize-options.js +47 -0
  142. package/src/generators/application/lib/normalize-options.spec.ts +196 -0
  143. package/src/generators/application/schema.d.ts +23 -0
  144. package/src/generators/application/schema.json +103 -0
  145. package/src/generators/component/component.d.ts +5 -0
  146. package/src/generators/component/component.js +64 -0
  147. package/src/generators/component/component.spec.ts +127 -0
  148. package/src/generators/component/files/__fileName__.spec.tsx__tmpl__ +11 -0
  149. package/src/generators/component/files/__fileName__.tsx__tmpl__ +32 -0
  150. package/src/generators/component/lib/add-import.d.ts +3 -0
  151. package/src/generators/component/lib/add-import.js +33 -0
  152. package/src/generators/component/lib/normalize-options.d.ts +10 -0
  153. package/src/generators/component/lib/normalize-options.js +50 -0
  154. package/src/generators/component/schema.d.ts +24 -0
  155. package/src/generators/component/schema.json +85 -0
  156. package/src/generators/component-story/component-story.d.ts +8 -0
  157. package/src/generators/component-story/component-story.js +15 -0
  158. package/src/generators/component-story/schema.d.ts +6 -0
  159. package/src/generators/component-story/schema.json +42 -0
  160. package/src/generators/init/init.d.ts +6 -0
  161. package/src/generators/init/init.js +78 -0
  162. package/src/generators/init/init.spec.ts +38 -0
  163. package/src/generators/init/lib/add-git-ignore-entry.d.ts +2 -0
  164. package/src/generators/init/lib/add-git-ignore-entry.js +24 -0
  165. package/src/generators/init/lib/gitignore-entries.d.ts +1 -0
  166. package/src/generators/init/lib/gitignore-entries.js +74 -0
  167. package/src/generators/init/schema.d.ts +7 -0
  168. package/src/generators/init/schema.json +35 -0
  169. package/src/generators/library/files/lib/.babelrc.js.template +21 -0
  170. package/src/generators/library/files/lib/README.md +7 -0
  171. package/src/generators/library/files/lib/package.json.template +4 -0
  172. package/src/generators/library/files/lib/src/index.ts.template +0 -0
  173. package/src/generators/library/files/lib/test-setup.ts.template +1 -0
  174. package/src/generators/library/files/lib/tsconfig.json.template +16 -0
  175. package/src/generators/library/files/lib/tsconfig.lib.json.template +9 -0
  176. package/src/generators/library/lib/normalize-options.d.ts +12 -0
  177. package/src/generators/library/lib/normalize-options.js +33 -0
  178. package/src/generators/library/library.d.ts +5 -0
  179. package/src/generators/library/library.js +154 -0
  180. package/src/generators/library/library.spec.ts +420 -0
  181. package/src/generators/library/schema.d.ts +25 -0
  182. package/src/generators/library/schema.json +107 -0
  183. package/src/generators/stories/schema.d.ts +7 -0
  184. package/src/generators/stories/schema.json +58 -0
  185. package/src/generators/stories/stories.d.ts +8 -0
  186. package/src/generators/stories/stories.js +13 -0
  187. package/src/generators/storybook-configuration/configuration.d.ts +9 -0
  188. package/src/generators/storybook-configuration/configuration.js +26 -0
  189. package/src/generators/storybook-configuration/schema.d.ts +13 -0
  190. package/src/generators/storybook-configuration/schema.json +79 -0
  191. package/src/generators/upgrade-native/lib/create-native-files.d.ts +3 -0
  192. package/src/generators/upgrade-native/lib/create-native-files.js +14 -0
  193. package/src/generators/upgrade-native/lib/normalize-options.d.ts +12 -0
  194. package/src/generators/upgrade-native/lib/normalize-options.js +27 -0
  195. package/src/generators/upgrade-native/schema.d.ts +9 -0
  196. package/src/generators/upgrade-native/schema.json +41 -0
  197. package/src/generators/upgrade-native/upgrade-native.d.ts +10 -0
  198. package/src/generators/upgrade-native/upgrade-native.js +31 -0
  199. package/src/generators/web-configuration/files/base-vite/.babelrc.js.template +23 -0
  200. package/src/generators/web-configuration/files/base-vite/index.html__tmpl__ +15 -0
  201. package/src/generators/web-configuration/files/base-vite/public/favicon.ico +0 -0
  202. package/src/generators/web-configuration/files/base-vite/src/assets/.gitkeep +0 -0
  203. package/src/generators/web-configuration/files/base-vite/src/main-web.tsx__tmpl__ +9 -0
  204. package/src/generators/web-configuration/files/base-vite/vite.config.ts__tmpl__ +82 -0
  205. package/src/generators/web-configuration/files/base-webpack/.babelrc.js.template +23 -0
  206. package/src/generators/web-configuration/files/base-webpack/src/assets/.gitkeep +0 -0
  207. package/src/generators/web-configuration/files/base-webpack/src/favicon.ico +0 -0
  208. package/src/generators/web-configuration/files/base-webpack/src/index.html__tmpl__ +14 -0
  209. package/src/generators/web-configuration/files/base-webpack/src/main-web.tsx__tmpl__ +9 -0
  210. package/src/generators/web-configuration/files/base-webpack/webpack.config.js__tmpl__ +77 -0
  211. package/src/generators/web-configuration/lib/normalize-schema.d.ts +17 -0
  212. package/src/generators/web-configuration/lib/normalize-schema.js +16 -0
  213. package/src/generators/web-configuration/lib/webpack-targets.d.ts +7 -0
  214. package/src/generators/web-configuration/lib/webpack-targets.js +75 -0
  215. package/src/generators/web-configuration/schema.d.ts +6 -0
  216. package/src/generators/web-configuration/schema.json +42 -0
  217. package/src/generators/web-configuration/web-configuration.d.ts +12 -0
  218. package/src/generators/web-configuration/web-configuration.js +87 -0
  219. package/src/migrations/update-15-0-0/add-babel-inputs.d.ts +2 -0
  220. package/src/migrations/update-15-0-0/add-babel-inputs.js +9 -0
  221. package/src/migrations/update-15-0-0/add-babel-inputs.spec.ts +73 -0
  222. package/src/migrations/update-15-9-1/add-build-ios-target.d.ts +5 -0
  223. package/src/migrations/update-15-9-1/add-build-ios-target.js +29 -0
  224. package/src/migrations/update-15-9-1/add-build-ios-target.spec.ts +36 -0
  225. package/src/migrations/update-16-0-0-add-nx-packages/update-16-0-0-add-nx-packages.d.ts +2 -0
  226. package/src/migrations/update-16-0-0-add-nx-packages/update-16-0-0-add-nx-packages.js +9 -0
  227. package/src/migrations/update-16-0-0-add-nx-packages/update-16-0-0-add-nx-packages.spec.ts +37 -0
  228. package/src/migrations/update-16-1-0/upgrade-storybook-6-5.d.ts +6 -0
  229. package/src/migrations/update-16-1-0/upgrade-storybook-6-5.js +21 -0
  230. package/src/migrations/update-16-6-0/add-depends-on.d.ts +6 -0
  231. package/src/migrations/update-16-6-0/add-depends-on.js +63 -0
  232. package/src/migrations/update-16-6-0/update-metro-config.d.ts +6 -0
  233. package/src/migrations/update-16-6-0/update-metro-config.js +63 -0
  234. package/src/migrations/update-16-9-0/remove-types-react-native.d.ts +7 -0
  235. package/src/migrations/update-16-9-0/remove-types-react-native.js +13 -0
  236. package/src/migrations/update-18-0-0/add-upgrade-target.d.ts +6 -0
  237. package/src/migrations/update-18-0-0/add-upgrade-target.js +33 -0
  238. package/src/migrations/update-18-0-0/add-web-configuration.d.ts +8 -0
  239. package/src/migrations/update-18-0-0/add-web-configuration.js +33 -0
  240. package/src/migrations/update-18-0-0/add-web-configuration.spec.ts +39 -0
  241. package/src/migrations/update-18-0-0/change-storybook-targets.d.ts +5 -0
  242. package/src/migrations/update-18-0-0/change-storybook-targets.js +57 -0
  243. package/src/migrations/update-18-0-0/remove-block-list.d.ts +6 -0
  244. package/src/migrations/update-18-0-0/remove-block-list.js +28 -0
  245. package/src/migrations/update-18-0-0/remove-block-list.spec.ts +68 -0
  246. package/src/migrations/update-18-0-0/remove-metro.d.ts +14 -0
  247. package/src/migrations/update-18-0-0/remove-metro.js +29 -0
  248. package/src/migrations/update-18-0-0/remove-symlink-target.d.ts +6 -0
  249. package/src/migrations/update-18-0-0/remove-symlink-target.js +30 -0
  250. package/src/migrations/update-18-0-0/remove-symlink-target.spec.ts +40 -0
  251. package/src/utils/add-jest.d.ts +2 -0
  252. package/src/utils/add-jest.js +48 -0
  253. package/src/utils/add-linting.d.ts +13 -0
  254. package/src/utils/add-linting.js +36 -0
  255. package/src/utils/add-linting.spec.ts +40 -0
  256. package/src/utils/chmod-android-gradle-files.d.ts +3 -0
  257. package/src/utils/chmod-android-gradle-files.js +27 -0
  258. package/src/utils/ensure-dependencies.d.ts +2 -0
  259. package/src/utils/ensure-dependencies.js +30 -0
  260. package/src/utils/ensure-node-modules-symlink.d.ts +9 -0
  261. package/src/utils/ensure-node-modules-symlink.js +28 -0
  262. package/src/utils/ensure-node-modules-symlink.spec.ts +108 -0
  263. package/src/utils/find-all-npm-dependencies.d.ts +2 -0
  264. package/src/utils/find-all-npm-dependencies.js +27 -0
  265. package/src/utils/find-all-npm-dependencies.spec.ts +103 -0
  266. package/src/utils/format-file.d.ts +1 -0
  267. package/src/utils/format-file.js +16 -0
  268. package/src/utils/get-cli-options.d.ts +8 -0
  269. package/src/utils/get-cli-options.js +33 -0
  270. package/src/utils/pod-install-task.d.ts +18 -0
  271. package/src/utils/pod-install-task.js +73 -0
  272. package/src/utils/testing-generators.d.ts +3 -0
  273. package/src/utils/testing-generators.js +32 -0
  274. package/src/utils/versions.d.ts +17 -0
  275. package/src/utils/versions.js +20 -0
  276. package/typings/svg.d.ts +7 -0
@@ -0,0 +1,731 @@
1
+ /* eslint-disable jsx-a11y/accessible-emoji */
2
+ import React, { useRef, useState } from 'react';
3
+ import {
4
+ SafeAreaView,
5
+ StyleSheet,
6
+ ScrollView,
7
+ View,
8
+ Text,
9
+ StatusBar,
10
+ TouchableOpacity,
11
+ Linking,
12
+ } from 'react-native';
13
+ import Svg, { G, Path } from 'react-native-svg';
14
+
15
+ export const App = () => {
16
+ const [whatsNextYCoord, setWhatsNextYCoord] = useState<number>(0);
17
+ const scrollViewRef = useRef<null | ScrollView>(null);
18
+
19
+ return (
20
+ <>
21
+ <StatusBar barStyle="dark-content" />
22
+ <SafeAreaView
23
+ style={{
24
+ flex: 1,
25
+ }}>
26
+ <ScrollView
27
+ ref={(ref) => {
28
+ scrollViewRef.current = ref;
29
+ }}
30
+ contentInsetAdjustmentBehavior="automatic"
31
+ style={styles.scrollView}
32
+ >
33
+ <View style={styles.section}>
34
+ <Text style={styles.textLg}>Hello there,</Text>
35
+ <Text style={[styles.textXL, styles.appTitleText]} testID="heading" role="heading">
36
+ Welcome <%= displayName %> 👋
37
+ </Text>
38
+ </View>
39
+ <View style={styles.section}>
40
+ <View style={styles.hero}>
41
+ <View style={styles.heroTitle}>
42
+ <Svg
43
+ width={32}
44
+ height={32}
45
+ stroke="hsla(162, 47%, 50%, 1)"
46
+ fill="none"
47
+ viewBox="0 0 24 24"
48
+ >
49
+ <Path
50
+ strokeLinecap="round"
51
+ strokeLinejoin="round"
52
+ strokeWidth="2"
53
+ d="M9 12l2 2 4-4M7.835 4.697a3.42 3.42 0 001.946-.806 3.42 3.42 0 014.438 0 3.42 3.42 0 001.946.806 3.42 3.42 0 013.138 3.138 3.42 3.42 0 00.806 1.946 3.42 3.42 0 010 4.438 3.42 3.42 0 00-.806 1.946 3.42 3.42 0 01-3.138 3.138 3.42 3.42 0 00-1.946.806 3.42 3.42 0 01-4.438 0 3.42 3.42 0 00-1.946-.806 3.42 3.42 0 01-3.138-3.138 3.42 3.42 0 00-.806-1.946 3.42 3.42 0 010-4.438 3.42 3.42 0 00.806-1.946 3.42 3.42 0 013.138-3.138z"
54
+ />
55
+ </Svg>
56
+ <Text style={[styles.textLg, styles.heroTitleText]}>
57
+ You're up and running
58
+ </Text>
59
+ </View>
60
+ <TouchableOpacity
61
+ style={styles.whatsNextButton}
62
+ onPress={() => {
63
+ scrollViewRef.current?.scrollTo({
64
+ x: 0,
65
+ y: whatsNextYCoord,
66
+ });
67
+ }}
68
+ >
69
+ <Text style={[styles.textMd, styles.textCenter]}>
70
+ What's next?
71
+ </Text>
72
+ </TouchableOpacity>
73
+ </View>
74
+ </View>
75
+ <View style={styles.section}>
76
+ <View style={[styles.shadowBox]}>
77
+ <Text style={[styles.marginBottomMd, styles.textLg]}>
78
+ Learning materials
79
+ </Text>
80
+ <TouchableOpacity
81
+ style={[styles.listItem, styles.learning]}
82
+ onPress={() =>
83
+ Linking.openURL(
84
+ 'https://nx.dev/getting-started/intro?utm_source=nx-project'
85
+ )
86
+ }
87
+ >
88
+ <Svg
89
+ width={24}
90
+ height={24}
91
+ stroke="#000000"
92
+ fill="none"
93
+ viewBox="0 0 24 24"
94
+ >
95
+ <Path
96
+ strokeLinecap="round"
97
+ strokeLinejoin="round"
98
+ strokeWidth="2"
99
+ d="M12 6.253v13m0-13C10.832 5.477 9.246 5 7.5 5S4.168 5.477 3 6.253v13C4.168 18.477 5.754 18 7.5 18s3.332.477 4.5 1.253m0-13C13.168 5.477 14.754 5 16.5 5c1.747 0 3.332.477 4.5 1.253v13C19.832 18.477 18.247 18 16.5 18c-1.746 0-3.332.477-4.5 1.253"
100
+ />
101
+ </Svg>
102
+ <View style={styles.listItemTextContainer}>
103
+ <Text style={[styles.textMd]}>Documentation</Text>
104
+ <Text style={[styles.text2XS, styles.textSubtle]}>
105
+ Everything is in there
106
+ </Text>
107
+ </View>
108
+ <Svg
109
+ width={18}
110
+ height={18}
111
+ stroke="#000000"
112
+ fill="none"
113
+ viewBox="0 0 24 24"
114
+ >
115
+ <Path
116
+ strokeLinecap="round"
117
+ strokeLinejoin="round"
118
+ strokeWidth="2"
119
+ d="M9 5l7 7-7 7"
120
+ />
121
+ </Svg>
122
+ </TouchableOpacity>
123
+ <TouchableOpacity
124
+ style={[styles.listItem, styles.learning]}
125
+ onPress={() =>
126
+ Linking.openURL('https://blog.nrwl.io/?utm_source=nx-project')
127
+ }
128
+ >
129
+ <Svg
130
+ width={24}
131
+ height={24}
132
+ stroke="#000000"
133
+ fill="none"
134
+ viewBox="0 0 24 24"
135
+ >
136
+ <Path
137
+ strokeLinecap="round"
138
+ strokeLinejoin="round"
139
+ strokeWidth="2"
140
+ d="M19 20H5a2 2 0 01-2-2V6a2 2 0 012-2h10a2 2 0 012 2v1m2 13a2 2 0 01-2-2V7m2 13a2 2 0 002-2V9a2 2 0 00-2-2h-2m-4-3H9M7 16h6M7 8h6v4H7V8z"
141
+ />
142
+ </Svg>
143
+ <View style={styles.listItemTextContainer}>
144
+ <Text style={[styles.textMd]}>Blog</Text>
145
+ <Text style={[styles.text2XS, styles.textSubtle]}>
146
+ Changelog, features & events
147
+ </Text>
148
+ </View>
149
+ <Svg
150
+ width={18}
151
+ height={18}
152
+ stroke="#000000"
153
+ fill="none"
154
+ viewBox="0 0 24 24"
155
+ >
156
+ <Path
157
+ strokeLinecap="round"
158
+ strokeLinejoin="round"
159
+ strokeWidth="2"
160
+ d="M9 5l7 7-7 7"
161
+ />
162
+ </Svg>
163
+ </TouchableOpacity>
164
+ <TouchableOpacity
165
+ style={[styles.listItem, styles.learning]}
166
+ onPress={() =>
167
+ Linking.openURL(
168
+ 'https://www.youtube.com/@NxDevtools/videos?utm_source=nx-project'
169
+ )
170
+ }
171
+ >
172
+ <Svg width={24} height={24} fill="#000000" viewBox="0 0 24 24">
173
+ <Path d="M23.498 6.186a3.016 3.016 0 0 0-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 0 0 2.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814zM9.545 15.568V8.432L15.818 12l-6.273 3.568z" />
174
+ </Svg>
175
+ <View style={styles.listItemTextContainer}>
176
+ <Text style={[styles.textMd]}>Youtube channel</Text>
177
+ <Text style={[styles.text2XS, styles.textSubtle]}>
178
+ Nx Show, talks & tutorials
179
+ </Text>
180
+ </View>
181
+ <Svg
182
+ width={18}
183
+ height={18}
184
+ stroke="#000000"
185
+ fill="none"
186
+ viewBox="0 0 24 24"
187
+ >
188
+ <Path
189
+ strokeLinecap="round"
190
+ strokeLinejoin="round"
191
+ strokeWidth="2"
192
+ d="M9 5l7 7-7 7"
193
+ />
194
+ </Svg>
195
+ </TouchableOpacity>
196
+ <TouchableOpacity
197
+ style={[styles.listItem, styles.learning]}
198
+ onPress={() =>
199
+ Linking.openURL(
200
+ 'https://nx.dev/react-tutorial/1-code-generation?utm_source=nx-project'
201
+ )
202
+ }
203
+ >
204
+ <Svg
205
+ width={24}
206
+ height={24}
207
+ stroke="#000000"
208
+ fill="none"
209
+ viewBox="0 0 24 24"
210
+ >
211
+ <Path
212
+ strokeLinecap="round"
213
+ strokeLinejoin="round"
214
+ strokeWidth="2"
215
+ d="M15 15l-2 5L9 9l11 4-5 2zm0 0l5 5M7.188 2.239l.777 2.897M5.136 7.965l-2.898-.777M13.95 4.05l-2.122 2.122m-5.657 5.656l-2.12 2.122"
216
+ />
217
+ </Svg>
218
+ <View style={styles.listItemTextContainer}>
219
+ <Text style={[styles.textMd]}>Interactive tutorials</Text>
220
+ <Text style={[styles.text2XS, styles.textSubtle]}>
221
+ Create an app, step by step
222
+ </Text>
223
+ </View>
224
+ <Svg
225
+ width={18}
226
+ height={18}
227
+ stroke="#000000"
228
+ fill="none"
229
+ viewBox="0 0 24 24"
230
+ >
231
+ <Path
232
+ strokeLinecap="round"
233
+ strokeLinejoin="round"
234
+ strokeWidth="2"
235
+ d="M9 5l7 7-7 7"
236
+ ></Path>
237
+ </Svg>
238
+ </TouchableOpacity>
239
+ <TouchableOpacity
240
+ style={[styles.listItem, styles.learning]}
241
+ onPress={() =>
242
+ Linking.openURL(
243
+ 'https://nxplaybook.com/?utm_source=nx-project'
244
+ )
245
+ }
246
+ >
247
+ <Svg
248
+ width={24}
249
+ height={24}
250
+ stroke="#000000"
251
+ fill="none"
252
+ viewBox="0 0 24 24"
253
+ >
254
+ <Path d="M12 14l9-5-9-5-9 5 9 5z"></Path>
255
+ <Path d="M12 14l6.16-3.422a12.083 12.083 0 01.665 6.479A11.952 11.952 0 0012 20.055a11.952 11.952 0 00-6.824-2.998 12.078 12.078 0 01.665-6.479L12 14z"></Path>
256
+ <Path
257
+ strokeLinecap="round"
258
+ strokeLinejoin="round"
259
+ strokeWidth="2"
260
+ d="M12 14l9-5-9-5-9 5 9 5zm0 0l6.16-3.422a12.083 12.083 0 01.665 6.479A11.952 11.952 0 0012 20.055a11.952 11.952 0 00-6.824-2.998 12.078 12.078 0 01.665-6.479L12 14zm-4 6v-7.5l4-2.222"
261
+ ></Path>
262
+ </Svg>
263
+ <View style={styles.listItemTextContainer}>
264
+ <Text style={[styles.textMd]}>Video courses</Text>
265
+ <Text style={[styles.text2XS, styles.textSubtle]}>
266
+ Nx custom courses
267
+ </Text>
268
+ </View>
269
+ <Svg
270
+ width={18}
271
+ height={18}
272
+ stroke="#000000"
273
+ fill="none"
274
+ viewBox="0 0 24 24"
275
+ >
276
+ <Path
277
+ strokeLinecap="round"
278
+ strokeLinejoin="round"
279
+ strokeWidth="2"
280
+ d="M9 5l7 7-7 7"
281
+ ></Path>
282
+ </Svg>
283
+ </TouchableOpacity>
284
+ </View>
285
+ </View>
286
+ <View style={[styles.section, styles.shadowBox]}>
287
+ <TouchableOpacity
288
+ onPress={() =>
289
+ Linking.openURL(
290
+ 'https://marketplace.visualstudio.com/items?itemName=nrwl.angular-console&utm_source=nx-project'
291
+ )
292
+ }
293
+ >
294
+ <View style={[styles.listItem, styles.learning]}>
295
+ <Svg
296
+ width={48}
297
+ height={48}
298
+ fill="rgba(0, 122, 204, 1)"
299
+ viewBox="0 0 24 24"
300
+ >
301
+ <Path d="M23.15 2.587L18.21.21a1.494 1.494 0 0 0-1.705.29l-9.46 8.63-4.12-3.128a.999.999 0 0 0-1.276.057L.327 7.261A1 1 0 0 0 .326 8.74L3.899 12 .326 15.26a1 1 0 0 0 .001 1.479L1.65 17.94a.999.999 0 0 0 1.276.057l4.12-3.128 9.46 8.63a1.492 1.492 0 0 0 1.704.29l4.942-2.377A1.5 1.5 0 0 0 24 20.06V3.939a1.5 1.5 0 0 0-.85-1.352zm-5.146 14.861L10.826 12l7.178-5.448v10.896z" />
302
+ </Svg>
303
+ <View style={styles.listItemTextContainer}>
304
+ <Text
305
+ style={[
306
+ styles.textMd,
307
+ styles.textBold,
308
+ styles.marginBottomSm,
309
+ ]}
310
+ >
311
+ Install Nx Console for VSCode
312
+ </Text>
313
+ <Text style={[styles.textXS, styles.textLight]}>
314
+ The official VSCode extension for Nx.
315
+ </Text>
316
+ </View>
317
+ </View>
318
+ </TouchableOpacity>
319
+ </View>
320
+
321
+ <View style={[styles.section, styles.shadowBox]}>
322
+ <TouchableOpacity
323
+ onPress={() =>
324
+ Linking.openURL(
325
+ 'https://plugins.jetbrains.com/plugin/21060-nx-console'
326
+ )
327
+ }
328
+ >
329
+ <View style={[styles.listItem, styles.learning]}>
330
+ <Svg width={48} height={48} viewBox="20 20 60 60">
331
+ <Path d="m22.5 22.5h60v60h-60z" />
332
+ <G fill="#fff">
333
+ <Path d="m29.03 71.25h22.5v3.75h-22.5z" />
334
+ <Path d="m28.09 38 1.67-1.58a1.88 1.88 0 0 0 1.47.87c.64 0 1.06-.44 1.06-1.31v-5.98h2.58v6a3.48 3.48 0 0 1 -.87 2.6 3.56 3.56 0 0 1 -2.57.95 3.84 3.84 0 0 1 -3.34-1.55z" />
335
+ <Path d="m36 30h7.53v2.19h-5v1.44h4.49v2h-4.42v1.49h5v2.21h-7.6z" />
336
+ <Path d="m47.23 32.29h-2.8v-2.29h8.21v2.27h-2.81v7.1h-2.6z" />
337
+ <Path d="m29.13 43.08h4.42a3.53 3.53 0 0 1 2.55.83 2.09 2.09 0 0 1 .6 1.53 2.16 2.16 0 0 1 -1.44 2.09 2.27 2.27 0 0 1 1.86 2.29c0 1.61-1.31 2.59-3.55 2.59h-4.44zm5 2.89c0-.52-.42-.8-1.18-.8h-1.29v1.64h1.24c.79 0 1.25-.26 1.25-.81zm-.9 2.66h-1.57v1.73h1.62c.8 0 1.24-.31 1.24-.86 0-.5-.4-.87-1.27-.87z" />
338
+ <Path d="m38 43.08h4.1a4.19 4.19 0 0 1 3 1 2.93 2.93 0 0 1 .9 2.19 3 3 0 0 1 -1.93 2.89l2.24 3.27h-3l-1.88-2.84h-.87v2.84h-2.56zm4 4.5c.87 0 1.39-.43 1.39-1.11 0-.75-.54-1.12-1.4-1.12h-1.44v2.26z" />
339
+ <Path d="m49.59 43h2.5l4 9.44h-2.79l-.67-1.69h-3.63l-.67 1.69h-2.71zm2.27 5.73-1-2.65-1.06 2.65z" />
340
+ <Path d="m56.46 43.05h2.6v9.37h-2.6z" />
341
+ <Path d="m60.06 43.05h2.42l3.37 5v-5h2.57v9.37h-2.26l-3.53-5.14v5.14h-2.57z" />
342
+ <Path d="m68.86 51 1.45-1.73a4.84 4.84 0 0 0 3 1.13c.71 0 1.08-.24 1.08-.65 0-.4-.31-.6-1.59-.91-2-.46-3.53-1-3.53-2.93 0-1.74 1.37-3 3.62-3a5.89 5.89 0 0 1 3.86 1.25l-1.26 1.84a4.63 4.63 0 0 0 -2.62-.92c-.63 0-.94.25-.94.6 0 .42.32.61 1.63.91 2.14.46 3.44 1.16 3.44 2.91 0 1.91-1.51 3-3.79 3a6.58 6.58 0 0 1 -4.35-1.5z" />
343
+ </G>
344
+ </Svg>
345
+ <View style={styles.listItemTextContainer}>
346
+ <Text
347
+ style={[
348
+ styles.textMd,
349
+ styles.textBold,
350
+ styles.marginBottomSm,
351
+ ]}
352
+ >
353
+ Install Nx Console for JetBrains
354
+ </Text>
355
+ <Text style={[styles.textXS, styles.textLight]}>
356
+ Available for WebStorm, Intellij IDEA Ultimate and more!
357
+ </Text>
358
+ </View>
359
+ </View>
360
+ </TouchableOpacity>
361
+ </View>
362
+ <View style={styles.section}>
363
+ <TouchableOpacity
364
+ onPress={() =>
365
+ Linking.openURL('https://nx.app/?utm_source=nx-project')
366
+ }
367
+ >
368
+ <View style={styles.shadowBox}>
369
+ <View style={[styles.listItem, styles.marginBottomMd]}>
370
+ <Svg width={48} height={48} viewBox="0 0 120 120" stroke="currentColor" fill="transparent">
371
+ <Path strokeWidth="2" d="M23 3.75V6.5c-3.036 0-5.5 2.464-5.5 5.5s-2.464 5.5-5.5 5.5-5.5 2.464-5.5 5.5H3.75C2.232 23 1 21.768 1 20.25V3.75C1 2.232 2.232 1 3.75 1h16.5C21.768 1 23 2.232 23 3.75Z" />
372
+ <Path strokeWidth="2" d="M23 6v14.1667C23 21.7307 21.7307 23 20.1667 23H6c0-3.128 2.53867-5.6667 5.6667-5.6667 3.128 0 5.6666-2.5386 5.6666-5.6666C17.3333 8.53867 19.872 6 23 6Z" />
373
+ </Svg>
374
+ <View style={styles.listItemTextContainer}>
375
+ <Text
376
+ style={[
377
+ styles.textMd,
378
+ styles.textBold,
379
+ styles.marginBottomSm,
380
+ ]}
381
+ >
382
+ Nx Cloud
383
+ </Text>
384
+ <Text style={[styles.textXS, styles.textLight]}>
385
+ Enable faster CI & better DX
386
+ </Text>
387
+ </View>
388
+ </View>
389
+ <View style={styles.codeBlock}>
390
+ <Text style={[styles.monospace]}>nx connect</Text>
391
+ </View>
392
+ </View>
393
+ </TouchableOpacity>
394
+ </View>
395
+ <View style={styles.section}>
396
+ <TouchableOpacity
397
+ onPress={() =>
398
+ Linking.openURL('https://nx.app/?utm_source=nx-project')
399
+ }
400
+ >
401
+ <View style={[styles.listItem, styles.shadowBox]}>
402
+ <Svg width={48} height={48} fill="#000000" viewBox="0 0 24 24">
403
+ <Path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12" />
404
+ </Svg>
405
+ <View style={styles.listItemTextContainer}>
406
+ <Text
407
+ style={[
408
+ styles.textMd,
409
+ styles.textBold,
410
+ styles.marginBottomSm,
411
+ ]}
412
+ >
413
+ Nx is open source
414
+ </Text>
415
+ <Text style={[styles.textXS, styles.textLight]}>
416
+ Love Nx? Give us a star!
417
+ </Text>
418
+ </View>
419
+ </View>
420
+ </TouchableOpacity>
421
+ </View>
422
+ <View
423
+ style={styles.section}
424
+ onLayout={(event) => {
425
+ const layout = event.nativeEvent.layout;
426
+ setWhatsNextYCoord(layout.y);
427
+ }}
428
+ >
429
+ <View style={styles.shadowBox}>
430
+ <Text style={[styles.textLg, styles.marginBottomMd]}>
431
+ Next steps
432
+ </Text>
433
+ <Text
434
+ style={[styles.textSm, styles.textLight, styles.marginBottomMd]}
435
+ >
436
+ Here are some things you can do with Nx:
437
+ </Text>
438
+ <View style={styles.listItem}>
439
+ <Svg
440
+ width={24}
441
+ height={24}
442
+ stroke="#000000"
443
+ fill="none"
444
+ viewBox="0 0 24 24"
445
+ >
446
+ <Path
447
+ strokeLinecap="round"
448
+ strokeLinejoin="round"
449
+ strokeWidth="2"
450
+ d="M8 9l3 3-3 3m5 0h3M5 20h14a2 2 0 002-2V6a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z"
451
+ />
452
+ </Svg>
453
+ <View style={styles.listItemTextContainer}>
454
+ <Text style={styles.textSm}>Add UI library</Text>
455
+ </View>
456
+ </View>
457
+ <View style={[styles.codeBlock, styles.marginBottomLg]}>
458
+ <Text style={[styles.textXS, styles.monospace, styles.comment]}>
459
+ # Generate UI lib
460
+ </Text>
461
+ <Text
462
+ style={[
463
+ styles.textXS,
464
+ styles.monospace,
465
+ styles.marginBottomMd,
466
+ ]}
467
+ >
468
+ nx g @nx/react-native:lib ui
469
+ </Text>
470
+ <Text style={[styles.textXS, styles.monospace, styles.comment]}>
471
+ # Add a component
472
+ </Text>
473
+ <Text style={[styles.textXS, styles.monospace]}>nx g \</Text>
474
+ <Text style={[styles.textXS, styles.monospace]}>
475
+ @nx/react-native:component \
476
+ </Text>
477
+ <Text style={[styles.textXS, styles.monospace]}>
478
+ ui/src/lib/button
479
+ </Text>
480
+ </View>
481
+ <View style={styles.listItem}>
482
+ <Svg
483
+ width={24}
484
+ height={24}
485
+ stroke="#000000"
486
+ fill="none"
487
+ viewBox="0 0 24 24"
488
+ >
489
+ <Path
490
+ strokeLinecap="round"
491
+ strokeLinejoin="round"
492
+ strokeWidth="2"
493
+ d="M8 9l3 3-3 3m5 0h3M5 20h14a2 2 0 002-2V6a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z"
494
+ />
495
+ </Svg>
496
+ <View style={styles.listItemTextContainer}>
497
+ <Text style={styles.textSm}>
498
+ View project details
499
+ </Text>
500
+ </View>
501
+ </View>
502
+ <View style={[styles.codeBlock, styles.marginBottomLg]}>
503
+ <Text style={[styles.textXS, styles.monospace]}>nx show project <%= displayName %> --web</Text>
504
+ </View>
505
+ <View style={styles.listItem}>
506
+ <Svg
507
+ width={24}
508
+ height={24}
509
+ stroke="#000000"
510
+ fill="none"
511
+ viewBox="0 0 24 24"
512
+ >
513
+ <Path
514
+ strokeLinecap="round"
515
+ strokeLinejoin="round"
516
+ strokeWidth="2"
517
+ d="M8 9l3 3-3 3m5 0h3M5 20h14a2 2 0 002-2V6a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z"
518
+ />
519
+ </Svg>
520
+ <View style={styles.listItemTextContainer}>
521
+ <Text style={styles.textSm}>
522
+ View interactive project graph
523
+ </Text>
524
+ </View>
525
+ </View>
526
+ <View style={[styles.codeBlock, styles.marginBottomLg]}>
527
+ <Text style={[styles.textXS, styles.monospace]}>nx graph</Text>
528
+ </View>
529
+ <View style={styles.listItem}>
530
+ <Svg
531
+ width={24}
532
+ height={24}
533
+ stroke="#000000"
534
+ fill="none"
535
+ viewBox="0 0 24 24"
536
+ >
537
+ <Path
538
+ strokeLinecap="round"
539
+ strokeLinejoin="round"
540
+ strokeWidth="2"
541
+ d="M8 9l3 3-3 3m5 0h3M5 20h14a2 2 0 002-2V6a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z"
542
+ />
543
+ </Svg>
544
+ <View style={styles.listItemTextContainer}>
545
+ <Text style={styles.textSm}>Run affected commands</Text>
546
+ </View>
547
+ </View>
548
+ <View style={styles.codeBlock}>
549
+ <Text style={[styles.textXS, styles.monospace, styles.comment]}>
550
+ # See what's affected by changes
551
+ </Text>
552
+ <Text
553
+ style={[
554
+ styles.textXS,
555
+ styles.monospace,
556
+ styles.marginBottomMd,
557
+ ]}
558
+ >
559
+ nx affected:graph
560
+ </Text>
561
+ <Text style={[styles.textXS, styles.monospace, styles.comment]}>
562
+ # run tests for current changes
563
+ </Text>
564
+ <Text
565
+ style={[
566
+ styles.textXS,
567
+ styles.monospace,
568
+ styles.marginBottomMd,
569
+ ]}
570
+ >
571
+ nx affected:text
572
+ </Text>
573
+ <Text style={[styles.textXS, styles.monospace, styles.comment]}>
574
+ # run e2e tests for current
575
+ </Text>
576
+ <Text style={[styles.textXS, styles.monospace, styles.comment]}>
577
+ # changes
578
+ </Text>
579
+ <Text style={[styles.textXS, styles.monospace]}>
580
+ nx affected:e2e
581
+ </Text>
582
+ </View>
583
+ </View>
584
+ <View style={[styles.listItem, styles.love]}>
585
+ <Text style={styles.textSubtle}>Carefully crafted with </Text>
586
+ <Svg
587
+ width={24}
588
+ height={24}
589
+ fill="rgba(252, 165, 165, 1)"
590
+ stroke="none"
591
+ viewBox="0 0 24 24"
592
+ >
593
+ <Path
594
+ strokeLinecap="round"
595
+ strokeLinejoin="round"
596
+ strokeWidth="2"
597
+ d="M4.318 6.318a4.5 4.5 0 000 6.364L12 20.364l7.682-7.682a4.5 4.5 0 00-6.364-6.364L12 7.636l-1.318-1.318a4.5 4.5 0 00-6.364 0z"
598
+ />
599
+ </Svg>
600
+ </View>
601
+ </View>
602
+ </ScrollView>
603
+ </SafeAreaView>
604
+ </>
605
+ );
606
+ };
607
+ const styles = StyleSheet.create({
608
+ scrollView: {
609
+ backgroundColor: '#ffffff',
610
+ },
611
+ codeBlock: {
612
+ backgroundColor: 'rgba(55, 65, 81, 1)',
613
+ marginVertical: 12,
614
+ padding: 12,
615
+ borderRadius: 4,
616
+ },
617
+ monospace: {
618
+ color: '#ffffff',
619
+ fontFamily: 'Courier New',
620
+ marginVertical: 4,
621
+ },
622
+ comment: {
623
+ color: '#cccccc',
624
+ },
625
+ marginBottomSm: {
626
+ marginBottom: 6,
627
+ },
628
+ marginBottomMd: {
629
+ marginBottom: 18,
630
+ },
631
+ marginBottomLg: {
632
+ marginBottom: 24,
633
+ },
634
+ textLight: {
635
+ fontWeight: '300',
636
+ },
637
+ textBold: {
638
+ fontWeight: '500',
639
+ },
640
+ textCenter: {
641
+ textAlign: 'center',
642
+ },
643
+ text2XS: {
644
+ fontSize: 12,
645
+ },
646
+ textXS: {
647
+ fontSize: 14,
648
+ },
649
+ textSm: {
650
+ fontSize: 16,
651
+ },
652
+ textMd: {
653
+ fontSize: 18,
654
+ },
655
+ textLg: {
656
+ fontSize: 24,
657
+ },
658
+ textXL: {
659
+ fontSize: 48,
660
+ },
661
+ textContainer: {
662
+ marginVertical: 12,
663
+ },
664
+ textSubtle: {
665
+ color: '#6b7280',
666
+ },
667
+ section: {
668
+ marginVertical: 24,
669
+ marginHorizontal: 12,
670
+ },
671
+ shadowBox: {
672
+ backgroundColor: 'white',
673
+ borderRadius: 24,
674
+ shadowColor: 'black',
675
+ shadowOpacity: 0.15,
676
+ shadowOffset: {
677
+ width: 1,
678
+ height: 4,
679
+ },
680
+ shadowRadius: 12,
681
+ padding: 24,
682
+ marginBottom: 24,
683
+ },
684
+ listItem: {
685
+ display: 'flex',
686
+ flexDirection: 'row',
687
+ alignItems: 'center',
688
+ },
689
+ listItemTextContainer: {
690
+ marginLeft: 12,
691
+ flex: 1,
692
+ },
693
+ appTitleText: {
694
+ paddingTop: 12,
695
+ fontWeight: '500',
696
+ },
697
+ hero: {
698
+ borderRadius: 12,
699
+ backgroundColor: '#143055',
700
+ padding: 36,
701
+ marginBottom: 24,
702
+ },
703
+ heroTitle: {
704
+ flex: 1,
705
+ flexDirection: 'row',
706
+ },
707
+ heroTitleText: {
708
+ color: '#ffffff',
709
+ marginLeft: 12,
710
+ },
711
+ heroText: {
712
+ color: '#ffffff',
713
+ marginVertical: 12,
714
+ },
715
+ whatsNextButton: {
716
+ backgroundColor: '#ffffff',
717
+ paddingVertical: 16,
718
+ borderRadius: 8,
719
+ width: '50%',
720
+ marginTop: 24,
721
+ },
722
+ learning: {
723
+ marginVertical: 12,
724
+ },
725
+ love: {
726
+ marginTop: 12,
727
+ justifyContent: 'center',
728
+ },
729
+ });
730
+
731
+ export default App;