diff --git a/assets/icon/bronze.png b/assets/icon/bronze.png
new file mode 100644
index 0000000..3011601
Binary files /dev/null and b/assets/icon/bronze.png differ
diff --git a/assets/icon/diamond.png b/assets/icon/diamond.png
new file mode 100644
index 0000000..382d3fe
Binary files /dev/null and b/assets/icon/diamond.png differ
diff --git a/assets/icon/gold.png b/assets/icon/gold.png
new file mode 100644
index 0000000..3efa24c
Binary files /dev/null and b/assets/icon/gold.png differ
diff --git a/assets/icon/profile.png b/assets/icon/profile.png
new file mode 100644
index 0000000..258c3d6
Binary files /dev/null and b/assets/icon/profile.png differ
diff --git a/assets/icon/silver.png b/assets/icon/silver.png
new file mode 100644
index 0000000..40f186e
Binary files /dev/null and b/assets/icon/silver.png differ
diff --git a/assets/onboarding/onboarding1.png b/assets/onboarding/onboarding1.png
new file mode 100644
index 0000000..cfbbcdc
Binary files /dev/null and b/assets/onboarding/onboarding1.png differ
diff --git a/assets/onboarding/onboarding2.png b/assets/onboarding/onboarding2.png
new file mode 100644
index 0000000..82d8b43
Binary files /dev/null and b/assets/onboarding/onboarding2.png differ
diff --git a/assets/onboarding/onboarding3.png b/assets/onboarding/onboarding3.png
new file mode 100644
index 0000000..2bc02c6
Binary files /dev/null and b/assets/onboarding/onboarding3.png differ
diff --git a/assets/onboarding/onboarding4.png b/assets/onboarding/onboarding4.png
new file mode 100644
index 0000000..e19489a
Binary files /dev/null and b/assets/onboarding/onboarding4.png differ
diff --git a/babel.config.js b/babel.config.js
index e0dcf18..f48d170 100644
--- a/babel.config.js
+++ b/babel.config.js
@@ -35,6 +35,7 @@ module.exports = function (api) {
},
},
],
+ "react-native-reanimated/plugin",
],
}
}
diff --git a/components/flashcard/FlashcardDetails.js b/components/flashcard/FlashcardDetails.js
new file mode 100644
index 0000000..56e30b1
--- /dev/null
+++ b/components/flashcard/FlashcardDetails.js
@@ -0,0 +1,84 @@
+import { StyleSheet, Text, View, TextInput } from "react-native"
+import { useState } from "react"
+import { IntoroButton } from "@components/common"
+const FlashcardDetails = ({ element, page, width }) => {
+ // TODO: add function to save notes dynamically
+ const [note, setNote] = useState("")
+ const [isEdit, setIsEdit] = useState(false)
+ const toggleMode = () => setIsEdit((previousState) => !previousState)
+ if (page === "1") {
+ return (
+
+
+ {element._character}
+
+
+ {element._reading}
+
+
+ Pronounciation
+
+
+ {element._extraNote}
+
+
+ Mnemonic
+
+
+ {element._mnemonic}
+
+
+ )
+ } else {
+ return (
+
+ Notes
+
+ {isEdit ? (
+
+ ) : (
+ {note}
+ )}
+
+
+
+
+ )
+ }
+}
+
+export default FlashcardDetails
+
+const styles = StyleSheet.create({
+ input: {
+ fontSize: 16,
+ minWidth: 250,
+ borderWidth: 1,
+ backgroundColor: "white",
+ padding: 10,
+ borderRadius: 10,
+ },
+})
diff --git a/components/flashcard/FlashcardIndicator.js b/components/flashcard/FlashcardIndicator.js
new file mode 100644
index 0000000..b92e7e6
--- /dev/null
+++ b/components/flashcard/FlashcardIndicator.js
@@ -0,0 +1,55 @@
+import { Animated, StyleSheet, View, Dimensions } from "react-native"
+const { width } = Dimensions.get("screen")
+
+const FlashcardIndicator = ({ scrollX }) => {
+ return (
+
+ {Array(2)
+ .fill(true)
+ .map((_, i) => {
+ const inputRange = [(i - 1) * width, i * width, (i + 1) * width]
+ const scale = scrollX.interpolate({
+ inputRange,
+ outputRange: [0.8, 1.4, 0.8],
+ extrapolate: "clamp",
+ })
+ const opacity = scrollX.interpolate({
+ inputRange,
+ outputRange: [0.3, 0.9, 0.3],
+ extrapolate: "clamp",
+ })
+ const backgroundColor = scrollX.interpolate({
+ inputRange,
+ outputRange: ["#333", "rgba(64, 123, 255, 1)", "#333"],
+ extrapolate: "clamp",
+ })
+ return (
+
+ )
+ })}
+
+ )
+}
+
+const styles = StyleSheet.create({
+ indicator: {
+ height: 8,
+ width: 8,
+ borderRadius: 5,
+ marginHorizontal: 5,
+ },
+})
+
+export default FlashcardIndicator
diff --git a/components/home/HomeTimetable.js b/components/home/HomeTimetable.js
new file mode 100644
index 0000000..41334f6
--- /dev/null
+++ b/components/home/HomeTimetable.js
@@ -0,0 +1,22 @@
+import { StyleSheet, Text, View } from "react-native"
+
+const HomeTimetable = () => {
+ return (
+
+ Hi
+
+ )
+}
+
+export default HomeTimetable
+
+const styles = StyleSheet.create({
+ homeTimetableContainer: {
+ borderRadius: 30,
+ justifyContent: "center",
+ alignItems: "center",
+ backgroundColor: "#D9D9D9",
+ width: "90%",
+ height: 260,
+ },
+})
diff --git a/components/home/IntoroProgress.js b/components/home/IntoroProgress.js
new file mode 100644
index 0000000..fded377
--- /dev/null
+++ b/components/home/IntoroProgress.js
@@ -0,0 +1,22 @@
+import CircularProgress from "react-native-circular-progress-indicator"
+
+const IntoroProgress = ({ value, text }) => {
+ return (
+
+ )
+}
+
+export default IntoroProgress
diff --git a/components/home/TierBadge.js b/components/home/TierBadge.js
new file mode 100644
index 0000000..a0a6750
--- /dev/null
+++ b/components/home/TierBadge.js
@@ -0,0 +1,56 @@
+import { StyleSheet, Text, View, Image } from "react-native"
+import bronzeLogo from "@assets/icon/bronze.png"
+import silverLogo from "@assets/icon/silver.png"
+import goldLogo from "@assets/icon/gold.png"
+import diamondLogo from "@assets/icon/diamond.png"
+
+const TierBadge = () => {
+ return (
+
+
+
+ 12
+
+
+
+ 2
+
+
+
+ 20
+
+
+
+ 1
+
+
+ )
+}
+
+export default TierBadge
+
+const styles = StyleSheet.create({
+ tierContainer: {
+ justifyContent: "space-between",
+ flexDirection: "row",
+ },
+ tierImageWrapper: {
+ height: 90,
+ width: 90,
+ overflow: "hidden",
+ },
+ tierImage: {
+ width: "100%",
+ height: "100%",
+ resizeMode: "cover",
+ },
+ tierImageContent: {
+ position: "absolute",
+ color: "#D4AD65",
+ fontSize: 20,
+ fontWeight: "600",
+ textAlign: "center",
+ width: "100%",
+ top: 14,
+ },
+})
diff --git a/components/kanaChart/KanaGrid.js b/components/kanaChart/KanaGrid.js
index ecd76a5..eca3b6e 100644
--- a/components/kanaChart/KanaGrid.js
+++ b/components/kanaChart/KanaGrid.js
@@ -3,11 +3,12 @@ import KanaItem from "./KanaItem"
const { width } = Dimensions.get("screen")
-export default function KanaGrid({ kana }) {
+export default function KanaGrid({ navigation, kana }) {
+ console.log(kana)
return (
{kana.map((element, index) => (
-
+
))}
)
@@ -18,10 +19,10 @@ const styles = StyleSheet.create({
gridContainer: {
marginLeft: -8,
marginTop: 20,
+ marginBottom: 30,
flexDirection: "row",
flexWrap: "wrap",
width: chartContainerWidth,
- marginBottom: 30,
alignItems: "center",
justifyContent: "center",
},
diff --git a/components/kanaChart/KanaItem.js b/components/kanaChart/KanaItem.js
index a066834..3f18fbb 100644
--- a/components/kanaChart/KanaItem.js
+++ b/components/kanaChart/KanaItem.js
@@ -1,10 +1,16 @@
-import { Dimensions, StyleSheet, View, Text } from "react-native"
+import {
+ Dimensions,
+ StyleSheet,
+ View,
+ Text,
+ TouchableOpacity,
+} from "react-native"
import Colors from "@types/colors.js"
import Types from "@types/types"
const { width } = Dimensions.get("screen")
-export default function KanaItem({ element }) {
+export default function KanaItem({ navigation, element }) {
let boxShadow = generateBoxShadowStyle(
-2,
4,
@@ -14,19 +20,28 @@ export default function KanaItem({ element }) {
4,
Colors.SHADOW_COLOR_ANDROID
)
+
+ const handleClick = () => {
+ navigation.navigate("Flashcard", {
+ element: element,
+ })
+ }
+
return (
-
- {element.character}
- {element.reading}
-
+
+
+ {element.character}
+ {element.reading}
+
+
)
}
@@ -39,8 +54,7 @@ const styles = StyleSheet.create({
justifyContent: "center",
alignItems: "center",
marginLeft: 8,
- marginTop: 8,
- paddingVertical: 14,
+ marginTop: 10,
borderRadius: 12,
},
character: {
diff --git a/components/kanaChart/KanaLevel.js b/components/kanaChart/KanaLevel.js
index 98909a3..ea6f37e 100644
--- a/components/kanaChart/KanaLevel.js
+++ b/components/kanaChart/KanaLevel.js
@@ -1,13 +1,13 @@
import { StyleSheet, Text, View } from "react-native"
import KanaGrid from "./KanaGrid"
-export default function KanaLevel({ type, kana, level }) {
+export default function KanaLevel({ navigation, type, kana, level }) {
return (
{`Level ${level}`}
-
+
)
}
diff --git a/components/onboarding/OnboardingItem.js b/components/onboarding/OnboardingItem.js
index a6582a9..d6c4498 100644
--- a/components/onboarding/OnboardingItem.js
+++ b/components/onboarding/OnboardingItem.js
@@ -8,7 +8,7 @@ const OnboardingItem = ({ item }) => {
{
+ const { element } = route.params
+ const DATA = [
+ {
+ page: "1",
+ },
+ {
+ page: "2",
+ },
+ ]
+ const scrollX = useRef(new Animated.Value(0)).current
+ return (
+
+ navigation.goBack()}>
+
+
+
+
+
+
+ {element._character}
+
+
+ {element._character}
+
+
+
+
+ item.key}
+ renderItem={({ item }) => {
+ return (
+
+ )
+ }}
+ />
+
+
+
+
+ )
+}
+
+export default Flashcard
+
+const styles = StyleSheet.create({
+ topContainer: {
+ backgroundColor: "#7B9EE3",
+ width: CONTAINER_WIDTH,
+ height: 190,
+ borderRadius: 15,
+ alignItems: "center",
+ justifyContent: "space-evenly",
+ flexDirection: "row",
+ marginVertical: 20,
+ },
+ characterContainer: {
+ backgroundColor: "#BDCDEC",
+ width: 130,
+ height: 140,
+ borderRadius: 20,
+ alignItems: "center",
+ justifyContent: "center",
+ },
+ character: {
+ fontSize: 80,
+ fontWeight: "700",
+ },
+ bottomContainer: {
+ backgroundColor: "#D4AD6573",
+ width: CONTAINER_WIDTH,
+ height: 330,
+ borderRadius: 15,
+ alignItems: "center",
+ justifyContent: "center",
+ paddingHorizontal: 20,
+ paddingVertical: 10,
+ },
+})
diff --git a/screens/Home.js b/screens/Home.js
index 4143f45..d64203f 100644
--- a/screens/Home.js
+++ b/screens/Home.js
@@ -1,14 +1,68 @@
-import { StyleSheet, Text, View } from "react-native"
-import React from "react"
+import { StyleSheet, Text, View, Image } from "react-native"
+import intoroLogo from "@assets/logo/IntoroLogo.png"
+import profile from "@assets/icon/profile.png"
+import IntoroProgress from "@components/home/IntoroProgress"
+import TierBadge from "@components/home/TierBadge"
+import HomeTimetable from "@components/home/HomeTimetable"
+import { IntoroButton } from "@components/common"
-const Home = () => {
+const Home = ({ navigation }) => {
return (
-
- Home
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ navigation.navigate("LearningPad")}
+ text={"Learning Pad"}
+ buttonStyle={{ borderRadius: 20, paddingVertical: 10 }}
+ fontStyle={{ fontSize: 18, fontWeight: "500" }}
+ />
+
+
)
}
export default Home
-const styles = StyleSheet.create({})
+const styles = StyleSheet.create({
+ container: {
+ flex: 1,
+ backgroundColor: "#fff",
+ paddingHorizontal: 25,
+ paddingVertical: 18,
+ },
+ logo: {
+ flex: 1,
+ flexDirection: "row",
+ justifyContent: "space-between",
+ alignItems: "center",
+ },
+ bodyContainer: {
+ flex: 6,
+ alignItems: "center",
+ justifyContent: "space-between",
+ },
+ progressBarContainer: {
+ flexDirection: "row",
+ width: "100%",
+ justifyContent: "space-evenly",
+ },
+})
diff --git a/screens/HomeTab.js b/screens/HomeTab.js
new file mode 100644
index 0000000..41949a8
--- /dev/null
+++ b/screens/HomeTab.js
@@ -0,0 +1,28 @@
+import { StyleSheet, Text, View } from "react-native"
+
+import { createNativeStackNavigator } from "@react-navigation/native-stack"
+import Home from "@screens/Home"
+import LearningPad from "@screens/LearningPad"
+
+const Stack = createNativeStackNavigator()
+
+const HomeTab = () => {
+ return (
+
+
+
+
+ )
+}
+
+export default HomeTab
+
+const styles = StyleSheet.create({})
diff --git a/screens/IntoroTabs.js b/screens/IntoroTabs.js
index a09d391..f0c8007 100644
--- a/screens/IntoroTabs.js
+++ b/screens/IntoroTabs.js
@@ -1,10 +1,9 @@
import { createMaterialBottomTabNavigator } from "@react-navigation/material-bottom-tabs"
-import KanaChart from "@screens/KanaChart"
import MaterialCommunityIcons from "react-native-vector-icons/MaterialCommunityIcons"
import Foundation from "react-native-vector-icons/Foundation"
import Timetable from "@screens/Timetable"
-import Home from "@screens/Home"
-import LearningPad from "./LearningPad"
+import HomeTab from "./HomeTab"
+import KanaTab from "./KanaTab"
const IntoroTabs = () => {
const Tab = createMaterialBottomTabNavigator()
@@ -26,8 +25,8 @@ const IntoroTabs = () => {
}}
/>
(
@@ -36,18 +35,8 @@ const IntoroTabs = () => {
}}
/>
(
-
- ),
- }}
- />
- (
diff --git a/screens/KanaChart.js b/screens/KanaChart.js
index 9eae54d..1ccbae1 100644
--- a/screens/KanaChart.js
+++ b/screens/KanaChart.js
@@ -10,7 +10,7 @@ import { getAllKana } from "@api/firestore"
import Kana from "@types/types.js"
-export default function KanaChart() {
+export default function KanaChart({ navigation }) {
const [type, setType] = useState(Kana.HIRAGANA)
const [currentKana, setCurrentKana] = useState({})
@@ -46,6 +46,7 @@ export default function KanaChart() {
{Object.keys(currentKana).map((element) => {
return (
)}
+
{/* Switch Button -> Switch between Hiragana and Katakana */}
{
+ return (
+
+
+
+
+ )
+}
+
+export default KanaTab
+
+const styles = StyleSheet.create({})
diff --git a/screens/Onboarding.js b/screens/Onboarding.js
index 86c9177..929de6b 100644
--- a/screens/Onboarding.js
+++ b/screens/Onboarding.js
@@ -7,36 +7,38 @@ import OnboardingItem from "@components/onboarding/OnboardingItem"
import { StatusBar } from "expo-status-bar"
import { useRef } from "react"
+// import image for onboarding screen
+import onboarding1 from "@assets/onboarding/onboarding1.png"
+import onboarding2 from "@assets/onboarding/onboarding2.png"
+import onboarding3 from "@assets/onboarding/onboarding3.png"
+import onboarding4 from "@assets/onboarding/onboarding4.png"
+
const { width } = Dimensions.get("screen")
const DATA = [
{
key: "1",
- title: "Hiragana & Katakana Made Easy",
- description:
- "Lorem ipsum dolor sit amet consectetur adipisicing elit. Praesentium, ipsam.",
- image: "https://cdn-icons-png.flaticon.com/512/2907/2907979.png",
+ title: "Hiragana & Katakana",
+ description: "On-the go!",
+ image: onboarding1,
},
{
key: "2",
- title: "Interactive Learning",
- description:
- "Lorem ipsum dolor sit amet consectetur adipisicing elit. Praesentium, ipsam.",
- image: "https://cdn-icons-png.flaticon.com/512/2907/2907979.png",
+ title: "Effective Learning",
+ description: "Spaced Repetitions and Mnemonics",
+ image: onboarding2,
},
{
key: "3",
title: "Plan Your Learning",
- description:
- "Lorem ipsum dolor sit amet consectetur adipisicing elit. Praesentium, ipsam.",
- image: "https://cdn-icons-png.flaticon.com/512/2907/2907979.png",
+ description: "With daily schedules",
+ image: onboarding3,
},
{
key: "4",
title: "Track Your Progress",
- description:
- "Lorem ipsum dolor sit amet consectetur adipisicing elit. Praesentium, ipsam.",
- image: "https://cdn-icons-png.flaticon.com/512/2907/2907979.png",
+ description: "With tracking feature",
+ image: onboarding4,
},
]
diff --git a/yarn.lock b/yarn.lock
index 85409f6..1da8579 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -99,6 +99,20 @@
"@babel/helper-skip-transparent-expression-wrappers" "^7.20.0"
"@babel/helper-split-export-declaration" "^7.18.6"
+"@babel/helper-create-class-features-plugin@^7.21.0":
+ version "7.21.0"
+ resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.21.0.tgz#64f49ecb0020532f19b1d014b03bccaa1ab85fb9"
+ integrity sha512-Q8wNiMIdwsv5la5SPxNYzzkPnjgC0Sy0i7jLkVOCdllu/xcVNkr3TeZzbHBJrj+XXRqzX5uCyCoV9eu6xUG7KQ==
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.18.6"
+ "@babel/helper-environment-visitor" "^7.18.9"
+ "@babel/helper-function-name" "^7.21.0"
+ "@babel/helper-member-expression-to-functions" "^7.21.0"
+ "@babel/helper-optimise-call-expression" "^7.18.6"
+ "@babel/helper-replace-supers" "^7.20.7"
+ "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0"
+ "@babel/helper-split-export-declaration" "^7.18.6"
+
"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.20.5":
version "7.20.5"
resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.20.5.tgz#5ea79b59962a09ec2acf20a963a01ab4d076ccca"
@@ -139,6 +153,14 @@
"@babel/template" "^7.18.10"
"@babel/types" "^7.19.0"
+"@babel/helper-function-name@^7.21.0":
+ version "7.21.0"
+ resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz#d552829b10ea9f120969304023cd0645fa00b1b4"
+ integrity sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==
+ dependencies:
+ "@babel/template" "^7.20.7"
+ "@babel/types" "^7.21.0"
+
"@babel/helper-hoist-variables@^7.18.6":
version "7.18.6"
resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz#d4d2c8fb4baeaa5c68b99cc8245c56554f926678"
@@ -153,6 +175,13 @@
dependencies:
"@babel/types" "^7.20.7"
+"@babel/helper-member-expression-to-functions@^7.21.0":
+ version "7.21.0"
+ resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.21.0.tgz#319c6a940431a133897148515877d2f3269c3ba5"
+ integrity sha512-Muu8cdZwNN6mRRNG6lAYErJ5X3bRevgYR2O8wN0yn7jJSnGDu6eG59RfT29JHxGUovyfrh6Pj0XzmR7drNVL3Q==
+ dependencies:
+ "@babel/types" "^7.21.0"
+
"@babel/helper-module-imports@^7.18.6":
version "7.18.6"
resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz#1e3ebdbbd08aad1437b428c50204db13c5a3ca6e"
@@ -244,6 +273,11 @@
resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz#bf0d2b5a509b1f336099e4ff36e1a63aa5db4db8"
integrity sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==
+"@babel/helper-validator-option@^7.21.0":
+ version "7.21.0"
+ resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz#8224c7e13ace4bafdc4004da2cf064ef42673180"
+ integrity sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==
+
"@babel/helper-wrap-function@^7.18.9":
version "7.20.5"
resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz#75e2d84d499a0ab3b31c33bcfe59d6b8a45f62e3"
@@ -752,6 +786,13 @@
dependencies:
"@babel/helper-plugin-utils" "^7.18.6"
+"@babel/plugin-transform-object-assign@^7.16.7":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-assign/-/plugin-transform-object-assign-7.18.6.tgz#7830b4b6f83e1374a5afb9f6111bcfaea872cdd2"
+ integrity sha512-mQisZ3JfqWh2gVXvfqYCAAyRs6+7oev+myBsTwW5RnPhYXOTuCEw2oe3YgxlXMViXUS53lG8koulI7mJ+8JE+A==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.6"
+
"@babel/plugin-transform-object-super@^7.0.0", "@babel/plugin-transform-object-super@^7.18.6":
version "7.18.6"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz#fb3c6ccdd15939b6ff7939944b51971ddc35912c"
@@ -878,6 +919,15 @@
"@babel/helper-plugin-utils" "^7.20.2"
"@babel/plugin-syntax-typescript" "^7.20.0"
+"@babel/plugin-transform-typescript@^7.21.0":
+ version "7.21.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.21.0.tgz#f0956a153679e3b377ae5b7f0143427151e4c848"
+ integrity sha512-xo///XTPp3mDzTtrqXoBlK9eiAYW3wv9JXglcn/u1bi60RW11dEUxIgA8cbnDhutS1zacjMRmAwxE0gMklLnZg==
+ dependencies:
+ "@babel/helper-create-class-features-plugin" "^7.21.0"
+ "@babel/helper-plugin-utils" "^7.20.2"
+ "@babel/plugin-syntax-typescript" "^7.20.0"
+
"@babel/plugin-transform-unicode-escapes@^7.18.10":
version "7.18.10"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz#1ecfb0eda83d09bbcb77c09970c2dd55832aa246"
@@ -1003,6 +1053,15 @@
"@babel/helper-validator-option" "^7.18.6"
"@babel/plugin-transform-typescript" "^7.18.6"
+"@babel/preset-typescript@^7.16.7":
+ version "7.21.0"
+ resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.21.0.tgz#bcbbca513e8213691fe5d4b23d9251e01f00ebff"
+ integrity sha512-myc9mpoVA5m1rF8K8DgLEatOYFDpwC+RkMkjZ0Du6uI62YvDe8uxIEYVs/VCdSJ097nlALiU/yBC7//3nI+hNg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.20.2"
+ "@babel/helper-validator-option" "^7.21.0"
+ "@babel/plugin-transform-typescript" "^7.21.0"
+
"@babel/register@^7.13.16":
version "7.18.9"
resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.18.9.tgz#1888b24bc28d5cc41c412feb015e9ff6b96e439c"
@@ -1055,6 +1114,15 @@
"@babel/helper-validator-identifier" "^7.19.1"
to-fast-properties "^2.0.0"
+"@babel/types@^7.21.0":
+ version "7.21.2"
+ resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.21.2.tgz#92246f6e00f91755893c2876ad653db70c8310d1"
+ integrity sha512-3wRZSs7jiFaB8AjxiiD+VqN5DTG2iRvJGQ+qYFrs/654lg6kGTQWIOFjlBo5RaXuAZjBmP3+OQH4dmhqiiyYxw==
+ dependencies:
+ "@babel/helper-string-parser" "^7.19.4"
+ "@babel/helper-validator-identifier" "^7.19.1"
+ to-fast-properties "^2.0.0"
+
"@callstack/react-theme-provider@^3.0.8":
version "3.0.8"
resolved "https://registry.yarnpkg.com/@callstack/react-theme-provider/-/react-theme-provider-3.0.8.tgz#d0d7ac71e422133c5f7b78f4c4aa1bc57f156f50"
@@ -2275,6 +2343,11 @@
resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.25.21.tgz#763b05a4b472c93a8db29b2c3e359d55b29ce272"
integrity sha512-gFukHN4t8K4+wVC+ECqeqwzBDeFeTzBXroBTqE6vcWrQGbEUpHO7LYdG0f4xnvYq4VOEwITSlHlp0JBAIFMS/g==
+"@types/invariant@^2.2.35":
+ version "2.2.35"
+ resolved "https://registry.yarnpkg.com/@types/invariant/-/invariant-2.2.35.tgz#cd3ebf581a6557452735688d8daba6cf0bd5a3be"
+ integrity sha512-DxX1V9P8zdJPYQat1gHyY0xj3efl8gnMVjiM9iCY6y27lj+PoQWkgjt8jDqmovPqULkKVpKRg8J36iQiA+EtEg==
+
"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0":
version "2.0.4"
resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz#8467d4b3c087805d63580480890791277ce35c44"
@@ -2365,6 +2438,11 @@ abort-controller@^3.0.0:
dependencies:
event-target-shim "^5.0.0"
+abs-svg-path@^0.1.1:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/abs-svg-path/-/abs-svg-path-0.1.1.tgz#df601c8e8d2ba10d4a76d625e236a9a39c2723bf"
+ integrity sha512-d8XPSGjfyzlXC3Xx891DJRyZfqk5JU0BJrDQcsWomFIV1/BIzPW5HDH5iDdWpqWaav0YVIEzT1RHTwWr0FFshA==
+
absolute-path@^0.0.0:
version "0.0.0"
resolved "https://registry.yarnpkg.com/absolute-path/-/absolute-path-0.0.0.tgz#a78762fbdadfb5297be99b15d35a785b2f095bf7"
@@ -2733,6 +2811,11 @@ body-parser@^1.20.1:
type-is "~1.6.18"
unpipe "1.0.0"
+boolbase@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e"
+ integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==
+
bplist-creator@0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/bplist-creator/-/bplist-creator-0.1.0.tgz#018a2d1b587f769e379ef5519103730f8963ba1e"
@@ -3277,6 +3360,30 @@ crypto-random-string@^2.0.0:
resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5"
integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==
+css-select@^5.1.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/css-select/-/css-select-5.1.0.tgz#b8ebd6554c3637ccc76688804ad3f6a6fdaea8a6"
+ integrity sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==
+ dependencies:
+ boolbase "^1.0.0"
+ css-what "^6.1.0"
+ domhandler "^5.0.2"
+ domutils "^3.0.1"
+ nth-check "^2.0.1"
+
+css-tree@^1.1.3:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d"
+ integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==
+ dependencies:
+ mdn-data "2.0.14"
+ source-map "^0.6.1"
+
+css-what@^6.1.0:
+ version "6.1.0"
+ resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4"
+ integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==
+
dag-map@~1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/dag-map/-/dag-map-1.0.2.tgz#e8379f041000ed561fc515475c1ed2c85eece8d7"
@@ -3411,11 +3518,41 @@ dir-glob@^3.0.1:
dependencies:
path-type "^4.0.0"
+dom-serializer@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-2.0.0.tgz#e41b802e1eedf9f6cae183ce5e622d789d7d8e53"
+ integrity sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==
+ dependencies:
+ domelementtype "^2.3.0"
+ domhandler "^5.0.2"
+ entities "^4.2.0"
+
dom-walk@^0.1.0:
version "0.1.2"
resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.2.tgz#0c548bef048f4d1f2a97249002236060daa3fd84"
integrity sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==
+domelementtype@^2.3.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d"
+ integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==
+
+domhandler@^5.0.1, domhandler@^5.0.2:
+ version "5.0.3"
+ resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-5.0.3.tgz#cc385f7f751f1d1fc650c21374804254538c7d31"
+ integrity sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==
+ dependencies:
+ domelementtype "^2.3.0"
+
+domutils@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/domutils/-/domutils-3.0.1.tgz#696b3875238338cb186b6c0612bd4901c89a4f1c"
+ integrity sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==
+ dependencies:
+ dom-serializer "^2.0.0"
+ domelementtype "^2.3.0"
+ domhandler "^5.0.1"
+
dotenv@^16.0.3:
version "16.0.3"
resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.0.3.tgz#115aec42bac5053db3c456db30cc243a5a836a07"
@@ -3458,6 +3595,11 @@ end-of-stream@^1.1.0:
dependencies:
once "^1.4.0"
+entities@^4.2.0:
+ version "4.4.0"
+ resolved "https://registry.yarnpkg.com/entities/-/entities-4.4.0.tgz#97bdaba170339446495e653cfd2db78962900174"
+ integrity sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==
+
env-editor@^0.4.1:
version "0.4.2"
resolved "https://registry.yarnpkg.com/env-editor/-/env-editor-0.4.2.tgz#4e76568d0bd8f5c2b6d314a9412c8fe9aa3ae861"
@@ -4902,6 +5044,11 @@ lodash.debounce@^4.0.8:
resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af"
integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==
+lodash.isequal@^4.5.0:
+ version "4.5.0"
+ resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0"
+ integrity sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==
+
lodash.throttle@^4.1.1:
version "4.1.1"
resolved "https://registry.yarnpkg.com/lodash.throttle/-/lodash.throttle-4.1.1.tgz#c23e91b710242ac70c37f1e1cda9274cc39bf2f4"
@@ -5034,6 +5181,11 @@ md5hex@^1.0.0:
resolved "https://registry.yarnpkg.com/md5hex/-/md5hex-1.0.0.tgz#ed74b477a2ee9369f75efee2f08d5915e52a42e8"
integrity sha512-c2YOUbp33+6thdCUi34xIyOU/a7bvGKj/3DB1iaPMTuPHf/Q2d5s4sn1FaCOO43XkXggnb08y5W2PU8UNYNLKQ==
+mdn-data@2.0.14:
+ version "2.0.14"
+ resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50"
+ integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==
+
media-typer@0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"
@@ -5662,6 +5814,13 @@ normalize-path@^3.0.0:
resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
+normalize-svg-path@^1.0.1:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/normalize-svg-path/-/normalize-svg-path-1.1.0.tgz#0e614eca23c39f0cffe821d6be6cd17e569a766c"
+ integrity sha512-r9KHKG2UUeB5LoTouwDzBy2VxXlHsiM6fyLQvnJa0S5hrhzqElH/CH7TUGhT1fVvIYBIKf3OpY4YJ4CK+iaqHg==
+ dependencies:
+ svg-arc-to-cubic-bezier "^3.0.0"
+
npm-package-arg@^7.0.0:
version "7.0.0"
resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-7.0.0.tgz#52cdf08b491c0c59df687c4c925a89102ef794a5"
@@ -5686,6 +5845,13 @@ npm-run-path@^5.1.0:
dependencies:
path-key "^4.0.0"
+nth-check@^2.0.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d"
+ integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==
+ dependencies:
+ boolbase "^1.0.0"
+
nullthrows@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/nullthrows/-/nullthrows-1.1.1.tgz#7818258843856ae971eae4208ad7d7eb19a431b1"
@@ -5904,6 +6070,11 @@ parse-png@^2.1.0:
dependencies:
pngjs "^3.3.0"
+parse-svg-path@^0.1.2:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/parse-svg-path/-/parse-svg-path-0.1.2.tgz#7a7ec0d1eb06fa5325c7d3e009b859a09b5d49eb"
+ integrity sha512-JyPSBnkTJ0AI8GGJLfMXvKq42cj5c006fnLz6fXy6zfoVjJizi8BNTpu8on8ziI1cKy9d9DGNuY17Ce7wuejpQ==
+
parseurl@~1.3.3:
version "1.3.3"
resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4"
@@ -6225,6 +6396,13 @@ react-is@^17.0.1:
resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0"
integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==
+react-native-circular-progress-indicator@^4.4.2:
+ version "4.4.2"
+ resolved "https://registry.yarnpkg.com/react-native-circular-progress-indicator/-/react-native-circular-progress-indicator-4.4.2.tgz#5475d045950e6fcc622e54fb63863b274790fb8e"
+ integrity sha512-BlgshzIIIk0TP/CZY+5oyRsHl2Sb2l6cK5tzfmrVETfn6pN8dhOKrV0i3Z6i0SM8wRgncdUUSRBpCPAexh7JoQ==
+ dependencies:
+ react-native-redash "*"
+
react-native-codegen@^0.70.6:
version "0.70.6"
resolved "https://registry.yarnpkg.com/react-native-codegen/-/react-native-codegen-0.70.6.tgz#2ce17d1faad02ad4562345f8ee7cbe6397eda5cb"
@@ -6256,6 +6434,28 @@ react-native-paper@^5.2.0:
color "^3.1.2"
use-event-callback "^0.1.0"
+react-native-reanimated@~2.12.0:
+ version "2.12.0"
+ resolved "https://registry.yarnpkg.com/react-native-reanimated/-/react-native-reanimated-2.12.0.tgz#5821eecfb1769b1617a67a2d4dec12fdeedb2b6e"
+ integrity sha512-nrlPyw+Hx9u4iJhZk9PoTvDo/QmVAd+bo7OK9Tv3hveNEF9++5oig/g3Uv9V93shy9avTYGsUprUvAEt/xdzeQ==
+ dependencies:
+ "@babel/plugin-transform-object-assign" "^7.16.7"
+ "@babel/preset-typescript" "^7.16.7"
+ "@types/invariant" "^2.2.35"
+ invariant "^2.2.4"
+ lodash.isequal "^4.5.0"
+ setimmediate "^1.0.5"
+ string-hash-64 "^1.0.3"
+
+react-native-redash@*:
+ version "18.1.0"
+ resolved "https://registry.yarnpkg.com/react-native-redash/-/react-native-redash-18.1.0.tgz#ebebace19d0d2ed877cb6836b8c824b49354eb93"
+ integrity sha512-bdCFl/ZB7Rf2raIlU6SLV+Dc/rL6UXsQNjEVwTGBukHMeSKp1zs4zVtWaGimbN8P22N4qYvb9Jmw/K94ZWYG0Q==
+ dependencies:
+ abs-svg-path "^0.1.1"
+ normalize-svg-path "^1.0.1"
+ parse-svg-path "^0.1.2"
+
react-native-safe-area-context@4.4.1:
version "4.4.1"
resolved "https://registry.yarnpkg.com/react-native-safe-area-context/-/react-native-safe-area-context-4.4.1.tgz#239c60b8a9a80eac70a38a822b04c0f1d15ffc01"
@@ -6269,6 +6469,14 @@ react-native-screens@~3.18.0:
react-freeze "^1.0.0"
warn-once "^0.1.0"
+react-native-svg@13.4.0:
+ version "13.4.0"
+ resolved "https://registry.yarnpkg.com/react-native-svg/-/react-native-svg-13.4.0.tgz#82399ba0956c454144618aa581e2d748dd3f010a"
+ integrity sha512-B3TwK+H0+JuRhYPzF21AgqMt4fjhCwDZ9QUtwNstT5XcslJBXC0FoTkdZo8IEb1Sv4suSqhZwlAY6lwOv3tHag==
+ dependencies:
+ css-select "^5.1.0"
+ css-tree "^1.1.3"
+
react-native-vector-icons@^9.2.0:
version "9.2.0"
resolved "https://registry.yarnpkg.com/react-native-vector-icons/-/react-native-vector-icons-9.2.0.tgz#3c0c82e95defd274d56363cbe8fead8d53167ebd"
@@ -6888,7 +7096,7 @@ source-map@^0.5.6:
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==
-source-map@^0.6.0, source-map@~0.6.1:
+source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1:
version "0.6.1"
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
@@ -6974,6 +7182,11 @@ string-argv@^0.3.1:
resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.1.tgz#95e2fbec0427ae19184935f816d74aaa4c5c19da"
integrity sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==
+string-hash-64@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/string-hash-64/-/string-hash-64-1.0.3.tgz#0deb56df58678640db5c479ccbbb597aaa0de322"
+ integrity sha512-D5OKWKvDhyVWWn2x5Y9b+37NUllks34q1dCDhk/vYcso9fmhs+Tl3KR/gE4v5UNj2UA35cnX4KdVVGkG1deKqw==
+
string-width@^4.1.0, string-width@^4.2.0:
version "4.2.3"
resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
@@ -7108,6 +7321,11 @@ supports-preserve-symlinks-flag@^1.0.0:
resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09"
integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
+svg-arc-to-cubic-bezier@^3.0.0:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/svg-arc-to-cubic-bezier/-/svg-arc-to-cubic-bezier-3.2.0.tgz#390c450035ae1c4a0104d90650304c3bc814abe6"
+ integrity sha512-djbJ/vZKZO+gPoSDThGNpKDO+o+bAeA4XQKovvkNCqnIS2t+S4qnLAGQhyyrulhCFRl1WWzAp0wUDV8PpTVU3g==
+
tar@^6.0.2, tar@^6.0.5:
version "6.1.13"
resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.13.tgz#46e22529000f612180601a6fe0680e7da508847b"