2.5.2 / 31.12.2019
===================
* Added `inputStyleReset: boolean` property that can be set to `true` to prevent the library from applying decoration styles to the ``.
2.5.0 / 09.11.2019
===================
* Temporarily reverted back to "smart input" instead of the "basic input" (with the `smartCaret` property now being `true` by default). The reason is that I've added a [potential workaround](https://github.com/catamphetamine/input-format/issues/2#issuecomment-552032606) for Android devices to `input-format` library ("smart caret" implementation). We'll see if anyone reports anything. There have been some minor complaints about "basic caret" not being "smart" enough by always jumping to the end of the input field.
* Added `isPossiblePhoneNumber(string): boolean` exported function: it checks if the phone number is "possible". Only checks the phone number length, doesn't check the number digits against any regular expressions like `isValidPhoneNumber()` does.
* Added `getCountries(): string[]` exported function (returns an array of all possible country codes).
* Added `international={true}` property to "without country select" input. If `country` property is passed along with `international={true}` property then the phone input will be input in "international" format for that `country` (without "country calling code"). For example, if `country="US"` property is passed to "without country select" input then the phone number will be input in the "national" format for `US` (`(213) 373-4253`). But if both `country="US"` and `international={true}` properties are passed then the phone number will be input in the "international" format for `US` (`213 373 4253`) (without "country calling code" `+1`). This
* Added `defaultCountry: string` and `useNationalFormatForDefaultCountryValue: boolean` properties to "without country select" input.
* Added `smartCaret` property to "without country select" input. It's the same one as the `smartCaret` property of the default ("with country select") phone number input. That also means that "without country select" input now defaults to "smart caret" mode rather than "basic caret" mode.
* Added `countryCallingCode` property to "without country select" input. When `country` property is passed along with `international={true}` property then by default the phone number will be input in the "international" format for `US` (`+1 213 373 4253`). However, if `countryCallingCode={false}` property is passed then the country calling code part (`+1`) will be omitted, and the phone number will be input in the "international" format for `US` without "country calling code" (`213 373 4253`).
* Removed `redux-form` onBlur bug workaround from the recently introduced "without country select" component. If there're any `redux-form` bugs then the new versions of this library won't be fixing them. `redux-form` has been deprecated for a long time.
* Added [`reset: any`](https://github.com/catamphetamine/react-phone-number-input/issues/300) property that resets `value` and `country` whenever it's changed. It's not implemented as some instance `.reset()` method because `ref` will likely be forwarded to ``.
2.4.0 / 17.10.2019
===================
* The previous "patch" version bump that added `numberInputComponent` property should actually have been a "feature" version bump, so bumping "feature" version now.
* The country is now reset in cases when a user erases a phone number that has been input in international format. This fixes the cases when a user tries to input their local phone number when no country has been selected and ends up with an international phone number and a randomly selected country. Then such user erases the `` contents and tries inputting their local phone number again (now with the random country being selected) — this results in a seemingly-correct phone number but the reality is that the country of the phone number is completely unrelated (random). The change in this release fixes that: when a user erases all digits of an international number the random-selected country is reset.
* Added `numberInputProps` and `countrySelectProps`. If a custom `inputComponent` property has been specified then this new `numberInputProps` property might result in an `"Unknown prop "inputProps" on tag"` React warning because this new `numberInputProps` property is most likely passed as `{...rest}` to the underlying ``. But such warning isn't considered a "breaking change", and it's unlikely that anyone actually passed their own `inputComponent` due to the complexity.
* Added an `/input` subpackage that exports the "Without country select" phone number input component. The previously proposed `/basic-input` subpackage is now deprecated.
* Added `prevInput` argument to `parseInput()` function of `input-control.js`. It's unlikely that anyone used it directly as `import { parseInput } from 'react-phone-number-input/commonjs/input-control'`. But if anyone did then such code would break because the function's arguments changed.
* (misc) Removed the unintuitive "magic" phone number digits conversion logic when a phone number in international format has been input and then the user decides to select another country: previously it replaced the "country calling code" of the previous country with the "country calling code" of the new country keeping the international format of the phone number. It has been noticed that selecting a country manually having an international phone number already typed in most likely corresponds to the cases when the user tried typing in a local phone number with no country selected resulting in an international number being input and a random country being selected. Then such user decides to select the correct country manually and expects his input to be corrected back to "local" format. See the [original issue](https://github.com/catamphetamine/react-phone-number-input/issues/273).
2.3.25 / 16.10.2019
===================
* Added `numberInputComponent` property which is supposed to replace `inputComponent` property for the end users: it turned out that passing custom `inputComponent` required also implementing (copy-pasting) phone number parsing and formatting logic. The new `numberInputComponent` customization property is different in this aspect: it's a customization property of `inputComponent` itself. By default `numberInputComponent` is `"input"` meaning that `inputComponent` renders a standard DOM `` by default. By passing a custom `numberInputComponent` this standard DOM `` can be replaced by such custom number input component (for example, when using UI libraries like "Material UI" or "Bootstrap"). The former `inputComponent` property still works, it's just now an undocumented one (too complex for the end users to implement). And it now also receives a new `inputComponent` property that is basically the new `numberInputComponent` property, just with a shorter name — this new property might result in an `"Unknown prop "inputComponent" on tag"` React warning, but that's only in the cases when a custom `inputComponent` was passed earlier which is unlikely (it's unlikely that anyone actually passed their own `inputComponent`).
2.3.24 / 30.09.2019
===================
* Added `countrySelectAriaLabel: string` property.
* Added `getCountryCallingCode(country: string): string` exported function.
2.3.19 / 07.07.2019
===================
* Added an exported `parsePhoneNumber(value)` function because some people [requested](https://github.com/catamphetamine/react-phone-number-input/issues/268) a function to get `country` from `value`.
* Added `parseRFC3966()` and `formatRFC3966()` exports (phone number extensions).
2.3.18 / 21.06.2019
===================
* Changed the "International" flag icon.
* [Fixed](https://github.com/catamphetamine/react-phone-number-input/issues/258) `react-phone-number-input/flags` import.
2.3.8 / 15.03.2019
==================
* Recently I removed some of the countries from the list of selectable countries because they weren't supported by Google's `libphonenumber`: previously I didn't check if all the selectable countries were supported (for some reason) so the list of countries contained some countries which weren't supported by `libphonenumber` which in turn would result in incorrect phone number parsing/formatting (countries like Abkhazia and South Osetia, for example).
* I also added Kosovo to the list. It's not a country but a "territory" instead. I imagine people from Kosovo might be looking for "Kosovo" in the list and they'd be confused if it was missing. Google supports `XK` territory code and the flag for `XK` has been recently added to the flags repo. Anyone using custom `flagsPath` should update their flag bundles accordingly.
* Also added `TA` and `AC` countries to the list but they're using `SH` flag for now, so no need to update flags for them yet. If the author of the flags repo adds the flags for `TA` and `AC` then the flags will have to be updated. See the [issue](https://github.com/lipis/flag-icon-css/issues/537) in the flags repo for more info.
* Also note that when supplying custom `flagsPath` those custom-hosted flags might go out of sync with the list of countries. For example, there could be people hosting their own copy of flags, and then `XK` flag is added to the flags repo and I add "Kosovo" territory to the list and now `XK` flag is missing from all custom-hosted flag bundles and if those people update this library to the latest version without updating their custom-hosted flag bundled they'd get an "Image not found" error when selecting "Kosovo" territory from the list.
2.3.0 / 02.01.2019
==================
* Migrated `input-control.js` to the latest `libphonenumber-js` API.
* Added `/min`, `/max`, `/mobile` and `/custom` subpackages pre-wired with different flavors of metadata. See the relevant readme section for more info.
* Deprecated importing from `react-phone-number-input/libphonenumber` sub-package (a workaround for ES6/CommonJS double import issue) because the ES6/CommonJS double import issue has been resolved.
2.2.9 / 30.09.2018
==================
* Added `.react-phone-number-input--focus` CSS class. [Issue](https://github.com/catamphetamine/react-phone-number-input/issues/189).
2.2.0 / 03.08.2018
==================
* Changed the output of `AsYouType` formatter. E.g. before for `US` and input `21` it was outputting `(21 )` which is not good for phone number input (not intuitive and is confusing). Now it will not add closing braces which haven't been reached yet by the input cursor and it will also strip the corresponding opening braces, so for `US` and input `21` it now is just `21`, and for `213` it is `(213)`.
2.1.8 / 27.07.2018
==================
* Lowered React requirements back to `0.14` (same as for version 1.x of this library).
2.0.0 / 17.07.2018
==================
* (breaking change) `/native` is now the default export. `react-responsive-ui` select is now exported as `react-phone-number-input/react-responsive-ui`.
* (breaking change) Migrated `react-responsive-ui` country select from `0.10` to `0.13`. It no longer has text input functionality (like "autocomplete") — it's just a `` now, without any text input field. Removed `rrui.css` file (use `react-responsive-ui/style.css` bundle instead, or import styles individually from `react-responsive-ui/styles`). Renamed `maxItems` property to `scrollMaxItems`. Removed `countrySelectToggleClassName` property (unused).
* (breaking change) `smartCaret` is now `false` by default (previously was `true`). This was done because some Samsung Android phones were having issues with `smartCaret={true}` (which was the default in version `1.x`). `smartCaret` has been removed for now, so that it doesn't include `input-format` library code.
* (breaking change) `international` property is now `true` by default meaning that by default there will always be the "International" option in the country ``.
* (breaking change) CSS changes: renamed `.react-phone-number-input__phone--native` CSS class to `.react-phone-number-input__phone`, added new `.react-phone-number-input__input` CSS class (the phone input).
* (breaking change) Removed undocumented exports.
* (breaking change) For `/custom` component `labels` and `internationalIcon` properties are now required (previously were `react-phone-number-input/locales/default.json` and `react-phone-number-input/commonjs/InternationalIcon` by default).
* (breaking change) Removed `/resources` directory (due to not being used).
1.1.13 / 12.07.2018
===================
* Added `react-phone-number-input/basic-input` component.
1.1.3 / 29.05.2018
===================
* Some CSS tweaks and code refactoring.
1.1.2 / 29.05.2018
===================
* Added an isolated `react-phone-number-input/native` export (so that it doesn't include `react-responsive-ui` package in the resulting bundle).
* Some CSS tweaks.
* `countrySelectComponent` `onToggle` property renamed to `hidePhoneInputField`.
1.1.0 / 28.05.2018
===================
* Added `PhoneInputNative` exported component which deprecateds the old `nativeCountrySelect={true/false}` property. `PhoneInputNative` component doesn't require `rrui.css`. It will be the default exported component in version `2.x`.
* Fixed [a minor bug](https://github.com/catamphetamine/react-phone-number-input/issues/131) appering in React 16.4 which caused the currently selected country flag to be reset while typing.
1.0.10 / 19.04.2018
===================
* Added an optional `smartCaret={false}` property for [fixing Samsung Android phones](https://github.com/catamphetamine/react-phone-number-input/issues/75).
1.0.8 / 19.04.2018
===================
* (breaking change) Changed the properties passed to a custom `inputComponent`, see `Input.js` `propTypes` for more info.
* Added `BasicInput`: an alternative `inputComponent` for working around the Samsung Galaxy caret positioning bug.
1.0.0 / 21.03.2018
===================
* (breaking change) Rewrote `Input.js` — there is a possibility that something could potentially break for users coming from previous versions.
* (breaking change) No longer exporting `libphonenumber-js` functions.
* (breaking change) `dictionary`'s `"International"` key renamed to `"ZZ"`.
* (breaking change) `dictionary` property renamed to `labels`.
* (breaking change) `nativeExpanded` property renamed to `nativeCountrySelect`.
* (breaking change) `selectTabIndex` property renamed to `countrySelectTabIndex`.
* (breaking change) `selectMaxItems` property renamed to `countrySelectMaxItems`.
* (breaking change) `selectAriaLabel` property renamed to `countrySelectAriaLabel`.
* (breaking change) `selectCloseAriaLabel` property renamed to `countrySelectCloseAriaLabel`.
* (breaking change) `selectComponent` property renamed to `countrySelectComponent`
* (breaking change) `flagComponent`'s `countryCode` property was renamed to just `country`.
* (breaking change) Renamed `countries with flags.js` to `flags.js` and put them in the root folder.
* (breaking change) `flags` property changed: it can no longer be a `boolean` and can only be an object of flag `React.Component`s.
* (breaking change) `selectStyle` and `inputStyle` properties removed (due to not being used).
* (breaking change) `inputTabIndex` property removed (use `tabIndex` instead).
* (breaking change) `onCountryChange` property removed (no one actually used it).
* (breaking change) `convertToNational` property renamed to `displayInitialValueAsLocalNumber`.
* (breaking change) `style.css` changed a bit (to accomodate phone number extension field).
* (breaking change) If someone did override `.rrui__input:not(.rrui__input--multiline)` CSS rule then now it has been split into two CSS rules: `.rrui__input` and `.rrui__input--multiline`.
* Added `locale`s for the `labels` property (`ru` and `en`).
* Added `ext` property for phone number extension input.
0.17.0 / 24.02.2018
===================
* (breaking change) Fixed SVG flag icons for IE. This alters the markup a bit: `` is now wrapped in a `