UNPKG

@gravity-ui/uikit

Version:

Gravity UI base styling and components

28 lines (27 loc) 1.25 kB
'use client'; "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Portal = Portal; const tslib_1 = require("tslib"); const jsx_runtime_1 = require("react/jsx-runtime"); const React = tslib_1.__importStar(require("react")); const react_1 = require("@floating-ui/react"); const hooks_1 = require("../../hooks/index.js"); const theme_1 = require("../theme/index.js"); const useThemeContext_1 = require("../theme/useThemeContext.js"); const cn_1 = require("../utils/cn.js"); require("./Portal.css"); const b = (0, cn_1.block)('portal'); function Portal({ container, children, disablePortal }) { const defaultContainer = (0, hooks_1.usePortalContainer)(); const { scoped } = (0, useThemeContext_1.useThemeContext)(); const containerNode = container ?? defaultContainer; if (disablePortal) { return (0, jsx_runtime_1.jsx)(React.Fragment, { children: children }); } if (containerNode) { return ((0, jsx_runtime_1.jsx)(react_1.FloatingPortal, { root: containerNode, children: scoped ? ((0, jsx_runtime_1.jsx)(theme_1.ThemeProvider, { rootClassName: b('theme-wrapper'), scoped: true, children: children })) : (children) })); } return null; } //# sourceMappingURL=Portal.js.map