import '../../../theme/index.mjs';
import '../../../theme/style/motion/index.mjs';
import { genPresetColor } from '../../../theme/style/presetColor.mjs';
import getArrowStyle, { MAX_VERTICAL_CONTENT_RADIUS } from '../../../theme/style/placementArrow.mjs';
import { resetComponent } from '../../../theme/style/index.mjs';
import { merge } from '../../../theme/token/util/statistic.mjs';
import genComponentStyleHook from '../../../theme/token/util/genComponentStyleHook.mjs';
import { initZoomMotion } from '../../../theme/style/motion/zoom.mjs';

const genTooltipStyle = (token) => {
  const {
    componentCls,
    // ant-tooltip
    tooltipMaxWidth,
    tooltipColor,
    tooltipBg,
    tooltipBorderRadius,
    zIndexPopup,
    controlHeight,
    boxShadowSecondary,
    paddingSM,
    paddingXS,
    tooltipRadiusOuter
  } = token;
  return [
    {
      [componentCls]: {
        ...resetComponent(token),
        "position": "absolute",
        "zIndex": zIndexPopup,
        "display": "block",
        "&": [{ width: "max-content" }, { width: "intrinsic" }],
        "maxWidth": tooltipMaxWidth,
        "visibility": "visible",
        "&-hidden": {
          display: "none"
        },
        "--antd-arrow-background-color": tooltipBg,
        // Wrapper for the tooltip content
        [`${componentCls}-inner`]: {
          minWidth: controlHeight,
          minHeight: controlHeight,
          padding: `${paddingSM / 2}px ${paddingXS}px`,
          color: tooltipColor,
          textAlign: "start",
          textDecoration: "none",
          wordWrap: "break-word",
          backgroundColor: tooltipBg,
          borderRadius: tooltipBorderRadius,
          boxShadow: boxShadowSecondary
        },
        // Limit left and right placement radius
        [[
          "&-placement-left",
          "&-placement-leftTop",
          "&-placement-leftBottom",
          "&-placement-right",
          "&-placement-rightTop",
          "&-placement-rightBottom"
        ].join(",")]: {
          [`${componentCls}-inner`]: {
            borderRadius: Math.min(tooltipBorderRadius, MAX_VERTICAL_CONTENT_RADIUS)
          }
        },
        [`${componentCls}-content`]: {
          position: "relative"
        },
        // generator for preset color
        ...genPresetColor(token, (colorKey, { darkColor }) => ({
          [`&${componentCls}-${colorKey}`]: {
            [`${componentCls}-inner`]: {
              backgroundColor: darkColor
            },
            [`${componentCls}-arrow`]: {
              "--antd-arrow-background-color": darkColor
            }
          }
        })),
        // RTL
        "&-rtl": {
          direction: "rtl"
        }
      }
    },
    // Arrow Style
    getArrowStyle(
      merge(token, {
        borderRadiusOuter: tooltipRadiusOuter
      }),
      {
        colorBg: "var(--antd-arrow-background-color)",
        showArrowCls: "",
        contentRadius: tooltipBorderRadius,
        limitVerticalRadius: true
      }
    ),
    // Pure Render
    {
      [`${componentCls}-pure`]: {
        position: "relative",
        maxWidth: "none"
      }
    }
  ];
};
var useStyle = (prefixCls, injectStyle) => {
  const useOriginHook = genComponentStyleHook(
    "Tooltip",
    (token) => {
      if ((injectStyle == null ? void 0 : injectStyle.value) === false)
        return [];
      const { borderRadius, colorTextLightSolid, colorBgDefault, borderRadiusOuter } = token;
      const TooltipToken = merge(token, {
        // default variables
        tooltipMaxWidth: 250,
        tooltipColor: colorTextLightSolid,
        tooltipBorderRadius: borderRadius,
        tooltipBg: colorBgDefault,
        tooltipRadiusOuter: borderRadiusOuter > 4 ? 4 : borderRadiusOuter
      });
      return [genTooltipStyle(TooltipToken), initZoomMotion(token, "zoom-big-fast")];
    },
    ({ zIndexPopupBase, colorBgSpotlight }) => ({
      zIndexPopup: zIndexPopupBase + 70,
      colorBgDefault: colorBgSpotlight
    })
  );
  return useOriginHook(prefixCls);
};

export { useStyle as default };
//# sourceMappingURL=index.mjs.map
