{"version":3,"file":"index.cjs","sources":["../../../../src/components/CardPrimary/CardPrimary.tsx"],"sourcesContent":["import { Title } from '@/components/Title';\nimport { Text, type TextAlignment } from '@/components/Text';\nimport { withTopBadge } from './withTopBadge';\nimport { Button } from '@/components/Button';\nimport { Icon } from '@/components/Icon';\nimport { Spacer } from '@/components/Spacer';\nimport { cn, cva } from '@/lib/cva';\nimport { openInNewTab } from '@/utils/url';\nimport { CardPrimaryProps } from './CardPrimary.types';\nimport styles from './CardPrimary.module.css';\n\ntype ContentAlignment = 'start' | 'center' | 'end';\n\nconst wrapperVariants = cva(styles.wrapper, {\n  variants: {\n    size: {\n      sm: styles['wrapper_size_sm'],\n      md: styles['wrapper_size_md'],\n    },\n    align: {\n      start: styles['wrapper_align_start'],\n      center: styles['wrapper_align_center'],\n      end: styles['wrapper_align_end'],\n    },\n    hasShadow: {\n      true: styles['wrapper_shadow'],\n    },\n    isSelected: {\n      true: styles['wrapper_selected'],\n    },\n  },\n  defaultVariants: {\n    size: 'md',\n    align: 'center',\n  },\n});\n\nconst headerVariants = cva(styles.header, {\n  variants: {\n    size: {\n      sm: styles['header_size_sm'],\n      md: styles['header_size_md'],\n    },\n    align: {\n      start: styles['header_align_start'],\n      center: styles['header_align_center'],\n      end: styles['header_align_end'],\n    },\n    disabled: {\n      true: styles['header_disabled'],\n    },\n  },\n  defaultVariants: {\n    size: 'md',\n    align: 'center',\n  },\n});\n\nconst contentVariants = cva(styles.content, {\n  variants: {\n    size: {\n      sm: styles['content_size_sm'],\n      md: styles['content_size_md'],\n    },\n    align: {\n      start: styles['content_align_start'],\n      center: styles['content_align_center'],\n      end: styles['content_align_end'],\n    },\n  },\n  defaultVariants: {\n    size: 'md',\n    align: 'center',\n  },\n});\n\nconst convertCardAlignToTextAlign = (align: ContentAlignment): TextAlignment => {\n  if (align === 'center') {\n    return 'center';\n  }\n  return align === 'start' ? 'left' : 'right';\n};\n\nconst Card = ({\n  alignContent,\n  title,\n  icon,\n  iconUrl,\n  hasShadow = false,\n  description,\n  infoUrl,\n  infoText,\n  size,\n  disabled = false,\n  onButtonClick,\n  isSelected,\n  children,\n  className,\n  ...props\n}: CardPrimaryProps) => {\n  const handleClick = (e: React.MouseEvent<HTMLElement>) => {\n    if (typeof onButtonClick === 'function') {\n      onButtonClick(e);\n    }\n    if (infoUrl) {\n      openInNewTab(infoUrl);\n    }\n  };\n\n  const Component = !!infoUrl || typeof onButtonClick === 'function' ? Button : 'div';\n  return (\n    <div\n      aria-disabled={disabled}\n      tabIndex={0}\n      {...props}\n      className={cn(\n        wrapperVariants({ size, align: alignContent, hasShadow, isSelected }),\n        className\n      )}\n    >\n      {(icon || title) && (\n        <div className={cn(headerVariants({ size, align: alignContent, disabled }))}>\n          {iconUrl ? (\n            <img\n              src={iconUrl}\n              alt=\"card icon\"\n              aria-hidden\n            />\n          ) : (\n            icon && (\n              <Icon\n                name={icon}\n                aria-hidden\n              />\n            )\n          )}\n          {title && <Title type=\"h3\">{title}</Title>}\n        </div>\n      )}\n\n      {(description || children) && (\n        <div className={cn(contentVariants({ size, align: alignContent }))}>\n          {description && (\n            <Text\n              color=\"muted\"\n              align={convertCardAlignToTextAlign(alignContent ?? 'start')}\n            >\n              {description}\n            </Text>\n          )}\n          {children}\n        </div>\n      )}\n\n      {size === 'sm' && <Spacer size=\"sm\" />}\n\n      {infoText && (\n        <Component\n          onClick={handleClick}\n          disabled={disabled}\n        >\n          {infoText}\n        </Component>\n      )}\n    </div>\n  );\n};\n\nexport const CardPrimary = withTopBadge<CardPrimaryProps>(Card);\n"],"names":["cva","styles","openInNewTab","Button","jsxs","cn","jsx","Icon","Title","Text","Spacer","withTopBadge"],"mappings":"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"}