{"version":3,"file":"index.cjs","sources":["../../../../../../packages/components/button/style/index.ts"],"sourcesContent":["import type { CSSInterpolation, CSSObject, FullToken, GenerateStyle } from '@antdv/theme';\nimport { genComponentStyleHook, genFocusStyle, mergeToken } from '@antdv/theme';\nimport { genCompactItemStyle } from '@antdv/theme/style/compact-item';\nimport { genCompactItemVerticalStyle } from '@antdv/theme/style/compact-item-vertical';\nimport genGroupStyle from './group';\n\n/** Component only token. Which will handle additional calculation of alias token */\nexport interface ComponentToken {}\n\nexport interface ButtonToken extends FullToken<'Button'> {\n  colorOutlineDefault: string\n  buttonPaddingHorizontal: number\n  buttonIconOnlyFontSize: number\n  buttonFontWeight: number\n}\nfunction getColorByStatus(token: ButtonToken, status: 'dangerous' | 'success' | 'warning') {\n  let color = '';\n  let colorHover = '';\n  let colorBorderHover = '';\n  let colorActive = '';\n  let colorOutline = '';\n  let colorBg = '';\n  switch (status) {\n    case 'dangerous':\n      color = token.colorError;\n      colorBorderHover = token.colorErrorBorderHover;\n      colorHover = token.colorErrorHover;\n      colorActive = token.colorErrorActive;\n      colorOutline = token.colorErrorOutline;\n      colorBg = token.colorErrorBg;\n      break;\n    case 'success':\n      color = token.colorSuccess;\n      colorBorderHover = token.colorSuccessBorderHover;\n      colorHover = token.colorSuccessHover;\n      colorActive = token.colorSuccessActive;\n      colorOutline = token.colorSuccessOutline;\n      colorBg = token.colorSuccessBg;\n      break;\n    case 'warning':\n      color = token.colorWarning;\n      colorBorderHover = token.colorWarningBorderHover;\n      colorHover = token.colorWarningHover;\n      colorActive = token.colorWarningActive;\n      colorOutline = token.colorWarningOutline;\n      colorBg = token.colorWarningBg;\n      break;\n  }\n  return { color, colorBorderHover, colorHover, colorActive, colorOutline, colorBg };\n}\n\n// ============================== Shared ==============================\nconst genSharedButtonStyle: GenerateStyle<ButtonToken, CSSObject> = (token): CSSObject => {\n  const { componentCls, iconCls, buttonFontWeight } = token;\n\n  return {\n    [componentCls]: {\n      'outline': 'none',\n      'position': 'relative',\n      'display': 'inline-block',\n      'fontWeight': buttonFontWeight,\n      'whiteSpace': 'nowrap',\n      'textAlign': 'center',\n      'backgroundImage': 'none',\n      'backgroundColor': 'transparent',\n      'border': `${token.lineWidth}px ${token.lineType} transparent`,\n      'cursor': 'pointer',\n      'transition': `all ${token.motionDurationMid} ${token.motionEaseInOut}`,\n      'userSelect': 'none',\n      'touchAction': 'manipulation',\n      'lineHeight': token.lineHeight,\n      'color': token.colorText,\n\n      '&:disabled > *': {\n        pointerEvents: 'none',\n      },\n\n      '> span': {\n        display: 'inline-block',\n      },\n\n      [`${componentCls}-icon`]: {\n        lineHeight: 0,\n      },\n\n      // Leave a space between icon and text.\n      [`> ${iconCls} + span, > span + ${iconCls}`]: {\n        marginInlineStart: token.marginXS,\n      },\n\n      [`&:not(${componentCls}-icon-only) > ${componentCls}-icon`]: {\n        [`&${componentCls}-loading-icon, &:not(:last-child)`]: {\n          marginInlineEnd: token.marginXS,\n        },\n      },\n\n      '> a': {\n        color: 'currentColor',\n      },\n\n      '&:not(:disabled)': {\n        ...genFocusStyle(token),\n      },\n\n      // make `btn-icon-only` not too narrow\n      [`&-icon-only${componentCls}-compact-item`]: {\n        flex: 'none',\n      },\n      // Special styles for Primary Button\n      [`&-compact-item${componentCls}-primary`]: {\n        [`&:not([disabled]) + ${componentCls}-compact-item${componentCls}-primary:not([disabled])`]:\n          {\n            'position': 'relative',\n\n            '&:before': {\n              position: 'absolute',\n              top: -token.lineWidth,\n              insetInlineStart: -token.lineWidth,\n              display: 'inline-block',\n              width: token.lineWidth,\n              height: `calc(100% + ${token.lineWidth * 2}px)`,\n              backgroundColor: token.colorPrimaryHover,\n              content: '\"\"',\n            },\n          },\n      },\n      // Special styles for Primary Button\n      '&-compact-vertical-item': {\n        [`&${componentCls}-primary`]: {\n          [`&:not([disabled]) + ${componentCls}-compact-vertical-item${componentCls}-primary:not([disabled])`]:\n            {\n              'position': 'relative',\n\n              '&:before': {\n                position: 'absolute',\n                top: -token.lineWidth,\n                insetInlineStart: -token.lineWidth,\n                display: 'inline-block',\n                width: `calc(100% + ${token.lineWidth * 2}px)`,\n                height: token.lineWidth,\n                backgroundColor: token.colorPrimaryHover,\n                content: '\"\"',\n              },\n            },\n        },\n      },\n    },\n  };\n};\n\nfunction genHoverActiveButtonStyle(hoverStyle: CSSObject, activeStyle: CSSObject): CSSObject {\n  return {\n    '&:not(:disabled)': {\n      '&:hover': hoverStyle,\n      '&:active': activeStyle,\n    },\n  };\n}\n\n// ============================== Shape ===============================\nconst genCircleButtonStyle: GenerateStyle<ButtonToken, CSSObject> = token => ({\n  minWidth: token.controlHeight,\n  paddingInlineStart: 0,\n  paddingInlineEnd: 0,\n  borderRadius: '50%',\n});\n\nconst genRoundButtonStyle: GenerateStyle<ButtonToken, CSSObject> = token => ({\n  borderRadius: token.controlHeight,\n  paddingInlineStart: token.controlHeight / 2,\n  paddingInlineEnd: token.controlHeight / 2,\n});\n\n// =============================== Type ===============================\nconst genDisabledStyle: GenerateStyle<ButtonToken, CSSObject> = token => ({\n  cursor: 'not-allowed',\n  borderColor: token.colorBorder,\n  color: token.colorTextDisabled,\n  backgroundColor: token.colorBgContainerDisabled,\n  boxShadow: 'none',\n});\n\nfunction genGhostButtonStyle(btnCls: string, textColor: string | false, borderColor: string | false, textColorDisabled: string | false, borderColorDisabled: string | false, hoverStyle?: CSSObject, activeStyle?: CSSObject): CSSObject {\n  return {\n    [`&${btnCls}-background-ghost`]: {\n      'color': textColor || undefined,\n      'backgroundColor': 'transparent',\n      'borderColor': borderColor || undefined,\n      'boxShadow': 'none',\n\n      ...genHoverActiveButtonStyle(\n        {\n          backgroundColor: 'transparent',\n          ...hoverStyle,\n        },\n        {\n          backgroundColor: 'transparent',\n          ...activeStyle,\n        },\n      ),\n\n      '&:disabled': {\n        cursor: 'not-allowed',\n        color: textColorDisabled || undefined,\n        borderColor: borderColorDisabled || undefined,\n      },\n    },\n  };\n}\n\nconst genSolidDisabledButtonStyle: GenerateStyle<ButtonToken, CSSObject> = token => ({\n  '&:disabled': {\n    ...genDisabledStyle(token),\n  },\n});\n\nconst genSolidButtonStyle: GenerateStyle<ButtonToken, CSSObject> = token => ({\n  ...genSolidDisabledButtonStyle(token),\n});\n\nconst genPureDisabledButtonStyle: GenerateStyle<ButtonToken, CSSObject> = token => ({\n  '&:disabled': {\n    cursor: 'not-allowed',\n    color: token.colorTextDisabled,\n  },\n});\n\n// Type: Default\nconst genStatusDefaultStyle: (token: ButtonToken, status: 'dangerous' | 'success' | 'warning') => CSSObject = (token, status) => {\n  const { color, colorHover, colorBorderHover, colorActive } = getColorByStatus(token, status);\n  return {\n    [`&${token.componentCls}-${status}`]: {\n      color,\n      borderColor: color,\n\n      ...genHoverActiveButtonStyle(\n        {\n          color: colorHover,\n          borderColor: colorBorderHover,\n        },\n        {\n          color: colorActive,\n          borderColor: colorActive,\n        },\n      ),\n\n      ...genGhostButtonStyle(\n        token.componentCls,\n        color,\n        color,\n        token.colorTextDisabled,\n        token.colorBorder,\n      ),\n      ...genSolidDisabledButtonStyle(token),\n    },\n  };\n};\nconst genDefaultButtonStyle: GenerateStyle<ButtonToken, CSSObject> = token => ({\n  ...genSolidButtonStyle(token),\n\n  backgroundColor: token.colorBgContainer,\n  borderColor: token.colorBorder,\n\n  boxShadow: `0 ${token.controlOutlineWidth}px 0 ${token.controlTmpOutline}`,\n\n  ...genHoverActiveButtonStyle(\n    {\n      color: token.colorPrimaryHover,\n      borderColor: token.colorPrimaryHover,\n    },\n    {\n      color: token.colorPrimaryActive,\n      borderColor: token.colorPrimaryActive,\n    },\n  ),\n\n  ...genGhostButtonStyle(\n    token.componentCls,\n    token.colorBgContainer,\n    token.colorBgContainer,\n    token.colorTextDisabled,\n    token.colorBorder,\n  ),\n  ...genStatusDefaultStyle(token, 'dangerous'),\n  ...genStatusDefaultStyle(token, 'success'),\n  ...genStatusDefaultStyle(token, 'warning'),\n\n});\n\n// Type: Primary\nconst genStatusPrimaryStyle: (token: ButtonToken, status: 'dangerous' | 'success' | 'warning') => CSSObject = (token, status) => {\n  const { color, colorOutline, colorHover, colorActive } = getColorByStatus(token, status);\n  return {\n    [`&${token.componentCls}-${status}`]: {\n      backgroundColor: color,\n      boxShadow: `0 ${token.controlOutlineWidth}px 0 ${colorOutline}`,\n\n      ...genHoverActiveButtonStyle(\n        {\n          backgroundColor: colorHover,\n        },\n        {\n          backgroundColor: colorActive,\n        },\n      ),\n\n      ...genGhostButtonStyle(\n        token.componentCls,\n        color,\n        color,\n        token.colorTextDisabled,\n        token.colorBorder,\n        {\n          color: colorHover,\n          borderColor: colorHover,\n        },\n        {\n          color: colorActive,\n          borderColor: colorActive,\n        },\n      ),\n      ...genSolidDisabledButtonStyle(token),\n    },\n  };\n};\nconst genPrimaryButtonStyle: GenerateStyle<ButtonToken, CSSObject> = token => ({\n  ...genSolidButtonStyle(token),\n\n  color: token.colorTextLightSolid,\n  backgroundColor: token.colorPrimary,\n\n  boxShadow: `0 ${token.controlOutlineWidth}px 0 ${token.controlOutline}`,\n\n  ...genHoverActiveButtonStyle(\n    {\n      color: token.colorTextLightSolid,\n      backgroundColor: token.colorPrimaryHover,\n    },\n    {\n      color: token.colorTextLightSolid,\n      backgroundColor: token.colorPrimaryActive,\n    },\n  ),\n\n  ...genGhostButtonStyle(\n    token.componentCls,\n    token.colorPrimary,\n    token.colorPrimary,\n    token.colorTextDisabled,\n    token.colorBorder,\n    {\n      color: token.colorPrimaryHover,\n      borderColor: token.colorPrimaryHover,\n    },\n    {\n      color: token.colorPrimaryActive,\n      borderColor: token.colorPrimaryActive,\n    },\n  ),\n  ...genStatusPrimaryStyle(token, 'dangerous'),\n  ...genStatusPrimaryStyle(token, 'success'),\n  ...genStatusPrimaryStyle(token, 'warning'),\n});\n\n// Type: Dashed\nconst genDashedButtonStyle: GenerateStyle<ButtonToken, CSSObject> = token => ({\n  ...genDefaultButtonStyle(token),\n  borderStyle: 'dashed',\n});\n\n// Type: Link\nconst getStatusLinkStyle: (token: ButtonToken, status: 'dangerous' | 'success' | 'warning') => CSSObject = (token, status) => {\n  let colorHover = '';\n  let colorActive = '';\n  let color = '';\n  switch (status) {\n    case 'dangerous':\n      colorHover = token.colorErrorHover;\n      colorActive = token.colorErrorActive;\n      color = token.colorErrorHover;\n      break;\n    case 'success':\n      colorHover = token.colorSuccessHover;\n      colorActive = token.colorSuccessActive;\n      color = token.colorSuccess;\n      break;\n    case 'warning':\n      colorHover = token.colorWarningHover;\n      colorActive = token.colorWarningActive;\n      color = token.colorWarning;\n      break;\n  }\n  return {\n    [`&${token.componentCls}-${status}`]: {\n      color,\n\n      ...genHoverActiveButtonStyle(\n        {\n          color: colorHover,\n        },\n        {\n          color: colorActive,\n        },\n      ),\n\n      ...genPureDisabledButtonStyle(token),\n    },\n  };\n};\n\nconst genLinkButtonStyle: GenerateStyle<ButtonToken, CSSObject> = token => ({\n  color: token.colorLink,\n\n  ...genHoverActiveButtonStyle(\n    {\n      color: token.colorLinkHover,\n    },\n    {\n      color: token.colorLinkActive,\n    },\n  ),\n\n  ...genPureDisabledButtonStyle(token),\n\n  ...getStatusLinkStyle(token, 'dangerous'),\n  ...getStatusLinkStyle(token, 'success'),\n  ...getStatusLinkStyle(token, 'warning'),\n});\n\n// Type: Text\nconst getStatusTextStyle: (token: ButtonToken, status: 'dangerous' | 'success' | 'warning') => CSSObject = (token, status) => {\n  const { color, colorHover, colorBg } = getColorByStatus(token, status);\n\n  return {\n\n    [`&${token.componentCls}-${status}`]: {\n      color,\n\n      ...genPureDisabledButtonStyle(token),\n      ...genHoverActiveButtonStyle(\n        {\n          color: colorHover,\n          backgroundColor: colorBg,\n        },\n        {\n          color: colorHover,\n          backgroundColor: colorBg,\n        },\n      ),\n    },\n  };\n};\nconst genTextButtonStyle: GenerateStyle<ButtonToken, CSSObject> = token => ({\n  ...genHoverActiveButtonStyle(\n    {\n      color: token.colorText,\n      backgroundColor: token.colorBgTextHover,\n    },\n    {\n      color: token.colorText,\n      backgroundColor: token.colorBgTextActive,\n    },\n  ),\n\n  ...genPureDisabledButtonStyle(token),\n\n  ...getStatusTextStyle(token, 'dangerous'),\n  ...getStatusTextStyle(token, 'success'),\n  ...getStatusTextStyle(token, 'warning'),\n});\n\n// Href and Disabled\nconst genDisabledButtonStyle: GenerateStyle<ButtonToken, CSSObject> = token => ({\n  ...genDisabledStyle(token),\n  [`&${token.componentCls}:hover`]: {\n    ...genDisabledStyle(token),\n  },\n});\n\nconst genTypeButtonStyle: GenerateStyle<ButtonToken> = (token) => {\n  const { componentCls } = token;\n\n  return {\n    [`${componentCls}-default`]: genDefaultButtonStyle(token),\n    [`${componentCls}-primary`]: genPrimaryButtonStyle(token),\n    [`${componentCls}-dashed`]: genDashedButtonStyle(token),\n    [`${componentCls}-link`]: genLinkButtonStyle(token),\n    [`${componentCls}-text`]: genTextButtonStyle(token),\n    [`${componentCls}-disabled`]: genDisabledButtonStyle(token),\n  };\n};\n\n// =============================== Size ===============================\nfunction genSizeButtonStyle(token: ButtonToken, sizePrefixCls = ''): CSSInterpolation {\n  const {\n    componentCls,\n    iconCls,\n    controlHeight,\n    fontSize,\n    lineHeight,\n    lineWidth,\n    borderRadius,\n    buttonPaddingHorizontal,\n  } = token;\n\n  const paddingVertical = Math.max(0, (controlHeight - fontSize * lineHeight) / 2 - lineWidth);\n  const paddingHorizontal = buttonPaddingHorizontal - lineWidth;\n\n  const iconOnlyCls = `${componentCls}-icon-only`;\n\n  return [\n    // Size\n    {\n      [`${componentCls}${sizePrefixCls}`]: {\n        fontSize,\n        height: controlHeight,\n        padding: `${paddingVertical}px ${paddingHorizontal}px`,\n        borderRadius,\n\n        [`&${iconOnlyCls}`]: {\n          width: controlHeight,\n          paddingInlineStart: 0,\n          paddingInlineEnd: 0,\n          [`&${componentCls}-round`]: {\n            width: 'auto',\n          },\n          [iconCls]: {\n            fontSize: token.buttonIconOnlyFontSize,\n          },\n        },\n\n        // Loading\n        [`&${componentCls}-loading`]: {\n          opacity: token.opacityLoading,\n          cursor: 'default',\n        },\n\n        [`${componentCls}-loading-icon`]: {\n          transition: `width ${token.motionDurationSlow} ${token.motionEaseInOut}, opacity ${token.motionDurationSlow} ${token.motionEaseInOut}`,\n        },\n\n        [`&:not(${iconOnlyCls}) ${componentCls}-loading-icon > ${iconCls}`]: {\n          marginInlineEnd: token.marginXS,\n        },\n      },\n    },\n\n    // Shape - patch prefixCls again to override solid border radius style\n    {\n      [`${componentCls}${componentCls}-circle${sizePrefixCls}`]: genCircleButtonStyle(token),\n    },\n    {\n      [`${componentCls}${componentCls}-round${sizePrefixCls}`]: genRoundButtonStyle(token),\n    },\n  ];\n}\n\nconst genSizeBaseButtonStyle: GenerateStyle<ButtonToken> = token => genSizeButtonStyle(token);\n\nconst genSizeSmallButtonStyle: GenerateStyle<ButtonToken> = (token) => {\n  const smallToken = mergeToken<ButtonToken>(token, {\n    controlHeight: token.controlHeightSM,\n    padding: token.paddingXS,\n    buttonPaddingHorizontal: 8, // Fixed padding\n    borderRadius: token.borderRadiusSM,\n    buttonIconOnlyFontSize: token.fontSizeLG - 2,\n  });\n\n  return genSizeButtonStyle(smallToken, `${token.componentCls}-sm`);\n};\n\nconst genSizeLargeButtonStyle: GenerateStyle<ButtonToken> = (token) => {\n  const largeToken = mergeToken<ButtonToken>(token, {\n    controlHeight: token.controlHeightLG,\n    fontSize: token.fontSizeLG,\n    borderRadius: token.borderRadiusLG,\n    buttonIconOnlyFontSize: token.fontSizeLG + 2,\n  });\n\n  return genSizeButtonStyle(largeToken, `${token.componentCls}-lg`);\n};\n\nconst genBlockButtonStyle: GenerateStyle<ButtonToken> = (token) => {\n  const { componentCls } = token;\n  return {\n    [componentCls]: {\n      [`&${componentCls}-block`]: {\n        width: '100%',\n      },\n    },\n  };\n};\n\n// ============================== Export ==============================\nexport default genComponentStyleHook('Button', (token) => {\n  const { controlTmpOutline, paddingContentHorizontal } = token;\n\n  const buttonToken = mergeToken<ButtonToken>(token, {\n    colorOutlineDefault: controlTmpOutline,\n    buttonPaddingHorizontal: paddingContentHorizontal,\n    buttonIconOnlyFontSize: token.fontSizeLG,\n    buttonFontWeight: 400,\n  });\n\n  return [\n    // Shared\n    genSharedButtonStyle(buttonToken),\n\n    // Size\n    genSizeSmallButtonStyle(buttonToken),\n    genSizeBaseButtonStyle(buttonToken),\n    genSizeLargeButtonStyle(buttonToken),\n\n    // Block\n    genBlockButtonStyle(buttonToken),\n\n    // Group (type, ghost, danger,warning,success, disabled, loading)\n    genTypeButtonStyle(buttonToken),\n\n    // Button Group\n    genGroupStyle(buttonToken),\n\n    // Space Compact\n    genCompactItemStyle(token),\n    genCompactItemVerticalStyle(token),\n  ];\n});\n"],"names":["genFocusStyle","mergeToken","genComponentStyleHook","genGroupStyle","genCompactItemStyle","genCompactItemVerticalStyle"],"mappings":"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"}