{"version":3,"sources":["../src/container-portal.tsx"],"sourcesContent":["import type { FC, PropsWithChildren, RefObject } from \"react\"\nimport { useSafeLayoutEffect } from \"@yamada-ui/utils\"\nimport { useMemo, useState } from \"react\"\nimport { createPortal } from \"react-dom\"\nimport { PortalProvider } from \"./portal-provider\"\n\ninterface ContainerPortalProps extends PropsWithChildren {\n  containerRef: RefObject<HTMLElement | null>\n  appendToParentPortal?: boolean\n}\n\nexport const ContainerPortal: FC<ContainerPortalProps> = ({\n  appendToParentPortal,\n  children,\n  containerRef,\n}) => {\n  const parent = containerRef.current\n  const host =\n    parent ?? (typeof window !== \"undefined\" ? document.body : undefined)\n\n  const portal = useMemo(() => {\n    if (!parent) return\n\n    const { ownerDocument } = parent\n\n    const node = ownerDocument.createElement(\"div\")\n\n    node.className = \"ui-portal\"\n\n    return node\n  }, [parent])\n\n  const [, forceUpdate] = useState({})\n\n  useSafeLayoutEffect(() => forceUpdate({}), [])\n\n  useSafeLayoutEffect(() => {\n    if (!portal || !host) return\n\n    host.appendChild(portal)\n\n    return () => {\n      host.removeChild(portal)\n    }\n  }, [portal, host])\n\n  return host && portal\n    ? createPortal(\n        <PortalProvider value={appendToParentPortal ? portal : null}>\n          {children}\n        </PortalProvider>,\n        portal,\n      )\n    : null\n}\n"],"mappings":";;;;;;AACA,SAAS,2BAA2B;AACpC,SAAS,SAAS,gBAAgB;AAClC,SAAS,oBAAoB;AA6CrB;AArCD,IAAM,kBAA4C,CAAC;AAAA,EACxD;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,QAAM,SAAS,aAAa;AAC5B,QAAM,OACJ,0BAAW,OAAO,WAAW,cAAc,SAAS,OAAO;AAE7D,QAAM,SAAS,QAAQ,MAAM;AAC3B,QAAI,CAAC,OAAQ;AAEb,UAAM,EAAE,cAAc,IAAI;AAE1B,UAAM,OAAO,cAAc,cAAc,KAAK;AAE9C,SAAK,YAAY;AAEjB,WAAO;AAAA,EACT,GAAG,CAAC,MAAM,CAAC;AAEX,QAAM,CAAC,EAAE,WAAW,IAAI,SAAS,CAAC,CAAC;AAEnC,sBAAoB,MAAM,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC;AAE7C,sBAAoB,MAAM;AACxB,QAAI,CAAC,UAAU,CAAC,KAAM;AAEtB,SAAK,YAAY,MAAM;AAEvB,WAAO,MAAM;AACX,WAAK,YAAY,MAAM;AAAA,IACzB;AAAA,EACF,GAAG,CAAC,QAAQ,IAAI,CAAC;AAEjB,SAAO,QAAQ,SACX;AAAA,IACE,oBAAC,kBAAe,OAAO,uBAAuB,SAAS,MACpD,UACH;AAAA,IACA;AAAA,EACF,IACA;AACN;","names":[]}