@wordpress/components
Version:
UI components for WordPress.
56 lines (50 loc) • 4.08 kB
JavaScript
import _extends from "@babel/runtime/helpers/esm/extends";
import { cx as _cx } from "emotion";
import { css as _css } from "emotion";
import { createElement } from "@wordpress/element";
// eslint-disable-next-line no-restricted-imports
import { Popover as ReakitPopover } from 'reakit';
/**
* Internal dependencies
*/
import { Card } from '../card';
import { View } from '../view';
import { usePopoverContext } from './context';
import * as styles from './styles';
import { contextConnect, useContextSystem } from '../context';
/**
*
* @param {import('../context').ViewOwnProps<import('./types').ContentProps, 'div'>} props
* @param {import('react').Ref<any>} forwardedRef
*/
function PopoverContent(props, forwardedRef) {
const {
children,
className,
elevation = 5,
maxWidth = 360,
...otherProps
} = useContextSystem(props, 'PopoverContent');
const {
label,
popover
} = usePopoverContext();
const classes = _cx(styles.PopoverContent, /*#__PURE__*/_css({
maxWidth
}, ";label:classes;" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkB3b3JkcHJlc3MvY29tcG9uZW50cy9zcmMvdWkvcG9wb3Zlci9jb250ZW50LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQStCNEMiLCJmaWxlIjoiQHdvcmRwcmVzcy9jb21wb25lbnRzL3NyYy91aS9wb3BvdmVyL2NvbnRlbnQuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEV4dGVybmFsIGRlcGVuZGVuY2llc1xuICovXG5pbXBvcnQgeyBjc3MsIGN4IH0gZnJvbSAnZW1vdGlvbic7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcmVzdHJpY3RlZC1pbXBvcnRzXG5pbXBvcnQgeyBQb3BvdmVyIGFzIFJlYWtpdFBvcG92ZXIgfSBmcm9tICdyZWFraXQnO1xuXG4vKipcbiAqIEludGVybmFsIGRlcGVuZGVuY2llc1xuICovXG5pbXBvcnQgeyBDYXJkIH0gZnJvbSAnLi4vY2FyZCc7XG5pbXBvcnQgeyBWaWV3IH0gZnJvbSAnLi4vdmlldyc7XG5pbXBvcnQgeyB1c2VQb3BvdmVyQ29udGV4dCB9IGZyb20gJy4vY29udGV4dCc7XG5pbXBvcnQgKiBhcyBzdHlsZXMgZnJvbSAnLi9zdHlsZXMnO1xuaW1wb3J0IHsgY29udGV4dENvbm5lY3QsIHVzZUNvbnRleHRTeXN0ZW0gfSBmcm9tICcuLi9jb250ZXh0JztcblxuLyoqXG4gKlxuICogQHBhcmFtIHtpbXBvcnQoJy4uL2NvbnRleHQnKS5WaWV3T3duUHJvcHM8aW1wb3J0KCcuL3R5cGVzJykuQ29udGVudFByb3BzLCAnZGl2Jz59IHByb3BzXG4gKiBAcGFyYW0ge2ltcG9ydCgncmVhY3QnKS5SZWY8YW55Pn0gZm9yd2FyZGVkUmVmXG4gKi9cbmZ1bmN0aW9uIFBvcG92ZXJDb250ZW50KCBwcm9wcywgZm9yd2FyZGVkUmVmICkge1xuXHRjb25zdCB7XG5cdFx0Y2hpbGRyZW4sXG5cdFx0Y2xhc3NOYW1lLFxuXHRcdGVsZXZhdGlvbiA9IDUsXG5cdFx0bWF4V2lkdGggPSAzNjAsXG5cdFx0Li4ub3RoZXJQcm9wc1xuXHR9ID0gdXNlQ29udGV4dFN5c3RlbSggcHJvcHMsICdQb3BvdmVyQ29udGVudCcgKTtcblxuXHRjb25zdCB7IGxhYmVsLCBwb3BvdmVyIH0gPSB1c2VQb3BvdmVyQ29udGV4dCgpO1xuXHRjb25zdCBjbGFzc2VzID0gY3goIHN0eWxlcy5Qb3BvdmVyQ29udGVudCwgY3NzKCB7IG1heFdpZHRoIH0gKSwgY2xhc3NOYW1lICk7XG5cblx0aWYgKCAhIHBvcG92ZXIgKSB7XG5cdFx0dGhyb3cgbmV3IEVycm9yKFxuXHRcdFx0J2BQb3BvdmVyQ29udGVudGAgbXVzdCBvbmx5IGJlIHVzZWQgaW5zaWRlIGEgYFBvcG92ZXJgLidcblx0XHQpO1xuXHR9XG5cblx0Y29uc3Qgc2hvd0NvbnRlbnQgPSBwb3BvdmVyLnZpc2libGUgfHwgcG9wb3Zlci5hbmltYXRpbmc7XG5cblx0cmV0dXJuIChcblx0XHQ8UmVha2l0UG9wb3ZlclxuXHRcdFx0YXJpYS1sYWJlbD17IGxhYmVsIH1cblx0XHRcdGFzPXsgVmlldyB9XG5cdFx0XHRjbGFzc05hbWU9eyBjbGFzc2VzIH1cblx0XHRcdHsgLi4ub3RoZXJQcm9wcyB9XG5cdFx0XHR7IC4uLnBvcG92ZXIgfVxuXHRcdD5cblx0XHRcdHsgc2hvd0NvbnRlbnQgJiYgKFxuXHRcdFx0XHQ8Q2FyZFxuXHRcdFx0XHRcdGNsYXNzTmFtZT17IHN0eWxlcy5jYXJkU3R5bGUgfVxuXHRcdFx0XHRcdGVsZXZhdGlvbj17IGVsZXZhdGlvbiB9XG5cdFx0XHRcdFx0cmVmPXsgZm9yd2FyZGVkUmVmIH1cblx0XHRcdFx0PlxuXHRcdFx0XHRcdHsgY2hpbGRyZW4gfVxuXHRcdFx0XHQ8L0NhcmQ+XG5cdFx0XHQpIH1cblx0XHQ8L1JlYWtpdFBvcG92ZXI+XG5cdCk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNvbnRleHRDb25uZWN0KCBQb3BvdmVyQ29udGVudCwgJ1BvcG92ZXJDb250ZW50JyApO1xuIl19 */")), className);
if (!popover) {
throw new Error('`PopoverContent` must only be used inside a `Popover`.');
}
const showContent = popover.visible || popover.animating;
return createElement(ReakitPopover, _extends({
"aria-label": label,
as: View,
className: classes
}, otherProps, popover), showContent && createElement(Card, {
className: styles.cardStyle,
elevation: elevation,
ref: forwardedRef
}, children));
}
export default contextConnect(PopoverContent, 'PopoverContent');
//# sourceMappingURL=content.js.map