import React, { forwardRef } from "react"; import { Slot } from "../../utils/components/slot/Slot"; import { composeEventHandlers } from "../../utils/helpers"; import { useMergeRefs } from "../../utils/hooks"; import { useDialogContext } from "../root/DialogRoot.context"; type DialogTriggerProps = React.ButtonHTMLAttributes & { children: React.ReactElement; }; /** * @see 🏷️ {@link DialogTriggerProps} * @example * ```jsx * * * * * * ``` */ const DialogTrigger = forwardRef( ({ children, onClick, ...restProps }, forwardedRef) => { const { open, setOpen, setTriggerElement, popupId } = useDialogContext(); const mergedRefs = useMergeRefs(forwardedRef, setTriggerElement); return ( setOpen(!open, event.nativeEvent), )} aria-haspopup="dialog" aria-controls={open ? popupId : undefined} > {children} ); }, ); export { DialogTrigger }; export type { DialogTriggerProps };