├── .env.example ├── .czrc ├── tests ├── setupTests.ts └── unit │ └── components │ ├── skeletons │ └── pokemon-card.test.tsx │ ├── pokemon-card │ └── pokemon-card.test.tsx │ └── pokemon-list │ └── pokemon-list.test.tsx ├── .commitlintrc.json ├── src ├── components │ ├── pokemon-card │ │ ├── index.ts │ │ └── pokemon-card.tsx │ ├── pokemon-list │ │ ├── index.ts │ │ └── pokemon-list.tsx │ └── skeletons │ │ ├── index.ts │ │ └── pokemon-card.tsx ├── styles │ └── globals.css ├── types │ └── pokemon.ts ├── lib │ └── apollo.ts ├── pages │ ├── _document.tsx │ ├── _app.tsx │ └── pokemons.tsx └── assets │ └── pokemons │ ├── 132.svg │ ├── 100.svg │ ├── 101.svg │ ├── 43.svg │ ├── 11.svg │ ├── 137.svg │ ├── 69.svg │ ├── 70.svg │ ├── 54.svg │ ├── 113.svg │ ├── 14.svg │ ├── 147.svg │ ├── 50.svg │ ├── 61.svg │ ├── 81.svg │ ├── 60.svg │ ├── 116.svg │ ├── 39.svg │ ├── 120.svg │ ├── 151.svg │ └── 40.svg ├── .husky ├── pre-push ├── pre-commit └── commit-msg ├── .prettierrc.json ├── public └── screenshot-1.png ├── .lintstagedrc.json ├── postcss.config.js ├── .prettierignore ├── .eslintignore ├── next-env.d.ts ├── tailwind.config.js ├── next.config.mjs ├── docker-compose.yml ├── .editorconfig ├── .gitignore ├── README.md ├── .eslintrc.json ├── jest.config.ts ├── tsconfig.json ├── .github └── workflows │ └── main.yml ├── LICENSE └── package.json /.env.example: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.czrc: -------------------------------------------------------------------------------- 1 | { 2 | "path": "cz-conventional-changelog" 3 | } -------------------------------------------------------------------------------- /tests/setupTests.ts: -------------------------------------------------------------------------------- 1 | import '@testing-library/jest-dom/extend-expect' 2 | -------------------------------------------------------------------------------- /.commitlintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["@commitlint/config-conventional"] 3 | } -------------------------------------------------------------------------------- /src/components/pokemon-card/index.ts: -------------------------------------------------------------------------------- 1 | export { PokemonCard } from './pokemon-card' 2 | -------------------------------------------------------------------------------- /src/components/pokemon-list/index.ts: -------------------------------------------------------------------------------- 1 | export { PokemonList } from './pokemon-list' 2 | -------------------------------------------------------------------------------- /src/components/skeletons/index.ts: -------------------------------------------------------------------------------- 1 | export { PokemonCardSkeleton } from './pokemon-card' 2 | -------------------------------------------------------------------------------- /.husky/pre-push: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | . "$(dirname -- "$0")/_/husky.sh" 3 | 4 | npm run test 5 | -------------------------------------------------------------------------------- /.husky/pre-commit: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | . "$(dirname -- "$0")/_/husky.sh" 3 | 4 | npx lint-staged 5 | -------------------------------------------------------------------------------- /.prettierrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "singleQuote": true, 3 | "semi": false, 4 | "trailingComma": "none" 5 | } -------------------------------------------------------------------------------- /public/screenshot-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/luas10c/poketruco-nextjs/HEAD/public/screenshot-1.png -------------------------------------------------------------------------------- /.lintstagedrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "*.t(s|sx)": [ 3 | "eslint --fix", 4 | "npm run test:staging" 5 | ] 6 | } -------------------------------------------------------------------------------- /postcss.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: { 3 | autoprefixer: {}, 4 | tailwindcss: {} 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /.husky/commit-msg: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | . "$(dirname -- "$0")/_/husky.sh" 3 | 4 | npx --no -- commitlint --edit "\${1}" 5 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | # node_modules 2 | node_modules 3 | 4 | # tests 5 | coverage 6 | 7 | # vscode files 8 | .vscode 9 | 10 | # next files 11 | .next -------------------------------------------------------------------------------- /src/styles/globals.css: -------------------------------------------------------------------------------- 1 | @tailwind base; 2 | @tailwind components; 3 | @tailwind utilities; 4 | 5 | html, 6 | body, 7 | #__next { 8 | min-height: 100vh; 9 | } 10 | -------------------------------------------------------------------------------- /src/types/pokemon.ts: -------------------------------------------------------------------------------- 1 | export interface IPokemon { 2 | id: number 3 | name: string 4 | type: 'fire' | 'grass/poison' 5 | attack: number 6 | health: number 7 | } 8 | -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- 1 | # node_modules 2 | node_modules 3 | 4 | # tests 5 | coverage 6 | 7 | # vscode files 8 | .vscode 9 | 10 | # next files 11 | .next 12 | 13 | # jest files 14 | jest.config.ts -------------------------------------------------------------------------------- /next-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | 4 | // NOTE: This file should not be edited 5 | // see https://nextjs.org/docs/basic-features/typescript for more information. 6 | -------------------------------------------------------------------------------- /src/lib/apollo.ts: -------------------------------------------------------------------------------- 1 | import { ApolloClient, InMemoryCache } from '@apollo/client' 2 | 3 | export const apollo = new ApolloClient({ 4 | uri: 'http://localhost:4000', 5 | cache: new InMemoryCache({ 6 | addTypename: false 7 | }) 8 | }) 9 | -------------------------------------------------------------------------------- /tailwind.config.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @type {import('tailwindcss').Config} 3 | */ 4 | module.exports = { 5 | content: ['src/components/**/*.tsx', 'src/pages/**/*.tsx'], 6 | theme: { 7 | extend: {} 8 | }, 9 | plugins: [] 10 | } 11 | -------------------------------------------------------------------------------- /next.config.mjs: -------------------------------------------------------------------------------- 1 | /** 2 | * @type {import('next').NextConfig} 3 | **/ 4 | export default { 5 | reactStrictMode: true, 6 | images: { 7 | domains: [] 8 | }, 9 | async redirects() { 10 | return [] 11 | }, 12 | output: 'standalone' 13 | } 14 | -------------------------------------------------------------------------------- /docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '3' 2 | services: 3 | nodejs: 4 | container_name: nodejs 5 | image: node:16-alpine 6 | working_dir: /usr/app 7 | volumes: 8 | - .:/usr/app 9 | ports: 10 | - 8000:3000 11 | restart: always 12 | command: npm run dev -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | # EditorConfig is awesome: https://EditorConfig.org 2 | 3 | # top-most EditorConfig file 4 | root = true 5 | 6 | [*] 7 | indent_style = space 8 | indent_size = 2 9 | end_of_line = lf 10 | charset = utf-8 11 | trim_trailing_whitespace = false 12 | insert_final_newline = false -------------------------------------------------------------------------------- /src/pages/_document.tsx: -------------------------------------------------------------------------------- 1 | import { Head, Html, Main, NextScript } from 'next/document' 2 | 3 | const Document = () => { 4 | return ( 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | ) 13 | } 14 | 15 | export default Document 16 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # node_modules 2 | node_modules 3 | 4 | # env files 5 | .env* 6 | !.env.example 7 | 8 | # tests 9 | coverage 10 | 11 | # next files 12 | .next 13 | 14 | # vscode files 15 | .vscode 16 | 17 | # typescript 18 | tsconfig.tsbuildinfo 19 | 20 | # package-lock.json 21 | package-lock.json 22 | 23 | # yarn files 24 | yarn-* -------------------------------------------------------------------------------- /tests/unit/components/skeletons/pokemon-card.test.tsx: -------------------------------------------------------------------------------- 1 | import { screen, render } from '@testing-library/react' 2 | 3 | import { PokemonCardSkeleton } from '#/components/skeletons' 4 | 5 | describe('PokemonCard Tests', () => { 6 | it('renders correctly', () => { 7 | render() 8 | 9 | expect(screen.getByText(/carregando/i)).toBeInTheDocument() 10 | }) 11 | }) 12 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ![Logo](https://user-images.githubusercontent.com/87918106/182061005-7e2a03ac-8bae-4883-a490-443cbacce057.png) 2 | 3 | # O que é? 4 | 5 | Jogo de truco com cartas de pokémons 6 | 7 | ### Como funciona? 8 | 9 | Para começar a jogar, é necessário ter ```4 pessoas```, cada pessoa recebe ao entrar no jogo ```3 cartas``` de pokémons aleatórias. 10 | 11 |

12 | 13 |

14 | -------------------------------------------------------------------------------- /src/pages/_app.tsx: -------------------------------------------------------------------------------- 1 | import type { AppProps } from 'next/app' 2 | import { ApolloProvider } from '@apollo/client' 3 | 4 | import { apollo } from '#/lib/apollo' 5 | 6 | import '../styles/globals.css' 7 | 8 | const App = (props: AppProps) => { 9 | const { Component, pageProps } = props 10 | 11 | return ( 12 | 13 | 14 | 15 | ) 16 | } 17 | 18 | export default App 19 | -------------------------------------------------------------------------------- /src/components/skeletons/pokemon-card.tsx: -------------------------------------------------------------------------------- 1 | import { motion } from 'framer-motion' 2 | 3 | export const PokemonCardSkeleton = () => { 4 | return ( 5 | 11 | Carregando... 12 | 13 | ) 14 | } 15 | -------------------------------------------------------------------------------- /.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "env": { 3 | "node": true, 4 | "browser": true, 5 | "jest": true 6 | }, 7 | "extends": ["next"], 8 | "plugins": ["@typescript-eslint", "prettier"], 9 | "rules": { 10 | "prettier/prettier": "error", 11 | "comma-dangle": ["error", "never"], 12 | "@typescript-eslint/no-unused-vars": ["error"], 13 | "import/no-anonymous-default-export": [ 14 | "error", 15 | { 16 | "allowArray": true, 17 | "allowObject": true 18 | } 19 | ] 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /jest.config.ts: -------------------------------------------------------------------------------- 1 | import nextJest from 'next/jest' 2 | 3 | const createJestConfig = nextJest({ 4 | // Provide the path to your Next.js app to load next.config.js and .env files in your test environment 5 | dir: './' 6 | }) 7 | 8 | // Add any custom config to be passed to Jest 9 | const customJestConfig = { 10 | setupFilesAfterEnv: ['/tests/setupTests.ts'], 11 | moduleNameMapper: { 12 | '^#/(.*)/(.*)': '/src/$1/$2' 13 | }, 14 | testEnvironment: 'jest-environment-jsdom' 15 | } 16 | 17 | export default createJestConfig(customJestConfig) 18 | -------------------------------------------------------------------------------- /tests/unit/components/pokemon-card/pokemon-card.test.tsx: -------------------------------------------------------------------------------- 1 | import { screen, render } from '@testing-library/react' 2 | 3 | import { PokemonCard } from '#/components/pokemon-card' 4 | 5 | describe('PokemonCard Tests', () => { 6 | it('renders correctly', () => { 7 | render( 8 | 17 | ) 18 | 19 | expect(screen.getByText(/bulbasaur/i)).toBeInTheDocument() 20 | }) 21 | }) 22 | -------------------------------------------------------------------------------- /src/pages/pokemons.tsx: -------------------------------------------------------------------------------- 1 | import { useState, useEffect } from 'react' 2 | 3 | import { PokemonList } from '#/components/pokemon-list' 4 | 5 | const Pokemons = () => { 6 | const [pokemons, setPokemons] = useState([]) 7 | const [loading, setLoading] = useState(true) 8 | 9 | useEffect(() => { 10 | fetch('/pokemons.json') 11 | .then((response) => response.json()) 12 | .then((data) => { 13 | setPokemons(data) 14 | }) 15 | .finally(() => setLoading(false)) 16 | }, []) 17 | 18 | return ( 19 |
20 | 21 |
22 | ) 23 | } 24 | 25 | export default Pokemons 26 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "baseUrl": ".", 4 | "target": "es5", 5 | "lib": ["dom", "dom.iterable", "esnext"], 6 | "allowJs": true, 7 | "skipLibCheck": true, 8 | "strict": false, 9 | "removeComments": true, 10 | "forceConsistentCasingInFileNames": true, 11 | "noEmit": true, 12 | "incremental": true, 13 | "esModuleInterop": true, 14 | "noImplicitAny": true, 15 | "noUnusedParameters": true, 16 | "module": "esnext", 17 | "resolveJsonModule": true, 18 | "moduleResolution": "node", 19 | "isolatedModules": true, 20 | "jsx": "preserve", 21 | "paths": { 22 | "#/*": ["src/*"] 23 | } 24 | }, 25 | "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"], 26 | "exclude": ["node_modules"] 27 | } 28 | -------------------------------------------------------------------------------- /src/components/pokemon-list/pokemon-list.tsx: -------------------------------------------------------------------------------- 1 | import { PokemonCardSkeleton } from '../skeletons' 2 | import { PokemonCard } from '#/components/pokemon-card' 3 | 4 | import type { IPokemon } from '#/types/pokemon' 5 | 6 | interface Props { 7 | pokemons: IPokemon[] 8 | loading?: boolean 9 | } 10 | 11 | export const PokemonList = (props: Props) => { 12 | const { pokemons, loading } = props 13 | 14 | return ( 15 |
16 |

Lista de Pokemons

17 | {loading && ( 18 |
19 | 20 | 21 | 22 | 23 |
24 | )} 25 |
26 | {pokemons.map((pokemon) => { 27 | return 28 | })} 29 |
30 |
31 | ) 32 | } 33 | -------------------------------------------------------------------------------- /.github/workflows/main.yml: -------------------------------------------------------------------------------- 1 | # This workflow will do a clean installation of node dependencies, cache/restore them, build the source code and run tests across different versions of node 2 | # For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions 3 | 4 | name: Node.js CI 5 | 6 | on: 7 | push: 8 | branches: [ "main", "develop" ] 9 | pull_request: 10 | branches: [ "main", "develop" ] 11 | 12 | jobs: 13 | build: 14 | 15 | runs-on: ubuntu-latest 16 | 17 | strategy: 18 | matrix: 19 | node-version: [16.14.x] 20 | # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ 21 | 22 | steps: 23 | - uses: actions/checkout@v3 24 | - name: Use Node.js ${{ matrix.node-version }} 25 | uses: actions/setup-node@v3 26 | with: 27 | node-version: ${{ matrix.node-version }} 28 | cache: 'npm' 29 | - run: npm install 30 | - run: npm run type-check 31 | - run: npm run lint 32 | - run: npm run build --if-present 33 | - run: npm test -------------------------------------------------------------------------------- /tests/unit/components/pokemon-list/pokemon-list.test.tsx: -------------------------------------------------------------------------------- 1 | import { screen, render } from '@testing-library/react' 2 | 3 | import { PokemonList } from '#/components/pokemon-list' 4 | 5 | describe('PokemonList Tests', () => { 6 | it('renders correctly', () => { 7 | render( 8 | 27 | ) 28 | 29 | expect(screen.getByText(/bulbasaur/i)).toBeInTheDocument() 30 | expect(screen.getByText(/ivysaur/i)).toBeInTheDocument() 31 | }) 32 | 33 | it('should be loading', () => { 34 | render() 35 | 36 | expect(screen.getAllByText(/carregando/i)[0]).toBeInTheDocument() 37 | }) 38 | }) 39 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2012-2022 Scott Chacon and others 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining 4 | a copy of this software and associated documentation files (the 5 | "Software"), to deal in the Software without restriction, including 6 | without limitation the rights to use, copy, modify, merge, publish, 7 | distribute, sublicense, and/or sell copies of the Software, and to 8 | permit persons to whom the Software is furnished to do so, subject to 9 | the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be 12 | included in all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 15 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 16 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 17 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 18 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 19 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 20 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "pokemons", 3 | "description": "", 4 | "scripts": { 5 | "dev": "next", 6 | "start": "next start", 7 | "lint": "next lint", 8 | "build": "next build", 9 | "test": "jest --passWithNoTests --bail", 10 | "test:coverage": "jest --coverage --onlyChanged", 11 | "test:watch": "jest --watch", 12 | "test:staging": "jest --passWithNoTests --onlyChanged --bail", 13 | "telemetry:disable": "next telemetry disable", 14 | "telemetry:enable": "next telemetry enable", 15 | "type-check": "tsc --project tsconfig.json", 16 | "husky:install": "husky install", 17 | "commit": "cz" 18 | }, 19 | "dependencies": { 20 | "@apollo/client": "^3.6.9", 21 | "classnames": "^2.3.1", 22 | "framer-motion": "^6.5.1", 23 | "graphql": "^16.5.0", 24 | "next": "^12.2.3", 25 | "react": "^18.2.0", 26 | "react-dom": "^18.2.0" 27 | }, 28 | "devDependencies": { 29 | "@commitlint/cli": "^17.0.3", 30 | "@commitlint/config-conventional": "^17.0.3", 31 | "@testing-library/jest-dom": "^5.16.4", 32 | "@testing-library/react": "^13.3.0", 33 | "@testing-library/user-event": "^14.3.0", 34 | "@types/jest": "^28.1.6", 35 | "@types/node": "^18.6.3", 36 | "@types/react": "^18.0.15", 37 | "@types/react-dom": "^18.0.6", 38 | "@typescript-eslint/eslint-plugin": "^5.31.0", 39 | "autoprefixer": "^10.4.8", 40 | "commitizen": "^4.2.5", 41 | "eslint": "^8.20.0", 42 | "eslint-config-next": "^12.2.3", 43 | "eslint-plugin-prettier": "^4.2.1", 44 | "husky": "^8.0.1", 45 | "jest": "^28.1.3", 46 | "jest-environment-jsdom": "^28.1.3", 47 | "lint-staged": "^13.0.3", 48 | "postcss": "^8.4.14", 49 | "prettier": "^2.7.1", 50 | "tailwindcss": "^3.1.7", 51 | "typescript": "^4.7.4" 52 | }, 53 | "engines": { 54 | "node": "^16.14.0" 55 | }, 56 | "license": "MIT" 57 | } 58 | -------------------------------------------------------------------------------- /src/components/pokemon-card/pokemon-card.tsx: -------------------------------------------------------------------------------- 1 | import Image from 'next/image' 2 | import classNames from 'classnames' 3 | import { motion } from 'framer-motion' 4 | 5 | import type { IPokemon } from '#/types/pokemon' 6 | 7 | interface Props { 8 | pokemon: IPokemon 9 | } 10 | 11 | const colors: Record = { 12 | fire: 'bg-red-400', 13 | water: 'bg-cyan-400', 14 | grass: 'bg-lime-400', 15 | bug: 'bg-purple-400', 16 | normal: 'bg-zinc-400', 17 | electric: 'bg-yellow-400', 18 | ground: 'bg-orange-800', 19 | poison: 'bg-fuchsia-400', 20 | fairy: 'bg-rose-400', 21 | fighting: 'bg-amber-600', 22 | psychic: 'bg-indigo-400', 23 | rock: 'bg-blue-400', 24 | ghost: 'bg-gray-400', 25 | ice: 'bg-cyan-200', 26 | dragon: 'bg-orange-200' 27 | } 28 | 29 | export const PokemonCard = (props: Props) => { 30 | const { pokemon } = props 31 | 32 | const pokemon_type = pokemon.type.split('/')[0] 33 | 34 | return ( 35 | 40 |
41 |
42 |
43 | 44 | {pokemon.type} 45 | 46 |
47 |
48 |
49 | Charmander 57 |
58 |
59 |
60 |
61 | {pokemon.name} 62 |
63 |
64 |
65 | 66 | {pokemon.health} Hp 67 | 68 |
69 |
70 | 71 | {pokemon.attack} At 72 | 73 |
74 |
75 |
76 |
77 | ) 78 | } 79 | -------------------------------------------------------------------------------- /src/assets/pokemons/132.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/assets/pokemons/100.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/assets/pokemons/101.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/assets/pokemons/43.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/assets/pokemons/11.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/assets/pokemons/137.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/assets/pokemons/69.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/assets/pokemons/70.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/assets/pokemons/54.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/assets/pokemons/113.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/assets/pokemons/14.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/assets/pokemons/147.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/assets/pokemons/50.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/assets/pokemons/61.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/assets/pokemons/81.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/assets/pokemons/60.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/assets/pokemons/116.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/assets/pokemons/39.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/assets/pokemons/120.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/assets/pokemons/151.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/assets/pokemons/40.svg: -------------------------------------------------------------------------------- 1 | 2 | --------------------------------------------------------------------------------