@mui/material 9.0.0 → 9.1.0

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 (278) hide show
  1. package/Accordion/Accordion.d.mts +2 -2
  2. package/Accordion/Accordion.d.ts +2 -2
  3. package/Accordion/Accordion.js +3 -2
  4. package/Accordion/Accordion.mjs +3 -2
  5. package/AccordionSummary/AccordionSummary.js +27 -29
  6. package/AccordionSummary/AccordionSummary.mjs +27 -29
  7. package/Autocomplete/Autocomplete.js +73 -17
  8. package/Autocomplete/Autocomplete.mjs +73 -17
  9. package/Avatar/Avatar.js +4 -0
  10. package/Avatar/Avatar.mjs +4 -0
  11. package/Backdrop/Backdrop.d.mts +2 -2
  12. package/Backdrop/Backdrop.d.ts +2 -2
  13. package/Badge/Badge.js +31 -24
  14. package/Badge/Badge.mjs +31 -24
  15. package/BottomNavigationAction/BottomNavigationAction.js +6 -2
  16. package/BottomNavigationAction/BottomNavigationAction.mjs +6 -2
  17. package/Button/Button.js +19 -6
  18. package/Button/Button.mjs +19 -6
  19. package/ButtonBase/ButtonBase.d.mts +7 -0
  20. package/ButtonBase/ButtonBase.d.ts +7 -0
  21. package/ButtonBase/ButtonBase.js +5 -2
  22. package/ButtonBase/ButtonBase.mjs +5 -2
  23. package/ButtonBase/Ripple.js +21 -11
  24. package/ButtonBase/Ripple.mjs +21 -11
  25. package/ButtonBase/TouchRipple.js +252 -116
  26. package/ButtonBase/TouchRipple.mjs +253 -117
  27. package/CHANGELOG.md +216 -1245
  28. package/CardActionArea/CardActionArea.js +2 -1
  29. package/CardActionArea/CardActionArea.mjs +2 -1
  30. package/Checkbox/Checkbox.js +2 -1
  31. package/Checkbox/Checkbox.mjs +2 -1
  32. package/Chip/Chip.js +2 -1
  33. package/Chip/Chip.mjs +2 -1
  34. package/CircularProgress/CircularProgress.d.mts +12 -2
  35. package/CircularProgress/CircularProgress.d.ts +12 -2
  36. package/CircularProgress/CircularProgress.js +115 -58
  37. package/CircularProgress/CircularProgress.mjs +114 -58
  38. package/ClickAwayListener/ClickAwayListener.js +3 -6
  39. package/ClickAwayListener/ClickAwayListener.mjs +3 -6
  40. package/Collapse/Collapse.d.mts +15 -3
  41. package/Collapse/Collapse.d.ts +15 -3
  42. package/Collapse/Collapse.js +44 -31
  43. package/Collapse/Collapse.mjs +43 -30
  44. package/Dialog/Dialog.d.mts +2 -2
  45. package/Dialog/Dialog.d.ts +2 -2
  46. package/Dialog/Dialog.js +13 -6
  47. package/Dialog/Dialog.mjs +13 -6
  48. package/Drawer/Drawer.d.mts +2 -2
  49. package/Drawer/Drawer.d.ts +2 -2
  50. package/Drawer/Drawer.js +18 -4
  51. package/Drawer/Drawer.mjs +18 -4
  52. package/Fab/Fab.js +9 -2
  53. package/Fab/Fab.mjs +9 -2
  54. package/Fade/Fade.d.mts +15 -2
  55. package/Fade/Fade.d.ts +15 -2
  56. package/Fade/Fade.js +46 -19
  57. package/Fade/Fade.mjs +45 -18
  58. package/FilledInput/FilledInput.d.mts +4 -0
  59. package/FilledInput/FilledInput.d.ts +4 -0
  60. package/FilledInput/FilledInput.js +22 -23
  61. package/FilledInput/FilledInput.mjs +22 -23
  62. package/FormControl/useFormControl.d.mts +12 -2
  63. package/FormControl/useFormControl.d.ts +12 -2
  64. package/FormControl/useFormControl.js +13 -0
  65. package/FormControl/useFormControl.mjs +12 -0
  66. package/FormControlLabel/FormControlLabel.js +5 -8
  67. package/FormControlLabel/FormControlLabel.mjs +5 -8
  68. package/FormGroup/FormGroup.js +2 -5
  69. package/FormGroup/FormGroup.mjs +2 -5
  70. package/FormHelperText/FormHelperText.js +2 -5
  71. package/FormHelperText/FormHelperText.mjs +2 -5
  72. package/FormLabel/FormLabel.js +2 -5
  73. package/FormLabel/FormLabel.mjs +2 -5
  74. package/Grow/Grow.d.mts +15 -2
  75. package/Grow/Grow.d.ts +15 -2
  76. package/Grow/Grow.js +45 -28
  77. package/Grow/Grow.mjs +44 -27
  78. package/IconButton/IconButton.js +3 -9
  79. package/IconButton/IconButton.mjs +3 -9
  80. package/Input/Input.d.mts +4 -0
  81. package/Input/Input.d.ts +4 -0
  82. package/Input/Input.js +9 -2
  83. package/Input/Input.mjs +9 -2
  84. package/InputBase/InputBase.d.mts +2 -1
  85. package/InputBase/InputBase.d.ts +2 -1
  86. package/InputBase/InputBase.js +52 -16
  87. package/InputBase/InputBase.mjs +52 -16
  88. package/InputLabel/InputLabel.js +7 -9
  89. package/InputLabel/InputLabel.mjs +7 -9
  90. package/LICENSE +1 -1
  91. package/LinearProgress/LinearProgress.d.mts +12 -2
  92. package/LinearProgress/LinearProgress.d.ts +12 -2
  93. package/LinearProgress/LinearProgress.js +225 -126
  94. package/LinearProgress/LinearProgress.mjs +224 -126
  95. package/List/List.js +2 -1
  96. package/List/List.mjs +2 -1
  97. package/ListItem/ListItem.js +2 -1
  98. package/ListItem/ListItem.mjs +2 -1
  99. package/ListItemButton/ListItemButton.js +9 -2
  100. package/ListItemButton/ListItemButton.mjs +9 -2
  101. package/Menu/Menu.d.mts +1 -1
  102. package/Menu/Menu.d.ts +1 -1
  103. package/MenuItem/MenuItem.js +7 -1
  104. package/MenuItem/MenuItem.mjs +7 -1
  105. package/MenuList/MenuList.js +2 -1
  106. package/MenuList/MenuList.mjs +2 -1
  107. package/MobileStepper/MobileStepper.js +2 -1
  108. package/MobileStepper/MobileStepper.mjs +2 -1
  109. package/NativeSelect/NativeSelect.js +2 -5
  110. package/NativeSelect/NativeSelect.mjs +2 -5
  111. package/OutlinedInput/NotchedOutline.js +4 -3
  112. package/OutlinedInput/NotchedOutline.mjs +4 -3
  113. package/OutlinedInput/OutlinedInput.js +13 -23
  114. package/OutlinedInput/OutlinedInput.mjs +13 -23
  115. package/PaginationItem/PaginationItem.js +2 -1
  116. package/PaginationItem/PaginationItem.mjs +2 -1
  117. package/Paper/Paper.js +2 -1
  118. package/Paper/Paper.mjs +2 -1
  119. package/PigmentContainer/PigmentContainer.js +0 -1
  120. package/PigmentContainer/PigmentContainer.mjs +0 -1
  121. package/Popover/Popover.d.mts +1 -1
  122. package/Popover/Popover.d.ts +1 -1
  123. package/Popper/BasePopper.js +23 -1
  124. package/Popper/BasePopper.mjs +23 -1
  125. package/README.md +3 -2
  126. package/Radio/RadioButtonIcon.js +3 -2
  127. package/Radio/RadioButtonIcon.mjs +3 -2
  128. package/Rating/Rating.js +2 -1
  129. package/Rating/Rating.mjs +2 -1
  130. package/Select/Select.js +2 -5
  131. package/Select/Select.mjs +2 -5
  132. package/Select/SelectInput.js +276 -24
  133. package/Select/SelectInput.mjs +276 -24
  134. package/Select/utils/closedTypeahead.js +73 -0
  135. package/Select/utils/closedTypeahead.mjs +63 -0
  136. package/Skeleton/Skeleton.js +22 -2
  137. package/Skeleton/Skeleton.mjs +22 -2
  138. package/Slide/Slide.d.mts +15 -2
  139. package/Slide/Slide.d.ts +15 -2
  140. package/Slide/Slide.js +97 -47
  141. package/Slide/Slide.mjs +97 -47
  142. package/Slider/Slider.js +14 -4
  143. package/Slider/Slider.mjs +14 -4
  144. package/Slider/useSlider.js +4 -3
  145. package/Slider/useSlider.mjs +4 -3
  146. package/Snackbar/Snackbar.d.mts +2 -2
  147. package/Snackbar/Snackbar.d.ts +2 -2
  148. package/SpeedDial/SpeedDial.d.mts +1 -1
  149. package/SpeedDial/SpeedDial.d.ts +1 -1
  150. package/SpeedDial/SpeedDial.js +6 -2
  151. package/SpeedDial/SpeedDial.mjs +6 -2
  152. package/SpeedDialAction/SpeedDialAction.js +11 -2
  153. package/SpeedDialAction/SpeedDialAction.mjs +12 -3
  154. package/SpeedDialIcon/SpeedDialIcon.js +40 -37
  155. package/SpeedDialIcon/SpeedDialIcon.mjs +40 -37
  156. package/Step/Step.js +47 -15
  157. package/Step/Step.mjs +47 -15
  158. package/StepButton/StepButton.js +9 -3
  159. package/StepButton/StepButton.mjs +9 -3
  160. package/StepConnector/StepConnector.js +10 -0
  161. package/StepConnector/StepConnector.mjs +10 -0
  162. package/StepContent/StepContent.d.mts +2 -2
  163. package/StepContent/StepContent.d.ts +2 -2
  164. package/StepContent/StepContent.js +26 -2
  165. package/StepContent/StepContent.mjs +26 -2
  166. package/StepIcon/StepIcon.js +2 -1
  167. package/StepIcon/StepIcon.mjs +2 -1
  168. package/StepLabel/StepLabel.js +52 -7
  169. package/StepLabel/StepLabel.mjs +52 -7
  170. package/Stepper/Stepper.d.mts +2 -0
  171. package/Stepper/Stepper.d.ts +2 -0
  172. package/Stepper/Stepper.js +18 -0
  173. package/Stepper/Stepper.mjs +18 -0
  174. package/SvgIcon/SvgIcon.js +2 -1
  175. package/SvgIcon/SvgIcon.mjs +2 -1
  176. package/SwipeableDrawer/SwipeableDrawer.js +21 -6
  177. package/SwipeableDrawer/SwipeableDrawer.mjs +21 -6
  178. package/Switch/Switch.js +10 -8
  179. package/Switch/Switch.mjs +10 -8
  180. package/TableSortLabel/TableSortLabel.js +2 -1
  181. package/TableSortLabel/TableSortLabel.mjs +2 -1
  182. package/Tabs/ScrollbarSize.js +2 -1
  183. package/Tabs/ScrollbarSize.mjs +2 -1
  184. package/Tabs/Tabs.js +16 -4
  185. package/Tabs/Tabs.mjs +16 -4
  186. package/Tooltip/Tooltip.d.mts +2 -2
  187. package/Tooltip/Tooltip.d.ts +2 -2
  188. package/Tooltip/Tooltip.js +29 -108
  189. package/Tooltip/Tooltip.mjs +29 -108
  190. package/Unstable_TrapFocus/FocusTrap.js +60 -22
  191. package/Unstable_TrapFocus/FocusTrap.mjs +60 -22
  192. package/Zoom/Zoom.d.mts +15 -2
  193. package/Zoom/Zoom.d.ts +15 -2
  194. package/Zoom/Zoom.js +43 -16
  195. package/Zoom/Zoom.mjs +42 -15
  196. package/index.js +1 -1
  197. package/index.mjs +1 -1
  198. package/internal/Transition.d.mts +34 -0
  199. package/internal/Transition.d.ts +34 -0
  200. package/internal/Transition.js +444 -0
  201. package/internal/Transition.mjs +436 -0
  202. package/internal/react-transition-group.d.mts +8 -0
  203. package/internal/react-transition-group.d.ts +8 -0
  204. package/package.json +50 -50
  205. package/styles/createMotion.d.mts +8 -0
  206. package/styles/createMotion.d.ts +8 -0
  207. package/styles/createMotion.js +13 -0
  208. package/styles/createMotion.mjs +7 -0
  209. package/styles/createThemeFoundation.d.mts +2 -0
  210. package/styles/createThemeFoundation.d.ts +2 -0
  211. package/styles/createThemeNoVars.d.mts +3 -0
  212. package/styles/createThemeNoVars.d.ts +3 -0
  213. package/styles/createThemeNoVars.js +5 -0
  214. package/styles/createThemeNoVars.mjs +5 -0
  215. package/styles/createTransitions.d.mts +6 -2
  216. package/styles/createTransitions.d.ts +6 -2
  217. package/styles/createTransitions.js +12 -4
  218. package/styles/createTransitions.mjs +12 -4
  219. package/styles/enhanceHighContrast.d.mts +70 -0
  220. package/styles/enhanceHighContrast.d.ts +70 -0
  221. package/styles/enhanceHighContrast.js +502 -0
  222. package/styles/enhanceHighContrast.mjs +495 -0
  223. package/styles/index.d.mts +2 -0
  224. package/styles/index.d.ts +2 -0
  225. package/styles/index.js +8 -0
  226. package/styles/index.mjs +1 -0
  227. package/styles/reducedMotion.d.mts +7 -0
  228. package/styles/reducedMotion.d.ts +7 -0
  229. package/styles/reducedMotion.js +21 -0
  230. package/styles/reducedMotion.mjs +14 -0
  231. package/styles/responsiveFontSizes.js +19 -8
  232. package/styles/responsiveFontSizes.mjs +19 -8
  233. package/styles/shouldSkipGeneratingVar.js +1 -1
  234. package/styles/shouldSkipGeneratingVar.mjs +1 -1
  235. package/styles/stringifyTheme.js +1 -0
  236. package/styles/stringifyTheme.mjs +1 -0
  237. package/styles/useThemeProps.d.mts +3 -3
  238. package/styles/useThemeProps.d.ts +3 -3
  239. package/transitions/index.d.mts +1 -1
  240. package/transitions/index.d.ts +1 -1
  241. package/transitions/index.js +0 -11
  242. package/transitions/index.mjs +1 -1
  243. package/transitions/transition.d.mts +1 -12
  244. package/transitions/transition.d.ts +1 -12
  245. package/transitions/types.d.mts +73 -0
  246. package/transitions/types.d.ts +73 -0
  247. package/transitions/useReducedMotion.d.mts +14 -0
  248. package/transitions/useReducedMotion.d.ts +14 -0
  249. package/transitions/useReducedMotion.js +117 -0
  250. package/transitions/useReducedMotion.mjs +110 -0
  251. package/transitions/utils.d.mts +51 -2
  252. package/transitions/utils.d.ts +51 -2
  253. package/transitions/utils.js +97 -4
  254. package/transitions/utils.mjs +94 -4
  255. package/useAutocomplete/useAutocomplete.d.mts +12 -6
  256. package/useAutocomplete/useAutocomplete.d.ts +12 -6
  257. package/useAutocomplete/useAutocomplete.js +230 -55
  258. package/useAutocomplete/useAutocomplete.mjs +230 -55
  259. package/utils/contains.d.mts +2 -0
  260. package/utils/contains.d.ts +2 -0
  261. package/utils/contains.js +9 -0
  262. package/utils/contains.mjs +2 -0
  263. package/utils/focusable.d.mts +7 -0
  264. package/utils/focusable.d.ts +7 -0
  265. package/utils/focusable.js +20 -0
  266. package/utils/focusable.mjs +13 -0
  267. package/utils/getEventTarget.d.mts +2 -0
  268. package/utils/getEventTarget.d.ts +2 -0
  269. package/utils/getEventTarget.js +9 -0
  270. package/utils/getEventTarget.mjs +2 -0
  271. package/utils/mergeSlotProps.js +2 -8
  272. package/utils/mergeSlotProps.mjs +1 -8
  273. package/version/index.js +2 -2
  274. package/version/index.mjs +2 -2
  275. package/FormControl/formControlState.js +0 -21
  276. package/FormControl/formControlState.mjs +0 -15
  277. /package/transitions/{transition.js → types.js} +0 -0
  278. /package/transitions/{transition.mjs → types.mjs} +0 -0
