Selectize is the hybrid of a textbox and <select> box. It's jQuery-based and it's useful for tagging, contact lists, country selectors, and so on.

              npm install @selectize/selectize

npm (scoped) GitHub

See Demos

Easy Customization
Includes default styles as well as packaged LESS and SCSS sources available for Bootstrap v3 or v4.
Smart Ranking / Multi-Property Searching & Sorting
Want to search an item's title and description? No problem. You can even override the scoring function used for sorting if you want to get crazy. Uses sifter.js.
Clean API & Code + Extensible
Interface & make addons like a boss with the plugin system. Fully documented on GitHub & inline.
Remote Data Loading
For when you have thousands of options and want them provided by the server as the user types.
Caret Between Items
Order matters sometimes. Use the left and right arrow keys to move between items.
RTL + Díåcritîçs supported
Great for international environments.
Item Creation
Allow users to create items on the fly (and it's async friendly; the control locks until you invoke a callback)
Select & Delete multiple items at once
Hold down option on Mac or ctrl on Windows to select more than one item to delete.