UNPKG

8.12 kBJavaScriptView Raw
1"use strict";
2'use client';
3
4var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
5var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
6Object.defineProperty(exports, "__esModule", {
7 value: true
8});
9exports.default = void 0;
10var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
11var _clsx = _interopRequireDefault(require("clsx"));
12var _propTypes = _interopRequireDefault(require("prop-types"));
13var React = _interopRequireWildcard(require("react"));
14var _zeroStyled = require("../zero-styled");
15var _memoTheme = _interopRequireDefault(require("../utils/memoTheme"));
16var _DefaultPropsProvider = require("../DefaultPropsProvider");
17var _capitalize = _interopRequireDefault(require("../utils/capitalize"));
18var _imageListItemBarClasses = require("./imageListItemBarClasses");
19var _jsxRuntime = require("react/jsx-runtime");
20const useUtilityClasses = ownerState => {
21 const {
22 classes,
23 position,
24 actionIcon,
25 actionPosition
26 } = ownerState;
27 const slots = {
28 root: ['root', `position${(0, _capitalize.default)(position)}`, `actionPosition${(0, _capitalize.default)(actionPosition)}`],
29 titleWrap: ['titleWrap', `titleWrap${(0, _capitalize.default)(position)}`, actionIcon && `titleWrapActionPos${(0, _capitalize.default)(actionPosition)}`],
30 title: ['title'],
31 subtitle: ['subtitle'],
32 actionIcon: ['actionIcon', `actionIconActionPos${(0, _capitalize.default)(actionPosition)}`]
33 };
34 return (0, _composeClasses.default)(slots, _imageListItemBarClasses.getImageListItemBarUtilityClass, classes);
35};
36const ImageListItemBarRoot = (0, _zeroStyled.styled)('div', {
37 name: 'MuiImageListItemBar',
38 slot: 'Root',
39 overridesResolver: (props, styles) => {
40 const {
41 ownerState
42 } = props;
43 return [styles.root, styles[`position${(0, _capitalize.default)(ownerState.position)}`]];
44 }
45})((0, _memoTheme.default)(({
46 theme
47}) => {
48 return {
49 position: 'absolute',
50 left: 0,
51 right: 0,
52 background: 'rgba(0, 0, 0, 0.5)',
53 display: 'flex',
54 alignItems: 'center',
55 fontFamily: theme.typography.fontFamily,
56 variants: [{
57 props: {
58 position: 'bottom'
59 },
60 style: {
61 bottom: 0
62 }
63 }, {
64 props: {
65 position: 'top'
66 },
67 style: {
68 top: 0
69 }
70 }, {
71 props: {
72 position: 'below'
73 },
74 style: {
75 position: 'relative',
76 background: 'transparent',
77 alignItems: 'normal'
78 }
79 }]
80 };
81}));
82const ImageListItemBarTitleWrap = (0, _zeroStyled.styled)('div', {
83 name: 'MuiImageListItemBar',
84 slot: 'TitleWrap',
85 overridesResolver: (props, styles) => {
86 const {
87 ownerState
88 } = props;
89 return [styles.titleWrap, styles[`titleWrap${(0, _capitalize.default)(ownerState.position)}`], ownerState.actionIcon && styles[`titleWrapActionPos${(0, _capitalize.default)(ownerState.actionPosition)}`]];
90 }
91})((0, _memoTheme.default)(({
92 theme
93}) => {
94 return {
95 flexGrow: 1,
96 padding: '12px 16px',
97 color: (theme.vars || theme).palette.common.white,
98 overflow: 'hidden',
99 variants: [{
100 props: {
101 position: 'below'
102 },
103 style: {
104 padding: '6px 0 12px',
105 color: 'inherit'
106 }
107 }, {
108 props: ({
109 ownerState
110 }) => ownerState.actionIcon && ownerState.actionPosition === 'left',
111 style: {
112 paddingLeft: 0
113 }
114 }, {
115 props: ({
116 ownerState
117 }) => ownerState.actionIcon && ownerState.actionPosition === 'right',
118 style: {
119 paddingRight: 0
120 }
121 }]
122 };
123}));
124const ImageListItemBarTitle = (0, _zeroStyled.styled)('div', {
125 name: 'MuiImageListItemBar',
126 slot: 'Title',
127 overridesResolver: (props, styles) => styles.title
128})((0, _memoTheme.default)(({
129 theme
130}) => {
131 return {
132 fontSize: theme.typography.pxToRem(16),
133 lineHeight: '24px',
134 textOverflow: 'ellipsis',
135 overflow: 'hidden',
136 whiteSpace: 'nowrap'
137 };
138}));
139const ImageListItemBarSubtitle = (0, _zeroStyled.styled)('div', {
140 name: 'MuiImageListItemBar',
141 slot: 'Subtitle',
142 overridesResolver: (props, styles) => styles.subtitle
143})((0, _memoTheme.default)(({
144 theme
145}) => {
146 return {
147 fontSize: theme.typography.pxToRem(12),
148 lineHeight: 1,
149 textOverflow: 'ellipsis',
150 overflow: 'hidden',
151 whiteSpace: 'nowrap'
152 };
153}));
154const ImageListItemBarActionIcon = (0, _zeroStyled.styled)('div', {
155 name: 'MuiImageListItemBar',
156 slot: 'ActionIcon',
157 overridesResolver: (props, styles) => {
158 const {
159 ownerState
160 } = props;
161 return [styles.actionIcon, styles[`actionIconActionPos${(0, _capitalize.default)(ownerState.actionPosition)}`]];
162 }
163})({
164 variants: [{
165 props: {
166 actionPosition: 'left'
167 },
168 style: {
169 order: -1
170 }
171 }]
172});
173const ImageListItemBar = /*#__PURE__*/React.forwardRef(function ImageListItemBar(inProps, ref) {
174 const props = (0, _DefaultPropsProvider.useDefaultProps)({
175 props: inProps,
176 name: 'MuiImageListItemBar'
177 });
178 const {
179 actionIcon,
180 actionPosition = 'right',
181 className,
182 subtitle,
183 title,
184 position = 'bottom',
185 ...other
186 } = props;
187 const ownerState = {
188 ...props,
189 position,
190 actionPosition
191 };
192 const classes = useUtilityClasses(ownerState);
193 return /*#__PURE__*/(0, _jsxRuntime.jsxs)(ImageListItemBarRoot, {
194 ownerState: ownerState,
195 className: (0, _clsx.default)(classes.root, className),
196 ref: ref,
197 ...other,
198 children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(ImageListItemBarTitleWrap, {
199 ownerState: ownerState,
200 className: classes.titleWrap,
201 children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(ImageListItemBarTitle, {
202 className: classes.title,
203 children: title
204 }), subtitle ? /*#__PURE__*/(0, _jsxRuntime.jsx)(ImageListItemBarSubtitle, {
205 className: classes.subtitle,
206 children: subtitle
207 }) : null]
208 }), actionIcon ? /*#__PURE__*/(0, _jsxRuntime.jsx)(ImageListItemBarActionIcon, {
209 ownerState: ownerState,
210 className: classes.actionIcon,
211 children: actionIcon
212 }) : null]
213 });
214});
215process.env.NODE_ENV !== "production" ? ImageListItemBar.propTypes /* remove-proptypes */ = {
216 // ┌────────────────────────────── Warning ──────────────────────────────┐
217 // │ These PropTypes are generated from the TypeScript type definitions. │
218 // │ To update them, edit the d.ts file and run `pnpm proptypes`. │
219 // └─────────────────────────────────────────────────────────────────────┘
220 /**
221 * An IconButton element to be used as secondary action target
222 * (primary action target is the item itself).
223 */
224 actionIcon: _propTypes.default.node,
225 /**
226 * Position of secondary action IconButton.
227 * @default 'right'
228 */
229 actionPosition: _propTypes.default.oneOf(['left', 'right']),
230 /**
231 * @ignore
232 */
233 children: _propTypes.default.node,
234 /**
235 * Override or extend the styles applied to the component.
236 */
237 classes: _propTypes.default.object,
238 /**
239 * @ignore
240 */
241 className: _propTypes.default.string,
242 /**
243 * Position of the title bar.
244 * @default 'bottom'
245 */
246 position: _propTypes.default.oneOf(['below', 'bottom', 'top']),
247 /**
248 * String or element serving as subtitle (support text).
249 */
250 subtitle: _propTypes.default.node,
251 /**
252 * The system prop that allows defining system overrides as well as additional CSS styles.
253 */
254 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]),
255 /**
256 * Title to be displayed.
257 */
258 title: _propTypes.default.node
259} : void 0;
260var _default = exports.default = ImageListItemBar;
\No newline at end of file