UNPKG

4.01 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 _zeroStyled = require("../zero-styled");
15var _DefaultPropsProvider = require("../DefaultPropsProvider");
16var _formGroupClasses = require("./formGroupClasses");
17var _useFormControl = _interopRequireDefault(require("../FormControl/useFormControl"));
18var _formControlState = _interopRequireDefault(require("../FormControl/formControlState"));
19var _jsxRuntime = require("react/jsx-runtime");
20const useUtilityClasses = ownerState => {
21 const {
22 classes,
23 row,
24 error
25 } = ownerState;
26 const slots = {
27 root: ['root', row && 'row', error && 'error']
28 };
29 return (0, _composeClasses.default)(slots, _formGroupClasses.getFormGroupUtilityClass, classes);
30};
31const FormGroupRoot = (0, _zeroStyled.styled)('div', {
32 name: 'MuiFormGroup',
33 slot: 'Root',
34 overridesResolver: (props, styles) => {
35 const {
36 ownerState
37 } = props;
38 return [styles.root, ownerState.row && styles.row];
39 }
40})({
41 display: 'flex',
42 flexDirection: 'column',
43 flexWrap: 'wrap',
44 variants: [{
45 props: {
46 row: true
47 },
48 style: {
49 flexDirection: 'row'
50 }
51 }]
52});
53
54/**
55 * `FormGroup` wraps controls such as `Checkbox` and `Switch`.
56 * It provides compact row layout.
57 * For the `Radio`, you should be using the `RadioGroup` component instead of this one.
58 */
59const FormGroup = /*#__PURE__*/React.forwardRef(function FormGroup(inProps, ref) {
60 const props = (0, _DefaultPropsProvider.useDefaultProps)({
61 props: inProps,
62 name: 'MuiFormGroup'
63 });
64 const {
65 className,
66 row = false,
67 ...other
68 } = props;
69 const muiFormControl = (0, _useFormControl.default)();
70 const fcs = (0, _formControlState.default)({
71 props,
72 muiFormControl,
73 states: ['error']
74 });
75 const ownerState = {
76 ...props,
77 row,
78 error: fcs.error
79 };
80 const classes = useUtilityClasses(ownerState);
81 return /*#__PURE__*/(0, _jsxRuntime.jsx)(FormGroupRoot, {
82 className: (0, _clsx.default)(classes.root, className),
83 ownerState: ownerState,
84 ref: ref,
85 ...other
86 });
87});
88process.env.NODE_ENV !== "production" ? FormGroup.propTypes /* remove-proptypes */ = {
89 // ┌────────────────────────────── Warning ──────────────────────────────┐
90 // │ These PropTypes are generated from the TypeScript type definitions. │
91 // │ To update them, edit the d.ts file and run `pnpm proptypes`. │
92 // └─────────────────────────────────────────────────────────────────────┘
93 /**
94 * The content of the component.
95 */
96 children: _propTypes.default.node,
97 /**
98 * Override or extend the styles applied to the component.
99 */
100 classes: _propTypes.default.object,
101 /**
102 * @ignore
103 */
104 className: _propTypes.default.string,
105 /**
106 * Display group of elements in a compact row.
107 * @default false
108 */
109 row: _propTypes.default.bool,
110 /**
111 * The system prop that allows defining system overrides as well as additional CSS styles.
112 */
113 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])
114} : void 0;
115var _default = exports.default = FormGroup;
\No newline at end of file