{"version":3,"file":"TooltipGroup.mjs","names":["BaseTooltip"],"sources":["../../src/Tooltip/TooltipGroup.tsx"],"sourcesContent":["'use client';\n\nimport { Tooltip as BaseTooltip } from '@base-ui/react/tooltip';\nimport { cx } from 'antd-style';\nimport { type FC, useCallback, useRef, useState } from 'react';\n\nimport { useFloatingLayer } from '@/hooks/useFloatingLayer';\nimport { useAppElement } from '@/ThemeProvider';\nimport {\n  useDestroyOnInvalidActiveTriggerElement,\n  useHidePopupWhenPositionerAtOrigin,\n} from '@/utils/destroyOnInvalidActiveTriggerElement';\nimport { placementMap } from '@/utils/placement';\n\nimport { TooltipArrowIcon } from './ArrowIcon';\nimport {\n  TooltipGroupHandleContext,\n  type TooltipGroupItem,\n  TooltipGroupPropsContext,\n} from './groupContext';\nimport { styles } from './style';\nimport TooltipContent from './TooltipContent';\nimport { type TooltipGroupProps } from './type';\n\nconst TooltipGroup: FC<TooltipGroupProps> = ({\n  children,\n  disableDestroyOnInvalidTrigger = false,\n  disableZeroOriginGuard = false,\n  layoutAnimation = false,\n  popupContainer,\n  ...sharedProps\n}) => {\n  const [{ handle, key }, setHandleState] = useState(() => ({\n    handle: BaseTooltip.createHandle<TooltipGroupItem>(),\n    key: 0,\n  }));\n  const activeItemRef = useRef<TooltipGroupItem | null>(null);\n\n  const destroy = useCallback(() => {\n    activeItemRef.current = null;\n    setHandleState(({ key }) => ({\n      handle: BaseTooltip.createHandle<TooltipGroupItem>(),\n      key: key + 1,\n    }));\n  }, []);\n\n  const handleOpenChange = useCallback((open: boolean) => {\n    activeItemRef.current?.onOpenChange?.(open);\n  }, []);\n\n  const appElement = useAppElement();\n  const floatingLayerContainer = useFloatingLayer();\n  const portalContainer = floatingLayerContainer ?? appElement;\n\n  useDestroyOnInvalidActiveTriggerElement(handle.store, destroy, {\n    enabled: !disableDestroyOnInvalidTrigger,\n  });\n  useHidePopupWhenPositionerAtOrigin(handle.store, { enabled: !disableZeroOriginGuard });\n\n  return (\n    <TooltipGroupHandleContext value={handle}>\n      <TooltipGroupPropsContext value={sharedProps}>\n        {children}\n\n        <BaseTooltip.Root handle={handle} key={key} onOpenChange={handleOpenChange}>\n          {({ payload }) => {\n            const item = (payload as TooltipGroupItem | null) ?? null;\n            activeItemRef.current = item;\n\n            if (!item || (item.title == null && !item.hotkey)) return null;\n\n            const arrow = item.arrow ?? false;\n            const placement = item.placement ?? 'top';\n            const placementConfig = placementMap[placement] ?? placementMap.top;\n            const baseSideOffset = arrow ? 8 : 6;\n\n            const resolvedClassNames = {\n              arrow: cx(styles.arrow, item.classNames?.arrow),\n              popup: cx(\n                styles.popup,\n                item.className,\n                item.classNames?.root,\n                item.classNames?.container,\n              ),\n              positioner: styles.positioner,\n              viewport: cx(styles.viewport, item.classNames?.content),\n            };\n\n            const resolvedStyleProps = (() => {\n              if (typeof item.styles === 'function') return undefined;\n              return item.styles;\n            })();\n\n            const resolvedStyles = {\n              arrow: resolvedStyleProps?.arrow,\n              popup: {\n                ...resolvedStyleProps?.root,\n                ...resolvedStyleProps?.container,\n              },\n              positioner: {\n                zIndex: item.zIndex ?? 114_514,\n              },\n              viewport: resolvedStyleProps?.content,\n            };\n\n            const body = layoutAnimation ? (\n              <BaseTooltip.Viewport\n                className={resolvedClassNames.viewport}\n                style={resolvedStyles.viewport}\n              >\n                <TooltipContent\n                  hotkey={item.hotkey}\n                  hotkeyProps={item.hotkeyProps}\n                  title={item.title}\n                />\n              </BaseTooltip.Viewport>\n            ) : (\n              <div className={resolvedClassNames.viewport} style={resolvedStyles.viewport}>\n                <TooltipContent\n                  hotkey={item.hotkey}\n                  hotkeyProps={item.hotkeyProps}\n                  title={item.title}\n                />\n              </div>\n            );\n\n            const popup = (\n              <BaseTooltip.Positioner\n                align={placementConfig.align}\n                className={resolvedClassNames.positioner}\n                data-layout-animation={layoutAnimation || undefined}\n                data-placement={placement}\n                side={placementConfig.side}\n                sideOffset={baseSideOffset}\n                style={resolvedStyles.positioner}\n                {...item.positionerProps}\n              >\n                <BaseTooltip.Popup\n                  className={resolvedClassNames.popup}\n                  data-layout-animation={layoutAnimation || undefined}\n                  style={resolvedStyles.popup}\n                  {...item.popupProps}\n                >\n                  {arrow && (\n                    <BaseTooltip.Arrow\n                      className={resolvedClassNames.arrow}\n                      style={resolvedStyles.arrow}\n                    >\n                      {TooltipArrowIcon}\n                    </BaseTooltip.Arrow>\n                  )}\n                  {body}\n                </BaseTooltip.Popup>\n              </BaseTooltip.Positioner>\n            );\n\n            const resolvedPortalContainer =\n              item.popupContainer ?? popupContainer ?? portalContainer;\n\n            return resolvedPortalContainer ? (\n              <BaseTooltip.Portal container={resolvedPortalContainer}>{popup}</BaseTooltip.Portal>\n            ) : null;\n          }}\n        </BaseTooltip.Root>\n      </TooltipGroupPropsContext>\n    </TooltipGroupHandleContext>\n  );\n};\n\nTooltipGroup.displayName = 'TooltipGroup';\n\nexport default TooltipGroup;\n"],"mappings":"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"}