{"_id":"rn-international-phone-number","_rev":"6-98267c9fe417ff7fc20e6e008097e1c1","name":"rn-international-phone-number","dist-tags":{"latest":"0.15.0"},"versions":{"0.12.0":{"name":"rn-international-phone-number","version":"0.12.0","keywords":["mobile","ios","android","react-native","expo","components","typescript","react-hook-form","mask-input","phone-input","international-number-phone","picker","country-picker","country","flag","custom-lib","codes","search","animated","input"],"author":{"url":"https://github.com/AstrOOnauta","name":"AstrOOnauta"},"license":"ISC","_id":"rn-international-phone-number@0.12.0","maintainers":[{"name":"_astroonauta","email":"barbosa.will.1998@gmail.com"}],"homepage":"https://github.com/AstrOOnauta/react-native-international-phone-number","bugs":{"url":"https://github.com/AstrOOnauta/react-native-international-phone-number/issues"},"dist":{"shasum":"7df8bb158a752aa521ecf0bb9b140bb7c21d6d3a","tarball":"https://registry.npmjs.org/rn-international-phone-number/-/rn-international-phone-number-0.12.0.tgz","fileCount":16,"integrity":"sha512-dDyHYT/ylbpbnFiHvJhEUpmI/IimRjrxdRysJ7e3kccsK6njHBUba9BKt3sdc+/BI2y6yDLJoQH9LJd2i6NvWA==","signatures":[{"sig":"MEUCID/TdVdyh5DmVopMHUPC1bt6ofBAlJYcYBsCm9v9NhKmAiEA1QIFzpz918zij+P5ZO0pN0NDbxLQ+qrwTI9FcEAYh6g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113528},"main":"lib/index.js","types":"lib/index.d.ts","gitHead":"67dfd73ecb0f49b8b5ddf218030d1c2b451497a1","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"_astroonauta","email":"barbosa.will.1998@gmail.com"},"repository":{"url":"git+https://github.com/AstrOOnauta/react-native-international-phone-number.git","type":"git"},"_npmVersion":"11.6.0","description":"International mobile phone input component with mask for React Native","directories":{},"_nodeVersion":"24.8.0","dependencies":{"libphonenumber-js":"1.12.40","rn-country-select":"0.4.0"},"_hasShrinkwrap":false,"devDependencies":{"metro-react-native-babel-preset":"^0.61.0"},"peerDependencies":{"react":"*","react-native":"*"},"_npmOperationalInternal":{"tmp":"tmp/rn-international-phone-number_0.12.0_1773840787414_0.8909759359813465","host":"s3://npm-registry-packages-npm-production"}},"0.13.0":{"name":"rn-international-phone-number","version":"0.13.0","keywords":["mobile","ios","android","react-native","expo","components","typescript","react-hook-form","mask-input","phone-input","international-number-phone","picker","country-picker","country","flag","custom-lib","codes","search","animated","input"],"author":{"url":"https://github.com/AstrOOnauta","name":"AstrOOnauta"},"license":"ISC","_id":"rn-international-phone-number@0.13.0","maintainers":[{"name":"_astroonauta","email":"barbosa.will.1998@gmail.com"}],"homepage":"https://github.com/AstrOOnauta/react-native-international-phone-number","bugs":{"url":"https://github.com/AstrOOnauta/react-native-international-phone-number/issues"},"dist":{"shasum":"783f7cd9923b8b735ab6a66895822b0863480027","tarball":"https://registry.npmjs.org/rn-international-phone-number/-/rn-international-phone-number-0.13.0.tgz","fileCount":17,"integrity":"sha512-9W4qOhLWNgUiNWqul6na1HyMpJ+MLoF0xJF4gm71F0noqewbCMt6BPwFhmzpNZlZ8P1CBPXQwzlvd2ud9QUNzw==","signatures":[{"sig":"MEYCIQCwfwFtEGAvLawX4lT8ciKThBhpJg0fhVo/f2onhPgzpgIhANllDyYU3fzsW3nUf6WA4+z6U8r/sGen8GhdgWp9xCU6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":121861},"main":"lib/index.js","types":"lib/index.d.ts","gitHead":"2d14bd7f80896dba642181f820abcf19533493ba","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"_astroonauta","email":"barbosa.will.1998@gmail.com"},"repository":{"url":"git+https://github.com/AstrOOnauta/react-native-international-phone-number.git","type":"git"},"_npmVersion":"8.19.4","description":"International mobile phone input component with mask for React Native","directories":{},"_nodeVersion":"16.20.2","dependencies":{"libphonenumber-js":"1.12.41","rn-country-select":"0.4.1"},"_hasShrinkwrap":false,"devDependencies":{"metro-react-native-babel-preset":"^0.61.0"},"peerDependencies":{"react":"*","react-native":"*"},"_npmOperationalInternal":{"tmp":"tmp/rn-international-phone-number_0.13.0_1776339466023_0.2463185967777859","host":"s3://npm-registry-packages-npm-production"}},"0.13.1":{"name":"rn-international-phone-number","version":"0.13.1","keywords":["mobile","ios","android","react-native","expo","components","typescript","react-hook-form","mask-input","phone-input","international-number-phone","picker","country-picker","country","flag","custom-lib","codes","search","animated","input"],"author":{"url":"https://github.com/AstrOOnauta","name":"AstrOOnauta"},"license":"ISC","_id":"rn-international-phone-number@0.13.1","maintainers":[{"name":"_astroonauta","email":"barbosa.will.1998@gmail.com"}],"homepage":"https://github.com/AstrOOnauta/react-native-international-phone-number","bugs":{"url":"https://github.com/AstrOOnauta/react-native-international-phone-number/issues"},"dist":{"shasum":"1207b8213bcfd3b218d609c7511baae77ab32f3b","tarball":"https://registry.npmjs.org/rn-international-phone-number/-/rn-international-phone-number-0.13.1.tgz","fileCount":17,"integrity":"sha512-/oGYsZY8T4kpPMkGQTxd665/OjBqzphwiEJSCK5Qx2S2wUHktS44NiQtiQkkVo1mB3S7Vg8C1jYVe4nXBkzEAA==","signatures":[{"sig":"MEYCIQDRIJyHhoWHgVPzMdzZR30azkkCDqlU2qPov36s5ecXRAIhAN2Wu+xCWh/7gBuuoALMYexpYrQlEYuhP9QLfz2HFqv4","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/rn-international-phone-number@0.13.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":123691},"main":"lib/index.js","types":"lib/index.d.ts","gitHead":"2dabbec2c59c7d88af6515addb5f8abf8851bf85","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:524b95ac-59fd-4de1-b5b9-5d54976aac12"}},"repository":{"url":"git+https://github.com/AstrOOnauta/react-native-international-phone-number.git","type":"git"},"_npmVersion":"11.14.1","description":"International mobile phone input component with mask for React Native","directories":{},"_nodeVersion":"24.14.1","dependencies":{"libphonenumber-js":"1.13.0","rn-country-select":"0.5.2"},"_hasShrinkwrap":false,"devDependencies":{"metro-react-native-babel-preset":"^0.61.0"},"peerDependencies":{"react":"^18.2.0","react-native":"^0.71.0"},"_npmOperationalInternal":{"tmp":"tmp/rn-international-phone-number_0.13.1_1778411115658_0.4387667363607952","host":"s3://npm-registry-packages-npm-production"}},"0.13.2":{"name":"rn-international-phone-number","version":"0.13.2","keywords":["mobile","ios","android","react-native","expo","components","typescript","react-hook-form","mask-input","phone-input","international-number-phone","picker","country-picker","country","flag","custom-lib","codes","search","animated","input"],"author":{"url":"https://github.com/AstrOOnauta","name":"AstrOOnauta"},"license":"ISC","_id":"rn-international-phone-number@0.13.2","maintainers":[{"name":"_astroonauta","email":"barbosa.will.1998@gmail.com"}],"homepage":"https://github.com/AstrOOnauta/react-native-international-phone-number","bugs":{"url":"https://github.com/AstrOOnauta/react-native-international-phone-number/issues"},"dist":{"shasum":"98b80ab2996e89c9219dcb282807f83192569c39","tarball":"https://registry.npmjs.org/rn-international-phone-number/-/rn-international-phone-number-0.13.2.tgz","fileCount":17,"integrity":"sha512-29amGfKlzNKKIOA7KQCtSXrxBrmY4Gg5rSFwJ9Z+KAWB5DW6Plv4y8/ua/b5KMFUPCAXQSExDhBn1FhooZuEbQ==","signatures":[{"sig":"MEYCIQCCEBEUolg/QarE8JZWiot1k5Gv9MY4gOqswVgu6w5v/QIhAP1lv5c7NRFkcV9/N+U8HLv7gZJSp6snLueZEq3eC4DL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/rn-international-phone-number@0.13.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":123673},"main":"lib/index.js","types":"lib/index.d.ts","gitHead":"079d7eff17e255db04e9e966f62771abc120ed08","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:524b95ac-59fd-4de1-b5b9-5d54976aac12"}},"repository":{"url":"git+https://github.com/AstrOOnauta/react-native-international-phone-number.git","type":"git"},"_npmVersion":"11.14.1","description":"International mobile phone input component with mask for React Native","directories":{},"_nodeVersion":"24.15.0","dependencies":{"libphonenumber-js":"1.13.2","rn-country-select":"0.5.2"},"_hasShrinkwrap":false,"devDependencies":{"metro-react-native-babel-preset":"^0.61.0"},"peerDependencies":{"react":">=18.2.0","react-native":">=0.71.0"},"_npmOperationalInternal":{"tmp":"tmp/rn-international-phone-number_0.13.2_1779186935882_0.05100640602831863","host":"s3://npm-registry-packages-npm-production"}},"0.14.0":{"name":"rn-international-phone-number","version":"0.14.0","keywords":["mobile","ios","android","react-native","expo","components","typescript","react-hook-form","mask-input","phone-input","international-number-phone","picker","country-picker","country","flag","custom-lib","codes","search","animated","input"],"author":{"url":"https://github.com/AstrOOnauta","name":"AstrOOnauta"},"license":"ISC","_id":"rn-international-phone-number@0.14.0","maintainers":[{"name":"_astroonauta","email":"barbosa.will.1998@gmail.com"}],"homepage":"https://astroonauta.github.io/react-native-international-phone-number/","bugs":{"url":"https://github.com/AstrOOnauta/react-native-international-phone-number/issues"},"dist":{"shasum":"2a711e2c0fd9b467d168c7fb70089f594d794580","tarball":"https://registry.npmjs.org/rn-international-phone-number/-/rn-international-phone-number-0.14.0.tgz","fileCount":30,"integrity":"sha512-xJmwz2I2x2v4UtGhQGYxHUzZGcVh7xiutZ2UvhRGt/m4nAu1r6Z2+dXmGGAX/O2wJMP8bOSPAXE0othlnvOXkQ==","signatures":[{"sig":"MEQCIDh7kzV312Qd5/aRmBX550ZkIUHvL7AkJOpKLCOXLavvAiALzRBm42D97/DxgYytcOlWnshBPZMXBOU+y0vm8xcVmQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/rn-international-phone-number@0.14.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":105518},"main":"lib/index.js","types":"lib/index.d.ts","gitHead":"f207798ab8e614b976e08f009a7995c67de0ac1f","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:524b95ac-59fd-4de1-b5b9-5d54976aac12"}},"repository":{"url":"git+https://github.com/AstrOOnauta/react-native-international-phone-number.git","type":"git"},"_npmVersion":"11.15.0","description":"International mobile phone input component with mask for React Native","directories":{},"_nodeVersion":"24.15.0","dependencies":{"libphonenumber-js":"1.13.3","rn-country-select":"0.5.2"},"_hasShrinkwrap":false,"devDependencies":{"metro-react-native-babel-preset":"^0.61.0"},"peerDependencies":{"react":">=18.2.0","react-native":">=0.71.0"},"_npmOperationalInternal":{"tmp":"tmp/rn-international-phone-number_0.14.0_1779647189894_0.6223264747923654","host":"s3://npm-registry-packages-npm-production"}},"0.15.0":{"name":"rn-international-phone-number","author":{"name":"AstrOOnauta","url":"https://github.com/AstrOOnauta"},"version":"0.15.0","description":"International phone number input for React Native, Expo & Web — per-country mask, validation, line-type detection, country picker and 33 languages.","main":"lib/index.js","types":"lib/index.d.ts","scripts":{"typecheck":"tsc --noEmit","test":"npm run typecheck && node scripts/check.mjs"},"keywords":["react-native","phone-input","phone-number-input","international-phone-number","react-native-phone-input","country-picker","country-code-picker","calling-code","dial-code","mask-input","phone-mask","phone-validation","libphonenumber","e164","i18n","expo","react-native-web","ios","android","typescript","react-hook-form","formik","accessibility","flag","input"],"license":"ISC","repository":{"type":"git","url":"git+https://github.com/AstrOOnauta/react-native-international-phone-number.git"},"bugs":{"url":"https://github.com/AstrOOnauta/react-native-international-phone-number/issues"},"homepage":"https://astroonauta.github.io/react-native-international-phone-number/","peerDependencies":{"react":">=18.2.0","react-native":">=0.71.0","react-native-safe-area-context":">=4.0.0"},"dependencies":{"libphonenumber-js":"1.13.12","rn-country-select":"0.5.3"},"devDependencies":{"@types/react":"^19.2.18","react":"^19.2.8","react-native":"^0.82.1","typescript":"^5.9.3"},"gitHead":"b19326bb6aaf02c6e155508dfa19b25e96c446ed","_id":"rn-international-phone-number@0.15.0","_nodeVersion":"24.20.0","_npmVersion":"11.19.0","dist":{"integrity":"sha512-mnQ+HyFNOpBjAkDFCQsSYiiLHju2NGDsGpeqrqRMFOLwA/MX/21nYytZWQ7/GRCmvSPLDoJEajzvUTpnByO8Pg==","shasum":"8692f10fb68638228bea6612a09e8ded5899274a","tarball":"https://registry.npmjs.org/rn-international-phone-number/-/rn-international-phone-number-0.15.0.tgz","fileCount":33,"unpackedSize":118215,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/rn-international-phone-number@0.15.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIF7wmcE9EgM5hvkdXkbZ2hw2J77B1trq2s7T+9p3qqdCAiAjiVv4TEmy7lxN5Z8wyypfYcJMnnDLBGYssSvxz62GJw=="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:524b95ac-59fd-4de1-b5b9-5d54976aac12"}},"directories":{},"maintainers":[{"name":"_astroonauta","email":"barbosa.will.1998@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/rn-international-phone-number_0.15.0_1788604610674_0.37762280245803326"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-18T13:33:07.345Z","modified":"2026-09-05T10:36:51.141Z","0.12.0":"2026-03-18T13:33:07.586Z","0.13.0":"2026-04-16T11:37:46.161Z","0.13.1":"2026-05-10T11:05:15.807Z","0.13.2":"2026-05-19T10:35:36.035Z","0.14.0":"2026-05-24T18:26:30.058Z","0.15.0":"2026-09-05T10:36:50.807Z"},"bugs":{"url":"https://github.com/AstrOOnauta/react-native-international-phone-number/issues"},"author":{"name":"AstrOOnauta","url":"https://github.com/AstrOOnauta"},"license":"ISC","homepage":"https://astroonauta.github.io/react-native-international-phone-number/","keywords":["react-native","phone-input","phone-number-input","international-phone-number","react-native-phone-input","country-picker","country-code-picker","calling-code","dial-code","mask-input","phone-mask","phone-validation","libphonenumber","e164","i18n","expo","react-native-web","ios","android","typescript","react-hook-form","formik","accessibility","flag","input"],"repository":{"type":"git","url":"git+https://github.com/AstrOOnauta/react-native-international-phone-number.git"},"description":"International phone number input for React Native, Expo & Web — per-country mask, validation, line-type detection, country picker and 33 languages.","maintainers":[{"name":"_astroonauta","email":"barbosa.will.1998@gmail.com"}],"readme":"<br>\n\n<div align=\"center\">\n  <img src=\"https://astroonauta.github.io/react-native-international-phone-number/img/preview.png\" alt=\"rn-international-phone-number preview - React Native international phone number input, country dial code selector, flag picker with auto phone mask, validation and i18n (33 languages)\">\n</div>\n\n<br>\n\n<h1 align=\"center\">React Native International Phone Number Input</h1>\n\n<p align=\"center\">\n  <a href=\"https://www.npmjs.com/package/rn-international-phone-number\">\n    <img src=\"https://img.shields.io/npm/v/rn-international-phone-number.svg?style=flat-square\" alt=\"npm version\">\n  </a>\n  <a href=\"https://www.npmjs.com/package/rn-international-phone-number\">\n    <img src=\"https://img.shields.io/npm/dt/rn-international-phone-number.svg?style=flat-square&color=success\" alt=\"npm downloads\">\n  </a>\n  <a href=\"https://github.com/AstrOOnauta/react-native-international-phone-number\">\n    <img src=\"https://img.shields.io/github/stars/AstrOOnauta/react-native-international-phone-number?style=flat-square&color=success\" alt=\"GitHub stars\"/>\n  </a>\n  <a href=\"https://github.com/AstrOOnauta/react-native-international-phone-number/issues\">\n    <img src=\"https://img.shields.io/github/issues/AstrOOnauta/react-native-international-phone-number?style=flat-square&color=blue\" alt=\"GitHub issues\"/>\n  </a>\n  <a href=\"https://github.com/AstrOOnauta/react-native-international-phone-number/pulls\">\n    <img src=\"https://img.shields.io/github/issues-pr/AstrOOnauta/react-native-international-phone-number?style=flat-square&color=blue\" alt=\"GitHub pull requests\"/>\n  </a>\n  <a href=\"LICENSE.md\">\n    <img src=\"https://img.shields.io/:license-isc-yellow.svg?style=flat-square\" alt=\"ISC License\"/>\n  </a>\n</p>\n\n<br>\n\n<div align=\"center\">\n\n### 📚 Full documentation: **<a href=\"https://astroonauta.github.io/react-native-international-phone-number/\">astroonauta.github.io/react-native-international-phone-number</a>**\n\n</div>\n\n<br>\n\nInternational mobile phone input for **React Native**, **Expo** and **React Native Web**. Country dial code selector, flag picker, auto phone mask, validation, line-type detection, smart paste, and i18n for 33 languages.\n\n> ⚠️ **Install `rn-international-phone-number`.** This library was previously published as `react-native-international-phone-number`. The npm account behind that package is no longer under the author's control, so it is frozen at `v0.12.3`, receives no fixes or security patches from this project, and cannot be deprecated by the author. Every release from `v0.13.0` on lives here. See the [migration guide](https://astroonauta.github.io/react-native-international-phone-number/migration).\n\n## Features\n\n- 🌎 **Phone Input Mask** – Auto-formatting per selected country\n- ✅ **Validation** – Optional `onValidationChange` callback\n- 📞 **Line Type Detection** – Tell `MOBILE`, `FIXED_LINE`, `TOLL_FREE`, `VOIP` and more apart\n- 📋 **Smart Paste** – Paste an E.164 number and the country switches automatically\n- 💡 **Dynamic Placeholder** – Country-aware example number as placeholder (`placeholderType=\"number\"`)\n- 🪝 **Headless Hook** – `usePhoneInput` exposes all state + setters for fully custom UIs\n- 📱 **Cross-Platform** – iOS, Android and Web\n- 🧩 **Integration** – React Native CLI & Expo, functional & class components\n- 🈶 **i18n** – 33 languages (ISO 639-1 / ISO 639-2)\n- ♿ **Accessibility** – Screen reader friendly\n\n## Try it out\n\n[Live demo on Expo Snack →](https://snack.expo.dev/@astroonauta/react-native-international-phone-number)\n\n## Installation\n\n```bash\nnpm install rn-international-phone-number react-native-safe-area-context\nnpx pod-install ios\n```\n\nFor Web (React Native CLI / Expo font setup) and full configuration, see the [Installation guide](https://astroonauta.github.io/react-native-international-phone-number/installation).\n\n## Quick start\n\n```tsx\nimport React, {useState} from 'react';\nimport {View} from 'react-native';\nimport PhoneInput, {ICountry} from 'rn-international-phone-number';\n\nexport default function App() {\n  const [phone, setPhone] = useState('');\n  const [country, setCountry] = useState<ICountry | null>(null);\n\n  return (\n    <View style={{flex: 1, padding: 24}}>\n      <PhoneInput\n        value={phone}\n        onChangePhoneNumber={setPhone}\n        country={country}\n        onChangeCountry={setCountry}\n      />\n    </View>\n  );\n}\n```\n\n## Common configurations\n\nEvery prop with a copy-paste snippet lives in [Props by Example](https://astroonauta.github.io/react-native-international-phone-number/guides/props-by-example). The ones people reach for first:\n\n```tsx\n// Dark mode\n<PhoneInput theme=\"dark\" />\n\n// Right-to-left layout\n<PhoneInput rtl language=\"ar\" />\n\n// Starting country / starting number (E.164 — country is inferred)\n<PhoneInput defaultCountry=\"US\" />\n<PhoneInput defaultPhoneNumber=\"+12505550199\" />\n\n// Change the language of country names and modal copy (33 languages)\n<PhoneInput language=\"pt\" />\n\n// Force one mask for every country\n<PhoneInput customMask=\"(###) ###-####\" />\n\n// Restrict, exclude or pin countries in the modal\n<PhoneInput visibleCountries={['BR', 'PT', 'US']} />\n<PhoneInput hiddenCountries={['RU']} />\n<PhoneInput popularCountries={['BR', 'US']} />\n\n// Lock the country, or the whole input\n<PhoneInput defaultCountry=\"BR\" modalDisabled />\n<PhoneInput disabled />\n\n// Validation and line type (MOBILE, FIXED_LINE, TOLL_FREE, VOIP…)\n<PhoneInput\n  onValidationChange={(isValid, type, country) => setCanSubmit(isValid)}\n  onPhoneNumberTypeChange={(type) => setLineType(type)}\n/>\n\n// Bottom sheet sizing (mobile) — 'popup' is the default on Web\n<PhoneInput modalType=\"bottomSheet\" initialBottomsheetHeight=\"60%\" showModalAlphabetFilter />\n\n// Replace the caret and the flag\n<PhoneInput\n  customCaret={() => <Icon name=\"chevron-down\" size={20} />}\n  customFlag={(country) => <Image source={flags[country.cca2]} />}\n/>\n\n// Custom styles — full key list in the theming guide\n<PhoneInput\n  phoneInputStyles={{container: {borderRadius: 12}, input: {color: '#fff'}}}\n  modalStyles={{content: {backgroundColor: '#111827'}, countryName: {color: '#fff'}}}\n/>\n\n// Any TextInput prop works too (except `value` / `onChangeText`)\n<PhoneInput autoFocus onBlur={handleBlur} returnKeyType=\"done\" testID=\"phone-input\" />\n```\n\nRead the E.164 value for your backend from the ref:\n\n```tsx\nconst ref = useRef<IPhoneInputRef>(null);\n\n<PhoneInput ref={ref} />;\n\nref.current?.internationalPhoneNumber; // '+5511912345678'\nref.current?.isValidPhoneNumber;       // true\n```\n\n## Documentation\n\n| Topic | Link |\n| --- | --- |\n| Props by Example (all props) | [astroonauta.github.io/.../guides/props-by-example](https://astroonauta.github.io/react-native-international-phone-number/guides/props-by-example) |\n| Installation | [astroonauta.github.io/.../installation](https://astroonauta.github.io/react-native-international-phone-number/installation) |\n| Quick Start | [astroonauta.github.io/.../quick-start](https://astroonauta.github.io/react-native-international-phone-number/quick-start) |\n| Props API | [astroonauta.github.io/.../api/props](https://astroonauta.github.io/react-native-international-phone-number/api/props) |\n| Ref API | [astroonauta.github.io/.../api/ref](https://astroonauta.github.io/react-native-international-phone-number/api/ref) |\n| `usePhoneInput` hook | [astroonauta.github.io/.../api/hooks](https://astroonauta.github.io/react-native-international-phone-number/api/hooks) |\n| Utility functions | [astroonauta.github.io/.../api/utilities](https://astroonauta.github.io/react-native-international-phone-number/api/utilities) |\n| Theming, dark mode & RTL | [astroonauta.github.io/.../guides/theming](https://astroonauta.github.io/react-native-international-phone-number/guides/theming) |\n| Validation & line type | [astroonauta.github.io/.../guides/validation](https://astroonauta.github.io/react-native-international-phone-number/guides/validation) |\n| i18n (33 languages) | [astroonauta.github.io/.../guides/i18n](https://astroonauta.github.io/react-native-international-phone-number/guides/i18n) |\n| Accessibility | [astroonauta.github.io/.../guides/accessibility](https://astroonauta.github.io/react-native-international-phone-number/guides/accessibility) |\n| Testing | [astroonauta.github.io/.../guides/testing](https://astroonauta.github.io/react-native-international-phone-number/guides/testing) |\n| React Hook Form / Formik / TanStack Form | [astroonauta.github.io/.../examples](https://astroonauta.github.io/react-native-international-phone-number/examples/react-hook-form) |\n| FAQ & Troubleshooting | [astroonauta.github.io/.../faq](https://astroonauta.github.io/react-native-international-phone-number/faq) |\n| Migration guide | [astroonauta.github.io/.../migration](https://astroonauta.github.io/react-native-international-phone-number/migration) |\n| Changelog | [astroonauta.github.io/.../changelog](https://astroonauta.github.io/react-native-international-phone-number/changelog) |\n\n## Contributing\n\nFork the repo, fix or improve, and open a PR. See the [Contributing guide](https://astroonauta.github.io/react-native-international-phone-number/contributing).\n\n## License\n\n[ISC](LICENSE.md)\n\n<br>\n\n<div align=\"center\">\n  <a href=\"https://www.buymeacoffee.com/astroonautadev\" target=\"_blank\">\n    <img src=\"https://survivingmexico.files.wordpress.com/2018/07/button-gif.gif\" alt=\"Buy Me A Coffee - Support rn-international-phone-number\" style=\"height: auto !important;width: 60% !important;\">\n  </a>\n  <br>\n  Thanks for stopping by! 😁\n</div>\n","readmeFilename":"README.md"}