|
|
|
@ -46,6 +46,7 @@
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
defaultFirstOption?: boolean;
|
|
|
|
defaultFirstOption?: boolean;
|
|
|
|
onSelect?: (option: ComboBoxOption | undefined) => void;
|
|
|
|
onSelect?: (option: ComboBoxOption | undefined) => void;
|
|
|
|
|
|
|
|
forceFocus?: boolean;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
let {
|
|
|
|
let {
|
|
|
|
@ -57,6 +58,7 @@
|
|
|
|
allowCreate = false,
|
|
|
|
allowCreate = false,
|
|
|
|
defaultFirstOption = false,
|
|
|
|
defaultFirstOption = false,
|
|
|
|
onSelect = () => {},
|
|
|
|
onSelect = () => {},
|
|
|
|
|
|
|
|
forceFocus = false,
|
|
|
|
}: Props = $props();
|
|
|
|
}: Props = $props();
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
@ -115,6 +117,12 @@
|
|
|
|
};
|
|
|
|
};
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const forceFocusInput = (el: HTMLDivElement) => {
|
|
|
|
|
|
|
|
if (forceFocus) {
|
|
|
|
|
|
|
|
el.focus();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
const activate = () => {
|
|
|
|
const activate = () => {
|
|
|
|
isActive = true;
|
|
|
|
isActive = true;
|
|
|
|
searchQuery = '';
|
|
|
|
searchQuery = '';
|
|
|
|
@ -284,6 +292,7 @@
|
|
|
|
role="combobox"
|
|
|
|
role="combobox"
|
|
|
|
type="text"
|
|
|
|
type="text"
|
|
|
|
value={searchQuery}
|
|
|
|
value={searchQuery}
|
|
|
|
|
|
|
|
use:forceFocusInput
|
|
|
|
use:shortcuts={[
|
|
|
|
use:shortcuts={[
|
|
|
|
{
|
|
|
|
{
|
|
|
|
shortcut: { key: 'ArrowUp' },
|
|
|
|
shortcut: { key: 'ArrowUp' },
|
|
|
|
|