import { type ComponentPropsWithoutRef, type ReactNode } from 'react';
import { type SectionMessageSlotRecipeVariant } from '../../styled-system/recipes';
import { type IconButtonProps } from '../IconButton';
/**
* Props for SectionMessage component
* It extends the props of `
` element.
*/
export type SectionMessageProps = {
/**
* The type of the message
*
* @default 'neutral'
*/
messageType?: SectionMessageSlotRecipeVariant['messageType'];
/**
* Where to display this SectionMessage
*
* @default 'inline'
*/
region?: SectionMessageSlotRecipeVariant['region'];
/**
* The action slot of the SectionMessage
*/
actionSlot?: ReactNode;
/**
* The function to be called when the close button is clicked
*/
onClose?: IconButtonProps['onClick'];
/**
* The content of the SectionMessage
* Normally, it should be a string
* If you don't define, it will be empty
*/
children?: ReactNode;
/**
* Props for the status icon.
*
* @property aria-label - The text alternative for the status icon. By default, `messageType` is:
* - `success`: '完了'
* - `error`: 'エラー'
* - `caution`: '注意'
*/
statusIconProps?: Pick, 'aria-label'>;
/**
* Props for the close button.
*
* @property aria-label - The accessible name for the close button. It's '閉じる' by default.
*/
closeButtonProps?: Pick, 'aria-label'>;
/**
* Whether to disable responsive layout behavior.
* When false (default), the component will switch to mobile layout on narrow viewports (< 600px),
* moving the actionSlot to the bottom while keeping the close button in the top right.
* When true, the component maintains the desktop layout on all viewport sizes.
*
* @default false
*/
disableResponsive?: boolean;
} & ComponentPropsWithoutRef<'div'>;