Skip to content

Conversation

pksjce
Copy link
Contributor

@pksjce pksjce commented Sep 24, 2025

Working on #6760

Changelog

New

Changed

Removed

Rollout strategy

  • Patch release
  • Minor release
  • Major release; if selected, include a written rollout or migration plan
  • None; if selected, include a brief description as to why

Testing & Reviewing

Merge checklist

@Copilot Copilot AI review requested due to automatic review settings September 24, 2025 13:10
@pksjce pksjce requested a review from a team as a code owner September 24, 2025 13:10
@pksjce pksjce requested a review from hectahertz September 24, 2025 13:10
Copy link

changeset-bot bot commented Sep 24, 2025

🦋 Changeset detected

Latest commit: 562b7d9

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 2 packages
Name Type
@primer/react Major
@primer/styled-react Major

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

Copy link
Contributor

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR adapts the Button component to the styled-react package and removes the sx prop implementation from the main @primer/react package. The changes introduce custom styled-react implementations for Button, IconButton, and ActionMenu components that support the SxProp interface for backward compatibility.

Key changes:

  • Creates new styled-react wrapper components for Button, ActionMenu, and IconButton
  • Moves CSSCustomProperties type to a shared location in sx.ts
  • Updates package exports to use the new styled-react implementations

Reviewed Changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
packages/styled-react/src/sx.ts Adds CSSCustomProperties type export for shared use
packages/styled-react/src/index.tsx Updates exports to use new styled-react components instead of direct @primer/react exports
packages/styled-react/src/components/PageHeader.tsx Updates import to use shared CSSCustomProperties type
packages/styled-react/src/components/IconButton.tsx Creates new styled-react wrapper for IconButton with sx prop support
packages/styled-react/src/components/Button.tsx Creates new styled-react wrapper for Button with custom sx prop handling
packages/styled-react/src/components/ActionMenu.tsx Creates new styled-react wrapper for ActionMenu with sx prop support

Comment on lines +18 to +19
// @ts-ignore sx can have color attribute
const {color} = sx
Copy link
Preview

Copilot AI Sep 24, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Replace @ts-ignore with proper TypeScript typing. Consider extending the SxProp type to include color or use type assertion instead of suppressing the error.

Suggested change
// @ts-ignore sx can have color attribute
const {color} = sx
const {color} = sx as {color?: string}

Copilot uses AI. Check for mistakes.

Comment on lines +23 to +24
// @ts-expect-error type mismatch between Box usage here and PrimerButton
return <Box {...rest} as={PrimerButton} style={style} sx={sxStyles} />
Copy link
Preview

Copilot AI Sep 24, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Replace @ts-expect-error with proper type resolution. The type mismatch should be resolved by properly typing the component props or using a type assertion.

Suggested change
// @ts-expect-error type mismatch between Box usage here and PrimerButton
return <Box {...rest} as={PrimerButton} style={style} sx={sxStyles} />
// Type assertion used to resolve type mismatch between Box and PrimerButton
return (<Box {...rest} as={PrimerButton} style={style} sx={sxStyles} />) as JSX.Element

Copilot uses AI. Check for mistakes.

Comment on lines +41 to +44
// },
// '&': {
// width : 320px
// }
Copy link
Preview

Copilot AI Sep 24, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fix spacing inconsistency in the comment. Should be 'width: 320px' with consistent spacing around the colon.

Copilot uses AI. Check for mistakes.

@primer-integration
Copy link

😢 Hi from github/github-ui. The integration workflow has failed: https://github.com/github/github-ui/actions/runs/17979041956

@github-actions github-actions bot added the integration-tests: recommended This change needs to be tested for breaking changes. See https://arc.net/l/quote/tdmpakpm label Sep 24, 2025
Copy link
Contributor

👋 Hi, this pull request contains changes to the source code that github/github depends on. If you are GitHub staff, we recommend testing these changes with github/github using the integration workflow. Thanks!

@github-actions github-actions bot requested a deployment to storybook-preview-6904 September 24, 2025 23:57 Abandoned
@github-actions github-actions bot requested a deployment to storybook-preview-6904 September 25, 2025 00:22 Abandoned
@github-actions github-actions bot temporarily deployed to storybook-preview-6904 September 25, 2025 00:30 Inactive
@github-actions github-actions bot temporarily deployed to storybook-preview-6904 September 25, 2025 13:41 Inactive
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
integration-tests: recommended This change needs to be tested for breaking changes. See https://arc.net/l/quote/tdmpakpm
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants