{"version":3,"file":"BannerBase.types.cjs","sourceRoot":"","sources":["../../../src/components/BannerBase/BannerBase.types.ts"],"names":[],"mappings":"","sourcesContent":["import type { BannerBasePropsShared } from '@metamask/design-system-shared';\nimport type { MouseEventHandler } from 'react';\n\nimport type { BoxProps } from '../Box';\nimport type { ButtonProps } from '../Button';\nimport type { ButtonIconProps } from '../ButtonIcon';\nimport type { TextProps } from '../Text';\n\ntype BannerBaseActionButtonProps = Omit<\n  Partial<ButtonProps>,\n  'children' | 'onClick' | 'variant'\n>;\n\ntype BannerBaseCloseButtonProps = Omit<\n  Partial<ButtonIconProps>,\n  'iconName' | 'onClick'\n> & {\n  /**\n   * Optional test id for the close button element.\n   */\n  'data-testid'?: string;\n};\n\ntype BannerBasePropsBase = BannerBasePropsShared &\n  Omit<BoxProps, 'children'> & {\n    /**\n     * Optional props for the title `Text` when the title is a string.\n     */\n    titleProps?: Partial<TextProps>;\n    /**\n     * Optional props for the description `Text` when description is a string.\n     */\n    descriptionProps?: Partial<TextProps>;\n    /**\n     * Optional props for the children wrapper `Text` when children is a string.\n     */\n    childrenWrapperProps?: Partial<TextProps>;\n    /**\n     * Optional click handler for the close button.\n     * If provided, a close button is shown.\n     */\n    onClose?: MouseEventHandler<HTMLButtonElement>;\n    /**\n     * Optional props for the close `ButtonIcon`.\n     * Only used when `onClose` is provided.\n     */\n    closeButtonProps?: BannerBaseCloseButtonProps;\n  };\n\ntype BannerBaseActionPropsWithHandler = {\n  actionButtonOnClick: MouseEventHandler<HTMLButtonElement>;\n  actionButtonLabel: string;\n  actionButtonProps?: BannerBaseActionButtonProps;\n};\n\ntype BannerBaseActionPropsWithoutHandler = {\n  actionButtonOnClick?: undefined;\n  actionButtonLabel?: string;\n  actionButtonProps?: BannerBaseActionButtonProps;\n};\n\nexport type BannerBaseProps = BannerBasePropsBase &\n  (BannerBaseActionPropsWithHandler | BannerBaseActionPropsWithoutHandler);\n"]}