@webpros/mui-theme 0.1.6 → 0.3.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 (242) hide show
  1. package/dist/package.json +21 -11
  2. package/dist/src/components/data-display/Avatar/Avatar.theme.js +11 -8
  3. package/dist/src/components/data-display/Badge/Badge.theme.d.ts +4 -1
  4. package/dist/src/components/data-display/Badge/Badge.theme.js +216 -55
  5. package/dist/src/components/data-display/Chip/Chip.theme.d.ts +17 -3
  6. package/dist/src/components/data-display/Chip/Chip.theme.js +133 -477
  7. package/dist/src/components/data-display/Chip/get-chip-colors-map.d.ts +42 -0
  8. package/dist/src/components/data-display/Chip/get-chip-colors-map.js +253 -0
  9. package/dist/src/components/data-display/Divider/Divider.theme.d.ts +6 -1
  10. package/dist/src/components/data-display/Divider/Divider.theme.js +60 -3
  11. package/dist/src/components/data-display/List/List.theme.d.ts +1 -1
  12. package/dist/src/components/data-display/List/List.theme.js +1 -1
  13. package/dist/src/components/data-display/ListItem/ListItem.theme.d.ts +1 -1
  14. package/dist/src/components/data-display/ListItem/ListItem.theme.js +16 -8
  15. package/dist/src/components/data-display/ListItemAvatar/ListItemAvatar.theme.js +1 -2
  16. package/dist/src/components/data-display/ListItemButton/ListItemButton.theme.d.ts +0 -5
  17. package/dist/src/components/data-display/ListItemButton/ListItemButton.theme.js +14 -48
  18. package/dist/src/components/data-display/ListItemIcon/ListItemIcon.theme.js +4 -4
  19. package/dist/src/components/data-display/ListSubheader/ListSubheader.theme.d.ts +1 -1
  20. package/dist/src/components/data-display/ListSubheader/ListSubheader.theme.js +2 -5
  21. package/dist/src/components/data-display/Skeleton/Skeleton.d.ts +3 -0
  22. package/dist/src/components/data-display/Skeleton/Skeleton.js +4 -0
  23. package/dist/src/components/data-display/Skeleton/Skeleton.theme.d.ts +15 -0
  24. package/dist/src/components/data-display/Skeleton/Skeleton.theme.js +31 -0
  25. package/dist/src/components/data-display/Skeleton/index.d.ts +1 -0
  26. package/dist/src/components/data-display/Skeleton/index.js +2 -0
  27. package/dist/src/components/data-display/Tooltip/Tooltip.theme.js +7 -9
  28. package/dist/src/components/data-display/Typography/Typography.theme.d.ts +19 -26
  29. package/dist/src/components/data-display/Typography/Typography.theme.js +7 -163
  30. package/dist/src/components/feedback/Alert/Alert.theme.d.ts +12 -0
  31. package/dist/src/components/feedback/Alert/Alert.theme.js +61 -45
  32. package/dist/src/components/feedback/CircularProgress/CircularProgress.theme.d.ts +6 -1
  33. package/dist/src/components/feedback/CircularProgress/CircularProgress.theme.js +49 -8
  34. package/dist/src/components/feedback/Dialog/Dialog.theme.d.ts +5 -0
  35. package/dist/src/components/feedback/Dialog/Dialog.theme.js +43 -14
  36. package/dist/src/components/feedback/LinearProgress/LinearProgress.theme.d.ts +6 -1
  37. package/dist/src/components/feedback/LinearProgress/LinearProgress.theme.js +91 -9
  38. package/dist/src/components/feedback/Snackbar/Snackbar.theme.d.ts +4 -4
  39. package/dist/src/components/feedback/Snackbar/Snackbar.theme.js +11 -3
  40. package/dist/src/components/index.d.ts +10 -1
  41. package/dist/src/components/index.js +10 -1
  42. package/dist/src/components/inputs/Autocomplete/Autocomplete.theme.d.ts +1 -1
  43. package/dist/src/components/inputs/Autocomplete/Autocomplete.theme.js +23 -51
  44. package/dist/src/components/inputs/Autocomplete/components/AutocompleteCaretDownIcon.d.ts +1 -0
  45. package/dist/src/components/inputs/Autocomplete/components/{AutocompletePopupIcon.js → AutocompleteCaretDownIcon.js} +1 -1
  46. package/dist/src/components/inputs/Autocomplete/components/AutocompleteXIcon.d.ts +1 -0
  47. package/dist/src/components/inputs/Autocomplete/components/AutocompleteXIcon.js +4 -0
  48. package/dist/src/components/inputs/Button/Button.theme.d.ts +4 -0
  49. package/dist/src/components/inputs/Button/Button.theme.js +93 -226
  50. package/dist/src/components/inputs/Button/get-button-colors-map.d.ts +24 -0
  51. package/dist/src/components/inputs/Button/get-button-colors-map.js +211 -0
  52. package/dist/src/components/inputs/Checkbox/Checkbox.theme.d.ts +7 -2
  53. package/dist/src/components/inputs/Checkbox/Checkbox.theme.js +57 -7
  54. package/dist/src/components/inputs/Fab/Fab.theme.d.ts +5 -9
  55. package/dist/src/components/inputs/Fab/Fab.theme.js +27 -98
  56. package/dist/src/components/inputs/FormHelperText/FormHelperText.d.ts +2 -0
  57. package/dist/src/components/inputs/FormHelperText/FormHelperText.js +3 -0
  58. package/dist/src/components/inputs/FormHelperText/FormHelperText.theme.d.ts +7 -0
  59. package/dist/src/components/inputs/FormHelperText/FormHelperText.theme.js +8 -0
  60. package/dist/src/components/inputs/FormHelperText/index.d.ts +1 -0
  61. package/dist/src/components/inputs/FormHelperText/index.js +2 -0
  62. package/dist/src/components/inputs/FormLabel/FormLabel.d.ts +2 -0
  63. package/dist/src/components/inputs/FormLabel/FormLabel.js +3 -0
  64. package/dist/src/components/inputs/FormLabel/FormLabel.theme.d.ts +7 -0
  65. package/dist/src/components/inputs/FormLabel/FormLabel.theme.js +8 -0
  66. package/dist/src/components/inputs/FormLabel/index.d.ts +1 -0
  67. package/dist/src/components/inputs/FormLabel/index.js +2 -0
  68. package/dist/src/components/inputs/IconButton/IconButton.theme.d.ts +3 -2
  69. package/dist/src/components/inputs/IconButton/IconButton.theme.js +90 -95
  70. package/dist/src/components/inputs/InputBase/InputBase.theme.d.ts +9 -26
  71. package/dist/src/components/inputs/InputBase/InputBase.theme.js +2 -64
  72. package/dist/src/components/inputs/InputLabel/InputLabel.theme.d.ts +7 -4
  73. package/dist/src/components/inputs/InputLabel/InputLabel.theme.js +26 -12
  74. package/dist/src/components/inputs/OutlinedInput/OutlinedInput.theme.d.ts +8 -0
  75. package/dist/src/components/inputs/OutlinedInput/OutlinedInput.theme.js +67 -0
  76. package/dist/src/components/inputs/OutlinedInput/index.d.ts +1 -0
  77. package/dist/src/components/inputs/OutlinedInput/index.js +2 -0
  78. package/dist/src/components/inputs/Radio/Radio.d.ts +4 -0
  79. package/dist/src/components/inputs/Radio/Radio.js +4 -0
  80. package/dist/src/components/inputs/Radio/Radio.theme.d.ts +11 -0
  81. package/dist/src/components/inputs/Radio/Radio.theme.js +35 -0
  82. package/dist/src/components/inputs/Radio/index.d.ts +1 -0
  83. package/dist/src/components/{navigation/TabList → inputs/Radio}/index.js +1 -1
  84. package/dist/src/components/inputs/Select/Select.theme.d.ts +2 -3
  85. package/dist/src/components/inputs/Select/Select.theme.js +6 -33
  86. package/dist/src/components/inputs/Switch/Switch.theme.js +125 -49
  87. package/dist/src/components/inputs/TextField/TextField.theme.d.ts +2 -3
  88. package/dist/src/components/inputs/TextField/TextField.theme.js +2 -26
  89. package/dist/src/components/navigation/Breadcrumbs/Breadcrumbs.d.ts +4 -0
  90. package/dist/src/components/navigation/Breadcrumbs/Breadcrumbs.js +5 -0
  91. package/dist/src/components/navigation/Breadcrumbs/Breadcrumbs.theme.d.ts +11 -0
  92. package/dist/src/components/navigation/Breadcrumbs/Breadcrumbs.theme.js +23 -0
  93. package/dist/src/components/navigation/Breadcrumbs/Crumb.d.ts +10 -0
  94. package/dist/src/components/navigation/Breadcrumbs/Crumb.js +10 -0
  95. package/dist/src/components/navigation/Breadcrumbs/index.d.ts +1 -0
  96. package/dist/src/components/navigation/Breadcrumbs/index.js +2 -0
  97. package/dist/src/components/navigation/Drawer/Drawer.theme.d.ts +1 -1
  98. package/dist/src/components/navigation/Drawer/Drawer.theme.js +50 -6
  99. package/dist/src/components/navigation/Link/Link.theme.d.ts +11 -2
  100. package/dist/src/components/navigation/Link/Link.theme.js +66 -9
  101. package/dist/src/components/navigation/Menu/Menu.theme.d.ts +2 -3
  102. package/dist/src/components/navigation/Menu/Menu.theme.js +6 -11
  103. package/dist/src/components/navigation/MenuItem/MenuItem.theme.d.ts +2 -4
  104. package/dist/src/components/navigation/MenuItem/MenuItem.theme.js +8 -8
  105. package/dist/src/components/navigation/Pagination/Pagination.theme.d.ts +1 -1
  106. package/dist/src/components/navigation/Pagination/Pagination.theme.js +11 -3
  107. package/dist/src/components/navigation/PaginationItem/PaginationItem.theme.js +65 -10
  108. package/dist/src/components/navigation/PaginationItem/components/PaginationIcons.d.ts +4 -0
  109. package/dist/src/components/navigation/PaginationItem/components/PaginationIcons.js +8 -0
  110. package/dist/src/components/navigation/PaginationItem/components/index.d.ts +1 -0
  111. package/dist/src/components/navigation/PaginationItem/components/index.js +2 -0
  112. package/dist/src/components/navigation/Tab/Tab.theme.d.ts +7 -1
  113. package/dist/src/components/navigation/Tab/Tab.theme.js +52 -13
  114. package/dist/src/components/navigation/Tabs/Tabs.d.ts +3 -0
  115. package/dist/src/components/navigation/Tabs/Tabs.js +4 -0
  116. package/dist/src/components/navigation/Tabs/Tabs.theme.d.ts +16 -0
  117. package/dist/src/components/navigation/Tabs/Tabs.theme.js +55 -0
  118. package/dist/src/components/navigation/Tabs/index.d.ts +1 -0
  119. package/dist/src/components/navigation/Tabs/index.js +2 -0
  120. package/dist/src/components/surfaces/Accordion/Accordion.theme.js +54 -22
  121. package/dist/src/components/surfaces/Accordion/AccordionDetails.theme.d.ts +10 -0
  122. package/dist/src/components/surfaces/Accordion/AccordionDetails.theme.js +19 -0
  123. package/dist/src/components/surfaces/Accordion/AccordionSummary.theme.d.ts +10 -0
  124. package/dist/src/components/surfaces/Accordion/AccordionSummary.theme.js +37 -0
  125. package/dist/src/components/surfaces/Accordion/index.d.ts +2 -0
  126. package/dist/src/components/surfaces/Accordion/index.js +2 -0
  127. package/dist/src/components/surfaces/Card/Card.theme.js +1 -1
  128. package/dist/src/components/surfaces/Paper/Paper.theme.d.ts +16 -1
  129. package/dist/src/components/surfaces/Paper/Paper.theme.js +21 -7
  130. package/dist/src/components/surfaces/Paper/Paper.tokens.d.ts +8 -0
  131. package/dist/src/components/surfaces/Paper/Paper.tokens.js +50 -0
  132. package/dist/src/components/surfaces/Paper/Paper.variants.d.ts +4 -0
  133. package/dist/src/components/surfaces/Paper/Paper.variants.js +3 -0
  134. package/dist/src/components/surfaces/Popover/Popover.d.ts +4 -0
  135. package/dist/src/components/surfaces/Popover/Popover.js +4 -0
  136. package/dist/src/components/surfaces/Popover/Popover.theme.d.ts +9 -0
  137. package/dist/src/components/surfaces/Popover/Popover.theme.js +14 -0
  138. package/dist/src/components/surfaces/Popover/index.d.ts +1 -0
  139. package/dist/src/components/surfaces/Popover/index.js +2 -0
  140. package/dist/src/components/utils/Backdrop/Backdrop.d.ts +3 -0
  141. package/dist/src/components/utils/Backdrop/Backdrop.js +4 -0
  142. package/dist/src/components/utils/Backdrop/Backdrop.theme.d.ts +11 -0
  143. package/dist/src/components/utils/Backdrop/Backdrop.theme.js +17 -0
  144. package/dist/src/components/utils/Backdrop/index.d.ts +1 -0
  145. package/dist/src/components/utils/Backdrop/index.js +2 -0
  146. package/dist/src/icons/index.d.ts +4 -0
  147. package/dist/src/icons/index.js +12 -0
  148. package/dist/src/providers/ThemeModeProvider.d.ts +1 -2
  149. package/dist/src/providers/ThemeModeProvider.js +2 -2
  150. package/dist/src/providers/WebProsMuiThemeProvider.js +1 -1
  151. package/dist/src/providers/WebProsTheme.d.ts +1 -0
  152. package/dist/src/providers/WebProsTheme.js +11 -5
  153. package/dist/src/shared/rippleEnterKeyframe.d.ts +6 -0
  154. package/dist/src/shared/rippleEnterKeyframe.js +12 -0
  155. package/dist/src/shared/viewContext/index.d.ts +1 -0
  156. package/dist/src/shared/viewContext/index.js +2 -0
  157. package/dist/src/shared/viewContext/viewContext.d.ts +4 -0
  158. package/dist/src/shared/viewContext/viewContext.js +2 -0
  159. package/dist/src/style/additional-color-palette.d.ts +1 -3
  160. package/dist/src/style/additional-color-palette.js +4 -7
  161. package/dist/src/style/custom-color-palette.js +51 -53
  162. package/dist/src/tokens/ThemeColorTokens.d.ts +11 -93
  163. package/dist/src/tokens/ThemeColorTokens.js +4 -168
  164. package/dist/src/tokens/ThemeScheme.d.ts +0 -3
  165. package/dist/src/tokens/ThemeScheme.js +0 -2
  166. package/dist/src/tokens/colors/Dark.d.ts +16 -0
  167. package/dist/src/tokens/colors/Dark.js +1422 -0
  168. package/dist/src/tokens/colors/Light.d.ts +16 -0
  169. package/dist/src/tokens/colors/Light.js +1392 -0
  170. package/dist/src/tokens/colors/index.d.ts +7 -0
  171. package/dist/src/tokens/colors/index.js +4 -0
  172. package/dist/src/tokens/colors/inverseSchemas.d.ts +40 -0
  173. package/dist/src/tokens/colors/inverseSchemas.js +3 -0
  174. package/dist/src/tokens/colors/inverseSchemes.d.ts +53 -0
  175. package/dist/src/tokens/colors/inverseSchemes.js +3 -0
  176. package/dist/src/tokens/colors/inverseStateLayers.d.ts +188 -0
  177. package/dist/src/tokens/colors/inverseStateLayers.js +3 -0
  178. package/dist/src/tokens/colors/schemas.d.ts +111 -0
  179. package/dist/src/tokens/colors/schemas.js +3 -0
  180. package/dist/src/tokens/colors/schemes.d.ts +111 -0
  181. package/dist/src/tokens/colors/schemes.js +3 -0
  182. package/dist/src/tokens/colors/stateLayers.d.ts +456 -0
  183. package/dist/src/tokens/colors/stateLayers.js +3 -0
  184. package/dist/src/tokens/colors/types.d.ts +9 -0
  185. package/dist/src/tokens/colors/types.js +2 -0
  186. package/dist/src/tokens/index.d.ts +6 -2
  187. package/dist/src/tokens/index.js +2 -1
  188. package/dist/src/tokens/legacyColors/LegacyDark.d.ts +2 -0
  189. package/dist/src/tokens/legacyColors/LegacyDark.js +88 -0
  190. package/dist/src/tokens/legacyColors/LegacyLight.d.ts +2 -0
  191. package/dist/src/tokens/legacyColors/LegacyLight.js +86 -0
  192. package/dist/src/tokens/legacyColors/ThemeColorTokensLegacy.d.ts +74 -0
  193. package/dist/src/tokens/legacyColors/ThemeColorTokensLegacy.js +2 -0
  194. package/dist/src/tokens/legacyColors/additionalColors/additionalColors.d.ts +21 -0
  195. package/dist/src/tokens/legacyColors/additionalColors/additionalColors.js +2 -0
  196. package/dist/src/tokens/{additionalColors → legacyColors/additionalColors}/index.d.ts +1 -0
  197. package/dist/src/tokens/{additionalColors → legacyColors/additionalColors}/index.js +1 -0
  198. package/dist/src/tokens/legacyColors/index.d.ts +2 -0
  199. package/dist/src/tokens/legacyColors/index.js +3 -0
  200. package/dist/src/tokens/shadows/index.d.ts +12 -0
  201. package/dist/src/tokens/shadows/index.js +112 -0
  202. package/dist/src/tokens/typography/index.d.ts +2 -0
  203. package/dist/src/tokens/typography/index.js +4 -0
  204. package/dist/src/tokens/typography/typescale.d.ts +28 -0
  205. package/dist/src/tokens/typography/typescale.js +26 -0
  206. package/dist/src/tokens/typography/typography.d.ts +2 -0
  207. package/dist/src/tokens/typography/typography.js +156 -0
  208. package/dist/src/utils/createIcon.d.ts +12 -0
  209. package/dist/src/utils/createIcon.js +94 -0
  210. package/dist/src/utils/flatten.d.ts +1 -0
  211. package/dist/src/utils/flatten.js +12 -0
  212. package/dist/src/utils/getMUIComponents.js +2 -2
  213. package/dist/src/utils/getMUIPalette.d.ts +6 -11
  214. package/dist/src/utils/getMUIPalette.js +49 -25
  215. package/dist/src/utils/getMUIThemeCustoimzationType.d.ts +31 -0
  216. package/dist/src/utils/getMUIThemeCustoimzationType.js +2 -0
  217. package/dist/src/utils/getMUITypography.d.ts +2 -0
  218. package/dist/src/utils/getMUITypography.js +5 -0
  219. package/dist/src/utils/getStateLayerColor.d.ts +37 -0
  220. package/dist/src/utils/getStateLayerColor.js +43 -1
  221. package/dist/src/utils/index.d.ts +1 -1
  222. package/dist/src/utils/index.js +1 -1
  223. package/dist/src/utils/patchMUIShadows.js +4 -3
  224. package/package.json +21 -11
  225. package/dist/src/components/inputs/Autocomplete/components/AutocompletePopupIcon.d.ts +0 -1
  226. package/dist/src/components/navigation/PaginationItem/PaginationItem.d.ts +0 -3
  227. package/dist/src/components/navigation/PaginationItem/PaginationItem.js +0 -4
  228. package/dist/src/components/navigation/TabList/TabList.d.ts +0 -3
  229. package/dist/src/components/navigation/TabList/TabList.js +0 -4
  230. package/dist/src/components/navigation/TabList/TabList.theme.d.ts +0 -10
  231. package/dist/src/components/navigation/TabList/TabList.theme.js +0 -17
  232. package/dist/src/components/navigation/TabList/index.d.ts +0 -1
  233. package/dist/src/hooks/useTonalPalette.d.ts +0 -3
  234. package/dist/src/hooks/useTonalPalette.js +0 -32
  235. package/dist/src/providers/ThemeSchemeProvider.d.ts +0 -12
  236. package/dist/src/providers/ThemeSchemeProvider.js +0 -29
  237. package/dist/src/tokens/TonalPalette.d.ts +0 -10
  238. package/dist/src/tokens/TonalPalette.js +0 -10
  239. package/dist/src/utils/generateTokens.d.ts +0 -4
  240. package/dist/src/utils/generateTokens.js +0 -107
  241. /package/dist/src/tokens/{Tone.d.ts → legacyColors/Tone.d.ts} +0 -0
  242. /package/dist/src/tokens/{Tone.js → legacyColors/Tone.js} +0 -0
