{"version":3,"file":"TooltipInGroup.mjs","names":["BaseTooltip"],"sources":["../../src/Tooltip/TooltipInGroup.tsx"],"sourcesContent":["'use client';\n\nimport { mergeProps } from '@base-ui/react/merge-props';\nimport { Tooltip as BaseTooltip } from '@base-ui/react/tooltip';\nimport { cloneElement, type FC, isValidElement, use, useCallback, useMemo } from 'react';\nimport { mergeRefs } from 'react-merge-refs';\n\nimport { useNativeButton } from '@/hooks/useNativeButton';\n\nimport { TooltipGroupHandleContext } from './groupContext';\nimport { type TooltipProps } from './type';\nimport { useMergedTooltipProps } from './useMergedTooltipProps';\n\nconst DEFAULT_OPEN_DELAY = 400;\nconst DEFAULT_CLOSE_DELAY = 100;\n\nexport const TooltipInGroup: FC<TooltipProps> = ({\n  children,\n  ref: refProp,\n  arrow,\n  className,\n  classNames,\n  closeDelay,\n  defaultOpen,\n  disabled: disabledProp,\n  getPopupContainer,\n  hotkey,\n  hotkeyProps,\n  mouseEnterDelay,\n  mouseLeaveDelay,\n  onOpenChange,\n  open,\n  openDelay,\n  placement,\n  popupContainer,\n  popupProps,\n  portalProps,\n  positionerProps,\n  standalone: _standalone,\n  styles,\n  title,\n  triggerProps: triggerPropsProp,\n  zIndex,\n  ...restProps\n}) => {\n  const tooltipProps = useMemo(\n    () => ({\n      arrow,\n      className,\n      classNames,\n      closeDelay,\n      defaultOpen,\n      disabled: disabledProp,\n      getPopupContainer,\n      hotkey,\n      hotkeyProps,\n      mouseEnterDelay,\n      mouseLeaveDelay,\n      onOpenChange,\n      open,\n      openDelay,\n      placement,\n      popupContainer,\n      popupProps,\n      portalProps,\n      positionerProps,\n      styles,\n      title,\n      triggerProps: triggerPropsProp,\n      zIndex,\n    }),\n    [\n      arrow,\n      className,\n      classNames,\n      closeDelay,\n      defaultOpen,\n      disabledProp,\n      getPopupContainer,\n      hotkey,\n      hotkeyProps,\n      mouseEnterDelay,\n      mouseLeaveDelay,\n      onOpenChange,\n      open,\n      openDelay,\n      placement,\n      popupContainer,\n      popupProps,\n      portalProps,\n      positionerProps,\n      styles,\n      title,\n      triggerPropsProp,\n      zIndex,\n    ],\n  );\n\n  const group = use(TooltipGroupHandleContext);\n  const item = useMergedTooltipProps(tooltipProps);\n\n  const resolvedOpenDelay = useMemo(() => {\n    if (item.openDelay !== undefined) return item.openDelay;\n    if (item.mouseEnterDelay !== undefined) return item.mouseEnterDelay * 1000;\n    return DEFAULT_OPEN_DELAY;\n  }, [item.mouseEnterDelay, item.openDelay]);\n\n  const resolvedCloseDelay = useMemo(() => {\n    if (item.closeDelay !== undefined) return item.closeDelay;\n    if (item.mouseLeaveDelay !== undefined) return item.mouseLeaveDelay * 1000;\n    return DEFAULT_CLOSE_DELAY;\n  }, [item.closeDelay, item.mouseLeaveDelay]);\n\n  const disabled = Boolean(item.disabled);\n\n  const { isNativeButtonTriggerElement } = useNativeButton({\n    children,\n  });\n\n  const childElement = isValidElement(children) ? children : null;\n\n  const renderTrigger = useCallback(\n    (renderProps: unknown) => {\n      // Base UI's trigger props include `type=\"button\"` by default.\n      // If we render into a non-<button> element, that prop is invalid and can warn.\n      const resolvedProps = (() => {\n        if (isNativeButtonTriggerElement) return renderProps as any;\n        // eslint-disable-next-line unused-imports/no-unused-vars\n        const { type, ref: triggerRef, ...triggerRest } = renderProps as any;\n        return triggerRest;\n      })();\n\n      const mergedProps = mergeProps(restProps, (childElement as any).props, resolvedProps);\n      return cloneElement(childElement as any, {\n        ...mergedProps,\n        ref: mergeRefs([(childElement as any).ref, (renderProps as any).ref, refProp]),\n      });\n    },\n    [childElement, isNativeButtonTriggerElement, refProp, restProps],\n  );\n\n  // Don't render trigger behavior if no content\n\n  if (item.title == null && !item.hotkey) {\n    return children as any;\n  }\n\n  const triggerProps = {\n    closeDelay: resolvedCloseDelay,\n    delay: resolvedOpenDelay,\n    disabled,\n    payload: item,\n  };\n\n  if (childElement) {\n    return (\n      <BaseTooltip.Trigger handle={group ?? undefined} {...triggerProps} render={renderTrigger} />\n    );\n  }\n\n  return (\n    <BaseTooltip.Trigger handle={group ?? undefined} {...triggerProps} ref={refProp}>\n      {children}\n    </BaseTooltip.Trigger>\n  );\n};\n\nTooltipInGroup.displayName = 'TooltipInGroup';\n"],"mappings":";;;;;;;;;;AAaA,MAAM,qBAAqB;AAC3B,MAAM,sBAAsB;AAE5B,MAAa,kBAAoC,EAC/C,UACA,KAAK,SACL,OACA,WACA,YACA,YACA,aACA,UAAU,cACV,mBACA,QACA,aACA,iBACA,iBACA,cACA,MACA,WACA,WACA,gBACA,YACA,aACA,iBACA,YAAY,aACZ,QACA,OACA,cAAc,kBACd,QACA,GAAG,gBACC;CACJ,MAAM,eAAe,eACZ;EACL;EACA;EACA;EACA;EACA;EACA,UAAU;EACV;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,cAAc;EACd;EACD,GACD;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD,CACF;CAED,MAAM,QAAQ,IAAI,0BAA0B;CAC5C,MAAM,OAAO,sBAAsB,aAAa;CAEhD,MAAM,oBAAoB,cAAc;AACtC,MAAI,KAAK,cAAc,KAAA,EAAW,QAAO,KAAK;AAC9C,MAAI,KAAK,oBAAoB,KAAA,EAAW,QAAO,KAAK,kBAAkB;AACtE,SAAO;IACN,CAAC,KAAK,iBAAiB,KAAK,UAAU,CAAC;CAE1C,MAAM,qBAAqB,cAAc;AACvC,MAAI,KAAK,eAAe,KAAA,EAAW,QAAO,KAAK;AAC/C,MAAI,KAAK,oBAAoB,KAAA,EAAW,QAAO,KAAK,kBAAkB;AACtE,SAAO;IACN,CAAC,KAAK,YAAY,KAAK,gBAAgB,CAAC;CAE3C,MAAM,WAAW,QAAQ,KAAK,SAAS;CAEvC,MAAM,EAAE,iCAAiC,gBAAgB,EACvD,UACD,CAAC;CAEF,MAAM,eAAe,eAAe,SAAS,GAAG,WAAW;CAE3D,MAAM,gBAAgB,aACnB,gBAAyB;EAGxB,MAAM,uBAAuB;AAC3B,OAAI,6BAA8B,QAAO;GAEzC,MAAM,EAAE,MAAM,KAAK,YAAY,GAAG,gBAAgB;AAClD,UAAO;MACL;AAGJ,SAAO,aAAa,cAAqB;GACvC,GAFkB,WAAW,WAAY,aAAqB,OAAO,cAAc;GAGnF,KAAK,UAAU;IAAE,aAAqB;IAAM,YAAoB;IAAK;IAAQ,CAAC;GAC/E,CAAC;IAEJ;EAAC;EAAc;EAA8B;EAAS;EAAU,CACjE;AAID,KAAI,KAAK,SAAS,QAAQ,CAAC,KAAK,OAC9B,QAAO;CAGT,MAAM,eAAe;EACnB,YAAY;EACZ,OAAO;EACP;EACA,SAAS;EACV;AAED,KAAI,aACF,QACE,oBAACA,QAAY,SAAb;EAAqB,QAAQ,SAAS,KAAA;EAAW,GAAI;EAAc,QAAQ;EAAiB,CAAA;AAIhG,QACE,oBAACA,QAAY,SAAb;EAAqB,QAAQ,SAAS,KAAA;EAAW,GAAI;EAAc,KAAK;EACrE;EACmB,CAAA;;AAI1B,eAAe,cAAc"}