@mui/material 6.0.0-alpha.4 → 6.0.0-alpha.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (272) hide show
  1. package/Accordion/Accordion.d.ts +2 -2
  2. package/Accordion/Accordion.js +2 -2
  3. package/AccordionSummary/accordionSummaryClasses.d.ts +1 -1
  4. package/Alert/Alert.d.ts +2 -2
  5. package/Alert/Alert.js +2 -2
  6. package/Alert/alertClasses.d.ts +12 -12
  7. package/Avatar/Avatar.d.ts +1 -1
  8. package/Avatar/Avatar.js +1 -1
  9. package/Backdrop/Backdrop.d.ts +1 -1
  10. package/Backdrop/Backdrop.js +1 -1
  11. package/Badge/Badge.d.ts +2 -2
  12. package/Badge/Badge.js +2 -2
  13. package/Breadcrumbs/BreadcrumbCollapsed.js +1 -1
  14. package/Button/Button.js +1 -1
  15. package/Button/buttonClasses.d.ts +33 -33
  16. package/ButtonGroup/buttonGroupClasses.d.ts +17 -17
  17. package/CHANGELOG.md +86 -0
  18. package/Checkbox/Checkbox.js +3 -1
  19. package/Chip/chipClasses.d.ts +28 -26
  20. package/Chip/chipClasses.js +1 -1
  21. package/Collapse/Collapse.js +66 -35
  22. package/Dialog/Dialog.js +105 -61
  23. package/DialogActions/DialogActions.js +16 -12
  24. package/DialogContent/DialogContent.js +25 -15
  25. package/DialogContentText/DialogContentText.js +3 -2
  26. package/DialogTitle/DialogTitle.js +2 -2
  27. package/Divider/Divider.d.ts +1 -1
  28. package/Divider/Divider.js +1 -1
  29. package/Drawer/Drawer.js +73 -32
  30. package/Fab/Fab.js +1 -1
  31. package/FilledInput/FilledInput.d.ts +1 -0
  32. package/FilledInput/FilledInput.js +170 -87
  33. package/FormControlLabel/FormControlLabel.d.ts +21 -14
  34. package/FormControlLabel/FormControlLabel.js +22 -4
  35. package/FormHelperText/FormHelperText.js +2 -2
  36. package/FormLabel/FormLabel.js +23 -13
  37. package/Grow/Grow.js +3 -1
  38. package/Icon/Icon.js +63 -23
  39. package/ImageList/ImageList.js +2 -2
  40. package/ImageListItem/ImageListItem.js +2 -2
  41. package/ImageListItemBar/ImageListItemBar.js +2 -2
  42. package/Input/Input.d.ts +1 -0
  43. package/Input/Input.js +84 -61
  44. package/InputAdornment/InputAdornment.js +37 -21
  45. package/InputBase/InputBase.js +58 -28
  46. package/InputLabel/InputLabel.js +120 -58
  47. package/Link/Link.js +99 -54
  48. package/Link/getTextDecoration.d.ts +2 -8
  49. package/Link/getTextDecoration.js +16 -8
  50. package/List/List.js +22 -13
  51. package/ListItem/ListItem.js +2 -2
  52. package/ListItemAvatar/ListItemAvatar.js +2 -2
  53. package/ListItemButton/ListItemButton.js +3 -2
  54. package/ListItemIcon/ListItemIcon.js +14 -9
  55. package/ListItemSecondaryAction/ListItemSecondaryAction.js +2 -2
  56. package/ListItemText/ListItemText.js +2 -2
  57. package/ListSubheader/ListSubheader.js +5 -3
  58. package/Menu/Menu.js +3 -2
  59. package/MenuItem/MenuItem.js +47 -27
  60. package/NativeSelect/NativeSelectInput.js +78 -49
  61. package/OutlinedInput/NotchedOutline.js +60 -43
  62. package/OutlinedInput/OutlinedInput.js +97 -39
  63. package/Pagination/Pagination.js +2 -2
  64. package/PaginationItem/PaginationItem.d.ts +26 -14
  65. package/PaginationItem/PaginationItem.js +64 -20
  66. package/PaginationItem/paginationItemClasses.d.ts +4 -4
  67. package/Paper/Paper.js +44 -21
  68. package/Radio/Radio.js +5 -3
  69. package/Radio/RadioButtonIcon.js +1 -1
  70. package/Rating/Rating.js +3 -2
  71. package/Select/Select.js +2 -1
  72. package/Select/SelectInput.js +8 -6
  73. package/Skeleton/Skeleton.js +109 -61
  74. package/Slider/Slider.d.ts +2 -2
  75. package/Slider/Slider.js +2 -2
  76. package/Snackbar/Snackbar.js +66 -40
  77. package/SnackbarContent/SnackbarContent.js +2 -2
  78. package/SpeedDial/SpeedDial.d.ts +28 -1
  79. package/SpeedDial/SpeedDial.js +107 -49
  80. package/SpeedDialAction/SpeedDialAction.js +50 -24
  81. package/SpeedDialIcon/SpeedDialIcon.js +37 -16
  82. package/StepConnector/stepConnectorClasses.d.ts +2 -2
  83. package/StepLabel/StepLabel.d.ts +3 -3
  84. package/StepLabel/StepLabel.js +3 -3
  85. package/SvgIcon/SvgIcon.js +73 -21
  86. package/SwipeableDrawer/SwipeArea.js +39 -18
  87. package/Tab/Tab.js +127 -55
  88. package/TabScrollButton/TabScrollButton.js +27 -15
  89. package/Table/Table.js +2 -2
  90. package/TableBody/TableBody.js +2 -2
  91. package/TableCell/TableCell.js +2 -2
  92. package/TableContainer/TableContainer.js +2 -2
  93. package/TableFooter/TableFooter.js +2 -2
  94. package/TableHead/TableHead.js +2 -2
  95. package/TablePagination/TablePagination.js +2 -2
  96. package/TableRow/TableRow.js +2 -2
  97. package/TableSortLabel/TableSortLabel.js +2 -2
  98. package/Tabs/Tabs.js +107 -54
  99. package/TextField/TextField.js +2 -2
  100. package/ToggleButtonGroup/toggleButtonGroupClasses.d.ts +2 -2
  101. package/Toolbar/Toolbar.js +3 -7
  102. package/Tooltip/Tooltip.js +185 -88
  103. package/Typography/Typography.js +89 -39
  104. package/index.js +1 -1
  105. package/internal/SwitchBase.js +39 -11
  106. package/modern/Accordion/Accordion.js +2 -2
  107. package/modern/Alert/Alert.js +2 -2
  108. package/modern/Avatar/Avatar.js +1 -1
  109. package/modern/Backdrop/Backdrop.js +1 -1
  110. package/modern/Badge/Badge.js +2 -2
  111. package/modern/Breadcrumbs/BreadcrumbCollapsed.js +1 -1
  112. package/modern/Button/Button.js +1 -1
  113. package/modern/Checkbox/Checkbox.js +3 -1
  114. package/modern/Chip/chipClasses.js +1 -1
  115. package/modern/Collapse/Collapse.js +66 -35
  116. package/modern/Dialog/Dialog.js +105 -61
  117. package/modern/DialogActions/DialogActions.js +16 -12
  118. package/modern/DialogContent/DialogContent.js +25 -15
  119. package/modern/DialogContentText/DialogContentText.js +3 -2
  120. package/modern/DialogTitle/DialogTitle.js +2 -2
  121. package/modern/Divider/Divider.js +1 -1
  122. package/modern/Drawer/Drawer.js +73 -32
  123. package/modern/Fab/Fab.js +1 -1
  124. package/modern/FilledInput/FilledInput.js +170 -87
  125. package/modern/FormControlLabel/FormControlLabel.js +22 -4
  126. package/modern/FormHelperText/FormHelperText.js +2 -2
  127. package/modern/FormLabel/FormLabel.js +23 -13
  128. package/modern/Grow/Grow.js +3 -1
  129. package/modern/Icon/Icon.js +63 -23
  130. package/modern/ImageList/ImageList.js +2 -2
  131. package/modern/ImageListItem/ImageListItem.js +2 -2
  132. package/modern/ImageListItemBar/ImageListItemBar.js +2 -2
  133. package/modern/Input/Input.js +84 -61
  134. package/modern/InputAdornment/InputAdornment.js +37 -21
  135. package/modern/InputBase/InputBase.js +58 -28
  136. package/modern/InputLabel/InputLabel.js +120 -58
  137. package/modern/Link/Link.js +99 -54
  138. package/modern/Link/getTextDecoration.js +16 -8
  139. package/modern/List/List.js +22 -13
  140. package/modern/ListItem/ListItem.js +2 -2
  141. package/modern/ListItemAvatar/ListItemAvatar.js +2 -2
  142. package/modern/ListItemButton/ListItemButton.js +3 -2
  143. package/modern/ListItemIcon/ListItemIcon.js +14 -9
  144. package/modern/ListItemSecondaryAction/ListItemSecondaryAction.js +2 -2
  145. package/modern/ListItemText/ListItemText.js +2 -2
  146. package/modern/ListSubheader/ListSubheader.js +5 -3
  147. package/modern/Menu/Menu.js +3 -2
  148. package/modern/MenuItem/MenuItem.js +47 -27
  149. package/modern/NativeSelect/NativeSelectInput.js +78 -49
  150. package/modern/OutlinedInput/NotchedOutline.js +60 -43
  151. package/modern/OutlinedInput/OutlinedInput.js +97 -39
  152. package/modern/Pagination/Pagination.js +2 -2
  153. package/modern/PaginationItem/PaginationItem.js +64 -20
  154. package/modern/Paper/Paper.js +44 -21
  155. package/modern/Radio/Radio.js +5 -3
  156. package/modern/Radio/RadioButtonIcon.js +1 -1
  157. package/modern/Rating/Rating.js +3 -2
  158. package/modern/Select/Select.js +2 -1
  159. package/modern/Select/SelectInput.js +8 -6
  160. package/modern/Skeleton/Skeleton.js +109 -61
  161. package/modern/Slider/Slider.js +2 -2
  162. package/modern/Snackbar/Snackbar.js +66 -40
  163. package/modern/SnackbarContent/SnackbarContent.js +2 -2
  164. package/modern/SpeedDial/SpeedDial.js +107 -49
  165. package/modern/SpeedDialAction/SpeedDialAction.js +50 -24
  166. package/modern/SpeedDialIcon/SpeedDialIcon.js +37 -16
  167. package/modern/StepLabel/StepLabel.js +3 -3
  168. package/modern/SvgIcon/SvgIcon.js +73 -21
  169. package/modern/SwipeableDrawer/SwipeArea.js +39 -18
  170. package/modern/Tab/Tab.js +127 -55
  171. package/modern/TabScrollButton/TabScrollButton.js +27 -15
  172. package/modern/Table/Table.js +2 -2
  173. package/modern/TableBody/TableBody.js +2 -2
  174. package/modern/TableCell/TableCell.js +2 -2
  175. package/modern/TableContainer/TableContainer.js +2 -2
  176. package/modern/TableFooter/TableFooter.js +2 -2
  177. package/modern/TableHead/TableHead.js +2 -2
  178. package/modern/TablePagination/TablePagination.js +2 -2
  179. package/modern/TableRow/TableRow.js +2 -2
  180. package/modern/TableSortLabel/TableSortLabel.js +2 -2
  181. package/modern/Tabs/Tabs.js +107 -54
  182. package/modern/TextField/TextField.js +2 -2
  183. package/modern/Toolbar/Toolbar.js +3 -7
  184. package/modern/Tooltip/Tooltip.js +185 -88
  185. package/modern/Typography/Typography.js +89 -39
  186. package/modern/index.js +1 -1
  187. package/modern/internal/SwitchBase.js +39 -11
  188. package/node/Accordion/Accordion.js +2 -2
  189. package/node/Alert/Alert.js +2 -2
  190. package/node/Avatar/Avatar.js +1 -1
  191. package/node/Backdrop/Backdrop.js +1 -1
  192. package/node/Badge/Badge.js +2 -2
  193. package/node/Breadcrumbs/BreadcrumbCollapsed.js +3 -3
  194. package/node/Button/Button.js +2 -2
  195. package/node/Checkbox/Checkbox.js +3 -1
  196. package/node/Chip/chipClasses.js +1 -1
  197. package/node/Collapse/Collapse.js +70 -39
  198. package/node/Dialog/Dialog.js +110 -66
  199. package/node/DialogActions/DialogActions.js +18 -14
  200. package/node/DialogContent/DialogContent.js +27 -17
  201. package/node/DialogContentText/DialogContentText.js +6 -5
  202. package/node/DialogTitle/DialogTitle.js +4 -4
  203. package/node/Divider/Divider.js +1 -1
  204. package/node/Drawer/Drawer.js +78 -37
  205. package/node/Fab/Fab.js +2 -2
  206. package/node/FilledInput/FilledInput.js +176 -91
  207. package/node/FormControlLabel/FormControlLabel.js +23 -5
  208. package/node/FormHelperText/FormHelperText.js +4 -4
  209. package/node/FormLabel/FormLabel.js +26 -16
  210. package/node/Grow/Grow.js +3 -1
  211. package/node/Icon/Icon.js +65 -25
  212. package/node/ImageList/ImageList.js +4 -4
  213. package/node/ImageListItem/ImageListItem.js +4 -4
  214. package/node/ImageListItemBar/ImageListItemBar.js +8 -8
  215. package/node/Input/Input.js +87 -64
  216. package/node/InputAdornment/InputAdornment.js +39 -23
  217. package/node/InputBase/InputBase.js +61 -31
  218. package/node/InputLabel/InputLabel.js +123 -61
  219. package/node/Link/Link.js +101 -56
  220. package/node/Link/getTextDecoration.js +18 -10
  221. package/node/List/List.js +24 -15
  222. package/node/ListItem/ListItem.js +5 -5
  223. package/node/ListItemAvatar/ListItemAvatar.js +4 -4
  224. package/node/ListItemButton/ListItemButton.js +6 -5
  225. package/node/ListItemIcon/ListItemIcon.js +16 -11
  226. package/node/ListItemSecondaryAction/ListItemSecondaryAction.js +4 -4
  227. package/node/ListItemText/ListItemText.js +4 -4
  228. package/node/ListSubheader/ListSubheader.js +7 -5
  229. package/node/Menu/Menu.js +8 -7
  230. package/node/MenuItem/MenuItem.js +50 -30
  231. package/node/NativeSelect/NativeSelectInput.js +80 -53
  232. package/node/OutlinedInput/NotchedOutline.js +64 -47
  233. package/node/OutlinedInput/OutlinedInput.js +101 -43
  234. package/node/Pagination/Pagination.js +5 -5
  235. package/node/PaginationItem/PaginationItem.js +65 -20
  236. package/node/Paper/Paper.js +49 -28
  237. package/node/Radio/Radio.js +6 -4
  238. package/node/Radio/RadioButtonIcon.js +2 -2
  239. package/node/Rating/Rating.js +9 -8
  240. package/node/Select/Select.js +6 -5
  241. package/node/Select/SelectInput.js +9 -7
  242. package/node/Skeleton/Skeleton.js +113 -65
  243. package/node/Slider/Slider.js +2 -2
  244. package/node/Snackbar/Snackbar.js +68 -42
  245. package/node/SnackbarContent/SnackbarContent.js +6 -6
  246. package/node/SpeedDial/SpeedDial.js +111 -53
  247. package/node/SpeedDialAction/SpeedDialAction.js +54 -28
  248. package/node/SpeedDialIcon/SpeedDialIcon.js +39 -18
  249. package/node/StepLabel/StepLabel.js +3 -3
  250. package/node/SvgIcon/SvgIcon.js +79 -24
  251. package/node/SwipeableDrawer/SwipeArea.js +41 -20
  252. package/node/Tab/Tab.js +129 -57
  253. package/node/TabScrollButton/TabScrollButton.js +29 -17
  254. package/node/Table/Table.js +4 -4
  255. package/node/TableBody/TableBody.js +4 -4
  256. package/node/TableCell/TableCell.js +4 -4
  257. package/node/TableContainer/TableContainer.js +4 -4
  258. package/node/TableFooter/TableFooter.js +4 -4
  259. package/node/TableHead/TableHead.js +4 -4
  260. package/node/TablePagination/TablePagination.js +10 -10
  261. package/node/TableRow/TableRow.js +4 -4
  262. package/node/TableSortLabel/TableSortLabel.js +5 -5
  263. package/node/Tabs/Tabs.js +113 -60
  264. package/node/TextField/TextField.js +4 -4
  265. package/node/Toolbar/Toolbar.js +5 -9
  266. package/node/Tooltip/Tooltip.js +189 -92
  267. package/node/Typography/Typography.js +90 -40
  268. package/node/index.js +1 -1
  269. package/node/internal/SwitchBase.js +41 -13
  270. package/package.json +6 -6
  271. package/umd/material-ui.development.js +2777 -1334
  272. package/umd/material-ui.production.min.js +4 -4
