{"version":3,"file":"Info.mjs","sources":["../../src/info/Info.tsx"],"sourcesContent":["import { QuestionMarkCircle as HelpCircleIcon } from '@transferwise/icons';\nimport { clsx } from 'clsx';\nimport { useState } from 'react';\nimport { useIntl } from 'react-intl';\n\nimport { Size, Position, SizeSmall, SizeLarge } from '../common';\nimport Modal from '../modal';\nimport Popover, { PopoverPreferredPlacement } from '../popover';\n\nimport messages from './Info.messages';\nimport { InfoPresentation } from './infoPresentations';\nimport IconButton, { IconButtonProps } from '../iconButton';\n\nexport interface InfoProps {\n  'aria-label'?: string;\n  /**\n   * Extra classes applied to Info\n   */\n  className?: string;\n  /**\n   * Content displayed inside a Popover a Modal\n   */\n  content?: React.ReactNode;\n  onClick?: () => void;\n  /**\n   * Decides whether to display content in a Popover or a Modal\n   */\n  presentation?: 'MODAL' | 'POPOVER';\n  /**\n   * Decides the size of help Icon\n   */\n  size?: SizeSmall | SizeLarge;\n  /**\n   * Title displayed inside a Popover a Modal\n   */\n  title?: React.ReactNode;\n  /**\n   * Prferred placement of the Popover, does not apply to Modal\n   */\n  preferredPlacement?: PopoverPreferredPlacement;\n}\n\nconst Info = ({\n  className = undefined,\n  content = undefined,\n  onClick = undefined,\n  presentation = InfoPresentation.POPOVER,\n  size = Size.SMALL,\n  title = undefined,\n  'aria-label': ariaLabel,\n  preferredPlacement = Position.BOTTOM,\n}: InfoProps) => {\n  const intl = useIntl();\n  const [open, setOpen] = useState(false);\n  ariaLabel ??= intl.formatMessage(messages.ariaLabel);\n  const isModal = presentation === InfoPresentation.MODAL;\n\n  const buttonProps: IconButtonProps = {\n    'aria-label': ariaLabel,\n    priority: 'minimal',\n    size: 24,\n    children: <HelpCircleIcon />,\n  };\n\n  return (\n    <span className={clsx(className, 'np-info')}>\n      {isModal ? (\n        <>\n          <IconButton\n            onClick={() => {\n              setOpen(!open);\n              if (onClick) {\n                onClick();\n              }\n            }}\n            {...buttonProps}\n          />\n          <Modal body={content} open={open} title={title} onClose={() => setOpen(false)} />\n        </>\n      ) : (\n        <Popover content={content} preferredPlacement={preferredPlacement} title={title}>\n          <IconButton\n            {...buttonProps}\n            onClick={() => {\n              if (onClick) {\n                onClick();\n              }\n            }}\n          />\n        </Popover>\n      )}\n    </span>\n  );\n};\n\nexport default Info;\n"],"names":["Info","className","undefined","content","onClick","presentation","InfoPresentation","POPOVER","size","Size","SMALL","title","ariaLabel","preferredPlacement","Position","BOTTOM","intl","useIntl","open","setOpen","useState","formatMessage","messages","isModal","MODAL","buttonProps","priority","children","_jsx","HelpCircleIcon","clsx","_jsxs","_Fragment","IconButton","Modal","body","onClose","Popover"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0CA,MAAMA,IAAI,GAAGA,CAAC;AACZC,EAAAA,SAAS,GAAGC,SAAS;AACrBC,EAAAA,OAAO,GAAGD,SAAS;AACnBE,EAAAA,OAAO,GAAGF,SAAS;EACnBG,YAAY,GAAGC,gBAAgB,CAACC,OAAO;EACvCC,IAAI,GAAGC,IAAI,CAACC,KAAK;AACjBC,EAAAA,KAAK,GAAGT,SAAS;AACjB,EAAA,YAAY,EAAEU,SAAS;EACvBC,kBAAkB,GAAGC,QAAQ,CAACC;AAAM,CAC1B,KAAI;AACd,EAAA,MAAMC,IAAI,GAAGC,OAAO,EAAE;EACtB,MAAM,CAACC,IAAI,EAAEC,OAAO,CAAC,GAAGC,QAAQ,CAAC,KAAK,CAAC;EACvCR,SAAS,KAAKI,IAAI,CAACK,aAAa,CAACC,QAAQ,CAACV,SAAS,CAAC;AACpD,EAAA,MAAMW,OAAO,GAAGlB,YAAY,KAAKC,gBAAgB,CAACkB,KAAK;AAEvD,EAAA,MAAMC,WAAW,GAAoB;AACnC,IAAA,YAAY,EAAEb,SAAS;AACvBc,IAAAA,QAAQ,EAAE,SAAS;AACnBlB,IAAAA,IAAI,EAAE,EAAE;AACRmB,IAAAA,QAAQ,eAAEC,GAAA,CAACC,kBAAc,EAAA,EAAA;GAC1B;AAED,EAAA,oBACED,GAAA,CAAA,MAAA,EAAA;AAAM3B,IAAAA,SAAS,EAAE6B,IAAI,CAAC7B,SAAS,EAAE,SAAS,CAAE;AAAA0B,IAAAA,QAAA,EACzCJ,OAAO,gBACNQ,IAAA,CAAAC,QAAA,EAAA;MAAAL,QAAA,EAAA,cACEC,GAAA,CAACK,UAAU,EAAA;QACT7B,OAAO,EAAEA,MAAK;UACZe,OAAO,CAAC,CAACD,IAAI,CAAC;AACd,UAAA,IAAId,OAAO,EAAE;AACXA,YAAAA,OAAO,EAAE;AACX,UAAA;QACF,CAAE;QAAA,GACEqB;AAAW,OAAC,CAElB,eAAAG,GAAA,CAACM,KAAK,EAAA;AAACC,QAAAA,IAAI,EAAEhC,OAAQ;AAACe,QAAAA,IAAI,EAAEA,IAAK;AAACP,QAAAA,KAAK,EAAEA,KAAM;AAACyB,QAAAA,OAAO,EAAEA,MAAMjB,OAAO,CAAC,KAAK;AAAE,OAAA,CAChF;AAAA,KAAA,CAAG,gBAEHS,GAAA,CAACS,OAAO,EAAA;AAAClC,MAAAA,OAAO,EAAEA,OAAQ;AAACU,MAAAA,kBAAkB,EAAEA,kBAAmB;AAACF,MAAAA,KAAK,EAAEA,KAAM;MAAAgB,QAAA,eAC9EC,GAAA,CAACK,UAAU,EAAA;AAAA,QAAA,GACLR,WAAW;QACfrB,OAAO,EAAEA,MAAK;AACZ,UAAA,IAAIA,OAAO,EAAE;AACXA,YAAAA,OAAO,EAAE;AACX,UAAA;AACF,QAAA;OAAE;KAEG;AACV,GACG,CAAC;AAEX;;;;"}