diff --git a/src/lib/tabs/tabs-cmdk.svelte b/src/lib/tabs/tabs-cmdk.svelte index aaee8dd..d326d9c 100644 --- a/src/lib/tabs/tabs-cmdk.svelte +++ b/src/lib/tabs/tabs-cmdk.svelte @@ -71,11 +71,29 @@ } }; + const isFocusable = (element: HTMLElement): boolean => { + const tabIndex = element.getAttribute('tabIndex'); + const isTabIndexFocusable = tabIndex !== null && parseInt(tabIndex, 10) >= 0; + + return isTabIndexFocusable || element.isContentEditable; + }; + + const handleClickOutside = (event: MouseEvent) => { + const target = event.target as HTMLElement; + + if (!isFocusable(target)) { + cmdkInputEl?.focus(); + event.preventDefault(); + } + }; + onMount(() => { cmdkInputEl = document.querySelector('[data-cmdk-input]') as HTMLInputElement; }); + +