{"version":3,"file":"PopoverPanel.mjs","names":["PopoverPanel: FC<PopoverPanelProps>","displayTitle","domain","Flexbox","Icon"],"sources":["../../../../src/mdx/mdxComponents/Citation/PopoverPanel.tsx"],"sourcesContent":["'use client';\n\nimport { Popover } from 'antd';\nimport { ArrowRightIcon } from 'lucide-react';\nimport { type FC, type ReactNode, useMemo } from 'react';\n\nimport { Flexbox } from '@/Flex';\nimport Icon from '@/Icon';\n\nimport { styles } from './style';\n\ninterface PopoverPanelProps {\n  alt?: string;\n  children?: ReactNode;\n  title?: string;\n  url?: string;\n  usePopover?: boolean;\n}\n\nconst PopoverPanel: FC<PopoverPanelProps> = ({ children, usePopover, title, alt, url }) => {\n  const [displayTitle, domain, host] = useMemo(() => {\n    try {\n      const urlObj = new URL(url!);\n      const hostForUrl = urlObj.host;\n\n      let displayTitle = title;\n\n      if (title === url) {\n        displayTitle = '';\n      }\n\n      let domain = urlObj.hostname.replace('www.', '');\n      if (!displayTitle) domain = url!;\n\n      return [displayTitle, domain, hostForUrl];\n    } catch {\n      return [title, url, url];\n    }\n  }, [url, title]);\n\n  return usePopover && url ? (\n    <Popover\n      arrow={false}\n      content={\n        <Flexbox gap={8}>\n          <Flexbox\n            className={styles.link}\n            gap={12}\n            horizontal\n            justify={'space-between'}\n            onClick={() => {\n              window.open(url, '_blank');\n            }}\n          >\n            <Flexbox align={'center'} gap={4} horizontal>\n              <img\n                alt={alt || title || url}\n                height={14}\n                src={`https://icons.duckduckgo.com/ip3/${host}.ico`}\n                style={{ borderRadius: 4 }}\n                width={14}\n              />\n              <span className={styles.url}>{domain}</span>\n            </Flexbox>\n            <Icon icon={ArrowRightIcon} />\n          </Flexbox>\n          {displayTitle}\n        </Flexbox>\n      }\n      trigger={'hover'}\n    >\n      {children}\n    </Popover>\n  ) : (\n    children\n  );\n};\n\nPopoverPanel.displayName = 'MdxPopoverPanel';\n\nexport default PopoverPanel;\n"],"mappings":";;;;;;;;;;;AAmBA,MAAMA,gBAAuC,EAAE,UAAU,YAAY,OAAO,KAAK,UAAU;CACzF,MAAM,CAAC,cAAc,QAAQ,QAAQ,cAAc;AACjD,MAAI;GACF,MAAM,SAAS,IAAI,IAAI,IAAK;GAC5B,MAAM,aAAa,OAAO;GAE1B,IAAIC,iBAAe;AAEnB,OAAI,UAAU,IACZ,kBAAe;GAGjB,IAAIC,WAAS,OAAO,SAAS,QAAQ,QAAQ,GAAG;AAChD,OAAI,CAACD,eAAc,YAAS;AAE5B,UAAO;IAACA;IAAcC;IAAQ;IAAW;UACnC;AACN,UAAO;IAAC;IAAO;IAAK;IAAI;;IAEzB,CAAC,KAAK,MAAM,CAAC;AAEhB,QAAO,cAAc,MACnB,oBAAC;EACC,OAAO;EACP,SACE,qBAACC;GAAQ,KAAK;cACZ,qBAACA;IACC,WAAW,OAAO;IAClB,KAAK;IACL;IACA,SAAS;IACT,eAAe;AACb,YAAO,KAAK,KAAK,SAAS;;eAG5B,qBAACA;KAAQ,OAAO;KAAU,KAAK;KAAG;gBAChC,oBAAC;MACC,KAAK,OAAO,SAAS;MACrB,QAAQ;MACR,KAAK,oCAAoC,KAAK;MAC9C,OAAO,EAAE,cAAc,GAAG;MAC1B,OAAO;OACP,EACF,oBAAC;MAAK,WAAW,OAAO;gBAAM;OAAc;MACpC,EACV,oBAACC,gBAAK,MAAM,iBAAkB;KACtB,EACT;IACO;EAEZ,SAAS;EAER;GACO,GAEV;;AAIJ,aAAa,cAAc;AAE3B,2BAAe"}