UNPKG

@carbon/react

Version:

React components for the Carbon Design System

41 lines (40 loc) 1.73 kB
/** * Copyright IBM Corp. 2016, 2025 * * This source code is licensed under the Apache-2.0 license found in the * LICENSE file in the root directory of this source tree. */ import React, { type ComponentType, type PropsWithChildren } from 'react'; import { type PresenceContext } from '../../internal/usePresenceContext'; export interface ModalPresenceProps { /** * Specify whether the Modal is currently open */ open: boolean; /** * Internal property for backwards compatibility. Specify whether the Modal should opt in to presence mode. */ _autoEnablePresence?: boolean; /** * Internal property to predefine the presence context's id for exclusivity. */ _presenceId?: string; } export declare const ModalPresence: ({ open, _presenceId: presenceId, _autoEnablePresence: autoEnablePresence, children, }: PropsWithChildren<ModalPresenceProps>) => import("react/jsx-runtime").JSX.Element | null; interface ModalPresenceContextProps extends PresenceContext { autoEnablePresence: boolean; } export declare const ModalPresenceContext: React.Context<ModalPresenceContextProps | undefined>; /** * Handles occurrences where only a single modal must consume a context. */ export declare const useExclusiveModalPresenceContext: (id: string) => ModalPresenceContextProps | undefined; type WithModalPresenceProps = Pick<ModalPresenceProps, 'open'>; /** * Higher-order function that wraps a component with ModalPresence */ export declare const withModalPresence: <TProps extends object>(Component: ComponentType<TProps>) => { ({ open, ...componentProps }: TProps & WithModalPresenceProps): import("react/jsx-runtime").JSX.Element; displayName: string; }; export {};