@mui/material 6.0.0-alpha.5 → 6.0.0-alpha.7

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 (274) 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/Autocomplete/Autocomplete.d.ts +78 -12
  8. package/Autocomplete/Autocomplete.js +120 -59
  9. package/Avatar/Avatar.d.ts +1 -1
  10. package/Avatar/Avatar.js +1 -1
  11. package/Backdrop/Backdrop.d.ts +1 -1
  12. package/Backdrop/Backdrop.js +1 -1
  13. package/Badge/Badge.d.ts +2 -2
  14. package/Badge/Badge.js +2 -2
  15. package/Breadcrumbs/BreadcrumbCollapsed.js +1 -1
  16. package/Button/Button.js +1 -1
  17. package/Button/buttonClasses.d.ts +33 -33
  18. package/ButtonGroup/buttonGroupClasses.d.ts +17 -17
  19. package/CHANGELOG.md +95 -0
  20. package/Checkbox/Checkbox.js +3 -1
  21. package/Chip/chipClasses.d.ts +28 -26
  22. package/Chip/chipClasses.js +1 -1
  23. package/CircularProgress/circularProgressClasses.d.ts +6 -2
  24. package/Collapse/Collapse.js +66 -35
  25. package/Dialog/Dialog.js +105 -61
  26. package/DialogActions/DialogActions.js +16 -12
  27. package/DialogContent/DialogContent.js +25 -15
  28. package/DialogContentText/DialogContentText.js +3 -2
  29. package/DialogTitle/DialogTitle.js +2 -2
  30. package/Divider/Divider.d.ts +1 -1
  31. package/Divider/Divider.js +1 -1
  32. package/Drawer/Drawer.js +73 -32
  33. package/Fab/Fab.js +1 -1
  34. package/FilledInput/FilledInput.d.ts +1 -0
  35. package/FilledInput/FilledInput.js +170 -87
  36. package/FormControlLabel/FormControlLabel.d.ts +1 -1
  37. package/FormControlLabel/FormControlLabel.js +1 -1
  38. package/FormHelperText/FormHelperText.js +2 -2
  39. package/FormLabel/FormLabel.js +23 -13
  40. package/Grow/Grow.js +3 -1
  41. package/Icon/Icon.js +63 -23
  42. package/ImageList/ImageList.js +2 -2
  43. package/ImageListItem/ImageListItem.js +2 -2
  44. package/ImageListItemBar/ImageListItemBar.js +2 -2
  45. package/Input/Input.d.ts +1 -0
  46. package/Input/Input.js +84 -61
  47. package/InputAdornment/InputAdornment.js +37 -21
  48. package/InputBase/InputBase.js +58 -28
  49. package/InputLabel/InputLabel.js +120 -58
  50. package/Link/Link.js +99 -54
  51. package/Link/getTextDecoration.d.ts +2 -8
  52. package/Link/getTextDecoration.js +16 -8
  53. package/List/List.js +22 -13
  54. package/ListItem/ListItem.js +2 -2
  55. package/ListItemAvatar/ListItemAvatar.js +2 -2
  56. package/ListItemButton/ListItemButton.js +3 -2
  57. package/ListItemIcon/ListItemIcon.js +14 -9
  58. package/ListItemSecondaryAction/ListItemSecondaryAction.js +2 -2
  59. package/ListItemText/ListItemText.js +2 -2
  60. package/ListSubheader/ListSubheader.js +5 -3
  61. package/Menu/Menu.js +3 -2
  62. package/MenuItem/MenuItem.js +47 -27
  63. package/NativeSelect/NativeSelectInput.js +78 -49
  64. package/OutlinedInput/NotchedOutline.js +60 -43
  65. package/OutlinedInput/OutlinedInput.js +97 -39
  66. package/Pagination/Pagination.js +2 -2
  67. package/PaginationItem/PaginationItem.d.ts +1 -1
  68. package/PaginationItem/PaginationItem.js +1 -1
  69. package/PaginationItem/paginationItemClasses.d.ts +4 -4
  70. package/Paper/Paper.js +44 -21
  71. package/Radio/Radio.js +5 -3
  72. package/Radio/RadioButtonIcon.js +1 -1
  73. package/Rating/Rating.js +3 -2
  74. package/Select/Select.js +2 -1
  75. package/Select/SelectInput.js +8 -6
  76. package/Skeleton/Skeleton.js +109 -61
  77. package/Slider/Slider.d.ts +2 -2
  78. package/Slider/Slider.js +2 -2
  79. package/Snackbar/Snackbar.js +66 -40
  80. package/SnackbarContent/SnackbarContent.js +2 -2
  81. package/SpeedDial/SpeedDial.d.ts +28 -1
  82. package/SpeedDial/SpeedDial.js +107 -49
  83. package/SpeedDialAction/SpeedDialAction.js +50 -24
  84. package/SpeedDialIcon/SpeedDialIcon.js +37 -16
  85. package/StepConnector/stepConnectorClasses.d.ts +2 -2
  86. package/StepLabel/StepLabel.d.ts +3 -3
  87. package/StepLabel/StepLabel.js +3 -3
  88. package/SwipeableDrawer/SwipeArea.js +39 -18
  89. package/Tab/Tab.js +127 -55
  90. package/TabScrollButton/TabScrollButton.js +27 -15
  91. package/Table/Table.js +2 -2
  92. package/TableBody/TableBody.js +2 -2
  93. package/TableCell/TableCell.js +2 -2
  94. package/TableContainer/TableContainer.js +2 -2
  95. package/TableFooter/TableFooter.js +2 -2
  96. package/TableHead/TableHead.js +2 -2
  97. package/TablePagination/TablePagination.js +2 -2
  98. package/TableRow/TableRow.js +2 -2
  99. package/TableSortLabel/TableSortLabel.js +2 -2
  100. package/Tabs/Tabs.js +107 -54
  101. package/TextField/TextField.js +2 -2
  102. package/ToggleButtonGroup/toggleButtonGroupClasses.d.ts +4 -2
  103. package/Toolbar/Toolbar.js +3 -7
  104. package/Tooltip/Tooltip.js +185 -88
  105. package/Typography/Typography.js +89 -39
  106. package/index.js +1 -1
  107. package/internal/SwitchBase.js +39 -11
  108. package/modern/Accordion/Accordion.js +2 -2
  109. package/modern/Alert/Alert.js +2 -2
  110. package/modern/Autocomplete/Autocomplete.js +120 -59
  111. package/modern/Avatar/Avatar.js +1 -1
  112. package/modern/Backdrop/Backdrop.js +1 -1
  113. package/modern/Badge/Badge.js +2 -2
  114. package/modern/Breadcrumbs/BreadcrumbCollapsed.js +1 -1
  115. package/modern/Button/Button.js +1 -1
  116. package/modern/Checkbox/Checkbox.js +3 -1
  117. package/modern/Chip/chipClasses.js +1 -1
  118. package/modern/Collapse/Collapse.js +66 -35
  119. package/modern/Dialog/Dialog.js +105 -61
  120. package/modern/DialogActions/DialogActions.js +16 -12
  121. package/modern/DialogContent/DialogContent.js +25 -15
  122. package/modern/DialogContentText/DialogContentText.js +3 -2
  123. package/modern/DialogTitle/DialogTitle.js +2 -2
  124. package/modern/Divider/Divider.js +1 -1
  125. package/modern/Drawer/Drawer.js +73 -32
  126. package/modern/Fab/Fab.js +1 -1
  127. package/modern/FilledInput/FilledInput.js +170 -87
  128. package/modern/FormControlLabel/FormControlLabel.js +1 -1
  129. package/modern/FormHelperText/FormHelperText.js +2 -2
  130. package/modern/FormLabel/FormLabel.js +23 -13
  131. package/modern/Grow/Grow.js +3 -1
  132. package/modern/Icon/Icon.js +63 -23
  133. package/modern/ImageList/ImageList.js +2 -2
  134. package/modern/ImageListItem/ImageListItem.js +2 -2
  135. package/modern/ImageListItemBar/ImageListItemBar.js +2 -2
  136. package/modern/Input/Input.js +84 -61
  137. package/modern/InputAdornment/InputAdornment.js +37 -21
  138. package/modern/InputBase/InputBase.js +58 -28
  139. package/modern/InputLabel/InputLabel.js +120 -58
  140. package/modern/Link/Link.js +99 -54
  141. package/modern/Link/getTextDecoration.js +16 -8
  142. package/modern/List/List.js +22 -13
  143. package/modern/ListItem/ListItem.js +2 -2
  144. package/modern/ListItemAvatar/ListItemAvatar.js +2 -2
  145. package/modern/ListItemButton/ListItemButton.js +3 -2
  146. package/modern/ListItemIcon/ListItemIcon.js +14 -9
  147. package/modern/ListItemSecondaryAction/ListItemSecondaryAction.js +2 -2
  148. package/modern/ListItemText/ListItemText.js +2 -2
  149. package/modern/ListSubheader/ListSubheader.js +5 -3
  150. package/modern/Menu/Menu.js +3 -2
  151. package/modern/MenuItem/MenuItem.js +47 -27
  152. package/modern/NativeSelect/NativeSelectInput.js +78 -49
  153. package/modern/OutlinedInput/NotchedOutline.js +60 -43
  154. package/modern/OutlinedInput/OutlinedInput.js +97 -39
  155. package/modern/Pagination/Pagination.js +2 -2
  156. package/modern/PaginationItem/PaginationItem.js +1 -1
  157. package/modern/Paper/Paper.js +44 -21
  158. package/modern/Radio/Radio.js +5 -3
  159. package/modern/Radio/RadioButtonIcon.js +1 -1
  160. package/modern/Rating/Rating.js +3 -2
  161. package/modern/Select/Select.js +2 -1
  162. package/modern/Select/SelectInput.js +8 -6
  163. package/modern/Skeleton/Skeleton.js +109 -61
  164. package/modern/Slider/Slider.js +2 -2
  165. package/modern/Snackbar/Snackbar.js +66 -40
  166. package/modern/SnackbarContent/SnackbarContent.js +2 -2
  167. package/modern/SpeedDial/SpeedDial.js +107 -49
  168. package/modern/SpeedDialAction/SpeedDialAction.js +50 -24
  169. package/modern/SpeedDialIcon/SpeedDialIcon.js +37 -16
  170. package/modern/StepLabel/StepLabel.js +3 -3
  171. package/modern/SwipeableDrawer/SwipeArea.js +39 -18
  172. package/modern/Tab/Tab.js +127 -55
  173. package/modern/TabScrollButton/TabScrollButton.js +27 -15
  174. package/modern/Table/Table.js +2 -2
  175. package/modern/TableBody/TableBody.js +2 -2
  176. package/modern/TableCell/TableCell.js +2 -2
  177. package/modern/TableContainer/TableContainer.js +2 -2
  178. package/modern/TableFooter/TableFooter.js +2 -2
  179. package/modern/TableHead/TableHead.js +2 -2
  180. package/modern/TablePagination/TablePagination.js +2 -2
  181. package/modern/TableRow/TableRow.js +2 -2
  182. package/modern/TableSortLabel/TableSortLabel.js +2 -2
  183. package/modern/Tabs/Tabs.js +107 -54
  184. package/modern/TextField/TextField.js +2 -2
  185. package/modern/Toolbar/Toolbar.js +3 -7
  186. package/modern/Tooltip/Tooltip.js +185 -88
  187. package/modern/Typography/Typography.js +89 -39
  188. package/modern/index.js +1 -1
  189. package/modern/internal/SwitchBase.js +39 -11
  190. package/node/Accordion/Accordion.js +2 -2
  191. package/node/Alert/Alert.js +2 -2
  192. package/node/Autocomplete/Autocomplete.js +120 -60
  193. package/node/Avatar/Avatar.js +1 -1
  194. package/node/Backdrop/Backdrop.js +1 -1
  195. package/node/Badge/Badge.js +2 -2
  196. package/node/Breadcrumbs/BreadcrumbCollapsed.js +3 -3
  197. package/node/Button/Button.js +2 -2
  198. package/node/Checkbox/Checkbox.js +3 -1
  199. package/node/Chip/chipClasses.js +1 -1
  200. package/node/Collapse/Collapse.js +70 -39
  201. package/node/Dialog/Dialog.js +110 -66
  202. package/node/DialogActions/DialogActions.js +18 -14
  203. package/node/DialogContent/DialogContent.js +27 -17
  204. package/node/DialogContentText/DialogContentText.js +6 -5
  205. package/node/DialogTitle/DialogTitle.js +4 -4
  206. package/node/Divider/Divider.js +1 -1
  207. package/node/Drawer/Drawer.js +78 -37
  208. package/node/Fab/Fab.js +2 -2
  209. package/node/FilledInput/FilledInput.js +176 -91
  210. package/node/FormControlLabel/FormControlLabel.js +1 -1
  211. package/node/FormHelperText/FormHelperText.js +4 -4
  212. package/node/FormLabel/FormLabel.js +26 -16
  213. package/node/Grow/Grow.js +3 -1
  214. package/node/Icon/Icon.js +65 -25
  215. package/node/ImageList/ImageList.js +4 -4
  216. package/node/ImageListItem/ImageListItem.js +4 -4
  217. package/node/ImageListItemBar/ImageListItemBar.js +8 -8
  218. package/node/Input/Input.js +87 -64
  219. package/node/InputAdornment/InputAdornment.js +39 -23
  220. package/node/InputBase/InputBase.js +61 -31
  221. package/node/InputLabel/InputLabel.js +123 -61
  222. package/node/Link/Link.js +101 -56
  223. package/node/Link/getTextDecoration.js +18 -10
  224. package/node/List/List.js +24 -15
  225. package/node/ListItem/ListItem.js +5 -5
  226. package/node/ListItemAvatar/ListItemAvatar.js +4 -4
  227. package/node/ListItemButton/ListItemButton.js +6 -5
  228. package/node/ListItemIcon/ListItemIcon.js +16 -11
  229. package/node/ListItemSecondaryAction/ListItemSecondaryAction.js +4 -4
  230. package/node/ListItemText/ListItemText.js +4 -4
  231. package/node/ListSubheader/ListSubheader.js +7 -5
  232. package/node/Menu/Menu.js +8 -7
  233. package/node/MenuItem/MenuItem.js +50 -30
  234. package/node/NativeSelect/NativeSelectInput.js +80 -53
  235. package/node/OutlinedInput/NotchedOutline.js +64 -47
  236. package/node/OutlinedInput/OutlinedInput.js +101 -43
  237. package/node/Pagination/Pagination.js +5 -5
  238. package/node/PaginationItem/PaginationItem.js +1 -1
  239. package/node/Paper/Paper.js +49 -28
  240. package/node/Radio/Radio.js +6 -4
  241. package/node/Radio/RadioButtonIcon.js +2 -2
  242. package/node/Rating/Rating.js +9 -8
  243. package/node/Select/Select.js +6 -5
  244. package/node/Select/SelectInput.js +9 -7
  245. package/node/Skeleton/Skeleton.js +113 -65
  246. package/node/Slider/Slider.js +2 -2
  247. package/node/Snackbar/Snackbar.js +68 -42
  248. package/node/SnackbarContent/SnackbarContent.js +6 -6
  249. package/node/SpeedDial/SpeedDial.js +111 -53
  250. package/node/SpeedDialAction/SpeedDialAction.js +54 -28
  251. package/node/SpeedDialIcon/SpeedDialIcon.js +39 -18
  252. package/node/StepLabel/StepLabel.js +3 -3
  253. package/node/SwipeableDrawer/SwipeArea.js +41 -20
  254. package/node/Tab/Tab.js +129 -57
  255. package/node/TabScrollButton/TabScrollButton.js +29 -17
  256. package/node/Table/Table.js +4 -4
  257. package/node/TableBody/TableBody.js +4 -4
  258. package/node/TableCell/TableCell.js +4 -4
  259. package/node/TableContainer/TableContainer.js +4 -4
  260. package/node/TableFooter/TableFooter.js +4 -4
  261. package/node/TableHead/TableHead.js +4 -4
  262. package/node/TablePagination/TablePagination.js +10 -10
  263. package/node/TableRow/TableRow.js +4 -4
  264. package/node/TableSortLabel/TableSortLabel.js +5 -5
  265. package/node/Tabs/Tabs.js +113 -60
  266. package/node/TextField/TextField.js +4 -4
  267. package/node/Toolbar/Toolbar.js +5 -9
  268. package/node/Tooltip/Tooltip.js +189 -92
  269. package/node/Typography/Typography.js +90 -40
  270. package/node/index.js +1 -1
  271. package/node/internal/SwitchBase.js +41 -13
  272. package/package.json +6 -6
  273. package/umd/material-ui.development.js +2705 -1353
  274. package/umd/material-ui.production.min.js +4 -4
