package-installer-cli 2.3.0 → 2.4.0
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.
- checksums.yaml +4 -4
- data/bundle-standalone/cli-with-packages.js +568 -369
- data/bundle-standalone/template.json +87 -14
- data/bundle-standalone/templates/c++_c/crow/template/CMakeLists.txt +18 -0
- data/bundle-standalone/templates/c++_c/crow/template/README.md +11 -0
- data/bundle-standalone/templates/c++_c/crow/template/include/routes.hpp +19 -0
- data/bundle-standalone/templates/c++_c/crow/template/main.cpp +12 -0
- data/bundle-standalone/templates/combination-templates/nextjs-auth0-shadcn/README.md +36 -0
- data/bundle-standalone/templates/combination-templates/nextjs-auth0-shadcn/eslint.config.mjs +16 -0
- data/bundle-standalone/templates/combination-templates/nextjs-auth0-shadcn/middleware.ts +18 -0
- data/bundle-standalone/templates/combination-templates/nextjs-auth0-shadcn/next.config.ts +7 -0
- data/bundle-standalone/templates/combination-templates/nextjs-auth0-shadcn/package.json +28 -0
- data/bundle-standalone/templates/combination-templates/nextjs-auth0-shadcn/pnpm-lock.yaml +3819 -0
- data/bundle-standalone/templates/combination-templates/nextjs-auth0-shadcn/postcss.config.mjs +5 -0
- data/bundle-standalone/templates/combination-templates/nextjs-auth0-shadcn/public/file.svg +1 -0
- data/bundle-standalone/templates/combination-templates/nextjs-auth0-shadcn/public/globe.svg +1 -0
- data/bundle-standalone/templates/combination-templates/nextjs-auth0-shadcn/public/next.svg +1 -0
- data/bundle-standalone/templates/combination-templates/nextjs-auth0-shadcn/public/vercel.svg +1 -0
- data/bundle-standalone/templates/combination-templates/nextjs-auth0-shadcn/public/window.svg +1 -0
- data/bundle-standalone/templates/combination-templates/nextjs-auth0-shadcn/src/app/favicon.ico +0 -0
- data/bundle-standalone/templates/combination-templates/nextjs-auth0-shadcn/src/app/globals.css +26 -0
- data/bundle-standalone/templates/combination-templates/nextjs-auth0-shadcn/src/app/layout.tsx +34 -0
- data/bundle-standalone/templates/combination-templates/nextjs-auth0-shadcn/src/app/page.tsx +33 -0
- data/bundle-standalone/templates/combination-templates/nextjs-auth0-shadcn/src/lib/auth0.ts +3 -0
- data/bundle-standalone/templates/combination-templates/nextjs-auth0-shadcn/tsconfig.json +27 -0
- data/bundle-standalone/templates/combination-templates/nextjs-clerk-shadcn/README.md +36 -0
- data/bundle-standalone/templates/combination-templates/nextjs-clerk-shadcn/components.json +21 -0
- data/bundle-standalone/templates/combination-templates/nextjs-clerk-shadcn/eslint.config.mjs +16 -0
- data/bundle-standalone/templates/combination-templates/nextjs-clerk-shadcn/middleware.ts +12 -0
- data/bundle-standalone/templates/combination-templates/nextjs-clerk-shadcn/next.config.ts +7 -0
- data/bundle-standalone/templates/combination-templates/nextjs-clerk-shadcn/package.json +37 -0
- data/bundle-standalone/templates/combination-templates/nextjs-clerk-shadcn/pnpm-lock.yaml +4113 -0
- data/bundle-standalone/templates/combination-templates/nextjs-clerk-shadcn/postcss.config.mjs +5 -0
- data/bundle-standalone/templates/combination-templates/nextjs-clerk-shadcn/public/file.svg +1 -0
- data/bundle-standalone/templates/combination-templates/nextjs-clerk-shadcn/public/globe.svg +1 -0
- data/bundle-standalone/templates/combination-templates/nextjs-clerk-shadcn/public/next.svg +1 -0
- data/bundle-standalone/templates/combination-templates/nextjs-clerk-shadcn/public/vercel.svg +1 -0
- data/bundle-standalone/templates/combination-templates/nextjs-clerk-shadcn/public/window.svg +1 -0
- data/bundle-standalone/templates/combination-templates/nextjs-clerk-shadcn/src/app/favicon.ico +0 -0
- data/bundle-standalone/templates/combination-templates/nextjs-clerk-shadcn/src/app/globals.css +122 -0
- data/bundle-standalone/templates/combination-templates/nextjs-clerk-shadcn/src/app/layout.tsx +55 -0
- data/bundle-standalone/templates/combination-templates/nextjs-clerk-shadcn/src/app/page.tsx +10 -0
- data/bundle-standalone/templates/combination-templates/nextjs-clerk-shadcn/src/components/ui/button.tsx +59 -0
- data/bundle-standalone/templates/combination-templates/nextjs-clerk-shadcn/src/components/ui/card.tsx +92 -0
- data/bundle-standalone/templates/combination-templates/nextjs-clerk-shadcn/src/components/ui/input.tsx +21 -0
- data/bundle-standalone/templates/combination-templates/nextjs-clerk-shadcn/src/components/ui/textarea.tsx +18 -0
- data/bundle-standalone/templates/combination-templates/nextjs-clerk-shadcn/src/lib/utils.ts +6 -0
- data/bundle-standalone/templates/combination-templates/nextjs-clerk-shadcn/src/middleware.ts +12 -0
- data/bundle-standalone/templates/combination-templates/nextjs-clerk-shadcn/tsconfig.json +27 -0
- data/bundle-standalone/templates/combination-templates/nextjs-next-auth-shadcn/README.md +36 -0
- data/bundle-standalone/templates/combination-templates/nextjs-next-auth-shadcn/eslint.config.mjs +16 -0
- data/bundle-standalone/templates/combination-templates/nextjs-next-auth-shadcn/middleware.ts +0 -0
- data/bundle-standalone/templates/combination-templates/nextjs-next-auth-shadcn/next.config.ts +7 -0
- data/bundle-standalone/templates/combination-templates/nextjs-next-auth-shadcn/package.json +28 -0
- data/bundle-standalone/templates/combination-templates/nextjs-next-auth-shadcn/pnpm-lock.yaml +3862 -0
- data/bundle-standalone/templates/combination-templates/nextjs-next-auth-shadcn/postcss.config.mjs +5 -0
- data/bundle-standalone/templates/combination-templates/nextjs-next-auth-shadcn/public/file.svg +1 -0
- data/bundle-standalone/templates/combination-templates/nextjs-next-auth-shadcn/public/globe.svg +1 -0
- data/bundle-standalone/templates/combination-templates/nextjs-next-auth-shadcn/public/next.svg +1 -0
- data/bundle-standalone/templates/combination-templates/nextjs-next-auth-shadcn/public/vercel.svg +1 -0
- data/bundle-standalone/templates/combination-templates/nextjs-next-auth-shadcn/public/window.svg +1 -0
- data/bundle-standalone/templates/combination-templates/nextjs-next-auth-shadcn/src/app/api/auth/[...nextauth]/route.ts +6 -0
- data/bundle-standalone/templates/combination-templates/nextjs-next-auth-shadcn/src/app/favicon.ico +0 -0
- data/bundle-standalone/templates/combination-templates/nextjs-next-auth-shadcn/src/app/globals.css +26 -0
- data/bundle-standalone/templates/combination-templates/nextjs-next-auth-shadcn/src/app/layout.tsx +39 -0
- data/bundle-standalone/templates/combination-templates/nextjs-next-auth-shadcn/src/app/page.tsx +10 -0
- data/bundle-standalone/templates/combination-templates/nextjs-next-auth-shadcn/src/lib/auth-provider.tsx +7 -0
- data/bundle-standalone/templates/combination-templates/nextjs-next-auth-shadcn/src/lib/auth.ts +126 -0
- data/bundle-standalone/templates/combination-templates/nextjs-next-auth-shadcn/tsconfig.json +27 -0
- data/bundle-standalone/templates/game/unity/template/README.md +3 -0
- data/bundle-standalone/templates/game/unity/template/Scripts/PlayerController.cs +25 -0
- data/bundle-standalone/templates/game/unreal/template/README.md +3 -0
- data/bundle-standalone/templates/game/unreal/template/Source/PlayerCharacter.cpp +33 -0
- data/bundle-standalone/templates/game/unreal/template/Source/PlayerCharacter.h +20 -0
- data/bundle-standalone/templates/javascript/preactjs/javascript/template/index.html +13 -0
- data/bundle-standalone/templates/javascript/preactjs/javascript/template/package.json +18 -0
- data/bundle-standalone/templates/javascript/preactjs/javascript/template/public/vite.svg +1 -0
- data/bundle-standalone/templates/javascript/preactjs/javascript/template/src/app.css +25 -0
- data/bundle-standalone/templates/javascript/preactjs/javascript/template/src/app.jsx +43 -0
- data/bundle-standalone/templates/javascript/preactjs/javascript/template/src/assets/preact.svg +1 -0
- data/bundle-standalone/templates/javascript/preactjs/javascript/template/src/index.css +68 -0
- data/bundle-standalone/templates/javascript/preactjs/javascript/template/src/main.jsx +5 -0
- data/bundle-standalone/templates/javascript/preactjs/javascript/template/vite.config.js +7 -0
- data/bundle-standalone/templates/javascript/preactjs/typescript/template/index.html +13 -0
- data/bundle-standalone/templates/javascript/preactjs/typescript/template/package.json +20 -0
- data/bundle-standalone/templates/javascript/preactjs/typescript/template/public/vite.svg +1 -0
- data/bundle-standalone/templates/javascript/preactjs/typescript/template/src/app.css +25 -0
- data/bundle-standalone/templates/javascript/preactjs/typescript/template/src/app.tsx +43 -0
- data/bundle-standalone/templates/javascript/preactjs/typescript/template/src/assets/preact.svg +1 -0
- data/bundle-standalone/templates/javascript/preactjs/typescript/template/src/index.css +68 -0
- data/bundle-standalone/templates/javascript/preactjs/typescript/template/src/main.tsx +5 -0
- data/bundle-standalone/templates/javascript/preactjs/typescript/template/tsconfig.app.json +33 -0
- data/bundle-standalone/templates/javascript/preactjs/typescript/template/tsconfig.json +7 -0
- data/bundle-standalone/templates/javascript/preactjs/typescript/template/tsconfig.node.json +26 -0
- data/bundle-standalone/templates/javascript/preactjs/typescript/template/vite.config.ts +7 -0
- data/bundle-standalone/templates/javascript/solidjs/javascript/template/README.md +28 -0
- data/bundle-standalone/templates/javascript/solidjs/javascript/template/index.html +13 -0
- data/bundle-standalone/templates/javascript/solidjs/javascript/template/package.json +18 -0
- data/bundle-standalone/templates/javascript/solidjs/javascript/template/public/vite.svg +1 -0
- data/bundle-standalone/templates/javascript/solidjs/javascript/template/src/App.css +27 -0
- data/bundle-standalone/templates/javascript/solidjs/javascript/template/src/App.jsx +35 -0
- data/bundle-standalone/templates/javascript/solidjs/javascript/template/src/assets/solid.svg +1 -0
- data/bundle-standalone/templates/javascript/solidjs/javascript/template/src/index.css +68 -0
- data/bundle-standalone/templates/javascript/solidjs/javascript/template/src/index.jsx +8 -0
- data/bundle-standalone/templates/javascript/solidjs/javascript/template/vite.config.js +6 -0
- data/bundle-standalone/templates/javascript/solidjs/typescript/template/README.md +28 -0
- data/bundle-standalone/templates/javascript/solidjs/typescript/template/index.html +13 -0
- data/bundle-standalone/templates/javascript/solidjs/typescript/template/package.json +20 -0
- data/bundle-standalone/templates/javascript/solidjs/typescript/template/public/vite.svg +1 -0
- data/bundle-standalone/templates/javascript/solidjs/typescript/template/src/App.css +27 -0
- data/bundle-standalone/templates/javascript/solidjs/typescript/template/src/App.tsx +35 -0
- data/bundle-standalone/templates/javascript/solidjs/typescript/template/src/assets/solid.svg +1 -0
- data/bundle-standalone/templates/javascript/solidjs/typescript/template/src/index.css +68 -0
- data/bundle-standalone/templates/javascript/solidjs/typescript/template/src/index.tsx +8 -0
- data/bundle-standalone/templates/javascript/solidjs/typescript/template/tsconfig.app.json +29 -0
- data/bundle-standalone/templates/javascript/solidjs/typescript/template/tsconfig.json +7 -0
- data/bundle-standalone/templates/javascript/solidjs/typescript/template/tsconfig.node.json +26 -0
- data/bundle-standalone/templates/javascript/solidjs/typescript/template/vite.config.ts +6 -0
- data/bundle-standalone/templates/javascript/sveltejs/javascript/template/README.md +43 -0
- data/bundle-standalone/templates/javascript/sveltejs/javascript/template/index.html +13 -0
- data/bundle-standalone/templates/javascript/sveltejs/javascript/template/jsconfig.json +33 -0
- data/bundle-standalone/templates/javascript/sveltejs/javascript/template/package.json +16 -0
- data/bundle-standalone/templates/javascript/sveltejs/javascript/template/public/vite.svg +1 -0
- data/bundle-standalone/templates/javascript/sveltejs/javascript/template/src/App.svelte +47 -0
- data/bundle-standalone/templates/javascript/sveltejs/javascript/template/src/app.css +79 -0
- data/bundle-standalone/templates/javascript/sveltejs/javascript/template/src/assets/svelte.svg +1 -0
- data/bundle-standalone/templates/javascript/sveltejs/javascript/template/src/lib/Counter.svelte +10 -0
- data/bundle-standalone/templates/javascript/sveltejs/javascript/template/src/main.js +9 -0
- data/bundle-standalone/templates/javascript/sveltejs/javascript/template/svelte.config.js +8 -0
- data/bundle-standalone/templates/javascript/sveltejs/javascript/template/vite.config.js +7 -0
- data/bundle-standalone/templates/javascript/sveltejs/typescript/template/README.md +47 -0
- data/bundle-standalone/templates/javascript/sveltejs/typescript/template/index.html +13 -0
- data/bundle-standalone/templates/javascript/sveltejs/typescript/template/package.json +21 -0
- data/bundle-standalone/templates/javascript/sveltejs/typescript/template/public/vite.svg +1 -0
- data/bundle-standalone/templates/javascript/sveltejs/typescript/template/src/App.svelte +47 -0
- data/bundle-standalone/templates/javascript/sveltejs/typescript/template/src/app.css +79 -0
- data/bundle-standalone/templates/javascript/sveltejs/typescript/template/src/assets/svelte.svg +1 -0
- data/bundle-standalone/templates/javascript/sveltejs/typescript/template/src/lib/Counter.svelte +10 -0
- data/bundle-standalone/templates/javascript/sveltejs/typescript/template/src/main.ts +9 -0
- data/bundle-standalone/templates/javascript/sveltejs/typescript/template/svelte.config.js +8 -0
- data/bundle-standalone/templates/javascript/sveltejs/typescript/template/tsconfig.app.json +21 -0
- data/bundle-standalone/templates/javascript/sveltejs/typescript/template/tsconfig.json +7 -0
- data/bundle-standalone/templates/javascript/sveltejs/typescript/template/tsconfig.node.json +26 -0
- data/bundle-standalone/templates/javascript/sveltejs/typescript/template/vite.config.ts +7 -0
- data/bundle-standalone/templates/mobile/react-native/javascript/expo-cli-template/README.md +50 -0
- data/bundle-standalone/templates/mobile/react-native/javascript/expo-cli-template/app/(tabs)/_layout.jsx +35 -0
- data/bundle-standalone/templates/mobile/react-native/javascript/expo-cli-template/app/(tabs)/explore.jsx +112 -0
- data/bundle-standalone/templates/mobile/react-native/javascript/expo-cli-template/app/(tabs)/index.jsx +98 -0
- data/bundle-standalone/templates/mobile/react-native/javascript/expo-cli-template/app/_layout.jsx +24 -0
- data/bundle-standalone/templates/mobile/react-native/javascript/expo-cli-template/app/modal.jsx +29 -0
- data/bundle-standalone/templates/mobile/react-native/javascript/expo-cli-template/app.json +48 -0
- data/bundle-standalone/templates/mobile/react-native/javascript/expo-cli-template/assets/images/android-icon-background.png +0 -0
- data/bundle-standalone/templates/mobile/react-native/javascript/expo-cli-template/assets/images/android-icon-foreground.png +0 -0
- data/bundle-standalone/templates/mobile/react-native/javascript/expo-cli-template/assets/images/android-icon-monochrome.png +0 -0
- data/bundle-standalone/templates/mobile/react-native/javascript/expo-cli-template/assets/images/favicon.png +0 -0
- data/bundle-standalone/templates/mobile/react-native/javascript/expo-cli-template/assets/images/icon.png +0 -0
- data/bundle-standalone/templates/mobile/react-native/javascript/expo-cli-template/assets/images/partial-react-logo.png +0 -0
- data/bundle-standalone/templates/mobile/react-native/javascript/expo-cli-template/assets/images/react-logo.png +0 -0
- data/bundle-standalone/templates/mobile/react-native/javascript/expo-cli-template/assets/images/react-logo@2x.png +0 -0
- data/bundle-standalone/templates/mobile/react-native/javascript/expo-cli-template/assets/images/react-logo@3x.png +0 -0
- data/bundle-standalone/templates/mobile/react-native/javascript/expo-cli-template/assets/images/splash-icon.png +0 -0
- data/bundle-standalone/templates/mobile/react-native/javascript/expo-cli-template/components/external-link.jsx +25 -0
- data/bundle-standalone/templates/mobile/react-native/javascript/expo-cli-template/components/haptic-tab.jsx +18 -0
- data/bundle-standalone/templates/mobile/react-native/javascript/expo-cli-template/components/hello-wave.jsx +19 -0
- data/bundle-standalone/templates/mobile/react-native/javascript/expo-cli-template/components/parallax-scroll-view.jsx +79 -0
- data/bundle-standalone/templates/mobile/react-native/javascript/expo-cli-template/components/themed-text.jsx +60 -0
- data/bundle-standalone/templates/mobile/react-native/javascript/expo-cli-template/components/themed-view.jsx +14 -0
- data/bundle-standalone/templates/mobile/react-native/javascript/expo-cli-template/components/ui/collapsible.jsx +45 -0
- data/bundle-standalone/templates/mobile/react-native/javascript/expo-cli-template/components/ui/icon-symbol.ios.jsx +32 -0
- data/bundle-standalone/templates/mobile/react-native/javascript/expo-cli-template/components/ui/icon-symbol.jsx +41 -0
- data/bundle-standalone/templates/mobile/react-native/javascript/expo-cli-template/constants/theme.js +53 -0
- data/bundle-standalone/templates/mobile/react-native/javascript/expo-cli-template/eslint.config.js +10 -0
- data/bundle-standalone/templates/mobile/react-native/javascript/expo-cli-template/hooks/use-color-scheme.js +1 -0
- data/bundle-standalone/templates/mobile/react-native/javascript/expo-cli-template/hooks/use-color-scheme.web.js +21 -0
- data/bundle-standalone/templates/mobile/react-native/javascript/expo-cli-template/hooks/use-theme-color.js +21 -0
- data/bundle-standalone/templates/mobile/react-native/javascript/expo-cli-template/jsconfig.json +17 -0
- data/bundle-standalone/templates/mobile/react-native/javascript/expo-cli-template/package.json +47 -0
- data/bundle-standalone/templates/mobile/react-native/javascript/expo-cli-template/pnpm-workspace.yaml +1 -0
- data/bundle-standalone/templates/mobile/react-native/javascript/expo-cli-template/scripts/reset-project.js +112 -0
- data/bundle-standalone/templates/mobile/react-native/typescript/expo-cli-template/README.md +50 -0
- data/bundle-standalone/templates/mobile/react-native/typescript/expo-cli-template/app/(tabs)/_layout.tsx +35 -0
- data/bundle-standalone/templates/mobile/react-native/typescript/expo-cli-template/app/(tabs)/explore.tsx +112 -0
- data/bundle-standalone/templates/mobile/react-native/typescript/expo-cli-template/app/(tabs)/index.tsx +98 -0
- data/bundle-standalone/templates/mobile/react-native/typescript/expo-cli-template/app/_layout.tsx +24 -0
- data/bundle-standalone/templates/mobile/react-native/typescript/expo-cli-template/app/modal.tsx +29 -0
- data/bundle-standalone/templates/mobile/react-native/typescript/expo-cli-template/app.json +48 -0
- data/bundle-standalone/templates/mobile/react-native/typescript/expo-cli-template/assets/images/android-icon-background.png +0 -0
- data/bundle-standalone/templates/mobile/react-native/typescript/expo-cli-template/assets/images/android-icon-foreground.png +0 -0
- data/bundle-standalone/templates/mobile/react-native/typescript/expo-cli-template/assets/images/android-icon-monochrome.png +0 -0
- data/bundle-standalone/templates/mobile/react-native/typescript/expo-cli-template/assets/images/favicon.png +0 -0
- data/bundle-standalone/templates/mobile/react-native/typescript/expo-cli-template/assets/images/icon.png +0 -0
- data/bundle-standalone/templates/mobile/react-native/typescript/expo-cli-template/assets/images/partial-react-logo.png +0 -0
- data/bundle-standalone/templates/mobile/react-native/typescript/expo-cli-template/assets/images/react-logo.png +0 -0
- data/bundle-standalone/templates/mobile/react-native/typescript/expo-cli-template/assets/images/react-logo@2x.png +0 -0
- data/bundle-standalone/templates/mobile/react-native/typescript/expo-cli-template/assets/images/react-logo@3x.png +0 -0
- data/bundle-standalone/templates/mobile/react-native/typescript/expo-cli-template/assets/images/splash-icon.png +0 -0
- data/bundle-standalone/templates/mobile/react-native/typescript/expo-cli-template/components/external-link.tsx +25 -0
- data/bundle-standalone/templates/mobile/react-native/typescript/expo-cli-template/components/haptic-tab.tsx +18 -0
- data/bundle-standalone/templates/mobile/react-native/typescript/expo-cli-template/components/hello-wave.tsx +19 -0
- data/bundle-standalone/templates/mobile/react-native/typescript/expo-cli-template/components/parallax-scroll-view.tsx +79 -0
- data/bundle-standalone/templates/mobile/react-native/typescript/expo-cli-template/components/themed-text.tsx +60 -0
- data/bundle-standalone/templates/mobile/react-native/typescript/expo-cli-template/components/themed-view.tsx +14 -0
- data/bundle-standalone/templates/mobile/react-native/typescript/expo-cli-template/components/ui/collapsible.tsx +45 -0
- data/bundle-standalone/templates/mobile/react-native/typescript/expo-cli-template/components/ui/icon-symbol.ios.tsx +32 -0
- data/bundle-standalone/templates/mobile/react-native/typescript/expo-cli-template/components/ui/icon-symbol.tsx +41 -0
- data/bundle-standalone/templates/mobile/react-native/typescript/expo-cli-template/constants/theme.ts +53 -0
- data/bundle-standalone/templates/mobile/react-native/typescript/expo-cli-template/eslint.config.js +10 -0
- data/bundle-standalone/templates/mobile/react-native/typescript/expo-cli-template/hooks/use-color-scheme.ts +1 -0
- data/bundle-standalone/templates/mobile/react-native/typescript/expo-cli-template/hooks/use-color-scheme.web.ts +21 -0
- data/bundle-standalone/templates/mobile/react-native/typescript/expo-cli-template/hooks/use-theme-color.ts +21 -0
- data/bundle-standalone/templates/mobile/react-native/typescript/expo-cli-template/package.json +47 -0
- data/bundle-standalone/templates/mobile/react-native/typescript/expo-cli-template/pnpm-workspace.yaml +1 -0
- data/bundle-standalone/templates/mobile/react-native/typescript/expo-cli-template/scripts/reset-project.js +112 -0
- data/bundle-standalone/templates/mobile/react-native/typescript/expo-cli-template/tsconfig.json +17 -0
- data/bundle-standalone/templates/python/bottle/template/README.md +0 -0
- data/bundle-standalone/templates/python/bottle/template/main.py +6 -0
- data/bundle-standalone/templates/python/bottle/template/pyproject.toml +7 -0
- data/bundle-standalone/templates/python/dash/template/README.md +0 -0
- data/bundle-standalone/templates/python/dash/template/main.py +6 -0
- data/bundle-standalone/templates/python/dash/template/pyproject.toml +7 -0
- data/bundle-standalone/templates/python/falcon/template/README.md +0 -0
- data/bundle-standalone/templates/python/falcon/template/main.py +6 -0
- data/bundle-standalone/templates/python/falcon/template/pyproject.toml +7 -0
- data/bundle-standalone/templates/python/fastapi/template/README.md +0 -0
- data/bundle-standalone/templates/python/fastapi/template/main.py +27 -0
- data/bundle-standalone/templates/python/fastapi/template/pyproject.toml +7 -0
- data/bundle-standalone/templates/python/pyramid/template/README.md +0 -0
- data/bundle-standalone/templates/python/pyramid/template/main.py +6 -0
- data/bundle-standalone/templates/python/pyramid/template/pyproject.toml +7 -0
- data/bundle-standalone/templates/python/quart/template/README.md +0 -0
- data/bundle-standalone/templates/python/quart/template/main.py +6 -0
- data/bundle-standalone/templates/python/quart/template/pyproject.toml +7 -0
- data/bundle-standalone/templates/python/streamlit/template/README.md +0 -0
- data/bundle-standalone/templates/python/streamlit/template/main.py +6 -0
- data/bundle-standalone/templates/python/streamlit/template/pyproject.toml +7 -0
- data/bundle-standalone/templates/python/tornado/template/README.md +0 -0
- data/bundle-standalone/templates/python/tornado/template/main.py +6 -0
- data/bundle-standalone/templates/python/tornado/template/pyproject.toml +7 -0
- data/bundle-standalone/templates/template.json +87 -14
- data/bundle-standalone/templates/web3/anchor/template/Anchor.toml +6 -0
- data/bundle-standalone/templates/web3/anchor/template/Cargo.toml +23 -0
- data/bundle-standalone/templates/web3/anchor/template/README.md +10 -0
- data/bundle-standalone/templates/web3/anchor/template/migrations/deploy.ts +27 -0
- data/bundle-standalone/templates/web3/anchor/template/programs/mysolanaapp/src/lib.rs +40 -0
- data/bundle-standalone/templates/web3/anchor/template/tests/mysolanaapp.ts +26 -0
- data/bundle-standalone/templates/web3/ethersjs/template/README.md +12 -0
- data/bundle-standalone/templates/web3/ethersjs/template/contracts/SimpleStorage.sol +17 -0
- data/bundle-standalone/templates/web3/ethersjs/template/hardhat.config.js +8 -0
- data/bundle-standalone/templates/web3/ethersjs/template/package.json +29 -0
- data/bundle-standalone/templates/web3/ethersjs/template/scripts/deploy.ts +18 -0
- data/bundle-standalone/templates/web3/ethersjs/template/scripts/interact.ts +17 -0
- data/bundle-standalone/templates/web3/solidity/solidity-learning/01_data-types/DataTypes.sol +37 -0
- data/bundle-standalone/templates/web3/solidity/solidity-learning/01_data-types/SolidityOperations.sol +48 -0
- data/bundle-standalone/templates/web3/solidity/solidity-learning/02_contructors/Constructor.sol +16 -0
- data/bundle-standalone/templates/web3/solidity/solidity-learning/03_variables/Variables.sol +31 -0
- data/bundle-standalone/templates/web3/solidity/solidity-learning/04_functions/Functions.sol +19 -0
- data/bundle-standalone/templates/web3/solidity/solidity-learning/05_visibility/FunctionVisibility.sol +39 -0
- data/bundle-standalone/templates/web3/solidity/solidity-learning/06_pure_and_view_functions/PureAndViewFunction.sol +19 -0
- data/bundle-standalone/templates/web3/solidity/solidity-learning/07_function_modifiers/Modifiers.sol +27 -0
- data/bundle-standalone/templates/web3/solidity/solidity-learning/09_events/Events.sol +19 -0
- data/bundle-standalone/templates/web3/solidity/solidity-learning/10_error_handling/ErrorHandling.sol +25 -0
- data/bundle-standalone/templates/web3/solidity/solidity-learning/11_fallback_function/Fallback.sol +7 -0
- data/bundle-standalone/templates/web3/solidity/solidity-learning/12_for_loop/ForLoop.sol +15 -0
- data/bundle-standalone/templates/web3/solidity/solidity-learning/13_array/Array.sol +40 -0
- data/bundle-standalone/templates/web3/solidity/solidity-learning/14_mapping/Mapping.sol +21 -0
- data/bundle-standalone/templates/web3/solidity/solidity-learning/14_mapping/NestedMapping.sol +25 -0
- data/bundle-standalone/templates/web3/solidity/solidity-learning/15_enum/Enum.sol +22 -0
- data/bundle-standalone/templates/web3/solidity/solidity-learning/16_struct/Struct.sol +23 -0
- data/bundle-standalone/templates/web3/solidity/solidity-learning/17_payable_modifier/Payable.sol +26 -0
- data/bundle-standalone/templates/web3/solidity/solidity-learning/18_imports/Contract1.sol +15 -0
- data/bundle-standalone/templates/web3/solidity/solidity-learning/18_imports/Contract2.sol +11 -0
- data/bundle-standalone/templates/web3/solidity/solidity-learning/19_contract_cleanup/Cleanup.sol +18 -0
- data/bundle-standalone/templates/web3/solidity/solidity-learning/20_memory_and_storage/MemoryAndStorage.sol +20 -0
- data/bundle-standalone/templates/web3/solidity/solidity-learning/21_inheritance/Inheritance.sol +67 -0
- data/bundle-standalone/templates/web3/solidity/solidity-learning/22_if_statement/if-statement.sol +22 -0
- data/bundle-standalone/templates/web3/solidity/solidity-learning/23_libraries/libraries.sol +31 -0
- data/bundle-standalone/templates/web3/solidity/solidity-learning/23_libraries/safemath.sol +116 -0
- data/bundle-standalone/templates/web3/solidity/solidity-learning/24_interface/interface.sol +88 -0
- data/bundle-standalone/templates/web3/solidity/solidity-learning/README.md +423 -0
- data/bundle-standalone/templates/web3/solidity/uniswap-simple-swap/SimpleSwap.sol +46 -0
- metadata +369 -93
- /data/bundle-standalone/templates/mobile/react-native/javascript/{template → react-native-cli-template}/App.jsx +0 -0
- /data/bundle-standalone/templates/mobile/react-native/javascript/{template → react-native-cli-template}/Gemfile +0 -0
- /data/bundle-standalone/templates/mobile/react-native/javascript/{template → react-native-cli-template}/README.md +0 -0
- /data/bundle-standalone/templates/mobile/react-native/javascript/{template → react-native-cli-template}/__tests__/App.test.tsx +0 -0
- /data/bundle-standalone/templates/mobile/react-native/javascript/{template → react-native-cli-template}/android/app/build.gradle +0 -0
- /data/bundle-standalone/templates/mobile/react-native/javascript/{template → react-native-cli-template}/android/app/debug.keystore +0 -0
- /data/bundle-standalone/templates/mobile/react-native/javascript/{template → react-native-cli-template}/android/app/proguard-rules.pro +0 -0
- /data/bundle-standalone/templates/mobile/react-native/javascript/{template → react-native-cli-template}/android/app/src/main/AndroidManifest.xml +0 -0
- /data/bundle-standalone/templates/mobile/react-native/javascript/{template → react-native-cli-template}/android/app/src/main/java/com/template/MainActivity.kt +0 -0
- /data/bundle-standalone/templates/mobile/react-native/javascript/{template → react-native-cli-template}/android/app/src/main/java/com/template/MainApplication.kt +0 -0
- /data/bundle-standalone/templates/mobile/react-native/javascript/{template → react-native-cli-template}/android/app/src/main/res/drawable/rn_edit_text_material.xml +0 -0
- /data/bundle-standalone/templates/mobile/react-native/javascript/{template → react-native-cli-template}/android/app/src/main/res/mipmap-hdpi/ic_launcher.png +0 -0
- /data/bundle-standalone/templates/mobile/react-native/javascript/{template → react-native-cli-template}/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png +0 -0
- /data/bundle-standalone/templates/mobile/react-native/javascript/{template → react-native-cli-template}/android/app/src/main/res/mipmap-mdpi/ic_launcher.png +0 -0
- /data/bundle-standalone/templates/mobile/react-native/javascript/{template → react-native-cli-template}/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png +0 -0
- /data/bundle-standalone/templates/mobile/react-native/javascript/{template → react-native-cli-template}/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png +0 -0
- /data/bundle-standalone/templates/mobile/react-native/javascript/{template → react-native-cli-template}/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png +0 -0
- /data/bundle-standalone/templates/mobile/react-native/javascript/{template → react-native-cli-template}/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png +0 -0
- /data/bundle-standalone/templates/mobile/react-native/javascript/{template → react-native-cli-template}/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png +0 -0
- /data/bundle-standalone/templates/mobile/react-native/javascript/{template → react-native-cli-template}/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
- /data/bundle-standalone/templates/mobile/react-native/javascript/{template → react-native-cli-template}/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png +0 -0
- /data/bundle-standalone/templates/mobile/react-native/javascript/{template → react-native-cli-template}/android/app/src/main/res/values/strings.xml +0 -0
- /data/bundle-standalone/templates/mobile/react-native/javascript/{template → react-native-cli-template}/android/app/src/main/res/values/styles.xml +0 -0
- /data/bundle-standalone/templates/mobile/react-native/javascript/{template → react-native-cli-template}/android/build.gradle +0 -0
- /data/bundle-standalone/templates/mobile/react-native/javascript/{template → react-native-cli-template}/android/gradle/wrapper/gradle-wrapper.jar +0 -0
- /data/bundle-standalone/templates/mobile/react-native/javascript/{template → react-native-cli-template}/android/gradle/wrapper/gradle-wrapper.properties +0 -0
- /data/bundle-standalone/templates/mobile/react-native/javascript/{template → react-native-cli-template}/android/gradle.properties +0 -0
- /data/bundle-standalone/templates/mobile/react-native/javascript/{template → react-native-cli-template}/android/gradlew +0 -0
- /data/bundle-standalone/templates/mobile/react-native/javascript/{template → react-native-cli-template}/android/gradlew.bat +0 -0
- /data/bundle-standalone/templates/mobile/react-native/javascript/{template → react-native-cli-template}/android/settings.gradle +0 -0
- /data/bundle-standalone/templates/mobile/react-native/javascript/{template → react-native-cli-template}/app.json +0 -0
- /data/bundle-standalone/templates/mobile/react-native/javascript/{template → react-native-cli-template}/babel.config.js +0 -0
- /data/bundle-standalone/templates/mobile/react-native/javascript/{template → react-native-cli-template}/index.js +0 -0
- /data/bundle-standalone/templates/mobile/react-native/javascript/{template → react-native-cli-template}/ios/Podfile +0 -0
- /data/bundle-standalone/templates/mobile/react-native/javascript/{template → react-native-cli-template}/ios/template/AppDelegate.swift +0 -0
- /data/bundle-standalone/templates/mobile/react-native/javascript/{template → react-native-cli-template}/ios/template/Images.xcassets/AppIcon.appiconset/Contents.json +0 -0
- /data/bundle-standalone/templates/mobile/react-native/javascript/{template → react-native-cli-template}/ios/template/Images.xcassets/Contents.json +0 -0
- /data/bundle-standalone/templates/mobile/react-native/javascript/{template → react-native-cli-template}/ios/template/Info.plist +0 -0
- /data/bundle-standalone/templates/mobile/react-native/javascript/{template → react-native-cli-template}/ios/template/LaunchScreen.storyboard +0 -0
- /data/bundle-standalone/templates/mobile/react-native/javascript/{template → react-native-cli-template}/ios/template/PrivacyInfo.xcprivacy +0 -0
- /data/bundle-standalone/templates/mobile/react-native/javascript/{template → react-native-cli-template}/ios/template.xcodeproj/project.pbxproj +0 -0
- /data/bundle-standalone/templates/mobile/react-native/javascript/{template → react-native-cli-template}/ios/template.xcodeproj/xcshareddata/xcschemes/template.xcscheme +0 -0
- /data/bundle-standalone/templates/mobile/react-native/javascript/{template → react-native-cli-template}/jest.config.js +0 -0
- /data/bundle-standalone/templates/mobile/react-native/javascript/{template → react-native-cli-template}/metro.config.js +0 -0
- /data/bundle-standalone/templates/mobile/react-native/javascript/{template → react-native-cli-template}/package.json +0 -0
- /data/bundle-standalone/templates/mobile/react-native/typescript/{template → react-native-cli-template}/App.tsx +0 -0
- /data/bundle-standalone/templates/mobile/react-native/typescript/{template → react-native-cli-template}/Gemfile +0 -0
- /data/bundle-standalone/templates/mobile/react-native/typescript/{template → react-native-cli-template}/README.md +0 -0
- /data/bundle-standalone/templates/mobile/react-native/typescript/{template → react-native-cli-template}/__tests__/App.test.tsx +0 -0
- /data/bundle-standalone/templates/mobile/react-native/typescript/{template → react-native-cli-template}/android/app/build.gradle +0 -0
- /data/bundle-standalone/templates/mobile/react-native/typescript/{template → react-native-cli-template}/android/app/debug.keystore +0 -0
- /data/bundle-standalone/templates/mobile/react-native/typescript/{template → react-native-cli-template}/android/app/proguard-rules.pro +0 -0
- /data/bundle-standalone/templates/mobile/react-native/typescript/{template → react-native-cli-template}/android/app/src/main/AndroidManifest.xml +0 -0
- /data/bundle-standalone/templates/mobile/react-native/typescript/{template → react-native-cli-template}/android/app/src/main/java/com/template/MainActivity.kt +0 -0
- /data/bundle-standalone/templates/mobile/react-native/typescript/{template → react-native-cli-template}/android/app/src/main/java/com/template/MainApplication.kt +0 -0
- /data/bundle-standalone/templates/mobile/react-native/typescript/{template → react-native-cli-template}/android/app/src/main/res/drawable/rn_edit_text_material.xml +0 -0
- /data/bundle-standalone/templates/mobile/react-native/typescript/{template → react-native-cli-template}/android/app/src/main/res/mipmap-hdpi/ic_launcher.png +0 -0
- /data/bundle-standalone/templates/mobile/react-native/typescript/{template → react-native-cli-template}/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png +0 -0
- /data/bundle-standalone/templates/mobile/react-native/typescript/{template → react-native-cli-template}/android/app/src/main/res/mipmap-mdpi/ic_launcher.png +0 -0
- /data/bundle-standalone/templates/mobile/react-native/typescript/{template → react-native-cli-template}/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png +0 -0
- /data/bundle-standalone/templates/mobile/react-native/typescript/{template → react-native-cli-template}/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png +0 -0
- /data/bundle-standalone/templates/mobile/react-native/typescript/{template → react-native-cli-template}/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png +0 -0
- /data/bundle-standalone/templates/mobile/react-native/typescript/{template → react-native-cli-template}/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png +0 -0
- /data/bundle-standalone/templates/mobile/react-native/typescript/{template → react-native-cli-template}/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png +0 -0
- /data/bundle-standalone/templates/mobile/react-native/typescript/{template → react-native-cli-template}/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
- /data/bundle-standalone/templates/mobile/react-native/typescript/{template → react-native-cli-template}/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png +0 -0
- /data/bundle-standalone/templates/mobile/react-native/typescript/{template → react-native-cli-template}/android/app/src/main/res/values/strings.xml +0 -0
- /data/bundle-standalone/templates/mobile/react-native/typescript/{template → react-native-cli-template}/android/app/src/main/res/values/styles.xml +0 -0
- /data/bundle-standalone/templates/mobile/react-native/typescript/{template → react-native-cli-template}/android/build.gradle +0 -0
- /data/bundle-standalone/templates/mobile/react-native/typescript/{template → react-native-cli-template}/android/gradle/wrapper/gradle-wrapper.jar +0 -0
- /data/bundle-standalone/templates/mobile/react-native/typescript/{template → react-native-cli-template}/android/gradle/wrapper/gradle-wrapper.properties +0 -0
- /data/bundle-standalone/templates/mobile/react-native/typescript/{template → react-native-cli-template}/android/gradle.properties +0 -0
- /data/bundle-standalone/templates/mobile/react-native/typescript/{template → react-native-cli-template}/android/gradlew +0 -0
- /data/bundle-standalone/templates/mobile/react-native/typescript/{template → react-native-cli-template}/android/gradlew.bat +0 -0
- /data/bundle-standalone/templates/mobile/react-native/typescript/{template → react-native-cli-template}/android/settings.gradle +0 -0
- /data/bundle-standalone/templates/mobile/react-native/typescript/{template → react-native-cli-template}/app.json +0 -0
- /data/bundle-standalone/templates/mobile/react-native/typescript/{template → react-native-cli-template}/babel.config.js +0 -0
- /data/bundle-standalone/templates/mobile/react-native/typescript/{template → react-native-cli-template}/index.js +0 -0
- /data/bundle-standalone/templates/mobile/react-native/typescript/{template → react-native-cli-template}/ios/Podfile +0 -0
- /data/bundle-standalone/templates/mobile/react-native/typescript/{template → react-native-cli-template}/ios/template/AppDelegate.swift +0 -0
- /data/bundle-standalone/templates/mobile/react-native/typescript/{template → react-native-cli-template}/ios/template/Images.xcassets/AppIcon.appiconset/Contents.json +0 -0
- /data/bundle-standalone/templates/mobile/react-native/typescript/{template → react-native-cli-template}/ios/template/Images.xcassets/Contents.json +0 -0
- /data/bundle-standalone/templates/mobile/react-native/typescript/{template → react-native-cli-template}/ios/template/Info.plist +0 -0
- /data/bundle-standalone/templates/mobile/react-native/typescript/{template → react-native-cli-template}/ios/template/LaunchScreen.storyboard +0 -0
- /data/bundle-standalone/templates/mobile/react-native/typescript/{template → react-native-cli-template}/ios/template/PrivacyInfo.xcprivacy +0 -0
- /data/bundle-standalone/templates/mobile/react-native/typescript/{template → react-native-cli-template}/ios/template.xcodeproj/project.pbxproj +0 -0
- /data/bundle-standalone/templates/mobile/react-native/typescript/{template → react-native-cli-template}/ios/template.xcodeproj/xcshareddata/xcschemes/template.xcscheme +0 -0
- /data/bundle-standalone/templates/mobile/react-native/typescript/{template → react-native-cli-template}/jest.config.js +0 -0
- /data/bundle-standalone/templates/mobile/react-native/typescript/{template → react-native-cli-template}/metro.config.js +0 -0
- /data/bundle-standalone/templates/mobile/react-native/typescript/{template → react-native-cli-template}/package.json +0 -0
- /data/bundle-standalone/templates/mobile/react-native/typescript/{template → react-native-cli-template}/tsconfig.json +0 -0
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo",
|
|
4
|
+
"target": "ES2023",
|
|
5
|
+
"lib": ["ES2023"],
|
|
6
|
+
"module": "ESNext",
|
|
7
|
+
"types": ["node"],
|
|
8
|
+
"skipLibCheck": true,
|
|
9
|
+
|
|
10
|
+
/* Bundler mode */
|
|
11
|
+
"moduleResolution": "bundler",
|
|
12
|
+
"allowImportingTsExtensions": true,
|
|
13
|
+
"verbatimModuleSyntax": true,
|
|
14
|
+
"moduleDetection": "force",
|
|
15
|
+
"noEmit": true,
|
|
16
|
+
|
|
17
|
+
/* Linting */
|
|
18
|
+
"strict": true,
|
|
19
|
+
"noUnusedLocals": true,
|
|
20
|
+
"noUnusedParameters": true,
|
|
21
|
+
"erasableSyntaxOnly": true,
|
|
22
|
+
"noFallthroughCasesInSwitch": true,
|
|
23
|
+
"noUncheckedSideEffectImports": true
|
|
24
|
+
},
|
|
25
|
+
"include": ["vite.config.ts"]
|
|
26
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# Welcome to your Expo app 👋
|
|
2
|
+
|
|
3
|
+
This is an [Expo](https://expo.dev) project created with [`create-expo-app`](https://www.npmjs.com/package/create-expo-app).
|
|
4
|
+
|
|
5
|
+
## Get started
|
|
6
|
+
|
|
7
|
+
1. Install dependencies
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
npm install
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
2. Start the app
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
npx expo start
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
In the output, you'll find options to open the app in a
|
|
20
|
+
|
|
21
|
+
- [development build](https://docs.expo.dev/develop/development-builds/introduction/)
|
|
22
|
+
- [Android emulator](https://docs.expo.dev/workflow/android-studio-emulator/)
|
|
23
|
+
- [iOS simulator](https://docs.expo.dev/workflow/ios-simulator/)
|
|
24
|
+
- [Expo Go](https://expo.dev/go), a limited sandbox for trying out app development with Expo
|
|
25
|
+
|
|
26
|
+
You can start developing by editing the files inside the **app** directory. This project uses [file-based routing](https://docs.expo.dev/router/introduction).
|
|
27
|
+
|
|
28
|
+
## Get a fresh project
|
|
29
|
+
|
|
30
|
+
When you're ready, run:
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
npm run reset-project
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
This command will move the starter code to the **app-example** directory and create a blank **app** directory where you can start developing.
|
|
37
|
+
|
|
38
|
+
## Learn more
|
|
39
|
+
|
|
40
|
+
To learn more about developing your project with Expo, look at the following resources:
|
|
41
|
+
|
|
42
|
+
- [Expo documentation](https://docs.expo.dev/): Learn fundamentals, or go into advanced topics with our [guides](https://docs.expo.dev/guides).
|
|
43
|
+
- [Learn Expo tutorial](https://docs.expo.dev/tutorial/introduction/): Follow a step-by-step tutorial where you'll create a project that runs on Android, iOS, and the web.
|
|
44
|
+
|
|
45
|
+
## Join the community
|
|
46
|
+
|
|
47
|
+
Join our community of developers creating universal apps.
|
|
48
|
+
|
|
49
|
+
- [Expo on GitHub](https://github.com/expo/expo): View our open source platform and contribute.
|
|
50
|
+
- [Discord community](https://chat.expo.dev): Chat with Expo users and ask questions.
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { Tabs } from 'expo-router';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
|
|
4
|
+
import { HapticTab } from '@/components/haptic-tab';
|
|
5
|
+
import { IconSymbol } from '@/components/ui/icon-symbol';
|
|
6
|
+
import { Colors } from '@/constants/theme';
|
|
7
|
+
import { useColorScheme } from '@/hooks/use-color-scheme';
|
|
8
|
+
|
|
9
|
+
export default function TabLayout() {
|
|
10
|
+
const colorScheme = useColorScheme();
|
|
11
|
+
|
|
12
|
+
return (
|
|
13
|
+
<Tabs
|
|
14
|
+
screenOptions={{
|
|
15
|
+
tabBarActiveTintColor: Colors[colorScheme ?? 'light'].tint,
|
|
16
|
+
headerShown: false,
|
|
17
|
+
tabBarButton: HapticTab,
|
|
18
|
+
}}>
|
|
19
|
+
<Tabs.Screen
|
|
20
|
+
name="index"
|
|
21
|
+
options={{
|
|
22
|
+
title: 'Home',
|
|
23
|
+
tabBarIcon: ({ color }) => <IconSymbol size={28} name="house.fill" color={color} />,
|
|
24
|
+
}}
|
|
25
|
+
/>
|
|
26
|
+
<Tabs.Screen
|
|
27
|
+
name="explore"
|
|
28
|
+
options={{
|
|
29
|
+
title: 'Explore',
|
|
30
|
+
tabBarIcon: ({ color }) => <IconSymbol size={28} name="paperplane.fill" color={color} />,
|
|
31
|
+
}}
|
|
32
|
+
/>
|
|
33
|
+
</Tabs>
|
|
34
|
+
);
|
|
35
|
+
}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { Image } from 'expo-image';
|
|
2
|
+
import { Platform, StyleSheet } from 'react-native';
|
|
3
|
+
|
|
4
|
+
import { Collapsible } from '@/components/ui/collapsible';
|
|
5
|
+
import { ExternalLink } from '@/components/external-link';
|
|
6
|
+
import ParallaxScrollView from '@/components/parallax-scroll-view';
|
|
7
|
+
import { ThemedText } from '@/components/themed-text';
|
|
8
|
+
import { ThemedView } from '@/components/themed-view';
|
|
9
|
+
import { IconSymbol } from '@/components/ui/icon-symbol';
|
|
10
|
+
import { Fonts } from '@/constants/theme';
|
|
11
|
+
|
|
12
|
+
export default function TabTwoScreen() {
|
|
13
|
+
return (
|
|
14
|
+
<ParallaxScrollView
|
|
15
|
+
headerBackgroundColor={{ light: '#D0D0D0', dark: '#353636' }}
|
|
16
|
+
headerImage={
|
|
17
|
+
<IconSymbol
|
|
18
|
+
size={310}
|
|
19
|
+
color="#808080"
|
|
20
|
+
name="chevron.left.forwardslash.chevron.right"
|
|
21
|
+
style={styles.headerImage}
|
|
22
|
+
/>
|
|
23
|
+
}>
|
|
24
|
+
<ThemedView style={styles.titleContainer}>
|
|
25
|
+
<ThemedText
|
|
26
|
+
type="title"
|
|
27
|
+
style={{
|
|
28
|
+
fontFamily: Fonts.rounded,
|
|
29
|
+
}}>
|
|
30
|
+
Explore
|
|
31
|
+
</ThemedText>
|
|
32
|
+
</ThemedView>
|
|
33
|
+
<ThemedText>This app includes example code to help you get started.</ThemedText>
|
|
34
|
+
<Collapsible title="File-based routing">
|
|
35
|
+
<ThemedText>
|
|
36
|
+
This app has two screens:{' '}
|
|
37
|
+
<ThemedText type="defaultSemiBold">app/(tabs)/index.tsx</ThemedText> and{' '}
|
|
38
|
+
<ThemedText type="defaultSemiBold">app/(tabs)/explore.tsx</ThemedText>
|
|
39
|
+
</ThemedText>
|
|
40
|
+
<ThemedText>
|
|
41
|
+
The layout file in <ThemedText type="defaultSemiBold">app/(tabs)/_layout.tsx</ThemedText>{' '}
|
|
42
|
+
sets up the tab navigator.
|
|
43
|
+
</ThemedText>
|
|
44
|
+
<ExternalLink href="https://docs.expo.dev/router/introduction">
|
|
45
|
+
<ThemedText type="link">Learn more</ThemedText>
|
|
46
|
+
</ExternalLink>
|
|
47
|
+
</Collapsible>
|
|
48
|
+
<Collapsible title="Android, iOS, and web support">
|
|
49
|
+
<ThemedText>
|
|
50
|
+
You can open this project on Android, iOS, and the web. To open the web version, press{' '}
|
|
51
|
+
<ThemedText type="defaultSemiBold">w</ThemedText> in the terminal running this project.
|
|
52
|
+
</ThemedText>
|
|
53
|
+
</Collapsible>
|
|
54
|
+
<Collapsible title="Images">
|
|
55
|
+
<ThemedText>
|
|
56
|
+
For static images, you can use the <ThemedText type="defaultSemiBold">@2x</ThemedText> and{' '}
|
|
57
|
+
<ThemedText type="defaultSemiBold">@3x</ThemedText> suffixes to provide files for
|
|
58
|
+
different screen densities
|
|
59
|
+
</ThemedText>
|
|
60
|
+
<Image
|
|
61
|
+
source={require('@/assets/images/react-logo.png')}
|
|
62
|
+
style={{ width: 100, height: 100, alignSelf: 'center' }}
|
|
63
|
+
/>
|
|
64
|
+
<ExternalLink href="https://reactnative.dev/docs/images">
|
|
65
|
+
<ThemedText type="link">Learn more</ThemedText>
|
|
66
|
+
</ExternalLink>
|
|
67
|
+
</Collapsible>
|
|
68
|
+
<Collapsible title="Light and dark mode components">
|
|
69
|
+
<ThemedText>
|
|
70
|
+
This template has light and dark mode support. The{' '}
|
|
71
|
+
<ThemedText type="defaultSemiBold">useColorScheme()</ThemedText> hook lets you inspect
|
|
72
|
+
what the user's current color scheme is, and so you can adjust UI colors accordingly.
|
|
73
|
+
</ThemedText>
|
|
74
|
+
<ExternalLink href="https://docs.expo.dev/develop/user-interface/color-themes/">
|
|
75
|
+
<ThemedText type="link">Learn more</ThemedText>
|
|
76
|
+
</ExternalLink>
|
|
77
|
+
</Collapsible>
|
|
78
|
+
<Collapsible title="Animations">
|
|
79
|
+
<ThemedText>
|
|
80
|
+
This template includes an example of an animated component. The{' '}
|
|
81
|
+
<ThemedText type="defaultSemiBold">components/HelloWave.tsx</ThemedText> component uses
|
|
82
|
+
the powerful{' '}
|
|
83
|
+
<ThemedText type="defaultSemiBold" style={{ fontFamily: Fonts.mono }}>
|
|
84
|
+
react-native-reanimated
|
|
85
|
+
</ThemedText>{' '}
|
|
86
|
+
library to create a waving hand animation.
|
|
87
|
+
</ThemedText>
|
|
88
|
+
{Platform.select({
|
|
89
|
+
ios: (
|
|
90
|
+
<ThemedText>
|
|
91
|
+
The <ThemedText type="defaultSemiBold">components/ParallaxScrollView.tsx</ThemedText>{' '}
|
|
92
|
+
component provides a parallax effect for the header image.
|
|
93
|
+
</ThemedText>
|
|
94
|
+
),
|
|
95
|
+
})}
|
|
96
|
+
</Collapsible>
|
|
97
|
+
</ParallaxScrollView>
|
|
98
|
+
);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
const styles = StyleSheet.create({
|
|
102
|
+
headerImage: {
|
|
103
|
+
color: '#808080',
|
|
104
|
+
bottom: -90,
|
|
105
|
+
left: -35,
|
|
106
|
+
position: 'absolute',
|
|
107
|
+
},
|
|
108
|
+
titleContainer: {
|
|
109
|
+
flexDirection: 'row',
|
|
110
|
+
gap: 8,
|
|
111
|
+
},
|
|
112
|
+
});
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { Image } from 'expo-image';
|
|
2
|
+
import { Platform, StyleSheet } from 'react-native';
|
|
3
|
+
|
|
4
|
+
import { HelloWave } from '@/components/hello-wave';
|
|
5
|
+
import ParallaxScrollView from '@/components/parallax-scroll-view';
|
|
6
|
+
import { ThemedText } from '@/components/themed-text';
|
|
7
|
+
import { ThemedView } from '@/components/themed-view';
|
|
8
|
+
import { Link } from 'expo-router';
|
|
9
|
+
|
|
10
|
+
export default function HomeScreen() {
|
|
11
|
+
return (
|
|
12
|
+
<ParallaxScrollView
|
|
13
|
+
headerBackgroundColor={{ light: '#A1CEDC', dark: '#1D3D47' }}
|
|
14
|
+
headerImage={
|
|
15
|
+
<Image
|
|
16
|
+
source={require('@/assets/images/partial-react-logo.png')}
|
|
17
|
+
style={styles.reactLogo}
|
|
18
|
+
/>
|
|
19
|
+
}>
|
|
20
|
+
<ThemedView style={styles.titleContainer}>
|
|
21
|
+
<ThemedText type="title">Welcome!</ThemedText>
|
|
22
|
+
<HelloWave />
|
|
23
|
+
</ThemedView>
|
|
24
|
+
<ThemedView style={styles.stepContainer}>
|
|
25
|
+
<ThemedText type="subtitle">Step 1: Try it</ThemedText>
|
|
26
|
+
<ThemedText>
|
|
27
|
+
Edit <ThemedText type="defaultSemiBold">app/(tabs)/index.tsx</ThemedText> to see changes.
|
|
28
|
+
Press{' '}
|
|
29
|
+
<ThemedText type="defaultSemiBold">
|
|
30
|
+
{Platform.select({
|
|
31
|
+
ios: 'cmd + d',
|
|
32
|
+
android: 'cmd + m',
|
|
33
|
+
web: 'F12',
|
|
34
|
+
})}
|
|
35
|
+
</ThemedText>{' '}
|
|
36
|
+
to open developer tools.
|
|
37
|
+
</ThemedText>
|
|
38
|
+
</ThemedView>
|
|
39
|
+
<ThemedView style={styles.stepContainer}>
|
|
40
|
+
<Link href="/modal">
|
|
41
|
+
<Link.Trigger>
|
|
42
|
+
<ThemedText type="subtitle">Step 2: Explore</ThemedText>
|
|
43
|
+
</Link.Trigger>
|
|
44
|
+
<Link.Preview />
|
|
45
|
+
<Link.Menu>
|
|
46
|
+
<Link.MenuAction title="Action" icon="cube" onPress={() => alert('Action pressed')} />
|
|
47
|
+
<Link.MenuAction
|
|
48
|
+
title="Share"
|
|
49
|
+
icon="square.and.arrow.up"
|
|
50
|
+
onPress={() => alert('Share pressed')}
|
|
51
|
+
/>
|
|
52
|
+
<Link.Menu title="More" icon="ellipsis">
|
|
53
|
+
<Link.MenuAction
|
|
54
|
+
title="Delete"
|
|
55
|
+
icon="trash"
|
|
56
|
+
destructive
|
|
57
|
+
onPress={() => alert('Delete pressed')}
|
|
58
|
+
/>
|
|
59
|
+
</Link.Menu>
|
|
60
|
+
</Link.Menu>
|
|
61
|
+
</Link>
|
|
62
|
+
|
|
63
|
+
<ThemedText>
|
|
64
|
+
{`Tap the Explore tab to learn more about what's included in this starter app.`}
|
|
65
|
+
</ThemedText>
|
|
66
|
+
</ThemedView>
|
|
67
|
+
<ThemedView style={styles.stepContainer}>
|
|
68
|
+
<ThemedText type="subtitle">Step 3: Get a fresh start</ThemedText>
|
|
69
|
+
<ThemedText>
|
|
70
|
+
{`When you're ready, run `}
|
|
71
|
+
<ThemedText type="defaultSemiBold">npm run reset-project</ThemedText> to get a fresh{' '}
|
|
72
|
+
<ThemedText type="defaultSemiBold">app</ThemedText> directory. This will move the current{' '}
|
|
73
|
+
<ThemedText type="defaultSemiBold">app</ThemedText> to{' '}
|
|
74
|
+
<ThemedText type="defaultSemiBold">app-example</ThemedText>.
|
|
75
|
+
</ThemedText>
|
|
76
|
+
</ThemedView>
|
|
77
|
+
</ParallaxScrollView>
|
|
78
|
+
);
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
const styles = StyleSheet.create({
|
|
82
|
+
titleContainer: {
|
|
83
|
+
flexDirection: 'row',
|
|
84
|
+
alignItems: 'center',
|
|
85
|
+
gap: 8,
|
|
86
|
+
},
|
|
87
|
+
stepContainer: {
|
|
88
|
+
gap: 8,
|
|
89
|
+
marginBottom: 8,
|
|
90
|
+
},
|
|
91
|
+
reactLogo: {
|
|
92
|
+
height: 178,
|
|
93
|
+
width: 290,
|
|
94
|
+
bottom: 0,
|
|
95
|
+
left: 0,
|
|
96
|
+
position: 'absolute',
|
|
97
|
+
},
|
|
98
|
+
});
|
data/bundle-standalone/templates/mobile/react-native/javascript/expo-cli-template/app/_layout.jsx
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { DarkTheme, DefaultTheme, ThemeProvider } from '@react-navigation/native';
|
|
2
|
+
import { Stack } from 'expo-router';
|
|
3
|
+
import { StatusBar } from 'expo-status-bar';
|
|
4
|
+
import 'react-native-reanimated';
|
|
5
|
+
|
|
6
|
+
import { useColorScheme } from '@/hooks/use-color-scheme';
|
|
7
|
+
|
|
8
|
+
export const unstable_settings = {
|
|
9
|
+
anchor: '(tabs)',
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
export default function RootLayout() {
|
|
13
|
+
const colorScheme = useColorScheme();
|
|
14
|
+
|
|
15
|
+
return (
|
|
16
|
+
<ThemeProvider value={colorScheme === 'dark' ? DarkTheme : DefaultTheme}>
|
|
17
|
+
<Stack>
|
|
18
|
+
<Stack.Screen name="(tabs)" options={{ headerShown: false }} />
|
|
19
|
+
<Stack.Screen name="modal" options={{ presentation: 'modal', title: 'Modal' }} />
|
|
20
|
+
</Stack>
|
|
21
|
+
<StatusBar style="auto" />
|
|
22
|
+
</ThemeProvider>
|
|
23
|
+
);
|
|
24
|
+
}
|
data/bundle-standalone/templates/mobile/react-native/javascript/expo-cli-template/app/modal.jsx
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Link } from 'expo-router';
|
|
2
|
+
import { StyleSheet } from 'react-native';
|
|
3
|
+
|
|
4
|
+
import { ThemedText } from '@/components/themed-text';
|
|
5
|
+
import { ThemedView } from '@/components/themed-view';
|
|
6
|
+
|
|
7
|
+
export default function ModalScreen() {
|
|
8
|
+
return (
|
|
9
|
+
<ThemedView style={styles.container}>
|
|
10
|
+
<ThemedText type="title">This is a modal</ThemedText>
|
|
11
|
+
<Link href="/" dismissTo style={styles.link}>
|
|
12
|
+
<ThemedText type="link">Go to home screen</ThemedText>
|
|
13
|
+
</Link>
|
|
14
|
+
</ThemedView>
|
|
15
|
+
);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
const styles = StyleSheet.create({
|
|
19
|
+
container: {
|
|
20
|
+
flex: 1,
|
|
21
|
+
alignItems: 'center',
|
|
22
|
+
justifyContent: 'center',
|
|
23
|
+
padding: 20,
|
|
24
|
+
},
|
|
25
|
+
link: {
|
|
26
|
+
marginTop: 15,
|
|
27
|
+
paddingVertical: 15,
|
|
28
|
+
},
|
|
29
|
+
});
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
{
|
|
2
|
+
"expo": {
|
|
3
|
+
"name": "movies-mobile-app",
|
|
4
|
+
"slug": "movies-mobile-app",
|
|
5
|
+
"version": "1.0.0",
|
|
6
|
+
"orientation": "portrait",
|
|
7
|
+
"icon": "./assets/images/icon.png",
|
|
8
|
+
"scheme": "moviesmobileapp",
|
|
9
|
+
"userInterfaceStyle": "automatic",
|
|
10
|
+
"newArchEnabled": true,
|
|
11
|
+
"ios": {
|
|
12
|
+
"supportsTablet": true
|
|
13
|
+
},
|
|
14
|
+
"android": {
|
|
15
|
+
"adaptiveIcon": {
|
|
16
|
+
"backgroundColor": "#E6F4FE",
|
|
17
|
+
"foregroundImage": "./assets/images/android-icon-foreground.png",
|
|
18
|
+
"backgroundImage": "./assets/images/android-icon-background.png",
|
|
19
|
+
"monochromeImage": "./assets/images/android-icon-monochrome.png"
|
|
20
|
+
},
|
|
21
|
+
"edgeToEdgeEnabled": true,
|
|
22
|
+
"predictiveBackGestureEnabled": false
|
|
23
|
+
},
|
|
24
|
+
"web": {
|
|
25
|
+
"output": "static",
|
|
26
|
+
"favicon": "./assets/images/favicon.png"
|
|
27
|
+
},
|
|
28
|
+
"plugins": [
|
|
29
|
+
"expo-router",
|
|
30
|
+
[
|
|
31
|
+
"expo-splash-screen",
|
|
32
|
+
{
|
|
33
|
+
"image": "./assets/images/splash-icon.png",
|
|
34
|
+
"imageWidth": 200,
|
|
35
|
+
"resizeMode": "contain",
|
|
36
|
+
"backgroundColor": "#ffffff",
|
|
37
|
+
"dark": {
|
|
38
|
+
"backgroundColor": "#000000"
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
]
|
|
42
|
+
],
|
|
43
|
+
"experiments": {
|
|
44
|
+
"typedRoutes": true,
|
|
45
|
+
"reactCompiler": true
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Href, Link } from 'expo-router';
|
|
2
|
+
import { openBrowserAsync, WebBrowserPresentationStyle } from 'expo-web-browser';
|
|
3
|
+
import { type ComponentProps } from 'react';
|
|
4
|
+
|
|
5
|
+
type Props = Omit<ComponentProps<typeof Link>, 'href'> & { href: Href & string };
|
|
6
|
+
|
|
7
|
+
export function ExternalLink({ href, ...rest }: Props) {
|
|
8
|
+
return (
|
|
9
|
+
<Link
|
|
10
|
+
target="_blank"
|
|
11
|
+
{...rest}
|
|
12
|
+
href={href}
|
|
13
|
+
onPress={async (event) => {
|
|
14
|
+
if (process.env.EXPO_OS !== 'web') {
|
|
15
|
+
// Prevent the default behavior of linking to the default browser on native.
|
|
16
|
+
event.preventDefault();
|
|
17
|
+
// Open the link in an in-app browser.
|
|
18
|
+
await openBrowserAsync(href, {
|
|
19
|
+
presentationStyle: WebBrowserPresentationStyle.AUTOMATIC,
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
}}
|
|
23
|
+
/>
|
|
24
|
+
);
|
|
25
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { BottomTabBarButtonProps } from '@react-navigation/bottom-tabs';
|
|
2
|
+
import { PlatformPressable } from '@react-navigation/elements';
|
|
3
|
+
import * as Haptics from 'expo-haptics';
|
|
4
|
+
|
|
5
|
+
export function HapticTab(props: BottomTabBarButtonProps) {
|
|
6
|
+
return (
|
|
7
|
+
<PlatformPressable
|
|
8
|
+
{...props}
|
|
9
|
+
onPressIn={(ev) => {
|
|
10
|
+
if (process.env.EXPO_OS === 'ios') {
|
|
11
|
+
// Add a soft haptic feedback when pressing down on the tabs.
|
|
12
|
+
Haptics.impactAsync(Haptics.ImpactFeedbackStyle.Light);
|
|
13
|
+
}
|
|
14
|
+
props.onPressIn?.(ev);
|
|
15
|
+
}}
|
|
16
|
+
/>
|
|
17
|
+
);
|
|
18
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import Animated from 'react-native-reanimated';
|
|
2
|
+
|
|
3
|
+
export function HelloWave() {
|
|
4
|
+
return (
|
|
5
|
+
<Animated.Text
|
|
6
|
+
style={{
|
|
7
|
+
fontSize: 28,
|
|
8
|
+
lineHeight: 32,
|
|
9
|
+
marginTop: -6,
|
|
10
|
+
animationName: {
|
|
11
|
+
'50%': { transform: [{ rotate: '25deg' }] },
|
|
12
|
+
},
|
|
13
|
+
animationIterationCount: 4,
|
|
14
|
+
animationDuration: '300ms',
|
|
15
|
+
}}>
|
|
16
|
+
👋
|
|
17
|
+
</Animated.Text>
|
|
18
|
+
);
|
|
19
|
+
}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import type { PropsWithChildren, ReactElement } from 'react';
|
|
2
|
+
import { StyleSheet } from 'react-native';
|
|
3
|
+
import Animated, {
|
|
4
|
+
interpolate,
|
|
5
|
+
useAnimatedRef,
|
|
6
|
+
useAnimatedStyle,
|
|
7
|
+
useScrollOffset,
|
|
8
|
+
} from 'react-native-reanimated';
|
|
9
|
+
|
|
10
|
+
import { ThemedView } from '@/components/themed-view';
|
|
11
|
+
import { useColorScheme } from '@/hooks/use-color-scheme';
|
|
12
|
+
import { useThemeColor } from '@/hooks/use-theme-color';
|
|
13
|
+
|
|
14
|
+
const HEADER_HEIGHT = 250;
|
|
15
|
+
|
|
16
|
+
type Props = PropsWithChildren<{
|
|
17
|
+
headerImage: ReactElement;
|
|
18
|
+
headerBackgroundColor: { dark: string; light: string };
|
|
19
|
+
}>;
|
|
20
|
+
|
|
21
|
+
export default function ParallaxScrollView({
|
|
22
|
+
children,
|
|
23
|
+
headerImage,
|
|
24
|
+
headerBackgroundColor,
|
|
25
|
+
}: Props) {
|
|
26
|
+
const backgroundColor = useThemeColor({}, 'background');
|
|
27
|
+
const colorScheme = useColorScheme() ?? 'light';
|
|
28
|
+
const scrollRef = useAnimatedRef<Animated.ScrollView>();
|
|
29
|
+
const scrollOffset = useScrollOffset(scrollRef);
|
|
30
|
+
const headerAnimatedStyle = useAnimatedStyle(() => {
|
|
31
|
+
return {
|
|
32
|
+
transform: [
|
|
33
|
+
{
|
|
34
|
+
translateY: interpolate(
|
|
35
|
+
scrollOffset.value,
|
|
36
|
+
[-HEADER_HEIGHT, 0, HEADER_HEIGHT],
|
|
37
|
+
[-HEADER_HEIGHT / 2, 0, HEADER_HEIGHT * 0.75]
|
|
38
|
+
),
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
scale: interpolate(scrollOffset.value, [-HEADER_HEIGHT, 0, HEADER_HEIGHT], [2, 1, 1]),
|
|
42
|
+
},
|
|
43
|
+
],
|
|
44
|
+
};
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
return (
|
|
48
|
+
<Animated.ScrollView
|
|
49
|
+
ref={scrollRef}
|
|
50
|
+
style={{ backgroundColor, flex: 1 }}
|
|
51
|
+
scrollEventThrottle={16}>
|
|
52
|
+
<Animated.View
|
|
53
|
+
style={[
|
|
54
|
+
styles.header,
|
|
55
|
+
{ backgroundColor: headerBackgroundColor[colorScheme] },
|
|
56
|
+
headerAnimatedStyle,
|
|
57
|
+
]}>
|
|
58
|
+
{headerImage}
|
|
59
|
+
</Animated.View>
|
|
60
|
+
<ThemedView style={styles.content}>{children}</ThemedView>
|
|
61
|
+
</Animated.ScrollView>
|
|
62
|
+
);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
const styles = StyleSheet.create({
|
|
66
|
+
container: {
|
|
67
|
+
flex: 1,
|
|
68
|
+
},
|
|
69
|
+
header: {
|
|
70
|
+
height: HEADER_HEIGHT,
|
|
71
|
+
overflow: 'hidden',
|
|
72
|
+
},
|
|
73
|
+
content: {
|
|
74
|
+
flex: 1,
|
|
75
|
+
padding: 32,
|
|
76
|
+
gap: 16,
|
|
77
|
+
overflow: 'hidden',
|
|
78
|
+
},
|
|
79
|
+
});
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { StyleSheet, Text, type TextProps } from 'react-native';
|
|
2
|
+
|
|
3
|
+
import { useThemeColor } from '@/hooks/use-theme-color';
|
|
4
|
+
|
|
5
|
+
export type ThemedTextProps = TextProps & {
|
|
6
|
+
lightColor?: string;
|
|
7
|
+
darkColor?: string;
|
|
8
|
+
type?: 'default' | 'title' | 'defaultSemiBold' | 'subtitle' | 'link';
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
export function ThemedText({
|
|
12
|
+
style,
|
|
13
|
+
lightColor,
|
|
14
|
+
darkColor,
|
|
15
|
+
type = 'default',
|
|
16
|
+
...rest
|
|
17
|
+
}: ThemedTextProps) {
|
|
18
|
+
const color = useThemeColor({ light: lightColor, dark: darkColor }, 'text');
|
|
19
|
+
|
|
20
|
+
return (
|
|
21
|
+
<Text
|
|
22
|
+
style={[
|
|
23
|
+
{ color },
|
|
24
|
+
type === 'default' ? styles.default : undefined,
|
|
25
|
+
type === 'title' ? styles.title : undefined,
|
|
26
|
+
type === 'defaultSemiBold' ? styles.defaultSemiBold : undefined,
|
|
27
|
+
type === 'subtitle' ? styles.subtitle : undefined,
|
|
28
|
+
type === 'link' ? styles.link : undefined,
|
|
29
|
+
style,
|
|
30
|
+
]}
|
|
31
|
+
{...rest}
|
|
32
|
+
/>
|
|
33
|
+
);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
const styles = StyleSheet.create({
|
|
37
|
+
default: {
|
|
38
|
+
fontSize: 16,
|
|
39
|
+
lineHeight: 24,
|
|
40
|
+
},
|
|
41
|
+
defaultSemiBold: {
|
|
42
|
+
fontSize: 16,
|
|
43
|
+
lineHeight: 24,
|
|
44
|
+
fontWeight: '600',
|
|
45
|
+
},
|
|
46
|
+
title: {
|
|
47
|
+
fontSize: 32,
|
|
48
|
+
fontWeight: 'bold',
|
|
49
|
+
lineHeight: 32,
|
|
50
|
+
},
|
|
51
|
+
subtitle: {
|
|
52
|
+
fontSize: 20,
|
|
53
|
+
fontWeight: 'bold',
|
|
54
|
+
},
|
|
55
|
+
link: {
|
|
56
|
+
lineHeight: 30,
|
|
57
|
+
fontSize: 16,
|
|
58
|
+
color: '#0a7ea4',
|
|
59
|
+
},
|
|
60
|
+
});
|