{"version":3,"file":"GaleriaView.jsx","sourceRoot":"","sources":["../src/GaleriaView.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;AACZ,OAAO,EACL,QAAQ,EACR,KAAK,EAEL,MAAM,EACN,SAAS,EACT,UAAU,EACV,cAAc,EACd,YAAY,GACb,MAAM,OAAO,CAAA;AACd,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA,CAAC,oBAAoB;AAKvE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAE1C,SAAS,KAAK,CAAC,EACb,KAAK,EACL,KAAK,GAAG,CAAC,EACT,QAAQ,EACR,KAAK,EACL,kBAAkB,GAAG,KAAK,GACT;IACjB,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC3C,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,UAAU,CAAC,cAAc,CAAC,CAAA;IAClD,MAAM,GAAG,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,CAAA;IACzB,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;IACjD,MAAM,EAAE,GAAG,KAAK,EAAE,CAAA;IAClB,MAAM,kBAAkB,GAAG,CAAC,IAAU,EAA2B,EAAE;QACjE,IAAI,IAAI,YAAY,gBAAgB,EAAE,CAAC;YACrC,OAAO,IAAI,CAAA;QACb,CAAC;QACD,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClD,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;gBAChD,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAA;gBACxC,IAAI,MAAM;oBAAE,OAAO,MAAM,CAAA;YAC3B,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC,CAAA;IACD,MAAM,kBAAkB,GAAG,CAAC,IAAU,EAAE,EAAE;QACxC,MAAM,SAAS,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAA;QAC1C,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,CACL,SAAS,CAAC,qBAAqB,EAAE,CAAC,KAAK;gBACvC,SAAS,CAAC,qBAAqB,EAAE,CAAC,MAAM,CACzC,CAAA;QACH,CAAC;QACD,OAAO,CAAC,CAAA;IACV,CAAC,CAAA;IACD,MAAM,OAAO,GAAG,CACd,CAAsE,EACtE,EAAE;QACF,MAAM,SAAS,GAAG,kBAAkB,CAAC,CAAC,CAAC,MAAc,CAAC,CAAA;QACtD,IAAI,SAAS,EAAE,CAAC;YACd,SAAS,CAAC,IAAI,CAAC,CAAA;YACf,MAAM,KAAK,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAA;YAC3C,cAAc,CAAC,KAAK,CAAC,CAAA;YACrB,IACE,OAAO,OAAO,IAAI,WAAW;gBAC7B,OAAO,OAAO,CAAC,GAAG,IAAI,WAAW;gBACjC,OAAO,EAAE,GAAG,EAAE,QAAQ,KAAK,aAAa;gBACxC,SAAS,CAAC,aAAa,EACvB,CAAC;gBACD,MAAM,eAAe,GAAG,kBAAkB,CAAC,SAAS,CAAC,aAAa,CAAC,CAAA;gBAEnE,IAAI,eAAe,KAAK,KAAK,EAAE,CAAC;oBAC9B,OAAO,CAAC,KAAK,CACX;;;;kFAIsE,CACvE,CAAA;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC,CAAA;IACD,MAAM,UAAU,GAAG;QACjB,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,SAAS;KAChB,CAAC,KAAK,CAAC,CAAA;IACR,MAAM,UAAU,GAAG;QACjB,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,SAAS;KAChB,CAAC,KAAK,CAAC,CAAA;IACR,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAE7C,IAAI,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACvB,UAAU,CAAC,IAAI,CAAC,CAAA;IAClB,CAAC;IAED,OAAO,CACL,EACE;MAAA,CAAC,MAAM,CAAC,GAAG,CACT,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,EAAY,CAAC;IACpE,sBAAsB;IACtB,wBAAwB;IACxB,yBAAyB;IACzB,OAAO,CAAC,CAAC,OAAO,CAAC,CACjB,QAAQ,CAAC,CAAC,EAAE,CAAC,CAEb;QAAA,CAAC,cAAc,CAAC,QAAQ,CAAC;YACvB,CAAC,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,KAAK,EAAY,CAAC;YACxD,CAAC,CAAC,QAAQ,CACd;MAAA,EAAE,MAAM,CAAC,GAAG,CAEZ;;MAAA,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAC3D;QAAA,CAAC,gBAAgB,CACf;UAAA,CAAC,CAAC,UAAU,EAAE,EAAE;YACd,yGAAyG;YACzG,0HAA0H;YAE1H,4CAA4C;YAC5C,MAAM,WAAW,GAAG,UAAU,CAAC,KAAK,GAAG,UAAU,CAAC,MAAM,CAAA;YACxD,MAAM,UAAU,GAAG,WAAW,CAAA;YAE9B,4DAA4D;YAC5D,MAAM,KAAK,GACT,UAAU,GAAG,WAAW;gBACtB,CAAC,CAAC,UAAU,CAAC,KAAK;gBAClB,CAAC,CAAC,UAAU,CAAC,MAAM,GAAG,UAAU,CAAA;YACpC,MAAM,MAAM,GACV,UAAU,GAAG,WAAW;gBACtB,CAAC,CAAC,UAAU,CAAC,KAAK,GAAG,UAAU;gBAC/B,CAAC,CAAC,UAAU,CAAC,MAAM,CAAA;YAEvB,OAAO,CACL,CAAC,MAAM,CAAC,GAAG,CACT,KAAK,CAAC,CAAC;oBACL,QAAQ,EAAE,UAAU;oBACpB,KAAK,EAAE,CAAC;oBACR,OAAO,EAAE,MAAM;oBACf,cAAc,EAAE,QAAQ;oBACxB,UAAU,EAAE,QAAQ;iBACrB,CAAC,CACF,OAAO,CAAC,CAAC,EAAE,eAAe,EAAE,UAAU,GAAG,IAAI,EAAE,CAAC,CAChD,OAAO,CAAC,CAAC,EAAE,eAAe,EAAE,UAAU,EAAE,CAAC,CACzC,IAAI,CAAC,CAAC,EAAE,eAAe,EAAE,UAAU,GAAG,IAAI,EAAE,CAAC,CAE7C;gBAAA,CAAC,GAAG,CAAC,CAAC,CAAC,CACL,CAAC,MAAM,CAAC,GAAG,CACT,QAAQ,CAAC,CAAC,EAAE,CAAC,CACb,KAAK,CAAC,CAAC;wBACL,KAAK;wBACL,MAAM;wBACN,SAAS,EAAE,OAAO;wBAClB,MAAM,EAAE,IAAI;qBACb,CAAC,CACF,GAAG,CAAC,CAAC,GAAa,CAAC,CACpB,EAAE,MAAM,CAAC,GAAG,CAAC,CACf,CAAC,CAAC,CAAC,IAAI,CACV;cAAA,EAAE,MAAM,CAAC,GAAG,CAAC,CACd,CAAA;QACH,CAAC,CACH;QAAA,EAAE,gBAAgB,CAElB;;QAAA,CAAC,MAAM,CAAC,GAAG,CACT,KAAK,CAAC,CAAC;YACL,QAAQ,EAAE,UAAU;YACpB,GAAG,EAAE,CAAC;YACN,IAAI,EAAE,CAAC;YACP,OAAO,EAAE,EAAE;YACX,MAAM,EAAE,SAAS;SAClB,CAAC,CACF,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CACxB,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CACxB,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAErB;UAAA,CAAC,GAAG,CACF,KAAK,CAAC,IAAI,CACV,MAAM,CAAC,IAAI,CACX,OAAO,CAAC,WAAW,CACnB,IAAI,CAAC,MAAM,CACX,KAAK,CAAC,4BAA4B,CAElC;YAAA,CAAC,IAAI,CACH,CAAC,CAAC,+GAA+G,CACjH,IAAI,CAAC,CAAC,UAAU,CAAC,EAErB;UAAA,EAAE,GAAG,CACP;QAAA,EAAE,MAAM,CAAC,GAAG,CAEZ;;QAAA,CAAC,YAAY,CACX,QAAQ,CAAC,CAAC,GAAG,EAAE;YACb,MAAM,IAAI,SAAS,CAAC,KAAK,CAAC,CAAA;QAC5B,CAAC,CAAC,EAEN;MAAA,EAAE,UAAU,CACd;IAAA,GAAG,CACJ,CAAA;AACH,CAAC;AAED,SAAS,IAAI,CAAC,EACZ,QAAQ,EACR,IAAI,EACJ,KAAK,GAAG,MAAM,EACd,GAAG,GAC2B;IAC9B,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC;QACpC,IAAI,EAAE,KAAK;KASR,CAAC,CAAA;IACN,OAAO,CACL,CAAC,cAAc,CAAC,QAAQ,CACtB,KAAK,CAAC,CAAC;YACL,eAAe,EAAE,KAAK;YACtB,kBAAkB,EAAE,KAAK;YACzB,aAAa,EAAE,SAAS;YACxB,OAAO;YACP,IAAI;YACJ,KAAK;YACL,GAAG,CAAC,SAAS,CAAC,IAAI;gBAChB,CAAC,CAAC;oBACE,IAAI,EAAE,IAAI;oBACV,GAAG,EAAE,SAAS,CAAC,GAAG;oBAClB,YAAY,EAAE,SAAS,CAAC,YAAY;iBACrC;gBACH,CAAC,CAAC;oBACE,IAAI,EAAE,KAAK;oBACX,GAAG,EAAE,EAAE;oBACP,YAAY,EAAE,CAAC;iBAChB,CAAC;YACN,GAAG;SACJ,CAAC,CAEF;MAAA,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CACvC;QAAA,CAAC,QAAQ,CACX;MAAA,EAAE,WAAW,CACf;IAAA,EAAE,cAAc,CAAC,QAAQ,CAAC,CAC3B,CAAA;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,EACxB,QAAQ,GAGT;IACC,MAAM,UAAU,GAAG,mBAAmB,EAAE,CAAA;IACxC,OAAO,QAAQ,CAAC,UAAU,CAAC,CAAA;AAC7B,CAAC;AAED,SAAS,YAAY,CAAC,EAAE,QAAQ,EAA4B;IAC1D,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAA;IAC/C,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAA;IAE9C,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAS,UAAU,CAAC,EAClB,OAAO,EACP,QAAQ,EACR,OAAO,GAKR;IACC,MAAM,UAAU,GAAG,MAAM,CAAwB,IAAI,CAAC,CAAA;IACtD,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;QACzD,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;QAC7C,OAAO,CAAC,YAAY,CAAC,eAAe,EAAE,GAAG,CAAC,CAAA;QAE1C,IAAI,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;YAC7B,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;YAClC,UAAU,CAAC,OAAO,GAAG,OAAO,CAAA;QAC9B,CAAC;IACH,CAAC;IAED,sDAAsD;IACtD,SAAS,CAAC,SAAS,OAAO;QACxB,OAAO,GAAG,EAAE;YACV,IAAI,QAAQ,CAAC,IAAI,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;gBACxC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;gBAC7C,UAAU,CAAC,OAAO,GAAG,IAAI,CAAA;YAC3B,CAAC;QACH,CAAC,CAAA;IACH,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAA;IACzB,MAAM,IAAI,GAAG,CACX,CAAC,GAAG,CACF,KAAK,CAAC,CAAC;YACL,QAAQ,EAAE,OAAO;YACjB,GAAG,EAAE,CAAC;YACN,IAAI,EAAE,CAAC;YACP,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,CAAC;YACT,MAAM,EAAE,GAAG;SACZ,CAAC,CACF,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE;YACb,OAAO,EAAE,CAAA;QACX,CAAC,CAAC,CAEF;MAAA,CAAC,QAAQ,CACX;IAAA,EAAE,GAAG,CAAC,CACP,CAAA;IACD,OAAO,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;AAC3E,CAAC;AAED,MAAM,OAAO,GAAkB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;IACjD,KAAK;IACL,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI;CAClB,CAAC,CAAA;AAEF,eAAe,OAAO,CAAA","sourcesContent":["'use client'\nimport {\n  useState,\n  useId,\n  ComponentProps,\n  useRef,\n  useEffect,\n  useContext,\n  isValidElement,\n  cloneElement,\n} from 'react'\nimport { createPortal } from 'react-dom'\nimport { useWindowDimensions } from 'react-native' // TODO: remove this\n\nimport { GaleriaViewProps } from './Galeria.types'\nimport type Native from './GaleriaView.ios'\n\nimport { LayoutGroup, motion, useDomEvent } from 'framer-motion'\nimport { GaleriaContext } from './context'\n\nfunction Image({\n  __web,\n  index = 0,\n  children,\n  style,\n  dynamicAspectRatio = false,\n}: GaleriaViewProps) {\n  const [isOpen, setIsOpen] = useState(false)\n  const { urls, theme } = useContext(GaleriaContext)\n  const url = urls?.[index]\n  const [aspectRatio, setAspectRatio] = useState(1)\n  const id = useId()\n  const getFirstImageChild = (node: Node): HTMLImageElement | null => {\n    if (node instanceof HTMLImageElement) {\n      return node\n    }\n    if (node.childNodes && node.childNodes.length > 0) {\n      for (const child of Array.from(node.childNodes)) {\n        const result = getFirstImageChild(child)\n        if (result) return result\n      }\n    }\n    return null\n  }\n  const getNodeAspectRatio = (node: Node) => {\n    const imageNode = getFirstImageChild(node)\n    if (imageNode) {\n      return (\n        imageNode.getBoundingClientRect().width /\n        imageNode.getBoundingClientRect().height\n      )\n    }\n    return 1\n  }\n  const onClick = (\n    e: React.MouseEvent<HTMLDivElement> | React.TouchEvent<HTMLDivElement>,\n  ) => {\n    const imageNode = getFirstImageChild(e.target as Node)\n    if (imageNode) {\n      setIsOpen(true)\n      const ratio = getNodeAspectRatio(imageNode)\n      setAspectRatio(ratio)\n      if (\n        typeof process != 'undefined' &&\n        typeof process.env != 'undefined' &&\n        process?.env?.NODE_ENV === 'development' &&\n        imageNode.parentElement\n      ) {\n        const nodeAspectRatio = getNodeAspectRatio(imageNode.parentElement)\n\n        if (nodeAspectRatio !== ratio) {\n          console.error(\n            `[galeria] Galeria.Image does not have the same aspect ratio as its child.\n\nThis might result in a weird animation. To fix it, pass the \"style\" prop to Galeria.Image to give it the same height & width as the image.\n\nOr, you might need something like alignItems: 'flex-start' to the parent element.`,\n          )\n        }\n      }\n    }\n  }\n  const background = {\n    light: '#ffffff',\n    dark: '#000000',\n  }[theme]\n  const foreground = {\n    light: '#000000',\n    dark: '#ffffff',\n  }[theme]\n  const [wasOpen, setWasOpen] = useState(false)\n\n  if (isOpen && !wasOpen) {\n    setWasOpen(true)\n  }\n\n  return (\n    <>\n      <motion.div\n        style={{ zIndex: index + (wasOpen ? 1000 : 0), ...style } as object}\n        // faster than onClick\n        // onMouseDown={onClick}\n        // onTouchStart={onClick}\n        onClick={onClick}\n        layoutId={id}\n      >\n        {isValidElement(children)\n          ? cloneElement(children, { draggable: false } as object)\n          : children}\n      </motion.div>\n\n      <PopupModal visible={isOpen} onClose={() => setIsOpen(false)}>\n        <WindowDimensions>\n          {(dimensions) => {\n            // given the image aspect ratio, and the window dimensions, we want to derive the proper height and width\n            // such that it spans the size of the window with a \"contain\" effect, but implemented in code rather than using object-fit\n\n            // Calculate dimensions for \"contain\" effect\n            const windowRatio = dimensions.width / dimensions.height\n            const imageRatio = aspectRatio\n\n            // If image is wider than window (relative to their heights)\n            const width =\n              imageRatio > windowRatio\n                ? dimensions.width\n                : dimensions.height * imageRatio\n            const height =\n              imageRatio > windowRatio\n                ? dimensions.width / imageRatio\n                : dimensions.height\n\n            return (\n              <motion.div\n                style={{\n                  position: 'absolute',\n                  inset: 0,\n                  display: 'flex',\n                  justifyContent: 'center',\n                  alignItems: 'center',\n                }}\n                initial={{ backgroundColor: background + '00' }}\n                animate={{ backgroundColor: background }}\n                exit={{ backgroundColor: background + '00' }}\n              >\n                {url ? (\n                  <motion.img\n                    layoutId={id}\n                    style={{\n                      width,\n                      height,\n                      objectFit: 'cover',\n                      zIndex: 2000,\n                    }}\n                    src={url as string}\n                  ></motion.img>\n                ) : null}\n              </motion.div>\n            )\n          }}\n        </WindowDimensions>\n\n        <motion.div\n          style={{\n            position: 'absolute',\n            top: 0,\n            left: 0,\n            padding: 16,\n            cursor: 'pointer',\n          }}\n          initial={{ opacity: 0 }}\n          animate={{ opacity: 1 }}\n          exit={{ opacity: 0 }}\n        >\n          <svg\n            width=\"24\"\n            height=\"24\"\n            viewBox=\"0 0 24 24\"\n            fill=\"none\"\n            xmlns=\"http://www.w3.org/2000/svg\"\n          >\n            <path\n              d=\"M19 6.41L17.59 5L12 10.59L6.41 5L5 6.41L10.59 12L5 17.59L6.41 19L12 13.41L17.59 19L19 17.59L13.41 12L19 6.41Z\"\n              fill={foreground}\n            />\n          </svg>\n        </motion.div>\n\n        <OnScrollOnce\n          onScroll={() => {\n            isOpen && setIsOpen(false)\n          }}\n        />\n      </PopupModal>\n    </>\n  )\n}\n\nfunction Root({\n  children,\n  urls,\n  theme = 'dark',\n  ids,\n}: ComponentProps<typeof Native>) {\n  const [openState, setOpen] = useState({\n    open: false,\n  } as\n    | {\n        open: false\n      }\n    | {\n        open: true\n        src: string\n        initialIndex: number\n      })\n  return (\n    <GaleriaContext.Provider\n      value={{\n        hideBlurOverlay: false,\n        hidePageIndicators: false,\n        closeIconName: undefined,\n        setOpen,\n        urls,\n        theme,\n        ...(openState.open\n          ? {\n              open: true,\n              src: openState.src,\n              initialIndex: openState.initialIndex,\n            }\n          : {\n              open: false,\n              src: '',\n              initialIndex: 0,\n            }),\n        ids,\n      }}\n    >\n      <LayoutGroup inherit={false} id={useId()}>\n        {children}\n      </LayoutGroup>\n    </GaleriaContext.Provider>\n  )\n}\n\nfunction WindowDimensions({\n  children,\n}: {\n  children: (dimensions: { width: number; height: number }) => React.ReactNode\n}) {\n  const dimensions = useWindowDimensions()\n  return children(dimensions)\n}\n\nfunction OnScrollOnce({ onScroll }: { onScroll: () => void }) {\n  useDomEvent(useRef(window), 'scroll', onScroll)\n  useDomEvent(useRef(window), 'wheel', onScroll)\n\n  return null\n}\n\nfunction PopupModal({\n  visible,\n  children,\n  onClose,\n}: {\n  visible: boolean\n  children: React.ReactNode\n  onClose: () => void\n}) {\n  const elementRef = useRef<HTMLDivElement | null>(null)\n  if (typeof window !== 'undefined' && !elementRef.current) {\n    const element = document.createElement('div')\n    element.setAttribute('galeria-popup', '1')\n\n    if (element && document.body) {\n      document.body.appendChild(element)\n      elementRef.current = element\n    }\n  }\n\n  // eslint-disable-next-line react-hooks/rules-of-hooks\n  useEffect(function cleanup() {\n    return () => {\n      if (document.body && elementRef.current) {\n        document.body.removeChild(elementRef.current)\n        elementRef.current = null\n      }\n    }\n  }, [])\n\n  if (!visible) return null\n  const node = (\n    <div\n      style={{\n        position: 'fixed',\n        top: 0,\n        left: 0,\n        right: 0,\n        bottom: 0,\n        zIndex: 100,\n      }}\n      onClick={(e) => {\n        onClose()\n      }}\n    >\n      {children}\n    </div>\n  )\n  return elementRef.current ? createPortal(node, elementRef.current) : null\n}\n\nconst Galeria: typeof Native = Object.assign(Root, {\n  Image,\n  Popup: () => null,\n})\n\nexport default Galeria\n"]}