@webpros/mui-theme 0.1.5 → 0.2.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 (233) hide show
  1. package/dist/package.json +6 -4
  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 +60 -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/LinearProgress/LinearProgress.theme.d.ts +6 -1
  35. package/dist/src/components/feedback/LinearProgress/LinearProgress.theme.js +83 -9
  36. package/dist/src/components/feedback/Snackbar/Snackbar.theme.d.ts +4 -4
  37. package/dist/src/components/feedback/Snackbar/Snackbar.theme.js +7 -3
  38. package/dist/src/components/index.d.ts +10 -1
  39. package/dist/src/components/index.js +10 -1
  40. package/dist/src/components/inputs/Autocomplete/Autocomplete.theme.d.ts +1 -1
  41. package/dist/src/components/inputs/Autocomplete/Autocomplete.theme.js +23 -51
  42. package/dist/src/components/inputs/Autocomplete/components/AutocompleteCaretDownIcon.d.ts +1 -0
  43. package/dist/src/components/inputs/Autocomplete/components/{AutocompletePopupIcon.js → AutocompleteCaretDownIcon.js} +1 -1
  44. package/dist/src/components/inputs/Autocomplete/components/AutocompleteXIcon.d.ts +1 -0
  45. package/dist/src/components/inputs/Autocomplete/components/AutocompleteXIcon.js +4 -0
  46. package/dist/src/components/inputs/Button/Button.theme.d.ts +4 -0
  47. package/dist/src/components/inputs/Button/Button.theme.js +93 -226
  48. package/dist/src/components/inputs/Button/get-button-colors-map.d.ts +24 -0
  49. package/dist/src/components/inputs/Button/get-button-colors-map.js +211 -0
  50. package/dist/src/components/inputs/Checkbox/Checkbox.theme.d.ts +7 -2
  51. package/dist/src/components/inputs/Checkbox/Checkbox.theme.js +57 -7
  52. package/dist/src/components/inputs/Fab/Fab.theme.d.ts +5 -9
  53. package/dist/src/components/inputs/Fab/Fab.theme.js +27 -98
  54. package/dist/src/components/inputs/FormHelperText/FormHelperText.d.ts +2 -0
  55. package/dist/src/components/inputs/FormHelperText/FormHelperText.js +3 -0
  56. package/dist/src/components/inputs/FormHelperText/FormHelperText.theme.d.ts +7 -0
  57. package/dist/src/components/inputs/FormHelperText/FormHelperText.theme.js +8 -0
  58. package/dist/src/components/inputs/FormHelperText/index.d.ts +1 -0
  59. package/dist/src/components/inputs/FormHelperText/index.js +2 -0
  60. package/dist/src/components/inputs/FormLabel/FormLabel.d.ts +2 -0
  61. package/dist/src/components/inputs/FormLabel/FormLabel.js +3 -0
  62. package/dist/src/components/inputs/FormLabel/FormLabel.theme.d.ts +7 -0
  63. package/dist/src/components/inputs/FormLabel/FormLabel.theme.js +8 -0
  64. package/dist/src/components/inputs/FormLabel/index.d.ts +1 -0
  65. package/dist/src/components/inputs/FormLabel/index.js +2 -0
  66. package/dist/src/components/inputs/IconButton/IconButton.theme.d.ts +3 -2
  67. package/dist/src/components/inputs/IconButton/IconButton.theme.js +90 -95
  68. package/dist/src/components/inputs/InputBase/InputBase.theme.d.ts +9 -26
  69. package/dist/src/components/inputs/InputBase/InputBase.theme.js +2 -64
  70. package/dist/src/components/inputs/InputLabel/InputLabel.theme.d.ts +7 -4
  71. package/dist/src/components/inputs/InputLabel/InputLabel.theme.js +26 -12
  72. package/dist/src/components/inputs/OutlinedInput/OutlinedInput.theme.d.ts +8 -0
  73. package/dist/src/components/inputs/OutlinedInput/OutlinedInput.theme.js +67 -0
  74. package/dist/src/components/inputs/OutlinedInput/index.d.ts +1 -0
  75. package/dist/src/components/inputs/OutlinedInput/index.js +2 -0
  76. package/dist/src/components/inputs/Radio/Radio.d.ts +4 -0
  77. package/dist/src/components/inputs/Radio/Radio.js +4 -0
  78. package/dist/src/components/inputs/Radio/Radio.theme.d.ts +11 -0
  79. package/dist/src/components/inputs/Radio/Radio.theme.js +35 -0
  80. package/dist/src/components/inputs/Radio/index.d.ts +1 -0
  81. package/dist/src/components/{navigation/TabList → inputs/Radio}/index.js +1 -1
  82. package/dist/src/components/inputs/Select/Select.theme.d.ts +2 -3
  83. package/dist/src/components/inputs/Select/Select.theme.js +6 -33
  84. package/dist/src/components/inputs/Switch/Switch.theme.js +125 -49
  85. package/dist/src/components/inputs/TextField/TextField.theme.d.ts +2 -3
  86. package/dist/src/components/inputs/TextField/TextField.theme.js +2 -26
  87. package/dist/src/components/navigation/Breadcrumbs/Breadcrumbs.d.ts +4 -0
  88. package/dist/src/components/navigation/Breadcrumbs/Breadcrumbs.js +5 -0
  89. package/dist/src/components/navigation/Breadcrumbs/Breadcrumbs.theme.d.ts +11 -0
  90. package/dist/src/components/navigation/Breadcrumbs/Breadcrumbs.theme.js +23 -0
  91. package/dist/src/components/navigation/Breadcrumbs/Crumb.d.ts +10 -0
  92. package/dist/src/components/navigation/Breadcrumbs/Crumb.js +10 -0
  93. package/dist/src/components/navigation/Breadcrumbs/index.d.ts +1 -0
  94. package/dist/src/components/navigation/Breadcrumbs/index.js +2 -0
  95. package/dist/src/components/navigation/Drawer/Drawer.theme.d.ts +1 -1
  96. package/dist/src/components/navigation/Drawer/Drawer.theme.js +50 -6
  97. package/dist/src/components/navigation/Link/Link.theme.d.ts +11 -2
  98. package/dist/src/components/navigation/Link/Link.theme.js +66 -9
  99. package/dist/src/components/navigation/Menu/Menu.theme.d.ts +2 -3
  100. package/dist/src/components/navigation/Menu/Menu.theme.js +6 -11
  101. package/dist/src/components/navigation/MenuItem/MenuItem.theme.d.ts +2 -4
  102. package/dist/src/components/navigation/MenuItem/MenuItem.theme.js +8 -8
  103. package/dist/src/components/navigation/Pagination/Pagination.theme.d.ts +1 -1
  104. package/dist/src/components/navigation/Pagination/Pagination.theme.js +11 -3
  105. package/dist/src/components/navigation/PaginationItem/PaginationItem.theme.js +65 -10
  106. package/dist/src/components/navigation/PaginationItem/components/PaginationIcons.d.ts +4 -0
  107. package/dist/src/components/navigation/PaginationItem/components/PaginationIcons.js +8 -0
  108. package/dist/src/components/navigation/PaginationItem/components/index.d.ts +1 -0
  109. package/dist/src/components/navigation/PaginationItem/components/index.js +2 -0
  110. package/dist/src/components/navigation/Tab/Tab.theme.d.ts +7 -1
  111. package/dist/src/components/navigation/Tab/Tab.theme.js +52 -13
  112. package/dist/src/components/navigation/Tabs/Tabs.d.ts +3 -0
  113. package/dist/src/components/navigation/Tabs/Tabs.js +4 -0
  114. package/dist/src/components/navigation/Tabs/Tabs.theme.d.ts +16 -0
  115. package/dist/src/components/navigation/Tabs/Tabs.theme.js +55 -0
  116. package/dist/src/components/navigation/Tabs/index.d.ts +1 -0
  117. package/dist/src/components/navigation/Tabs/index.js +2 -0
  118. package/dist/src/components/surfaces/Accordion/Accordion.theme.js +54 -22
  119. package/dist/src/components/surfaces/Accordion/AccordionDetails.theme.d.ts +10 -0
  120. package/dist/src/components/surfaces/Accordion/AccordionDetails.theme.js +19 -0
  121. package/dist/src/components/surfaces/Accordion/AccordionSummary.theme.d.ts +10 -0
  122. package/dist/src/components/surfaces/Accordion/AccordionSummary.theme.js +37 -0
  123. package/dist/src/components/surfaces/Accordion/index.d.ts +2 -0
  124. package/dist/src/components/surfaces/Accordion/index.js +2 -0
  125. package/dist/src/components/surfaces/Card/Card.theme.js +1 -1
  126. package/dist/src/components/surfaces/Paper/Paper.theme.d.ts +16 -1
  127. package/dist/src/components/surfaces/Paper/Paper.theme.js +21 -7
  128. package/dist/src/components/surfaces/Paper/Paper.tokens.d.ts +8 -0
  129. package/dist/src/components/surfaces/Paper/Paper.tokens.js +50 -0
  130. package/dist/src/components/surfaces/Paper/Paper.variants.d.ts +4 -0
  131. package/dist/src/components/surfaces/Paper/Paper.variants.js +3 -0
  132. package/dist/src/components/surfaces/Popover/Popover.d.ts +4 -0
  133. package/dist/src/components/surfaces/Popover/Popover.js +4 -0
  134. package/dist/src/components/surfaces/Popover/Popover.theme.d.ts +9 -0
  135. package/dist/src/components/surfaces/Popover/Popover.theme.js +14 -0
  136. package/dist/src/components/surfaces/Popover/index.d.ts +1 -0
  137. package/dist/src/components/surfaces/Popover/index.js +2 -0
  138. package/dist/src/components/utils/Backdrop/Backdrop.d.ts +3 -0
  139. package/dist/src/components/utils/Backdrop/Backdrop.js +4 -0
  140. package/dist/src/components/utils/Backdrop/Backdrop.theme.d.ts +11 -0
  141. package/dist/src/components/utils/Backdrop/Backdrop.theme.js +17 -0
  142. package/dist/src/components/utils/Backdrop/index.d.ts +1 -0
  143. package/dist/src/components/utils/Backdrop/index.js +2 -0
  144. package/dist/src/providers/WebProsTheme.d.ts +1 -0
  145. package/dist/src/providers/WebProsTheme.js +11 -5
  146. package/dist/src/shared/rippleEnterKeyframe.d.ts +6 -0
  147. package/dist/src/shared/rippleEnterKeyframe.js +12 -0
  148. package/dist/src/shared/viewContext/index.d.ts +1 -0
  149. package/dist/src/shared/viewContext/index.js +2 -0
  150. package/dist/src/shared/viewContext/viewContext.d.ts +4 -0
  151. package/dist/src/shared/viewContext/viewContext.js +2 -0
  152. package/dist/src/style/additional-color-palette.d.ts +1 -3
  153. package/dist/src/style/additional-color-palette.js +3 -6
  154. package/dist/src/style/custom-color-palette.js +50 -52
  155. package/dist/src/tokens/ThemeColorTokens.d.ts +11 -93
  156. package/dist/src/tokens/ThemeColorTokens.js +4 -168
  157. package/dist/src/tokens/ThemeScheme.d.ts +0 -3
  158. package/dist/src/tokens/ThemeScheme.js +0 -2
  159. package/dist/src/tokens/colors/Dark.d.ts +16 -0
  160. package/dist/src/tokens/colors/Dark.js +1398 -0
  161. package/dist/src/tokens/colors/Light.d.ts +16 -0
  162. package/dist/src/tokens/colors/Light.js +1398 -0
  163. package/dist/src/tokens/colors/index.d.ts +7 -0
  164. package/dist/src/tokens/colors/index.js +4 -0
  165. package/dist/src/tokens/colors/inverseSchemas.d.ts +40 -0
  166. package/dist/src/tokens/colors/inverseSchemas.js +3 -0
  167. package/dist/src/tokens/colors/inverseSchemes.d.ts +53 -0
  168. package/dist/src/tokens/colors/inverseSchemes.js +3 -0
  169. package/dist/src/tokens/colors/inverseStateLayers.d.ts +174 -0
  170. package/dist/src/tokens/colors/inverseStateLayers.js +3 -0
  171. package/dist/src/tokens/colors/schemas.d.ts +111 -0
  172. package/dist/src/tokens/colors/schemas.js +3 -0
  173. package/dist/src/tokens/colors/schemes.d.ts +111 -0
  174. package/dist/src/tokens/colors/schemes.js +3 -0
  175. package/dist/src/tokens/colors/stateLayers.d.ts +456 -0
  176. package/dist/src/tokens/colors/stateLayers.js +3 -0
  177. package/dist/src/tokens/colors/types.d.ts +9 -0
  178. package/dist/src/tokens/colors/types.js +2 -0
  179. package/dist/src/tokens/index.d.ts +6 -2
  180. package/dist/src/tokens/index.js +2 -1
  181. package/dist/src/tokens/legacyColors/LegacyDark.d.ts +2 -0
  182. package/dist/src/tokens/legacyColors/LegacyDark.js +88 -0
  183. package/dist/src/tokens/legacyColors/LegacyLight.d.ts +2 -0
  184. package/dist/src/tokens/legacyColors/LegacyLight.js +86 -0
  185. package/dist/src/tokens/legacyColors/ThemeColorTokensLegacy.d.ts +74 -0
  186. package/dist/src/tokens/legacyColors/ThemeColorTokensLegacy.js +2 -0
  187. package/dist/src/tokens/legacyColors/additionalColors/additionalColors.d.ts +21 -0
  188. package/dist/src/tokens/legacyColors/additionalColors/additionalColors.js +2 -0
  189. package/dist/src/tokens/{additionalColors → legacyColors/additionalColors}/index.d.ts +1 -0
  190. package/dist/src/tokens/{additionalColors → legacyColors/additionalColors}/index.js +1 -0
  191. package/dist/src/tokens/legacyColors/index.d.ts +2 -0
  192. package/dist/src/tokens/legacyColors/index.js +3 -0
  193. package/dist/src/tokens/shadows/index.d.ts +12 -0
  194. package/dist/src/tokens/shadows/index.js +112 -0
  195. package/dist/src/tokens/typography/index.d.ts +2 -0
  196. package/dist/src/tokens/typography/index.js +4 -0
  197. package/dist/src/tokens/typography/typescale.d.ts +28 -0
  198. package/dist/src/tokens/typography/typescale.js +26 -0
  199. package/dist/src/tokens/typography/typography.d.ts +2 -0
  200. package/dist/src/tokens/typography/typography.js +156 -0
  201. package/dist/src/utils/flatten.d.ts +1 -0
  202. package/dist/src/utils/flatten.js +12 -0
  203. package/dist/src/utils/getMUIComponents.js +2 -2
  204. package/dist/src/utils/getMUIPalette.d.ts +4 -9
  205. package/dist/src/utils/getMUIPalette.js +49 -25
  206. package/dist/src/utils/getMUIThemeCustoimzationType.d.ts +31 -0
  207. package/dist/src/utils/getMUIThemeCustoimzationType.js +2 -0
  208. package/dist/src/utils/getMUITypography.d.ts +2 -0
  209. package/dist/src/utils/getMUITypography.js +5 -0
  210. package/dist/src/utils/getStateLayerColor.d.ts +37 -0
  211. package/dist/src/utils/getStateLayerColor.js +43 -1
  212. package/dist/src/utils/index.d.ts +1 -1
  213. package/dist/src/utils/index.js +1 -1
  214. package/dist/src/utils/patchMUIShadows.js +4 -3
  215. package/package.json +6 -4
  216. package/dist/src/components/inputs/Autocomplete/components/AutocompletePopupIcon.d.ts +0 -1
  217. package/dist/src/components/navigation/PaginationItem/PaginationItem.d.ts +0 -3
  218. package/dist/src/components/navigation/PaginationItem/PaginationItem.js +0 -4
  219. package/dist/src/components/navigation/TabList/TabList.d.ts +0 -3
  220. package/dist/src/components/navigation/TabList/TabList.js +0 -4
  221. package/dist/src/components/navigation/TabList/TabList.theme.d.ts +0 -10
  222. package/dist/src/components/navigation/TabList/TabList.theme.js +0 -17
  223. package/dist/src/components/navigation/TabList/index.d.ts +0 -1
  224. package/dist/src/hooks/useTonalPalette.d.ts +0 -3
  225. package/dist/src/hooks/useTonalPalette.js +0 -32
  226. package/dist/src/providers/ThemeSchemeProvider.d.ts +0 -12
  227. package/dist/src/providers/ThemeSchemeProvider.js +0 -29
  228. package/dist/src/tokens/TonalPalette.d.ts +0 -10
  229. package/dist/src/tokens/TonalPalette.js +0 -10
  230. package/dist/src/utils/generateTokens.d.ts +0 -4
  231. package/dist/src/utils/generateTokens.js +0 -107
  232. /package/dist/src/tokens/{Tone.d.ts → legacyColors/Tone.d.ts} +0 -0
  233. /package/dist/src/tokens/{Tone.js → legacyColors/Tone.js} +0 -0
