{"version":3,"file":"index.cjs","sources":["../../../../../../packages/components/tooltip/style/index.ts"],"sourcesContent":["import type { FullToken, GenerateStyle, UseComponentStyleResult } from '@antdv/theme';\nimport type { Ref } from 'vue';\nimport { genComponentStyleHook, mergeToken, resetComponent } from '@antdv/theme';\nimport { initZoomMotion } from '@antdv/theme/style/motion';\nimport getArrowStyle, { MAX_VERTICAL_CONTENT_RADIUS } from '@antdv/theme/style/placementArrow';\nimport { genPresetColor } from '@antdv/theme/style/presetColor';\n\nexport interface ComponentToken {\n  zIndexPopup: number\n  colorBgDefault: string\n}\n\ninterface TooltipToken extends FullToken<'Tooltip'> {\n  // default variables\n  tooltipMaxWidth: number\n  tooltipColor: string\n  tooltipBg: string\n  tooltipBorderRadius: number\n  tooltipRadiusOuter: number\n}\n\nconst genTooltipStyle: GenerateStyle<TooltipToken> = (token) => {\n  const {\n    componentCls, // ant-tooltip\n    tooltipMaxWidth,\n    tooltipColor,\n    tooltipBg,\n    tooltipBorderRadius,\n    zIndexPopup,\n    controlHeight,\n    boxShadowSecondary,\n    paddingSM,\n    paddingXS,\n    tooltipRadiusOuter,\n  } = token;\n\n  return [\n    {\n      [componentCls]: {\n        ...resetComponent(token),\n        'position': 'absolute',\n        'zIndex': zIndexPopup,\n        'display': 'block',\n        '&': [{ width: 'max-content' }, { width: 'intrinsic' }],\n        'maxWidth': tooltipMaxWidth,\n        'visibility': 'visible',\n        '&-hidden': {\n          display: 'none',\n        },\n\n        '--antd-arrow-background-color': tooltipBg,\n\n        // Wrapper for the tooltip content\n        [`${componentCls}-inner`]: {\n          minWidth: controlHeight,\n          minHeight: controlHeight,\n          padding: `${paddingSM / 2}px ${paddingXS}px`,\n          color: tooltipColor,\n          textAlign: 'start',\n          textDecoration: 'none',\n          wordWrap: 'break-word',\n          backgroundColor: tooltipBg,\n          borderRadius: tooltipBorderRadius,\n          boxShadow: boxShadowSecondary,\n        },\n\n        // Limit left and right placement radius\n        [[\n          '&-placement-left',\n          '&-placement-leftTop',\n          '&-placement-leftBottom',\n          '&-placement-right',\n          '&-placement-rightTop',\n          '&-placement-rightBottom',\n        ].join(',')]: {\n          [`${componentCls}-inner`]: {\n            borderRadius: Math.min(tooltipBorderRadius, MAX_VERTICAL_CONTENT_RADIUS),\n          },\n        },\n\n        [`${componentCls}-content`]: {\n          position: 'relative',\n        },\n\n        // generator for preset color\n        ...genPresetColor(token, (colorKey, { darkColor }) => ({\n          [`&${componentCls}-${colorKey}`]: {\n            [`${componentCls}-inner`]: {\n              backgroundColor: darkColor,\n            },\n            [`${componentCls}-arrow`]: {\n              '--antd-arrow-background-color': darkColor,\n            },\n          },\n        })),\n\n        // RTL\n        '&-rtl': {\n          direction: 'rtl',\n        },\n      },\n    },\n\n    // Arrow Style\n    getArrowStyle<TooltipToken>(\n      mergeToken<TooltipToken>(token, {\n        borderRadiusOuter: tooltipRadiusOuter,\n      }),\n      {\n        colorBg: 'var(--antd-arrow-background-color)',\n        showArrowCls: '',\n        contentRadius: tooltipBorderRadius,\n        limitVerticalRadius: true,\n      },\n    ),\n\n    // Pure Render\n    {\n      [`${componentCls}-pure`]: {\n        position: 'relative',\n        maxWidth: 'none',\n      },\n    },\n  ];\n};\n\n// ============================== Export ==============================\nexport default (prefixCls: Ref<string>, injectStyle: Ref<boolean>): UseComponentStyleResult => {\n  const useOriginHook = genComponentStyleHook(\n    'Tooltip',\n    (token) => {\n      // Popover use Tooltip as internal component. We do not need to handle this.\n      if (injectStyle?.value === false)\n        return [];\n\n      const { borderRadius, colorTextLightSolid, colorBgDefault, borderRadiusOuter } = token;\n\n      const TooltipToken = mergeToken<TooltipToken>(token, {\n        // default variables\n        tooltipMaxWidth: 250,\n        tooltipColor: colorTextLightSolid,\n        tooltipBorderRadius: borderRadius,\n        tooltipBg: colorBgDefault,\n        tooltipRadiusOuter: borderRadiusOuter > 4 ? 4 : borderRadiusOuter,\n      });\n\n      return [\n        genTooltipStyle(TooltipToken),\n        // initShakeMotion(token),\n        initZoomMotion(token, 'zoom-big-fast'),\n      ];\n    },\n    ({ zIndexPopupBase, colorBgSpotlight }) => ({\n      zIndexPopup: zIndexPopupBase + 70,\n      colorBgDefault: colorBgSpotlight,\n    }),\n  );\n\n  return useOriginHook(prefixCls);\n};\n"],"names":["resetComponent","MAX_VERTICAL_CONTENT_RADIUS","genPresetColor","getArrowStyle","mergeToken","genComponentStyleHook","initZoomMotion"],"mappings":"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"}