| <template> | 
|     <div class={getFormElementClass}> | 
|         <label lwc:if={label} class={getLabelClass} for="combobox"> | 
|             <abbr lwc:if={required} title="required" class="slds-required">*</abbr> | 
|             {label} | 
|         </label> | 
|         <div class="slds-form-element__control"> | 
|             <div class={getContainerClass}> | 
|                 <div class={getDropdownClass} aria-expanded={isListboxOpen} aria-haspopup="listbox" aria-owns="listbox" | 
|                     role="combobox"> | 
|                     <!-- Search input start --> | 
|                     <div class={getComboboxClass} role="none"> | 
|                         <template lwc:if={isSingleEntry}> | 
|                             <lightning-icon icon-name={getSelectIconName} size="small" | 
|                                 alternative-text="Selected item icon" class={getSelectIconClass}> | 
|                             </lightning-icon> | 
|                         </template> | 
|   | 
|                         <!-- Text input --> | 
|                         <input type="text" class={getInputClass} aria-autocomplete="list" aria-controls="listbox" | 
|                             aria-activedescendant={_focusedResultIndex} autocomplete="off" role="textbox" id="combobox" | 
|                             placeholder={placeholder} value={getInputValue} title={getInputTitle} | 
|                             readonly={isInputReadonly} disabled={disabled} onfocus={handleFocus} onblur={handleBlur} | 
|                             oninput={handleInput} onkeydown={handleKeyDown} /> | 
|   | 
|                         <!-- Search icon --> | 
|                         <lightning-icon icon-name="utility:search" size="x-small" alternative-text="Search icon" | 
|                             class={getSearchIconClass}></lightning-icon> | 
|   | 
|                         <!-- Clear selection button icon for single entry lookups --> | 
|                         <template lwc:if={isSingleEntry}> | 
|                             <button title="Remove selected option" type="button" onclick={handleClearSelection} | 
|                                 class={getClearSelectionButtonClass} disabled={disabled}> | 
|                                 <lightning-icon icon-name="utility:close" size="x-small" | 
|                                     alternative-text="Remove selected option" | 
|                                     class="slds-button__icon"></lightning-icon> | 
|                             </button> | 
|                         </template> | 
|                     </div> | 
|                     <!-- Search input end --> | 
|   | 
|                     <!-- Result list box start --> | 
|                     <div id="listbox" role="listbox" aria-label={label} onmousedown={handleComboboxMouseDown} | 
|                         onmouseup={handleComboboxMouseUp} class={getListboxClass}> | 
|                         <ul class="slds-listbox slds-listbox_vertical" role="presentation"> | 
|                             <!-- Spinner to display when waiting for results of search --> | 
|                             <div lwc:if={loading}> | 
|                                 <lightning-spinner alternative-text="Loading" size="small"></lightning-spinner> | 
|                             </div> | 
|   | 
|                             <!-- Result list start --> | 
|                             <template for:each={searchResultsLocalState} for:item="item" for:index="index" | 
|                                 lwc:if={hasResults}> | 
|                                 <li key={item.result.id} role="presentation" class="slds-listbox__item"> | 
|                                     <div class={item.classes} role="option" id={index} aria-label={item.result.title} | 
|                                         onclick={handleResultClick} data-recordid={item.result.id}> | 
|                                         <span class="slds-media__figure slds-listbox__option-icon"> | 
|                                             <lightning-icon icon-name={item.result.icon} size="small" | 
|                                                 alternative-text="Result item icon"></lightning-icon> | 
|                                         </span> | 
|                                         <span class="slds-media__body"> | 
|                                             <span class="slds-listbox__option-text slds-listbox__option-text_entity"> | 
|                                                 <lightning-formatted-rich-text value={item.result.titleFormatted} | 
|                                                     disable-linkify> | 
|                                                 </lightning-formatted-rich-text> | 
|                                             </span> | 
|                                             <!-- <span lwc:if={item.result.subtitleFormatted} | 
|                                                 class="slds-listbox__option-meta slds-listbox__option-meta_entity"> | 
|                                                 <lightning-formatted-rich-text value={item.result.subtitleFormatted} | 
|                                                     disable-linkify> | 
|                                                 </lightning-formatted-rich-text> | 
|                                             </span> --> | 
|                                         </span> | 
|                                     </div> | 
|                                 </li> | 
|                             </template> | 
|                             <!-- Result list end --> | 
|   | 
|                             <!-- No results start --> | 
|                             <template lwc:else> | 
|                                 <li role="presentation"> | 
|                                     <span class="slds-media slds-listbox__option_entity" role="option"> | 
|                                         <span lwc:if={loading} class="slds-media__body">Loading...</span> | 
|                                         <span lwc:else class="slds-media__body">No results.</span> | 
|                                     </span> | 
|                                 </li> | 
|                             </template> | 
|                             <!-- No results end --> | 
|   | 
|                             <!-- Create new records --> | 
|                             <template for:each={newRecordOptions} for:item="newRecord"> | 
|                                 <li key={newRecord.value} role="presentation" class="slds-listbox__item"> | 
|                                     <div class="slds-media slds-media_center slds-listbox__option slds-listbox__option_entity" | 
|                                         onclick={handleNewRecordClick} data-sobject={newRecord.value} role="option"> | 
|                                         <span class="slds-media__figure slds-listbox__option-icon"> | 
|                                             <lightning-icon icon-name="utility:add" size="small" | 
|                                                 alternative-text={newRecord.label}></lightning-icon> | 
|                                         </span> | 
|                                         <span class="slds-media__body"> | 
|                                             <span class="slds-listbox__option-text">{newRecord.label}</span> | 
|                                         </span> | 
|                                     </div> | 
|                                 </li> | 
|                             </template> | 
|                             <!-- Create new records end --> | 
|                         </ul> | 
|                     </div> | 
|                     <!-- Result list box end --> | 
|                 </div> | 
|             </div> | 
|   | 
|             <!-- Multi-selection start --> | 
|             <template lwc:if={isMultiEntry}> | 
|                 <div id="selection" role="listbox" aria-label={label} aria-orientation="horizontal"> | 
|                     <ul class="slds-listbox slds-listbox_inline slds-var-p-top_xxx-small" role="group" | 
|                         aria-label="Selected options"> | 
|                         <template for:each={selection} for:item="item"> | 
|                             <li key={item.id} role="presentation"> | 
|                                 <lightning-pill label={item.title} title={item.title} | 
|                                     onremove={handleRemoveSelectedItem} name={item.id}> | 
|                                     <lightning-icon icon-name={item.icon}></lightning-icon> | 
|                                 </lightning-pill> | 
|                             </li> | 
|                         </template> | 
|                     </ul> | 
|                 </div> | 
|             </template> | 
|             <!-- Multi-selection end --> | 
|   | 
|             <!-- Errors start --> | 
|             <template for:each={_errors} for:item="error"> | 
|                 <div key={error.id} role="alert" class="slds-form-element__label slds-var-m-top_xx-small form-error"> | 
|                     {error.message} | 
|                 </div> | 
|             </template> | 
|             <!-- Errors end --> | 
|         </div> | 
|     </div> | 
| </template> |