diff --git a/.changeset/twelve-sloths-flow.md b/.changeset/twelve-sloths-flow.md
new file mode 100644
index 00000000000..0e5b130179b
--- /dev/null
+++ b/.changeset/twelve-sloths-flow.md
@@ -0,0 +1,5 @@
+---
+'@primer/react': major
+---
+
+Remove support for `sx` from `Header`
diff --git a/packages/react/src/Header/Header.dev.stories.tsx b/packages/react/src/Header/Header.dev.stories.tsx
index 9115c13ab0f..e7154cb81cd 100644
--- a/packages/react/src/Header/Header.dev.stories.tsx
+++ b/packages/react/src/Header/Header.dev.stories.tsx
@@ -3,7 +3,6 @@ import {MarkGithubIcon} from '@primer/octicons-react'
import Header from './Header'
import Avatar from '../Avatar'
-import Octicon from '../Octicon'
import classes from './Header.dev.module.css'
@@ -16,7 +15,7 @@ export const WithCss = () => (
-
+
GitHub
@@ -26,33 +25,3 @@ export const WithCss = () => (
)
-
-export const WithSx = () => (
-
-
-
-
- GitHub
-
-
- Menu
-
-
-
-
-)
-
-export const WithSxAndCSS = () => (
-
-
-
-
- GitHub
-
-
- Menu
-
-
-
-
-)
diff --git a/packages/react/src/Header/Header.docs.json b/packages/react/src/Header/Header.docs.json
index a0447281267..2a1c52fddcf 100644
--- a/packages/react/src/Header/Header.docs.json
+++ b/packages/react/src/Header/Header.docs.json
@@ -5,13 +5,7 @@
"a11yReviewed": "2025-01-08",
"stories": [],
"importPath": "@primer/react",
- "props": [
- {
- "name": "sx",
- "type": "SystemStyleObject",
- "deprecated": true
- }
- ],
+ "props": [],
"subcomponents": [
{
"name": "Header.Item",
@@ -21,11 +15,6 @@
"type": "string",
"defaultValue": "",
"description": "Stretches item to fill the available space"
- },
- {
- "name": "sx",
- "type": "SystemStyleObject",
- "deprecated": true
}
]
},
@@ -42,11 +31,6 @@
"name": "as",
"type": "React.ElementType",
"defaultValue": "\"a\""
- },
- {
- "name": "sx",
- "type": "SystemStyleObject",
- "deprecated": true
}
],
"passthrough": {
diff --git a/packages/react/src/Header/Header.features.stories.module.css b/packages/react/src/Header/Header.features.stories.module.css
new file mode 100644
index 00000000000..0c315bb2312
--- /dev/null
+++ b/packages/react/src/Header/Header.features.stories.module.css
@@ -0,0 +1,12 @@
+.Logo {
+ /* stylelint-disable-next-line primer/typography */
+ font-size: var(--base-size-16);
+}
+
+.Icon {
+ margin-right: var(--base-size-8);
+}
+
+.LastItem {
+ margin-right: 0;
+}
diff --git a/packages/react/src/Header/Header.features.stories.tsx b/packages/react/src/Header/Header.features.stories.tsx
index 474938ffc1b..e2c9439580d 100644
--- a/packages/react/src/Header/Header.features.stories.tsx
+++ b/packages/react/src/Header/Header.features.stories.tsx
@@ -1,9 +1,8 @@
import type {Meta} from '@storybook/react-vite'
-
-import Header from './Header'
-import Avatar from '../Avatar'
-import Octicon from '../Octicon'
import {MarkGithubIcon} from '@primer/octicons-react'
+import Avatar from '../Avatar'
+import Header from './Header'
+import classes from './Header.features.stories.module.css'
export default {
title: 'Components/Header/Features',
@@ -14,7 +13,7 @@ export const WithFullSizeItem = () => (
Item 1
Item 2
- Item 3
+ Item 3
)
@@ -35,8 +34,8 @@ export const WithLinks = () => (
export const WithManyItems = () => (
-
-
+
+
GitHub
@@ -50,7 +49,7 @@ export const WithManyItems = () => (
Item
Item
Item
-
+
diff --git a/packages/react/src/Header/Header.stories.module.css b/packages/react/src/Header/Header.stories.module.css
new file mode 100644
index 00000000000..2780e57e5f9
--- /dev/null
+++ b/packages/react/src/Header/Header.stories.module.css
@@ -0,0 +1,12 @@
+.HeaderLink {
+ /* stylelint-disable-next-line primer/typography */
+ font-size: var(--base-size-16);
+}
+
+.AvatarContainer {
+ margin-right: 0;
+}
+
+.Icon {
+ margin-right: var(--base-size-8);
+}
diff --git a/packages/react/src/Header/Header.stories.tsx b/packages/react/src/Header/Header.stories.tsx
index 60ab44cd3da..28cff229a04 100644
--- a/packages/react/src/Header/Header.stories.tsx
+++ b/packages/react/src/Header/Header.stories.tsx
@@ -1,9 +1,8 @@
import type {Meta, StoryFn} from '@storybook/react-vite'
import {MarkGithubIcon} from '@primer/octicons-react'
-
import Header from './Header'
import Avatar from '../Avatar'
-import Octicon from '../Octicon'
+import classes from './Header.stories.module.css'
export default {
title: 'Components/Header',
@@ -13,13 +12,13 @@ export default {
export const Default = () => (
@@ -28,13 +27,13 @@ export const Default = () => (
export const Playground: StoryFn = args => (
diff --git a/packages/react/src/Header/Header.tsx b/packages/react/src/Header/Header.tsx
index 4b03a14d4bd..531938db66d 100644
--- a/packages/react/src/Header/Header.tsx
+++ b/packages/react/src/Header/Header.tsx
@@ -1,23 +1,21 @@
import type {Location, Pathname} from 'history'
-import type {SxProp} from '../sx'
import React from 'react'
import {clsx} from 'clsx'
import classes from './Header.module.css'
import type {ForwardRefComponent as PolymorphicForwardRefComponent} from '../utils/polymorphic'
-import {BoxWithFallback} from '../internal/components/BoxWithFallback'
-export type HeaderProps = React.ComponentProps<'header'> & SxProp & {as?: React.ElementType}
-export type HeaderItemProps = React.ComponentProps<'div'> & SxProp & {full?: boolean}
-export type HeaderLinkProps = React.ComponentProps<'a'> & SxProp & {to?: Location | Pathname; as?: React.ElementType}
+export type HeaderProps = React.ComponentProps<'header'> & {as?: React.ElementType}
+export type HeaderItemProps = React.ComponentProps<'div'> & {full?: boolean}
+export type HeaderLinkProps = React.ComponentProps<'a'> & {to?: Location | Pathname; as?: React.ElementType}
const Header = React.forwardRef(function Header(
- {children, className, as = 'header', ...rest},
+ {as: BaseComponent = 'header', children, className, ...rest},
forwardRef,
) {
return (
-
+
{children}
-
+
)
}) as PolymorphicForwardRefComponent<'header', HeaderProps>
@@ -28,22 +26,22 @@ const HeaderItem = React.forwardRef(function He
forwardRef,
) {
return (
-
+
{children}
-
+
)
})
HeaderItem.displayName = 'Header.Item'
const HeaderLink = React.forwardRef(function HeaderLink(
- {children, className, as = 'a', ...rest},
+ {children, className, as: BaseComponent = 'a', ...rest},
forwardRef,
) {
return (
-
+
{children}
-
+
)
})
diff --git a/packages/styled-react/rollup.config.js b/packages/styled-react/rollup.config.js
index 3d8bd571154..f9a5266988b 100644
--- a/packages/styled-react/rollup.config.js
+++ b/packages/styled-react/rollup.config.js
@@ -21,7 +21,7 @@ export default defineConfig({
tsconfig: 'tsconfig.build.json',
}),
babel({
- presets: ['@babel/preset-typescript', '@babel/preset-react'],
+ presets: ['@babel/preset-typescript', ['@babel/preset-react', {runtime: 'automatic'}]],
extensions: ['.ts', '.tsx'],
babelHelpers: 'bundled',
}),
diff --git a/packages/styled-react/src/components/Box.tsx b/packages/styled-react/src/components/Box.tsx
new file mode 100644
index 00000000000..3694e3b630c
--- /dev/null
+++ b/packages/styled-react/src/components/Box.tsx
@@ -0,0 +1 @@
+export {Box, type BoxProps} from '@primer/react'
diff --git a/packages/styled-react/src/components/Header.tsx b/packages/styled-react/src/components/Header.tsx
new file mode 100644
index 00000000000..b7266645a53
--- /dev/null
+++ b/packages/styled-react/src/components/Header.tsx
@@ -0,0 +1,33 @@
+import {
+ type HeaderProps as PrimerHeaderProps,
+ type HeaderItemProps as PrimerHeaderItemProps,
+ type HeaderLinkProps as PrimerHeaderLinkProps,
+ Header as PrimerHeader,
+} from '@primer/react'
+import {forwardRef} from 'react'
+import {Box} from './Box'
+import type {ForwardRefComponent} from '../polymorphic'
+import type {SxProp} from '../sx'
+
+type HeaderProps = PrimerHeaderProps & SxProp
+
+const HeaderImpl = forwardRef(function Header(props, ref) {
+ return
+}) as ForwardRefComponent<'header', HeaderProps>
+
+type HeaderItemProps = PrimerHeaderItemProps & SxProp
+
+const HeaderItem = forwardRef(function HeaderItem(props, ref) {
+ return
+})
+
+const HeaderLink = forwardRef(function HeaderLink(props, ref) {
+ return
+})
+
+const Header = Object.assign(HeaderImpl, {
+ Item: HeaderItem,
+ Link: HeaderLink,
+})
+
+export {Header, type HeaderProps}
diff --git a/packages/styled-react/src/index.tsx b/packages/styled-react/src/index.tsx
index b576248e2e6..7b4860980c6 100644
--- a/packages/styled-react/src/index.tsx
+++ b/packages/styled-react/src/index.tsx
@@ -189,6 +189,8 @@ const UnderlineNav = Object.assign(UnderlineNavImpl, {
Item: UnderlineNavItem,
})
+export {Header, type HeaderProps} from './components/Header'
+
export {Flash} from './components/Flash'
export {
@@ -217,7 +219,6 @@ export {
Details,
Dialog,
FormControl,
- Header,
Heading,
IconButton,
Label,