| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 | 
							- import type { CSSProperties, ReactNode } from 'react'
 
- import React from 'react'
 
- import { type VariantProps, cva } from 'class-variance-authority'
 
- import classNames from '@/utils/classnames'
 
- import './index.css'
 
- enum BadgeState {
 
-   Warning = 'warning',
 
-   Accent = 'accent',
 
-   Default = '',
 
- }
 
- const BadgeVariants = cva(
 
-   'badge',
 
-   {
 
-     variants: {
 
-       size: {
 
-         s: 'badge-s',
 
-         m: 'badge-m',
 
-         l: 'badge-l',
 
-       },
 
-     },
 
-     defaultVariants: {
 
-       size: 'm',
 
-     },
 
-   },
 
- )
 
- type BadgeProps = {
 
-   size?: 's' | 'm' | 'l'
 
-   iconOnly?: boolean
 
-   uppercase?: boolean
 
-   state?: BadgeState
 
-   styleCss?: CSSProperties
 
-   children?: ReactNode
 
- } & React.HTMLAttributes<HTMLDivElement> & VariantProps<typeof BadgeVariants>
 
- function getBadgeState(state: BadgeState) {
 
-   switch (state) {
 
-     case BadgeState.Warning:
 
-       return 'badge-warning'
 
-     case BadgeState.Accent:
 
-       return 'badge-accent'
 
-     default:
 
-       return ''
 
-   }
 
- }
 
- const Badge: React.FC<BadgeProps> = ({
 
-   className,
 
-   size,
 
-   state = BadgeState.Default,
 
-   iconOnly = false,
 
-   uppercase = false,
 
-   styleCss,
 
-   children,
 
-   ...props
 
- }) => {
 
-   return (
 
-     <div
 
-       className={classNames(
 
-         BadgeVariants({ size, className }),
 
-         getBadgeState(state),
 
-         size === 's'
 
-           ? (iconOnly ? 'p-[3px]' : 'px-[5px] py-[3px]')
 
-           : size === 'l'
 
-             ? (iconOnly ? 'p-1.5' : 'px-2 py-1')
 
-             : (iconOnly ? 'p-1' : 'px-[5px] py-[2px]'),
 
-         uppercase ? 'system-2xs-medium-uppercase' : 'system-2xs-medium',
 
-       )}
 
-       style={styleCss}
 
-       {...props}
 
-     >
 
-       {children}
 
-     </div>
 
-   )
 
- }
 
- Badge.displayName = 'Badge'
 
- export default Badge
 
- export { Badge, BadgeState, BadgeVariants }
 
 
  |