npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

react-phone-input-custom

v1.0.8

Published

A React component for inputting and validating phone numbers with international support, featuring an easy-to-use country code selection.

Readme

React Phone Input Custom

A React component for inputting and validating phone numbers with international support, featuring an easy-to-use country code selection.

Installation

npm install react-phone-input-custom

or with yarn:

yarn add react-phone-input-custom

Peer Dependencies

This library requires the following peer dependencies:

  • react (>=19.0.0)
  • react-dom (>=19.0.0)

Ensure these are installed in your project:

npm install react react-dom

Dependencies

The package depends on the following libraries:

  • google-libphonenumber (Phone number parsing and validation)
  • libphonenumber-js (Formatting and validation support)
  • tailwind (For css and styles)

Usage

import PhoneInput from 'react-phone-input-custom';

function App() {
    return (
        <PhoneInput 
            initialCountryCode="IN" 
            enableRedBorderOnError={false} 
            maxPhoneLength={15} 
            fetchAllCountries={false}
        />
    );
}

export default App;

Customization

The component supports various customization options:

Props

| Prop | Type | Default | Description | |--------------------------|------------------------------|-------------|-------------------------------------------| | fetchAllCountries | boolean | false | Fetches all available countries if true | | initialCountryCode | string | 'IN' | Default country code | | enableRedBorderOnError | boolean | true | Highlights border red on invalid input | | maxPhoneLength | number | 15 | Maximum length of phone number | | isPhoneNumberValid | (isValid: boolean) => void | undefined | Callback for validation state | | containerStyle | CSSProperties | {} | Custom styles for container | | inputStyle | CSSProperties | {} | Custom styles for input field | | dropdownStyle | CSSProperties | {} | Custom styles for dropdown | | inputRef | Ref<HTMLInputElement> | undefined | Ref for the input field | | onPhoneChange | (data: PhoneData) => void | undefined | Callback triggered on input change |

Phone Data Object

The onPhoneChange callback receives an object with the following structure:

{
    dialCode: string;
    countryCode: string;
    nationalFormattedNumber: string;
    internationalFormattedNumber: string;
    e164Number: string;
    mobileNumber: string;
}

API Details

The component internally fetches country data using fetch and leverages google-libphonenumber and libphonenumber-js for parsing and validation.

License

MIT © Anurag Singh

Contributing

Contributions are welcome! Feel free to submit issues and pull requests to the GitHub repository.