{"version":3,"sources":["../src/Badge/Badge.tsx","../src/Badge/Badge.types.ts"],"sourcesContent":["import { forwardRef } from \"react\";\nimport Typography from \"../Typography\";\nimport { type VariantProps, cva, cx } from \"cva\";\nimport type { ComponentProps, ReactNode } from \"react\";\nimport type { BadgeColor, BadgeSize, BadgeVariant } from \"./Badge.types.ts\";\n\nconst badgeRecipe = cva({\n  base: \"kn-badge\",\n  variants: {\n    color: {\n      dark: \"kn-badge-dark\",\n      primary: \"kn-badge-primary\",\n      secondary: \"kn-badge-secondary\",\n      tertiary: \"kn-badge-tertiary\",\n    } satisfies Record<BadgeColor, string>,\n    size: {\n      small: \"kn-badge-small\",\n      large: \"kn-badge-large\",\n    } satisfies Record<BadgeSize, string>,\n    variant: {\n      square: \"kn-badge-square\",\n      rounded: \"kn-badge-rounded\",\n    } satisfies Record<BadgeVariant, string>,\n  },\n  defaultVariants: {\n    color: \"primary\",\n    size: \"large\",\n    variant: \"square\",\n  },\n});\n\nconst outlinedBadgeRecipe = cva({\n  base: \"kn-badge-outlined\",\n  variants: {\n    color: {\n      primary: \"kn-badge-primary\",\n      secondary: \"kn-badge-secondary\",\n      tertiary: \"kn-badge-tertiary\",\n      dark: \"kn-badge-dark\",\n    } satisfies Record<BadgeColor, string>,\n  },\n  defaultVariants: {\n    color: \"primary\",\n  },\n});\n\ntype BadgeRecipeVariants = VariantProps<typeof badgeRecipe>;\n\n// Define the props for the Badge component\nexport type BadgeProps = ComponentProps<\"div\"> &\n  BadgeRecipeVariants & {\n    outlined?: boolean;\n    textClassName?: string;\n    left?: ReactNode;\n    leftClassName?: string;\n    right?: ReactNode;\n    rightClassName?: string;\n  };\n\n// Forward the ref and define the Badge component\nconst Badge = forwardRef<HTMLDivElement, BadgeProps>(\n  (\n    {\n      color = \"primary\",\n      size = \"large\",\n      variant = \"square\",\n      outlined = false,\n      left,\n      right,\n      className,\n      textClassName,\n      leftClassName,\n      rightClassName,\n      children,\n      ...props\n    },\n    ref,\n  ) => {\n    return (\n      <Typography\n        {...props}\n        variant=\"reportLabelBold\"\n        ref={ref}\n        className={cx(\n          badgeRecipe({ color, size, variant }),\n          outlined && outlinedBadgeRecipe({ color }),\n          className,\n        )}\n      >\n        {/* Render the left icon container */}\n        {left ? (\n          <div className={cx(\"flex items-center justify center mr-1\", leftClassName)}>{left}</div>\n        ) : null}\n\n        {/* Render the badge text */}\n        <div className={textClassName}>{children}</div>\n\n        {/* Render the right icon container */}\n        {right ? (\n          <div className={cx(\"flex items-center justify center ml-1\", rightClassName)}>{right}</div>\n        ) : null}\n      </Typography>\n    );\n  },\n);\n\n// Set the display name for the Badge component\nBadge.displayName = \"Badge\";\n\nexport default Badge;\n","export const badgeColors = [\"primary\", \"secondary\", \"tertiary\", \"dark\"] as const;\n\nexport const badgeVariants = [\"square\", \"rounded\"] as const;\n\nexport const badgeSizes = [\"small\", \"large\"] as const;\n\nexport type BadgeColor = (typeof badgeColors)[number];\n\nexport type BadgeVariant = (typeof badgeVariants)[number];\n\nexport type BadgeSize = (typeof badgeSizes)[number];\n"],"mappings":";;;;;;;;;;AAAA,SAAS,kBAAkB;AAE3B,SAA4B,KAAK,UAAU;AA6ErC,SAYI,KAZJ;AAzEN,IAAM,cAAc,IAAI;AAAA,EACtB,MAAM;AAAA,EACN,UAAU;AAAA,IACR,OAAO;AAAA,MACL,MAAM;AAAA,MACN,SAAS;AAAA,MACT,WAAW;AAAA,MACX,UAAU;AAAA,IACZ;AAAA,IACA,MAAM;AAAA,MACJ,OAAO;AAAA,MACP,OAAO;AAAA,IACT;AAAA,IACA,SAAS;AAAA,MACP,QAAQ;AAAA,MACR,SAAS;AAAA,IACX;AAAA,EACF;AAAA,EACA,iBAAiB;AAAA,IACf,OAAO;AAAA,IACP,MAAM;AAAA,IACN,SAAS;AAAA,EACX;AACF,CAAC;AAED,IAAM,sBAAsB,IAAI;AAAA,EAC9B,MAAM;AAAA,EACN,UAAU;AAAA,IACR,OAAO;AAAA,MACL,SAAS;AAAA,MACT,WAAW;AAAA,MACX,UAAU;AAAA,MACV,MAAM;AAAA,IACR;AAAA,EACF;AAAA,EACA,iBAAiB;AAAA,IACf,OAAO;AAAA,EACT;AACF,CAAC;AAgBD,IAAM,QAAQ;AAAA,EACZ,CACE,IAcA,QACG;AAfH,iBACE;AAAA,cAAQ;AAAA,MACR,OAAO;AAAA,MACP,UAAU;AAAA,MACV,WAAW;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAzEN,IA8DI,IAYK,kBAZL,IAYK;AAAA,MAXH;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAKF,WACE;AAAA,MAAC;AAAA,uCACK,QADL;AAAA,QAEC,SAAQ;AAAA,QACR;AAAA,QACA,WAAW;AAAA,UACT,YAAY,EAAE,OAAO,MAAM,QAAQ,CAAC;AAAA,UACpC,YAAY,oBAAoB,EAAE,MAAM,CAAC;AAAA,UACzC;AAAA,QACF;AAAA,QAGC;AAAA,iBACC,oBAAC,SAAI,WAAW,GAAG,yCAAyC,aAAa,GAAI,gBAAK,IAChF;AAAA,UAGJ,oBAAC,SAAI,WAAW,eAAgB,UAAS;AAAA,UAGxC,QACC,oBAAC,SAAI,WAAW,GAAG,yCAAyC,cAAc,GAAI,iBAAM,IAClF;AAAA;AAAA;AAAA,IACN;AAAA,EAEJ;AACF;AAGA,MAAM,cAAc;AAEpB,IAAO,gBAAQ;;;AC7GR,IAAM,cAAc,CAAC,WAAW,aAAa,YAAY,MAAM;AAE/D,IAAM,gBAAgB,CAAC,UAAU,SAAS;AAE1C,IAAM,aAAa,CAAC,SAAS,OAAO;","names":[]}