diff --git a/.changeset/red-hotels-destroy.md b/.changeset/red-hotels-destroy.md
new file mode 100644
index 0000000000..85ef6c10a4
--- /dev/null
+++ b/.changeset/red-hotels-destroy.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-catalog-react': patch
+---
+
+Export CatalogAutocomplete so it can be used externally
diff --git a/plugins/catalog-react/report.api.md b/plugins/catalog-react/report.api.md
index b3495faf08..d634db8fba 100644
--- a/plugins/catalog-react/report.api.md
+++ b/plugins/catalog-react/report.api.md
@@ -6,6 +6,7 @@
///
import { ApiRef } from '@backstage/core-plugin-api';
+import { AutocompleteProps } from '@material-ui/lab/Autocomplete';
import { CATALOG_FILTER_EXISTS } from '@backstage/catalog-client';
import { CatalogApi } from '@backstage/catalog-client';
import { ComponentEntity } from '@backstage/catalog-model';
@@ -17,6 +18,7 @@ import { IconComponent } from '@backstage/core-plugin-api';
import { InfoCardVariants } from '@backstage/core-components';
import { LinkProps } from '@backstage/core-components';
import { Observable } from '@backstage/types';
+import { OutlinedTextFieldProps } from '@material-ui/core/TextField';
import { Overrides } from '@material-ui/core/styles/overrides';
import { PropsWithChildren } from 'react';
import { default as React_2 } from 'react';
@@ -28,6 +30,7 @@ import { SystemEntity } from '@backstage/catalog-model';
import { TableColumn } from '@backstage/core-components';
import { TableOptions } from '@backstage/core-components';
import { TextFieldProps } from '@material-ui/core/TextField';
+import { TypographyProps } from '@material-ui/core/Typography';
// @public (undocumented)
export type AllowedEntityFilters = {
@@ -71,6 +74,38 @@ export { CatalogApi };
// @public
export const catalogApiRef: ApiRef;
+// @public (undocumented)
+export function CatalogAutocomplete<
+ T,
+ Multiple extends boolean | undefined = undefined,
+ DisableClearable extends boolean | undefined = undefined,
+ FreeSolo extends boolean | undefined = undefined,
+>(
+ props: CatalogAutocompleteProps,
+): React_2.JSX.Element;
+
+// @public
+export type CatalogAutocompleteProps<
+ T,
+ Multiple extends boolean | undefined = undefined,
+ DisableClearable extends boolean | undefined = undefined,
+ FreeSolo extends boolean | undefined = undefined,
+> = Omit<
+ AutocompleteProps,
+ 'PopperComponent' | 'PaperComponent' | 'popupIcon' | 'renderInput'
+> & {
+ name: string;
+ label?: string;
+ LabelProps?: TypographyProps<'label'>;
+ TextFieldProps?: Omit;
+ renderInput?: AutocompleteProps<
+ T,
+ Multiple,
+ DisableClearable,
+ FreeSolo
+ >['renderInput'];
+};
+
// @public (undocumented)
export const CatalogFilterLayout: {
(props: { children: React_2.ReactNode }): React_2.JSX.Element;
diff --git a/plugins/catalog-react/src/components/CatalogAutocomplete/CatalogAutocomplete.tsx b/plugins/catalog-react/src/components/CatalogAutocomplete/CatalogAutocomplete.tsx
index af41db8626..b120ad5b4c 100644
--- a/plugins/catalog-react/src/components/CatalogAutocomplete/CatalogAutocomplete.tsx
+++ b/plugins/catalog-react/src/components/CatalogAutocomplete/CatalogAutocomplete.tsx
@@ -124,6 +124,11 @@ const PaperComponent = (props: PaperProps) => (
);
+/**
+ * Props for {@link CatalogAutocomplete}
+ *
+ * @public
+ */
export type CatalogAutocompleteProps<
T,
Multiple extends boolean | undefined = undefined,
@@ -145,6 +150,7 @@ export type CatalogAutocompleteProps<
>['renderInput'];
};
+/** @public */
export function CatalogAutocomplete<
T,
Multiple extends boolean | undefined = undefined,
diff --git a/plugins/catalog-react/src/components/index.ts b/plugins/catalog-react/src/components/index.ts
index e544287007..8a1ebd1835 100644
--- a/plugins/catalog-react/src/components/index.ts
+++ b/plugins/catalog-react/src/components/index.ts
@@ -14,6 +14,7 @@
* limitations under the License.
*/
+export * from './CatalogAutocomplete';
export * from './CatalogFilterLayout';
export * from './DefaultFilters';
export * from './EntityKindPicker';