JSFiddle - React, Tailwind, and code Playground

HTML

<div class="demo">
    <form method="post" action="/" name="searchForm" id="searchForm">
    <label for="search">Search: </label>
    <input id="search" />
    </form>
</div>

CSS

.ui-autocomplete-category {
        font-weight: bold;
        padding: .2em .4em;
        margin: .8em 0 .2em;
        line-height: 1.5;
    }

JavaScript

$.widget( "custom.catcomplete", $.ui.autocomplete, {
  
        _renderMenu: function( ul, items ) {
            var self = this,
                currentCategory = "";
            $.each( items, function( index, item ) {
                if ( item.category != currentCategory ) {
                    ul.append( "<li class='ui-autocomplete-category'>" + item.category + "</li>" );
                    currentCategory = item.category;
                }
                self._renderItem( ul, item );
            });
        }

    });

//$( "#search" ).autocomplete({
//   select: function(event, ui) {   alert('a'+ui.item.value); }
//});


$(function() {
        var data = [
            { label: "anders", category: "" },
            { label: "andreas", category: "" },
            { label: "antal", category: "" },
            { label: "annhhx10", category: "Products" },
            { label: "annk K12", category: "Products" },
            { label: "annttop C13", category: "Products" },
            { label: "anders andersson", category: "People" },
            { label: "andreas andersson", category: "People" },
            { label: "andreas johnson", category: "People" }
        ];
        
        $( "#search" ).catcomplete({
            delay: 0,
            source: data,
            select: function(event, ui) {   alert('submitting: '+ui.item.value); $("#searchForm").submit(); }
        });
    });