# elementor/3.8.0-beta1/app/assets/js/ui/panel/panel.js

Elementor Website Builder – more than just a page builder, version 3.8.0-beta1. 35 lines.

- Page: https://pluginprobe.com/plugins/elementor/3.8.0-beta1/code/app/assets/js/ui/panel/panel.js
- Raw: https://pluginprobe.com/plugins/elementor/3.8.0-beta1/raw/app/assets/js/ui/panel/panel.js
- Modified: 2022-09-19T16:26:20+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/elementor/3.8.0-beta1/code/app/assets/js/ui/panel/panel.js#L10-L20`.

```javascript
import { arrayToClassName } from 'elementor-app/utils/utils.js';

import Card from 'elementor-app/ui/card/card';
import Collapse from 'elementor-app/molecules/collapse';
import PanelHeader from './panel-header';
import PanelHeadline from './panel-headline';
import PanelBody from './panel-body';

import './panel.scss';

export default function Panel( props ) {
	return (
		<Collapse isOpened={ props.isOpened }>
			<Card className={ arrayToClassName( [ 'eps-panel', props.className ] ) }>
				{ props.children }
			</Card>
		</Collapse>
	);
}

Panel.propTypes = {
	className: PropTypes.string,
	isOpened: PropTypes.bool,
	children: PropTypes.any.isRequired,
};

Panel.defaultProps = {
	className: '',
	isOpened: false,
};

Panel.Header = PanelHeader;
Panel.Headline = PanelHeadline;
Panel.Body = PanelBody;

```
