UNPKG

6.96 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 = exports.FormLabelRoot = 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 _formControlState = _interopRequireDefault(require("../FormControl/formControlState"));
15var _useFormControl = _interopRequireDefault(require("../FormControl/useFormControl"));
16var _capitalize = _interopRequireDefault(require("../utils/capitalize"));
17var _zeroStyled = require("../zero-styled");
18var _memoTheme = _interopRequireDefault(require("../utils/memoTheme"));
19var _createSimplePaletteValueFilter = _interopRequireDefault(require("../utils/createSimplePaletteValueFilter"));
20var _DefaultPropsProvider = require("../DefaultPropsProvider");
21var _formLabelClasses = _interopRequireWildcard(require("./formLabelClasses"));
22var _jsxRuntime = require("react/jsx-runtime");
23const useUtilityClasses = ownerState => {
24 const {
25 classes,
26 color,
27 focused,
28 disabled,
29 error,
30 filled,
31 required
32 } = ownerState;
33 const slots = {
34 root: ['root', `color${(0, _capitalize.default)(color)}`, disabled && 'disabled', error && 'error', filled && 'filled', focused && 'focused', required && 'required'],
35 asterisk: ['asterisk', error && 'error']
36 };
37 return (0, _composeClasses.default)(slots, _formLabelClasses.getFormLabelUtilityClasses, classes);
38};
39const FormLabelRoot = exports.FormLabelRoot = (0, _zeroStyled.styled)('label', {
40 name: 'MuiFormLabel',
41 slot: 'Root',
42 overridesResolver: ({
43 ownerState
44 }, styles) => {
45 return {
46 ...styles.root,
47 ...(ownerState.color === 'secondary' && styles.colorSecondary),
48 ...(ownerState.filled && styles.filled)
49 };
50 }
51})((0, _memoTheme.default)(({
52 theme
53}) => ({
54 color: (theme.vars || theme).palette.text.secondary,
55 ...theme.typography.body1,
56 lineHeight: '1.4375em',
57 padding: 0,
58 position: 'relative',
59 variants: [...Object.entries(theme.palette).filter((0, _createSimplePaletteValueFilter.default)()).map(([color]) => ({
60 props: {
61 color
62 },
63 style: {
64 [`&.${_formLabelClasses.default.focused}`]: {
65 color: (theme.vars || theme).palette[color].main
66 }
67 }
68 })), {
69 props: {},
70 style: {
71 [`&.${_formLabelClasses.default.disabled}`]: {
72 color: (theme.vars || theme).palette.text.disabled
73 },
74 [`&.${_formLabelClasses.default.error}`]: {
75 color: (theme.vars || theme).palette.error.main
76 }
77 }
78 }]
79})));
80const AsteriskComponent = (0, _zeroStyled.styled)('span', {
81 name: 'MuiFormLabel',
82 slot: 'Asterisk',
83 overridesResolver: (props, styles) => styles.asterisk
84})((0, _memoTheme.default)(({
85 theme
86}) => ({
87 [`&.${_formLabelClasses.default.error}`]: {
88 color: (theme.vars || theme).palette.error.main
89 }
90})));
91const FormLabel = /*#__PURE__*/React.forwardRef(function FormLabel(inProps, ref) {
92 const props = (0, _DefaultPropsProvider.useDefaultProps)({
93 props: inProps,
94 name: 'MuiFormLabel'
95 });
96 const {
97 children,
98 className,
99 color,
100 component = 'label',
101 disabled,
102 error,
103 filled,
104 focused,
105 required,
106 ...other
107 } = props;
108 const muiFormControl = (0, _useFormControl.default)();
109 const fcs = (0, _formControlState.default)({
110 props,
111 muiFormControl,
112 states: ['color', 'required', 'focused', 'disabled', 'error', 'filled']
113 });
114 const ownerState = {
115 ...props,
116 color: fcs.color || 'primary',
117 component,
118 disabled: fcs.disabled,
119 error: fcs.error,
120 filled: fcs.filled,
121 focused: fcs.focused,
122 required: fcs.required
123 };
124 const classes = useUtilityClasses(ownerState);
125 return /*#__PURE__*/(0, _jsxRuntime.jsxs)(FormLabelRoot, {
126 as: component,
127 ownerState: ownerState,
128 className: (0, _clsx.default)(classes.root, className),
129 ref: ref,
130 ...other,
131 children: [children, fcs.required && /*#__PURE__*/(0, _jsxRuntime.jsxs)(AsteriskComponent, {
132 ownerState: ownerState,
133 "aria-hidden": true,
134 className: classes.asterisk,
135 children: ["\u2009", '*']
136 })]
137 });
138});
139process.env.NODE_ENV !== "production" ? FormLabel.propTypes /* remove-proptypes */ = {
140 // ┌────────────────────────────── Warning ──────────────────────────────┐
141 // │ These PropTypes are generated from the TypeScript type definitions. │
142 // │ To update them, edit the d.ts file and run `pnpm proptypes`. │
143 // └─────────────────────────────────────────────────────────────────────┘
144 /**
145 * The content of the component.
146 */
147 children: _propTypes.default.node,
148 /**
149 * Override or extend the styles applied to the component.
150 */
151 classes: _propTypes.default.object,
152 /**
153 * @ignore
154 */
155 className: _propTypes.default.string,
156 /**
157 * The color of the component.
158 * It supports both default and custom theme colors, which can be added as shown in the
159 * [palette customization guide](https://mui.com/material-ui/customization/palette/#custom-colors).
160 */
161 color: _propTypes.default /* @typescript-to-proptypes-ignore */.oneOfType([_propTypes.default.oneOf(['error', 'info', 'primary', 'secondary', 'success', 'warning']), _propTypes.default.string]),
162 /**
163 * The component used for the root node.
164 * Either a string to use a HTML element or a component.
165 */
166 component: _propTypes.default.elementType,
167 /**
168 * If `true`, the label should be displayed in a disabled state.
169 */
170 disabled: _propTypes.default.bool,
171 /**
172 * If `true`, the label is displayed in an error state.
173 */
174 error: _propTypes.default.bool,
175 /**
176 * If `true`, the label should use filled classes key.
177 */
178 filled: _propTypes.default.bool,
179 /**
180 * If `true`, the input of this label is focused (used by `FormGroup` components).
181 */
182 focused: _propTypes.default.bool,
183 /**
184 * If `true`, the label will indicate that the `input` is required.
185 */
186 required: _propTypes.default.bool,
187 /**
188 * The system prop that allows defining system overrides as well as additional CSS styles.
189 */
190 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])
191} : void 0;
192var _default = exports.default = FormLabel;
\No newline at end of file