UNPKG

5.16 kBJavaScriptView Raw
1'use client';
2
3import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
4import _extends from "@babel/runtime/helpers/esm/extends";
5import * as React from 'react';
6import PropTypes from 'prop-types';
7import clsx from 'clsx';
8import composeClasses from '@mui/utils/composeClasses';
9import capitalize from '../utils/capitalize';
10import styled from '../styles/styled';
11import { useDefaultProps } from '../DefaultPropsProvider';
12import StepperContext from '../Stepper/StepperContext';
13import StepContext from '../Step/StepContext';
14import { getStepConnectorUtilityClass } from './stepConnectorClasses';
15import { jsx as _jsx } from "react/jsx-runtime";
16var useUtilityClasses = function useUtilityClasses(ownerState) {
17 var classes = ownerState.classes,
18 orientation = ownerState.orientation,
19 alternativeLabel = ownerState.alternativeLabel,
20 active = ownerState.active,
21 completed = ownerState.completed,
22 disabled = ownerState.disabled;
23 var slots = {
24 root: ['root', orientation, alternativeLabel && 'alternativeLabel', active && 'active', completed && 'completed', disabled && 'disabled'],
25 line: ['line', "line".concat(capitalize(orientation))]
26 };
27 return composeClasses(slots, getStepConnectorUtilityClass, classes);
28};
29var StepConnectorRoot = styled('div', {
30 name: 'MuiStepConnector',
31 slot: 'Root',
32 overridesResolver: function overridesResolver(props, styles) {
33 var ownerState = props.ownerState;
34 return [styles.root, styles[ownerState.orientation], ownerState.alternativeLabel && styles.alternativeLabel, ownerState.completed && styles.completed];
35 }
36})(function (_ref) {
37 var ownerState = _ref.ownerState;
38 return _extends({
39 flex: '1 1 auto'
40 }, ownerState.orientation === 'vertical' && {
41 marginLeft: 12 // half icon
42 }, ownerState.alternativeLabel && {
43 position: 'absolute',
44 top: 8 + 4,
45 left: 'calc(-50% + 20px)',
46 right: 'calc(50% + 20px)'
47 });
48});
49var StepConnectorLine = styled('span', {
50 name: 'MuiStepConnector',
51 slot: 'Line',
52 overridesResolver: function overridesResolver(props, styles) {
53 var ownerState = props.ownerState;
54 return [styles.line, styles["line".concat(capitalize(ownerState.orientation))]];
55 }
56})(function (_ref2) {
57 var ownerState = _ref2.ownerState,
58 theme = _ref2.theme;
59 var borderColor = theme.palette.mode === 'light' ? theme.palette.grey[400] : theme.palette.grey[600];
60 return _extends({
61 display: 'block',
62 borderColor: theme.vars ? theme.vars.palette.StepConnector.border : borderColor
63 }, ownerState.orientation === 'horizontal' && {
64 borderTopStyle: 'solid',
65 borderTopWidth: 1
66 }, ownerState.orientation === 'vertical' && {
67 borderLeftStyle: 'solid',
68 borderLeftWidth: 1,
69 minHeight: 24
70 });
71});
72var StepConnector = /*#__PURE__*/React.forwardRef(function StepConnector(inProps, ref) {
73 var props = useDefaultProps({
74 props: inProps,
75 name: 'MuiStepConnector'
76 });
77 var className = props.className,
78 other = _objectWithoutProperties(props, ["className"]);
79 var _React$useContext = React.useContext(StepperContext),
80 alternativeLabel = _React$useContext.alternativeLabel,
81 _React$useContext$ori = _React$useContext.orientation,
82 orientation = _React$useContext$ori === void 0 ? 'horizontal' : _React$useContext$ori;
83 var _React$useContext2 = React.useContext(StepContext),
84 active = _React$useContext2.active,
85 disabled = _React$useContext2.disabled,
86 completed = _React$useContext2.completed;
87 var ownerState = _extends({}, props, {
88 alternativeLabel: alternativeLabel,
89 orientation: orientation,
90 active: active,
91 completed: completed,
92 disabled: disabled
93 });
94 var classes = useUtilityClasses(ownerState);
95 return /*#__PURE__*/_jsx(StepConnectorRoot, _extends({
96 className: clsx(classes.root, className),
97 ref: ref,
98 ownerState: ownerState
99 }, other, {
100 children: /*#__PURE__*/_jsx(StepConnectorLine, {
101 className: classes.line,
102 ownerState: ownerState
103 })
104 }));
105});
106process.env.NODE_ENV !== "production" ? StepConnector.propTypes /* remove-proptypes */ = {
107 // ┌────────────────────────────── Warning ──────────────────────────────┐
108 // │ These PropTypes are generated from the TypeScript type definitions. │
109 // │ To update them, edit the d.ts file and run `pnpm proptypes`. │
110 // └─────────────────────────────────────────────────────────────────────┘
111 /**
112 * Override or extend the styles applied to the component.
113 */
114 classes: PropTypes.object,
115 /**
116 * @ignore
117 */
118 className: PropTypes.string,
119 /**
120 * The system prop that allows defining system overrides as well as additional CSS styles.
121 */
122 sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])
123} : void 0;
124export default StepConnector;
\No newline at end of file