<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](./index.md) &gt; [@empathyco/x-components](./x-components.md) &gt; [BaseModal](./x-components.basemodal.md)

## BaseModal variable

Base component with no XPlugin dependencies that serves as a utility for constructing more complex modals.

**Signature:**

```typescript
_default: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
    open: {
        type: BooleanConstructor;
        required: true;
    };
    focusOnOpen: {
        type: BooleanConstructor;
        default: boolean;
    };
    referenceSelector: StringConstructor;
    animation: {
        type: (StringConstructor | ObjectConstructor | FunctionConstructor)[];
        default: () => import("vue").DefineComponent<{}, {}, any>;
    };
    overlayAnimation: {
        type: (StringConstructor | ObjectConstructor | FunctionConstructor)[];
        default: () => import("vue").DefineComponent<{}, {}, any>;
    };
    contentClass: StringConstructor;
    overlayClass: StringConstructor;
}>, {
    emitOverlayClicked: (event: Event) => void;
    isWaitingForLeave: import("vue").Ref<boolean, boolean>;
    modalContentRef: import("vue").Ref<HTMLDivElement | undefined, HTMLDivElement | undefined>;
    modalRef: import("vue").Ref<HTMLDivElement | undefined, HTMLDivElement | undefined>;
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("click:overlay" | "focusin:body")[], "click:overlay" | "focusin:body", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
    open: {
        type: BooleanConstructor;
        required: true;
    };
    focusOnOpen: {
        type: BooleanConstructor;
        default: boolean;
    };
    referenceSelector: StringConstructor;
    animation: {
        type: (StringConstructor | ObjectConstructor | FunctionConstructor)[];
        default: () => import("vue").DefineComponent<{}, {}, any>;
    };
    overlayAnimation: {
        type: (StringConstructor | ObjectConstructor | FunctionConstructor)[];
        default: () => import("vue").DefineComponent<{}, {}, any>;
    };
    contentClass: StringConstructor;
    overlayClass: StringConstructor;
}>> & Readonly<{
    "onClick:overlay"?: ((...args: any[]) => any) | undefined;
    "onFocusin:body"?: ((...args: any[]) => any) | undefined;
}>, {
    focusOnOpen: boolean;
    animation: string | Function | Record<string, any>;
    overlayAnimation: string | Function | Record<string, any>;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>
```
