{"version":3,"file":"PopoverPanel.mjs","names":["Flexbox"],"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      trigger={'hover'}\n      content={\n        <Flexbox gap={8}>\n          <Flexbox\n            horizontal\n            className={styles.link}\n            gap={12}\n            justify={'space-between'}\n            onClick={() => {\n              window.open(url, '_blank');\n            }}\n          >\n            <Flexbox horizontal align={'center'} gap={4}>\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    >\n      {children}\n    </Popover>\n  ) : (\n    children\n  );\n};\n\nPopoverPanel.displayName = 'MdxPopoverPanel';\n\nexport default PopoverPanel;\n"],"mappings":";;;;;;;;;AAmBA,MAAM,gBAAuC,EAAE,UAAU,YAAY,OAAO,KAAK,UAAU;CACzF,MAAM,CAAC,cAAc,QAAQ,QAAQ,cAAc;EACjD,IAAI;GACF,MAAM,SAAS,IAAI,IAAI,GAAI;GAC3B,MAAM,aAAa,OAAO;GAE1B,IAAI,eAAe;GAEnB,IAAI,UAAU,KACZ,eAAe;GAGjB,IAAI,SAAS,OAAO,SAAS,QAAQ,QAAQ,EAAE;GAC/C,IAAI,CAAC,cAAc,SAAS;GAE5B,OAAO;IAAC;IAAc;IAAQ;GAAU;EAC1C,QAAQ;GACN,OAAO;IAAC;IAAO;IAAK;GAAG;EACzB;CACF,GAAG,CAAC,KAAK,KAAK,CAAC;CAEf,OAAO,cAAc,MACnB,oBAAC,SAAD;EACE,OAAO;EACP,SAAS;EACT,SACE,qBAACA,mBAAD;GAAS,KAAK;aAAd,CACE,qBAACA,mBAAD;IACE,YAAA;IACA,WAAW,OAAO;IAClB,KAAK;IACL,SAAS;IACT,eAAe;KACb,OAAO,KAAK,KAAK,QAAQ;IAC3B;cAPF,CASE,qBAACA,mBAAD;KAAS,YAAA;KAAW,OAAO;KAAU,KAAK;eAA1C,CACE,oBAAC,OAAD;MACE,KAAK,OAAO,SAAS;MACrB,QAAQ;MACR,KAAK,oCAAoC,KAAK;MAC9C,OAAO,EAAE,cAAc,EAAE;MACzB,OAAO;KACR,CAAA,GACD,oBAAC,QAAD;MAAM,WAAW,OAAO;gBAAM;KAAa,CAAA,CACpC;QACT,oBAAC,MAAD,EAAM,MAAM,eAAiB,CAAA,CACtB;OACR,YACM;;EAGV;CACM,CAAA,IAET;AAEJ;AAEA,aAAa,cAAc"}