{"version":3,"file":"IconButton.mjs","sources":["../../src/iconButton/IconButton.tsx"],"sourcesContent":["import { AnchorHTMLAttributes, ButtonHTMLAttributes, forwardRef, HTMLAttributes } from 'react';\nimport { PrimitiveAnchor, PrimitiveButton } from '../primitives';\nimport Circle from '../common/circle';\nimport { clsx } from 'clsx';\n\nexport type Props = {\n  /** @default 48 */\n  size?: 16 | 24 | 32 | 40 | 48 | 56 | 72;\n  /** @default 'primary' */\n  priority?: 'primary' | 'secondary' | 'tertiary' | 'minimal';\n  /** @default 'default' */\n  type?: 'default' | 'negative';\n  'data-testid'?: string;\n} & Pick<AnchorHTMLAttributes<HTMLAnchorElement>, 'href' | 'target' | 'onClick'> &\n  Pick<ButtonHTMLAttributes<HTMLButtonElement>, 'onClick' | 'disabled'> &\n  Pick<\n    HTMLAttributes<HTMLDivElement>,\n    'id' | 'className' | 'role' | 'children' | 'aria-label' | 'tabIndex'\n  >;\n\nconst IconButton = forwardRef(function IconButton(\n  {\n    size = 48,\n    href = '#',\n    children,\n    className,\n    priority = 'primary',\n    type = 'default',\n    ...props\n  }: Props,\n  ref,\n) {\n  const isLink = href !== '#';\n  return (\n    // @ts-expect-error it's either link or `button` element so it has `onClick` / `href`\n    <Circle\n      ref={ref}\n      as={isLink ? PrimitiveAnchor : PrimitiveButton}\n      size={size}\n      fixedSize\n      className={clsx(\n        'np-icon-button',\n        `np-icon-button-${priority}-${type}`,\n        {\n          disabled: props.disabled,\n        },\n        className,\n      )}\n      {...(isLink ? { href } : {})}\n      {...props}\n    >\n      {children}\n    </Circle>\n  );\n});\n\nexport default IconButton;\n"],"names":["IconButton","forwardRef","size","href","children","className","priority","type","props","ref","isLink","_jsx","Circle","as","PrimitiveAnchor","PrimitiveButton","fixedSize","clsx","disabled"],"mappings":";;;;;;;AAoBA,MAAMA,UAAU,gBAAGC,UAAU,CAAC,SAASD,UAAUA,CAC/C;AACEE,EAAAA,IAAI,GAAG,EAAE;AACTC,EAAAA,IAAI,GAAG,GAAG;EACVC,QAAQ;EACRC,SAAS;AACTC,EAAAA,QAAQ,GAAG,SAAS;AACpBC,EAAAA,IAAI,GAAG,SAAS;EAChB,GAAGC;AAAK,CACF,EACRC,GAAG,EAAA;AAEH,EAAA,MAAMC,MAAM,GAAGP,IAAI,KAAK,GAAG;AAC3B,EAAA;AAAA;AACE;AACAQ,IAAAA,GAAA,CAACC,MAAM,EAAA;AACLH,MAAAA,GAAG,EAAEA,GAAI;AACTI,MAAAA,EAAE,EAAEH,MAAM,GAAGI,eAAe,GAAGC,eAAgB;AAC/Cb,MAAAA,IAAI,EAAEA,IAAK;MACXc,SAAS,EAAA,IAAA;MACTX,SAAS,EAAEY,IAAI,CACb,gBAAgB,EAChB,kBAAkBX,QAAQ,CAAA,CAAA,EAAIC,IAAI,CAAA,CAAE,EACpC;QACEW,QAAQ,EAAEV,KAAK,CAACU;OACjB,EACDb,SAAS,CACT;AAAA,MAAA,IACGK,MAAM,GAAG;AAAEP,QAAAA;OAAM,GAAG,EAAE,CAAA;AAAA,MAAA,GACvBK,KAAK;AAAAJ,MAAAA,QAAA,EAERA;KACK;AAAC;AAEb,CAAC;;;;"}