@@ -0,0 +1,502 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = enhanceHighContrast;
8
+ var _accordionSummaryClasses = _interopRequireDefault(require("../AccordionSummary/accordionSummaryClasses"));
9
+ var _autocompleteClasses = _interopRequireDefault(require("../Autocomplete/autocompleteClasses"));
10
+ var _checkboxClasses = _interopRequireDefault(require("../Checkbox/checkboxClasses"));
11
+ var _filledInputClasses = _interopRequireDefault(require("../FilledInput/filledInputClasses"));
12
+ var _formControlLabelClasses = _interopRequireDefault(require("../FormControlLabel/formControlLabelClasses"));
13
+ var _formHelperTextClasses = _interopRequireDefault(require("../FormHelperText/formHelperTextClasses"));
14
+ var _formLabelClasses = _interopRequireDefault(require("../FormLabel/formLabelClasses"));
15
+ var _inputClasses = _interopRequireDefault(require("../Input/inputClasses"));
16
+ var _listItemButtonClasses = _interopRequireDefault(require("../ListItemButton/listItemButtonClasses"));
17
+ var _menuItemClasses = _interopRequireDefault(require("../MenuItem/menuItemClasses"));
18
+ var _nativeSelectClasses = _interopRequireDefault(require("../NativeSelect/nativeSelectClasses"));
19
+ var _outlinedInputClasses = _interopRequireDefault(require("../OutlinedInput/outlinedInputClasses"));
20
+ var _radioClasses = _interopRequireDefault(require("../Radio/radioClasses"));
21
+ var _sliderClasses = _interopRequireDefault(require("../Slider/sliderClasses"));
22
+ var _toggleButtonClasses = _interopRequireDefault(require("../ToggleButton/toggleButtonClasses"));
23
+ // System color keywords used in forced-colors / high contrast mode.
24
+ const defaultHcTokens = {
25
+ disabled: 'GrayText',
26
+ error: 'ActiveText',
27
+ selectedBackground: 'SelectedItem',
28
+ selectedText: 'SelectedItemText',
29
+ activeBackground: 'Highlight',
30
+ activeText: 'HighlightText',
31
+ buttonBorder: 'ButtonBorder',
32
+ buttonText: 'ButtonText',
33
+ canvas: 'Canvas'
34
+ };
35
+ const HCM = '@media (forced-colors: active)';
36
+
37
+ /**
38
+ * Enhances a theme with styles for Windows High Contrast Mode (forced-colors).
39
+ *
40
+ * Accepts a fully-created theme, merges in HCM component overrides using arrays
41
+ * so that Emotion emits each entry as a separate CSS rule and the browser
42
+ * cascade (rather than JS object merging) resolves specificity.
43
+ *
44
+ * @param themeInput - The theme to enhance.
45
+ * @param tokens - Override any of the default system color tokens.
46
+ * @returns The enhanced theme (same type as the input).
47
+ *
48
+ * @example
49
+ * // Use defaults
50
+ * const theme = enhanceHighContrast(createTheme({ palette: { ... } }));
51
+ *
52
+ * @example
53
+ * // Override specific tokens
54
+ * const theme = enhanceHighContrast(createTheme(), { disabled: 'ButtonText' });
55
+ */
56
+ function enhanceHighContrast(themeInput, tokens) {
57
+ const hcTokens = {
58
+ disabled: tokens?.disabled ?? defaultHcTokens.disabled,
59
+ error: tokens?.error ?? defaultHcTokens.error,
60
+ selectedBackground: tokens?.selectedBackground ?? defaultHcTokens.selectedBackground,
61
+ selectedText: tokens?.selectedText ?? defaultHcTokens.selectedText,
62
+ activeBackground: tokens?.activeBackground ?? defaultHcTokens.activeBackground,
63
+ activeText: tokens?.activeText ?? defaultHcTokens.activeText,
64
+ buttonBorder: tokens?.buttonBorder ?? defaultHcTokens.buttonBorder,
65
+ buttonText: tokens?.buttonText ?? defaultHcTokens.buttonText,
66
+ canvas: tokens?.canvas ?? defaultHcTokens.canvas
67
+ };
68
+ const theme = {
69
+ ...themeInput
70
+ };
71
+ const c = theme.components;
72
+ theme.components = {
73
+ ...c,
74
+ MuiAccordionSummary: {
75
+ ...c?.MuiAccordionSummary,
76
+ styleOverrides: {
77
+ ...c?.MuiAccordionSummary?.styleOverrides,
78
+ root: [c?.MuiAccordionSummary?.styleOverrides?.root, {
79
+ [`&.${_accordionSummaryClasses.default.disabled}`]: {
80
+ [HCM]: {
81
+ opacity: 1
82
+ }
83
+ }
84
+ }]
85
+ }
86
+ },
87
+ MuiAutocomplete: {
88
+ ...c?.MuiAutocomplete,
89
+ styleOverrides: {
90
+ ...c?.MuiAutocomplete?.styleOverrides,
91
+ listbox: [c?.MuiAutocomplete?.styleOverrides?.listbox, {
92
+ [`& .${_autocompleteClasses.default.option}`]: {
93
+ '&[aria-disabled="true"]': {
94
+ [HCM]: {
95
+ color: hcTokens.disabled,
96
+ opacity: 1
97
+ }
98
+ },
99
+ [`&.${_autocompleteClasses.default.focused}, &.${_autocompleteClasses.default.focusVisible}`]: {
100
+ [HCM]: {
101
+ forcedColorAdjust: 'none',
102
+ color: hcTokens.activeText,
103
+ backgroundColor: hcTokens.activeBackground
104
+ }
105
+ },
106
+ '&[aria-selected="true"]': {
107
+ [HCM]: {
108
+ forcedColorAdjust: 'none',
109
+ color: hcTokens.selectedText,
110
+ backgroundColor: hcTokens.selectedBackground
111
+ },
112
+ [`&.${_autocompleteClasses.default.focused}`]: {
113
+ [HCM]: {
114
+ color: hcTokens.activeText,
115
+ backgroundColor: hcTokens.activeBackground
116
+ }
117
+ }
118
+ }
119
+ }
120
+ }]
121
+ }
122
+ },
123
+ MuiCheckbox: {
124
+ ...c?.MuiCheckbox,
125
+ styleOverrides: {
126
+ ...c?.MuiCheckbox?.styleOverrides,
127
+ root: [c?.MuiCheckbox?.styleOverrides?.root, {
128
+ [`&.${_checkboxClasses.default.disabled}`]: {
129
+ [HCM]: {
130
+ color: hcTokens.disabled
131
+ }
132
+ }
133
+ }]
134
+ }
135
+ },
136
+ MuiFilledInput: {
137
+ ...c?.MuiFilledInput,
138
+ styleOverrides: {
139
+ ...c?.MuiFilledInput?.styleOverrides,
140
+ root: [c?.MuiFilledInput?.styleOverrides?.root, {
141
+ [`&.${_filledInputClasses.default.error}`]: {
142
+ '&::before, &::after': {
143
+ [HCM]: {
144
+ borderBottomColor: hcTokens.error
145
+ }
146
+ }
147
+ },
148
+ [`&.${_filledInputClasses.default.disabled}:before`]: {
149
+ [HCM]: {
150
+ borderBottomStyle: 'solid',
151
+ borderBottomColor: hcTokens.disabled
152
+ }
153
+ },
154
+ [`&.${_filledInputClasses.default.disabled}`]: {
155
+ [HCM]: {
156
+ color: hcTokens.disabled
157
+ }
158
+ }
159
+ }]
160
+ }
161
+ },
162
+ MuiFormControlLabel: {
163
+ ...c?.MuiFormControlLabel,
164
+ styleOverrides: {
165
+ ...c?.MuiFormControlLabel?.styleOverrides,
166
+ root: [c?.MuiFormControlLabel?.styleOverrides?.root, {
167
+ [`& .${_formControlLabelClasses.default.label}.${_formControlLabelClasses.default.disabled}`]: {
168
+ [HCM]: {
169
+ color: hcTokens.disabled
170
+ }
171
+ }
172
+ }]
173
+ }
174
+ },
175
+ MuiFormHelperText: {
176
+ ...c?.MuiFormHelperText,
177
+ styleOverrides: {
178
+ ...c?.MuiFormHelperText?.styleOverrides,
179
+ root: [c?.MuiFormHelperText?.styleOverrides?.root, {
180
+ [`&.${_formHelperTextClasses.default.error}`]: {
181
+ [HCM]: {
182
+ color: hcTokens.error
183
+ }
184
+ },
185
+ [`&.${_formHelperTextClasses.default.disabled}`]: {
186
+ [HCM]: {
187
+ color: hcTokens.disabled
188
+ }
189
+ }
190
+ }]
191
+ }
192
+ },
193
+ MuiFormLabel: {
194
+ ...c?.MuiFormLabel,
195
+ styleOverrides: {
196
+ ...c?.MuiFormLabel?.styleOverrides,
197
+ root: [c?.MuiFormLabel?.styleOverrides?.root, {
198
+ [`&.${_formLabelClasses.default.error}`]: {
199
+ [HCM]: {
200
+ color: hcTokens.error
201
+ }
202
+ },
203
+ [`&.${_formLabelClasses.default.disabled}`]: {
204
+ [HCM]: {
205
+ color: hcTokens.disabled
206
+ }
207
+ }
208
+ }]
209
+ }
210
+ },
211
+ MuiInput: {
212
+ ...c?.MuiInput,
213
+ styleOverrides: {
214
+ ...c?.MuiInput?.styleOverrides,
215
+ root: [c?.MuiInput?.styleOverrides?.root, {
216
+ [`&.${_inputClasses.default.error}`]: {
217
+ '&::before, &::after': {
218
+ [HCM]: {
219
+ borderBottomColor: hcTokens.error
220
+ }
221
+ }
222
+ },
223
+ [`&.${_inputClasses.default.disabled}:before`]: {
224
+ [HCM]: {
225
+ borderBottomStyle: 'solid',
226
+ borderBottomColor: hcTokens.disabled
227
+ }
228
+ },
229
+ [`&.${_inputClasses.default.disabled}`]: {
230
+ [HCM]: {
231
+ color: hcTokens.disabled
232
+ }
233
+ }
234
+ }]
235
+ }
236
+ },
237
+ MuiLinearProgress: {
238
+ ...c?.MuiLinearProgress,
239
+ styleOverrides: {
240
+ ...c?.MuiLinearProgress?.styleOverrides,
241
+ root: [c?.MuiLinearProgress?.styleOverrides?.root, {
242
+ [HCM]: {
243
+ forcedColorAdjust: 'none',
244
+ outline: `1px solid ${hcTokens.buttonBorder}`,
245
+ backgroundColor: hcTokens.canvas
246
+ }
247
+ }],
248
+ bar: [c?.MuiLinearProgress?.styleOverrides?.bar, {
249
+ [HCM]: {
250
+ backgroundColor: hcTokens.buttonText
251
+ }
252
+ }],
253
+ bar2: [c?.MuiLinearProgress?.styleOverrides?.bar2, {
254
+ variants: [{
255
+ props: {
256
+ variant: 'buffer'
257
+ },
258
+ style: {
259
+ [HCM]: {
260
+ backgroundColor: hcTokens.disabled
261
+ }
262
+ }
263
+ }]
264
+ }]
265
+ }
266
+ },
267
+ MuiInputBase: {
268
+ ...c?.MuiInputBase,
269
+ styleOverrides: {
270
+ ...c?.MuiInputBase?.styleOverrides,
271
+ input: [c?.MuiInputBase?.styleOverrides?.input, {
272
+ [HCM]: {
273
+ '&::placeholder': {
274
+ opacity: 1
275
+ }
276
+ }
277
+ }]
278
+ }
279
+ },
280
+ MuiMenuItem: {
281
+ ...c?.MuiMenuItem,
282
+ styleOverrides: {
283
+ ...c?.MuiMenuItem?.styleOverrides,
284
+ root: [c?.MuiMenuItem?.styleOverrides?.root, {
285
+ [`&.${_menuItemClasses.default.disabled}`]: {
286
+ [HCM]: {
287
+ color: hcTokens.disabled,
288
+ opacity: 1
289
+ }
290
+ },
291
+ [`&.${_menuItemClasses.default.focusVisible}, &:hover`]: {
292
+ [HCM]: {
293
+ forcedColorAdjust: 'none',
294
+ color: hcTokens.activeText,
295
+ backgroundColor: hcTokens.activeBackground,
296
+ outline: 'none'
297
+ }
298
+ },
299
+ [`&.${_menuItemClasses.default.selected}`]: {
300
+ [HCM]: {
301
+ forcedColorAdjust: 'none',
302
+ color: hcTokens.selectedText,
303
+ backgroundColor: hcTokens.selectedBackground
304
+ }
305
+ },
306
+ [`&.${_menuItemClasses.default.selected}.${_menuItemClasses.default.focusVisible}, &.${_menuItemClasses.default.selected}:hover`]: {
307
+ [HCM]: {
308
+ color: hcTokens.activeText,
309
+ backgroundColor: hcTokens.activeBackground
310
+ }
311
+ }
312
+ }]
313
+ }
314
+ },
315
+ MuiListItemIcon: {
316
+ ...c?.MuiListItemIcon,
317
+ styleOverrides: {
318
+ ...c?.MuiListItemIcon?.styleOverrides,
319
+ root: [c?.MuiListItemIcon?.styleOverrides?.root, {
320
+ [HCM]: {
321
+ color: 'inherit'
322
+ }
323
+ }]
324
+ }
325
+ },
326
+ MuiListItemButton: {
327
+ ...c?.MuiListItemButton,
328
+ styleOverrides: {
329
+ ...c?.MuiListItemButton?.styleOverrides,
330
+ root: [c?.MuiListItemButton?.styleOverrides?.root, {
331
+ [`&.${_listItemButtonClasses.default.focusVisible}, &:hover`]: {
332
+ [HCM]: {
333
+ forcedColorAdjust: 'none',
334
+ color: hcTokens.activeText,
335
+ backgroundColor: hcTokens.activeBackground
336
+ }
337
+ },
338
+ [`&.${_listItemButtonClasses.default.selected}`]: {
339
+ [HCM]: {
340
+ forcedColorAdjust: 'none',
341
+ color: hcTokens.selectedText,
342
+ backgroundColor: hcTokens.selectedBackground
343
+ }
344
+ },
345
+ [`&.${_listItemButtonClasses.default.selected}.${_listItemButtonClasses.default.focusVisible}, &.${_listItemButtonClasses.default.selected}:hover`]: {
346
+ [HCM]: {
347
+ color: hcTokens.activeText,
348
+ backgroundColor: hcTokens.activeBackground
349
+ }
350
+ }
351
+ }]
352
+ }
353
+ },
354
+ MuiNativeSelect: {
355
+ ...c?.MuiNativeSelect,
356
+ styleOverrides: {
357
+ ...c?.MuiNativeSelect?.styleOverrides,
358
+ icon: [c?.MuiNativeSelect?.styleOverrides?.icon, {
359
+ [`&.${_nativeSelectClasses.default.disabled}`]: {
360
+ [HCM]: {
361
+ color: hcTokens.disabled
362
+ }
363
+ }
364
+ }]
365
+ }
366
+ },
367
+ MuiOutlinedInput: {
368
+ ...c?.MuiOutlinedInput,
369
+ styleOverrides: {
370
+ ...c?.MuiOutlinedInput?.styleOverrides,
371
+ root: [c?.MuiOutlinedInput?.styleOverrides?.root, {
372
+ [`&.${_outlinedInputClasses.default.error} .${_outlinedInputClasses.default.notchedOutline}`]: {
373
+ [HCM]: {
374
+ borderColor: hcTokens.error
375
+ }
376
+ },
377
+ [`&.${_outlinedInputClasses.default.disabled} .${_outlinedInputClasses.default.notchedOutline}`]: {
378
+ [HCM]: {
379
+ borderColor: hcTokens.disabled
380
+ }
381
+ },
382
+ [`&.${_outlinedInputClasses.default.disabled}`]: {
383
+ [HCM]: {
384
+ color: hcTokens.disabled
385
+ }
386
+ }
387
+ }]
388
+ }
389
+ },
390
+ MuiRadio: {
391
+ ...c?.MuiRadio,
392
+ styleOverrides: {
393
+ ...c?.MuiRadio?.styleOverrides,
394
+ root: [c?.MuiRadio?.styleOverrides?.root, {
395
+ [`&.${_radioClasses.default.disabled}`]: {
396
+ [HCM]: {
397
+ color: hcTokens.disabled
398
+ }
399
+ }
400
+ }]
401
+ }
402
+ },
403
+ MuiSlider: {
404
+ ...c?.MuiSlider,
405
+ styleOverrides: {
406
+ ...c?.MuiSlider?.styleOverrides,
407
+ // track doesn't receive the disabled class — use ownerState
408
+ track: [c?.MuiSlider?.styleOverrides?.track, ({
409
+ ownerState
410
+ }) => ({
411
+ ...(ownerState.disabled && {
412
+ [HCM]: {
413
+ borderColor: hcTokens.disabled
414
+ }
415
+ })
416
+ })],
417
+ // thumb receives the disabled class directly
418
+ thumb: [c?.MuiSlider?.styleOverrides?.thumb, {
419
+ [`&.${_sliderClasses.default.disabled}`]: {
420
+ [HCM]: {
421
+ borderColor: hcTokens.disabled
422
+ }
423
+ }
424
+ }]
425
+ }
426
+ },
427
+ MuiSwitch: {
428
+ ...c?.MuiSwitch,
429
+ styleOverrides: {
430
+ ...c?.MuiSwitch?.styleOverrides,
431
+ // track and thumb don't receive the disabled class — use ownerState
432
+ track: [c?.MuiSwitch?.styleOverrides?.track, ({
433
+ ownerState
434
+ }) => ({
435
+ ...(ownerState.disabled && {
436
+ [HCM]: {
437
+ borderColor: hcTokens.disabled
438
+ }
439
+ })
440
+ })],
441
+ thumb: [c?.MuiSwitch?.styleOverrides?.thumb, ({
442
+ ownerState
443
+ }) => ({
444
+ ...(ownerState.disabled && {
445
+ [HCM]: {
446
+ borderColor: hcTokens.disabled
447
+ }
448
+ })
449
+ })]
450
+ }
451
+ },
452
+ MuiButtonBase: {
453
+ ...c?.MuiButtonBase,
454
+ styleOverrides: {
455
+ ...c?.MuiButtonBase?.styleOverrides,
456
+ root: [c?.MuiButtonBase?.styleOverrides?.root, {
457
+ // Restore the focus outline in HCM since the ripple is not visible.
458
+ // Also handle components where the focusable element is a hidden inner input (Checkbox, Radio, Switch).
459
+ [HCM]: {
460
+ '&:focus-visible, &:focus-within:has(input:focus-visible)': {
461
+ outline: `5px auto ${hcTokens.activeBackground}`
462
+ }
463
+ }
464
+ }]
465
+ }
466
+ },
467
+ MuiTooltip: {
468
+ ...c?.MuiTooltip,
469
+ styleOverrides: {
470
+ ...c?.MuiTooltip?.styleOverrides,
471
+ tooltip: [c?.MuiTooltip?.styleOverrides?.tooltip, {
472
+ [HCM]: {
473
+ border: `1px solid ${hcTokens.buttonText}`
474
+ }
475
+ }]
476
+ }
477
+ },
478
+ MuiToggleButton: {
479
+ ...c?.MuiToggleButton,
480
+ styleOverrides: {
481
+ ...c?.MuiToggleButton?.styleOverrides,
482
+ root: [c?.MuiToggleButton?.styleOverrides?.root, {
483
+ [`&.${_toggleButtonClasses.default.selected}`]: {
484
+ [HCM]: {
485
+ forcedColorAdjust: 'none',
486
+ color: hcTokens.activeText,
487
+ backgroundColor: hcTokens.activeBackground,
488
+ borderColor: hcTokens.activeBackground
489
+ },
490
+ '&:hover': {
491
+ [HCM]: {
492
+ backgroundColor: hcTokens.activeBackground,
493
+ borderColor: hcTokens.buttonBorder
494
+ }
495
+ }
496
+ }
497
+ }]
498
+ }
499
+ }
500
+ };
501
+ return theme;
502
+ }