diff --git a/packages/scaffolder-internal/src/wiring/InternalFormField.ts b/packages/scaffolder-internal/src/wiring/InternalFormField.ts index 5d7bf1ee7d..b711341ea5 100644 --- a/packages/scaffolder-internal/src/wiring/InternalFormField.ts +++ b/packages/scaffolder-internal/src/wiring/InternalFormField.ts @@ -17,12 +17,10 @@ import { OpaqueType } from '@internal/opaque'; import { z } from 'zod'; -import { FormFieldExtensionData } from '@backstage/plugin-scaffolder-react/alpha'; - -/** @alpha */ -export interface FormField { - readonly $$type: '@backstage/scaffolder/FormField'; -} +import { + FormFieldExtensionData, + FormField, +} from '@backstage/plugin-scaffolder-react/alpha'; /** @alpha */ export const OpaqueFormField = OpaqueType.create<{ diff --git a/packages/scaffolder-internal/src/wiring/index.ts b/packages/scaffolder-internal/src/wiring/index.ts index 37c8bd09cb..5195a1fa64 100644 --- a/packages/scaffolder-internal/src/wiring/index.ts +++ b/packages/scaffolder-internal/src/wiring/index.ts @@ -13,5 +13,5 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -export { OpaqueFormField, type FormField } from './InternalFormField'; +export { OpaqueFormField } from './InternalFormField'; export { OpaqueFormDecorator } from './InternalFormDecorator'; diff --git a/plugins/scaffolder-react/report-alpha.api.md b/plugins/scaffolder-react/report-alpha.api.md index 2014bff9be..213d9427d2 100644 --- a/plugins/scaffolder-react/report-alpha.api.md +++ b/plugins/scaffolder-react/report-alpha.api.md @@ -18,7 +18,6 @@ import { FieldExtensionComponentProps } from '@backstage/plugin-scaffolder-react import { FieldExtensionOptions } from '@backstage/plugin-scaffolder-react'; import { FieldSchema } from '@backstage/plugin-scaffolder-react'; import { FieldValidation } from '@rjsf/utils'; -import { FormField } from '@internal/scaffolder'; import { FormProps } from '@backstage/plugin-scaffolder-react'; import { IconComponent } from '@backstage/core-plugin-api'; import { JsonObject } from '@backstage/types'; @@ -155,6 +154,12 @@ export const FormDecoratorBlueprint: ExtensionBlueprint<{ }; }>; +// @alpha (undocumented) +export interface FormField { + // (undocumented) + readonly $$type: '@backstage/scaffolder/FormField'; +} + // @alpha export const FormFieldBlueprint: ExtensionBlueprint<{ kind: 'scaffolder-form-field'; diff --git a/plugins/scaffolder-react/src/next/api/FormFieldsApi.ts b/plugins/scaffolder-react/src/next/api/FormFieldsApi.ts index 7712b91a18..7e8ea4f83c 100644 --- a/plugins/scaffolder-react/src/next/api/FormFieldsApi.ts +++ b/plugins/scaffolder-react/src/next/api/FormFieldsApi.ts @@ -20,9 +20,9 @@ import { createExtensionInput, } from '@backstage/frontend-plugin-api'; import { formFieldsApiRef } from './ref'; -import { ScaffolderFormFieldsApi } from './types'; +import { FormField, ScaffolderFormFieldsApi } from './types'; import { FormFieldBlueprint } from '../blueprints'; -import { FormField, OpaqueFormField } from '@internal/scaffolder'; +import { OpaqueFormField } from '@internal/scaffolder'; class DefaultScaffolderFormFieldsApi implements ScaffolderFormFieldsApi { constructor( diff --git a/plugins/scaffolder-react/src/next/api/index.ts b/plugins/scaffolder-react/src/next/api/index.ts index ecc62e5acf..52c40ad99a 100644 --- a/plugins/scaffolder-react/src/next/api/index.ts +++ b/plugins/scaffolder-react/src/next/api/index.ts @@ -16,4 +16,4 @@ export { formFieldsApi } from './FormFieldsApi'; export { formFieldsApiRef } from './ref'; -export type { ScaffolderFormFieldsApi } from './types'; +export type { ScaffolderFormFieldsApi, FormField } from './types'; diff --git a/plugins/scaffolder-react/src/next/api/types.ts b/plugins/scaffolder-react/src/next/api/types.ts index ea93ba86b2..9e028567f6 100644 --- a/plugins/scaffolder-react/src/next/api/types.ts +++ b/plugins/scaffolder-react/src/next/api/types.ts @@ -23,3 +23,8 @@ import { FormFieldExtensionData } from '../blueprints'; export interface ScaffolderFormFieldsApi { getFormFields(): Promise; } + +/** @alpha */ +export interface FormField { + readonly $$type: '@backstage/scaffolder/FormField'; +} diff --git a/plugins/scaffolder-react/src/next/blueprints/FormFieldBlueprint.tsx b/plugins/scaffolder-react/src/next/blueprints/FormFieldBlueprint.tsx index 4324a080f6..afbf2b501d 100644 --- a/plugins/scaffolder-react/src/next/blueprints/FormFieldBlueprint.tsx +++ b/plugins/scaffolder-react/src/next/blueprints/FormFieldBlueprint.tsx @@ -19,8 +19,9 @@ import { } from '@backstage/frontend-plugin-api'; import { z } from 'zod'; -import { OpaqueFormField, FormField } from '@internal/scaffolder'; +import { OpaqueFormField } from '@internal/scaffolder'; import { FormFieldExtensionData } from './types'; +import { FormField } from '../api'; const formFieldExtensionDataRef = createExtensionDataRef< () => Promise diff --git a/plugins/scaffolder/report-alpha.api.md b/plugins/scaffolder/report-alpha.api.md index b14d47521d..f4b560de47 100644 --- a/plugins/scaffolder/report-alpha.api.md +++ b/plugins/scaffolder/report-alpha.api.md @@ -14,7 +14,7 @@ import { ExtensionDefinition } from '@backstage/frontend-plugin-api'; import { ExtensionInput } from '@backstage/frontend-plugin-api'; import { ExternalRouteRef } from '@backstage/frontend-plugin-api'; import { FieldExtensionOptions } from '@backstage/plugin-scaffolder-react'; -import { FormField } from '@internal/scaffolder'; +import { FormField } from '@backstage/plugin-scaffolder-react/alpha'; import { formFieldsApiRef } from '@backstage/plugin-scaffolder-react/alpha'; import type { FormProps as FormProps_2 } from '@rjsf/core'; import { FormProps as FormProps_3 } from '@backstage/plugin-scaffolder-react'; @@ -281,8 +281,6 @@ export const formDecoratorsApi: ExtensionDefinition<{ // @alpha (undocumented) export const formDecoratorsApiRef: ApiRef; -export { FormField }; - export { formFieldsApiRef }; // @alpha @deprecated diff --git a/plugins/scaffolder/src/alpha/index.ts b/plugins/scaffolder/src/alpha/index.ts index e7586ba733..d239f44b4f 100644 --- a/plugins/scaffolder/src/alpha/index.ts +++ b/plugins/scaffolder/src/alpha/index.ts @@ -30,6 +30,4 @@ export { type ScaffolderFormFieldsApi, } from '@backstage/plugin-scaffolder-react/alpha'; -export { type FormField } from '@internal/scaffolder'; - export { default } from './plugin'; diff --git a/plugins/scaffolder/src/components/Router/Router.tsx b/plugins/scaffolder/src/components/Router/Router.tsx index d8dee73849..a57811a520 100644 --- a/plugins/scaffolder/src/components/Router/Router.tsx +++ b/plugins/scaffolder/src/components/Router/Router.tsx @@ -62,9 +62,10 @@ import { import { RequirePermission } from '@backstage/plugin-permission-react'; import { templateManagementPermission } from '@backstage/plugin-scaffolder-common/alpha'; import { useApp } from '@backstage/core-plugin-api'; -import { FormField, OpaqueFormField } from '@internal/scaffolder'; +import { OpaqueFormField } from '@internal/scaffolder'; import { useAsync, useMountEffect } from '@react-hookz/web'; import { TemplatingExtensionsPage } from '../TemplatingExtensionsPage'; +import { FormField } from '@backstage/plugin-scaffolder-react/alpha'; /** * The Props for the Scaffolder Router