diff --git a/ui/components/component-library/modal-overlay/README.mdx b/ui/components/component-library/modal-overlay/README.mdx
index cb42da5d0..18eacaf67 100644
--- a/ui/components/component-library/modal-overlay/README.mdx
+++ b/ui/components/component-library/modal-overlay/README.mdx
@@ -12,7 +12,7 @@ import { ModalOverlay } from './modal-overlay';
## Props
-The `ModalOverlay` accepts all props below as well as all [Box](/docs/components-ui-box--default-story#props) component props
+The `ModalOverlay` accepts all props below as well as all [Box](/docs/components-componentlibrary-box--docs#props) component props
diff --git a/ui/components/component-library/modal-overlay/__snapshots__/modal-overlay.test.tsx.snap b/ui/components/component-library/modal-overlay/__snapshots__/modal-overlay.test.tsx.snap
index 7041d8a3b..2374dd61f 100644
--- a/ui/components/component-library/modal-overlay/__snapshots__/modal-overlay.test.tsx.snap
+++ b/ui/components/component-library/modal-overlay/__snapshots__/modal-overlay.test.tsx.snap
@@ -4,7 +4,7 @@ exports[`ModalOverlay should match snapshot 1`] = `
`;
diff --git a/ui/components/component-library/modal-overlay/index.ts b/ui/components/component-library/modal-overlay/index.ts
index bc283f898..f244f9318 100644
--- a/ui/components/component-library/modal-overlay/index.ts
+++ b/ui/components/component-library/modal-overlay/index.ts
@@ -1,2 +1,6 @@
export { ModalOverlay } from './modal-overlay';
-export type { ModalOverlayProps } from './modal-overlay.types';
+export type {
+ ModalOverlayProps,
+ ModalOverlayComponent,
+ ModalOverlayStyleUtilityProps,
+} from './modal-overlay.types';
diff --git a/ui/components/component-library/modal-overlay/modal-overlay.stories.tsx b/ui/components/component-library/modal-overlay/modal-overlay.stories.tsx
index fb2cec597..022eea2f0 100644
--- a/ui/components/component-library/modal-overlay/modal-overlay.stories.tsx
+++ b/ui/components/component-library/modal-overlay/modal-overlay.stories.tsx
@@ -1,5 +1,5 @@
import React, { useState } from 'react';
-import { ComponentStory, ComponentMeta } from '@storybook/react';
+import { StoryFn, Meta } from '@storybook/react';
import { ModalOverlay } from './modal-overlay';
@@ -21,16 +21,16 @@ export default {
action: 'onClick',
},
},
-} as ComponentMeta;
+} as Meta;
-const Template: ComponentStory = (args) => (
+const Template: StoryFn = (args) => (
);
export const DefaultStory = Template.bind({});
DefaultStory.storyName = 'Default';
-export const OnClick: ComponentStory = (args) => {
+export const OnClick: StoryFn = (args) => {
const [open, setOpen] = useState(false);
const handleOnClick = () => {
setOpen(!open);
diff --git a/ui/components/component-library/modal-overlay/modal-overlay.tsx b/ui/components/component-library/modal-overlay/modal-overlay.tsx
index c8da17592..c57df8f77 100644
--- a/ui/components/component-library/modal-overlay/modal-overlay.tsx
+++ b/ui/components/component-library/modal-overlay/modal-overlay.tsx
@@ -3,27 +3,33 @@ import classnames from 'classnames';
import {
BackgroundColor,
- BLOCK_SIZES,
+ BlockSize,
} from '../../../helpers/constants/design-system';
-import Box from '../../ui/box/box';
+import { Box, BoxProps } from '../box';
+import type { PolymorphicRef } from '../box';
-import { ModalOverlayProps } from './modal-overlay.types';
+import {
+ ModalOverlayProps,
+ ModalOverlayComponent,
+} from './modal-overlay.types';
-export const ModalOverlay: React.FC = ({
- onClick,
- className = '',
- ...props
-}) => (
-
+export const ModalOverlay: ModalOverlayComponent = React.forwardRef(
+ (
+ { onClick, className = '', ...props }: ModalOverlayProps,
+ ref?: PolymorphicRef,
+ ) => (
+ )}
+ />
+ ),
);
export default ModalOverlay;
diff --git a/ui/components/component-library/modal-overlay/modal-overlay.types.ts b/ui/components/component-library/modal-overlay/modal-overlay.types.ts
index a1045bc96..f2d3258d7 100644
--- a/ui/components/component-library/modal-overlay/modal-overlay.types.ts
+++ b/ui/components/component-library/modal-overlay/modal-overlay.types.ts
@@ -1,6 +1,10 @@
-import { BoxProps } from '../../ui/box/box.d';
+import React from 'react';
+import type {
+ StyleUtilityProps,
+ PolymorphicComponentPropWithRef,
+} from '../box';
-export interface ModalOverlayProps extends BoxProps {
+export interface ModalOverlayStyleUtilityProps extends StyleUtilityProps {
/**
* onClick handler for the overlay
* Not necessary when used with Modal and closeOnClickOutside is true
@@ -11,3 +15,10 @@ export interface ModalOverlayProps extends BoxProps {
*/
className?: string;
}
+
+export type ModalOverlayProps =
+ PolymorphicComponentPropWithRef;
+
+export type ModalOverlayComponent = (
+ props: ModalOverlayProps,
+) => React.ReactElement | null;