UNPKG

9.39 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 _StepContext = _interopRequireDefault(require("../Step/StepContext"));
15var _StepIcon = _interopRequireDefault(require("../StepIcon"));
16var _StepperContext = _interopRequireDefault(require("../Stepper/StepperContext"));
17var _zeroStyled = require("../zero-styled");
18var _memoTheme = _interopRequireDefault(require("../utils/memoTheme"));
19var _DefaultPropsProvider = require("../DefaultPropsProvider");
20var _stepLabelClasses = _interopRequireWildcard(require("./stepLabelClasses"));
21var _useSlot = _interopRequireDefault(require("../utils/useSlot"));
22var _jsxRuntime = require("react/jsx-runtime");
23const useUtilityClasses = ownerState => {
24 const {
25 classes,
26 orientation,
27 active,
28 completed,
29 error,
30 disabled,
31 alternativeLabel
32 } = ownerState;
33 const slots = {
34 root: ['root', orientation, error && 'error', disabled && 'disabled', alternativeLabel && 'alternativeLabel'],
35 label: ['label', active && 'active', completed && 'completed', error && 'error', disabled && 'disabled', alternativeLabel && 'alternativeLabel'],
36 iconContainer: ['iconContainer', active && 'active', completed && 'completed', error && 'error', disabled && 'disabled', alternativeLabel && 'alternativeLabel'],
37 labelContainer: ['labelContainer', alternativeLabel && 'alternativeLabel']
38 };
39 return (0, _composeClasses.default)(slots, _stepLabelClasses.getStepLabelUtilityClass, classes);
40};
41const StepLabelRoot = (0, _zeroStyled.styled)('span', {
42 name: 'MuiStepLabel',
43 slot: 'Root',
44 overridesResolver: (props, styles) => {
45 const {
46 ownerState
47 } = props;
48 return [styles.root, styles[ownerState.orientation]];
49 }
50})({
51 display: 'flex',
52 alignItems: 'center',
53 [`&.${_stepLabelClasses.default.alternativeLabel}`]: {
54 flexDirection: 'column'
55 },
56 [`&.${_stepLabelClasses.default.disabled}`]: {
57 cursor: 'default'
58 },
59 variants: [{
60 props: {
61 orientation: 'vertical'
62 },
63 style: {
64 textAlign: 'left',
65 padding: '8px 0'
66 }
67 }]
68});
69const StepLabelLabel = (0, _zeroStyled.styled)('span', {
70 name: 'MuiStepLabel',
71 slot: 'Label',
72 overridesResolver: (props, styles) => styles.label
73})((0, _memoTheme.default)(({
74 theme
75}) => ({
76 ...theme.typography.body2,
77 display: 'block',
78 transition: theme.transitions.create('color', {
79 duration: theme.transitions.duration.shortest
80 }),
81 [`&.${_stepLabelClasses.default.active}`]: {
82 color: (theme.vars || theme).palette.text.primary,
83 fontWeight: 500
84 },
85 [`&.${_stepLabelClasses.default.completed}`]: {
86 color: (theme.vars || theme).palette.text.primary,
87 fontWeight: 500
88 },
89 [`&.${_stepLabelClasses.default.alternativeLabel}`]: {
90 marginTop: 16
91 },
92 [`&.${_stepLabelClasses.default.error}`]: {
93 color: (theme.vars || theme).palette.error.main
94 }
95})));
96const StepLabelIconContainer = (0, _zeroStyled.styled)('span', {
97 name: 'MuiStepLabel',
98 slot: 'IconContainer',
99 overridesResolver: (props, styles) => styles.iconContainer
100})({
101 flexShrink: 0,
102 display: 'flex',
103 paddingRight: 8,
104 [`&.${_stepLabelClasses.default.alternativeLabel}`]: {
105 paddingRight: 0
106 }
107});
108const StepLabelLabelContainer = (0, _zeroStyled.styled)('span', {
109 name: 'MuiStepLabel',
110 slot: 'LabelContainer',
111 overridesResolver: (props, styles) => styles.labelContainer
112})((0, _memoTheme.default)(({
113 theme
114}) => ({
115 width: '100%',
116 color: (theme.vars || theme).palette.text.secondary,
117 [`&.${_stepLabelClasses.default.alternativeLabel}`]: {
118 textAlign: 'center'
119 }
120})));
121const StepLabel = /*#__PURE__*/React.forwardRef(function StepLabel(inProps, ref) {
122 const props = (0, _DefaultPropsProvider.useDefaultProps)({
123 props: inProps,
124 name: 'MuiStepLabel'
125 });
126 const {
127 children,
128 className,
129 componentsProps = {},
130 error = false,
131 icon: iconProp,
132 optional,
133 slots = {},
134 slotProps = {},
135 StepIconComponent: StepIconComponentProp,
136 StepIconProps,
137 ...other
138 } = props;
139 const {
140 alternativeLabel,
141 orientation
142 } = React.useContext(_StepperContext.default);
143 const {
144 active,
145 disabled,
146 completed,
147 icon: iconContext
148 } = React.useContext(_StepContext.default);
149 const icon = iconProp || iconContext;
150 let StepIconComponent = StepIconComponentProp;
151 if (icon && !StepIconComponent) {
152 StepIconComponent = _StepIcon.default;
153 }
154 const ownerState = {
155 ...props,
156 active,
157 alternativeLabel,
158 completed,
159 disabled,
160 error,
161 orientation
162 };
163 const classes = useUtilityClasses(ownerState);
164 const externalForwardedProps = {
165 slots,
166 slotProps: {
167 stepIcon: StepIconProps,
168 ...componentsProps,
169 ...slotProps
170 }
171 };
172 const [LabelSlot, labelProps] = (0, _useSlot.default)('label', {
173 elementType: StepLabelLabel,
174 externalForwardedProps,
175 ownerState
176 });
177 const [StepIconSlot, stepIconProps] = (0, _useSlot.default)('stepIcon', {
178 elementType: StepIconComponent,
179 externalForwardedProps,
180 ownerState
181 });
182 return /*#__PURE__*/(0, _jsxRuntime.jsxs)(StepLabelRoot, {
183 className: (0, _clsx.default)(classes.root, className),
184 ref: ref,
185 ownerState: ownerState,
186 ...other,
187 children: [icon || StepIconSlot ? /*#__PURE__*/(0, _jsxRuntime.jsx)(StepLabelIconContainer, {
188 className: classes.iconContainer,
189 ownerState: ownerState,
190 children: /*#__PURE__*/(0, _jsxRuntime.jsx)(StepIconSlot, {
191 completed: completed,
192 active: active,
193 error: error,
194 icon: icon,
195 ...stepIconProps
196 })
197 }) : null, /*#__PURE__*/(0, _jsxRuntime.jsxs)(StepLabelLabelContainer, {
198 className: classes.labelContainer,
199 ownerState: ownerState,
200 children: [children ? /*#__PURE__*/(0, _jsxRuntime.jsx)(LabelSlot, {
201 ...labelProps,
202 className: (0, _clsx.default)(classes.label, labelProps?.className),
203 children: children
204 }) : null, optional]
205 })]
206 });
207});
208process.env.NODE_ENV !== "production" ? StepLabel.propTypes /* remove-proptypes */ = {
209 // ┌────────────────────────────── Warning ──────────────────────────────┐
210 // │ These PropTypes are generated from the TypeScript type definitions. │
211 // │ To update them, edit the d.ts file and run `pnpm proptypes`. │
212 // └─────────────────────────────────────────────────────────────────────┘
213 /**
214 * In most cases will simply be a string containing a title for the label.
215 */
216 children: _propTypes.default.node,
217 /**
218 * Override or extend the styles applied to the component.
219 */
220 classes: _propTypes.default.object,
221 /**
222 * @ignore
223 */
224 className: _propTypes.default.string,
225 /**
226 * The props used for each slot inside.
227 * @default {}
228 * @deprecated use the `slotProps` prop instead. This prop will be removed in v7. See [Migrating from deprecated APIs](https://mui.com/material-ui/migration/migrating-from-deprecated-apis/) for more details.
229 */
230 componentsProps: _propTypes.default.shape({
231 label: _propTypes.default.object
232 }),
233 /**
234 * If `true`, the step is marked as failed.
235 * @default false
236 */
237 error: _propTypes.default.bool,
238 /**
239 * Override the default label of the step icon.
240 */
241 icon: _propTypes.default.node,
242 /**
243 * The optional node to display.
244 */
245 optional: _propTypes.default.node,
246 /**
247 * The props used for each slot inside.
248 * @default {}
249 */
250 slotProps: _propTypes.default.shape({
251 label: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]),
252 stepIcon: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object])
253 }),
254 /**
255 * The components used for each slot inside.
256 * @default {}
257 */
258 slots: _propTypes.default.shape({
259 label: _propTypes.default.elementType,
260 stepIcon: _propTypes.default.elementType
261 }),
262 /**
263 * The component to render in place of the [`StepIcon`](https://mui.com/material-ui/api/step-icon/).
264 */
265 StepIconComponent: _propTypes.default.elementType,
266 /**
267 * Props applied to the [`StepIcon`](https://mui.com/material-ui/api/step-icon/) element.
268 */
269 StepIconProps: _propTypes.default.object,
270 /**
271 * The system prop that allows defining system overrides as well as additional CSS styles.
272 */
273 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])
274} : void 0;
275if (StepLabel) {
276 StepLabel.muiName = 'StepLabel';
277}
278var _default = exports.default = StepLabel;
\No newline at end of file