diff --git a/.changeset/pink-actors-cross.md b/.changeset/pink-actors-cross.md
new file mode 100644
index 00000000000..56e5dfc2135
--- /dev/null
+++ b/.changeset/pink-actors-cross.md
@@ -0,0 +1,5 @@
+---
+'@primer/react': major
+---
+
+Remove the deprecated FilterList component from Primer React
diff --git a/.playwright/snapshots/components/FilterList.test.ts-snapshots/FilterList-Default-dark-colorblind-linux.png b/.playwright/snapshots/components/FilterList.test.ts-snapshots/FilterList-Default-dark-colorblind-linux.png
deleted file mode 100644
index 7c488f299c7..00000000000
Binary files a/.playwright/snapshots/components/FilterList.test.ts-snapshots/FilterList-Default-dark-colorblind-linux.png and /dev/null differ
diff --git a/.playwright/snapshots/components/FilterList.test.ts-snapshots/FilterList-Default-dark-dimmed-linux.png b/.playwright/snapshots/components/FilterList.test.ts-snapshots/FilterList-Default-dark-dimmed-linux.png
deleted file mode 100644
index cfd41304a73..00000000000
Binary files a/.playwright/snapshots/components/FilterList.test.ts-snapshots/FilterList-Default-dark-dimmed-linux.png and /dev/null differ
diff --git a/.playwright/snapshots/components/FilterList.test.ts-snapshots/FilterList-Default-dark-high-contrast-linux.png b/.playwright/snapshots/components/FilterList.test.ts-snapshots/FilterList-Default-dark-high-contrast-linux.png
deleted file mode 100644
index 1aa6277b03d..00000000000
Binary files a/.playwright/snapshots/components/FilterList.test.ts-snapshots/FilterList-Default-dark-high-contrast-linux.png and /dev/null differ
diff --git a/.playwright/snapshots/components/FilterList.test.ts-snapshots/FilterList-Default-dark-linux.png b/.playwright/snapshots/components/FilterList.test.ts-snapshots/FilterList-Default-dark-linux.png
deleted file mode 100644
index 7c488f299c7..00000000000
Binary files a/.playwright/snapshots/components/FilterList.test.ts-snapshots/FilterList-Default-dark-linux.png and /dev/null differ
diff --git a/.playwright/snapshots/components/FilterList.test.ts-snapshots/FilterList-Default-dark-tritanopia-linux.png b/.playwright/snapshots/components/FilterList.test.ts-snapshots/FilterList-Default-dark-tritanopia-linux.png
deleted file mode 100644
index 7c488f299c7..00000000000
Binary files a/.playwright/snapshots/components/FilterList.test.ts-snapshots/FilterList-Default-dark-tritanopia-linux.png and /dev/null differ
diff --git a/.playwright/snapshots/components/FilterList.test.ts-snapshots/FilterList-Default-light-colorblind-linux.png b/.playwright/snapshots/components/FilterList.test.ts-snapshots/FilterList-Default-light-colorblind-linux.png
deleted file mode 100644
index 031d26b8eac..00000000000
Binary files a/.playwright/snapshots/components/FilterList.test.ts-snapshots/FilterList-Default-light-colorblind-linux.png and /dev/null differ
diff --git a/.playwright/snapshots/components/FilterList.test.ts-snapshots/FilterList-Default-light-high-contrast-linux.png b/.playwright/snapshots/components/FilterList.test.ts-snapshots/FilterList-Default-light-high-contrast-linux.png
deleted file mode 100644
index 77ff372a463..00000000000
Binary files a/.playwright/snapshots/components/FilterList.test.ts-snapshots/FilterList-Default-light-high-contrast-linux.png and /dev/null differ
diff --git a/.playwright/snapshots/components/FilterList.test.ts-snapshots/FilterList-Default-light-linux.png b/.playwright/snapshots/components/FilterList.test.ts-snapshots/FilterList-Default-light-linux.png
deleted file mode 100644
index 031d26b8eac..00000000000
Binary files a/.playwright/snapshots/components/FilterList.test.ts-snapshots/FilterList-Default-light-linux.png and /dev/null differ
diff --git a/.playwright/snapshots/components/FilterList.test.ts-snapshots/FilterList-Default-light-tritanopia-linux.png b/.playwright/snapshots/components/FilterList.test.ts-snapshots/FilterList-Default-light-tritanopia-linux.png
deleted file mode 100644
index 031d26b8eac..00000000000
Binary files a/.playwright/snapshots/components/FilterList.test.ts-snapshots/FilterList-Default-light-tritanopia-linux.png and /dev/null differ
diff --git a/.playwright/snapshots/components/FilterList.test.ts-snapshots/FilterList-Playground-dark-colorblind-linux.png b/.playwright/snapshots/components/FilterList.test.ts-snapshots/FilterList-Playground-dark-colorblind-linux.png
deleted file mode 100644
index 7c488f299c7..00000000000
Binary files a/.playwright/snapshots/components/FilterList.test.ts-snapshots/FilterList-Playground-dark-colorblind-linux.png and /dev/null differ
diff --git a/.playwright/snapshots/components/FilterList.test.ts-snapshots/FilterList-Playground-dark-dimmed-linux.png b/.playwright/snapshots/components/FilterList.test.ts-snapshots/FilterList-Playground-dark-dimmed-linux.png
deleted file mode 100644
index cfd41304a73..00000000000
Binary files a/.playwright/snapshots/components/FilterList.test.ts-snapshots/FilterList-Playground-dark-dimmed-linux.png and /dev/null differ
diff --git a/.playwright/snapshots/components/FilterList.test.ts-snapshots/FilterList-Playground-dark-high-contrast-linux.png b/.playwright/snapshots/components/FilterList.test.ts-snapshots/FilterList-Playground-dark-high-contrast-linux.png
deleted file mode 100644
index 1aa6277b03d..00000000000
Binary files a/.playwright/snapshots/components/FilterList.test.ts-snapshots/FilterList-Playground-dark-high-contrast-linux.png and /dev/null differ
diff --git a/.playwright/snapshots/components/FilterList.test.ts-snapshots/FilterList-Playground-dark-linux.png b/.playwright/snapshots/components/FilterList.test.ts-snapshots/FilterList-Playground-dark-linux.png
deleted file mode 100644
index 7c488f299c7..00000000000
Binary files a/.playwright/snapshots/components/FilterList.test.ts-snapshots/FilterList-Playground-dark-linux.png and /dev/null differ
diff --git a/.playwright/snapshots/components/FilterList.test.ts-snapshots/FilterList-Playground-dark-tritanopia-linux.png b/.playwright/snapshots/components/FilterList.test.ts-snapshots/FilterList-Playground-dark-tritanopia-linux.png
deleted file mode 100644
index 7c488f299c7..00000000000
Binary files a/.playwright/snapshots/components/FilterList.test.ts-snapshots/FilterList-Playground-dark-tritanopia-linux.png and /dev/null differ
diff --git a/.playwright/snapshots/components/FilterList.test.ts-snapshots/FilterList-Playground-light-colorblind-linux.png b/.playwright/snapshots/components/FilterList.test.ts-snapshots/FilterList-Playground-light-colorblind-linux.png
deleted file mode 100644
index 031d26b8eac..00000000000
Binary files a/.playwright/snapshots/components/FilterList.test.ts-snapshots/FilterList-Playground-light-colorblind-linux.png and /dev/null differ
diff --git a/.playwright/snapshots/components/FilterList.test.ts-snapshots/FilterList-Playground-light-high-contrast-linux.png b/.playwright/snapshots/components/FilterList.test.ts-snapshots/FilterList-Playground-light-high-contrast-linux.png
deleted file mode 100644
index 77ff372a463..00000000000
Binary files a/.playwright/snapshots/components/FilterList.test.ts-snapshots/FilterList-Playground-light-high-contrast-linux.png and /dev/null differ
diff --git a/.playwright/snapshots/components/FilterList.test.ts-snapshots/FilterList-Playground-light-linux.png b/.playwright/snapshots/components/FilterList.test.ts-snapshots/FilterList-Playground-light-linux.png
deleted file mode 100644
index 031d26b8eac..00000000000
Binary files a/.playwright/snapshots/components/FilterList.test.ts-snapshots/FilterList-Playground-light-linux.png and /dev/null differ
diff --git a/.playwright/snapshots/components/FilterList.test.ts-snapshots/FilterList-Playground-light-tritanopia-linux.png b/.playwright/snapshots/components/FilterList.test.ts-snapshots/FilterList-Playground-light-tritanopia-linux.png
deleted file mode 100644
index 031d26b8eac..00000000000
Binary files a/.playwright/snapshots/components/FilterList.test.ts-snapshots/FilterList-Playground-light-tritanopia-linux.png and /dev/null differ
diff --git a/docs/content/FilterList.mdx b/docs/content/FilterList.mdx
deleted file mode 100644
index f461920b99f..00000000000
--- a/docs/content/FilterList.mdx
+++ /dev/null
@@ -1,31 +0,0 @@
----
-componentId: filter_list
-title: FilterList
-status: Deprecated
-description: The FilterList component is a menu with filter options that filter the main content of the page.
-source: https://github.com/primer/react/tree/main/packages/react/src/FilterList
----
-
-import data from '../../packages/react/src/deprecated/FilterList/FilterList.docs.json'
-
-## Deprecation
-
-Use [ActionList](/ActionList) instead.
-
-## Examples
-
-```jsx live
-
-
- First Filter
-
-
- Second Filter
-
- Third Filter
-
-```
-
-## Props
-
-
diff --git a/e2e/components/FilterList.test.ts b/e2e/components/FilterList.test.ts
deleted file mode 100644
index d83ed9dd13b..00000000000
--- a/e2e/components/FilterList.test.ts
+++ /dev/null
@@ -1,61 +0,0 @@
-import {test, expect} from '@playwright/test'
-import {visit} from '../test-helpers/storybook'
-import {themes} from '../test-helpers/themes'
-
-test.describe('FilterList', () => {
- test.describe('Default', () => {
- for (const theme of themes) {
- test.describe(theme, () => {
- test('default @vrt', async ({page}) => {
- await visit(page, {
- id: 'deprecated-components-filterlist--default',
- globals: {
- colorScheme: theme,
- },
- })
-
- // Default state
- expect(await page.screenshot()).toMatchSnapshot(`FilterList.Default.${theme}.png`)
- })
-
- test('axe @aat', async ({page}) => {
- await visit(page, {
- id: 'deprecated-components-filterlist--default',
- globals: {
- colorScheme: theme,
- },
- })
- await expect(page).toHaveNoViolations()
- })
- })
- }
- })
-
- test.describe('Playground', () => {
- for (const theme of themes) {
- test.describe(theme, () => {
- test('default @vrt', async ({page}) => {
- await visit(page, {
- id: 'deprecated-components-filterlist--playground',
- globals: {
- colorScheme: theme,
- },
- })
-
- // Default state
- expect(await page.screenshot()).toMatchSnapshot(`FilterList.Playground.${theme}.png`)
- })
-
- test('axe @aat', async ({page}) => {
- await visit(page, {
- id: 'deprecated-components-filterlist--playground',
- globals: {
- colorScheme: theme,
- },
- })
- await expect(page).toHaveNoViolations()
- })
- })
- }
- })
-})
diff --git a/packages/react/src/__tests__/__snapshots__/exports.test.ts.snap b/packages/react/src/__tests__/__snapshots__/exports.test.ts.snap
index 518f01381c6..88d05f1f2e1 100644
--- a/packages/react/src/__tests__/__snapshots__/exports.test.ts.snap
+++ b/packages/react/src/__tests__/__snapshots__/exports.test.ts.snap
@@ -237,9 +237,6 @@ exports[`@primer/react/deprecated should not update exports without a semver cha
"type DialogProps",
"FilteredSearch",
"type FilteredSearchProps",
- "FilterList",
- "type FilterListItemProps",
- "type FilterListProps",
"Octicon",
"type OcticonProps",
"Pagehead",
diff --git a/packages/react/src/__tests__/deprecated/FilterList.test.tsx b/packages/react/src/__tests__/deprecated/FilterList.test.tsx
deleted file mode 100644
index ab369022b4e..00000000000
--- a/packages/react/src/__tests__/deprecated/FilterList.test.tsx
+++ /dev/null
@@ -1,23 +0,0 @@
-import React from 'react'
-import {FilterList} from '../../deprecated'
-import {render, behavesAsComponent, checkExports} from '../../utils/testing'
-import {render as HTMLRender} from '@testing-library/react'
-import axe from 'axe-core'
-
-describe('FilterList', () => {
- behavesAsComponent({Component: FilterList})
-
- checkExports('deprecated/FilterList', {
- default: FilterList,
- })
-
- it('should have no axe violations', async () => {
- const {container} = HTMLRender(Hello)
- const results = await axe.run(container)
- expect(results).toHaveNoViolations()
- })
-
- it('renders a
', () => {
- expect(render().type).toEqual('ul')
- })
-})
diff --git a/packages/react/src/__tests__/deprecated/FilterList.types.test.tsx b/packages/react/src/__tests__/deprecated/FilterList.types.test.tsx
deleted file mode 100644
index d9df7a46e31..00000000000
--- a/packages/react/src/__tests__/deprecated/FilterList.types.test.tsx
+++ /dev/null
@@ -1,17 +0,0 @@
-import React from 'react'
-import FilterList from '../../deprecated/FilterList'
-
-export function shouldAcceptCallWithNoProps() {
- return
-}
-
-export function shouldNotAcceptSystemProps() {
- return (
- <>
- {/* @ts-expect-error system props should not be accepted */}
-
- {/* @ts-expect-error system props should not be accepted */}
-
- >
- )
-}
diff --git a/packages/react/src/__tests__/deprecated/FilterListItem.test.tsx b/packages/react/src/__tests__/deprecated/FilterListItem.test.tsx
deleted file mode 100644
index 37b462bbe83..00000000000
--- a/packages/react/src/__tests__/deprecated/FilterListItem.test.tsx
+++ /dev/null
@@ -1,28 +0,0 @@
-import React from 'react'
-import {FilterList} from '../../deprecated'
-import {render, behavesAsComponent} from '../../utils/testing'
-import {render as HTMLRender} from '@testing-library/react'
-import axe from 'axe-core'
-
-describe('FilterList.Item', () => {
- behavesAsComponent({Component: FilterList.Item})
-
- it('should have no axe violations', async () => {
- const {container} = HTMLRender(stuff)
- const results = await axe.run(container)
- expect(results).toHaveNoViolations()
- })
-
- it('renders an by default', () => {
- expect(render().type).toEqual('a')
- })
-
- it('respects the "selected" prop', () => {
- expect(render()).toMatchSnapshot()
- })
-
- it('respects "count" prop', () => {
- const {getByText} = HTMLRender()
- expect(getByText('400')).toBeTruthy()
- })
-})
diff --git a/packages/react/src/__tests__/deprecated/__snapshots__/FilterListItem.test.tsx.snap b/packages/react/src/__tests__/deprecated/__snapshots__/FilterListItem.test.tsx.snap
deleted file mode 100644
index b42fdf90c5f..00000000000
--- a/packages/react/src/__tests__/deprecated/__snapshots__/FilterListItem.test.tsx.snap
+++ /dev/null
@@ -1,41 +0,0 @@
-// Jest Snapshot v1, https://goo.gl/fbAQLP
-
-exports[`FilterList.Item respects the "selected" prop 1`] = `
-.c0 {
- position: relative;
- display: block;
- padding: 8px 11px;
- margin: 0 0 5px 0;
- overflow: hidden;
- font-size: 14px;
- color: var(--fgColor-onEmphasis,var(--color-fg-on-emphasis,#ffffff));
- background-color: var(--bgColor-accent-emphasis,var(--color-accent-emphasis,#0969da))!important;
- -webkit-text-decoration: none;
- text-decoration: none;
- text-overflow: ellipsis;
- white-space: nowrap;
- cursor: pointer;
- border-radius: 3px;
-}
-
-.c0:hover {
- -webkit-text-decoration: none;
- text-decoration: none;
- background-color: var(--bgColor-muted,var(--color-canvas-subtle,#f6f8fa));
-}
-
-.c0:active {
- color: var(--fgColor-onEmphasis,var(--color-fg-on-emphasis,#ffffff));
- background-color: var(--bgColor-accent-emphasis,var(--color-accent-emphasis,#0969da));
-}
-
-.c0 .count {
- float: right;
- font-weight: 600;
-}
-
-
-`;
diff --git a/packages/react/src/deprecated/FilterList/FilterList.docs.json b/packages/react/src/deprecated/FilterList/FilterList.docs.json
deleted file mode 100644
index 801222cc1a3..00000000000
--- a/packages/react/src/deprecated/FilterList/FilterList.docs.json
+++ /dev/null
@@ -1,46 +0,0 @@
-{
- "id": "filter_list",
- "name": "FilterList",
- "status": "deprecated",
- "a11yReviewed": false,
- "stories": [],
- "importPath": "@primer/react/deprecated",
- "props": [
- {
- "name": "sx",
- "type": "SystemStyleObject"
- }
- ],
- "subcomponents": [
- {
- "name": "FilterList.Item",
- "props": [
- {
- "name": "count",
- "type": "number",
- "description": "Number to be displayed in the list item"
- },
- {
- "name": "selected",
- "type": "boolean",
- "description": "Whether the list item is selected or not"
- },
- {
- "name": "small",
- "type": "boolean",
- "defaultValue": "false",
- "description": "Whether the list item is small or not"
- },
- {
- "name": "as",
- "type": "React.ElementType",
- "defaultValue": "'a'"
- },
- {
- "name": "sx",
- "type": "SystemStyleObject"
- }
- ]
- }
- ]
-}
diff --git a/packages/react/src/deprecated/FilterList/FilterList.stories.tsx b/packages/react/src/deprecated/FilterList/FilterList.stories.tsx
deleted file mode 100644
index 2cfe2af0612..00000000000
--- a/packages/react/src/deprecated/FilterList/FilterList.stories.tsx
+++ /dev/null
@@ -1,53 +0,0 @@
-import React, {useState} from 'react'
-import type {Meta, StoryFn} from '@storybook/react'
-import FilterList from './FilterList'
-
-export default {
- title: 'Deprecated/Components/FilterList',
- component: FilterList,
-} as Meta
-
-export const Default = () => {
- const [selectedIndex, setSelectedIndex] = useState(0)
- return (
-
- setSelectedIndex(0)} count={32}>
- First Filter
-
- setSelectedIndex(1)} count={16}>
- Second Filter
-
- setSelectedIndex(2)}>
- Third Filter
-
-
- )
-}
-
-export const Playground: StoryFn = args => {
- const [selectedIndex, setSelectedIndex] = useState(0)
- return (
-
- setSelectedIndex(0)} count={32}>
- First Filter
-
- setSelectedIndex(1)} count={16}>
- Second Filter
-
- setSelectedIndex(2)}>
- Third Filter
-
-
- )
-}
-
-Playground.args = {}
-
-Playground.argTypes = {
- sx: {
- controls: false,
- table: {
- disabled: true,
- },
- },
-}
diff --git a/packages/react/src/deprecated/FilterList/FilterList.tsx b/packages/react/src/deprecated/FilterList/FilterList.tsx
deleted file mode 100644
index 9a4ce1d8ab3..00000000000
--- a/packages/react/src/deprecated/FilterList/FilterList.tsx
+++ /dev/null
@@ -1,75 +0,0 @@
-import React from 'react'
-import styled from 'styled-components'
-import {get} from '../../constants'
-import type {SxProp} from '../../sx'
-import sx from '../../sx'
-import type {ComponentProps} from '../../utils/types'
-
-const FilterListBase = styled.ul`
- list-style-type: none;
- margin: 0;
- padding: 0;
- ${sx};
-`
-
-export type FilterListProps = ComponentProps
-
-/**
- * @deprecated Use the ActionList component instead.
- */
-const FilterList = ({children, ...rest}: React.PropsWithChildren) => {
- const items = React.Children.map(children, child => {
- return - {child}
- })
-
- return {items}
-}
-
-type StyledFilterListItemBaseProps = {
- small?: boolean
- selected?: boolean
-} & SxProp
-
-const FilterListItemBase = styled.a`
- position: relative;
- display: block;
- padding: ${props => (props.small ? `${get('space.1')(props)} 10px` : `${get('space.2')(props)} 11px`)};
- margin: ${props => (props.small ? '0 0 2px' : '0 0 5px 0')};
- overflow: hidden;
- font-size: ${get('fontSizes.1')};
- color: ${props => (props.selected ? get('colors.fg.onEmphasis') : get('colors.fg.muted'))};
- background-color: ${props => (props.selected ? get('colors.accent.emphasis') : '')}!important;
- text-decoration: none;
- text-overflow: ellipsis;
- white-space: nowrap;
- cursor: pointer;
- border-radius: ${get('radii.1')};
- &:hover {
- text-decoration: none;
- background-color: ${get('colors.canvas.subtle')};
- }
- &:active {
- color: ${get('colors.fg.onEmphasis')};
- background-color: ${get('colors.accent.emphasis')};
- }
- .count {
- float: right;
- font-weight: ${get('fontWeights.bold')};
- }
- ${sx};
-`
-
-export type FilterListItemProps = {count?: number} & ComponentProps
-
-const FilterListItem = ({children, count, ...rest}: React.PropsWithChildren) => {
- return (
-
- {count && {count}}
- {children}
-
- )
-}
-
-FilterListItem.displayName = 'FilterList.Item'
-
-export default Object.assign(FilterList, {Item: FilterListItem})
diff --git a/packages/react/src/deprecated/FilterList/index.ts b/packages/react/src/deprecated/FilterList/index.ts
deleted file mode 100644
index 4788f9e25ab..00000000000
--- a/packages/react/src/deprecated/FilterList/index.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-export {default} from './FilterList'
-export type {FilterListProps, FilterListItemProps} from './FilterList'
diff --git a/packages/react/src/deprecated/index.ts b/packages/react/src/deprecated/index.ts
index b446111bc45..55f68741837 100644
--- a/packages/react/src/deprecated/index.ts
+++ b/packages/react/src/deprecated/index.ts
@@ -36,8 +36,6 @@ export type {
// end of v35.0.0
// Deprecated in v36.0.0
-export {default as FilterList} from './FilterList'
-export type {FilterListProps, FilterListItemProps} from './FilterList'
export {default as FilteredSearch} from './FilteredSearch'
export type {FilteredSearchProps} from './FilteredSearch'
export {default as UnderlineNav} from './UnderlineNav'