From da2015bb3b528b262b3feaddc792000bbd563a9c Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 12 Feb 2026 14:23:59 +0100 Subject: [PATCH] prettier and API reports Signed-off-by: Patrik Oldsberg --- packages/frontend-plugin-api/report.api.md | 30 ++++++- .../src/blueprints/SubPageBlueprint.tsx | 2 +- .../src/components/index.ts | 6 +- plugins/api-docs/report.api.md | 1 + plugins/app-visualizer/report.api.md | 87 ++++--------------- .../AppVisualizerPage/TextVisualizer.tsx | 6 +- plugins/app/report.api.md | 28 ++++++ 7 files changed, 76 insertions(+), 84 deletions(-) diff --git a/packages/frontend-plugin-api/report.api.md b/packages/frontend-plugin-api/report.api.md index 8f60926fe6..1232ce0640 100644 --- a/packages/frontend-plugin-api/report.api.md +++ b/packages/frontend-plugin-api/report.api.md @@ -1427,16 +1427,36 @@ export const googleAuthApiRef: ApiRef< // @public export const HeaderActionBlueprint: ExtensionBlueprint_2<{ kind: 'header-action'; - params: { + params: (params: { loader: () => Promise; - }; - output: ExtensionDataRef_2; + }) => ExtensionBlueprintParams_2<{ + loader: () => Promise; + }>; + output: ExtensionDataRef_2< + () => Promise, + 'core.header-action.loader', + {} + >; inputs: {}; config: {}; configInput: {}; - dataRefs: never; + dataRefs: { + action: ConfigurableExtensionDataRef_2< + () => Promise, + 'core.header-action.loader', + {} + >; + }; }>; +// @public +export type HeaderActionsApi = { + getHeaderActions(pluginId: string): ReactNode[]; +}; + +// @public +export const headerActionsApiRef: ApiRef_2; + // @public @deprecated export type IconComponent = ComponentType<{ fontSize?: 'medium' | 'large' | 'small' | 'inherit'; @@ -1809,6 +1829,8 @@ export interface PageLayoutProps { // (undocumented) children?: ReactNode; // (undocumented) + headerActions?: ReactNode; + // (undocumented) icon?: IconElement; // (undocumented) tabs?: PageTab[]; diff --git a/packages/frontend-plugin-api/src/blueprints/SubPageBlueprint.tsx b/packages/frontend-plugin-api/src/blueprints/SubPageBlueprint.tsx index aacf03f4f9..5f5d5373f0 100644 --- a/packages/frontend-plugin-api/src/blueprints/SubPageBlueprint.tsx +++ b/packages/frontend-plugin-api/src/blueprints/SubPageBlueprint.tsx @@ -26,7 +26,7 @@ import { ExtensionBoundary } from '../components'; * @example * ```tsx * const overviewRouteRef = createRouteRef(); - * + * * const mySubPage = SubPageBlueprint.make({ * attachTo: { id: 'page:my-plugin', input: 'pages' }, * name: 'overview', diff --git a/packages/frontend-plugin-api/src/components/index.ts b/packages/frontend-plugin-api/src/components/index.ts index f0af38d1df..e04cbb3c65 100644 --- a/packages/frontend-plugin-api/src/components/index.ts +++ b/packages/frontend-plugin-api/src/components/index.ts @@ -25,8 +25,4 @@ export { } from './createSwappableComponent'; export { useAppNode } from './AppNodeProvider'; export * from './DefaultSwappableComponents'; -export { - PageLayout, - type PageLayoutProps, - type PageTab, -} from './PageLayout'; +export { PageLayout, type PageLayoutProps, type PageTab } from './PageLayout'; diff --git a/plugins/api-docs/report.api.md b/plugins/api-docs/report.api.md index 693502fad9..a350e4370d 100644 --- a/plugins/api-docs/report.api.md +++ b/plugins/api-docs/report.api.md @@ -121,6 +121,7 @@ export type DefaultApiExplorerPageProps = { actions?: TableProps['actions']; ownerPickerMode?: EntityOwnerPickerProps['mode']; pagination?: EntityListPagination; + noHeader?: boolean; }; // @public (undocumented) diff --git a/plugins/app-visualizer/report.api.md b/plugins/app-visualizer/report.api.md index 53ba5ace7c..c2c62a7da4 100644 --- a/plugins/app-visualizer/report.api.md +++ b/plugins/app-visualizer/report.api.md @@ -5,6 +5,7 @@ ```ts import { AnyRouteRefParams } from '@backstage/frontend-plugin-api'; import { ConfigurableExtensionDataRef } from '@backstage/frontend-plugin-api'; +import { ExtensionBlueprintParams } from '@backstage/frontend-plugin-api'; import { ExtensionDataRef } from '@backstage/frontend-plugin-api'; import { ExtensionInput } from '@backstage/frontend-plugin-api'; import { IconComponent } from '@backstage/frontend-plugin-api'; @@ -19,6 +20,23 @@ const visualizerPlugin: OverridableFrontendPlugin< {}, {}, { + 'header-action:app-visualizer': OverridableExtensionDefinition<{ + kind: 'header-action'; + name: undefined; + config: {}; + configInput: {}; + output: ExtensionDataRef< + () => Promise, + 'core.header-action.loader', + {} + >; + inputs: {}; + params: (params: { + loader: () => Promise; + }) => ExtensionBlueprintParams<{ + loader: () => Promise; + }>; + }>; 'nav-item:app-visualizer': OverridableExtensionDefinition<{ kind: 'nav-item'; name: undefined; @@ -109,75 +127,6 @@ const visualizerPlugin: OverridableFrontendPlugin< routeRef?: RouteRef; }; }>; - 'page:app-visualizer/2': OverridableExtensionDefinition<{ - kind: 'page'; - name: '2'; - config: { - path: string | undefined; - title: string | undefined; - }; - configInput: { - title?: string | undefined; - path?: string | undefined; - }; - output: - | ExtensionDataRef - | ExtensionDataRef< - RouteRef, - 'core.routing.ref', - { - optional: true; - } - > - | ExtensionDataRef - | ExtensionDataRef< - string, - 'core.title', - { - optional: true; - } - > - | ExtensionDataRef< - IconElement, - 'core.icon', - { - optional: true; - } - >; - inputs: { - pages: ExtensionInput< - | ConfigurableExtensionDataRef - | ConfigurableExtensionDataRef - | ConfigurableExtensionDataRef< - RouteRef, - 'core.routing.ref', - { - optional: true; - } - > - | ConfigurableExtensionDataRef< - string, - 'core.title', - { - optional: true; - } - >, - { - singleton: false; - optional: false; - internal: false; - } - >; - }; - params: { - defaultPath?: [Error: `Use the 'path' param instead`]; - path: string; - title?: string; - icon?: IconElement; - loader?: () => Promise; - routeRef?: RouteRef; - }; - }>; 'sub-page:app-visualizer/details': OverridableExtensionDefinition<{ kind: 'sub-page'; name: 'details'; diff --git a/plugins/app-visualizer/src/components/AppVisualizerPage/TextVisualizer.tsx b/plugins/app-visualizer/src/components/AppVisualizerPage/TextVisualizer.tsx index c8ad3e4c32..954c1b7a5c 100644 --- a/plugins/app-visualizer/src/components/AppVisualizerPage/TextVisualizer.tsx +++ b/plugins/app-visualizer/src/components/AppVisualizerPage/TextVisualizer.tsx @@ -14,11 +14,7 @@ * limitations under the License. */ -import { - AppNode, - useApi, - appTreeApiRef, -} from '@backstage/frontend-plugin-api'; +import { AppNode, useApi, appTreeApiRef } from '@backstage/frontend-plugin-api'; import { Box, Checkbox } from '@backstage/ui'; import { ReactNode, useState } from 'react'; diff --git a/plugins/app/report.api.md b/plugins/app/report.api.md index fc3d467007..bc83dc3476 100644 --- a/plugins/app/report.api.md +++ b/plugins/app/report.api.md @@ -469,6 +469,34 @@ const appPlugin: OverridableFrontendPlugin< params: ApiFactory, ) => ExtensionBlueprintParams; }>; + 'api:app/header-actions': OverridableExtensionDefinition<{ + config: {}; + configInput: {}; + output: ExtensionDataRef; + inputs: { + actions: ExtensionInput< + ConfigurableExtensionDataRef< + () => Promise, + 'core.header-action.loader', + {} + >, + { + singleton: false; + optional: false; + internal: false; + } + >; + }; + kind: 'api'; + name: 'header-actions'; + params: < + TApi, + TImpl extends TApi, + TDeps extends { [name in string]: unknown }, + >( + params: ApiFactory, + ) => ExtensionBlueprintParams; + }>; 'api:app/icons': OverridableExtensionDefinition<{ config: {}; configInput: {};