open-index/open-npm huggingface dataset:
npm package: @knleads/contracts
Description: To install dependencies:
Latest version: 1.1.0

# @knleads/contracts

To install dependencies:

```bash
bun install
```

To run:

```bash
bun run src/index.ts
```

This project was created using `bun init` in bun v1.1.13. [Bun](https://bun.sh) is a fast all-in-one JavaScript runtime.
npm package: @knlgpt/expo-login-screen
Description: A reusable, customizable Expo login package for React Native/Expo apps. Supports login, signup, forgot password, and phone number (OTP) login, with flexible navigation and styling. Monorepo-friendly, Expo-first, and easy to integrate with Expo Router or R
Latest version: 0.7.11

# Expo Login Screen

A reusable, customizable Expo login package for React Native/Expo apps. Supports login, signup, forgot password, and phone number (OTP) login, with flexible navigation and styling. Monorepo-friendly, Expo-first, and easy to integrate with Expo Router or React Navigation.

## Features

- Login, Signup, Forgot Password screens
- Phone number login with OTP verification
- Customizable styles via props
- Parent-controlled navigation (no navigation dependency)
- TypeScript support
- Easy Expo/React Native integration

## Installation

```bash
yarn add @knlgpt/expo-login-screen
# or
npm install @knlgpt/expo-login-screen

```

## Usage

### Basic Auth Flow

```tsx
import { AuthFlow } from "@knlgpt/expo-login-screen";

<AuthFlow initialScreen="login" />;
```

initialScreen options:"login" | "signup" | "forgot" | "phone" | "otp"
defaultScreen : login

### Standalone Screens

```tsx
import { LoginScreen, SignupScreen, ForgotPasswordScreen, PhoneLoginScreen, OTPEntryScreen } from '@knlgpt/expo-login-screen';

<LoginScreen onLogin={...} />
<SignupScreen onSignup={...} />
<ForgotPasswordScreen onReset={...} />
<PhoneLoginScreen onLogin={...} />
<OTPEntryScreen onSubmit={...} digits={6} />
```

📱 Phone Login Screen
The PhoneLoginScreen provides a simple, OTP-ready login interface using a phone number.
| Prop | Type | Required | Description |
| ------------- | ---------------------------------------------------------- | -------- | ------------------------------------------------------------------------------------------------ |
| `onLogin` | `(phone: string, callback: (otp: string) => void) => void` | ✅ | Called when the user enters a valid phone number. Pass the OTP (if needed) through the callback. |
| `countryCode` | `string` | ❌ | Country code prefix (default: `"+91"`) |
| `digits` | `number` | ❌ | Number of digits required to enable the submit button (default: `10`) |
| `styles` | `PhoneLoginScreenStyleProps` | ❌ | Optional style overrides |

## Customization

- Pass a `styles` prop to any screen to override default styles.
- All navigation is handled by the parent app (works with Expo Router, React Navigation, etc).

## Example

onLogin function is expecting an object in return
{res: "success"|"failure", tokenUserId, error: optional}
userLoginID: Phone or email
tokenUserId: system generated unique ID