UNPKG

6.56 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 _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
14var _Typography = _interopRequireWildcard(require("../Typography"));
15var _ListContext = _interopRequireDefault(require("../List/ListContext"));
16var _zeroStyled = require("../zero-styled");
17var _DefaultPropsProvider = require("../DefaultPropsProvider");
18var _listItemTextClasses = _interopRequireWildcard(require("./listItemTextClasses"));
19var _jsxRuntime = require("react/jsx-runtime");
20const useUtilityClasses = ownerState => {
21 const {
22 classes,
23 inset,
24 primary,
25 secondary,
26 dense
27 } = ownerState;
28 const slots = {
29 root: ['root', inset && 'inset', dense && 'dense', primary && secondary && 'multiline'],
30 primary: ['primary'],
31 secondary: ['secondary']
32 };
33 return (0, _composeClasses.default)(slots, _listItemTextClasses.getListItemTextUtilityClass, classes);
34};
35const ListItemTextRoot = (0, _zeroStyled.styled)('div', {
36 name: 'MuiListItemText',
37 slot: 'Root',
38 overridesResolver: (props, styles) => {
39 const {
40 ownerState
41 } = props;
42 return [{
43 [`& .${_listItemTextClasses.default.primary}`]: styles.primary
44 }, {
45 [`& .${_listItemTextClasses.default.secondary}`]: styles.secondary
46 }, styles.root, ownerState.inset && styles.inset, ownerState.primary && ownerState.secondary && styles.multiline, ownerState.dense && styles.dense];
47 }
48})({
49 flex: '1 1 auto',
50 minWidth: 0,
51 marginTop: 4,
52 marginBottom: 4,
53 [`.${_Typography.typographyClasses.root}:where(& .${_listItemTextClasses.default.primary})`]: {
54 display: 'block'
55 },
56 [`.${_Typography.typographyClasses.root}:where(& .${_listItemTextClasses.default.secondary})`]: {
57 display: 'block'
58 },
59 variants: [{
60 props: ({
61 ownerState
62 }) => ownerState.primary && ownerState.secondary,
63 style: {
64 marginTop: 6,
65 marginBottom: 6
66 }
67 }, {
68 props: ({
69 ownerState
70 }) => ownerState.inset,
71 style: {
72 paddingLeft: 56
73 }
74 }]
75});
76const ListItemText = /*#__PURE__*/React.forwardRef(function ListItemText(inProps, ref) {
77 const props = (0, _DefaultPropsProvider.useDefaultProps)({
78 props: inProps,
79 name: 'MuiListItemText'
80 });
81 const {
82 children,
83 className,
84 disableTypography = false,
85 inset = false,
86 primary: primaryProp,
87 primaryTypographyProps,
88 secondary: secondaryProp,
89 secondaryTypographyProps,
90 ...other
91 } = props;
92 const {
93 dense
94 } = React.useContext(_ListContext.default);
95 let primary = primaryProp != null ? primaryProp : children;
96 let secondary = secondaryProp;
97 const ownerState = {
98 ...props,
99 disableTypography,
100 inset,
101 primary: !!primary,
102 secondary: !!secondary,
103 dense
104 };
105 const classes = useUtilityClasses(ownerState);
106 if (primary != null && primary.type !== _Typography.default && !disableTypography) {
107 primary = /*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography.default, {
108 variant: dense ? 'body2' : 'body1',
109 className: classes.primary,
110 component: primaryTypographyProps?.variant ? undefined : 'span',
111 ...primaryTypographyProps,
112 children: primary
113 });
114 }
115 if (secondary != null && secondary.type !== _Typography.default && !disableTypography) {
116 secondary = /*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography.default, {
117 variant: "body2",
118 className: classes.secondary,
119 color: "textSecondary",
120 ...secondaryTypographyProps,
121 children: secondary
122 });
123 }
124 return /*#__PURE__*/(0, _jsxRuntime.jsxs)(ListItemTextRoot, {
125 className: (0, _clsx.default)(classes.root, className),
126 ownerState: ownerState,
127 ref: ref,
128 ...other,
129 children: [primary, secondary]
130 });
131});
132process.env.NODE_ENV !== "production" ? ListItemText.propTypes /* remove-proptypes */ = {
133 // ┌────────────────────────────── Warning ──────────────────────────────┐
134 // │ These PropTypes are generated from the TypeScript type definitions. │
135 // │ To update them, edit the d.ts file and run `pnpm proptypes`. │
136 // └─────────────────────────────────────────────────────────────────────┘
137 /**
138 * Alias for the `primary` prop.
139 */
140 children: _propTypes.default.node,
141 /**
142 * Override or extend the styles applied to the component.
143 */
144 classes: _propTypes.default.object,
145 /**
146 * @ignore
147 */
148 className: _propTypes.default.string,
149 /**
150 * If `true`, the children won't be wrapped by a Typography component.
151 * This can be useful to render an alternative Typography variant by wrapping
152 * the `children` (or `primary`) text, and optional `secondary` text
153 * with the Typography component.
154 * @default false
155 */
156 disableTypography: _propTypes.default.bool,
157 /**
158 * If `true`, the children are indented.
159 * This should be used if there is no left avatar or left icon.
160 * @default false
161 */
162 inset: _propTypes.default.bool,
163 /**
164 * The main content element.
165 */
166 primary: _propTypes.default.node,
167 /**
168 * These props will be forwarded to the primary typography component
169 * (as long as disableTypography is not `true`).
170 */
171 primaryTypographyProps: _propTypes.default.object,
172 /**
173 * The secondary content element.
174 */
175 secondary: _propTypes.default.node,
176 /**
177 * These props will be forwarded to the secondary typography component
178 * (as long as disableTypography is not `true`).
179 */
180 secondaryTypographyProps: _propTypes.default.object,
181 /**
182 * The system prop that allows defining system overrides as well as additional CSS styles.
183 */
184 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])
185} : void 0;
186var _default = exports.default = ListItemText;
\No newline at end of file