@@ -0,0 +1,8 @@
1
+ import { ComponentsOverrides, Theme } from '@mui/material';
2
+ interface M3OutlinedInput {
3
+ MuiOutlinedInput: {
4
+ styleOverrides?: ComponentsOverrides<Theme>['MuiOutlinedInput'];
5
+ };
6
+ }
7
+ export declare const getOutlinedInput: () => M3OutlinedInput;
8
+ export {};
@@ -0,0 +1,67 @@
1
+ // Copyright 2025 WebPros International GmbH. All rights reserved.
2
+ export const getOutlinedInput = () => {
3
+ return {
4
+ MuiOutlinedInput: {
5
+ styleOverrides: {
6
+ root: {
7
+ // the order matters
8
+ variants: [
9
+ {
10
+ props: ({ multiline }) => !!multiline,
11
+ style: {
12
+ paddingTop: 11,
13
+ paddingBottom: 11,
14
+ },
15
+ },
16
+ {
17
+ props: ({ multiline, size }) => !!multiline && size === 'small',
18
+ style: {
19
+ paddingTop: 7,
20
+ paddingBottom: 7,
21
+ },
22
+ },
23
+ {
24
+ props: ({ multiline, size }) => !!multiline && size === 'large',
25
+ style: {
26
+ paddingTop: 14,
27
+ paddingBottom: 14,
28
+ },
29
+ },
30
+ ],
31
+ },
32
+ input: {
33
+ height: '20px',
34
+ variants: [
35
+ {
36
+ props: {},
37
+ style: {
38
+ paddingTop: 11,
39
+ paddingBottom: 11,
40
+ },
41
+ },
42
+ {
43
+ props: { size: 'small' },
44
+ style: {
45
+ paddingTop: 7,
46
+ paddingBottom: 7,
47
+ },
48
+ },
49
+ {
50
+ props: { size: 'large' },
51
+ style: {
52
+ paddingTop: 14,
53
+ paddingBottom: 14,
54
+ },
55
+ },
56
+ {
57
+ props: ({ ownerState }) => !!ownerState.multiline,
58
+ style: {
59
+ padding: 0,
60
+ },
61
+ },
62
+ ],
63
+ },
64
+ },
65
+ },
66
+ };
67
+ };
@@ -0,0 +1 @@
1
+ export * from './OutlinedInput.theme';
@@ -0,0 +1,2 @@
1
+ // Copyright 2025 WebPros International GmbH. All rights reserved.
2
+ export * from './OutlinedInput.theme';
@@ -0,0 +1,4 @@
1
+ import { Radio as MuiRadio } from '@mui/material';
2
+ import './Radio.theme';
3
+ export declare const Radio: typeof MuiRadio;
4
+ export type RadioComponentType = typeof Radio;
@@ -0,0 +1,4 @@
1
+ // Copyright 2025 WebPros International GmbH. All rights reserved.
2
+ import { Radio as MuiRadio } from '@mui/material';
3
+ import './Radio.theme';
4
+ export const Radio = MuiRadio;
@@ -0,0 +1,11 @@
1
+ import { ComponentsOverrides, ComponentsProps, ComponentsVariants, Theme } from '@mui/material';
2
+ interface M3Radio {
3
+ MuiRadio: {
4
+ styleOverrides?: ComponentsOverrides<Theme>['MuiRadio'];
5
+ variants?: ComponentsVariants<Theme>['MuiRadio'];
6
+ defaultProps?: ComponentsProps['MuiRadio'];
7
+ };
8
+ }
9
+ export declare const getRadio: (theme: Theme) => M3Radio;
10
+ declare const _default: {};
11
+ export default _default;
@@ -0,0 +1,35 @@
1
+ // Copyright 2025 WebPros International GmbH. All rights reserved.
2
+ export const getRadio = (theme) => {
3
+ const { colors } = theme;
4
+ return {
5
+ MuiRadio: {
6
+ defaultProps: { size: 'small', color: 'default' },
7
+ styleOverrides: {
8
+ root: {
9
+ color: colors.schemes.surfaces.onSurfaceVariant,
10
+ '&.Mui-checked': {
11
+ color: colors.schemes.base.primary,
12
+ },
13
+ '&.Mui-disabled': {
14
+ color: colors.stateLayers.surfaces.onSurfaceVariant.opacity38,
15
+ },
16
+ '&.Mui-disabled.Mui-checked': {
17
+ color: colors.stateLayers.surfaces.onSurface.opacity38,
18
+ },
19
+ },
20
+ },
21
+ variants: [
22
+ {
23
+ props: { color: 'error' },
24
+ style: {
25
+ color: colors.schemes.status.error,
26
+ '&.Mui-checked': {
27
+ color: colors.schemes.status.error,
28
+ },
29
+ },
30
+ },
31
+ ],
32
+ },
33
+ };
34
+ };
35
+ export default {};
@@ -0,0 +1 @@
1
+ export * from './Radio.theme';
@@ -1,2 +1,2 @@
1
1
  // Copyright 2025 WebPros International GmbH. All rights reserved.
