If the options have not loaded yet, open the panel with a 100 ms delay. In most cases, the list will finish loading within that brief moment, and the user will not perceive it as interface lag. If the data still has not loaded, show the menu with a loading indicator for at least 300 ms to avoid unpleasant flickering.
After the loading indicator, show an error message with an option to retry.
A select component is intended to have available choices. If it has no options, this should be treated as an exceptional case. When the application does not provide any choices, the select should be replaced with an input field or a dialog for creating a new entity.
As a last resort, you can place a message in the dropdown menu. Hide the search field if it is known for sure that there are no options in the menu at all.
kbq-select-trigger allows you to override the block that displays the selected value without affecting the placeholder, cleaner, or icon.
kbq-select-matcher allows you to replace the entire contents of kbq-select, including the placeholder, cleaner, and icon.