diff --git a/web/src/components/CommandPalette.tsx b/web/src/components/CommandPalette.tsx index 47641a6..1bda77f 100644 --- a/web/src/components/CommandPalette.tsx +++ b/web/src/components/CommandPalette.tsx @@ -192,57 +192,64 @@ export default function CommandPalette() { let lastCategory = ""; return ( -
setOpen(false)}> -
e.stopPropagation()}> -
-
-
-
- - - - setQuery(e.target.value)} - onKeyDown={handleInputKeyDown} - /> + <> + {/* Rendered as a sibling, not a child, of .modal — Tabler/Bootstrap's z-index values + (backdrop 1050 vs modal 1055) only sort correctly when compared in the same + stacking context. Nested inside .modal, the backdrop was created its own stacking + context and painted on top of .modal-dialog, silently swallowing every click meant + for a result row. */} +
+
setOpen(false)}> +
e.stopPropagation()}> +
+
+
+
+ + + + setQuery(e.target.value)} + onKeyDown={handleInputKeyDown} + /> +
-
-
- {loading &&
Searching…
} - {!loading && query.trim().length >= 2 && items.length === 0 &&
No matches.
} - {!loading && query.trim().length < 2 &&
Type at least 2 characters…
} - {items.map((item, index) => { - const showHeader = item.category !== lastCategory; - lastCategory = item.category; - return ( -
- {showHeader && ( -
- {item.category} +
+ {loading &&
Searching…
} + {!loading && query.trim().length >= 2 && items.length === 0 &&
No matches.
} + {!loading && query.trim().length < 2 &&
Type at least 2 characters…
} + {items.map((item, index) => { + const showHeader = item.category !== lastCategory; + lastCategory = item.category; + return ( +
+ {showHeader && ( +
+ {item.category} +
+ )} +
setActiveIndex(index)} + onClick={() => go(item)} + > +
{item.title}
+ {item.subtitle &&
{item.subtitle}
}
- )} -
setActiveIndex(index)} - onClick={() => go(item)} - > -
{item.title}
- {item.subtitle &&
{item.subtitle}
}
-
- ); - })} + ); + })} +
-
-
+ ); }