{"version":3,"file":"Tag.mjs","names":["Tag","AntTag"],"sources":["../../src/Tag/Tag.tsx"],"sourcesContent":["'use client';\n\nimport { Tag as AntTag } from 'antd';\nimport { cssVar, cx } from 'antd-style';\nimport { type FC, useMemo } from 'react';\n\nimport { colorsPreset, colorsPresetSystem, presetColors, presetSystemColors } from '@/Tag/utils';\nimport { safeReadableColor } from '@/utils/safeReadableColor';\n\nimport { variants } from './styles';\nimport type { TagProps } from './type';\n\nconst Tag: FC<TagProps> = ({\n  className,\n  ref,\n  shape = 'normal',\n  size = 'middle',\n  color,\n  variant = 'filled',\n  children,\n  onClick,\n  style,\n  ...rest\n}) => {\n  const colors = useMemo(() => {\n    const resolveActualColor = (colorValue?: string) => {\n      if (!colorValue || !colorValue.startsWith('var(')) return colorValue;\n      if (typeof window === 'undefined') return colorValue;\n\n      const matched = colorValue.match(/var\\((--[^,\\s)]+)/);\n      if (!matched?.[1]) return colorValue;\n\n      const resolved = window\n        .getComputedStyle(document.documentElement)\n        .getPropertyValue(matched[1])\n        .trim();\n\n      return resolved || colorValue;\n    };\n\n    let textColor = cssVar.colorTextSecondary;\n    let backgroundColor;\n    let borderColor;\n    const isBorderless = variant === 'borderless';\n    const isFilled = variant === 'filled';\n    const isSolid = variant === 'solid';\n    const isPresetColor = color && presetColors.includes(color);\n    const isPresetSystemColors = color && presetSystemColors.has(color);\n    const isHexColor = color && color.startsWith('#');\n\n    if (isPresetColor) {\n      const solidBgColor = colorsPreset(color);\n      textColor = isSolid\n        ? safeReadableColor(resolveActualColor(solidBgColor) || solidBgColor)\n        : colorsPreset(color, 'active');\n      backgroundColor = isSolid\n        ? solidBgColor\n        : isBorderless\n          ? 'transparent'\n          : colorsPreset(color, 'fillTertiary');\n      borderColor = isSolid\n        ? solidBgColor\n        : colorsPreset(color, isFilled ? 'fillQuaternary' : 'fillTertiary');\n    }\n    if (isPresetSystemColors) {\n      const solidBgColor = colorsPresetSystem(color);\n      textColor = isSolid\n        ? safeReadableColor(resolveActualColor(solidBgColor) || solidBgColor)\n        : colorsPresetSystem(color);\n      backgroundColor = isSolid\n        ? solidBgColor\n        : isBorderless\n          ? 'transparent'\n          : colorsPresetSystem(color, 'fillTertiary');\n      borderColor = isSolid\n        ? solidBgColor\n        : colorsPresetSystem(color, isFilled ? 'fillQuaternary' : 'fillTertiary');\n    }\n    if (isHexColor) {\n      textColor = isSolid ? safeReadableColor(color) : cssVar.colorBgLayout;\n      backgroundColor = isSolid ? color : isBorderless ? 'transparent' : color;\n      borderColor = isSolid ? color : borderColor;\n    }\n\n    return {\n      backgroundColor,\n      borderColor,\n      textColor,\n    };\n  }, [color, variant]);\n\n  return (\n    <AntTag\n      className={cx(variants({ shape, size, variant: variant as any }), className)}\n      color={color}\n      ref={ref}\n      variant={variant === 'borderless' ? 'outlined' : variant === 'solid' ? 'filled' : variant}\n      style={{\n        background: colors?.backgroundColor,\n        borderColor: colors?.borderColor,\n        color: colors?.textColor,\n        cursor: onClick ? 'pointer' : undefined,\n        ...style,\n      }}\n      onClick={onClick}\n      {...rest}\n    >\n      {children}\n    </AntTag>\n  );\n};\n\nTag.displayName = 'Tag';\n\nexport default Tag;\n"],"mappings":";;;;;;;;;AAYA,MAAMA,SAAqB,EACzB,WACA,KACA,QAAQ,UACR,OAAO,UACP,OACA,UAAU,UACV,UACA,SACA,OACA,GAAG,WACC;CACJ,MAAM,SAAS,cAAc;EAC3B,MAAM,sBAAsB,eAAwB;AAClD,OAAI,CAAC,cAAc,CAAC,WAAW,WAAW,OAAO,CAAE,QAAO;AAC1D,OAAI,OAAO,WAAW,YAAa,QAAO;GAE1C,MAAM,UAAU,WAAW,MAAM,oBAAoB;AACrD,OAAI,CAAC,UAAU,GAAI,QAAO;AAO1B,UALiB,OACd,iBAAiB,SAAS,gBAAgB,CAC1C,iBAAiB,QAAQ,GAAG,CAC5B,MAEY,IAAI;;EAGrB,IAAI,YAAY,OAAO;EACvB,IAAI;EACJ,IAAI;EACJ,MAAM,eAAe,YAAY;EACjC,MAAM,WAAW,YAAY;EAC7B,MAAM,UAAU,YAAY;EAC5B,MAAM,gBAAgB,SAAS,aAAa,SAAS,MAAM;EAC3D,MAAM,uBAAuB,SAAS,mBAAmB,IAAI,MAAM;EACnE,MAAM,aAAa,SAAS,MAAM,WAAW,IAAI;AAEjD,MAAI,eAAe;GACjB,MAAM,eAAe,aAAa,MAAM;AACxC,eAAY,UACR,kBAAkB,mBAAmB,aAAa,IAAI,aAAa,GACnE,aAAa,OAAO,SAAS;AACjC,qBAAkB,UACd,eACA,eACE,gBACA,aAAa,OAAO,eAAe;AACzC,iBAAc,UACV,eACA,aAAa,OAAO,WAAW,mBAAmB,eAAe;;AAEvE,MAAI,sBAAsB;GACxB,MAAM,eAAe,mBAAmB,MAAM;AAC9C,eAAY,UACR,kBAAkB,mBAAmB,aAAa,IAAI,aAAa,GACnE,mBAAmB,MAAM;AAC7B,qBAAkB,UACd,eACA,eACE,gBACA,mBAAmB,OAAO,eAAe;AAC/C,iBAAc,UACV,eACA,mBAAmB,OAAO,WAAW,mBAAmB,eAAe;;AAE7E,MAAI,YAAY;AACd,eAAY,UAAU,kBAAkB,MAAM,GAAG,OAAO;AACxD,qBAAkB,UAAU,QAAQ,eAAe,gBAAgB;AACnE,iBAAc,UAAU,QAAQ;;AAGlC,SAAO;GACL;GACA;GACA;GACD;IACA,CAAC,OAAO,QAAQ,CAAC;AAEpB,QACE,oBAACC,KAAD;EACE,WAAW,GAAG,SAAS;GAAE;GAAO;GAAe;GAAgB,CAAC,EAAE,UAAU;EACrE;EACF;EACL,SAAS,YAAY,eAAe,aAAa,YAAY,UAAU,WAAW;EAClF,OAAO;GACL,YAAY,QAAQ;GACpB,aAAa,QAAQ;GACrB,OAAO,QAAQ;GACf,QAAQ,UAAU,YAAY,KAAA;GAC9B,GAAG;GACJ;EACQ;EACT,GAAI;EAEH;EACM,CAAA;;AAIb,MAAI,cAAc"}