{"version":3,"sources":["../../src/components/ChipList.tsx"],"sourcesContent":["import type { HTMLProps, PropsWithChildren, ReactNode } from 'react'\nimport clsx from 'clsx'\n\nexport type ChipColor = 'default' | 'dark'| 'red' | 'yellow' | 'green' | 'blue' | 'pink'\ntype ChipVariant = 'normal' | 'fullyRounded'\n\nexport type ChipProps = HTMLProps<HTMLDivElement> & PropsWithChildren<{\n  color?: ChipColor,\n  variant?: ChipVariant,\n  trailingIcon?: ReactNode,\n}>\n\n/**\n * A component for displaying a single chip\n */\nexport const Chip = ({\n                       children,\n                       trailingIcon,\n                       color = 'default',\n                       variant = 'normal',\n                       className = '',\n                       ...restProps\n                     }: ChipProps) => {\n  const colorMapping: string = {\n    default: 'text-tag-default-text bg-tag-default-background',\n    dark: 'text-tag-dark-text bg-tag-dark-background',\n    red: 'text-tag-red-text bg-tag-red-background',\n    yellow: 'text-tag-yellow-text bg-tag-yellow-background',\n    green: 'text-tag-green-text bg-tag-green-background',\n    blue: 'text-tag-blue-text bg-tag-blue-background',\n    pink: 'text-tag-pink-text bg-tag-pink-background',\n  }[color]\n\n  const colorMappingIcon: string = {\n    default: 'text-tag-default-icon',\n    dark: 'text-tag-dark-icon',\n    red: 'text-tag-red-icon',\n    yellow: 'text-tag-yellow-icon',\n    green: 'text-tag-green-icon',\n    blue: 'text-tag-blue-icon',\n    pink: 'text-tag-pink-icon',\n  }[color]\n\n  return (\n    <div\n      {...restProps}\n      className={clsx(\n        `row w-fit px-2 py-1`,\n        colorMapping,\n        {\n          'rounded-md': variant === 'normal',\n          'rounded-full': variant === 'fullyRounded',\n        },\n        className\n      )}\n    >\n      {children}\n      {trailingIcon && (<span className={colorMappingIcon}>{trailingIcon}</span>)}\n    </div>\n  )\n}\n\nexport type ChipListProps = {\n  list: ChipProps[],\n  className?: string,\n}\n\n/**\n * A component for displaying a list of chips\n */\nexport const ChipList = ({\n                           list,\n                           className = ''\n                         }: ChipListProps) => {\n  return (\n    <div className={clsx('flex flex-wrap gap-x-4 gap-y-2', className)}>\n      {list.map((value, index) => (\n        <Chip\n          key={index}\n          {...value}\n          color={value.color ?? 'dark'}\n          variant={value.variant ?? 'normal'}\n        >\n          {value.children}\n        </Chip>\n      ))}\n    </div>\n  )\n}\n"],"mappings":";AACA,OAAO,UAAU;AA2Cb,SAaoB,KAbpB;AA7BG,IAAM,OAAO,CAAC;AAAA,EACE;AAAA,EACA;AAAA,EACA,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,GAAG;AACL,MAAiB;AACpC,QAAM,eAAuB;AAAA,IAC3B,SAAS;AAAA,IACT,MAAM;AAAA,IACN,KAAK;AAAA,IACL,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,MAAM;AAAA,IACN,MAAM;AAAA,EACR,EAAE,KAAK;AAEP,QAAM,mBAA2B;AAAA,IAC/B,SAAS;AAAA,IACT,MAAM;AAAA,IACN,KAAK;AAAA,IACL,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,MAAM;AAAA,IACN,MAAM;AAAA,EACR,EAAE,KAAK;AAEP,SACE;AAAA,IAAC;AAAA;AAAA,MACE,GAAG;AAAA,MACJ,WAAW;AAAA,QACT;AAAA,QACA;AAAA,QACA;AAAA,UACE,cAAc,YAAY;AAAA,UAC1B,gBAAgB,YAAY;AAAA,QAC9B;AAAA,QACA;AAAA,MACF;AAAA,MAEC;AAAA;AAAA,QACA,gBAAiB,oBAAC,UAAK,WAAW,kBAAmB,wBAAa;AAAA;AAAA;AAAA,EACrE;AAEJ;AAUO,IAAM,WAAW,CAAC;AAAA,EACE;AAAA,EACA,YAAY;AACd,MAAqB;AAC5C,SACE,oBAAC,SAAI,WAAW,KAAK,kCAAkC,SAAS,GAC7D,eAAK,IAAI,CAAC,OAAO,UAChB;AAAA,IAAC;AAAA;AAAA,MAEE,GAAG;AAAA,MACJ,OAAO,MAAM,SAAS;AAAA,MACtB,SAAS,MAAM,WAAW;AAAA,MAEzB,gBAAM;AAAA;AAAA,IALF;AAAA,EAMP,CACD,GACH;AAEJ;","names":[]}