@@ -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',
package/Link/Link.js CHANGED
@@ -1,22 +1,24 @@
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
  const _excluded = ["className", "color", "component", "onBlur", "onFocus", "TypographyClasses", "underline", "variant", "sx"];
6
6
  import * as React from 'react';
7
7
  import PropTypes from 'prop-types';
8
8
  import clsx from 'clsx';
9
+ import { alpha } from '@mui/system/colorManipulator';
9
10
  import elementTypeAcceptingRef from '@mui/utils/elementTypeAcceptingRef';
10
11
  import composeClasses from '@mui/utils/composeClasses';
11
12
  import capitalize from '../utils/capitalize';
12
- import styled from '../styles/styled';
13
- import useThemeProps from '../styles/useThemeProps';
13
+ import { styled, createUseThemeProps } from '../zero-styled';
14
14
  import useIsFocusVisible from '../utils/useIsFocusVisible';
15
15
  import useForkRef from '../utils/useForkRef';
16
16
  import Typography from '../Typography';
17
17
  import linkClasses, { getLinkUtilityClass } from './linkClasses';
18
18
  import getTextDecoration, { colorTransformations } from './getTextDecoration';
19
+ import useTheme from '../styles/useTheme';
19
20
  import { jsx as _jsx } from "react/jsx-runtime";
