JSFiddle - React, Tailwind, and code Playground
by areski
HTML
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/tom-select.complete.min.js"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/tom-select.bootstrap5.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css">
<div class="p-4"> <select id="select-tags" multiple data-placeholder="Best movies and TV shows" class="form-control">
<optgroup label="TV Shows">
<option data-src="https://cdn1.iconfinder.com/data/icons/logotypes/32/chrome-32.png" value="Blue Bloods" data-date="2010-2021">Blue Bloods (2010-2021)</option>
<option data-src="https://cdn1.iconfinder.com/data/icons/logotypes/32/chrome-32.png" value="Magnum P.I." data-date="1980-1988" selected>Magnum P.I. (1980-1988)</option>
</optgroup>
<optgroup label="Movies">
<option value="An Innocent Man" data-date="1989">An Innocent Man (1989)</option>
<option value="In & Out" data-date="1997">In & Out (1997)</option>
<option value="Lassiter" data-date="1984">Lassiter (1984)</option>
<option value="Mr. Baseball" data-date="1992">Mr. Baseball (1992)</option>
<option value="Quigley Down Under" data-date="1990">Quigley Down Under (1990)</option>
<option value="Three Men and a Baby" data-date="1987">Three Men and a Baby (1987)</option>
</optgroup>
</select>
</div>
JavaScript
new TomSelect("#select-tags",{
plugins: ['remove_button'],
create: true,
onItemAdd:function(){
this.setTextboxValue('');
this.refreshOptions();
},
render:{
option:function(data,escape){
return `<div class="d-flex"><img class="me-2" src="${data.src}"><span>` + escape(data.value) + '</span><span class="ms-auto text-muted">' + escape(data.date) + '</span></div>';
},
item:function(data,escape){
return `<div class="d-flex"><img class="me-2" src="${data.src}"><span>` + escape(data.value) + '</div>';
}
}
});