{"version":3,"file":"index.cjs","sources":["../../../../src/components/Badge/Badge.tsx"],"sourcesContent":["import { Icon } from '@/components/Icon';\nimport { IconWrapper } from '@/components/IconWrapper';\nimport { cn, cva } from '@/lib/cva';\nimport { BadgeProps } from './Badge.types';\nimport styles from './Badge.module.css';\n\nconst wrapperVariants = cva(styles.wrapper, {\n  variants: {\n    typestate: {\n      'opaque-default': styles['wrapper_typestate_opaque-default'],\n      'opaque-success': styles['wrapper_typestate_opaque-success'],\n      'opaque-neutral': styles['wrapper_typestate_opaque-neutral'],\n      'opaque-danger': styles['wrapper_typestate_opaque-danger'],\n      'opaque-disabled': styles['wrapper_typestate_opaque-disabled'],\n      'opaque-warning': styles['wrapper_typestate_opaque-warning'],\n      'opaque-info': styles['wrapper_typestate_opaque-info'],\n      'solid-default': styles['wrapper_typestate_solid-default'],\n      'solid-success': styles['wrapper_typestate_solid-success'],\n      'solid-neutral': styles['wrapper_typestate_solid-neutral'],\n      'solid-danger': styles['wrapper_typestate_solid-danger'],\n      'solid-disabled': styles['wrapper_typestate_solid-disabled'],\n      'solid-warning': styles['wrapper_typestate_solid-warning'],\n      'solid-info': styles['wrapper_typestate_solid-info'],\n    },\n    size: {\n      sm: styles['wrapper_size_sm'],\n      md: styles['wrapper_size_md'],\n    },\n  },\n  defaultVariants: {\n    typestate: 'opaque-default',\n    size: 'md',\n  },\n});\n\n// This variant set intentionally keys off `state` only: the descendant <svg>\n// color always comes from the opaque-text-* tokens (regardless of the badge's\n// `type`) and the SVG dimensions are always md (regardless of its `size`).\n// This matches the pre-migration behavior, where the content wrapper never\n// received `type`/`size` and defaulted to `'opaque'`/`'md'`.\nconst badgeContentVariants = cva(styles.badgecontent, {\n  variants: {\n    state: {\n      default: styles['badgecontent_state_default'],\n      success: styles['badgecontent_state_success'],\n      neutral: styles['badgecontent_state_neutral'],\n      danger: styles['badgecontent_state_danger'],\n      disabled: styles['badgecontent_state_disabled'],\n      warning: styles['badgecontent_state_warning'],\n      info: styles['badgecontent_state_info'],\n    },\n  },\n  defaultVariants: { state: 'default' },\n});\n\nconst closeIconVariants = cva(styles.closeicon, {\n  variants: {\n    state: {\n      default: styles['closeicon_state_default'],\n      success: styles['closeicon_state_success'],\n      neutral: styles['closeicon_state_neutral'],\n      danger: styles['closeicon_state_danger'],\n      disabled: styles['closeicon_state_disabled'],\n      warning: styles['closeicon_state_warning'],\n      info: styles['closeicon_state_info'],\n    },\n  },\n  defaultVariants: { state: 'default' },\n});\n\ntype BadgeTypeState =\n  | 'opaque-default'\n  | 'opaque-success'\n  | 'opaque-neutral'\n  | 'opaque-danger'\n  | 'opaque-disabled'\n  | 'opaque-warning'\n  | 'opaque-info'\n  | 'solid-default'\n  | 'solid-success'\n  | 'solid-neutral'\n  | 'solid-danger'\n  | 'solid-disabled'\n  | 'solid-warning'\n  | 'solid-info';\n\nexport const Badge = ({\n  icon,\n  iconDir,\n  text,\n  state = 'default',\n  size,\n  type,\n  dismissible,\n  onClose,\n  ellipsisContent = true,\n  className,\n  ...props\n}: BadgeProps) => {\n  const resolvedType = type ?? 'opaque';\n  const resolvedSize = size ?? 'md';\n  const typestate = `${resolvedType}-${state}` as BadgeTypeState;\n  return (\n    <div\n      {...props}\n      className={cn(wrapperVariants({ typestate, size: resolvedSize }), className)}\n    >\n      <div\n        data-testid={`${ellipsisContent ? 'ellipsed' : 'normal'}-badge-content`}\n        className={styles.content}\n      >\n        <IconWrapper\n          icon={icon}\n          iconDir={iconDir}\n          size={size}\n          ellipsisContent={ellipsisContent}\n          className={cn(badgeContentVariants({ state }))}\n        >\n          {text}\n        </IconWrapper>\n        {dismissible && (\n          <Icon\n            name=\"cross\"\n            onClick={onClose}\n            aria-label=\"close\"\n            className={cn(closeIconVariants({ state }))}\n          />\n        )}\n      </div>\n    </div>\n  );\n};\n"],"names":["cva","styles","jsx","cn","jsxs","IconWrapper","Icon"],"mappings":"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"}