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