{"version":3,"file":"index.mjs","sources":["../../../../../../packages/components/anchor/style/index.ts"],"sourcesContent":["import type { CSSObject, FullToken, GenerateStyle } from '@antdv/theme';\nimport { genComponentStyleHook, mergeToken, resetComponent, textEllipsis } from '@antdv/theme';\n\nexport interface ComponentToken {}\n\ninterface AnchorToken extends FullToken<'Anchor'> {\n  holderOffsetBlock: number\n  anchorPaddingBlock: number\n  anchorPaddingBlockSecondary: number\n  anchorPaddingInline: number\n  anchorBallSize: number\n  anchorTitleBlock: number\n}\n\n// ============================== Shared ==============================\nconst genSharedAnchorStyle: GenerateStyle<AnchorToken> = (token): CSSObject => {\n  const {\n    componentCls,\n    holderOffsetBlock,\n    motionDurationSlow,\n    lineWidthBold,\n    colorPrimary,\n    lineType,\n    colorSplit,\n  } = token;\n\n  return {\n    [`${componentCls}-wrapper`]: {\n      marginBlockStart: -holderOffsetBlock,\n      paddingBlockStart: holderOffsetBlock,\n\n      // delete overflow: auto\n      // overflow: 'auto',\n\n      backgroundColor: 'transparent',\n\n      [componentCls]: {\n        ...resetComponent(token),\n        position: 'relative',\n        paddingInlineStart: lineWidthBold,\n\n        [`${componentCls}-link`]: {\n          'paddingBlock': token.anchorPaddingBlock,\n          'paddingInline': `${token.anchorPaddingInline}px 0`,\n\n          '&-title': {\n            ...textEllipsis,\n            'position': 'relative',\n            'display': 'block',\n            'marginBlockEnd': token.anchorTitleBlock,\n            'color': token.colorText,\n            'transition': `all ${token.motionDurationSlow}`,\n\n            '&:only-child': {\n              marginBlockEnd: 0,\n            },\n          },\n\n          [`&-active > ${componentCls}-link-title`]: {\n            color: token.colorPrimary,\n          },\n\n          // link link\n          [`${componentCls}-link`]: {\n            paddingBlock: token.anchorPaddingBlockSecondary,\n          },\n        },\n      },\n\n      [`&:not(${componentCls}-wrapper-horizontal)`]: {\n        [componentCls]: {\n          '&::before': {\n            position: 'absolute',\n            left: {\n              _skip_check_: true,\n              value: 0,\n            },\n            top: 0,\n            height: '100%',\n            borderInlineStart: `${lineWidthBold}px ${lineType} ${colorSplit}`,\n            content: '\" \"',\n          },\n\n          [`${componentCls}-ink`]: {\n            position: 'absolute',\n            left: {\n              _skip_check_: true,\n              value: 0,\n            },\n            display: 'none',\n            transform: 'translateY(-50%)',\n            transition: `top ${motionDurationSlow} ease-in-out`,\n            width: lineWidthBold,\n            backgroundColor: colorPrimary,\n\n            [`&${componentCls}-ink-visible`]: {\n              display: 'inline-block',\n            },\n          },\n        },\n      },\n\n      [`${componentCls}-fixed ${componentCls}-ink ${componentCls}-ink`]: {\n        display: 'none',\n      },\n    },\n  };\n};\n\nconst genSharedAnchorHorizontalStyle: GenerateStyle<AnchorToken> = (token): CSSObject => {\n  const { componentCls, motionDurationSlow, lineWidthBold, colorPrimary } = token;\n\n  return {\n    [`${componentCls}-wrapper-horizontal`]: {\n      'position': 'relative',\n\n      '&::before': {\n        position: 'absolute',\n        left: {\n          _skip_check_: true,\n          value: 0,\n        },\n        right: {\n          _skip_check_: true,\n          value: 0,\n        },\n        bottom: 0,\n        borderBottom: `1px ${token.lineType} ${token.colorSplit}`,\n        content: '\" \"',\n      },\n\n      [componentCls]: {\n        'overflowX': 'scroll',\n        'position': 'relative',\n        'display': 'flex',\n        'scrollbarWidth': 'none' /* Firefox */,\n\n        '&::-webkit-scrollbar': {\n          display: 'none' /* Safari and Chrome */,\n        },\n\n        [`${componentCls}-link:first-of-type`]: {\n          paddingInline: 0,\n        },\n\n        [`${componentCls}-ink`]: {\n          position: 'absolute',\n          bottom: 0,\n          transition: `left ${motionDurationSlow} ease-in-out, width ${motionDurationSlow} ease-in-out`,\n          height: lineWidthBold,\n          backgroundColor: colorPrimary,\n        },\n      },\n    },\n  };\n};\n\n// ============================== Export ==============================\nexport default genComponentStyleHook('Anchor', (token) => {\n  const { fontSize, fontSizeLG, padding, paddingXXS } = token;\n\n  const anchorToken = mergeToken<AnchorToken>(token, {\n    holderOffsetBlock: paddingXXS,\n    anchorPaddingBlock: paddingXXS,\n    anchorPaddingBlockSecondary: paddingXXS / 2,\n    anchorPaddingInline: padding,\n    anchorTitleBlock: (fontSize / 14) * 3,\n    anchorBallSize: fontSizeLG / 2,\n  });\n  return [genSharedAnchorStyle(anchorToken), genSharedAnchorHorizontalStyle(anchorToken)];\n});\n"],"names":["mergeToken"],"mappings":"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"}