diff --git a/.changeset/twenty-tips-attend.md b/.changeset/twenty-tips-attend.md new file mode 100644 index 00000000000..14f2d5e0a8d --- /dev/null +++ b/.changeset/twenty-tips-attend.md @@ -0,0 +1,5 @@ +--- +'@primer/react': patch +--- + +Counter label forwards refs and dom props diff --git a/src/CounterLabel/CounterLabel.tsx b/src/CounterLabel/CounterLabel.tsx index 807a2bb780e..7de16f4405a 100644 --- a/src/CounterLabel/CounterLabel.tsx +++ b/src/CounterLabel/CounterLabel.tsx @@ -1,47 +1,49 @@ -import React from 'react' +import React, {HTMLAttributes, forwardRef} from 'react' import Box from '../Box' import {BetterSystemStyleObject, SxProp, merge} from '../sx' import VisuallyHidden from '../_VisuallyHidden' +import {defaultSxProp} from '../utils/defaultSxProp' -export type CounterLabelProps = { - scheme?: 'primary' | 'secondary' -} & SxProp +export type CounterLabelProps = React.PropsWithChildren< + HTMLAttributes & { + scheme?: 'primary' | 'secondary' + } & SxProp +> -const CounterLabel: React.FC> = ({ - scheme = 'secondary', - sx = {}, - children, - ...props -}) => { - return ( - <> - +  ({children}) + + ) + }, +) CounterLabel.displayName = 'CounterLabel' diff --git a/src/CounterLabel/CounterLabel.types.test.tsx b/src/CounterLabel/CounterLabel.types.test.tsx index 076a29514a4..2fda2e8e5db 100644 --- a/src/CounterLabel/CounterLabel.types.test.tsx +++ b/src/CounterLabel/CounterLabel.types.test.tsx @@ -1,4 +1,4 @@ -import React from 'react' +import React, {useRef} from 'react' import CounterLabel from '../CounterLabel' export function shouldAcceptCallWithNoProps() { @@ -9,3 +9,15 @@ export function shouldNotAcceptSystemProps() { // @ts-expect-error system props should not be accepted return } + +export function showAcceptARef() { + function Component() { + const ref = useRef(null) + return + } + return +} + +export function shouldPassThroughSpanProps() { + return +}