From 7e3ea4a3d496c0a884df51059f873891e8b118fd Mon Sep 17 00:00:00 2001 From: Tyler Jones Date: Thu, 13 Nov 2025 08:59:20 -0500 Subject: [PATCH 1/5] Remove feature flag from `preventBubbling` --- packages/react/src/SelectPanel/SelectPanel.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/react/src/SelectPanel/SelectPanel.tsx b/packages/react/src/SelectPanel/SelectPanel.tsx index 8fe2e158fed..f80c054b204 100644 --- a/packages/react/src/SelectPanel/SelectPanel.tsx +++ b/packages/react/src/SelectPanel/SelectPanel.tsx @@ -794,7 +794,7 @@ function Panel({ } : {}), } as React.CSSProperties, - onKeyDown: usingRemoveActiveDescendant ? preventBubbling(overlayProps?.onKeyDown) : overlayProps?.onKeyDown, + onKeyDown: preventBubbling(overlayProps?.onKeyDown), }} focusTrapSettings={focusTrapSettings} focusZoneSettings={focusZoneSettings} From 15eb0e68c9b153d6938174ed19d33dc34a12d856 Mon Sep 17 00:00:00 2001 From: Tyler Jones Date: Thu, 13 Nov 2025 16:03:42 -0500 Subject: [PATCH 2/5] Add special key to check --- packages/react/src/SelectPanel/SelectPanel.tsx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/react/src/SelectPanel/SelectPanel.tsx b/packages/react/src/SelectPanel/SelectPanel.tsx index f80c054b204..30a8635a4ca 100644 --- a/packages/react/src/SelectPanel/SelectPanel.tsx +++ b/packages/react/src/SelectPanel/SelectPanel.tsx @@ -756,7 +756,9 @@ function Panel({ if (hasModifier) return // skip if it's not a alphabet key - if (!isAlphabetKey(event.nativeEvent as KeyboardEvent)) return + if (event.key !== '/' && !isAlphabetKey(event.nativeEvent as KeyboardEvent)) { + return + } // if this is a typeahead event, don't propagate outside of menu event.stopPropagation() From 541ce5fca6d3732e99ab16487039ea2f8174d15f Mon Sep 17 00:00:00 2001 From: Tyler Jones Date: Fri, 14 Nov 2025 10:28:23 -0500 Subject: [PATCH 3/5] Add changeset --- .changeset/solid-turkeys-shop.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/solid-turkeys-shop.md diff --git a/.changeset/solid-turkeys-shop.md b/.changeset/solid-turkeys-shop.md new file mode 100644 index 00000000000..cbce371d3a4 --- /dev/null +++ b/.changeset/solid-turkeys-shop.md @@ -0,0 +1,5 @@ +--- +'@primer/react': patch +--- + +SelectPanel: Remove `usingRemoveActiveDescendant` usage from component From 1c8e8bfd0a555fd5e523dbf263f71491df15d004 Mon Sep 17 00:00:00 2001 From: Tyler Jones Date: Fri, 14 Nov 2025 10:34:00 -0500 Subject: [PATCH 4/5] Fix lint issue --- packages/react/src/SelectPanel/SelectPanel.tsx | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/react/src/SelectPanel/SelectPanel.tsx b/packages/react/src/SelectPanel/SelectPanel.tsx index 30a8635a4ca..52d9ae640fb 100644 --- a/packages/react/src/SelectPanel/SelectPanel.tsx +++ b/packages/react/src/SelectPanel/SelectPanel.tsx @@ -216,7 +216,6 @@ function Panel({ const usingFullScreenOnNarrow = disableFullscreenOnNarrow ? false : featureFlagFullScreenOnNarrow const shouldOrderSelectedFirst = useFeatureFlag('primer_react_select_panel_order_selected_at_top') && showSelectedOptionsFirst - const usingRemoveActiveDescendant = useFeatureFlag('primer_react_select_panel_remove_active_descendant') // Single select modals work differently, they have an intermediate state where the user has selected an item but // has not yet confirmed the selection. This is the only time the user can cancel the selection. From 5f5cceea62db0041d417b9603b17df806079c6ce Mon Sep 17 00:00:00 2001 From: Tyler Jones Date: Fri, 14 Nov 2025 10:46:24 -0500 Subject: [PATCH 5/5] Update packages/react/src/SelectPanel/SelectPanel.tsx Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- packages/react/src/SelectPanel/SelectPanel.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/react/src/SelectPanel/SelectPanel.tsx b/packages/react/src/SelectPanel/SelectPanel.tsx index 52d9ae640fb..cd99fc00bc2 100644 --- a/packages/react/src/SelectPanel/SelectPanel.tsx +++ b/packages/react/src/SelectPanel/SelectPanel.tsx @@ -754,7 +754,7 @@ function Panel({ const hasModifier = event.ctrlKey || event.altKey || event.metaKey if (hasModifier) return - // skip if it's not a alphabet key + // skip if it's not the forward slash or an alphabet key if (event.key !== '/' && !isAlphabetKey(event.nativeEvent as KeyboardEvent)) { return }