UNPKG

4.7 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 _ListContext = _interopRequireDefault(require("./ListContext"));
17var _listClasses = require("./listClasses");
18var _jsxRuntime = require("react/jsx-runtime");
19const useUtilityClasses = ownerState => {
20 const {
21 classes,
22 disablePadding,
23 dense,
24 subheader
25 } = ownerState;
26 const slots = {
27 root: ['root', !disablePadding && 'padding', dense && 'dense', subheader && 'subheader']
28 };
29 return (0, _composeClasses.default)(slots, _listClasses.getListUtilityClass, classes);
30};
31const ListRoot = (0, _zeroStyled.styled)('ul', {
32 name: 'MuiList',
33 slot: 'Root',
34 overridesResolver: (props, styles) => {
35 const {
36 ownerState
37 } = props;
38 return [styles.root, !ownerState.disablePadding && styles.padding, ownerState.dense && styles.dense, ownerState.subheader && styles.subheader];
39 }
40})({
41 listStyle: 'none',
42 margin: 0,
43 padding: 0,
44 position: 'relative',
45 variants: [{
46 props: ({
47 ownerState
48 }) => !ownerState.disablePadding,
49 style: {
50 paddingTop: 8,
51 paddingBottom: 8
52 }
53 }, {
54 props: ({
55 ownerState
56 }) => ownerState.subheader,
57 style: {
58 paddingTop: 0
59 }
60 }]
61});
62const List = /*#__PURE__*/React.forwardRef(function List(inProps, ref) {
63 const props = (0, _DefaultPropsProvider.useDefaultProps)({
64 props: inProps,
65 name: 'MuiList'
66 });
67 const {
68 children,
69 className,
70 component = 'ul',
71 dense = false,
72 disablePadding = false,
73 subheader,
74 ...other
75 } = props;
76 const context = React.useMemo(() => ({
77 dense
78 }), [dense]);
79 const ownerState = {
80 ...props,
81 component,
82 dense,
83 disablePadding
84 };
85 const classes = useUtilityClasses(ownerState);
86 return /*#__PURE__*/(0, _jsxRuntime.jsx)(_ListContext.default.Provider, {
87 value: context,
88 children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(ListRoot, {
89 as: component,
90 className: (0, _clsx.default)(classes.root, className),
91 ref: ref,
92 ownerState: ownerState,
93 ...other,
94 children: [subheader, children]
95 })
96 });
97});
98process.env.NODE_ENV !== "production" ? List.propTypes /* remove-proptypes */ = {
99 // ┌────────────────────────────── Warning ──────────────────────────────┐
100 // │ These PropTypes are generated from the TypeScript type definitions. │
101 // │ To update them, edit the d.ts file and run `pnpm proptypes`. │
102 // └─────────────────────────────────────────────────────────────────────┘
103 /**
104 * The content of the component.
105 */
106 children: _propTypes.default.node,
107 /**
108 * Override or extend the styles applied to the component.
109 */
110 classes: _propTypes.default.object,
111 /**
112 * @ignore
113 */
114 className: _propTypes.default.string,
115 /**
116 * The component used for the root node.
117 * Either a string to use a HTML element or a component.
118 */
119 component: _propTypes.default.elementType,
120 /**
121 * If `true`, compact vertical padding designed for keyboard and mouse input is used for
122 * the list and list items.
123 * The prop is available to descendant components as the `dense` context.
124 * @default false
125 */
126 dense: _propTypes.default.bool,
127 /**
128 * If `true`, vertical padding is removed from the list.
129 * @default false
130 */
131 disablePadding: _propTypes.default.bool,
132 /**
133 * The content of the subheader, normally `ListSubheader`.
134 */
135 subheader: _propTypes.default.node,
136 /**
137 * The system prop that allows defining system overrides as well as additional CSS styles.
138 */
139 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])
140} : void 0;
141var _default = exports.default = List;
\No newline at end of file