{"version":3,"file":"index.mjs","sources":["../../../../../../packages/components/float-button/style/index.ts"],"sourcesContent":["import type { CSSObject, FullToken, GenerateStyle } from '@antdv/theme';\nimport { genComponentStyleHook, Keyframes, mergeToken, resetComponent } from '@antdv/theme';\nimport { initFadeMotion } from '@antdv/theme/style/motion/fade';\nimport { initMotion } from '@antdv/theme/style/motion/motion';\nimport getOffset from '../src/util';\n\n/** Component only token. Which will handle additional calculation of alias token */\nexport interface ComponentToken {\n  zIndexPopup: number\n}\n\ntype FloatButtonToken = FullToken<'FloatButton'> & {\n  floatButtonColor: string\n  floatButtonBackgroundColor: string\n  floatButtonHoverBackgroundColor: string\n  floatButtonFontSize: number\n  floatButtonSize: number\n  floatButtonIconSize: number\n  floatButtonBodySize: number\n  floatButtonBodyPadding: number\n  badgeOffset: number\n  dotOffsetInCircle: number\n  dotOffsetInSquare: number\n\n  // Position\n  floatButtonInsetBlockEnd: number\n  floatButtonInsetInlineEnd: number\n};\n\nfunction initFloatButtonGroupMotion(token: FloatButtonToken) {\n  const { componentCls, floatButtonSize, motionDurationSlow, motionEaseInOutCirc } = token;\n  const groupPrefixCls = `${componentCls}-group`;\n  const moveDownIn = new Keyframes('antFloatButtonMoveDownIn', {\n    '0%': {\n      transform: `translate3d(0, ${floatButtonSize}px, 0)`,\n      transformOrigin: '0 0',\n      opacity: 0,\n    },\n\n    '100%': {\n      transform: 'translate3d(0, 0, 0)',\n      transformOrigin: '0 0',\n      opacity: 1,\n    },\n  });\n  const moveDownOut = new Keyframes('antFloatButtonMoveDownOut', {\n    '0%': {\n      transform: 'translate3d(0, 0, 0)',\n      transformOrigin: '0 0',\n      opacity: 1,\n    },\n\n    '100%': {\n      transform: `translate3d(0, ${floatButtonSize}px, 0)`,\n      transformOrigin: '0 0',\n      opacity: 0,\n    },\n  });\n\n  return [\n    {\n      [`${groupPrefixCls}-wrap`]: {\n        ...initMotion(`${groupPrefixCls}-wrap`, moveDownIn, moveDownOut, motionDurationSlow, true),\n      },\n    },\n    {\n      [`${groupPrefixCls}-wrap`]: {\n        [`\n          &${groupPrefixCls}-wrap-enter,\n          &${groupPrefixCls}-wrap-appear\n        `]: {\n          opacity: 0,\n          animationTimingFunction: motionEaseInOutCirc,\n        },\n\n        [`&${groupPrefixCls}-wrap-leave`]: {\n          animationTimingFunction: motionEaseInOutCirc,\n        },\n      },\n    },\n  ];\n}\n\n// ============================== Group ==============================\nconst floatButtonGroupStyle: GenerateStyle<FloatButtonToken, CSSObject> = (token) => {\n  const {\n    antCls,\n    componentCls,\n    floatButtonSize,\n    margin,\n    borderRadiusLG,\n    borderRadiusSM,\n    badgeOffset,\n    floatButtonBodyPadding,\n  } = token;\n  const groupPrefixCls = `${componentCls}-group`;\n  return {\n    [groupPrefixCls]: {\n      ...resetComponent(token),\n      zIndex: 99,\n      display: 'block',\n      border: 'none',\n      position: 'fixed',\n      width: floatButtonSize,\n      height: 'auto',\n      boxShadow: 'none',\n      minHeight: floatButtonSize,\n      insetInlineEnd: token.floatButtonInsetInlineEnd,\n      insetBlockEnd: token.floatButtonInsetBlockEnd,\n      borderRadius: borderRadiusLG,\n\n      [`${groupPrefixCls}-wrap`]: {\n        zIndex: -1,\n        display: 'block',\n        position: 'relative',\n        marginBottom: margin,\n      },\n      [`&${groupPrefixCls}-rtl`]: {\n        direction: 'rtl',\n      },\n      [componentCls]: {\n        position: 'static',\n      },\n    },\n    [`${groupPrefixCls}-circle`]: {\n      [`${componentCls}-circle:not(:last-child)`]: {\n        marginBottom: token.margin,\n        [`${componentCls}-body`]: {\n          width: floatButtonSize,\n          height: floatButtonSize,\n          borderRadius: '50%',\n        },\n      },\n    },\n    [`${groupPrefixCls}-square`]: {\n      [`${componentCls}-square`]: {\n        'borderRadius': 0,\n        'padding': 0,\n        '&:first-child': {\n          borderStartStartRadius: borderRadiusLG,\n          borderStartEndRadius: borderRadiusLG,\n        },\n        '&:last-child': {\n          borderEndStartRadius: borderRadiusLG,\n          borderEndEndRadius: borderRadiusLG,\n        },\n        '&:not(:last-child)': {\n          borderBottom: `${token.lineWidth}px ${token.lineType} ${token.colorSplit}`,\n        },\n        [`${antCls}-badge`]: {\n          [`${antCls}-badge-count`]: {\n            top: -(floatButtonBodyPadding + badgeOffset),\n            insetInlineEnd: -(floatButtonBodyPadding + badgeOffset),\n          },\n        },\n      },\n      [`${groupPrefixCls}-wrap`]: {\n        display: 'block',\n        borderRadius: borderRadiusLG,\n        boxShadow: token.boxShadowSecondary,\n        [`${componentCls}-square`]: {\n          'boxShadow': 'none',\n          'marginTop': 0,\n          'borderRadius': 0,\n          'padding': floatButtonBodyPadding,\n          '&:first-child': {\n            borderStartStartRadius: borderRadiusLG,\n            borderStartEndRadius: borderRadiusLG,\n          },\n          '&:last-child': {\n            borderEndStartRadius: borderRadiusLG,\n            borderEndEndRadius: borderRadiusLG,\n          },\n          '&:not(:last-child)': {\n            borderBottom: `${token.lineWidth}px ${token.lineType} ${token.colorSplit}`,\n          },\n          [`${componentCls}-body`]: {\n            width: token.floatButtonBodySize,\n            height: token.floatButtonBodySize,\n          },\n        },\n      },\n    },\n\n    [`${groupPrefixCls}-circle-shadow`]: {\n      boxShadow: 'none',\n    },\n    [`${groupPrefixCls}-square-shadow`]: {\n      boxShadow: token.boxShadowSecondary,\n      [`${componentCls}-square`]: {\n        boxShadow: 'none',\n        padding: floatButtonBodyPadding,\n        [`${componentCls}-body`]: {\n          width: token.floatButtonBodySize,\n          height: token.floatButtonBodySize,\n          borderRadius: borderRadiusSM,\n        },\n      },\n    },\n  };\n};\n\n// ============================== Shared ==============================\nconst sharedFloatButtonStyle: GenerateStyle<FloatButtonToken, CSSObject> = (token) => {\n  const {\n    antCls,\n    componentCls,\n    floatButtonBodyPadding,\n    floatButtonIconSize,\n    floatButtonSize,\n    borderRadiusLG,\n    badgeOffset,\n    dotOffsetInSquare,\n    dotOffsetInCircle,\n  } = token;\n  return {\n    [componentCls]: {\n      ...resetComponent(token),\n      'border': 'none',\n      'position': 'fixed',\n      'cursor': 'pointer',\n      'zIndex': 99,\n      'display': 'block',\n      'justifyContent': 'center',\n      'alignItems': 'center',\n      'width': floatButtonSize,\n      'height': floatButtonSize,\n      'insetInlineEnd': token.floatButtonInsetInlineEnd,\n      'insetBlockEnd': token.floatButtonInsetBlockEnd,\n      'boxShadow': token.boxShadowSecondary,\n\n      // Pure Panel\n      '&-pure': {\n        position: 'relative',\n        inset: 'auto',\n      },\n\n      '&:empty': {\n        display: 'none',\n      },\n      [`${antCls}-badge`]: {\n        width: '100%',\n        height: '100%',\n        [`${antCls}-badge-count`]: {\n          transform: 'translate(0, 0)',\n          transformOrigin: 'center',\n          top: -badgeOffset,\n          insetInlineEnd: -badgeOffset,\n        },\n      },\n      [`${componentCls}-body`]: {\n        width: '100%',\n        height: '100%',\n        display: 'flex',\n        justifyContent: 'center',\n        alignItems: 'center',\n        transition: `all ${token.motionDurationMid}`,\n        [`${componentCls}-content`]: {\n          overflow: 'hidden',\n          textAlign: 'center',\n          minHeight: floatButtonSize,\n          display: 'flex',\n          flexDirection: 'column',\n          justifyContent: 'center',\n          alignItems: 'center',\n          padding: `${floatButtonBodyPadding / 2}px ${floatButtonBodyPadding}px`,\n          [`${componentCls}-icon`]: {\n            textAlign: 'center',\n            margin: 'auto',\n            width: floatButtonIconSize,\n            fontSize: floatButtonIconSize,\n            lineHeight: 1,\n          },\n        },\n      },\n    },\n    [`${componentCls}-rtl`]: {\n      direction: 'rtl',\n    },\n    [`${componentCls}-circle`]: {\n      height: floatButtonSize,\n      borderRadius: '50%',\n      [`${antCls}-badge`]: {\n        [`${antCls}-badge-dot`]: {\n          top: dotOffsetInCircle,\n          insetInlineEnd: dotOffsetInCircle,\n        },\n      },\n      [`${componentCls}-body`]: {\n        borderRadius: '50%',\n      },\n    },\n    [`${componentCls}-square`]: {\n      height: 'auto',\n      minHeight: floatButtonSize,\n      borderRadius: borderRadiusLG,\n      [`${antCls}-badge`]: {\n        [`${antCls}-badge-dot`]: {\n          top: dotOffsetInSquare,\n          insetInlineEnd: dotOffsetInSquare,\n        },\n      },\n      [`${componentCls}-body`]: {\n        height: 'auto',\n        borderRadius: borderRadiusLG,\n      },\n    },\n    [`${componentCls}-default`]: {\n      backgroundColor: token.floatButtonBackgroundColor,\n      transition: `background-color ${token.motionDurationMid}`,\n      [`${componentCls}-body`]: {\n        'backgroundColor': token.floatButtonBackgroundColor,\n        'transition': `background-color ${token.motionDurationMid}`,\n        '&:hover': {\n          backgroundColor: token.colorFillContent,\n        },\n        [`${componentCls}-content`]: {\n          [`${componentCls}-icon`]: {\n            color: token.colorText,\n          },\n          [`${componentCls}-description`]: {\n            display: 'flex',\n            alignItems: 'center',\n            lineHeight: `${token.fontSizeLG}px`,\n            color: token.colorText,\n            fontSize: token.fontSizeSM,\n          },\n        },\n      },\n    },\n    [`${componentCls}-primary`]: {\n      backgroundColor: token.colorPrimary,\n      [`${componentCls}-body`]: {\n        'backgroundColor': token.colorPrimary,\n        'transition': `background-color ${token.motionDurationMid}`,\n        '&:hover': {\n          backgroundColor: token.colorPrimaryHover,\n        },\n        [`${componentCls}-content`]: {\n          [`${componentCls}-icon`]: {\n            color: token.colorTextLightSolid,\n          },\n          [`${componentCls}-description`]: {\n            display: 'flex',\n            alignItems: 'center',\n            lineHeight: `${token.fontSizeLG}px`,\n            color: token.colorTextLightSolid,\n            fontSize: token.fontSizeSM,\n          },\n        },\n      },\n    },\n  };\n};\n\n// ============================== Export ==============================\nexport default genComponentStyleHook<'FloatButton'>('FloatButton', (token) => {\n  const {\n    colorTextLightSolid,\n    colorBgElevated,\n    controlHeightLG,\n    marginXXL,\n    marginLG,\n    fontSize,\n    fontSizeIcon,\n    controlItemBgHover,\n    paddingXXS,\n    borderRadiusLG,\n  } = token;\n  const floatButtonToken = mergeToken<FloatButtonToken>(token, {\n    floatButtonBackgroundColor: colorBgElevated,\n    floatButtonColor: colorTextLightSolid,\n    floatButtonHoverBackgroundColor: controlItemBgHover,\n    floatButtonFontSize: fontSize,\n    floatButtonIconSize: fontSizeIcon * 1.5,\n    floatButtonSize: controlHeightLG,\n\n    floatButtonInsetBlockEnd: marginXXL,\n    floatButtonInsetInlineEnd: marginLG,\n    floatButtonBodySize: controlHeightLG - paddingXXS * 2,\n    // 这里的 paddingXXS 是简写，完整逻辑是 (controlHeightLG - (controlHeightLG - paddingXXS * 2)) / 2,\n    floatButtonBodyPadding: paddingXXS,\n    badgeOffset: paddingXXS * 1.5,\n    dotOffsetInCircle: getOffset(controlHeightLG / 2),\n    dotOffsetInSquare: getOffset(borderRadiusLG),\n  });\n  return [\n    floatButtonGroupStyle(floatButtonToken),\n    sharedFloatButtonStyle(floatButtonToken),\n    initFadeMotion(token),\n    initFloatButtonGroupMotion(floatButtonToken),\n  ];\n});\n"],"names":["Keyframes","mergeToken"],"mappings":"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"}