21
+ const useThemeProps = createUseThemeProps('MuiLink');
20
22
  const useUtilityClasses = ownerState => {
21
23
  const {
22
24
  classes,
@@ -39,60 +41,92 @@ const LinkRoot = styled(Typography, {
39
41
  return [styles.root, styles[`underline${capitalize(ownerState.underline)}`], ownerState.component === 'button' && styles.button];
40
42
  }
41
43
  })(({
42
- theme,
43
- ownerState
44
+ theme
44
45
  }) => {
45
- return _extends({}, ownerState.underline === 'none' && {
46
- textDecoration: 'none'
47
- }, ownerState.underline === 'hover' && {
48
- textDecoration: 'none',
49
- '&:hover': {
50
- textDecoration: 'underline'
51
- }
52
- }, ownerState.underline === 'always' && _extends({
53
- textDecoration: 'underline'
54
- }, ownerState.color !== 'inherit' && {
55
- textDecorationColor: getTextDecoration({
56
- theme,
57
- ownerState
58
- })
59
- }, {
60
- '&:hover': {
61
- textDecorationColor: 'inherit'
62
- }
63
- }), ownerState.component === 'button' && {
64
- position: 'relative',
65
- WebkitTapHighlightColor: 'transparent',
66
- backgroundColor: 'transparent',
67
- // Reset default value
68
- // We disable the focus ring for mouse, touch and keyboard users.
69
- outline: 0,
70
- border: 0,
71
- margin: 0,
72
- // Remove the margin in Safari
73
- borderRadius: 0,
74
- padding: 0,
75
- // Remove the padding in Firefox
76
- cursor: 'pointer',
77
- userSelect: 'none',
78
- verticalAlign: 'middle',
79
- MozAppearance: 'none',
80
- // Reset
81
- WebkitAppearance: 'none',
82
- // Reset
83
- '&::-moz-focus-inner': {
84
- borderStyle: 'none' // Remove Firefox dotted outline.
85
- },
86
- [`&.${linkClasses.focusVisible}`]: {
87
- outline: 'auto'
88
- }
89
- });
46
+ return {
47
+ variants: [{
48
+ props: {
49
+ underline: 'none'
50
+ },
51
+ style: {
52
+ textDecoration: 'none'
53
+ }
54
+ }, {
55
+ props: {
56
+ underline: 'hover'
57
+ },
58
+ style: {
59
+ textDecoration: 'none',
60
+ '&:hover': {
61
+ textDecoration: 'underline'
62
+ }
63
+ }
64
+ }, {
65
+ props: {
66
+ underline: 'always'
67
+ },
68
+ style: {
69
+ textDecoration: 'underline',
70
+ '&:hover': {
71
+ textDecorationColor: 'inherit'
72
+ }
73
+ }
74
+ }, {
75
+ props: ({
76
+ underline,
77
+ ownerState
78
+ }) => underline === 'always' && ownerState.color !== 'inherit',
79
+ style: {
80
+ textDecorationColor: 'var(--Link-underlineColor)'
81
+ }
82
+ }, ...Object.entries(theme.palette).filter(([, value]) => value.main).map(([color]) => ({
83
+ props: {
84
+ underline: 'always',
85
+ color
86
+ },
87
+ style: {
88
+ '--Link-underlineColor': theme.vars ? `rgba(${theme.vars.palette[color].mainChannel} / 0.4)` : alpha(theme.palette[color].main, 0.4)
89
+ }
90
+ })), {
91
+ props: {
92
+ component: 'button'
93
+ },
94
+ style: {
95
+ position: 'relative',
96
+ WebkitTapHighlightColor: 'transparent',
97
+ backgroundColor: 'transparent',
98
+ // Reset default value
99
+ // We disable the focus ring for mouse, touch and keyboard users.
100
+ outline: 0,
101
+ border: 0,
102
+ margin: 0,
103
+ // Remove the margin in Safari
104
+ borderRadius: 0,
105
+ padding: 0,
106
+ // Remove the padding in Firefox
107
+ cursor: 'pointer',
108
+ userSelect: 'none',
109
+ verticalAlign: 'middle',
110
+ MozAppearance: 'none',
111
+ // Reset
112
+ WebkitAppearance: 'none',
113
+ // Reset
114
+ '&::-moz-focus-inner': {
115
+ borderStyle: 'none' // Remove Firefox dotted outline.
116
+ },
117
+ [`&.${linkClasses.focusVisible}`]: {
118
+ outline: 'auto'
119
+ }
120
+ }
121
+ }]
122
+ };
90
123
  });
91
124
  const Link = /*#__PURE__*/React.forwardRef(function Link(inProps, ref) {
92
125
  const props = useThemeProps({
93
126
  props: inProps,
94
127
  name: 'MuiLink'
95
128
  });
129
+ const theme = useTheme();
96
130
  const {
97
131
  className,
98
132
  color = 'primary',
@@ -148,11 +182,18 @@ const Link = /*#__PURE__*/React.forwardRef(function Link(inProps, ref) {
148
182
  onFocus: handleFocus,
149
183
  ref: handlerRef,
150
184
  ownerState: ownerState,
151
- variant: variant,
152
- sx: [...(!Object.keys(colorTransformations).includes(color) ? [{
185
+ variant: variant
186
+ }, other, {
187
+ sx: [...(colorTransformations[color] === undefined ? [{
153
188
  color
154
- }] : []), ...(Array.isArray(sx) ? sx : [sx])]
155
- }, other));
189
+ }] : []), ...(Array.isArray(sx) ? sx : [sx])],
190
+ style: _extends({}, other.style, underline === 'always' && color !== 'inherit' && {
191
+ '--Link-underlineColor': getTextDecoration({
192
+ theme,
193
+ ownerState
194
+ })
195
+ })
196
+ }));
156
197
  });
