UNPKG

6.48 kBJavaScriptView Raw
1"use strict";
2'use client';
3
4var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
5var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
6Object.defineProperty(exports, "__esModule", {
7 value: true
8});
9exports.default = void 0;
10var React = _interopRequireWildcard(require("react"));
11var _propTypes = _interopRequireDefault(require("prop-types"));
12var _clsx = _interopRequireDefault(require("clsx"));
13var _integerPropType = _interopRequireDefault(require("@mui/utils/integerPropType"));
14var _chainPropTypes = _interopRequireDefault(require("@mui/utils/chainPropTypes"));
15var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
16var _colorManipulator = require("@mui/system/colorManipulator");
17var _zeroStyled = require("../zero-styled");
18var _memoTheme = _interopRequireDefault(require("../utils/memoTheme"));
19var _DefaultPropsProvider = require("../DefaultPropsProvider");
20var _getOverlayAlpha = _interopRequireDefault(require("../styles/getOverlayAlpha"));
21var _paperClasses = require("./paperClasses");
22var _jsxRuntime = require("react/jsx-runtime");
23const useUtilityClasses = ownerState => {
24 const {
25 square,
26 elevation,
27 variant,
28 classes
29 } = ownerState;
30 const slots = {
31 root: ['root', variant, !square && 'rounded', variant === 'elevation' && `elevation${elevation}`]
32 };
33 return (0, _composeClasses.default)(slots, _paperClasses.getPaperUtilityClass, classes);
34};
35const PaperRoot = (0, _zeroStyled.styled)('div', {
36 name: 'MuiPaper',
37 slot: 'Root',
38 overridesResolver: (props, styles) => {
39 const {
40 ownerState
41 } = props;
42 return [styles.root, styles[ownerState.variant], !ownerState.square && styles.rounded, ownerState.variant === 'elevation' && styles[`elevation${ownerState.elevation}`]];
43 }
44})((0, _memoTheme.default)(({
45 theme
46}) => ({
47 backgroundColor: (theme.vars || theme).palette.background.paper,
48 color: (theme.vars || theme).palette.text.primary,
49 transition: theme.transitions.create('box-shadow'),
50 variants: [{
51 props: ({
52 ownerState
53 }) => !ownerState.square,
54 style: {
55 borderRadius: theme.shape.borderRadius
56 }
57 }, {
58 props: {
59 variant: 'outlined'
60 },
61 style: {
62 border: `1px solid ${(theme.vars || theme).palette.divider}`
63 }
64 }, {
65 props: {
66 variant: 'elevation'
67 },
68 style: {
69 boxShadow: 'var(--Paper-shadow)',
70 backgroundImage: 'var(--Paper-overlay)'
71 }
72 }]
73})));
74const Paper = /*#__PURE__*/React.forwardRef(function Paper(inProps, ref) {
75 const props = (0, _DefaultPropsProvider.useDefaultProps)({
76 props: inProps,
77 name: 'MuiPaper'
78 });
79 const theme = (0, _zeroStyled.useTheme)();
80 const {
81 className,
82 component = 'div',
83 elevation = 1,
84 square = false,
85 variant = 'elevation',
86 ...other
87 } = props;
88 const ownerState = {
89 ...props,
90 component,
91 elevation,
92 square,
93 variant
94 };
95 const classes = useUtilityClasses(ownerState);
96 if (process.env.NODE_ENV !== 'production') {
97 if (theme.shadows[elevation] === undefined) {
98 console.error([`MUI: The elevation provided <Paper elevation={${elevation}}> is not available in the theme.`, `Please make sure that \`theme.shadows[${elevation}]\` is defined.`].join('\n'));
99 }
100 }
101 return /*#__PURE__*/(0, _jsxRuntime.jsx)(PaperRoot, {
102 as: component,
103 ownerState: ownerState,
104 className: (0, _clsx.default)(classes.root, className),
105 ref: ref,
106 ...other,
107 style: {
108 ...(variant === 'elevation' && {
109 '--Paper-shadow': (theme.vars || theme).shadows[elevation],
110 ...(theme.vars && {
111 '--Paper-overlay': theme.vars.overlays?.[elevation]
112 }),
113 ...(!theme.vars && theme.palette.mode === 'dark' && {
114 '--Paper-overlay': `linear-gradient(${(0, _colorManipulator.alpha)('#fff', (0, _getOverlayAlpha.default)(elevation))}, ${(0, _colorManipulator.alpha)('#fff', (0, _getOverlayAlpha.default)(elevation))})`
115 })
116 }),
117 ...other.style
118 }
119 });
120});
121process.env.NODE_ENV !== "production" ? Paper.propTypes /* remove-proptypes */ = {
122 // ┌────────────────────────────── Warning ──────────────────────────────┐
123 // │ These PropTypes are generated from the TypeScript type definitions. │
124 // │ To update them, edit the d.ts file and run `pnpm proptypes`. │
125 // └─────────────────────────────────────────────────────────────────────┘
126 /**
127 * The content of the component.
128 */
129 children: _propTypes.default.node,
130 /**
131 * Override or extend the styles applied to the component.
132 */
133 classes: _propTypes.default.object,
134 /**
135 * @ignore
136 */
137 className: _propTypes.default.string,
138 /**
139 * The component used for the root node.
140 * Either a string to use a HTML element or a component.
141 */
142 component: _propTypes.default.elementType,
143 /**
144 * Shadow depth, corresponds to `dp` in the spec.
145 * It accepts values between 0 and 24 inclusive.
146 * @default 1
147 */
148 elevation: (0, _chainPropTypes.default)(_integerPropType.default, props => {
149 const {
150 elevation,
151 variant
152 } = props;
153 if (elevation > 0 && variant === 'outlined') {
154 return new Error(`MUI: Combining \`elevation={${elevation}}\` with \`variant="${variant}"\` has no effect. Either use \`elevation={0}\` or use a different \`variant\`.`);
155 }
156 return null;
157 }),
158 /**
159 * If `true`, rounded corners are disabled.
160 * @default false
161 */
162 square: _propTypes.default.bool,
163 /**
164 * @ignore
165 */
166 style: _propTypes.default.object,
167 /**
168 * The system prop that allows defining system overrides as well as additional CSS styles.
169 */
170 sx: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object, _propTypes.default.bool])), _propTypes.default.func, _propTypes.default.object]),
171 /**
172 * The variant to use.
173 * @default 'elevation'
174 */
175 variant: _propTypes.default /* @typescript-to-proptypes-ignore */.oneOfType([_propTypes.default.oneOf(['elevation', 'outlined']), _propTypes.default.string])
176} : void 0;
177var _default = exports.default = Paper;
\No newline at end of file