/* ! * (c) Copyright 2026 Palantir Technologies Inc. All rights reserved. */ import { useMergeRefs } from "@floating-ui/react"; import classNames from "classnames"; import { Children, cloneElement, createElement, forwardRef, useCallback } from "react"; import { Classes, DISPLAYNAME_PREFIX, Utils } from "../../common"; import { PopoverInteractionKind } from "../popover/popoverProps"; import type { PopoverClickTargetHandlers, PopoverHoverTargetHandlers } from "../popover/popoverSharedProps"; import type { PopoverTargetProps } from "./popoverNextProps"; export const PopoverTarget = forwardRef((props, targetRef) => { const { children, className, floatingData, disabled = false, fill = false, handleMouseEnter, handleMouseLeave, handleTargetBlur, handleTargetContextMenu, handleTargetFocus, interactionKind, isContentEmpty, isControlled, isHoverInteractionKind, openOnTargetFocus = true, popupKind, renderTarget = undefined, targetProps, targetTagName = "span", } = props; const tagName = fill ? "div" : targetTagName; const { isOpen } = floatingData; const ref = useMergeRefs([floatingData.refs.setReference, targetRef]); // Custom keyboard click handler for the reference element. Floating UI's useClick hook // has its keyboardHandlers disabled because it calls `preventDefault()` on Space keydown, // which prevents space characters from being typed in /