2
- export * from './TabList.theme';
2
+ export * from './Radio.theme';
@@ -1,9 +1,8 @@
1
- import { Theme, ComponentsProps, ComponentsOverrides, ComponentsVariants } from '@mui/material';
1
+ import { Theme, ComponentsProps, ComponentsOverrides } from '@mui/material';
2
2
  export interface M3Select {
3
3
  MuiSelect: {
4
4
  defaultProps?: ComponentsProps['MuiSelect'];
5
5
  styleOverrides?: ComponentsOverrides<Theme>['MuiSelect'];
6
- variants?: ComponentsVariants['MuiSelect'];
7
6
  };
8
7
  }
9
- export declare const getSelect: (theme: Theme) => M3Select;
8
+ export declare const getSelect: () => M3Select;
@@ -1,46 +1,19 @@
1
1
  // Copyright 2025 WebPros International GmbH. All rights reserved.
2
2
  import { CaretDownIcon } from '@phosphor-icons/react';
3
- import { getOnStateLayerColor, getStateLayerColor, OnStateLayer, StateLayer, } from '../../../utils/getStateLayerColor';
4
- export const getSelect = (theme) => {
5
- const { palette } = theme;
3
+ export const getSelect = () => {
6
4
  return {
7
5
  MuiSelect: {
8
6
  defaultProps: {
9
7
  IconComponent: CaretDownIcon,
10
8
  },
11
9
  styleOverrides: {
12
- root: {
13
- '& .MuiInputBase-root': {
14
- borderColor: palette.outline.main,
15
- },
16
- '> svg': {
17
- color: palette.supportive.main,
18
- },
19
- padding: '0',
20
- },
21
- select: {
22
- // Patch for displaying icons in input
23
- '.MuiListItem-root': {
24
- padding: 0,
25
- },
26
- '.MuiListItemText-root': {
27
- margin: 0,
28
- },
29
- '&.Mui-disabled': {
30
- // Mui by default uses -webkit-text-fill-color and if it is set then it is used instead of css color property
31
- WebkitTextFillColor: getOnStateLayerColor(OnStateLayer.Disabled, palette.onSurface.main),
32
- borderColor: getStateLayerColor(StateLayer.Disabled, palette.outline.main),
33
- },
10
+ icon: {
11
+ top: 'calc(50% - 10px)',
12
+ right: 13,
13
+ width: 20,
14
+ height: 20,
34
15
  },
35
16
  },
36
- variants: [
37
- {
38
- props: { variant: 'outlined' },
39
- style: {
40
- borderRadius: 8,
41
- },
42
- },
43
- ],
44
17
  },
45
18
  };
46
19
  };
@@ -1,93 +1,169 @@
1
1
  // Copyright 2025 WebPros International GmbH. All rights reserved.
2
- import { alpha, } from '@mui/material';
2
+ import { switchClasses, touchRippleClasses, } from '@mui/material';
3
3
  export const getSwitch = (theme) => {
4
- const { palette } = theme;
4
+ const { colors, transitions } = theme;
5
+ const activeThumbScale = 1.67;
6
+ const activeThumbScaleChecked = 1.15;
7
+ const createTransitionStrings = (props, options) => props.map((prop) => transitions.create(prop, options));
8
+ const thumbActiveTransition = [
9
+ transitions.create('transform', { duration: 300, easing: 'linear' }),
10
+ transitions.create('color', { duration: 150, easing: 'linear' }),
11
+ ].join(', ');
12
+ const rippleInsetTransitions = createTransitionStrings(['top', 'left', 'right', 'bottom'], {
13
+ duration: 150,
14
+ easing: 'ease',
15
+ });
16
+ const rippleInsetTransition = rippleInsetTransitions.join(', ');
17
+ const rippleBackgroundTransition = [
18
+ transitions.create('background', { duration: 150 }),
19
+ ...rippleInsetTransitions,
20
+ ].join(', ');
21
+ const rippleBackgroundTransformTransition = [
22
+ transitions.create('background', { duration: 150 }),
23
+ ...rippleInsetTransitions,
24
+ transitions.create('transform', { duration: 150, easing: 'ease' }),
25
+ ].join(', ');
26
+ const hoverThumbTransition = [
27
+ transitions.create('color', { duration: 150 }),
28
+ transitions.create('background', { duration: 150 }),
29
+ ...rippleInsetTransitions,
30
+ transitions.create('transform', { duration: 150, easing: 'ease' }),
31
+ ].join(', ');
32
+ const colorTransitionShort = transitions.create('color', { duration: 150 });
33
+ const backgroundTransitionMedium = transitions.create('background', { duration: 200 });
5
34
  return {
6
35
  MuiSwitch: {
36
+ defaultProps: {
37
+ size: 'medium',
38
+ },
7
39
  styleOverrides: {
8
40
  root: {
9
41
  overflow: 'visible',
10
- width: 42,
11
- height: 26,
42
+ width: 36,
43
+ height: 24,
12
44
  padding: 0,
13
45
  marginLeft: 12,
14
46
  marginRight: 8,
15
- borderColor: palette.outline.main,
16
- '& .MuiSwitch-switchBase': {
47
+ borderColor: colors.stateLayers.base.primary.opacity38,
48
+ [`& .${switchClasses.switchBase}`]: {
17
49
  padding: 0,
18
- margin: 7,
50
+ top: '50%',
51
+ left: '6px',
52
+ transform: 'translateY(-50%)',
19
53
  transitionDuration: '100ms',
54
+ [`&:active .${switchClasses.thumb}`]: {
55
+ color: colors.schemes.base.primaryContainer,
56
+ transform: `scale(${activeThumbScale})`,
57
+ transition: thumbActiveTransition,
58
+ },
20
59
  '&.Mui-checked': {
21
- transform: 'translateX(16px)',
22
- margin: 4,
23
- '& + .MuiSwitch-track': {
24
- backgroundColor: palette.primary.main,
60
+ transform: 'translateY(-50%) translateX(8px)',
61
+ [`& + .${switchClasses.track}`]: {
62
+ backgroundColor: colors.schemes.base.primary,
25
63
  opacity: 1,
26
64
  border: 0,
27
65
  },
28
- '& .MuiSwitch-thumb': {
29
- color: palette.onPrimary.main,
66
+ [`& .${switchClasses.thumb}`]: {
67
+ color: colors.schemes.base.onPrimary,
30
68
  width: 18,
31
69
  height: 18,
32
70
  },
33
- '&.Mui-disabled + .MuiSwitch-track': {
34
- backgroundColor: alpha(palette.onSurface.main, 0.1),
71
+ [`&:active .${switchClasses.thumb}`]: {
72
+ color: colors.schemes.base.primaryContainer,
73
+ transform: `scale(${activeThumbScaleChecked})`,
74
+ transition: thumbActiveTransition,
75
+ },
76
+ [`&.Mui-disabled + .${switchClasses.track}`]: {
77
+ backgroundColor: colors.stateLayers.surfaces.onSurface.opacity28,
35
78
  },
36
- '&.Mui-disabled .MuiSwitch-thumb': {
37
- color: alpha(palette.surface.main, 0.8),
79
+ [`&.Mui-disabled .${switchClasses.thumb}`]: {
80
+ color: colors.stateLayers.surfaces.surfaceContainerLowest,
38
81
  },
39
- '& .MuiTouchRipple-root': {
82
+ [`& .${touchRippleClasses.root}`]: {
40
83
  top: '-8px',
41
84
  left: '-8px',
42
85
  right: '-8px',
43
86
  bottom: '-8px',
87
+ transition: rippleInsetTransition,
44
88
  },
45
- '.MuiTouchRipple-ripple': {
46
- color: palette.primary.main,
47
- opacity: 0.08,
89
+ [`& .${touchRippleClasses.ripple}`]: {
90
+ color: colors.stateLayers.base.primary.opacity38,
48
91
  },
49
92
  },
50
- '&.Mui-focusVisible .MuiSwitch-thumb': {
51
- color: palette.primary.main,
52
- border: `6px solid ${palette.onPrimary.main}`,
93
+ [`&.Mui-disabled:not(.Mui-checked) + .${switchClasses.track}`]: {
94
+ backgroundColor: colors.stateLayers.surfaces.onSurface.opacity06,
95
+ border: `2px solid ${colors.stateLayers.surfaces.onSurface.opacity12}`,
96
+ opacity: 1,
53
97
  },
54
- '&.Mui-disabled .MuiSwitch-thumb': {
55
- color: alpha(palette.onSurface.main, 0.3),
98
+ [`&.Mui-disabled:not(.Mui-checked) .${switchClasses.thumb}`]: {
99
+ color: colors.stateLayers.surfaces.onSurfaceVariant.opacity38,
100
+ },
101
+ [`& .${touchRippleClasses.root}`]: {
102
+ top: '-12px',
103
+ left: '-12px',
104
+ right: '-12px',
105
+ bottom: '-12px',
106
+ transition: rippleInsetTransition,
107
+ },
108
+ [`&:active:not(.Mui-checked) .${touchRippleClasses.root}`]: {
109
+ top: '-10px',
110
+ left: '-10px',
111
+ right: '-10px',
112
+ bottom: '-10px',
113
+ transition: rippleInsetTransition,
56
114
  },
57
115
  },
58
- '& .MuiSwitch-thumb': {
116
+ [`& .${switchClasses.thumb}`]: {
59
117
  boxSizing: 'border-box',
60
- color: alpha(palette.onSurfaceVariant.main, 0.72),
61
118
  width: 12,
62
119
  height: 12,
63
120
  boxShadow: 'none',
64
- '&:before': {
65
- content: "''",
66
- position: 'absolute',
67
- width: '100%',
68
- height: '100%',
69
- left: 0,
70
- top: 0,
71
- backgroundRepeat: 'no-repeat',
72
- backgroundPosition: 'center',
121
+ transition: thumbActiveTransition,
122
+ },
123
+ [`& .${switchClasses.switchBase}:not(.Mui-disabled):not(.Mui-checked) .${switchClasses.thumb}`]: {
124
+ color: colors.stateLayers.base.primary.opacity72,
125
+ },
126
+ [`& .${switchClasses.switchBase}:hover .${touchRippleClasses.root}`]: {
127
+ backgroundColor: colors.stateLayers.base.primary.opacity12,
128
+ transition: rippleBackgroundTransition,
129
+ },
130
+ [`& .${switchClasses.switchBase}:not(.Mui-checked):hover .${switchClasses.thumb}`]: {
131
+ color: colors.schemes.base.primary,
132
+ transition: hoverThumbTransition,
133
+ },
134
+ '.MuiFormControlLabel-root:hover &': {
135
+ [`& .${switchClasses.switchBase}:not(.Mui-disabled) .${touchRippleClasses.root}`]: {
136
+ backgroundColor: colors.stateLayers.base.primary.opacity08,
137
+ transition: rippleBackgroundTransformTransition,
73
138
  },
139
+ [`& .${switchClasses.switchBase}:not(.Mui-checked):not(.Mui-disabled) .${switchClasses.thumb}`]: {
140
+ color: colors.schemes.base.primary,
141
+ transition: colorTransitionShort,
142
+ },
143
+ },
144
+ [`&:active .Mui-checked .${touchRippleClasses.root}`]: {
145
+ top: '-7px',
146
+ left: '-7px',
147
+ right: '-7px',
148
+ bottom: '-7px',
149
+ transition: rippleInsetTransition,
74
150
  },
75
- '& .MuiTouchRipple-root': {
76
- top: '-12px',
77
- left: '-12px',
78
- right: '-12px',
79
- bottom: '-12px',
151
+ [`& .${touchRippleClasses.root}`]: {
152
+ top: '-8px',
153
+ left: '-8px',
154
+ right: '-8px',
155
+ bottom: '-8px',
156
+ transition: rippleInsetTransition,
80
157
  },
81
- '.MuiTouchRipple-ripple': {
82
- color: palette.onSurface.main,
83
- opacity: 0.06,
158
+ [`& .${touchRippleClasses.ripple}`]: {
159
+ color: colors.stateLayers.surfaces.onSurface.opacity06,
84
160
  },
85
- '& .MuiSwitch-track': {
161
+ [`& .${switchClasses.track}`]: {
86
162
  borderRadius: 20,
87
- border: `2px solid ${palette.outline.main}`,
88
- backgroundColor: palette.surfaceContainerHighest.main,
163
+ border: `2px solid ${colors.stateLayers.base.primary.opacity08}`,
164
+ backgroundColor: colors.schemes.base.primaryContainer,
89
165
  opacity: 1,
90
- transition: 'background .2s',
166
+ transition: backgroundTransitionMedium,
91
167
  },
92
168
  },
93
169
  },
@@ -1,4 +1,4 @@
1
- import { Theme, ComponentsOverrides, ComponentsVariants } from '@mui/material';
1
+ import { Theme, ComponentsProps } from '@mui/material';
2
2
  declare module '@mui/material/TextField' {
3
3
  interface TextFieldPropsSizeOverrides {
4
4
  large: true;
@@ -6,8 +6,7 @@ declare module '@mui/material/TextField' {
6
6
  }
7
7
  interface M3TextField {
8
8
  MuiTextField: {
9
- styleOverrides?: ComponentsOverrides<Theme>['MuiTextField'];
10
- variants?: ComponentsVariants<Theme>['MuiTextField'];
9
+ defaultProps?: ComponentsProps['MuiTextField'];
11
10
  };
12
11
  }
13
12
  export declare const getTextField: (_theme: Theme) => M3TextField;
@@ -1,32 +1,8 @@
1
1
  // Copyright 2025 WebPros International GmbH. All rights reserved.
2
2
  export const getTextField = (_theme) => ({
3
3
  MuiTextField: {
4
- styleOverrides: {
5
- root: {
6
- '.MuiInputBase-root': {
7
- borderRadius: 8,
8
- padding: '4px 8px',
9
- },
10
- '.MuiInputBase-input': {
11
- padding: '6px 8px',
12
- },
13
- },
4
+ defaultProps: {
5
+ variant: 'outlined',
14
6
  },
15
- variants: [
16
- {
17
- props: { size: 'large' },
18
- style: {
19
- '.MuiInputBase-root': {
20
- borderRadius: 8,
21
- padding: '4px 0px',
22
- },
23
- '.MuiInputBase-input': {
24
- fontSize: '1rem',
25
- lineHeight: '1.5rem',
26
- padding: '12px 0px',
27
- },
28
- },
29
- },
30
- ],
31
7
  },
32
8
  });
@@ -0,0 +1,4 @@
1
+ import './Breadcrumbs.theme';
2
+ export declare const Breadcrumbs: import("@mui/material/OverridableComponent").OverridableComponent<import("@mui/material").BreadcrumbsTypeMap<{}, "nav">>;
3
+ export type BreadcrumbsComponentType = typeof Breadcrumbs;
4
+ export * from './Crumb';
@@ -0,0 +1,5 @@
1
+ // Copyright 2025 WebPros International GmbH. All rights reserved.
2
+ import { Breadcrumbs as MuiBreadcrumbs } from '@mui/material';
3
+ import './Breadcrumbs.theme';
4
+ export const Breadcrumbs = MuiBreadcrumbs;
5
+ export * from './Crumb';
@@ -0,0 +1,11 @@
1
+ import { Theme, ComponentsProps, ComponentsOverrides, ComponentsVariants } from '@mui/material';
2
+ interface M3Breadcrumbs {
3
+ MuiBreadcrumbs: {
4
+ defaultProps?: ComponentsProps['MuiBreadcrumbs'];
5
+ styleOverrides?: ComponentsOverrides<Theme>['MuiBreadcrumbs'];
6
+ variants?: ComponentsVariants['MuiBreadcrumbs'];
7
+ };
8
+ }
9
+ export declare const getBreadcrumbs: (theme: Theme) => M3Breadcrumbs;
10
+ declare const _default: {};
11
+ export default _default;
@@ -0,0 +1,23 @@
1
+ // Copyright 2025 WebPros International GmbH. All rights reserved.
2
+ import { typographyVariants } from '../../../tokens/typography';
3
+ export const getBreadcrumbs = (theme) => {
4
+ const { spacing, colors } = theme;
5
+ return {
6
+ MuiBreadcrumbs: {
7
+ defaultProps: {
8
+ separator: '/',
9
+ },
10
+ styleOverrides: {
11
+ root: {
12
+ color: colors.schemes.typography.onSurface,
13
+ },
14
+ separator: Object.assign({ marginLeft: spacing(1), marginRight: spacing(1), color: colors.schemes.surfaces.onSurfaceVariant }, typographyVariants.BodySmall),
15
+ li: {
16
+ // Collapsed ellipsis button
17
+ '& button': Object.assign({ color: colors.schemes.surfaces.onSurfaceVariant }, typographyVariants.BodySmall),
18
+ },
19
+ },
20
+ },
21
+ };
22
+ };
23
+ export default {};
@@ -0,0 +1,10 @@
1
+ import { LinkProps } from '@mui/material';
2
+ import { ReactNode } from 'react';
3
+ export interface CrumbProps extends Omit<LinkProps, 'variant' | 'underlineInversed' | 'visited'> {
4
+ icon?: ReactNode;
5
+ children: ReactNode;
6
+ underlineInversed?: boolean;
7
+ visited?: boolean;
8
+ }
9
+ export declare const Crumb: ({ icon, children, underlineInversed, visited, sx, ...props }: CrumbProps) => import("react/jsx-runtime").JSX.Element;
10
+ export type CrumbComponentType = typeof Crumb;
@@ -0,0 +1,10 @@
1
+ import { __rest } from "tslib";
2
+ import { jsxs as _jsxs } from "react/jsx-runtime";
3
+ // Copyright 2025 WebPros International GmbH. All rights reserved.
4
+ import { Link } from '@mui/material';
5
+ export const Crumb = (_a) => {
6
+ var { icon, children, underlineInversed = true, visited = false, sx } = _a, props = __rest(_a, ["icon", "children", "underlineInversed", "visited", "sx"]);
7
+ return (_jsxs(Link, Object.assign({ variant: "BodySmall", underline: "hover", underlineInversed: underlineInversed, visited: visited, color: "primary", sx: Object.assign({ display: 'flex', alignItems: 'center', gap: 1, '& svg': {
8
+ color: 'currentColor',
9
+ } }, sx) }, props, { children: [icon, children] })));
10
+ };
@@ -0,0 +1 @@
1
+ export * from './Breadcrumbs.theme';
@@ -0,0 +1,2 @@
1
+ // Copyright 2025 WebPros International GmbH. All rights reserved.
2
+ export * from './Breadcrumbs.theme';
@@ -5,6 +5,6 @@ interface M3Drawer {
5
5
  styleOverrides?: ComponentsOverrides<Theme>['MuiDrawer'];
6
6
  };
7
7
  }
8
- export declare const getDrawer: (theme: Theme) => M3Drawer;
8
+ export declare const getDrawer: (_theme: Theme) => M3Drawer;
9
9
  declare const _default: {};
10
10
  export default _default;
@@ -1,12 +1,56 @@
1
- export const getDrawer = (theme) => {
2
- const { palette } = theme;
1
+ import { drawerClasses } from '@mui/material/Drawer';
2
+ const anchorLeftSelector = `&.${drawerClasses.anchorLeft} > .${drawerClasses.paper}`;
3
+ const anchorLeftDockedSelector = `&.${drawerClasses.docked}.${drawerClasses.anchorLeft} > .${drawerClasses.paper}`;
4
+ const anchorRightSelector = `&.${drawerClasses.anchorRight} > .${drawerClasses.paper}`;
5
+ const anchorRightDockedSelector = `&.${drawerClasses.docked}.${drawerClasses.anchorRight} > .${drawerClasses.paper}`;
6
+ const anchorTopSelector = `&.${drawerClasses.anchorTop} > .${drawerClasses.paper}`;
7
+ const anchorTopDockedSelector = `&.${drawerClasses.docked}.${drawerClasses.anchorTop} > .${drawerClasses.paper}`;
8
+ const anchorBottomSelector = `&.${drawerClasses.anchorBottom} > .${drawerClasses.paper}`;
9
+ const anchorBottomDockedSelector = `&.${drawerClasses.docked}.${drawerClasses.anchorBottom} > .${drawerClasses.paper}`;
10
+ export const getDrawer = (_theme) => {
3
11
  return {
4
12
  MuiDrawer: {
13
+ defaultProps: {
14
+ slotProps: {
15
+ paper: {
16
+ elevation: 3,
17
+ },
18
+ },
19
+ },
5
20
  styleOverrides: {
6
- paper: {
7
- border: 0,
8
- background: palette.surface.main,
9
- color: palette.onSurfaceVariant.main,
21
+ root: {
22
+ [anchorLeftSelector]: {
23
+ borderTopLeftRadius: 0,
24
+ borderBottomLeftRadius: 0,
25
+ },
26
+ [anchorLeftDockedSelector]: {
27
+ borderTopLeftRadius: 0,
28
+ borderBottomLeftRadius: 0,
29
+ },
30
+ [anchorRightSelector]: {
31
+ borderTopRightRadius: 0,
32
+ borderBottomRightRadius: 0,
33
+ },
34
+ [anchorRightDockedSelector]: {
35
+ borderTopRightRadius: 0,
36
+ borderBottomRightRadius: 0,
37
+ },
38
+ [anchorTopSelector]: {
39
+ borderTopLeftRadius: 0,
40
+ borderTopRightRadius: 0,
41
+ },
42
+ [anchorTopDockedSelector]: {
43
+ borderTopLeftRadius: 0,
44
+ borderTopRightRadius: 0,
45
+ },
46
+ [anchorBottomSelector]: {
47
+ borderBottomLeftRadius: 0,
48
+ borderBottomRightRadius: 0,
49
+ },
50
+ [anchorBottomDockedSelector]: {
51
+ borderBottomLeftRadius: 0,
52
+ borderBottomRightRadius: 0,
53
+ },
10
54
  },
11
55
  },
12
56
  },