{"version":3,"file":"index.mjs","sources":["../../../../../../packages/components/dropdown/style/index.ts"],"sourcesContent":["import type { FullToken, GenerateStyle } from '@antdv/theme';\nimport { genComponentStyleHook, genFocusStyle, mergeToken, resetComponent, roundedArrow } from '@antdv/theme';\nimport {\n  initMoveMotion,\n  initSlideMotion,\n  initZoomMotion,\n  slideDownIn,\n  slideDownOut,\n  slideUpIn,\n  slideUpOut,\n} from '@antdv/theme/style/motion';\nimport { getArrowOffset } from '@antdv/theme/style/placementArrow';\nimport genButtonStyle from './button';\nimport genStatusStyle from './status';\n\nexport interface ComponentToken {\n  zIndexPopup: number\n}\n\nexport interface DropdownToken extends FullToken<'Dropdown'> {\n  rootPrefixCls: string\n  dropdownArrowDistance: number\n  dropdownArrowOffset: number\n  dropdownPaddingVertical: number\n  dropdownEdgeChildPadding: number\n  menuCls: string\n}\n\n// =============================== Base ===============================\nconst genBaseStyle: GenerateStyle<DropdownToken> = (token) => {\n  const {\n    componentCls,\n    menuCls,\n    zIndexPopup,\n    dropdownArrowDistance,\n    dropdownArrowOffset,\n    sizePopupArrow,\n    antCls,\n    iconCls,\n    motionDurationMid,\n    dropdownPaddingVertical,\n    fontSize,\n    dropdownEdgeChildPadding,\n    colorTextDisabled,\n    fontSizeIcon,\n    controlPaddingHorizontal,\n    colorBgElevated,\n    boxShadowPopoverArrow,\n  } = token;\n\n  return [\n    {\n      [componentCls]: {\n        ...resetComponent(token),\n\n        'position': 'absolute',\n        'top': -9999,\n        'left': {\n          _skip_check_: true,\n          value: -9999,\n        },\n        'zIndex': zIndexPopup,\n        'display': 'block',\n\n        // A placeholder out of dropdown visible range to avoid close when user moving\n        '&::before': {\n          position: 'absolute',\n          insetBlock: -dropdownArrowDistance + sizePopupArrow / 2,\n          // insetInlineStart: -7, // FIXME: Seems not work for hidden element\n          zIndex: -9999,\n          opacity: 0.0001,\n          content: '\"\"',\n        },\n\n        [`${componentCls}-wrap`]: {\n          position: 'relative',\n\n          [`${antCls}-btn > ${iconCls}-down`]: {\n            fontSize: fontSizeIcon,\n          },\n\n          [`${iconCls}-down::before`]: {\n            transition: `transform ${motionDurationMid}`,\n          },\n        },\n\n        [`${componentCls}-wrap-open`]: {\n          [`${iconCls}-down::before`]: {\n            transform: 'rotate(180deg)',\n          },\n        },\n\n        [`\n        &-hidden,\n        &-menu-hidden,\n        &-menu-submenu-hidden\n      `]: {\n          display: 'none',\n        },\n\n        // =============================================================\n        // ==                          Arrow                          ==\n        // =============================================================\n        // Offset the popover to account for the dropdown arrow\n        [`\n        &-show-arrow${componentCls}-placement-topLeft,\n        &-show-arrow${componentCls}-placement-top,\n        &-show-arrow${componentCls}-placement-topRight\n      `]: {\n          paddingBottom: dropdownArrowDistance,\n        },\n\n        [`\n        &-show-arrow${componentCls}-placement-bottomLeft,\n        &-show-arrow${componentCls}-placement-bottom,\n        &-show-arrow${componentCls}-placement-bottomRight\n      `]: {\n          paddingTop: dropdownArrowDistance,\n        },\n\n        // Note: .popover-arrow is outer, .popover-arrow:after is inner\n        [`${componentCls}-arrow`]: {\n          position: 'absolute',\n          zIndex: 1, // lift it up so the menu wouldn't cask shadow on it\n          display: 'block',\n\n          ...roundedArrow(\n            sizePopupArrow,\n            token.borderRadiusXS,\n            token.borderRadiusOuter,\n            colorBgElevated,\n            boxShadowPopoverArrow,\n          ),\n        },\n\n        [`\n        &-placement-top > ${componentCls}-arrow,\n        &-placement-topLeft > ${componentCls}-arrow,\n        &-placement-topRight > ${componentCls}-arrow\n      `]: {\n          bottom: dropdownArrowDistance,\n          transform: 'translateY(100%) rotate(180deg)',\n        },\n\n        [`&-placement-top > ${componentCls}-arrow`]: {\n          left: {\n            _skip_check_: true,\n            value: '50%',\n          },\n          transform: 'translateX(-50%) translateY(100%) rotate(180deg)',\n        },\n\n        [`&-placement-topLeft > ${componentCls}-arrow`]: {\n          left: {\n            _skip_check_: true,\n            value: dropdownArrowOffset,\n          },\n        },\n\n        [`&-placement-topRight > ${componentCls}-arrow`]: {\n          right: {\n            _skip_check_: true,\n            value: dropdownArrowOffset,\n          },\n        },\n\n        [`\n          &-placement-bottom > ${componentCls}-arrow,\n          &-placement-bottomLeft > ${componentCls}-arrow,\n          &-placement-bottomRight > ${componentCls}-arrow\n        `]: {\n          top: dropdownArrowDistance,\n          transform: 'translateY(-100%)',\n        },\n\n        [`&-placement-bottom > ${componentCls}-arrow`]: {\n          left: {\n            _skip_check_: true,\n            value: '50%',\n          },\n          transform: 'translateY(-100%) translateX(-50%)',\n        },\n\n        [`&-placement-bottomLeft > ${componentCls}-arrow`]: {\n          left: {\n            _skip_check_: true,\n            value: dropdownArrowOffset,\n          },\n        },\n\n        [`&-placement-bottomRight > ${componentCls}-arrow`]: {\n          right: {\n            _skip_check_: true,\n            value: dropdownArrowOffset,\n          },\n        },\n\n        // =============================================================\n        // ==                         Motion                          ==\n        // =============================================================\n        // When position is not enough for dropdown, the placement will revert.\n        // We will handle this with revert motion name.\n        [`&${antCls}-slide-down-enter${antCls}-slide-down-enter-active${componentCls}-placement-bottomLeft,\n          &${antCls}-slide-down-appear${antCls}-slide-down-appear-active${componentCls}-placement-bottomLeft,\n          &${antCls}-slide-down-enter${antCls}-slide-down-enter-active${componentCls}-placement-bottom,\n          &${antCls}-slide-down-appear${antCls}-slide-down-appear-active${componentCls}-placement-bottom,\n          &${antCls}-slide-down-enter${antCls}-slide-down-enter-active${componentCls}-placement-bottomRight,\n          &${antCls}-slide-down-appear${antCls}-slide-down-appear-active${componentCls}-placement-bottomRight`]:\n          {\n            animationName: slideUpIn,\n          },\n\n        [`&${antCls}-slide-up-enter${antCls}-slide-up-enter-active${componentCls}-placement-topLeft,\n          &${antCls}-slide-up-appear${antCls}-slide-up-appear-active${componentCls}-placement-topLeft,\n          &${antCls}-slide-up-enter${antCls}-slide-up-enter-active${componentCls}-placement-top,\n          &${antCls}-slide-up-appear${antCls}-slide-up-appear-active${componentCls}-placement-top,\n          &${antCls}-slide-up-enter${antCls}-slide-up-enter-active${componentCls}-placement-topRight,\n          &${antCls}-slide-up-appear${antCls}-slide-up-appear-active${componentCls}-placement-topRight`]:\n          {\n            animationName: slideDownIn,\n          },\n\n        [`&${antCls}-slide-down-leave${antCls}-slide-down-leave-active${componentCls}-placement-bottomLeft,\n          &${antCls}-slide-down-leave${antCls}-slide-down-leave-active${componentCls}-placement-bottom,\n          &${antCls}-slide-down-leave${antCls}-slide-down-leave-active${componentCls}-placement-bottomRight`]:\n          {\n            animationName: slideUpOut,\n          },\n\n        [`&${antCls}-slide-up-leave${antCls}-slide-up-leave-active${componentCls}-placement-topLeft,\n          &${antCls}-slide-up-leave${antCls}-slide-up-leave-active${componentCls}-placement-top,\n          &${antCls}-slide-up-leave${antCls}-slide-up-leave-active${componentCls}-placement-topRight`]:\n          {\n            animationName: slideDownOut,\n          },\n      },\n    },\n\n    {\n      // =============================================================\n      // ==                          Menu                           ==\n      // =============================================================\n      [`${componentCls} ${menuCls}`]: {\n        position: 'relative',\n        margin: 0,\n      },\n\n      [`${menuCls}-submenu-popup`]: {\n        'position': 'absolute',\n        'zIndex': zIndexPopup,\n        'background': 'transparent',\n        'boxShadow': 'none',\n        'transformOrigin': '0 0',\n\n        'ul,li': {\n          listStyle: 'none',\n        },\n\n        'ul': {\n          marginInline: '0.3em',\n        },\n      },\n\n      [`${componentCls}, ${componentCls}-menu-submenu`]: {\n        [menuCls]: {\n          padding: dropdownEdgeChildPadding,\n          listStyleType: 'none',\n          backgroundColor: colorBgElevated,\n          backgroundClip: 'padding-box',\n          borderRadius: token.borderRadiusLG,\n          outline: 'none',\n          boxShadow: token.boxShadowSecondary,\n          ...genFocusStyle(token),\n\n          [`${menuCls}-item-group-title`]: {\n            padding: `${dropdownPaddingVertical}px ${controlPaddingHorizontal}px`,\n            color: token.colorTextDescription,\n            transition: `all ${motionDurationMid}`,\n          },\n\n          // ======================= Item Content =======================\n          [`${menuCls}-item`]: {\n            position: 'relative',\n            display: 'flex',\n            alignItems: 'center',\n            borderRadius: token.borderRadiusSM,\n          },\n\n          [`${menuCls}-item-icon`]: {\n            minWidth: fontSize,\n            marginInlineEnd: token.marginXS,\n            fontSize: token.fontSizeSM,\n          },\n\n          [`${menuCls}-title-content`]: {\n            'flex': 'auto',\n\n            '> a': {\n              'color': 'inherit',\n              'transition': `all ${motionDurationMid}`,\n\n              '&:hover': {\n                color: 'inherit',\n              },\n\n              '&::after': {\n                position: 'absolute',\n                inset: 0,\n                content: '\"\"',\n              },\n            },\n          },\n\n          // =========================== Item ===========================\n          [`${menuCls}-item, ${menuCls}-submenu-title`]: {\n            'clear': 'both',\n            'margin': 0,\n            'padding': `${dropdownPaddingVertical}px ${controlPaddingHorizontal}px`,\n            'color': token.colorText,\n            'fontWeight': 'normal',\n            fontSize,\n            'lineHeight': token.lineHeight,\n            'cursor': 'pointer',\n            'transition': `all ${motionDurationMid}`,\n\n            '&:hover, &-active': {\n              backgroundColor: token.controlItemBgHover,\n            },\n\n            ...genFocusStyle(token),\n\n            '&-selected': {\n              'color': token.colorPrimary,\n              'backgroundColor': token.controlItemBgActive,\n              '&:hover, &-active': {\n                backgroundColor: token.controlItemBgActiveHover,\n              },\n            },\n\n            '&-disabled': {\n              'color': colorTextDisabled,\n              'cursor': 'not-allowed',\n\n              '&:hover': {\n                color: colorTextDisabled,\n                backgroundColor: colorBgElevated,\n                cursor: 'not-allowed',\n              },\n\n              'a': {\n                pointerEvents: 'none',\n              },\n            },\n\n            '&-divider': {\n              height: 1, // By design\n              margin: `${token.marginXXS}px 0`,\n              overflow: 'hidden',\n              lineHeight: 0,\n              backgroundColor: token.colorSplit,\n            },\n\n            [`${componentCls}-menu-submenu-expand-icon`]: {\n              position: 'absolute',\n              insetInlineEnd: token.paddingXS,\n\n              [`${componentCls}-menu-submenu-arrow-icon`]: {\n                marginInlineEnd: '0 !important',\n                color: token.colorTextDescription,\n                fontSize: fontSizeIcon,\n                fontStyle: 'normal',\n              },\n            },\n          },\n\n          [`${menuCls}-item-group-list`]: {\n            margin: `0 ${token.marginXS}px`,\n            padding: 0,\n            listStyle: 'none',\n          },\n\n          [`${menuCls}-submenu-title`]: {\n            paddingInlineEnd: controlPaddingHorizontal + token.fontSizeSM,\n          },\n\n          [`${menuCls}-submenu-vertical`]: {\n            position: 'relative',\n          },\n\n          [`${menuCls}-submenu${menuCls}-submenu-disabled ${componentCls}-menu-submenu-title`]: {\n            [`&, ${componentCls}-menu-submenu-arrow-icon`]: {\n              color: colorTextDisabled,\n              backgroundColor: colorBgElevated,\n              cursor: 'not-allowed',\n            },\n          },\n\n          // https://github.com/ant-design/ant-design/issues/19264\n          [`${menuCls}-submenu-selected ${componentCls}-menu-submenu-title`]: {\n            color: token.colorPrimary,\n          },\n        },\n      },\n    },\n\n    // Follow code may reuse in other components\n    [\n      initSlideMotion(token, 'slide-up'),\n      initSlideMotion(token, 'slide-down'),\n      initMoveMotion(token, 'move-up'),\n      initMoveMotion(token, 'move-down'),\n      initZoomMotion(token, 'zoom-big'),\n    ],\n  ];\n};\n\n// ============================== Export ==============================\nexport default genComponentStyleHook(\n  'Dropdown',\n  (token, { rootPrefixCls }) => {\n    const {\n      marginXXS,\n      sizePopupArrow,\n      controlHeight,\n      fontSize,\n      lineHeight,\n      paddingXXS,\n      componentCls,\n      borderRadiusOuter,\n      borderRadiusLG,\n    } = token;\n\n    const dropdownPaddingVertical = (controlHeight - fontSize * lineHeight) / 2;\n    const { dropdownArrowOffset } = getArrowOffset({\n      sizePopupArrow,\n      contentRadius: borderRadiusLG,\n      borderRadiusOuter,\n    });\n\n    const dropdownToken = mergeToken<DropdownToken>(token, {\n      menuCls: `${componentCls}-menu`,\n      rootPrefixCls,\n      dropdownArrowDistance: sizePopupArrow / 2 + marginXXS,\n      dropdownArrowOffset,\n      dropdownPaddingVertical,\n      dropdownEdgeChildPadding: paddingXXS,\n    });\n    return [\n      genBaseStyle(dropdownToken),\n      genButtonStyle(dropdownToken),\n      genStatusStyle(dropdownToken),\n    ];\n  },\n  token => ({\n    zIndexPopup: token.zIndexPopupBase + 50,\n  }),\n);\n"],"names":["mergeToken"],"mappings":"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"}