diff --git a/.eslintrc.js b/.eslintrc.js index 974e60e..768d25d 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -15,5 +15,10 @@ module.exports = { }, ], }, - ignorePatterns: ['**/lib/**', '**/dist/**', '**/node_modules/**'], + ignorePatterns: [ + '**/lib/**', + '**/dist/**', + '**/node_modules/**', + 'expo-env.d.ts', + ], }; diff --git a/apps/example-expo/app/(tabs)/_layout.tsx b/apps/example-expo/app/(tabs)/_layout.tsx index 3ffbc93..781ff94 100644 --- a/apps/example-expo/app/(tabs)/_layout.tsx +++ b/apps/example-expo/app/(tabs)/_layout.tsx @@ -1,7 +1,7 @@ import React from 'react'; import { withLayoutContext } from 'expo-router'; -import createNativeBottomTabNavigator from '../../../../packages/react-native-bottom-tabs/src/react-navigation/navigators/createNativeBottomTabNavigator'; +import { createNativeBottomTabNavigator } from '@bottom-tabs/react-navigation'; const Tabs = withLayoutContext(createNativeBottomTabNavigator().Navigator); diff --git a/apps/example-expo/app/(tabs)/explore.tsx b/apps/example-expo/app/(tabs)/explore.tsx index bf21f98..8c2ce7e 100644 --- a/apps/example-expo/app/(tabs)/explore.tsx +++ b/apps/example-expo/app/(tabs)/explore.tsx @@ -1,9 +1,9 @@ import { StyleSheet, Image } from 'react-native'; -import { Collapsible } from '@/components/Collapsible'; -import { ExternalLink } from '@/components/ExternalLink'; -import { ThemedText } from '@/components/ThemedText'; -import { ThemedView } from '@/components/ThemedView'; +import { Collapsible } from '../../components/Collapsible'; +import { ExternalLink } from '../../components/ExternalLink'; +import { ThemedText } from '../../components/ThemedText'; +import { ThemedView } from '../../components/ThemedView'; import { ScrollView } from 'react-native-gesture-handler'; function TabTwoScreen() { @@ -46,7 +46,7 @@ function TabTwoScreen() { provide files for different screen densities diff --git a/apps/example-expo/app/(tabs)/index.tsx b/apps/example-expo/app/(tabs)/index.tsx index 5a8cf5a..0036610 100644 --- a/apps/example-expo/app/(tabs)/index.tsx +++ b/apps/example-expo/app/(tabs)/index.tsx @@ -1,7 +1,7 @@ import { ScrollView, StyleSheet, Platform } from 'react-native'; -import { ThemedText } from '@/components/ThemedText'; -import { ThemedView } from '@/components/ThemedView'; +import { ThemedText } from '../../components/ThemedText'; +import { ThemedView } from '../../components/ThemedView'; function HomeScreen() { return ( diff --git a/apps/example-expo/app/+not-found.tsx b/apps/example-expo/app/+not-found.tsx index 963b04f..597d65a 100644 --- a/apps/example-expo/app/+not-found.tsx +++ b/apps/example-expo/app/+not-found.tsx @@ -1,8 +1,8 @@ import { Link, Stack } from 'expo-router'; import { StyleSheet } from 'react-native'; -import { ThemedText } from '@/components/ThemedText'; -import { ThemedView } from '@/components/ThemedView'; +import { ThemedText } from '../components/ThemedText'; +import { ThemedView } from '../components/ThemedView'; export default function NotFoundScreen() { return ( diff --git a/apps/example-expo/app/_layout.tsx b/apps/example-expo/app/_layout.tsx index fc7d915..3f67433 100644 --- a/apps/example-expo/app/_layout.tsx +++ b/apps/example-expo/app/_layout.tsx @@ -9,7 +9,7 @@ import * as SplashScreen from 'expo-splash-screen'; import { StatusBar } from 'expo-status-bar'; import { useEffect } from 'react'; -import { useColorScheme } from '@/hooks/useColorScheme'; +import { useColorScheme } from '../hooks/useColorScheme'; // Prevent the splash screen from auto-hiding before asset loading is complete. SplashScreen.preventAutoHideAsync(); diff --git a/apps/example-expo/babel.config.js b/apps/example-expo/babel.config.js index 4af334f..1ef41db 100644 --- a/apps/example-expo/babel.config.js +++ b/apps/example-expo/babel.config.js @@ -1,21 +1,43 @@ const path = require('path'); -const pak = require('../../packages/react-native-bottom-tabs/package.json'); +const fs = require('fs'); -module.exports = { - presets: ['babel-preset-expo'], - plugins: [ - [ - 'module-resolver', +const packages = path.resolve(__dirname, '..', '..', 'packages'); + +/** @type {import('@babel/core').TransformOptions} */ +module.exports = function (api) { + api.cache(true); + + const alias = Object.fromEntries( + fs + .readdirSync(packages) + .filter((name) => !name.startsWith('.')) + .map((name) => { + const pak = require(`../../packages/${name}/package.json`); + + if (pak.source == null) { + return null; + } + + return [pak.name, path.resolve(packages, name, pak.source)]; + }) + .filter(Boolean) + ); + + return { + presets: ['babel-preset-expo'], + overrides: [ { - extensions: ['.tsx', '.ts', '.js', '.json'], - alias: { - 'react-native-bottom-tabs': path.join( - __dirname, - '../../packages/react-native-bottom-tabs', - pak.source - ), - }, + exclude: /\/node_modules\//, + plugins: [ + [ + 'module-resolver', + { + extensions: ['.tsx', '.ts', '.js', '.json'], + alias, + }, + ], + ], }, ], - ], + }; }; diff --git a/apps/example-expo/components/Collapsible.tsx b/apps/example-expo/components/Collapsible.tsx index b8ca4b6..663d157 100644 --- a/apps/example-expo/components/Collapsible.tsx +++ b/apps/example-expo/components/Collapsible.tsx @@ -1,8 +1,8 @@ import { PropsWithChildren, useState } from 'react'; import { StyleSheet, TouchableOpacity } from 'react-native'; -import { ThemedText } from '@/components/ThemedText'; -import { ThemedView } from '@/components/ThemedView'; +import { ThemedText } from './ThemedText'; +import { ThemedView } from './ThemedView'; export function Collapsible({ children, diff --git a/apps/example-expo/components/ThemedText.tsx b/apps/example-expo/components/ThemedText.tsx index c0e1a78..f6c4a60 100644 --- a/apps/example-expo/components/ThemedText.tsx +++ b/apps/example-expo/components/ThemedText.tsx @@ -1,6 +1,6 @@ import { Text, type TextProps, StyleSheet } from 'react-native'; -import { useThemeColor } from '@/hooks/useThemeColor'; +import { useThemeColor } from '../hooks/useThemeColor'; export type ThemedTextProps = TextProps & { lightColor?: string; diff --git a/apps/example-expo/components/ThemedView.tsx b/apps/example-expo/components/ThemedView.tsx index af42a9f..0b78fbb 100644 --- a/apps/example-expo/components/ThemedView.tsx +++ b/apps/example-expo/components/ThemedView.tsx @@ -1,6 +1,6 @@ import { View, type ViewProps } from 'react-native'; -import { useThemeColor } from '@/hooks/useThemeColor'; +import { useThemeColor } from '../hooks/useThemeColor'; export type ThemedViewProps = ViewProps & { lightColor?: string; diff --git a/apps/example-expo/hooks/useThemeColor.ts b/apps/example-expo/hooks/useThemeColor.ts index ae43b47..381557e 100644 --- a/apps/example-expo/hooks/useThemeColor.ts +++ b/apps/example-expo/hooks/useThemeColor.ts @@ -5,7 +5,7 @@ import { useColorScheme } from 'react-native'; -import { Colors } from '@/constants/Colors'; +import { Colors } from '../constants/Colors'; export function useThemeColor( props: { light?: string; dark?: string }, diff --git a/apps/example-expo/package.json b/apps/example-expo/package.json index 9e5ce61..d332dbc 100644 --- a/apps/example-expo/package.json +++ b/apps/example-expo/package.json @@ -18,8 +18,8 @@ "preset": "jest-expo" }, "dependencies": { + "@bottom-tabs/react-navigation": "*", "@expo/vector-icons": "^14.0.2", - "@react-navigation/bottom-tabs": "^6.1.18", "@react-navigation/native": "^6.1.18", "expo": "~51.0.39", "expo-build-properties": "~0.12.5", diff --git a/apps/example-expo/tsconfig.json b/apps/example-expo/tsconfig.json index e9c7d6a..6f26667 100644 --- a/apps/example-expo/tsconfig.json +++ b/apps/example-expo/tsconfig.json @@ -1,18 +1,15 @@ { - "extends": "expo/tsconfig.base", - "compilerOptions": { - "strict": true, - "paths": { - "react-native-bottom-tabs": [ - "../../packages/react-native-bottom-tabs/src/index" - ], - "react-native-bottom-tabs/react-navigation": [ - "../../packages/react-native-bottom-tabs/src/react-navigation/index" - ], - "@/*": [ - "./*" - ] + "extends": "../../tsconfig.json", + "references": [ + { + "path": "../../packages/react-native-bottom-tabs" + }, + { + "path": "../../packages/react-navigation" } + ], + "compilerOptions": { + "rootDir": "." }, "include": [ "**/*.ts", diff --git a/apps/example/babel.config.js b/apps/example/babel.config.js index 01ecc08..937a168 100644 --- a/apps/example/babel.config.js +++ b/apps/example/babel.config.js @@ -1,21 +1,43 @@ const path = require('path'); -const pak = require('../../packages/react-native-bottom-tabs/package.json'); +const fs = require('fs'); -module.exports = { - presets: ['module:@react-native/babel-preset'], - plugins: [ - [ - 'module-resolver', +const packages = path.resolve(__dirname, '..', '..', 'packages'); + +/** @type {import('@babel/core').TransformOptions} */ +module.exports = function (api) { + api.cache(true); + + const alias = Object.fromEntries( + fs + .readdirSync(packages) + .filter((name) => !name.startsWith('.')) + .map((name) => { + const pak = require(`../../packages/${name}/package.json`); + + if (pak.source == null) { + return null; + } + + return [pak.name, path.resolve(packages, name, pak.source)]; + }) + .filter(Boolean) + ); + + return { + presets: ['module:@react-native/babel-preset'], + overrides: [ { - extensions: ['.tsx', '.ts', '.js', '.json'], - alias: { - 'react-native-bottom-tabs': path.join( - __dirname, - '../../packages/react-native-bottom-tabs', - pak.source - ), - }, + exclude: /\/node_modules\//, + plugins: [ + [ + 'module-resolver', + { + extensions: ['.tsx', '.ts', '.js', '.json'], + alias, + }, + ], + ], }, ], - ], + }; }; diff --git a/apps/example/package.json b/apps/example/package.json index c01dd83..872439f 100644 --- a/apps/example/package.json +++ b/apps/example/package.json @@ -14,6 +14,7 @@ "visionos": "react-native run-visionos" }, "dependencies": { + "@bottom-tabs/react-navigation": "*", "@callstack/react-native-visionos": "^0.75.0", "@react-navigation/bottom-tabs": "^6.6.1", "@react-navigation/native": "^6.1.18", diff --git a/apps/example/src/Examples/JSBottomTabs.tsx b/apps/example/src/Examples/JSBottomTabs.tsx index aebb4ed..1b7f740 100644 --- a/apps/example/src/Examples/JSBottomTabs.tsx +++ b/apps/example/src/Examples/JSBottomTabs.tsx @@ -1,4 +1,3 @@ -import * as React from 'react'; import { createBottomTabNavigator } from '@react-navigation/bottom-tabs'; import { Article } from '../Screens/Article'; import { Albums } from '../Screens/Albums'; diff --git a/apps/example/src/Examples/NativeBottomTabs.tsx b/apps/example/src/Examples/NativeBottomTabs.tsx index 82fe8ee..07043b6 100644 --- a/apps/example/src/Examples/NativeBottomTabs.tsx +++ b/apps/example/src/Examples/NativeBottomTabs.tsx @@ -1,10 +1,8 @@ -import * as React from 'react'; import { Article } from '../Screens/Article'; import { Albums } from '../Screens/Albums'; import { Contacts } from '../Screens/Contacts'; import { Chat } from '../Screens/Chat'; -// This import works properly when library is published -import createNativeBottomTabNavigator from '../../../../packages/react-native-bottom-tabs/src/react-navigation/navigators/createNativeBottomTabNavigator'; +import { createNativeBottomTabNavigator } from '@bottom-tabs/react-navigation'; import { Platform } from 'react-native'; const Tab = createNativeBottomTabNavigator(); diff --git a/apps/example/src/Examples/NativeBottomTabsEmbeddedStacks.tsx b/apps/example/src/Examples/NativeBottomTabsEmbeddedStacks.tsx index 24a7a3f..2484d0b 100644 --- a/apps/example/src/Examples/NativeBottomTabsEmbeddedStacks.tsx +++ b/apps/example/src/Examples/NativeBottomTabsEmbeddedStacks.tsx @@ -2,7 +2,7 @@ import { Article } from '../Screens/Article'; import { Albums } from '../Screens/Albums'; import { Contacts } from '../Screens/Contacts'; import { Chat } from '../Screens/Chat'; -import createNativeBottomTabNavigator from '../../../../packages/react-native-bottom-tabs/src/react-navigation/navigators/createNativeBottomTabNavigator'; +import { createNativeBottomTabNavigator } from '@bottom-tabs/react-navigation'; import { createNativeStackNavigator } from '@react-navigation/native-stack'; const headerOptions = { diff --git a/apps/example/src/Examples/NativeBottomTabsRemoteIcons.tsx b/apps/example/src/Examples/NativeBottomTabsRemoteIcons.tsx index 401efda..1e67485 100644 --- a/apps/example/src/Examples/NativeBottomTabsRemoteIcons.tsx +++ b/apps/example/src/Examples/NativeBottomTabsRemoteIcons.tsx @@ -1,10 +1,8 @@ -import * as React from 'react'; import { Article } from '../Screens/Article'; import { Albums } from '../Screens/Albums'; import { Contacts } from '../Screens/Contacts'; import { Chat } from '../Screens/Chat'; -// This import works properly when library is published -import createNativeBottomTabNavigator from '../../../../packages/react-native-bottom-tabs/src/react-navigation/navigators/createNativeBottomTabNavigator'; +import { createNativeBottomTabNavigator } from '@bottom-tabs/react-navigation'; const Tab = createNativeBottomTabNavigator(); diff --git a/apps/example/src/Examples/NativeBottomTabsSVGs.tsx b/apps/example/src/Examples/NativeBottomTabsSVGs.tsx index 2a5eae0..5caba90 100644 --- a/apps/example/src/Examples/NativeBottomTabsSVGs.tsx +++ b/apps/example/src/Examples/NativeBottomTabsSVGs.tsx @@ -1,10 +1,8 @@ -import * as React from 'react'; import { Article } from '../Screens/Article'; import { Albums } from '../Screens/Albums'; import { Contacts } from '../Screens/Contacts'; import { Chat } from '../Screens/Chat'; -// This import works properly when library is published -import createNativeBottomTabNavigator from '../../../../packages/react-native-bottom-tabs/src/react-navigation/navigators/createNativeBottomTabNavigator'; +import { createNativeBottomTabNavigator } from '@bottom-tabs/react-navigation'; const Tab = createNativeBottomTabNavigator(); diff --git a/apps/example/src/Examples/NativeBottomTabsVectorIcons.tsx b/apps/example/src/Examples/NativeBottomTabsVectorIcons.tsx index d73ff84..ebbea9c 100644 --- a/apps/example/src/Examples/NativeBottomTabsVectorIcons.tsx +++ b/apps/example/src/Examples/NativeBottomTabsVectorIcons.tsx @@ -1,10 +1,8 @@ -import * as React from 'react'; import { Article } from '../Screens/Article'; import { Albums } from '../Screens/Albums'; import { Contacts } from '../Screens/Contacts'; import { Chat } from '../Screens/Chat'; -// This import works properly when library is published -import createNativeBottomTabNavigator from '../../../../packages/react-native-bottom-tabs/src/react-navigation/navigators/createNativeBottomTabNavigator'; +import { createNativeBottomTabNavigator } from '@bottom-tabs/react-navigation'; import { Platform } from 'react-native'; import Icon from 'react-native-vector-icons/MaterialCommunityIcons'; diff --git a/apps/example/src/Examples/SFSymbols.tsx b/apps/example/src/Examples/SFSymbols.tsx index 3160c44..827844f 100644 --- a/apps/example/src/Examples/SFSymbols.tsx +++ b/apps/example/src/Examples/SFSymbols.tsx @@ -1,4 +1,3 @@ -import * as React from 'react'; import TabView, { SceneMap } from 'react-native-bottom-tabs'; import { useState } from 'react'; import { Article } from '../Screens/Article'; diff --git a/apps/example/src/Examples/ThreeTabs.tsx b/apps/example/src/Examples/ThreeTabs.tsx index e31419e..8c86747 100644 --- a/apps/example/src/Examples/ThreeTabs.tsx +++ b/apps/example/src/Examples/ThreeTabs.tsx @@ -1,4 +1,3 @@ -import * as React from 'react'; import TabView, { SceneMap } from 'react-native-bottom-tabs'; import { useState } from 'react'; import { Article } from '../Screens/Article'; diff --git a/apps/example/tsconfig.json b/apps/example/tsconfig.json index e2802a7..5a72006 100644 --- a/apps/example/tsconfig.json +++ b/apps/example/tsconfig.json @@ -1,30 +1,10 @@ { + "extends": "../../tsconfig", + "references": [ + { "path": "../../packages/react-native-bottom-tabs" }, + { "path": "../../packages/react-navigation" }, + ], "compilerOptions": { - "paths": { - "react-native-bottom-tabs": ["../../packages/react-native-bottom-tabs/src/index"], -"react-native-bottom-tabs/react-navigation": [ - "../../packages/react-native-bottom-tabs/src/react-navigation/index" - ] - }, - "allowUnreachableCode": false, - "allowUnusedLabels": false, - "esModuleInterop": true, - "forceConsistentCasingInFileNames": true, - "jsx": "react-jsx", - "lib": ["ESNext"], - "module": "ESNext", - "moduleResolution": "Bundler", - "noFallthroughCasesInSwitch": true, - "noImplicitReturns": true, - "noImplicitUseStrict": false, - "noStrictGenericChecks": false, - "noUncheckedIndexedAccess": true, - "noUnusedLocals": true, - "noUnusedParameters": true, - "resolveJsonModule": true, - "skipLibCheck": true, - "strict": true, - "target": "ESNext", - "verbatimModuleSyntax": true + "rootDir": "." } } diff --git a/package.json b/package.json index 824ffa1..c6ce612 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "name": "@native-tabs/monorepo", + "name": "@bottom-tabs/monorepo", "private": true, "workspaces": { "packages": [ @@ -30,6 +30,7 @@ "eslint": "^8.51.0", "eslint-config-prettier": "^9.0.0", "eslint-plugin-prettier": "^5.0.1", + "jest": "^29.7.0", "prettier": "^3.0.3", "turbo": "^2.1.0", "typescript": "^5.2.2" @@ -39,6 +40,13 @@ "@commitlint/config-conventional" ] }, + "jest": { + "preset": "react-native", + "modulePathIgnorePatterns": [ + "/example/node_modules", + "/lib/" + ] + }, "prettier": { "quoteProps": "consistent", "singleQuote": true, diff --git a/packages/react-native-bottom-tabs/package.json b/packages/react-native-bottom-tabs/package.json index 25f9593..2c82881 100644 --- a/packages/react-native-bottom-tabs/package.json +++ b/packages/react-native-bottom-tabs/package.json @@ -5,7 +5,8 @@ "source": "./src/index.tsx", "main": "./lib/commonjs/index.js", "module": "./lib/module/index.js", - "types": "./lib/typescript/module/src/index.d.ts", + "types": "./lib/typescript/commonjs/src/index.d.ts", + "sideEffects": false, "exports": { ".": { "import": { @@ -17,16 +18,6 @@ "default": "./lib/commonjs/index.js" } }, - "./react-navigation": { - "import": { - "types": "./lib/typescript/module/src/react-navigation/index.d.ts", - "default": "./lib/module/react-navigation/index.js" - }, - "require": { - "types": "./lib/typescript/commonjs/src/react-navigation/index.d.ts", - "default": "./lib/commonjs/react-navigation/index.js" - } - }, "./package.json": "./package.json", "./app.plugin.js": "./app.plugin.js" }, @@ -78,18 +69,11 @@ "registry": "https://registry.npmjs.org/" }, "devDependencies": { - "@commitlint/config-conventional": "^17.0.2", - "@evilmartians/lefthook": "^1.5.0", "@expo/config-plugins": "^7.0.0 || ^8.0.0", "@react-native/babel-preset": "0.76.2", "@react-native/eslint-config": "0.76.2", - "@react-navigation/native": "^6.1.18", - "@types/color": "^3.0.6", "@types/jest": "^29.5.5", "@types/react": "^18.2.44", - "commitlint": "^17.0.2", - "del-cli": "^5.1.0", - "jest": "^29.7.0", "react": "18.3.1", "react-native": "0.75.4", "react-native-builder-bob": "^0.30.2", @@ -97,28 +81,9 @@ "typescript": "^5.2.2" }, "peerDependencies": { - "@react-navigation/native": ">=6", "react": "*", "react-native": "*" }, - "peerDependenciesMeta": { - "@react-navigation/native": { - "optional": true - } - }, - "packageManager": "yarn@3.6.1", - "jest": { - "preset": "react-native", - "modulePathIgnorePatterns": [ - "/example/node_modules", - "/lib/" - ] - }, - "commitlint": { - "extends": [ - "@commitlint/config-conventional" - ] - }, "release-it": { "git": { "commitMessage": "chore: release ${version}", @@ -163,7 +128,6 @@ "version": "0.41.2" }, "dependencies": { - "color": "^4.2.3", "sf-symbols-typescript": "^2.0.0", "use-latest-callback": "^0.2.1" }, diff --git a/packages/react-native-bottom-tabs/react-navigation/package.json b/packages/react-native-bottom-tabs/react-navigation/package.json deleted file mode 100644 index dd5e713..0000000 --- a/packages/react-native-bottom-tabs/react-navigation/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "main": "../lib/commonjs/react-navigation/index.js", - "module": "../lib/module/react-navigation/index.js", - "types": "../lib/typescript/module/src/react-navigation/index.d.ts", - "exports": { - ".": { - "import": { - "types": "../lib/typescript/module/src/react-navigation/index.d.ts", - "default": "../lib/module/react-navigation/index.js" - }, - "require": { - "types": "./lib/typescript/commonjs/src/index.d.ts", - "default": "../lib/commonjs/src/react-navigation/index.js" - } - } - } -} diff --git a/packages/react-native-bottom-tabs/src/index.tsx b/packages/react-native-bottom-tabs/src/index.tsx index 5442084..356f5e7 100644 --- a/packages/react-native-bottom-tabs/src/index.tsx +++ b/packages/react-native-bottom-tabs/src/index.tsx @@ -2,4 +2,6 @@ import TabView from './TabView'; export { SceneMap } from './SceneMap'; +export type { AppleIcon } from './types'; + export default TabView; diff --git a/packages/react-native-bottom-tabs/tsconfig.build.json b/packages/react-native-bottom-tabs/tsconfig.build.json index 3469944..efd2e0a 100644 --- a/packages/react-native-bottom-tabs/tsconfig.build.json +++ b/packages/react-native-bottom-tabs/tsconfig.build.json @@ -1,4 +1,7 @@ { "extends": "./tsconfig", + "compilerOptions": { + "paths": {} + }, "exclude": ["lib"] } diff --git a/packages/react-native-bottom-tabs/tsconfig.json b/packages/react-native-bottom-tabs/tsconfig.json index b4f9cc7..36e0e38 100644 --- a/packages/react-native-bottom-tabs/tsconfig.json +++ b/packages/react-native-bottom-tabs/tsconfig.json @@ -1,31 +1,6 @@ { + "extends": "../../tsconfig", "compilerOptions": { "rootDir": ".", - "paths": { - "react-native-bottom-tabs": ["./src/index"], - "react-native-bottom-tabs/react-navigation": [ - "./src/react-navigation/index" - ] - }, - "allowUnreachableCode": false, - "allowUnusedLabels": false, - "esModuleInterop": true, - "forceConsistentCasingInFileNames": true, - "jsx": "react-jsx", - "lib": ["ESNext"], - "module": "ESNext", - "moduleResolution": "Bundler", - "noEmit": true, - "noFallthroughCasesInSwitch": true, - "noImplicitReturns": true, - "noImplicitUseStrict": false, - "noStrictGenericChecks": false, - "noUncheckedIndexedAccess": true, - "noUnusedLocals": true, - "noUnusedParameters": true, - "resolveJsonModule": true, - "skipLibCheck": true, - "strict": true, - "target": "ESNext" } } diff --git a/packages/react-navigation/babel.config.js b/packages/react-navigation/babel.config.js new file mode 100644 index 0000000..29f3a60 --- /dev/null +++ b/packages/react-navigation/babel.config.js @@ -0,0 +1,5 @@ +module.exports = { + presets: [ + ['module:react-native-builder-bob/babel-preset', { modules: 'commonjs' }], + ], +}; diff --git a/packages/react-navigation/package.json b/packages/react-navigation/package.json new file mode 100644 index 0000000..48117c5 --- /dev/null +++ b/packages/react-navigation/package.json @@ -0,0 +1,125 @@ +{ + "name": "@bottom-tabs/react-navigation", + "version": "0.5.2", + "description": "React Native Bottom Tabs React Navigation integration", + "source": "./src/index.tsx", + "main": "./lib/commonjs/index.js", + "module": "./lib/module/index.js", + "types": "./lib/typescript/commonjs/src/index.d.ts", + "sideEffects": false, + "exports": { + ".": { + "import": { + "types": "./lib/typescript/module/src/index.d.ts", + "default": "./lib/module/index.js" + }, + "require": { + "types": "./lib/typescript/commonjs/src/index.d.ts", + "default": "./lib/commonjs/index.js" + } + }, + "./package.json": "./package.json" + }, + "files": [ + "src", + "lib", + "!**/__tests__", + "!**/__fixtures__", + "!**/__mocks__", + "!**/.*" + ], + "scripts": { + "test": "jest", + "typecheck": "tsc", + "lint": "eslint \"**/*.{js,ts,tsx}\"", + "prepare": "bob build", + "release": "release-it" + }, + "keywords": [ + "react-native", + "ios", + "android", + "react-navigation", + "expo-router" + ], + "repository": { + "type": "git", + "url": "git+https://github.com/okwasniewski/react-native-bottom-tabs.git" + }, + "author": "Oskar Kwasniewski (https://github.com/okwasniewski)", + "license": "MIT", + "bugs": { + "url": "https://github.com/okwasniewski/react-native-bottom-tabs/issues" + }, + "homepage": "https://github.com/okwasniewski/react-native-bottom-tabs#readme", + "publishConfig": { + "registry": "https://registry.npmjs.org/" + }, + "devDependencies": { + "@react-navigation/native": "^6.1.18", + "@types/color": "^3.0.6", + "jest": "^29.7.0", + "react": "18.3.1", + "react-native": "0.75.4", + "react-native-bottom-tabs": "*", + "react-native-builder-bob": "^0.30.2", + "release-it": "^15.0.0", + "typescript": "^5.2.2" + }, + "dependencies": { + "color": "^4.2.3" + }, + "peerDependencies": { + "@react-navigation/native": ">=6", + "react": "*", + "react-native": "*", + "react-native-bottom-tabs": "*" + }, + "packageManager": "yarn@3.6.1", + "jest": { + "preset": "react-native", + "modulePathIgnorePatterns": [ + "/example/node_modules", + "/lib/" + ] + }, + "release-it": { + "git": { + "commitMessage": "chore: release ${version}", + "tagName": "v${version}" + }, + "npm": { + "publish": true + }, + "github": { + "release": true + } + }, + "react-native-builder-bob": { + "source": "src", + "output": "lib", + "targets": [ + [ + "commonjs", + { + "esm": true, + "configFile": true + } + ], + [ + "module", + { + "esm": true, + "configFile": true + } + ], + [ + "typescript", + { + "project": "tsconfig.build.json", + "esm": true + } + ] + ] + } +} diff --git a/packages/react-native-bottom-tabs/src/react-navigation/index.tsx b/packages/react-navigation/src/index.tsx similarity index 100% rename from packages/react-native-bottom-tabs/src/react-navigation/index.tsx rename to packages/react-navigation/src/index.tsx diff --git a/packages/react-native-bottom-tabs/src/react-navigation/navigators/createNativeBottomTabNavigator.tsx b/packages/react-navigation/src/navigators/createNativeBottomTabNavigator.tsx similarity index 100% rename from packages/react-native-bottom-tabs/src/react-navigation/navigators/createNativeBottomTabNavigator.tsx rename to packages/react-navigation/src/navigators/createNativeBottomTabNavigator.tsx diff --git a/packages/react-native-bottom-tabs/src/react-navigation/types.ts b/packages/react-navigation/src/types.ts similarity index 96% rename from packages/react-native-bottom-tabs/src/react-navigation/types.ts rename to packages/react-navigation/src/types.ts index 2318ac4..90ab4f3 100644 --- a/packages/react-native-bottom-tabs/src/react-navigation/types.ts +++ b/packages/react-navigation/src/types.ts @@ -8,8 +8,8 @@ import type { TabNavigationState, } from '@react-navigation/native'; import type { ImageSourcePropType } from 'react-native'; -import type TabView from '../TabView'; -import type { AppleIcon } from '../types'; +import type TabView from 'react-native-bottom-tabs'; +import type { AppleIcon } from 'react-native-bottom-tabs'; export type NativeBottomTabNavigationEventMap = { /** diff --git a/packages/react-native-bottom-tabs/src/react-navigation/views/NativeBottomTabView.tsx b/packages/react-navigation/src/views/NativeBottomTabView.tsx similarity index 98% rename from packages/react-native-bottom-tabs/src/react-navigation/views/NativeBottomTabView.tsx rename to packages/react-navigation/src/views/NativeBottomTabView.tsx index f7f504b..c1c3e73 100644 --- a/packages/react-native-bottom-tabs/src/react-navigation/views/NativeBottomTabView.tsx +++ b/packages/react-navigation/src/views/NativeBottomTabView.tsx @@ -8,7 +8,7 @@ import type { NativeBottomTabNavigationConfig, NativeBottomTabNavigationHelpers, } from '../types'; -import TabView from '../../TabView'; +import TabView from 'react-native-bottom-tabs'; type Props = NativeBottomTabNavigationConfig & { state: TabNavigationState; diff --git a/packages/react-navigation/tsconfig.build.json b/packages/react-navigation/tsconfig.build.json new file mode 100644 index 0000000..efd2e0a --- /dev/null +++ b/packages/react-navigation/tsconfig.build.json @@ -0,0 +1,7 @@ +{ + "extends": "./tsconfig", + "compilerOptions": { + "paths": {} + }, + "exclude": ["lib"] +} diff --git a/packages/react-navigation/tsconfig.json b/packages/react-navigation/tsconfig.json new file mode 100644 index 0000000..4e83ae8 --- /dev/null +++ b/packages/react-navigation/tsconfig.json @@ -0,0 +1,7 @@ +{ + "extends": "../../tsconfig", + "compilerOptions": { + "rootDir": ".", + "paths": {} + } +} diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..bf37a62 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,28 @@ +{ + "compilerOptions": { + "paths": { + "react-native-bottom-tabs": ["./packages/react-native-bottom-tabs/src/index"], + "@bottom-tabs/react-navigation": ["./packages/react-navigation/src/index"], + }, + "allowUnreachableCode": false, + "allowUnusedLabels": false, + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "jsx": "react-jsx", + "lib": ["ESNext"], + "module": "ESNext", + "moduleResolution": "Bundler", + "noEmit": true, + "noFallthroughCasesInSwitch": true, + "noImplicitReturns": true, + "noImplicitUseStrict": false, + "noStrictGenericChecks": false, + "noUncheckedIndexedAccess": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "resolveJsonModule": true, + "skipLibCheck": true, + "strict": true, + "target": "ESNext" + } +} diff --git a/turbo.json b/turbo.json index 187f62b..7cfd5ed 100644 --- a/turbo.json +++ b/turbo.json @@ -2,13 +2,19 @@ "$schema": "https://turbo.build/schema.json", "tasks": { "lint": { + "dependsOn": ["prepare"], "inputs": ["**/*.ts", "**/*.tsx", "**/*.js"] }, "typecheck": { + "dependsOn": ["prepare"], "inputs": ["**/*.ts", "**/*.tsx"] }, "test": {}, - "prepare": {}, + "prepare": { + "dependsOn": ["^prepare"], + "outputs": ["lib/**"], + "inputs": ["src/**/*.ts", "src/**/*.tsx"] + }, "build:android": { "env": ["JAVA_HOME", "ANDROID_NDK", "ANDROID_SDK", "ANDROID_HOME"], "inputs": [ diff --git a/yarn.lock b/yarn.lock index 5d691dc..b433dfe 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1728,6 +1728,45 @@ __metadata: languageName: node linkType: hard +"@bottom-tabs/monorepo@workspace:.": + version: 0.0.0-use.local + resolution: "@bottom-tabs/monorepo@workspace:." + dependencies: + "@commitlint/config-conventional": ^17.0.2 + commitlint: ^17.0.2 + devmoji: ^2.3.0 + eslint: ^8.51.0 + eslint-config-prettier: ^9.0.0 + eslint-plugin-prettier: ^5.0.1 + jest: ^29.7.0 + prettier: ^3.0.3 + turbo: ^2.1.0 + typescript: ^5.2.2 + languageName: unknown + linkType: soft + +"@bottom-tabs/react-navigation@*, @bottom-tabs/react-navigation@workspace:packages/react-navigation": + version: 0.0.0-use.local + resolution: "@bottom-tabs/react-navigation@workspace:packages/react-navigation" + dependencies: + "@react-navigation/native": ^6.1.18 + "@types/color": ^3.0.6 + color: ^4.2.3 + jest: ^29.7.0 + react: 18.3.1 + react-native: 0.75.4 + react-native-bottom-tabs: "*" + react-native-builder-bob: ^0.30.2 + release-it: ^15.0.0 + typescript: ^5.2.2 + peerDependencies: + "@react-navigation/native": ">=6" + react: "*" + react-native: "*" + react-native-bottom-tabs: "*" + languageName: unknown + linkType: soft + "@bufbuild/protobuf@npm:^2.0.0": version: 2.2.2 resolution: "@bufbuild/protobuf@npm:2.2.2" @@ -2059,16 +2098,6 @@ __metadata: languageName: node linkType: hard -"@evilmartians/lefthook@npm:^1.5.0": - version: 1.8.2 - resolution: "@evilmartians/lefthook@npm:1.8.2" - bin: - lefthook: bin/index.js - checksum: 1b9e5ab70355ad1a71c201d0cbbc7e5791503cb66e1509d95dadbb4b4f2413a171ec755ee85d997b0df904c0f0421d2b7819468511462a19b14bd382955bc6fd - conditions: (os=darwin | os=linux | os=win32) & (cpu=x64 | cpu=arm64 | cpu=ia32) - languageName: node - linkType: hard - "@expo/bunyan@npm:^4.0.0": version: 4.0.1 resolution: "@expo/bunyan@npm:4.0.1" @@ -2993,22 +3022,6 @@ __metadata: languageName: node linkType: hard -"@native-tabs/monorepo@workspace:.": - version: 0.0.0-use.local - resolution: "@native-tabs/monorepo@workspace:." - dependencies: - "@commitlint/config-conventional": ^17.0.2 - commitlint: ^17.0.2 - devmoji: ^2.3.0 - eslint: ^8.51.0 - eslint-config-prettier: ^9.0.0 - eslint-plugin-prettier: ^5.0.1 - prettier: ^3.0.3 - turbo: ^2.1.0 - typescript: ^5.2.2 - languageName: unknown - linkType: soft - "@nicolo-ribaudo/eslint-scope-5-internals@npm:5.1.1-v1": version: 5.1.1-v1 resolution: "@nicolo-ribaudo/eslint-scope-5-internals@npm:5.1.1-v1" @@ -4462,7 +4475,7 @@ __metadata: languageName: node linkType: hard -"@react-navigation/bottom-tabs@npm:^6.1.18, @react-navigation/bottom-tabs@npm:^6.6.1": +"@react-navigation/bottom-tabs@npm:^6.6.1": version: 6.6.1 resolution: "@react-navigation/bottom-tabs@npm:6.6.1" dependencies: @@ -5560,7 +5573,7 @@ __metadata: languageName: node linkType: hard -"@types/minimist@npm:^1.2.0, @types/minimist@npm:^1.2.2": +"@types/minimist@npm:^1.2.0": version: 1.2.5 resolution: "@types/minimist@npm:1.2.5" checksum: 477047b606005058ab0263c4f58097136268007f320003c348794f74adedc3166ffc47c80ec3e94687787f2ab7f4e72c468223946e79892cf0fd9e25e9970a90 @@ -6103,16 +6116,6 @@ __metadata: languageName: node linkType: hard -"aggregate-error@npm:^4.0.0": - version: 4.0.1 - resolution: "aggregate-error@npm:4.0.1" - dependencies: - clean-stack: ^4.0.0 - indent-string: ^5.0.0 - checksum: bb3ffdfd13447800fff237c2cba752c59868ee669104bb995dfbbe0b8320e967d679e683dabb640feb32e4882d60258165cde0baafc4cd467cc7d275a13ad6b5 - languageName: node - linkType: hard - "ajv-formats@npm:^2.1.1": version: 2.1.1 resolution: "ajv-formats@npm:2.1.1" @@ -7103,18 +7106,6 @@ __metadata: languageName: node linkType: hard -"camelcase-keys@npm:^7.0.0": - version: 7.0.2 - resolution: "camelcase-keys@npm:7.0.2" - dependencies: - camelcase: ^6.3.0 - map-obj: ^4.1.0 - quick-lru: ^5.1.1 - type-fest: ^1.2.1 - checksum: b5821cc48dd00e8398a30c5d6547f06837ab44de123f1b3a603d0a03399722b2fc67a485a7e47106eb02ef543c3b50c5ebaabc1242cde4b63a267c3258d2365b - languageName: node - linkType: hard - "camelcase@npm:^5.0.0, camelcase@npm:^5.3.1": version: 5.3.1 resolution: "camelcase@npm:5.3.1" @@ -7122,7 +7113,7 @@ __metadata: languageName: node linkType: hard -"camelcase@npm:^6.2.0, camelcase@npm:^6.3.0": +"camelcase@npm:^6.2.0": version: 6.3.0 resolution: "camelcase@npm:6.3.0" checksum: 8c96818a9076434998511251dcb2761a94817ea17dbdc37f47ac080bd088fc62c7369429a19e2178b993497132c8cbcf5cc1f44ba963e76782ba469c0474938d @@ -7354,15 +7345,6 @@ __metadata: languageName: node linkType: hard -"clean-stack@npm:^4.0.0": - version: 4.2.0 - resolution: "clean-stack@npm:4.2.0" - dependencies: - escape-string-regexp: 5.0.0 - checksum: 373f656a31face5c615c0839213b9b542a0a48057abfb1df66900eab4dc2a5c6097628e4a0b5aa559cdfc4e66f8a14ea47be9681773165a44470ef5fb8ccc172 - languageName: node - linkType: hard - "cli-boxes@npm:^3.0.0": version: 3.0.0 resolution: "cli-boxes@npm:3.0.0" @@ -8131,13 +8113,6 @@ __metadata: languageName: node linkType: hard -"decamelize@npm:^5.0.0": - version: 5.0.1 - resolution: "decamelize@npm:5.0.1" - checksum: 7c3b1ed4b3e60e7fbc00a35fb248298527c1cdfe603e41dfcf05e6c4a8cb9efbee60630deb677ed428908fb4e74e322966c687a094d1478ddc9c3a74e9dc7140 - languageName: node - linkType: hard - "decimal.js@npm:^10.4.2": version: 10.4.3 resolution: "decimal.js@npm:10.4.3" @@ -8313,19 +8288,6 @@ __metadata: languageName: node linkType: hard -"del-cli@npm:^5.1.0": - version: 5.1.0 - resolution: "del-cli@npm:5.1.0" - dependencies: - del: ^7.1.0 - meow: ^10.1.3 - bin: - del: cli.js - del-cli: cli.js - checksum: 7a8953d3d22716d08080d7344ce9b66fe1608ac4aa32b6106ba825eb986ed2a31ba7826c2f269a2060f013885274c8935628bb6009336adc29a36413dc660741 - languageName: node - linkType: hard - "del@npm:^6.0.0, del@npm:^6.1.1": version: 6.1.1 resolution: "del@npm:6.1.1" @@ -8342,22 +8304,6 @@ __metadata: languageName: node linkType: hard -"del@npm:^7.1.0": - version: 7.1.0 - resolution: "del@npm:7.1.0" - dependencies: - globby: ^13.1.2 - graceful-fs: ^4.2.10 - is-glob: ^4.0.3 - is-path-cwd: ^3.0.0 - is-path-inside: ^4.0.0 - p-map: ^5.5.0 - rimraf: ^3.0.2 - slash: ^4.0.0 - checksum: 93527e78e95125809ff20a112814b00648ed64af204be1a565862698060c9ec8f5c5fe1a4866725acfde9b0da6423f4b7a7642c1d38cd4b05cbeb643a7b089e3 - languageName: node - linkType: hard - "delayed-stream@npm:~1.0.0": version: 1.0.0 resolution: "delayed-stream@npm:1.0.0" @@ -8956,13 +8902,6 @@ __metadata: languageName: node linkType: hard -"escape-string-regexp@npm:5.0.0, escape-string-regexp@npm:^5.0.0": - version: 5.0.0 - resolution: "escape-string-regexp@npm:5.0.0" - checksum: 20daabe197f3cb198ec28546deebcf24b3dbb1a5a269184381b3116d12f0532e06007f4bc8da25669d6a7f8efb68db0758df4cd981f57bc5b57f521a3e12c59e - languageName: node - linkType: hard - "escape-string-regexp@npm:^1.0.5": version: 1.0.5 resolution: "escape-string-regexp@npm:1.0.5" @@ -8984,6 +8923,13 @@ __metadata: languageName: node linkType: hard +"escape-string-regexp@npm:^5.0.0": + version: 5.0.0 + resolution: "escape-string-regexp@npm:5.0.0" + checksum: 20daabe197f3cb198ec28546deebcf24b3dbb1a5a269184381b3116d12f0532e06007f4bc8da25669d6a7f8efb68db0758df4cd981f57bc5b57f521a3e12c59e + languageName: node + linkType: hard + "escodegen@npm:^1.14.3": version: 1.14.3 resolution: "escodegen@npm:1.14.3" @@ -9379,9 +9325,9 @@ __metadata: resolution: "example-expo@workspace:apps/example-expo" dependencies: "@babel/core": ^7.25.2 + "@bottom-tabs/react-navigation": "*" "@expo/vector-icons": ^14.0.2 "@react-native/metro-config": ^0.75.4 - "@react-navigation/bottom-tabs": ^6.1.18 "@react-navigation/native": ^6.1.18 "@types/jest": ^29.5.12 "@types/react": ~18.2.79 @@ -9780,7 +9726,7 @@ __metadata: languageName: node linkType: hard -"fast-glob@npm:^3.2.11, fast-glob@npm:^3.2.5, fast-glob@npm:^3.2.7, fast-glob@npm:^3.2.9, fast-glob@npm:^3.3.0, fast-glob@npm:^3.3.2": +"fast-glob@npm:^3.2.11, fast-glob@npm:^3.2.5, fast-glob@npm:^3.2.7, fast-glob@npm:^3.2.9, fast-glob@npm:^3.3.2": version: 3.3.2 resolution: "fast-glob@npm:3.3.2" dependencies: @@ -10554,19 +10500,6 @@ __metadata: languageName: node linkType: hard -"globby@npm:^13.1.2": - version: 13.2.2 - resolution: "globby@npm:13.2.2" - dependencies: - dir-glob: ^3.0.1 - fast-glob: ^3.3.0 - ignore: ^5.2.4 - merge2: ^1.4.1 - slash: ^4.0.0 - checksum: f3d84ced58a901b4fcc29c846983108c426631fe47e94872868b65565495f7bee7b3defd68923bd480582771fd4bbe819217803a164a618ad76f1d22f666f41e - languageName: node - linkType: hard - "gopd@npm:^1.0.1": version: 1.0.1 resolution: "gopd@npm:1.0.1" @@ -10602,7 +10535,7 @@ __metadata: languageName: node linkType: hard -"graceful-fs@npm:^4.1.11, graceful-fs@npm:^4.1.3, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.10, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6, graceful-fs@npm:^4.2.9": +"graceful-fs@npm:^4.1.11, graceful-fs@npm:^4.1.3, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6, graceful-fs@npm:^4.2.9": version: 4.2.11 resolution: "graceful-fs@npm:4.2.11" checksum: ac85f94da92d8eb6b7f5a8b20ce65e43d66761c55ce85ac96df6865308390da45a8d3f0296dd3a663de65d30ba497bd46c696cc1e248c72b13d6d567138a4fc7 @@ -11288,7 +11221,7 @@ __metadata: languageName: node linkType: hard -"ignore@npm:^5.0.5, ignore@npm:^5.2.0, ignore@npm:^5.2.4, ignore@npm:^5.3.1": +"ignore@npm:^5.0.5, ignore@npm:^5.2.0, ignore@npm:^5.3.1": version: 5.3.2 resolution: "ignore@npm:5.3.2" checksum: 2acfd32a573260ea522ea0bfeff880af426d68f6831f973129e2ba7363f422923cf53aab62f8369cbf4667c7b25b6f8a3761b34ecdb284ea18e87a5262a865be @@ -11366,13 +11299,6 @@ __metadata: languageName: node linkType: hard -"indent-string@npm:^5.0.0": - version: 5.0.0 - resolution: "indent-string@npm:5.0.0" - checksum: e466c27b6373440e6d84fbc19e750219ce25865cb82d578e41a6053d727e5520dc5725217d6eb1cc76005a1bb1696a0f106d84ce7ebda3033b963a38583fb3b3 - languageName: node - linkType: hard - "inflight@npm:^1.0.4": version: 1.0.6 resolution: "inflight@npm:1.0.6" @@ -11945,13 +11871,6 @@ __metadata: languageName: node linkType: hard -"is-path-cwd@npm:^3.0.0": - version: 3.0.0 - resolution: "is-path-cwd@npm:3.0.0" - checksum: bc34d13b6a03dfca4a3ab6a8a5ba78ae4b24f4f1db4b2b031d2760c60d0913bd16a4b980dcb4e590adfc906649d5f5132684079a3972bd219da49deebb9adea8 - languageName: node - linkType: hard - "is-path-inside@npm:^3.0.2, is-path-inside@npm:^3.0.3": version: 3.0.3 resolution: "is-path-inside@npm:3.0.3" @@ -11959,13 +11878,6 @@ __metadata: languageName: node linkType: hard -"is-path-inside@npm:^4.0.0": - version: 4.0.0 - resolution: "is-path-inside@npm:4.0.0" - checksum: 8810fa11c58e6360b82c3e0d6cd7d9c7d0392d3ac9eb10f980b81f9839f40ac6d1d6d6f05d069db0d227759801228f0b072e1b6c343e4469b065ab5fe0b68fe5 - languageName: node - linkType: hard - "is-plain-obj@npm:^1.1.0": version: 1.1.0 resolution: "is-plain-obj@npm:1.1.0" @@ -13674,7 +13586,7 @@ __metadata: languageName: node linkType: hard -"map-obj@npm:^4.0.0, map-obj@npm:^4.1.0": +"map-obj@npm:^4.0.0": version: 4.3.0 resolution: "map-obj@npm:4.3.0" checksum: fbc554934d1a27a1910e842bc87b177b1a556609dd803747c85ece420692380827c6ae94a95cce4407c054fa0964be3bf8226f7f2cb2e9eeee432c7c1985684e @@ -13986,26 +13898,6 @@ __metadata: languageName: node linkType: hard -"meow@npm:^10.1.3": - version: 10.1.5 - resolution: "meow@npm:10.1.5" - dependencies: - "@types/minimist": ^1.2.2 - camelcase-keys: ^7.0.0 - decamelize: ^5.0.0 - decamelize-keys: ^1.1.0 - hard-rejection: ^2.1.0 - minimist-options: 4.1.0 - normalize-package-data: ^3.0.2 - read-pkg-up: ^8.0.0 - redent: ^4.0.0 - trim-newlines: ^4.0.2 - type-fest: ^1.2.2 - yargs-parser: ^20.2.9 - checksum: dd5f0caa4af18517813547dc66741dcbf52c4c23def5062578d39b11189fd9457aee5c1f2263a5cd6592a465023df8357e8ac876b685b64dbcf545e3f66c23a7 - languageName: node - linkType: hard - "meow@npm:^8.0.0, meow@npm:^8.1.2": version: 8.1.2 resolution: "meow@npm:8.1.2" @@ -14794,7 +14686,7 @@ __metadata: languageName: node linkType: hard -"min-indent@npm:^1.0.0, min-indent@npm:^1.0.1": +"min-indent@npm:^1.0.0": version: 1.0.1 resolution: "min-indent@npm:1.0.1" checksum: bfc6dd03c5eaf623a4963ebd94d087f6f4bbbfd8c41329a7f09706b0cb66969c4ddd336abeb587bc44bc6f08e13bf90f0b374f9d71f9f01e04adc2cd6f083ef1 @@ -15216,7 +15108,7 @@ __metadata: languageName: node linkType: hard -"normalize-package-data@npm:^3.0.0, normalize-package-data@npm:^3.0.2": +"normalize-package-data@npm:^3.0.0": version: 3.0.3 resolution: "normalize-package-data@npm:3.0.3" dependencies: @@ -15671,15 +15563,6 @@ __metadata: languageName: node linkType: hard -"p-map@npm:^5.5.0": - version: 5.5.0 - resolution: "p-map@npm:5.5.0" - dependencies: - aggregate-error: ^4.0.0 - checksum: 065cb6fca6b78afbd070dd9224ff160dc23eea96e57863c09a0c8ea7ce921043f76854be7ee0abc295cff1ac9adcf700e79a1fbe3b80b625081087be58e7effb - languageName: node - linkType: hard - "p-try@npm:^2.0.0": version: 2.2.0 resolution: "p-try@npm:2.2.0" @@ -16509,6 +16392,7 @@ __metadata: "@babel/core": ^7.20.0 "@babel/preset-env": ^7.20.0 "@babel/runtime": ^7.20.0 + "@bottom-tabs/react-navigation": "*" "@callstack/react-native-visionos": ^0.75.0 "@react-native-community/cli": ^15.1.2 "@react-native/babel-preset": 0.75.4 @@ -16538,19 +16422,11 @@ __metadata: version: 0.0.0-use.local resolution: "react-native-bottom-tabs@workspace:packages/react-native-bottom-tabs" dependencies: - "@commitlint/config-conventional": ^17.0.2 - "@evilmartians/lefthook": ^1.5.0 "@expo/config-plugins": ^7.0.0 || ^8.0.0 "@react-native/babel-preset": 0.76.2 "@react-native/eslint-config": 0.76.2 - "@react-navigation/native": ^6.1.18 - "@types/color": ^3.0.6 "@types/jest": ^29.5.5 "@types/react": ^18.2.44 - color: ^4.2.3 - commitlint: ^17.0.2 - del-cli: ^5.1.0 - jest: ^29.7.0 react: 18.3.1 react-native: 0.75.4 react-native-builder-bob: ^0.30.2 @@ -16559,12 +16435,8 @@ __metadata: typescript: ^5.2.2 use-latest-callback: ^0.2.1 peerDependencies: - "@react-navigation/native": ">=6" react: "*" react-native: "*" - peerDependenciesMeta: - "@react-navigation/native": - optional: true languageName: unknown linkType: soft @@ -16928,17 +16800,6 @@ __metadata: languageName: node linkType: hard -"read-pkg-up@npm:^8.0.0": - version: 8.0.0 - resolution: "read-pkg-up@npm:8.0.0" - dependencies: - find-up: ^5.0.0 - read-pkg: ^6.0.0 - type-fest: ^1.0.1 - checksum: fe4c80401656b40b408884457fffb5a8015c03b1018cfd8e48f8d82a5e9023e24963603aeb2755608d964593e046c15b34d29b07d35af9c7aa478be81805209c - languageName: node - linkType: hard - "read-pkg@npm:^5.2.0": version: 5.2.0 resolution: "read-pkg@npm:5.2.0" @@ -16951,18 +16812,6 @@ __metadata: languageName: node linkType: hard -"read-pkg@npm:^6.0.0": - version: 6.0.0 - resolution: "read-pkg@npm:6.0.0" - dependencies: - "@types/normalize-package-data": ^2.4.0 - normalize-package-data: ^3.0.2 - parse-json: ^5.2.0 - type-fest: ^1.0.1 - checksum: 0cebdff381128e923815c643074a87011070e5fc352bee575d327d6485da3317fab6d802a7b03deeb0be7be8d3ad1640397b3d5d2f044452caf4e8d1736bf94f - languageName: node - linkType: hard - "read-yaml-file@npm:^2.1.0": version: 2.1.0 resolution: "read-yaml-file@npm:2.1.0" @@ -17046,16 +16895,6 @@ __metadata: languageName: node linkType: hard -"redent@npm:^4.0.0": - version: 4.0.0 - resolution: "redent@npm:4.0.0" - dependencies: - indent-string: ^5.0.0 - strip-indent: ^4.0.0 - checksum: 6944e7b1d8f3fd28c2515f5c605b9f7f0ea0f4edddf41890bbbdd4d9ee35abb7540c3b278f03ff827bd278bb6ff4a5bd8692ca406b748c5c1c3ce7355e9fbf8f - languageName: node - linkType: hard - "reduce-configs@npm:^1.0.0": version: 1.0.0 resolution: "reduce-configs@npm:1.0.0" @@ -18865,15 +18704,6 @@ __metadata: languageName: node linkType: hard -"strip-indent@npm:^4.0.0": - version: 4.0.0 - resolution: "strip-indent@npm:4.0.0" - dependencies: - min-indent: ^1.0.1 - checksum: 06cbcd93da721c46bc13caeb1c00af93a9b18146a1c95927672d2decab6a25ad83662772417cea9317a2507fb143253ecc23c4415b64f5828cef9b638a744598 - languageName: node - linkType: hard - "strip-json-comments@npm:^3.1.1": version: 3.1.1 resolution: "strip-json-comments@npm:3.1.1" @@ -19294,13 +19124,6 @@ __metadata: languageName: node linkType: hard -"trim-newlines@npm:^4.0.2": - version: 4.1.1 - resolution: "trim-newlines@npm:4.1.1" - checksum: 5b09f8e329e8f33c1111ef26906332ba7ba7248cde3e26fc054bb3d69f2858bf5feedca9559c572ff91f33e52977c28e0d41c387df6a02a633cbb8c2d8238627 - languageName: node - linkType: hard - "trim-right@npm:^1.0.1": version: 1.0.1 resolution: "trim-right@npm:1.0.1" @@ -19560,7 +19383,7 @@ __metadata: languageName: node linkType: hard -"type-fest@npm:^1.0.1, type-fest@npm:^1.2.1, type-fest@npm:^1.2.2": +"type-fest@npm:^1.0.1": version: 1.4.0 resolution: "type-fest@npm:1.4.0" checksum: b011c3388665b097ae6a109a437a04d6f61d81b7357f74cbcb02246f2f5bd72b888ae33631b99871388122ba0a87f4ff1c94078e7119ff22c70e52c0ff828201 @@ -20798,7 +20621,7 @@ __metadata: languageName: node linkType: hard -"yargs-parser@npm:^20.2.2, yargs-parser@npm:^20.2.3, yargs-parser@npm:^20.2.9": +"yargs-parser@npm:^20.2.2, yargs-parser@npm:^20.2.3": version: 20.2.9 resolution: "yargs-parser@npm:20.2.9" checksum: 8bb69015f2b0ff9e17b2c8e6bfe224ab463dd00ca211eece72a4cd8a906224d2703fb8a326d36fdd0e68701e201b2a60ed7cf81ce0fd9b3799f9fe7745977ae3