{"version":3,"sources":["../src/default-portal.tsx"],"sourcesContent":["import type { FC, PropsWithChildren } from \"react\"\nimport { useSafeLayoutEffect } from \"@yamada-ui/utils\"\nimport { useEffect, useRef, useState } from \"react\"\nimport { createPortal } from \"react-dom\"\nimport { PortalProvider, usePortal } from \"./portal-provider\"\n\nexport const DefaultPortal: FC<\n  PropsWithChildren<{ appendToParentPortal: boolean }>\n> = ({ appendToParentPortal, children }) => {\n  const [node, setNode] = useState<HTMLElement | null>(null)\n  const el = useRef<HTMLDivElement | null>(null)\n\n  const [, forceUpdate] = useState({})\n\n  useEffect(() => forceUpdate({}), [])\n\n  const parent = usePortal()\n\n  useSafeLayoutEffect(() => {\n    if (!node) return\n\n    const { ownerDocument } = node\n    const host = appendToParentPortal\n      ? (parent ?? ownerDocument.body)\n      : ownerDocument.body\n\n    el.current = ownerDocument.createElement(\"div\")\n    el.current.className = \"ui-portal\"\n\n    host.appendChild(el.current)\n    forceUpdate({})\n\n    const portalNode = el.current\n\n    return () => {\n      if (host.contains(portalNode)) host.removeChild(portalNode)\n    }\n  }, [node])\n\n  return el.current ? (\n    createPortal(\n      <PortalProvider value={el.current}>{children}</PortalProvider>,\n      el.current,\n    )\n  ) : (\n    <span ref={(el) => (el ? setNode(el) : undefined)} />\n  )\n}\n"],"mappings":";;;;;;;AACA,SAAS,2BAA2B;AACpC,SAAS,WAAW,QAAQ,gBAAgB;AAC5C,SAAS,oBAAoB;AAsCvB;AAnCC,IAAM,gBAET,CAAC,EAAE,sBAAsB,SAAS,MAAM;AAC1C,QAAM,CAAC,MAAM,OAAO,IAAI,SAA6B,IAAI;AACzD,QAAM,KAAK,OAA8B,IAAI;AAE7C,QAAM,CAAC,EAAE,WAAW,IAAI,SAAS,CAAC,CAAC;AAEnC,YAAU,MAAM,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC;AAEnC,QAAM,SAAS,UAAU;AAEzB,sBAAoB,MAAM;AACxB,QAAI,CAAC,KAAM;AAEX,UAAM,EAAE,cAAc,IAAI;AAC1B,UAAM,OAAO,uBACR,0BAAU,cAAc,OACzB,cAAc;AAElB,OAAG,UAAU,cAAc,cAAc,KAAK;AAC9C,OAAG,QAAQ,YAAY;AAEvB,SAAK,YAAY,GAAG,OAAO;AAC3B,gBAAY,CAAC,CAAC;AAEd,UAAM,aAAa,GAAG;AAEtB,WAAO,MAAM;AACX,UAAI,KAAK,SAAS,UAAU,EAAG,MAAK,YAAY,UAAU;AAAA,IAC5D;AAAA,EACF,GAAG,CAAC,IAAI,CAAC;AAET,SAAO,GAAG,UACR;AAAA,IACE,oBAAC,kBAAe,OAAO,GAAG,SAAU,UAAS;AAAA,IAC7C,GAAG;AAAA,EACL,IAEA,oBAAC,UAAK,KAAK,CAACA,QAAQA,MAAK,QAAQA,GAAE,IAAI,QAAY;AAEvD;","names":["el"]}