UNPKG

2.88 kBJavaScriptView Raw
1import { string, oneOfType, element, func, bool } from 'prop-types';
2import { a as _objectSpread, c as _objectWithoutPropertiesLoose, g as _extends } from './chunk-1f79df9b.js';
3import 'reakit/Box';
4import 'reakit/Block';
5import 'reakit/Inline';
6import InlineBlock from 'reakit/InlineBlock';
7import 'reakit/Flex';
8import 'reakit/InlineFlex';
9import 'reakit/Grid';
10import { createElement, cloneElement, Fragment } from 'react';
11import Pane from './Pane/index.js';
12import { a as isFunction } from './chunk-5c9bbccf.js';
13import PopoverContainer from './Popover/PopoverContainer.js';
14import PopoverHide from './Popover/PopoverHide.js';
15import PopoverClose from './Popover/PopoverClose.js';
16import PopoverPopover, { popoverPopoverPropTypes, popoverPopoverDefaultProps } from './Popover/PopoverPopover.js';
17import PopoverShow from './Popover/PopoverShow.js';
18import PopoverToggle from './Popover/PopoverToggle.js';
19
20var Popover = function Popover(_ref) {
21 var children = _ref.children,
22 content = _ref.content,
23 isFullWidth = _ref.isFullWidth,
24 showCloseButton = _ref.showCloseButton,
25 props = _objectWithoutPropertiesLoose(_ref, ["children", "content", "isFullWidth", "showCloseButton"]);
26
27 return createElement(PopoverContainer, null, function (popover) {
28 return createElement(InlineBlock, {
29 relative: true,
30 width: isFullWidth ? '100%' : undefined
31 }, isFunction(children) ?
32 /*
33 // @ts-ignore */
34 children(_objectSpread({
35 use: PopoverToggle
36 }, popover)) : children ? cloneElement(children, _objectSpread({
37 use: PopoverToggle
38 }, popover)) : null, createElement(PopoverPopover, _extends({
39 elevation: "200"
40 }, props, popover, {
41 use: Pane
42 }), function (_ref2) {
43 var initialFocusRef = _ref2.initialFocusRef;
44 return createElement(Fragment, null, showCloseButton && createElement(PopoverClose, _extends({
45 elementRef: initialFocusRef
46 }, popover)), typeof content === 'function' ? content(_objectSpread({
47 initialFocusRef: initialFocusRef
48 }, popover)) : content);
49 }));
50 });
51};
52Popover.Popover = PopoverPopover;
53Popover.Container = PopoverContainer;
54Popover.Close = PopoverClose;
55Popover.Hide = PopoverHide;
56Popover.Show = PopoverShow;
57Popover.Toggle = PopoverToggle;
58var popoverPropTypes = _objectSpread({}, popoverPopoverPropTypes, {
59 className: string,
60 children: oneOfType([element, func]).isRequired,
61 content: oneOfType([string, element, func]),
62 isFullWidth: bool,
63 showCloseButton: bool
64});
65Popover.propTypes = popoverPropTypes;
66var popoverDefaultProps = _objectSpread({}, popoverPopoverDefaultProps, {
67 children: undefined,
68 className: undefined,
69 isFullWidth: false,
70 showCloseButton: false
71});
72Popover.defaultProps = popoverDefaultProps; // @ts-ignore
73
74var C = Popover;
75
76export { C as a, popoverPropTypes as b, popoverDefaultProps as c };