JSFiddle - React, Tailwind, and code Playground

HTML

<div id="select-from" class="input-prepend pushRight">
    <select id="from">
        <option value="AES"><strong>Alesund AES</strong></option>
        <option value="Alghero AHO">Alghero AHO</option>
        <option value="Arad ARW">Arad ARW</option>
        <option value="BarceLona - Terminal 2 BCN">BarceLona - Terminal 2 BCN</option>
        <option value="Barcelona Girona GRO">Barcelona Girona GRO</option>
        <option value="Bari BRI">Bari BRI</option>
        <option value="Basel Mulhouse MLH">Basel Mulhouse MLH</option>
        <option value="Belgrade BEG">Belgrade BEG</option>
        <option value="Bergen BGO">Bergen BGO</option>
        <option value="Bourgas BOJ">Bourgas BOJ</option>
        <option value="Brno BRQ">Brno BRQ</option>
        <option value="Brussels Charleroi CRL">Brussels Charleroi CRL</option>
        <option value="Bucharest H. Coanda OTP">Bucharest H. Coanda OTP</option>
        <option value="Budapest - Terminal 2B BUD">Budapest - Terminal 2B BUD</option>
        <option value="Catania  Fontanarossa Sicily CTA">Catania Fontanarossa Sicily CTA</option>
        <option value="Cluj-Napoca CLJ">Cluj-Napoca CLJ</option>
        <option value="Cologne CGN">Cologne CGN</option>
        <option value="Corfu CFU">Corfu CFU</option>
        <option value="Debrecen DEB">Debrecen DEB</option>
        <option value="Doncaster/Sheffield DSA">Doncaster/Sheffield DSA</option>
        <option value="Eindhoven EIN">Eindhoven EIN</option>
        <option value="Forli/Bologna FRL">Forli/Bologna FRL</option>
        <option value="Geneva GVA">Geneva GVA</option>
        <option value="Hamburg Lubeck LBC">Hamburg Lubeck LBC</option>
        <option value="Heraklion HER">Heraklion HER</option>
        <option value="Katowice KTW">Katowice KTW</option>
        <option value="Larnaca LCA">Larnaca LCA</option>
        <option value="Liverpool LPL">Liverpool LPL</option>
        <option value="Malmo MMX">Malmo MMX</option>
        <option value="Naples...

CSS

.ui-combobox {
    position: relative;
    display: inline-block;
}
.ui-combobox-toggle {
    position: absolute;
    top: 0;
    bottom: 0;
    margin-left: -1px;
    padding: 0;
    /* support: IE7 */
    *height: 1.7em;
    *top: 0.1em;
}
.ui-combobox-input {
    margin: 0;
    padding: 0.3em;
}
.ui-autocomplete {
    max-height: 230px;
    overflow-y: auto;
    /* prevent horizontal scrollbar */
    overflow-x: hidden;
    /* add padding to account for vertical scrollbar */
    padding-right: 0;
}
/* IE 6 doesn’t support max-height
		* we use height instead, but this forces the menu to always be this tall
		*/
 * html .ui-autocomplete {
    height: 100px;
}

JavaScript

(function ($) {
    $.widget("ui.combobox", {
        _create: function () {
            var input,
            that = this,
                wasOpen = false,
                select = this.element.hide(),
                selected = select.children(":selected"),
                value = selected.val() ? selected.text() : "",
                wrapper = this.wrapper = $("<span>")
                    .addClass("ui-combobox")
                    .insertAfter(select);

            function removeIfInvalid(element) {
                var value = $(element).val(),
                    
                    // the ^ matches only first character
                    matcher = new RegExp("^" + $.ui.autocomplete.escapeRegex(value) + "$", "i"),
                    valid = false;
                select.children("option").each(function () {
                    if ($(this).text().match(matcher)) {
                        this.selected = valid = true;
                        return false;
                    }
                });

                if (!valid) {
                    // remove invalid value, as it didn't match anything
                    $(element)
                        .val("")
                        .attr("title", value + " didn't match any item")
                        .tooltip("open");
                    select.val("");
                    setTimeout(function () {
                        input.tooltip("close").attr("title", "");
                    }, 2500);
                    input.data("ui-autocomplete").term = "";
                }
            }

            input = $("<input>")
                .appendTo(wrapper)
                .val(value)
                .attr("title", "")
                .addClass("ui-state-default ui-combobox-input")
                .autocomplete({
                delay: 0,
                minLength: 0,
                source: function (request, response) {
                    var matcher = $.ui.autocomplete.escapeRegex(request.term),
    ...