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;
});
+
+