@@ -0,0 +1,31 @@
1
+ import { Schemes, StateLayers, InverseSchemes, InverseStateLayers } from '../tokens/colors';
2
+ import { TypescaleTypographyVariants } from '../index';
3
+ import { BlendSchemaWithStateLayerFunction } from '../utils/getStateLayerColor';
4
+ declare module '@mui/material/styles' {
5
+ interface TypographyVariants extends TypescaleTypographyVariants {
6
+ }
7
+ interface TypographyVariantsOptions extends TypescaleTypographyVariants {
8
+ }
9
+ }
10
+ declare module '@mui/material/styles/createTheme' {
11
+ interface Theme {
12
+ colors: {
13
+ schemes: Schemes;
14
+ stateLayers: StateLayers;
15
+ inverseSchemes: InverseSchemes;
16
+ inverseStateLayers: InverseStateLayers;
17
+ blendSchemaWithStateLayer: BlendSchemaWithStateLayerFunction;
18
+ blendInverseSchemaWithStateLayer: BlendSchemaWithStateLayerFunction;
19
+ };
20
+ }
21
+ interface ThemeOptions {
22
+ colors: {
23
+ schemes: Schemes;
24
+ stateLayers: StateLayers;
25
+ inverseSchemes: InverseSchemes;
26
+ inverseStateLayers: InverseStateLayers;
27
+ blendSchemaWithStateLayer: BlendSchemaWithStateLayerFunction;
28
+ blendInverseSchemaWithStateLayer: BlendSchemaWithStateLayerFunction;
29
+ };
30
+ }
31
+ }
@@ -0,0 +1,2 @@
1
+ // Copyright 2025 WebPros International GmbH. All rights reserved.
2
+ export {};
@@ -0,0 +1,2 @@
1
+ import { TypescaleTypographyVariants } from '../tokens/typography';
2
+ export declare const getMUITypography: () => TypescaleTypographyVariants;
@@ -0,0 +1,5 @@
1
+ import { typographyVariants, } from '../tokens/typography';
2
+ // Copyright 2025 WebPros International GmbH. All rights reserved.
3
+ export const getMUITypography = () => {
4
+ return typographyVariants;
5
+ };
@@ -1,3 +1,8 @@
1
+ import { SchemesKey, InverseSchemesKey, StateLayersKey, InverseStateLayersKey, SchemesGenerated, InverseSchemesGenerated, StateLayersGenerated, InverseStateLayersGenerated } from '../tokens/colors';
2
+ /**
3
+ * @deprecated Use blendSchemaWithStateLayer or color.schemes instead
4
+ * We're migrating to tokens based values of states. Do not use that enum in new code.
5
+ */
1
6
  export declare const StateLayerOpacity: {
2
7
  readonly 0.08: 0.08;
3
8
  readonly 0.12: 0.12;
@@ -6,7 +11,15 @@ export declare const StateLayerOpacity: {
6
11
  readonly 0.28: 0.28;
7
12
  readonly 0.48: 0.48;
8
13
  };
14
+ /**
15
+ * @deprecated Use blendSchemaWithStateLayer or color.schemes instead
16
+ * We're migrating to tokens based values of states. Do not use that enum in new code.
17
+ */
9
18
  export type StateLayerOpacityKey = keyof typeof StateLayerOpacity;
19
+ /**
20
+ * @deprecated Use blendSchemaWithStateLayer or color.schemes instead
21
+ * We're migrating to tokens based values of states. Do not use that enum in new code.
22
+ */
10
23
  export declare enum StateLayer {
11
24
  Hover = 0.08,
12
25
  Focus = 0.12,
@@ -16,10 +29,34 @@ export declare enum StateLayer {
16
29
  Disabled = 0.08,
17
30
  Active = 0.12
18
31
  }
32
+ /**
33
+ * @deprecated Use blendSchemaWithStateLayer or color.schemes instead
34
+ * We're migrating to tokens based values of states. Do not use that enum in new code.
35
+ */
19
36
  export declare enum OnStateLayer {
20
37
  Disabled = 0.38,
21
38
  Active = 1
22
39
  }
40
+ /**
41
+ * @deprecated Use blendSchemaWithStateLayer or color.schemes instead
42
+ * We're migrating to tokens based values of states. Do not use that enum in new code.
43
+ */
23
44
  export declare const getStateLayerColor: (state: StateLayer, containerColor: string, contentColor?: string) => string;
45
+ /**
46
+ * @deprecated Use blendSchemaWithStateLayer or color.schemes instead
47
+ * We're migrating to tokens based values of states. Do not use that enum in new code.
48
+ */
24
49
  export declare const getOnStateLayerColor: (state: OnStateLayer, onContainerColor: string, containerColor?: string) => string;
50
+ /**
51
+ * @deprecated Use blendSchemaWithStateLayer or color.schemes instead
52
+ * We're migrating to tokens based values of states. Do not use that enum in new code.
53
+ */
25
54
  export declare const getStateLayerColorByOpacityKey: (opacity: StateLayerOpacityKey, color: string) => string;
55
+ export type BlendSchemaWithStateLayerFunction = (schemaKey: SchemesKey | InverseSchemesKey, stateLayerKey: StateLayersKey | InverseStateLayersKey) => string;
56
+ export declare const getBlendSchemaWithStateLayer: (schemesGenerated: SchemesGenerated | InverseSchemesGenerated, stateLayersGenerated: StateLayersGenerated | InverseStateLayersGenerated) => BlendSchemaWithStateLayerFunction;
57
+ export declare const getInverseBlendSchemaWithStateLayer: (schemesGenerated: InverseSchemesGenerated, stateLayersGenerated: InverseStateLayersGenerated) => BlendSchemaWithStateLayerFunction;
58
+ /**
59
+ * Blends a schema color by color-mix
60
+ * Color mix is 2023 Baseline https://developer.mozilla.org/en-US/docs/Web/CSS/color_value/color-mix
61
+ */
62
+ export declare const blendSchemaWithStateLayer: (schemesGenerated: SchemesGenerated | InverseSchemesGenerated, stateLayersGenerated: StateLayersGenerated | InverseStateLayersGenerated) => (schemaKey: SchemesKey | InverseSchemesKey, stateLayerKey: StateLayersKey | InverseStateLayersKey) => string;
@@ -2,7 +2,10 @@
2
2
  import { Blend, argbFromHex, hexFromArgb } from '@material/material-color-utilities';
3
3
  import { alpha } from '@mui/material';
4
4
  /* eslint-disable @typescript-eslint/no-duplicate-enum-values -- Need same value*/
5
- // We should have ONLY those values of opacity inside the theme
5
+ /**
6
+ * @deprecated Use blendSchemaWithStateLayer or color.schemes instead
7
+ * We're migrating to tokens based values of states. Do not use that enum in new code.
8
+ */
6
9
  export const StateLayerOpacity = {
7
10
  0.08: 0.08,
8
11
  0.12: 0.12,
@@ -11,6 +14,10 @@ export const StateLayerOpacity = {
11
14
  0.28: 0.28,
12
15
  0.48: 0.48,
13
16
  };
17
+ /**
18
+ * @deprecated Use blendSchemaWithStateLayer or color.schemes instead
19
+ * We're migrating to tokens based values of states. Do not use that enum in new code.
20
+ */
14
21
  export var StateLayer;
15
22
  (function (StateLayer) {
16
23
  StateLayer[StateLayer["Hover"] = 0.08] = "Hover";
@@ -21,16 +28,51 @@ export var StateLayer;
21
28
  StateLayer[StateLayer["Disabled"] = 0.08] = "Disabled";
22
29
  StateLayer[StateLayer["Active"] = 0.12] = "Active";
23
30
  })(StateLayer || (StateLayer = {}));
31
+ /**
32
+ * @deprecated Use blendSchemaWithStateLayer or color.schemes instead
33
+ * We're migrating to tokens based values of states. Do not use that enum in new code.
34
+ */
24
35
  export var OnStateLayer;
25
36
  (function (OnStateLayer) {
26
37
  OnStateLayer[OnStateLayer["Disabled"] = 0.38] = "Disabled";
27
38
  OnStateLayer[OnStateLayer["Active"] = 1] = "Active";
28
39
  })(OnStateLayer || (OnStateLayer = {}));
40
+ /**
41
+ * @deprecated Use blendSchemaWithStateLayer or color.schemes instead
42
+ * We're migrating to tokens based values of states. Do not use that enum in new code.
43
+ */
29
44
  export const getStateLayerColor = (state, containerColor, contentColor) => contentColor
30
45
  ? hexFromArgb(Blend.cam16Ucs(argbFromHex(containerColor), argbFromHex(contentColor), state))
31
46
  : alpha(containerColor, state);
47
+ /**
48
+ * @deprecated Use blendSchemaWithStateLayer or color.schemes instead
49
+ * We're migrating to tokens based values of states. Do not use that enum in new code.
50
+ */
32
51
  export const getOnStateLayerColor = (state, onContainerColor, containerColor) => containerColor
33
52
  ? hexFromArgb(Blend.cam16Ucs(argbFromHex(onContainerColor), argbFromHex(containerColor), state))
34
53
  : alpha(onContainerColor, state);
35
54
  // Was introduced due to fact that StateLayer enums does not correlate with values presented. So State layer is more like "const opacity value" rather then actual state
55
+ /**
56
+ * @deprecated Use blendSchemaWithStateLayer or color.schemes instead
57
+ * We're migrating to tokens based values of states. Do not use that enum in new code.
58
+ */
36
59
  export const getStateLayerColorByOpacityKey = (opacity, color) => alpha(color, StateLayerOpacity[opacity]);
60
+ // Function to get the blend function
61
+ export const getBlendSchemaWithStateLayer = (schemesGenerated, stateLayersGenerated) => blendSchemaWithStateLayer(schemesGenerated, stateLayersGenerated);
62
+ export const getInverseBlendSchemaWithStateLayer = (schemesGenerated, stateLayersGenerated) => blendSchemaWithStateLayer(schemesGenerated, stateLayersGenerated);
63
+ /**
64
+ * Blends a schema color by color-mix
65
+ * Color mix is 2023 Baseline https://developer.mozilla.org/en-US/docs/Web/CSS/color_value/color-mix
66
+ */
67
+ export const blendSchemaWithStateLayer = (schemesGenerated, stateLayersGenerated) => (schemaKey, stateLayerKey) => {
68
+ // Get the GeneratedRgba values directly using the keys
69
+ const rgb1 = schemesGenerated[schemaKey];
70
+ const rgb2 = stateLayersGenerated[stateLayerKey];
71
+ // Convert RGBA objects to color strings
72
+ const schemaColor = `rgba(${rgb1.r}, ${rgb1.g}, ${rgb1.b}, ${rgb1.a})`;
73
+ const stateLayerColor = `rgba(${rgb2.r}, ${rgb2.g}, ${rgb2.b}, 1)`; // Remove alpha from state layer
74
+ // Get the amount from the state layer opacity (alpha channel as percentage)
75
+ const percentage = Math.round(rgb2.a * 100);
76
+ // Use CSS color-mix for blending
77
+ return `color-mix(in srgb, ${schemaColor} 100%, ${stateLayerColor} ${percentage}%)`;
78
+ };
@@ -1,6 +1,6 @@
1
- export * from './generateTokens';
2
1
  export * from './getMUIComponents';
3
2
  export * from './getMUIPalette';
4
3
  export * from './getMuiLocaleByCode';
4
+ export * from './getMUIThemeCustoimzationType';
5
5
  export * from './getStateLayerColor';
6
6
  export * from './patchMUIShadows';
@@ -1,7 +1,7 @@
1
1
  // Copyright 2025 WebPros International GmbH. All rights reserved.
2
- export * from './generateTokens';
3
2
  export * from './getMUIComponents';
4
3
  export * from './getMUIPalette';
5
4
  export * from './getMuiLocaleByCode';
5
+ export * from './getMUIThemeCustoimzationType';
6
6
  export * from './getStateLayerColor';
7
7
  export * from './patchMUIShadows';
@@ -1,5 +1,6 @@
1
- // Copyright 2025 WebPros International GmbH. All rights reserved.
2
- import { alpha } from '@mui/material';
1
+ import { muiShadows } from '../tokens/shadows';
3
2
  export const patchMUIShadows = (theme) => {
4
- theme.shadows[2] = `0px 0px 2px ${alpha(theme.palette.shadow.main, 0.08)}, 0px 8px 24px ${alpha(theme.palette.shadow.main, 0.08)}`;
3
+ muiShadows.forEach((shadowValue, index) => {
4
+ theme.shadows[index] = shadowValue;
5
+ });
5
6
  };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@webpros/mui-theme",
3
3
  "description": "MUI v6 theme for WebPros products",
4
- "version": "0.1.5",
4
+ "version": "0.2.0",
5
5
  "license": "MIT",
6
6
  "repository": {
7
7
  "type": "git",
@@ -42,7 +42,8 @@
42
42
  "eslint": "eslint",
43
43
  "prettier:test": "prettier --check \"**/*.{ts,tsx}\"",
44
44
  "prettier:write": "prettier --write \"**/*.{ts,tsx}\"",
45
- "typecheck": "tsc --noEmit"
45
+ "typecheck": "tsc --noEmit",
46
+ "extract-tokens": "node tools/extractM3Tokens.js"
46
47
  },
47
48
  "peerDependencies": {
48
49
  "@emotion/react": "^11.14.0",
@@ -93,12 +94,13 @@
93
94
  "react": "^18.3.1",
94
95
  "react-dom": "^18.3.1",
95
96
  "storybook": "^9.1.16",
97
+ "storybook-addon-pseudo-states": "^10.0.3",
96
98
  "tsc-alias": "^1.8.16",
97
99
  "typescript": "~5.9.3",
98
100
  "typescript-eslint": "^8.46.1",
101
+ "usehooks-ts": "^3.1.1",
99
102
  "vite": "^7.1.10",
100
- "vite-plugin-dts": "^4.5.4",
101
- "usehooks-ts": "^3.1.1"
103
+ "vite-plugin-dts": "^4.5.4"
102
104
  },
103
105
  "browserslist": [
104
106
  "last 2 versions",
@@ -1 +0,0 @@
1
- export declare const AutocompletePopupIcon: import("react/jsx-runtime").JSX.Element;
@@ -1,3 +0,0 @@
1
- import './PaginationItem.theme';
2
- export declare const PaginationItem: import("@mui/material/OverridableComponent").OverridableComponent<import("@mui/material").PaginationItemTypeMap<{}, "div">>;
3
- export type PaginationItemComponentType = typeof PaginationItem;
@@ -1,4 +0,0 @@
1
- // Copyright 2025 WebPros International GmbH. All rights reserved.
2
- import { PaginationItem as MuiPaginationItem } from '@mui/material';
3
- import './PaginationItem.theme';
4
- export const PaginationItem = MuiPaginationItem;
@@ -1,3 +0,0 @@
1
- import './TabList.theme';
2
- export declare const TabList: import("@mui/material/OverridableComponent").OverridableComponent<import("@mui/material").TabsTypeMap<{}, "div">>;
3
- export type TabListComponentType = typeof TabList;
@@ -1,4 +0,0 @@
1
- // Copyright 2025 WebPros International GmbH. All rights reserved.
2
- import { Tabs as MuiTabList } from '@mui/material';
3
- import './TabList.theme';
4
- export const TabList = MuiTabList;
@@ -1,10 +0,0 @@
1
- import { Theme, ComponentsOverrides, ComponentsProps } from '@mui/material';
2
- interface M3TabList {
3
- MuiTabs: {
4
- defaultProps?: ComponentsProps['MuiTabs'];
5
- styleOverrides?: ComponentsOverrides<Theme>['MuiTabs'];
6
- };
7
- }
8
- export declare const getTabList: (theme: Theme) => M3TabList;
9
- declare const _default: {};
10
- export default _default;
@@ -1,17 +0,0 @@
1
- export const getTabList = (theme) => {
2
- const { palette: _ } = theme;
3
- return {
4
- MuiTabs: {
5
- styleOverrides: {
6
- root: {
7
- '& > .MuiTabs-scroller > .MuiTabs-indicator': {
8
- height: '3px',
9
- borderTopLeftRadius: '3px',
10
- borderTopRightRadius: '3px',
11
- },
12
- },
13
- },
14
- },
15
- };
16
- };
17
- export default {};
@@ -1 +0,0 @@
1
- export * from './TabList.theme';
@@ -1,3 +0,0 @@
1
- import { TonalPalette } from '../tokens/TonalPalette';
2
- export declare const TONAL_PALETTE_KEY = "TonalPaletteKey";
3
- export declare const useTonalPalette: () => readonly [TonalPalette, (hexColor: string) => void];
@@ -1,32 +0,0 @@
1
- // Copyright 2025 WebPros International GmbH. All rights reserved.
2
- import { argbFromHex, hexFromArgb, themeFromSourceColor } from '@material/material-color-utilities';
3
- import { useLayoutEffect, useState } from 'react';
4
- import { TonalPaletteDefault } from '../tokens/TonalPalette';
5
- export const TONAL_PALETTE_KEY = 'TonalPaletteKey';
6
- const LEVELS = [
7
- 0, 4, 6, 10, 12, 17, 20, 22, 24, 30, 40, 50, 60, 70, 80, 87, 90, 92, 94, 95, 96, 98, 99, 100,
8
- ];
9
- export const useTonalPalette = () => {
10
- const [tonalPalette, setTonalPalette] = useState(TonalPaletteDefault);
11
- useLayoutEffect(() => {
12
- if (localStorage.getItem(TONAL_PALETTE_KEY)) {
13
- const localTonalPalette = JSON.parse(localStorage.getItem(TONAL_PALETTE_KEY) || '{}');
14
- setTonalPalette(localTonalPalette);
15
- }
16
- }, []);
17
- const generatePalette = (hexColor) => {
18
- const intColor = argbFromHex(hexColor);
19
- const { palettes } = themeFromSourceColor(intColor);
20
- const tones = {};
21
- for (const [key, palette] of Object.entries(palettes)) {
22
- const tonelevel = {};
23
- for (const level of LEVELS) {
24
- tonelevel[level] = hexFromArgb(palette.tone(level));
25
- }
26
- tones[key] = tonelevel;
27
- }
28
- setTonalPalette(tones);
29
- localStorage.setItem(TONAL_PALETTE_KEY, JSON.stringify(tones));
30
- };
31
- return [tonalPalette, generatePalette];
32
- };
@@ -1,12 +0,0 @@
1
- import { FC } from 'react';
2
- import { ThemeScheme } from '../tokens/ThemeScheme';
3
- export type ThemeSchemeContextType = {
4
- generateScheme: (hexColor: string) => void;
5
- themeScheme: ThemeScheme;
6
- };
7
- export type ThemeSchemeProviderProps = {
8
- children?: React.ReactNode;
9
- };
10
- export declare const ThemeSchemeContext: import("react").Context<ThemeSchemeContextType>;
11
- declare const ThemeSchemeProvider: FC<ThemeSchemeProviderProps>;
12
- export default ThemeSchemeProvider;
@@ -1,29 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- // Copyright 2025 WebPros International GmbH. All rights reserved.
3
- import { createContext, useCallback, useLayoutEffect, useMemo, useState } from 'react';
4
- import { ThemeSchemeDefault } from '../tokens/ThemeScheme';
5
- import { useTonalPalette } from '../hooks/useTonalPalette';
6
- import { generateDesignTokens } from '../utils/generateTokens';
7
- export const ThemeSchemeContext = createContext({
8
- generateScheme: () => { },
9
- themeScheme: ThemeSchemeDefault,
10
- });
11
- const ThemeSchemeProvider = ({ children }) => {
12
- const [tonalPalette, generatePalette] = useTonalPalette();
13
- const [themeScheme, setThemeScheme] = useState(ThemeSchemeDefault);
14
- useLayoutEffect(() => {
15
- const lightTokens = generateDesignTokens('light', tonalPalette);
16
- const darkTokens = generateDesignTokens('dark', tonalPalette);
17
- setThemeScheme({
18
- light: lightTokens,
19
- dark: darkTokens,
20
- tones: tonalPalette,
21
- });
22
- }, [tonalPalette]);
23
- const generateScheme = useCallback((hexColor) => {
24
- generatePalette(hexColor);
25
- }, [generatePalette]);
26
- const value = useMemo(() => ({ generateScheme, themeScheme }), [generateScheme, themeScheme]);
27
- return _jsx(ThemeSchemeContext.Provider, { value: value, children: children });
28
- };
29
- export default ThemeSchemeProvider;
@@ -1,10 +0,0 @@
1
- import { Tone } from './Tone';
2
- export type TonalPalette = {
3
- primary: Tone;
4
- secondary: Tone;
5
- tertiary: Tone;
6
- neutral: Tone;
7
- neutralVariant: Tone;
8
- error: Tone;
9
- };
10
- export declare const TonalPaletteDefault: TonalPalette;
@@ -1,10 +0,0 @@
1
- // Copyright 2025 WebPros International GmbH. All rights reserved.
2
- import { ErrorDefault, NeutralDefault, NeutralVariantDefault, PrimaryDefault, SecondaryDefault, TertiaryDefault, } from './Tone';
3
- export const TonalPaletteDefault = {
4
- primary: PrimaryDefault,
5
- secondary: SecondaryDefault,
6
- tertiary: TertiaryDefault,
7
- neutral: NeutralDefault,
8
- neutralVariant: NeutralVariantDefault,
9
- error: ErrorDefault,
10
- };
@@ -1,4 +0,0 @@
1
- import { ThemeMode } from '../tokens/ThemeMode';
2
- import { ThemeColorTokens } from '../tokens/ThemeColorTokens';
3
- import { TonalPalette } from '../tokens/TonalPalette';
4
- export declare const generateDesignTokens: (themeMode: ThemeMode, tonalPalette: TonalPalette) => ThemeColorTokens;
@@ -1,107 +0,0 @@
1
- // Copyright 2025 WebPros International GmbH. All rights reserved.
2
- import { argbFromHex, hexFromArgb, themeFromSourceColor } from '@material/material-color-utilities';
3
- import { additionalColors } from '../tokens/additionalColors';
4
- /* eslint-disable @typescript-eslint/no-non-null-assertion -- We are sure that Color palette has all possible levels */
5
- const getColorToken = (themeMode, palette, lightLevel, darkLevel) => palette[themeMode === 'light' ? lightLevel : darkLevel];
6
- // Generating of colors is not supported for now - we just use ThemeColorTokens
7
- export const generateDesignTokens = (themeMode, tonalPalette) => {
8
- const { primary, secondary, tertiary, neutral, neutralVariant, error } = tonalPalette;
9
- const { customColors: customStateColors } = themeFromSourceColor(argbFromHex(tonalPalette.primary[40]), [
10
- {
11
- name: 'info',
12
- value: argbFromHex('#0288d1'),
13
- blend: true,
14
- },
15
- {
16
- name: 'success',
17
- value: argbFromHex('#2e7d32'),
18
- blend: true,
19
- },
20
- {
21
- name: 'warning',
22
- value: argbFromHex('#f59e0b'),
23
- blend: true,
24
- },
25
- {
26
- name: 'supportive',
27
- value: argbFromHex('#546E7A'),
28
- blend: true,
29
- },
30
- ]);
31
- return {
32
- primary: getColorToken(themeMode, primary, 40, 80),
33
- onPrimary: getColorToken(themeMode, primary, 100, 20),
34
- primaryContainer: getColorToken(themeMode, primary, 90, 30),
35
- onPrimaryContainer: getColorToken(themeMode, primary, 10, 90),
36
- secondary: getColorToken(themeMode, secondary, 40, 80),
37
- onSecondary: getColorToken(themeMode, secondary, 100, 20),
38
- secondaryContainer: getColorToken(themeMode, secondary, 90, 30),
39
- onSecondaryContainer: getColorToken(themeMode, secondary, 10, 90),
40
- tertiary: getColorToken(themeMode, tertiary, 40, 80),
41
- onTertiary: getColorToken(themeMode, tertiary, 100, 20),
42
- tertiaryContainer: getColorToken(themeMode, tertiary, 90, 30),
43
- onTertiaryContainer: getColorToken(themeMode, tertiary, 10, 90),
44
- error: getColorToken(themeMode, error, 40, 80),
45
- onError: getColorToken(themeMode, error, 100, 20),
46
- errorContainer: getColorToken(themeMode, error, 90, 30),
47
- onErrorContainer: getColorToken(themeMode, error, 10, 90),
48
- primaryFixed: getColorToken(themeMode, primary, 90, 90),
49
- primaryFixedDim: getColorToken(themeMode, primary, 80, 80),
50
- onPrimaryFixed: getColorToken(themeMode, primary, 10, 10),
51
- onPrimaryFixedVariant: getColorToken(themeMode, primary, 30, 30),
52
- secondaryFixed: getColorToken(themeMode, secondary, 90, 90),
53
- secondaryFixedDim: getColorToken(themeMode, secondary, 80, 80),
54
- onSecondaryFixed: getColorToken(themeMode, secondary, 10, 10),
55
- onSecondaryFixedVariant: getColorToken(themeMode, secondary, 30, 30),
56
- tertiaryFixed: getColorToken(themeMode, tertiary, 90, 90),
57
- tertiaryFixedDim: getColorToken(themeMode, tertiary, 80, 80),
58
- onTertiaryFixed: getColorToken(themeMode, tertiary, 10, 10),
59
- onTertiaryFixedVariant: getColorToken(themeMode, tertiary, 30, 30),
60
- surface: getColorToken(themeMode, neutral, 98, 6),
61
- onSurface: getColorToken(themeMode, neutral, 10, 90),
62
- surfaceDim: getColorToken(themeMode, neutral, 87, 6),
63
- surfaceBright: getColorToken(themeMode, neutral, 98, 24),
64
- surfaceContainerLowest: getColorToken(themeMode, neutral, 100, 4),
65
- surfaceContainerLow: getColorToken(themeMode, neutral, 96, 10),
66
- surfaceContainer: getColorToken(themeMode, neutral, 94, 12),
67
- surfaceContainerHigh: getColorToken(themeMode, neutral, 92, 17),
68
- surfaceContainerHighest: getColorToken(themeMode, neutral, 90, 22),
69
- // surfaceVariant: getColorToken(themeMode, neutralVariant, 90, 30),
70
- onSurfaceVariant: getColorToken(themeMode, neutralVariant, 30, 80),
71
- outline: getColorToken(themeMode, neutralVariant, 50, 60),
72
- outlineVariant: getColorToken(themeMode, neutralVariant, 80, 30),
73
- inverseSurface: getColorToken(themeMode, neutral, 20, 90),
74
- inverseOnSurface: getColorToken(themeMode, neutral, 95, 20),
75
- inversePrimary: getColorToken(themeMode, primary, 80, 40),
76
- // inverseOnPrimary: getColorToken(themeMode, primary, 40, 80),
77
- shadow: getColorToken(themeMode, neutral, 0, 0),
78
- scrim: getColorToken(themeMode, neutral, 0, 0),
79
- // surfaceTintColor: getColorToken(themeMode, primary, 40, 80),
80
- background: getColorToken(themeMode, neutral, 98, 6),
81
- onBackground: getColorToken(themeMode, neutral, 10, 90),
82
- info: hexFromArgb(customStateColors[0][themeMode].color),
83
- onInfo: hexFromArgb(customStateColors[0][themeMode].onColor),
84
- infoContainer: hexFromArgb(customStateColors[0][themeMode].colorContainer),
85
- onInfoContainer: hexFromArgb(customStateColors[0][themeMode].onColorContainer),
86
- success: hexFromArgb(customStateColors[1][themeMode].color),
87
- onSuccess: hexFromArgb(customStateColors[1][themeMode].onColor),
88
- successContainer: hexFromArgb(customStateColors[1][themeMode].colorContainer),
89
- onSuccessContainer: hexFromArgb(customStateColors[1][themeMode].onColorContainer),
90
- warning: hexFromArgb(customStateColors[2][themeMode].color),
91
- onWarning: hexFromArgb(customStateColors[2][themeMode].onColor),
92
- warningContainer: hexFromArgb(customStateColors[2][themeMode].colorContainer),
93
- onWarningContainer: hexFromArgb(customStateColors[2][themeMode].onColorContainer),
94
- undefined: '#90A4AE',
95
- onUndefined: '#FFF',
96
- undefinedContainer: '#ECEFF1',
97
- onUndefinedContainer: '#263238',
98
- supportive: hexFromArgb(customStateColors[3][themeMode].color),
99
- additionalColors,
100
- infoFixedDim: '',
101
- errorFixedDim: '',
102
- surfaceVariant: '',
103
- surfaceTint: '',
104
- successFixedDim: '',
105
- warningFixedDim: '',
106
- };
107
- };