import type * as React from "react"; import { Primitive, type PrimitiveProps } from "@seed-design/react-primitive"; import { callout, type CalloutVariantProps } from "@seed-design/css/recipes/callout"; import { createSlotRecipeContext } from "../../utils/createSlotRecipeContext"; import { DismissibleCloseButton, DismissibleRoot, type DismissibleRootProps, } from "../private/useDismissible"; const { withContext, withProvider } = createSlotRecipeContext(callout); export interface CalloutRootProps extends CalloutVariantProps, DismissibleRootProps {} export const CalloutRoot = withProvider(DismissibleRoot, "root"); export interface CalloutContentProps extends PrimitiveProps, React.HTMLAttributes {} export const CalloutContent = withContext( Primitive.div, "content", ); export interface CalloutTitleProps extends PrimitiveProps, React.HTMLAttributes {} export const CalloutTitle = withContext( Primitive.span, "title", ); export interface CalloutDescriptionProps extends PrimitiveProps, React.HTMLAttributes {} export const CalloutDescription = withContext( Primitive.span, "description", ); export interface CalloutLinkProps extends PrimitiveProps, React.ButtonHTMLAttributes {} export const CalloutLink = withContext( Primitive.button, "link", ); export interface CalloutCloseButtonProps extends PrimitiveProps, React.ButtonHTMLAttributes {} export const CalloutCloseButton = withContext( DismissibleCloseButton, "closeButton", );