157
198
  process.env.NODE_ENV !== "production" ? Link.propTypes /* remove-proptypes */ = {
158
199
  // ┌────────────────────────────── Warning ──────────────────────────────┐
@@ -189,6 +230,10 @@ process.env.NODE_ENV !== "production" ? Link.propTypes /* remove-proptypes */ =
189
230
  * @ignore
190
231
  */
191
232
  onFocus: PropTypes.func,
233
+ /**
234
+ * @ignore
235
+ */
236
+ style: PropTypes.object,
192
237
  /**
193
238
  * The system prop that allows defining system overrides as well as additional CSS styles.
194
239
  */
@@ -1,15 +1,9 @@
1
1
  import type { Theme } from '../styles';
2
- export declare const colorTransformations: {
3
- primary: string;
4
- textPrimary: string;
5
- secondary: string;
6
- textSecondary: string;
7
- error: string;
8
- };
2
+ export declare const colorTransformations: Record<string, string | null | undefined>;
9
3
  declare const getTextDecoration: <T extends Theme>({ theme, ownerState, }: {
10
4
  theme: T;
11
5
  ownerState: {
12
6
  color: string;
13
7
  };
14
- }) => string;
8
+ }) => string | null;
15
9
  export default getTextDecoration;
@@ -1,20 +1,28 @@
1
- import { getPath } from '@mui/system';
1
+ import { getPath } from '@mui/system/style';
2
2
  import { alpha } from '@mui/system/colorManipulator';
