{"version":3,"file":"index.mjs","sources":["../../../../../../packages/components/menu/style/index.ts"],"sourcesContent":["import type { CSSObject, FullToken, GenerateStyle, UseComponentStyleResult } from '@antdv/theme';\nimport type { Ref } from 'vue';\nimport { clearFix, genComponentStyleHook, mergeToken, resetComponent, resetIcon } from '@antdv/theme';\nimport { genCollapseMotion, initSlideMotion, initZoomMotion } from '@antdv/theme/style/motion';\nimport { TinyColor } from '@ctrl/tinycolor';\nimport getHorizontalStyle from './horizontal';\nimport getRTLStyle from './rtl';\nimport getThemeStyle from './theme';\nimport getVerticalStyle from './vertical';\n\n/** Component only token. Which will handle additional calculation of alias token */\nexport interface ComponentToken {\n  dropdownWidth: number\n  zIndexPopup: number\n\n  // Group\n  colorGroupTitle: string\n\n  // radius\n  radiusItem: number\n  radiusSubMenuItem: number\n\n  // Item Text\n  // > Default\n  colorItemText: string\n  colorItemTextHover: string\n  colorItemTextHoverHorizontal: string\n  colorItemTextSelected: string\n  colorItemTextSelectedHorizontal: string\n\n  // > Disabled\n  colorItemTextDisabled: string\n\n  // > Danger\n  colorDangerItemText: string\n  colorDangerItemTextHover: string\n  colorDangerItemTextSelected: string\n  colorDangerItemBgActive: string\n  colorDangerItemBgSelected: string\n\n  // Item Bg\n  colorItemBg: string\n  colorItemBgHover: string\n  colorSubItemBg: string\n\n  // > Default\n  colorItemBgActive: string\n  colorItemBgSelected: string\n  colorItemBgSelectedHorizontal: string\n\n  // Ink Bar\n  colorActiveBarWidth: number\n  colorActiveBarHeight: number\n  colorActiveBarBorderSize: number\n\n  itemMarginInline: number\n}\n\nexport interface MenuToken extends FullToken<'Menu'> {\n  menuItemHeight: number\n  menuHorizontalHeight: number\n  menuItemPaddingInline: number\n  menuArrowSize: number\n  menuArrowOffset: string\n  menuPanelMaskInset: number\n  menuSubMenuBg: string\n}\n\nfunction genMenuItemStyle(token: MenuToken): CSSObject {\n  const {\n    componentCls,\n    fontSize,\n    motionDurationSlow,\n    motionDurationMid,\n    motionEaseInOut,\n    motionEaseOut,\n    iconCls,\n    controlHeightSM,\n  } = token;\n\n  return {\n    // >>>>> Item\n    [`${componentCls}-item, ${componentCls}-submenu-title`]: {\n      position: 'relative',\n      display: 'block',\n      margin: 0,\n      whiteSpace: 'nowrap',\n      cursor: 'pointer',\n      transition: [\n        `border-color ${motionDurationSlow}`,\n        `background ${motionDurationSlow}`,\n        `padding ${motionDurationSlow} ${motionEaseInOut}`,\n      ].join(','),\n\n      [`${componentCls}-item-icon, ${iconCls}`]: {\n        'minWidth': fontSize,\n        fontSize,\n        'transition': [\n          `font-size ${motionDurationMid} ${motionEaseOut}`,\n          `margin ${motionDurationSlow} ${motionEaseInOut}`,\n          `color ${motionDurationSlow}`,\n        ].join(','),\n\n        '+ span': {\n          marginInlineStart: controlHeightSM - fontSize,\n          opacity: 1,\n          transition: [\n            `opacity ${motionDurationSlow} ${motionEaseInOut}`,\n            `margin ${motionDurationSlow}`,\n            `color ${motionDurationSlow}`,\n          ].join(','),\n        },\n      },\n\n      [`${componentCls}-item-icon`]: {\n        ...resetIcon(),\n      },\n\n      [`&${componentCls}-item-only-child`]: {\n        [`> ${iconCls}, > ${componentCls}-item-icon`]: {\n          marginInlineEnd: 0,\n        },\n      },\n    },\n\n    // Disabled state sets text to gray and nukes hover/tab effects\n    [`${componentCls}-item-disabled, ${componentCls}-submenu-disabled`]: {\n      'background': 'none !important',\n      'cursor': 'not-allowed',\n\n      '&::after': {\n        borderColor: 'transparent !important',\n      },\n\n      'a': {\n        color: 'inherit !important',\n      },\n\n      [`> ${componentCls}-submenu-title`]: {\n        color: 'inherit !important',\n        cursor: 'not-allowed',\n      },\n    },\n  };\n}\n\nfunction genSubMenuArrowStyle(token: MenuToken): CSSObject {\n  const {\n    componentCls,\n    motionDurationSlow,\n    motionEaseInOut,\n    borderRadius,\n    menuArrowSize,\n    menuArrowOffset,\n  } = token;\n\n  return {\n    [`${componentCls}-submenu`]: {\n      '&-expand-icon, &-arrow': {\n        position: 'absolute',\n        top: '50%',\n        insetInlineEnd: token.margin,\n        width: menuArrowSize,\n        color: 'currentcolor',\n        transform: 'translateY(-50%)',\n        transition: `transform ${motionDurationSlow} ${motionEaseInOut}, opacity ${motionDurationSlow}`,\n      },\n\n      '&-arrow': {\n        // →\n        '&::before, &::after': {\n          position: 'absolute',\n          width: menuArrowSize * 0.6,\n          height: menuArrowSize * 0.15,\n          backgroundColor: 'currentcolor',\n          borderRadius,\n          transition: [\n            `background ${motionDurationSlow} ${motionEaseInOut}`,\n            `transform ${motionDurationSlow} ${motionEaseInOut}`,\n            `top ${motionDurationSlow} ${motionEaseInOut}`,\n            `color ${motionDurationSlow} ${motionEaseInOut}`,\n          ].join(','),\n          content: '\"\"',\n        },\n\n        '&::before': {\n          transform: `rotate(45deg) translateY(-${menuArrowOffset})`,\n        },\n\n        '&::after': {\n          transform: `rotate(-45deg) translateY(${menuArrowOffset})`,\n        },\n      },\n    },\n  };\n}\n\n// =============================== Base ===============================\nconst getBaseStyle: GenerateStyle<MenuToken> = (token) => {\n  const {\n    antCls,\n    componentCls,\n    fontSize,\n    motionDurationSlow,\n    motionDurationMid,\n    motionEaseInOut,\n    lineHeight,\n    paddingXS,\n    padding,\n    colorSplit,\n    lineWidth,\n    zIndexPopup,\n    borderRadiusLG,\n    radiusSubMenuItem,\n    menuArrowSize,\n    menuArrowOffset,\n    lineType,\n    menuPanelMaskInset,\n  } = token;\n\n  return [\n    // Misc\n    {\n      '': {\n        [`${componentCls}`]: {\n          ...clearFix(),\n\n          // Hidden\n          '&-hidden': {\n            display: 'none',\n          },\n        },\n      },\n      [`${componentCls}-submenu-hidden`]: {\n        display: 'none',\n      },\n    },\n    {\n      [componentCls]: {\n        ...resetComponent(token),\n        ...clearFix(),\n\n        'marginBottom': 0,\n        'paddingInlineStart': 0, // Override default ul/ol\n        fontSize,\n        'lineHeight': 0, // Fix display inline-block gap\n        'listStyle': 'none',\n        'outline': 'none',\n        'transition': `width ${motionDurationSlow} cubic-bezier(0.2, 0, 0, 1) 0s`,\n\n        'ul, ol': {\n          margin: 0,\n          padding: 0,\n          listStyle: 'none',\n        },\n\n        // Overflow ellipsis\n        '&-overflow': {\n          display: 'flex',\n\n          [`${componentCls}-item`]: {\n            flex: 'none',\n          },\n        },\n        [`${componentCls}-item, ${componentCls}-submenu, ${componentCls}-submenu-title`]: {\n          borderRadius: token.radiusItem,\n        },\n\n        [`${componentCls}-item-group-title`]: {\n          padding: `${paddingXS}px ${padding}px`,\n          fontSize,\n          lineHeight,\n          transition: `all ${motionDurationSlow}`,\n        },\n\n        [`&-horizontal ${componentCls}-submenu`]: {\n          transition: [\n            `border-color ${motionDurationSlow} ${motionEaseInOut}`,\n            `background ${motionDurationSlow} ${motionEaseInOut}`,\n          ].join(','),\n        },\n\n        [`${componentCls}-submenu, ${componentCls}-submenu-inline`]: {\n          transition: [\n            `border-color ${motionDurationSlow} ${motionEaseInOut}`,\n            `background ${motionDurationSlow} ${motionEaseInOut}`,\n            `padding ${motionDurationMid} ${motionEaseInOut}`,\n          ].join(','),\n        },\n\n        [`${componentCls}-submenu ${componentCls}-sub`]: {\n          cursor: 'initial',\n          transition: [\n            `background ${motionDurationSlow} ${motionEaseInOut}`,\n            `padding ${motionDurationSlow} ${motionEaseInOut}`,\n          ].join(','),\n        },\n\n        [`${componentCls}-title-content`]: {\n          transition: `color ${motionDurationSlow}`,\n        },\n\n        [`${componentCls}-item a`]: {\n          '&::before': {\n            position: 'absolute',\n            inset: 0,\n            backgroundColor: 'transparent',\n            content: '\"\"',\n          },\n        },\n\n        // Removed a Badge related style seems it's safe\n        // https://github.com/ant-design/ant-design/issues/19809\n\n        // >>>>> Divider\n        [`${componentCls}-item-divider`]: {\n          'overflow': 'hidden',\n          'lineHeight': 0,\n          'borderColor': colorSplit,\n          'borderStyle': lineType,\n          'borderWidth': 0,\n          'borderTopWidth': lineWidth,\n          'marginBlock': lineWidth,\n          'padding': 0,\n\n          '&-dashed': {\n            borderStyle: 'dashed',\n          },\n        },\n\n        // Item\n        ...genMenuItemStyle(token),\n\n        [`${componentCls}-item-group`]: {\n          [`${componentCls}-item-group-list`]: {\n            margin: 0,\n            padding: 0,\n\n            [`${componentCls}-item, ${componentCls}-submenu-title`]: {\n              paddingInline: `${fontSize * 2}px ${padding}px`,\n            },\n          },\n        },\n\n        // ======================= Sub Menu =======================\n        '&-submenu': {\n          '&-popup': {\n            'position': 'absolute',\n            'zIndex': zIndexPopup,\n            'background': 'transparent',\n            'borderRadius': borderRadiusLG,\n            'boxShadow': 'none',\n            'transformOrigin': '0 0',\n\n            // https://github.com/ant-design/ant-design/issues/13955\n            '&::before': {\n              position: 'absolute',\n              inset: `${menuPanelMaskInset}px 0 0`,\n              zIndex: -1,\n              width: '100%',\n              height: '100%',\n              opacity: 0,\n              content: '\"\"',\n            },\n          },\n\n          // https://github.com/ant-design/ant-design/issues/13955\n          '&-placement-rightTop::before': {\n            top: 0,\n            insetInlineStart: menuPanelMaskInset,\n          },\n\n          [`> ${componentCls}`]: {\n            borderRadius: borderRadiusLG,\n\n            ...genMenuItemStyle(token),\n            ...genSubMenuArrowStyle(token),\n\n            [`${componentCls}-item, ${componentCls}-submenu > ${componentCls}-submenu-title`]: {\n              borderRadius: radiusSubMenuItem,\n            },\n\n            [`${componentCls}-submenu-title::after`]: {\n              transition: `transform ${motionDurationSlow} ${motionEaseInOut}`,\n            },\n          },\n        },\n\n        ...genSubMenuArrowStyle(token),\n\n        [`&-inline-collapsed ${componentCls}-submenu-arrow,\n        &-inline ${componentCls}-submenu-arrow`]: {\n          // ↓\n          '&::before': {\n            transform: `rotate(-45deg) translateX(${menuArrowOffset})`,\n          },\n\n          '&::after': {\n            transform: `rotate(45deg) translateX(-${menuArrowOffset})`,\n          },\n        },\n\n        [`${componentCls}-submenu-open${componentCls}-submenu-inline > ${componentCls}-submenu-title > ${componentCls}-submenu-arrow`]:\n          {\n            // ↑\n            'transform': `translateY(-${menuArrowSize * 0.2}px)`,\n\n            '&::after': {\n              transform: `rotate(-45deg) translateX(-${menuArrowOffset})`,\n            },\n\n            '&::before': {\n              transform: `rotate(45deg) translateX(${menuArrowOffset})`,\n            },\n          },\n      },\n    },\n\n    // Integration with header element so menu items have the same height\n    {\n      [`${antCls}-layout-header`]: {\n        [componentCls]: {\n          lineHeight: 'inherit',\n        },\n      },\n    },\n  ];\n};\n\n// ============================== Export ==============================\nexport default (prefixCls: Ref<string>, injectStyle?: Ref<boolean>): UseComponentStyleResult => {\n  const useOriginHook = genComponentStyleHook(\n    'Menu',\n    (token, { overrideComponentToken }) => {\n      // Dropdown will handle menu style self. We do not need to handle this.\n      if (injectStyle?.value === false)\n        return [];\n\n      const { colorBgElevated, colorPrimary, colorError, colorErrorHover, colorTextLightSolid }\n        = token;\n\n      const { controlHeightLG, fontSize } = token;\n\n      const menuArrowSize = (fontSize / 7) * 5;\n\n      // Menu Token\n      const menuToken = mergeToken<MenuToken>(token, {\n        menuItemHeight: controlHeightLG,\n        menuItemPaddingInline: token.margin,\n        menuArrowSize,\n        menuHorizontalHeight: controlHeightLG * 1.15,\n        menuArrowOffset: `${menuArrowSize * 0.25}px`,\n        menuPanelMaskInset: -7, // Still a hardcode here since it's offset by rc-align\n        menuSubMenuBg: colorBgElevated,\n      });\n\n      const colorTextDark = new TinyColor(colorTextLightSolid).setAlpha(0.65).toRgbString();\n\n      const menuDarkToken = mergeToken<MenuToken>(\n        menuToken,\n        {\n          colorItemText: colorTextDark,\n          colorItemTextHover: colorTextLightSolid,\n          colorGroupTitle: colorTextDark,\n          colorItemTextSelected: colorTextLightSolid,\n          colorItemBg: '#001529',\n          colorSubItemBg: '#000c17',\n          colorItemBgActive: 'transparent',\n          colorItemBgSelected: colorPrimary,\n          colorActiveBarWidth: 0,\n          colorActiveBarHeight: 0,\n          colorActiveBarBorderSize: 0,\n\n          // Disabled\n          colorItemTextDisabled: new TinyColor(colorTextLightSolid).setAlpha(0.25).toRgbString(),\n\n          // Danger\n          colorDangerItemText: colorError,\n          colorDangerItemTextHover: colorErrorHover,\n          colorDangerItemTextSelected: colorTextLightSolid,\n          colorDangerItemBgActive: colorError,\n          colorDangerItemBgSelected: colorError,\n\n          menuSubMenuBg: '#001529',\n\n          // Horizontal\n          colorItemTextSelectedHorizontal: colorTextLightSolid,\n          colorItemBgSelectedHorizontal: colorPrimary,\n        },\n        {\n          ...overrideComponentToken,\n        },\n      );\n\n      return [\n        // Basic\n        getBaseStyle(menuToken),\n\n        // Horizontal\n        getHorizontalStyle(menuToken), // Hard code for some light style\n\n        // Vertical\n        getVerticalStyle(menuToken), // Hard code for some light style\n\n        // Theme\n        getThemeStyle(menuToken, 'light'),\n        getThemeStyle(menuDarkToken, 'dark'),\n\n        // RTL\n        getRTLStyle(menuToken),\n\n        // Motion\n        genCollapseMotion(menuToken),\n\n        initSlideMotion(menuToken, 'slide-up'),\n        initSlideMotion(menuToken, 'slide-down'),\n        initZoomMotion(menuToken, 'zoom-big'),\n      ];\n    },\n    (token) => {\n      const {\n        colorPrimary,\n        colorError,\n        colorTextDisabled,\n        colorErrorBg,\n        colorText,\n        colorTextDescription,\n        colorBgContainer,\n        colorFillAlter,\n        colorFillContent,\n        lineWidth,\n        lineWidthBold,\n        controlItemBgActive,\n        colorBgTextHover,\n      } = token;\n\n      return {\n        dropdownWidth: 160,\n        zIndexPopup: token.zIndexPopupBase + 50,\n        radiusItem: token.borderRadiusLG,\n        radiusSubMenuItem: token.borderRadiusSM,\n        colorItemText: colorText,\n        colorItemTextHover: colorText,\n        colorItemTextHoverHorizontal: colorPrimary,\n        colorGroupTitle: colorTextDescription,\n        colorItemTextSelected: colorPrimary,\n        colorItemTextSelectedHorizontal: colorPrimary,\n        colorItemBg: colorBgContainer,\n        colorItemBgHover: colorBgTextHover,\n        colorItemBgActive: colorFillContent,\n        colorSubItemBg: colorFillAlter,\n        colorItemBgSelected: controlItemBgActive,\n        colorItemBgSelectedHorizontal: 'transparent',\n        colorActiveBarWidth: 0,\n        colorActiveBarHeight: lineWidthBold,\n        colorActiveBarBorderSize: lineWidth,\n\n        // Disabled\n        colorItemTextDisabled: colorTextDisabled,\n\n        // Danger\n        colorDangerItemText: colorError,\n        colorDangerItemTextHover: colorError,\n        colorDangerItemTextSelected: colorError,\n        colorDangerItemBgActive: colorErrorBg,\n        colorDangerItemBgSelected: colorErrorBg,\n\n        itemMarginInline: token.marginXXS,\n      };\n    },\n  );\n\n  return useOriginHook(prefixCls);\n};\n"],"names":["mergeToken"],"mappings":"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"}