UNPKG

@itwin/itwinui-react

Version:

A react component library for iTwinUI

99 lines (98 loc) 2.99 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true, }); Object.defineProperty(exports, 'Dialog', { enumerable: true, get: function () { return Dialog; }, }); const _interop_require_default = require('@swc/helpers/_/_interop_require_default'); const _interop_require_wildcard = require('@swc/helpers/_/_interop_require_wildcard'); const _react = /*#__PURE__*/ _interop_require_wildcard._(require('react')); const _classnames = /*#__PURE__*/ _interop_require_default._( require('classnames'), ); const _DialogTitleBar = require('./DialogTitleBar.js'); const _DialogContent = require('./DialogContent.js'); const _DialogBackdrop = require('./DialogBackdrop.js'); const _DialogContext = require('./DialogContext.js'); const _DialogButtonBar = require('./DialogButtonBar.js'); const _DialogMain = require('./DialogMain.js'); const _index = require('../../utils/index.js'); const DialogComponent = _react.forwardRef((props, forwardedRef) => { let { trapFocus = false, setFocus = trapFocus, preventDocumentScroll = false, isOpen = false, isDismissible = true, closeOnEsc = true, closeOnExternalClick = false, onClose, isDraggable = false, isResizable = false, relativeTo = 'viewport', placement, className, portal = false, ...rest } = props; let dialogRootRef = _react.useRef(null); let [dialogElement, setDialogElement] = _react.useState(null); let mergedRefs = (0, _index.useMergedRefs)(forwardedRef, dialogRootRef); return isOpen ? _react.createElement( _DialogContext.DialogContext.Provider, { value: { isOpen, onClose, closeOnEsc, closeOnExternalClick, isDismissible, preventDocumentScroll, trapFocus, setFocus, isDraggable, isResizable, relativeTo, placement, dialogRootRef, setDialogElement, }, }, _react.createElement( _index.Portal, { portal: portal, }, _react.createElement( _index.PortalContainerContext.Provider, { value: dialogElement, }, _react.createElement(_index.Box, { className: (0, _classnames.default)( 'iui-dialog-wrapper', className, ), 'data-iui-relative': 'container' === relativeTo, ref: mergedRefs, ...rest, }), ), ), ) : null; }); if ('development' === process.env.NODE_ENV) DialogComponent.displayName = 'Dialog'; const Dialog = Object.assign(DialogComponent, { Backdrop: _DialogBackdrop.DialogBackdrop, Main: _DialogMain.DialogMain, TitleBar: _DialogTitleBar.DialogTitleBar, Content: _DialogContent.DialogContent, ButtonBar: _DialogButtonBar.DialogButtonBar, });