import React from 'react';
import type { WithChildren } from '../../../utils/childTypes';
/**
* The `ComponentProps` interface defines the shape of the properties object that is expected for this component.
* It outlines the required properties that needs to be provided when utilizing this component expecting an object of this type.
*/
export interface ComponentProps {
/**
* An optional property that determines the alignment of the popover content. It can take the values 'center', 'left', or 'right',.
*/
popoverAlignment?: 'left' | 'right';
/**
* An optional property that specifies the maximum width of the popover content. This property is used to constrain the width of the popover, ensuring that it does not exceed a certain size and maintains a visually appealing layout. The value can be defined in any valid CSS unit (e.g., `px`, `em`, `%`), allowing for flexible design options.
*/
popoverMaxWidth?: string;
/**
* An optional property that specifies the minimum width of the popover content. This property is used to ensure that the popover maintains a certain width, even when the content is minimal, providing a consistent and visually balanced appearance. The value can be defined in any valid CSS unit (e.g., `px`, `em`, `%`), allowing for flexible design options.
*/
popoverMinWidth?: string;
/**
* The `testId` property represents a unique identifier, usually in the form of a string, assigned to a component for testing purposes.
* This property is crucial for uniquely identifying components during testing, allowing for more accurate and reliable tests.
*
* @default 'InfoPopup'
*/
testId?: string;
}
/**
* The `InfoPopup` component displays an informational popup that appears when the user hovers over the component.
* It uses a popover to show additional information, with the popover opening on mouse enter and closing on mouse leave.
* This component is useful for providing contextual information without permanently taking up screen space.
*
* @param props The component props.
* @param props.children The content to display inside the popup when it is open.
* @param props.popoverAlignment An optional property that determines the alignment of the popover content. It can take the values 'center', 'left', or 'right'.
* @param props.popoverMaxWidth An optional property that specifies the maximum width of the popover content, defined in any valid CSS unit (e.g., `px`, `em`, `%`).
* @param props.popoverMinWidth An optional property that specifies the minimum width of the popover content, defined in any valid CSS unit (e.g., `px`, `em`, `%`).
* @param props.testId A unique identifier used for testing purposes, defaulting to `'InfoPopup'`.
* @returns A JSX element that renders the `InfoPopup` component with the provided child content.
*
* @example
* ```tsx
*
*