UNPKG

5.39 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 _capitalize = _interopRequireDefault(require("../utils/capitalize"));
15var _zeroStyled = require("../zero-styled");
16var _memoTheme = _interopRequireDefault(require("../utils/memoTheme"));
17var _DefaultPropsProvider = require("../DefaultPropsProvider");
18var _StepperContext = _interopRequireDefault(require("../Stepper/StepperContext"));
19var _StepContext = _interopRequireDefault(require("../Step/StepContext"));
20var _stepConnectorClasses = require("./stepConnectorClasses");
21var _jsxRuntime = require("react/jsx-runtime");
22const useUtilityClasses = ownerState => {
23 const {
24 classes,
25 orientation,
26 alternativeLabel,
27 active,
28 completed,
29 disabled
30 } = ownerState;
31 const slots = {
32 root: ['root', orientation, alternativeLabel && 'alternativeLabel', active && 'active', completed && 'completed', disabled && 'disabled'],
33 line: ['line', `line${(0, _capitalize.default)(orientation)}`]
34 };
35 return (0, _composeClasses.default)(slots, _stepConnectorClasses.getStepConnectorUtilityClass, classes);
36};
37const StepConnectorRoot = (0, _zeroStyled.styled)('div', {
38 name: 'MuiStepConnector',
39 slot: 'Root',
40 overridesResolver: (props, styles) => {
41 const {
42 ownerState
43 } = props;
44 return [styles.root, styles[ownerState.orientation], ownerState.alternativeLabel && styles.alternativeLabel, ownerState.completed && styles.completed];
45 }
46})({
47 flex: '1 1 auto',
48 variants: [{
49 props: {
50 orientation: 'vertical'
51 },
52 style: {
53 marginLeft: 12 // half icon
54 }
55 }, {
56 props: {
57 alternativeLabel: true
58 },
59 style: {
60 position: 'absolute',
61 top: 8 + 4,
62 left: 'calc(-50% + 20px)',
63 right: 'calc(50% + 20px)'
64 }
65 }]
66});
67const StepConnectorLine = (0, _zeroStyled.styled)('span', {
68 name: 'MuiStepConnector',
69 slot: 'Line',
70 overridesResolver: (props, styles) => {
71 const {
72 ownerState
73 } = props;
74 return [styles.line, styles[`line${(0, _capitalize.default)(ownerState.orientation)}`]];
75 }
76})((0, _memoTheme.default)(({
77 theme
78}) => {
79 const borderColor = theme.palette.mode === 'light' ? theme.palette.grey[400] : theme.palette.grey[600];
80 return {
81 display: 'block',
82 borderColor: theme.vars ? theme.vars.palette.StepConnector.border : borderColor,
83 variants: [{
84 props: {
85 orientation: 'horizontal'
86 },
87 style: {
88 borderTopStyle: 'solid',
89 borderTopWidth: 1
90 }
91 }, {
92 props: {
93 orientation: 'vertical'
94 },
95 style: {
96 borderLeftStyle: 'solid',
97 borderLeftWidth: 1,
98 minHeight: 24
99 }
100 }]
101 };
102}));
103const StepConnector = /*#__PURE__*/React.forwardRef(function StepConnector(inProps, ref) {
104 const props = (0, _DefaultPropsProvider.useDefaultProps)({
105 props: inProps,
106 name: 'MuiStepConnector'
107 });
108 const {
109 className,
110 ...other
111 } = props;
112 const {
113 alternativeLabel,
114 orientation = 'horizontal'
115 } = React.useContext(_StepperContext.default);
116 const {
117 active,
118 disabled,
119 completed
120 } = React.useContext(_StepContext.default);
121 const ownerState = {
122 ...props,
123 alternativeLabel,
124 orientation,
125 active,
126 completed,
127 disabled
128 };
129 const classes = useUtilityClasses(ownerState);
130 return /*#__PURE__*/(0, _jsxRuntime.jsx)(StepConnectorRoot, {
131 className: (0, _clsx.default)(classes.root, className),
132 ref: ref,
133 ownerState: ownerState,
134 ...other,
135 children: /*#__PURE__*/(0, _jsxRuntime.jsx)(StepConnectorLine, {
136 className: classes.line,
137 ownerState: ownerState
138 })
139 });
140});
141process.env.NODE_ENV !== "production" ? StepConnector.propTypes /* remove-proptypes */ = {
142 // ┌────────────────────────────── Warning ──────────────────────────────┐
143 // │ These PropTypes are generated from the TypeScript type definitions. │
144 // │ To update them, edit the d.ts file and run `pnpm proptypes`. │
145 // └─────────────────────────────────────────────────────────────────────┘
146 /**
147 * Override or extend the styles applied to the component.
148 */
149 classes: _propTypes.default.object,
150 /**
151 * @ignore
152 */
153 className: _propTypes.default.string,
154 /**
155 * The system prop that allows defining system overrides as well as additional CSS styles.
156 */
157 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])
158} : void 0;
159var _default = exports.default = StepConnector;
\No newline at end of file