3
+ // TODO v7: remove this transformation
3
4
  export const colorTransformations = {
4
- primary: 'primary.main',
5
5
  textPrimary: 'text.primary',
6
- secondary: 'secondary.main',
7
6
  textSecondary: 'text.secondary',
8
- error: 'error.main'
9
- };
10
- const transformDeprecatedColors = color => {
11
- return colorTransformations[color] || color;
7
+ // For main palette, the color will be applied by the styles above.
8
+ primary: null,
9
+ secondary: null,
10
+ error: null,
11
+ info: null,
12
+ success: null,
13
+ warning: null
12
14
  };
13
15
  const getTextDecoration = ({
14
16
  theme,
15
17
  ownerState
16
18
  }) => {
17
- const transformedColor = transformDeprecatedColors(ownerState.color);
19
+ let transformedColor = colorTransformations[ownerState.color];
20
+ if (transformedColor === null) {
21
+ return null;
22
+ }
23
+ if (transformedColor === undefined) {
24
+ transformedColor = ownerState.color;
25
+ }
18
26
  const color = getPath(theme, `palette.${transformedColor}`, false) || ownerState.color;
19
27
  const channelColor = getPath(theme, `palette.${transformedColor}Channel`);
20
28
  if ('vars' in theme && channelColor) {
package/List/List.js CHANGED
@@ -1,17 +1,17 @@
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
  const _excluded = ["children", "className", "component", "dense", "disablePadding", "subheader"];
6
6
  import * as React from 'react';
7
7
  import PropTypes from 'prop-types';
8
8
  import clsx from 'clsx';
9
9
  import composeClasses from '@mui/utils/composeClasses';
10
- import styled from '../styles/styled';
11
- import useThemeProps from '../styles/useThemeProps';
10
+ import { styled, createUseThemeProps } from '../zero-styled';
12
11
  import ListContext from './ListContext';
13
12
  import { getListUtilityClass } from './listClasses';
14
13
  import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
14
+ const useThemeProps = createUseThemeProps('MuiList');
15
15
  const useUtilityClasses = ownerState => {
16
16
  const {
17
17
  classes,
@@ -33,19 +33,28 @@ const ListRoot = styled('ul', {
33
33
  } = props;
34
34
  return [styles.root, !ownerState.disablePadding && styles.padding, ownerState.dense && styles.dense, ownerState.subheader && styles.subheader];
35
35
  }
36
- })(({
37
- ownerState
38
- }) => _extends({
36
+ })({
39
37
  listStyle: 'none',
40
38
  margin: 0,
41
39
  padding: 0,
42
- position: 'relative'
43
- }, !ownerState.disablePadding && {
44
- paddingTop: 8,
45
- paddingBottom: 8
46
- }, ownerState.subheader && {
47
- paddingTop: 0
48
- }));
40
+ position: 'relative',
41
+ variants: [{
42
+ props: ({
43
+ ownerState
44
+ }) => !ownerState.disablePadding,
45
+ style: {
46
+ paddingTop: 8,
47
+ paddingBottom: 8
48
+ }
49
+ }, {
50
+ props: ({
51
+ ownerState
52
+ }) => ownerState.subheader,
53
+ style: {
54
+ paddingTop: 0
55
+ }
56
+ }]
57
+ });
49
58
  const List = /*#__PURE__*/React.forwardRef(function List(inProps, ref) {
50
59
  const props = useThemeProps({
51
60
  props: inProps,
@@ -12,8 +12,7 @@ import composeClasses from '@mui/utils/composeClasses';
12
12
  import elementTypeAcceptingRef from '@mui/utils/elementTypeAcceptingRef';
13
13
  import chainPropTypes from '@mui/utils/chainPropTypes';
14
14
  import { alpha } from '@mui/system/colorManipulator';
15
- import styled from '../styles/styled';
16
- import useThemeProps from '../styles/useThemeProps';
15
+ import { styled, createUseThemeProps } from '../zero-styled';
17
16
  import ButtonBase from '../ButtonBase';
18
17
  import isMuiElement from '../utils/isMuiElement';
19
18
  import useEnhancedEffect from '../utils/useEnhancedEffect';
@@ -23,6 +22,7 @@ import listItemClasses, { getListItemUtilityClass } from './listItemClasses';
23
22
  import { listItemButtonClasses } from '../ListItemButton';
24
23
  import ListItemSecondaryAction from '../ListItemSecondaryAction';
25
24
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
25
+ const useThemeProps = createUseThemeProps('MuiListItem');
26
26
  export const overridesResolver = (props, styles) => {
27
27
  const {
28
28
  ownerState
@@ -8,10 +8,10 @@ import PropTypes from 'prop-types';
8
8
  import clsx from 'clsx';
9
9
  import composeClasses from '@mui/utils/composeClasses';
10
10
  import ListContext from '../List/ListContext';
11
- import styled from '../styles/styled';
12
- import useThemeProps from '../styles/useThemeProps';
11
+ import { styled, createUseThemeProps } from '../zero-styled';
13
12
  import { getListItemAvatarUtilityClass } from './listItemAvatarClasses';
14
13
  import { jsx as _jsx } from "react/jsx-runtime";
14
+ const useThemeProps = createUseThemeProps('MuiListItemAvatar');
15
15
  const useUtilityClasses = ownerState => {
16
16
  const {
17
17
  alignItems,
@@ -8,14 +8,15 @@ import PropTypes from 'prop-types';
8
8
  import clsx from 'clsx';
9
9
  import composeClasses from '@mui/utils/composeClasses';
10
10
  import { alpha } from '@mui/system/colorManipulator';
11
- import styled, { rootShouldForwardProp } from '../styles/styled';
12
- import useThemeProps from '../styles/useThemeProps';
11
+ import { styled, createUseThemeProps } from '../zero-styled';
12
+ import rootShouldForwardProp from '../styles/rootShouldForwardProp';
13
13
  import ButtonBase from '../ButtonBase';
14
14
  import useEnhancedEffect from '../utils/useEnhancedEffect';
15
15
  import useForkRef from '../utils/useForkRef';
16
16
  import ListContext from '../List/ListContext';
17
17
  import listItemButtonClasses, { getListItemButtonUtilityClass } from './listItemButtonClasses';
18
18
  import { jsx as _jsx } from "react/jsx-runtime";
19
+ const useThemeProps = createUseThemeProps('MuiListItemButton');
19
20
  export const overridesResolver = (props, styles) => {
20
21
  const {
21
22
  ownerState
@@ -1,17 +1,17 @@
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
  const _excluded = ["className"];
6
6
  import * as React from 'react';
7
7
  import PropTypes from 'prop-types';
8
8
  import clsx from 'clsx';
9
9
  import composeClasses from '@mui/utils/composeClasses';
10
- import styled from '../styles/styled';
11
- import useThemeProps from '../styles/useThemeProps';
10
+ import { styled, createUseThemeProps } from '../zero-styled';
12
11
  import { getListItemIconUtilityClass } from './listItemIconClasses';
13
12
  import ListContext from '../List/ListContext';
14
13
  import { jsx as _jsx } from "react/jsx-runtime";
14
+ const useThemeProps = createUseThemeProps('MuiListItemIcon');
15
15
  const useUtilityClasses = ownerState => {
16
16
  const {
17
17
  alignItems,
@@ -32,15 +32,20 @@ const ListItemIconRoot = styled('div', {
32
32
  return [styles.root, ownerState.alignItems === 'flex-start' && styles.alignItemsFlexStart];
33
33
  }
34
34
  })(({
35
- theme,
36
- ownerState
37
- }) => _extends({
35
+ theme
36
+ }) => ({
38
37
  minWidth: 56,
39
38
  color: (theme.vars || theme).palette.action.active,
40
39
  flexShrink: 0,
41
- display: 'inline-flex'
42
- }, ownerState.alignItems === 'flex-start' && {
43
- marginTop: 8
40
+ display: 'inline-flex',
41
+ variants: [{
42
+ props: {
43
+ alignItems: 'flex-start'
44
+ },
45
+ style: {
46
+ marginTop: 8
47
+ }
48
+ }]
44
49
  }));
45
50
 
46
51
  /**
@@ -7,11 +7,11 @@ import * as React from 'react';
7
7
  import PropTypes from 'prop-types';
8
8
  import clsx from 'clsx';
9
9
  import composeClasses from '@mui/utils/composeClasses';
10
- import styled from '../styles/styled';
11
- import useThemeProps from '../styles/useThemeProps';
10
+ import { styled, createUseThemeProps } from '../zero-styled';
12
11
  import ListContext from '../List/ListContext';
13
12
  import { getListItemSecondaryActionClassesUtilityClass } from './listItemSecondaryActionClasses';
14
13
  import { jsx as _jsx } from "react/jsx-runtime";
14
+ const useThemeProps = createUseThemeProps('MuiListItemSecondaryAction');
15
15
  const useUtilityClasses = ownerState => {
16
16
  const {
17
17
  disableGutters,
@@ -9,10 +9,10 @@ import clsx from 'clsx';
9
9
  import composeClasses from '@mui/utils/composeClasses';
10
10
  import Typography from '../Typography';
11
11
  import ListContext from '../List/ListContext';
12
- import useThemeProps from '../styles/useThemeProps';
13
- import styled from '../styles/styled';
12
+ import { styled, createUseThemeProps } from '../zero-styled';
14
13
  import listItemTextClasses, { getListItemTextUtilityClass } from './listItemTextClasses';
15
14
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
15
+ const useThemeProps = createUseThemeProps('MuiListItemText');
16
16
  const useUtilityClasses = ownerState => {
17
17
  const {
18
18
  classes,