From d38906618222cf36fe5bade954c815af56b170c9 Mon Sep 17 00:00:00 2001 From: James Brooks Date: Thu, 3 Jul 2025 17:13:25 +0100 Subject: [PATCH 1/3] Canon - Update Heading & Text types Signed-off-by: James Brooks --- packages/canon/src/components/Heading/Heading.tsx | 13 +++++++------ packages/canon/src/components/Text/Text.tsx | 11 +++++++---- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/packages/canon/src/components/Heading/Heading.tsx b/packages/canon/src/components/Heading/Heading.tsx index 3d173e98ac..4ea8bdcfe6 100644 --- a/packages/canon/src/components/Heading/Heading.tsx +++ b/packages/canon/src/components/Heading/Heading.tsx @@ -54,10 +54,11 @@ function HeadingComponent( HeadingComponent.displayName = 'Heading'; /** @public */ -export const Heading = forwardRef(HeadingComponent) as < - T extends ElementType = 'h1', ->( - props: HeadingProps & { ref?: React.Ref }, -) => React.ReactElement | null; +export const Heading = forwardRef(HeadingComponent) as { + ( + props: HeadingProps & { ref?: React.ComponentPropsWithRef['ref'] }, + ): React.ReactElement, T>; + displayName: string; +}; -(Heading as any).displayName = 'Heading'; +Heading.displayName = 'Heading'; diff --git a/packages/canon/src/components/Text/Text.tsx b/packages/canon/src/components/Text/Text.tsx index c37f0e4ce7..275765c42d 100644 --- a/packages/canon/src/components/Text/Text.tsx +++ b/packages/canon/src/components/Text/Text.tsx @@ -56,8 +56,11 @@ function TextComponent( TextComponent.displayName = 'Text'; /** @public */ -export const Text = forwardRef(TextComponent) as ( - props: TextProps & { ref?: React.Ref }, -) => React.ReactElement | null; +export const Text = forwardRef(TextComponent) as { + ( + props: TextProps & { ref?: React.ComponentPropsWithRef['ref'] }, + ): React.ReactElement, T>; + displayName: string; +}; -(Text as any).displayName = 'Text'; +Text.displayName = 'Text'; From 17beb9bca819fefff57903181f4e23333fcb6c9e Mon Sep 17 00:00:00 2001 From: James Brooks Date: Thu, 3 Jul 2025 17:34:30 +0100 Subject: [PATCH 2/3] Add changeset Signed-off-by: James Brooks --- .changeset/seven-sloths-kick.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/seven-sloths-kick.md diff --git a/.changeset/seven-sloths-kick.md b/.changeset/seven-sloths-kick.md new file mode 100644 index 0000000000..a33924efc7 --- /dev/null +++ b/.changeset/seven-sloths-kick.md @@ -0,0 +1,5 @@ +--- +'@backstage/canon': patch +--- + +Update return types for Heading & Text components for React 19. From 45b9738d58ef3751c8b36f2bc51a35396ba230cb Mon Sep 17 00:00:00 2001 From: James Brooks Date: Thu, 3 Jul 2025 17:44:08 +0100 Subject: [PATCH 3/3] Update API reports Signed-off-by: James Brooks --- packages/canon/report.api.md | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/packages/canon/report.api.md b/packages/canon/report.api.md index 372b82436b..f60f176f7f 100644 --- a/packages/canon/report.api.md +++ b/packages/canon/report.api.md @@ -917,11 +917,14 @@ export interface GridProps extends SpaceProps { } // @public (undocumented) -export const Heading: ( - props: HeadingProps & { - ref?: React.Ref; - }, -) => React.ReactElement | null; +export const Heading: { + ( + props: HeadingProps & { + ref?: React.ComponentPropsWithRef['ref']; + }, + ): React.ReactElement, T>; + displayName: string; +}; // @public (undocumented) export type HeadingOwnProps = { @@ -1576,11 +1579,14 @@ export interface TabsRootWithoutOrientation > {} // @public (undocumented) -const Text_2: ( - props: TextProps & { - ref?: React.Ref; - }, -) => React.ReactElement | null; +const Text_2: { + ( + props: TextProps & { + ref?: React.ComponentPropsWithRef['ref']; + }, + ): React.ReactElement, T>; + displayName: string; +}; export { Text_2 as Text }; // @public (undocumented)