@@ -10,11 +10,11 @@ import PropTypes from 'prop-types';
10
10
  import * as React from 'react';
11
11
  import { isFragment } from 'react-is';
12
12
  import ImageListContext from '../ImageList/ImageListContext';
13
- import styled from '../styles/styled';
14
- import useThemeProps from '../styles/useThemeProps';
13
+ import { styled, createUseThemeProps } from '../zero-styled';
15
14
  import isMuiElement from '../utils/isMuiElement';
16
15
  import imageListItemClasses, { getImageListItemUtilityClass } from './imageListItemClasses';
17
16
  import { jsx as _jsx } from "react/jsx-runtime";
17
+ const useThemeProps = createUseThemeProps('MuiImageListItem');
18
18
  const useUtilityClasses = ownerState => {
19
19
  const {
20
20
  classes,
@@ -7,11 +7,11 @@ import composeClasses from '@mui/utils/composeClasses';
7
7
  import clsx from 'clsx';
8
8
  import PropTypes from 'prop-types';
9
9
  import * as React from 'react';
10
- import styled from '../styles/styled';
11
- import useThemeProps from '../styles/useThemeProps';
10
+ import { styled, createUseThemeProps } from '../zero-styled';
12
11
  import capitalize from '../utils/capitalize';
13
12
  import { getImageListItemBarUtilityClass } from './imageListItemBarClasses';
14
13
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
14
+ const useThemeProps = createUseThemeProps('MuiImageListItemBar');
15
15
  const useUtilityClasses = ownerState => {
16
16
  const {
17
17
  classes,
package/Input/Input.d.ts CHANGED
@@ -10,6 +10,7 @@ export interface InputProps extends StandardProps<InputBaseProps> {
10
10
  classes?: Partial<InputClasses>;
11
11
  /**
12
12
  * If `true`, the `input` will not have an underline.
13
+ * @default false
13
14
  */
14
15
  disableUnderline?: boolean;
15
16
  /**
package/Input/Input.js CHANGED
@@ -9,11 +9,12 @@ import composeClasses from '@mui/utils/composeClasses';
9
9
  import deepmerge from '@mui/utils/deepmerge';
10
10
  import refType from '@mui/utils/refType';
11
11
  import InputBase from '../InputBase';
12
- import styled, { rootShouldForwardProp } from '../styles/styled';
13
- import useThemeProps from '../styles/useThemeProps';
12
+ import rootShouldForwardProp from '../styles/rootShouldForwardProp';
13
+ import { styled, createUseThemeProps } from '../zero-styled';
14
14
  import inputClasses, { getInputUtilityClass } from './inputClasses';
15
- import { rootOverridesResolver as inputBaseRootOverridesResolver, inputOverridesResolver as inputBaseInputOverridesResolver, InputBaseRoot, InputBaseComponent as InputBaseInput } from '../InputBase/InputBase';
15
+ import { rootOverridesResolver as inputBaseRootOverridesResolver, inputOverridesResolver as inputBaseInputOverridesResolver, InputBaseRoot, InputBaseInput } from '../InputBase/InputBase';
16
16
  import { jsx as _jsx } from "react/jsx-runtime";
17
+ const useThemeProps = createUseThemeProps('MuiInput');
17
18
  const useUtilityClasses = ownerState => {
18
19
  const {
19
20
  classes,
@@ -37,70 +38,89 @@ const InputRoot = styled(InputBaseRoot, {
37
38
  return [...inputBaseRootOverridesResolver(props, styles), !ownerState.disableUnderline && styles.underline];
38
39
  }
39
40
  })(({
40
- theme,
41
- ownerState
41
+ theme
42
42
  }) => {
43
43
  const light = theme.palette.mode === 'light';
44
44
  let bottomLineColor = light ? 'rgba(0, 0, 0, 0.42)' : 'rgba(255, 255, 255, 0.7)';
45
45
  if (theme.vars) {
46
46
  bottomLineColor = `rgba(${theme.vars.palette.common.onBackgroundChannel} / ${theme.vars.opacity.inputUnderline})`;
47
47
  }
48
- return _extends({
49
- position: 'relative'
50
- }, ownerState.formControl && {
51
- 'label + &': {
52
- marginTop: 16
53
- }
54
- }, !ownerState.disableUnderline && {
55
- '&::after': {
56
- borderBottom: `2px solid ${(theme.vars || theme).palette[ownerState.color].main}`,
57
- left: 0,
58
- bottom: 0,
59
- // Doing the other way around crash on IE11 "''" https://github.com/cssinjs/jss/issues/242
60
- content: '""',
61
- position: 'absolute',
62
- right: 0,
63
- transform: 'scaleX(0)',
64
- transition: theme.transitions.create('transform', {
65
- duration: theme.transitions.duration.shorter,
66
- easing: theme.transitions.easing.easeOut
67
- }),
68
- pointerEvents: 'none' // Transparent to the hover style.
69
- },
70
- [`&.${inputClasses.focused}:after`]: {
71
- // translateX(0) is a workaround for Safari transform scale bug
72
- // See https://github.com/mui/material-ui/issues/31766
73
- transform: 'scaleX(1) translateX(0)'
74
- },
75
- [`&.${inputClasses.error}`]: {
76
- '&::before, &::after': {
77
- borderBottomColor: (theme.vars || theme).palette.error.main
48
+ return {
49
+ position: 'relative',
50
+ variants: [{
51
+ props: ({
52
+ ownerState
53
+ }) => ownerState.formControl,
54
+ style: {
55
+ 'label + &': {
56
+ marginTop: 16
57
+ }
78
58
  }
79
- },
80
- '&::before': {
81
- borderBottom: `1px solid ${bottomLineColor}`,
82
- left: 0,
83
- bottom: 0,
84
- // Doing the other way around crash on IE11 "''" https://github.com/cssinjs/jss/issues/242
85
- content: '"\\00a0"',
86
- position: 'absolute',
87
- right: 0,
88
- transition: theme.transitions.create('border-bottom-color', {
89
- duration: theme.transitions.duration.shorter
90
- }),
91
- pointerEvents: 'none' // Transparent to the hover style.
92
- },
93
- [`&:hover:not(.${inputClasses.disabled}, .${inputClasses.error}):before`]: {
94
- borderBottom: `2px solid ${(theme.vars || theme).palette.text.primary}`,
95
- // Reset on touch devices, it doesn't add specificity
96
- '@media (hover: none)': {
97
- borderBottom: `1px solid ${bottomLineColor}`
59
+ }, {
60
+ props: ({
61
+ ownerState
62
+ }) => !ownerState.disableUnderline,
63
+ style: {
64
+ '&::after': {
65
+ left: 0,
66
+ bottom: 0,
67
+ // Doing the other way around crash on IE11 "''" https://github.com/cssinjs/jss/issues/242
68
+ content: '""',
69
+ position: 'absolute',
70
+ right: 0,
71
+ transform: 'scaleX(0)',
72
+ transition: theme.transitions.create('transform', {
73
+ duration: theme.transitions.duration.shorter,
74
+ easing: theme.transitions.easing.easeOut
75
+ }),
76
+ pointerEvents: 'none' // Transparent to the hover style.
77
+ },
78
+ [`&.${inputClasses.focused}:after`]: {
79
+ // translateX(0) is a workaround for Safari transform scale bug
80
+ // See https://github.com/mui/material-ui/issues/31766
81
+ transform: 'scaleX(1) translateX(0)'
82
+ },
83
+ [`&.${inputClasses.error}`]: {
84
+ '&::before, &::after': {
85
+ borderBottomColor: (theme.vars || theme).palette.error.main
86
+ }
87
+ },
88
+ '&::before': {
89
+ borderBottom: `1px solid ${bottomLineColor}`,
90
+ left: 0,
91
+ bottom: 0,
92
+ // Doing the other way around crash on IE11 "''" https://github.com/cssinjs/jss/issues/242
93
+ content: '"\\00a0"',
94
+ position: 'absolute',
95
+ right: 0,
96
+ transition: theme.transitions.create('border-bottom-color', {
97
+ duration: theme.transitions.duration.shorter
98
+ }),
99
+ pointerEvents: 'none' // Transparent to the hover style.
100
+ },
101
+ [`&:hover:not(.${inputClasses.disabled}, .${inputClasses.error}):before`]: {
102
+ borderBottom: `2px solid ${(theme.vars || theme).palette.text.primary}`,
103
+ // Reset on touch devices, it doesn't add specificity
104
+ '@media (hover: none)': {
105
+ borderBottom: `1px solid ${bottomLineColor}`
106
+ }
107
+ },
108
+ [`&.${inputClasses.disabled}:before`]: {
109
+ borderBottomStyle: 'dotted'
110
+ }
98
111
  }
99
- },
100
- [`&.${inputClasses.disabled}:before`]: {
101
- borderBottomStyle: 'dotted'
102
- }
103
- });
112
+ }, ...Object.entries(theme.palette).filter(([, value]) => value.main).map(([color]) => ({
113
+ props: {
114
+ color,
115
+ disableUnderline: false
116
+ },
117
+ style: {
118
+ '&::after': {
119
+ borderBottom: `2px solid ${(theme.vars || theme).palette[color].main}`
120
+ }
121
+ }
122
+ }))]
123
+ };
104
124
  });
105
125
  const InputInput = styled(InputBaseInput, {
106
126
  name: 'MuiInput',
@@ -113,7 +133,7 @@ const Input = /*#__PURE__*/React.forwardRef(function Input(inProps, ref) {
113
133
  name: 'MuiInput'
114
134
  });
115
135
  const {
116
- disableUnderline,
136
+ disableUnderline = false,
117
137
  components = {},
118
138
  componentsProps: componentsPropsProp,
119
139
  fullWidth = false,
@@ -213,6 +233,7 @@ process.env.NODE_ENV !== "production" ? Input.propTypes /* remove-proptypes */ =
213
233
  disabled: PropTypes.bool,
214
234
  /**
215
235
  * If `true`, the `input` will not have an underline.
236
+ * @default false
216
237
  */
217
238
  disableUnderline: PropTypes.bool,
218
239
  /**
@@ -337,5 +358,7 @@ process.env.NODE_ENV !== "production" ? Input.propTypes /* remove-proptypes */ =
337
358
  */
338
359
  value: PropTypes.any
339
360
  } : void 0;
340
- Input.muiName = 'Input';
361
+ if (Input) {
362
+ Input.muiName = 'Input';
363
+ }
341
364
  export default Input;
@@ -1,7 +1,7 @@
1
1
  'use client';
2
2
 
3
- import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
4
3
  import _extends from "@babel/runtime/helpers/esm/extends";
4
+ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
5
5
  var _span;
6
6
  const _excluded = ["children", "className", "component", "disablePointerEvents", "disableTypography", "position", "variant"];
7
7
  import * as React from 'react';
@@ -12,10 +12,10 @@ import capitalize from '../utils/capitalize';
12
12
  import Typography from '../Typography';
13
13
  import FormControlContext from '../FormControl/FormControlContext';
14
14
  import useFormControl from '../FormControl/useFormControl';
15
- import styled from '../styles/styled';
15
+ import { styled, createUseThemeProps } from '../zero-styled';
16
16
  import inputAdornmentClasses, { getInputAdornmentUtilityClass } from './inputAdornmentClasses';
17
- import useThemeProps from '../styles/useThemeProps';
18
17
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
18
+ const useThemeProps = createUseThemeProps('MuiInputAdornment');
19
19
  const overridesResolver = (props, styles) => {
20
20
  const {
21
21
  ownerState
@@ -41,30 +41,46 @@ const InputAdornmentRoot = styled('div', {
41
41
  slot: 'Root',
42
42
  overridesResolver
43
43
  })(({
44
- theme,
45
- ownerState
46
- }) => _extends({
44
+ theme
45
+ }) => ({
47
46
  display: 'flex',
48
47
  height: '0.01em',
49
48
  // Fix IE11 flexbox alignment. To remove at some point.
50
49
  maxHeight: '2em',
51
50
  alignItems: 'center',
52
51
  whiteSpace: 'nowrap',
53
- color: (theme.vars || theme).palette.action.active
54
- }, ownerState.variant === 'filled' && {
55
- // Styles applied to the root element if `variant="filled"`.
56
- [`&.${inputAdornmentClasses.positionStart}&:not(.${inputAdornmentClasses.hiddenLabel})`]: {
57
- marginTop: 16
58
- }
59
- }, ownerState.position === 'start' && {
60
- // Styles applied to the root element if `position="start"`.
61
- marginRight: 8
62
- }, ownerState.position === 'end' && {
63
- // Styles applied to the root element if `position="end"`.
64
- marginLeft: 8
65
- }, ownerState.disablePointerEvents === true && {
66
- // Styles applied to the root element if `disablePointerEvents={true}`.
67
- pointerEvents: 'none'
52
+ color: (theme.vars || theme).palette.action.active,
53
+ variants: [{
54
+ props: {
55
+ variant: 'filled'
56
+ },
57
+ style: {
58
+ [`&.${inputAdornmentClasses.positionStart}&:not(.${inputAdornmentClasses.hiddenLabel})`]: {
59
+ marginTop: 16
60
+ }
61
+ }
62
+ }, {
63
+ props: {
64
+ position: 'start'
65
+ },
66
+ style: {
67
+ marginRight: 8
68
+ }
69
+ }, {
70
+ props: {
71
+ position: 'end'
72
+ },
73
+ style: {
74
+ marginLeft: 8
75
+ }
76
+ }, {
77
+ props: {
78
+ disablePointerEvents: true
79
+ },
80
+ style: {
81
+ pointerEvents: 'none'
82
+ }
83
+ }]
68
84
  }));
69
85
  const InputAdornment = /*#__PURE__*/React.forwardRef(function InputAdornment(inProps, ref) {
70
86
  const props = useThemeProps({
@@ -15,8 +15,7 @@ import composeClasses from '@mui/utils/composeClasses';
15
15
  import formControlState from '../FormControl/formControlState';
16
16
  import FormControlContext from '../FormControl/FormControlContext';
17
17
  import useFormControl from '../FormControl/useFormControl';
18
- import styled from '../styles/styled';
19
- import useThemeProps from '../styles/useThemeProps';
18
+ import { styled, createUseThemeProps } from '../zero-styled';
20
19
  import capitalize from '../utils/capitalize';
21
20
  import useForkRef from '../utils/useForkRef';
22
21
  import useEnhancedEffect from '../utils/useEnhancedEffect';
@@ -24,6 +23,7 @@ import GlobalStyles from '../GlobalStyles';
24
23
  import { isFilled } from './utils';
25
24
  import inputBaseClasses, { getInputBaseUtilityClass } from './inputBaseClasses';
26
25
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
26
+ const useThemeProps = createUseThemeProps('MuiInputBase');
27
27
  export const rootOverridesResolver = (props, styles) => {
28
28
  const {
29
29
  ownerState
@@ -64,8 +64,7 @@ export const InputBaseRoot = styled('div', {
64
64
  slot: 'Root',
65
65
  overridesResolver: rootOverridesResolver
66
66
  })(({
67
- theme,
68
- ownerState
67
+ theme
69
68
  }) => _extends({}, theme.typography.body1, {
70
69
  color: (theme.vars || theme).palette.text.primary,
71
70
  lineHeight: '1.4375em',
@@ -79,21 +78,37 @@ export const InputBaseRoot = styled('div', {
79
78
  [`&.${inputBaseClasses.disabled}`]: {
80
79
  color: (theme.vars || theme).palette.text.disabled,
81
80
  cursor: 'default'
82
- }
83
- }, ownerState.multiline && _extends({
84
- padding: '4px 0 5px'
85
- }, ownerState.size === 'small' && {
86
- paddingTop: 1
87
- }), ownerState.fullWidth && {
88
- width: '100%'
81
+ },
82
+ variants: [{
83
+ props: ({
84
+ ownerState
85
+ }) => ownerState.multiline,
86
+ style: {
87
+ padding: '4px 0 5px'
88
+ }
89
+ }, {
90
+ props: ({
91
+ ownerState,
92
+ size
93
+ }) => ownerState.multiline && size === 'small',
94
+ style: {
95
+ paddingTop: 1
96
+ }
97
+ }, {
98
+ props: ({
99
+ ownerState
100
+ }) => ownerState.fullWidth,
101
+ style: {
102
+ width: '100%'
103
+ }
104
+ }]
89
105
  }));
90
- export const InputBaseComponent = styled('input', {
106
+ export const InputBaseInput = styled('input', {
91
107
  name: 'MuiInputBase',
92
108
  slot: 'Input',
93
109
  overridesResolver: inputOverridesResolver
94
110
  })(({
95
- theme,
96
- ownerState
111
+ theme
97
112
  }) => {
98
113
  const light = theme.palette.mode === 'light';
99
114
  const placeholder = _extends({
@@ -115,7 +130,7 @@ export const InputBaseComponent = styled('input', {
115
130
  } : {
116
131
  opacity: light ? 0.42 : 0.5
117
132
  };
118
- return _extends({
133
+ return {
119
134
  font: 'inherit',
120
135
  letterSpacing: 'inherit',
121
136
  color: 'currentColor',
@@ -177,18 +192,33 @@ export const InputBaseComponent = styled('input', {
177
192
  '&:-webkit-autofill': {
178
193
  animationDuration: '5000s',
179
194
  animationName: 'mui-auto-fill'
180
- }
181
- }, ownerState.size === 'small' && {
182
- paddingTop: 1
183
- }, ownerState.multiline && {
184
- height: 'auto',
185
- resize: 'none',
186
- padding: 0,
187
- paddingTop: 0
188
- }, ownerState.type === 'search' && {
189
- // Improve type search style.
190
- MozAppearance: 'textfield'
191
- });
195
+ },
196
+ variants: [{
197
+ props: {
198
+ size: 'small'
199
+ },
200
+ style: {
201
+ paddingTop: 1
202
+ }
203
+ }, {
204
+ props: ({
205
+ ownerState
206
+ }) => ownerState.multiline,
207
+ style: {
208
+ height: 'auto',
209
+ resize: 'none',
210
+ padding: 0,
211
+ paddingTop: 0
212
+ }
213
+ }, {
214
+ props: {
215
+ type: 'search'
216
+ },
217
+ style: {
218
+ MozAppearance: 'textfield' // Improve type search style.
219
+ }
220
+ }]
221
+ };
192
222
  });
193
223
  const inputGlobalStyles = /*#__PURE__*/_jsx(GlobalStyles, {
194
224
  styles: {
@@ -428,7 +458,7 @@ const InputBase = /*#__PURE__*/React.forwardRef(function InputBase(inProps, ref)
428
458
  const classes = useUtilityClasses(ownerState);
429
459
  const Root = slots.root || components.Root || InputBaseRoot;
430
460
  const rootProps = slotProps.root || componentsProps.root || {};
431
- const Input = slots.input || components.Input || InputBaseComponent;
461
+ const Input = slots.input || components.Input || InputBaseInput;
432
462
  inputProps = _extends({}, inputProps, slotProps.input ?? componentsProps.input);
433
463
  return /*#__PURE__*/_jsxs(React.Fragment, {
434
464
  children: [!disableInjectingGlobalStyles && inputGlobalStyles, /*#__PURE__*/_jsxs(Root, _extends({}, rootProps, !isHostComponent(Root) && {
@@ -10,11 +10,12 @@ import clsx from 'clsx';
10
10
  import formControlState from '../FormControl/formControlState';
11
11
  import useFormControl from '../FormControl/useFormControl';
12
12
  import FormLabel, { formLabelClasses } from '../FormLabel';
13
- import useThemeProps from '../styles/useThemeProps';
14
13
  import capitalize from '../utils/capitalize';
15
- import styled, { rootShouldForwardProp } from '../styles/styled';
14
+ import rootShouldForwardProp from '../styles/rootShouldForwardProp';
15
+ import { styled, createUseThemeProps } from '../zero-styled';
16
16
  import { getInputLabelUtilityClasses } from './inputLabelClasses';
17
17
  import { jsx as _jsx } from "react/jsx-runtime";
18
+ const useThemeProps = createUseThemeProps('MuiInputLabel');
18
19
  const useUtilityClasses = ownerState => {
19
20
  const {
20
21
  classes,
@@ -45,67 +46,128 @@ const InputLabelRoot = styled(FormLabel, {
45
46
  }, styles.root, ownerState.formControl && styles.formControl, ownerState.size === 'small' && styles.sizeSmall, ownerState.shrink && styles.shrink, !ownerState.disableAnimation && styles.animated, ownerState.focused && styles.focused, styles[ownerState.variant]];
46
47
  }
47
48
  })(({
48
- theme,
49
- ownerState
50
- }) => _extends({
49
+ theme
50
+ }) => ({
51
51
  display: 'block',
52
52
  transformOrigin: 'top left',
53
53
  whiteSpace: 'nowrap',
54
54
  overflow: 'hidden',
55
55
  textOverflow: 'ellipsis',
56
- maxWidth: '100%'
57
- }, ownerState.formControl && {
58
- position: 'absolute',
59
- left: 0,
60
- top: 0,
61
- // slight alteration to spec spacing to match visual spec result
62
- transform: 'translate(0, 20px) scale(1)'
63
- }, ownerState.size === 'small' && {
64
- // Compensation for the `Input.inputSizeSmall` style.
65
- transform: 'translate(0, 17px) scale(1)'
66
- }, ownerState.shrink && {
67
- transform: 'translate(0, -1.5px) scale(0.75)',
68
- transformOrigin: 'top left',
69
- maxWidth: '133%'
70
- }, !ownerState.disableAnimation && {
71
- transition: theme.transitions.create(['color', 'transform', 'max-width'], {
72
- duration: theme.transitions.duration.shorter,
73
- easing: theme.transitions.easing.easeOut
74
- })
75
- }, ownerState.variant === 'filled' && _extends({
76
- // Chrome's autofill feature gives the input field a yellow background.
77
- // Since the input field is behind the label in the HTML tree,
78
- // the input field is drawn last and hides the label with an opaque background color.
79
- // zIndex: 1 will raise the label above opaque background-colors of input.
80
- zIndex: 1,
81
- pointerEvents: 'none',
82
- transform: 'translate(12px, 16px) scale(1)',
83
- maxWidth: 'calc(100% - 24px)'
84
- }, ownerState.size === 'small' && {
85
- transform: 'translate(12px, 13px) scale(1)'
86
- }, ownerState.shrink && _extends({
87
- userSelect: 'none',
88
- pointerEvents: 'auto',
89
- transform: 'translate(12px, 7px) scale(0.75)',
90
- maxWidth: 'calc(133% - 24px)'
91
- }, ownerState.size === 'small' && {
92
- transform: 'translate(12px, 4px) scale(0.75)'
93
- })), ownerState.variant === 'outlined' && _extends({
94
- // see comment above on filled.zIndex
95
- zIndex: 1,
96
- pointerEvents: 'none',
97
- transform: 'translate(14px, 16px) scale(1)',
98
- maxWidth: 'calc(100% - 24px)'
99
- }, ownerState.size === 'small' && {
100
- transform: 'translate(14px, 9px) scale(1)'
101
- }, ownerState.shrink && {
102
- userSelect: 'none',
103
- pointerEvents: 'auto',
104
- // Theoretically, we should have (8+5)*2/0.75 = 34px
105
- // but it feels a better when it bleeds a bit on the left, so 32px.
106
- maxWidth: 'calc(133% - 32px)',
107
- transform: 'translate(14px, -9px) scale(0.75)'
108
- })));
56
+ maxWidth: '100%',
57
+ variants: [{
58
+ props: ({
59
+ ownerState
60
+ }) => ownerState.formControl,
61
+ style: {
62
+ position: 'absolute',
63
+ left: 0,
64
+ top: 0,
65
+ // slight alteration to spec spacing to match visual spec result
66
+ transform: 'translate(0, 20px) scale(1)'
67
+ }
68
+ }, {
69
+ props: {
70
+ size: 'small'
71
+ },
72
+ style: {
73
+ // Compensation for the `Input.inputSizeSmall` style.
74
+ transform: 'translate(0, 17px) scale(1)'
75
+ }
76
+ }, {
77
+ props: ({
78
+ ownerState
79
+ }) => ownerState.shrink,
80
+ style: {
81
+ transform: 'translate(0, -1.5px) scale(0.75)',
82
+ transformOrigin: 'top left',
83
+ maxWidth: '133%'
84
+ }
85
+ }, {
86
+ props: ({
87
+ ownerState
88
+ }) => !ownerState.disableAnimation,
89
+ style: {
90
+ transition: theme.transitions.create(['color', 'transform', 'max-width'], {
91
+ duration: theme.transitions.duration.shorter,
92
+ easing: theme.transitions.easing.easeOut
93
+ })
94
+ }
95
+ }, {
96
+ props: {
97
+ variant: 'filled'
98
+ },
99
+ style: {
100
+ // Chrome's autofill feature gives the input field a yellow background.
101
+ // Since the input field is behind the label in the HTML tree,
102
+ // the input field is drawn last and hides the label with an opaque background color.
103
+ // zIndex: 1 will raise the label above opaque background-colors of input.
104
+ zIndex: 1,
105
+ pointerEvents: 'none',
106
+ transform: 'translate(12px, 16px) scale(1)',
107
+ maxWidth: 'calc(100% - 24px)'
108
+ }
109
+ }, {
110
+ props: {
111
+ variant: 'filled',
112
+ size: 'small'
113
+ },
114
+ style: {
115
+ transform: 'translate(12px, 13px) scale(1)'
116
+ }
117
+ }, {
118
+ props: ({
119
+ variant,
120
+ ownerState
121
+ }) => variant === 'filled' && ownerState.shrink,
122
+ style: {
123
+ userSelect: 'none',
124
+ pointerEvents: 'auto',
125
+ transform: 'translate(12px, 7px) scale(0.75)',
126
+ maxWidth: 'calc(133% - 24px)'
127
+ }
128
+ }, {
129
+ props: ({
130
+ variant,
131
+ ownerState,
132
+ size
133
+ }) => variant === 'filled' && ownerState.shrink && size === 'small',
134
+ style: {
135
+ transform: 'translate(12px, 4px) scale(0.75)'
136
+ }
137
+ }, {
138
+ props: {
139
+ variant: 'outlined'
140
+ },
141
+ style: {
142
+ // see comment above on filled.zIndex
143
+ zIndex: 1,
144
+ pointerEvents: 'none',
145
+ transform: 'translate(14px, 16px) scale(1)',
146
+ maxWidth: 'calc(100% - 24px)'
147
+ }
148
+ }, {
149
+ props: {
150
+ variant: 'outlined',
151
+ size: 'small'
152
+ },
153
+ style: {
154
+ transform: 'translate(14px, 9px) scale(1)'
155
+ }
156
+ }, {
157
+ props: ({
158
+ variant,
159
+ ownerState
160
+ }) => variant === 'outlined' && ownerState.shrink,
161
+ style: {
162
+ userSelect: 'none',
163
+ pointerEvents: 'auto',
164
+ // Theoretically, we should have (8+5)*2/0.75 = 34px
165
+ // but it feels a better when it bleeds a bit on the left, so 32px.
166
+ maxWidth: 'calc(133% - 32px)',
167
+ transform: 'translate(14px, -9px) scale(0.75)'
168
+ }
169
+ }]
170
+ }));
109
171
  const InputLabel = /*#__PURE__*/React.forwardRef(function InputLabel(inProps, ref) {
110
172
  const props = useThemeProps({
111
173
  name: 'MuiInputLabel',