From a5bbbb8ec6f2e5e7da193aca1b2ce09298ab3d7f Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Wed, 24 Jun 2026 17:08:20 +0000
Subject: [PATCH 1/2] Initial plan
From 3f9f4ed147945fdb6e8a9710e7d485928125cc23 Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Wed, 24 Jun 2026 17:19:04 +0000
Subject: [PATCH 2/2] Add ActionBar.Button for text button overflow support
Co-authored-by: iansan5653 <2294248+iansan5653@users.noreply.github.com>
---
.changeset/actionbar-text-button.md | 5 ++
.../react/src/ActionBar/ActionBar.docs.json | 28 +++++++
.../ActionBar/ActionBar.examples.stories.tsx | 11 +++
.../react/src/ActionBar/ActionBar.test.tsx | 77 +++++++++++++++++++
packages/react/src/ActionBar/ActionBar.tsx | 65 ++++++++++++++--
packages/react/src/ActionBar/index.ts | 12 ++-
.../__snapshots__/exports.test.ts.snap | 1 +
7 files changed, 189 insertions(+), 10 deletions(-)
create mode 100644 .changeset/actionbar-text-button.md
diff --git a/.changeset/actionbar-text-button.md b/.changeset/actionbar-text-button.md
new file mode 100644
index 00000000000..05d7b1bf4a0
--- /dev/null
+++ b/.changeset/actionbar-text-button.md
@@ -0,0 +1,5 @@
+---
+'@primer/react': minor
+---
+
+ActionBar: Add `ActionBar.Button` for rendering text buttons that overflow into the menu, alongside the existing `ActionBar.IconButton`
diff --git a/packages/react/src/ActionBar/ActionBar.docs.json b/packages/react/src/ActionBar/ActionBar.docs.json
index b38d7affc1a..b1e1bc89bd0 100644
--- a/packages/react/src/ActionBar/ActionBar.docs.json
+++ b/packages/react/src/ActionBar/ActionBar.docs.json
@@ -87,6 +87,34 @@
"url": "/react/IconButton"
}
},
+ {
+ "name": "ActionBar.Button",
+ "props": [
+ {
+ "name": "children",
+ "type": "React.ReactNode",
+ "defaultValue": "",
+ "required": true,
+ "description": "The text content of the button."
+ },
+ {
+ "name": "leadingVisual",
+ "type": "Component",
+ "defaultValue": "",
+ "description": "Provide an octicon to render before the button text. It will also be shown when the button overflows into the menu."
+ },
+ {
+ "name": "disabled",
+ "type": "boolean",
+ "defaultValue": "",
+ "description": "Provides a disabled state for the button. The button will remain focusable, and have `aria-disabled` applied."
+ }
+ ],
+ "passthrough": {
+ "element": "Button",
+ "url": "/react/Button"
+ }
+ },
{
"name": "ActionBar.Divider",
"props": []
diff --git a/packages/react/src/ActionBar/ActionBar.examples.stories.tsx b/packages/react/src/ActionBar/ActionBar.examples.stories.tsx
index 29cc17e1526..fc8198eb9bf 100644
--- a/packages/react/src/ActionBar/ActionBar.examples.stories.tsx
+++ b/packages/react/src/ActionBar/ActionBar.examples.stories.tsx
@@ -72,6 +72,17 @@ export const SmallActionBar = () => (
)
+export const WithTextButtons = () => (
+