@mui/system 5.5.3 → 5.6.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.
- package/Box/Box.spec.d.ts +1 -1
- package/CHANGELOG.md +74 -0
- package/colorManipulator.d.ts +1 -0
- package/colorManipulator.js +15 -0
- package/createBox.spec.d.ts +1 -1
- package/createTheme/createSpacing.d.ts +10 -10
- package/cssVars/createCssVarsProvider.d.ts +23 -21
- package/cssVars/createCssVarsProvider.spec.d.ts +1 -1
- package/cssVars/createGetCssVar.d.ts +5 -5
- package/cssVars/cssVarsParser.d.ts +70 -70
- package/cssVars/cssVarsParser.js +7 -0
- package/cssVars/getInitColorSchemeScript.d.ts +12 -12
- package/cssVars/index.d.ts +2 -1
- package/cssVars/useCurrentColorScheme.d.ts +50 -50
- package/esm/colorManipulator.js +11 -0
- package/esm/cssVars/cssVarsParser.js +7 -0
- package/index.d.ts +1 -1
- package/index.js +1 -1
- package/index.spec.d.ts +1 -1
- package/legacy/colorManipulator.js +13 -0
- package/legacy/cssVars/cssVarsParser.js +7 -0
- package/legacy/index.js +1 -1
- package/modern/colorManipulator.js +11 -0
- package/modern/cssVars/cssVarsParser.js +7 -0
- package/modern/index.js +1 -1
- package/package.json +6 -6
- package/styleFunctionSx/styleFunctionSx.spec.d.ts +1 -1
package/Box/Box.spec.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export {};
|
|
1
|
+
export {};
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,79 @@
|
|
|
1
1
|
# [Versions](https://mui.com/versions/)
|
|
2
2
|
|
|
3
|
+
## 5.6.0
|
|
4
|
+
|
|
5
|
+
<!-- generated comparing v5.5.3..master -->
|
|
6
|
+
|
|
7
|
+
_Apr 5, 2022_
|
|
8
|
+
|
|
9
|
+
A big thanks to the 15 contributors who made this release possible. Here are some highlights ✨:
|
|
10
|
+
|
|
11
|
+
- 🧰 Update peer dependencies to support React 18 (#32063) @eps1lon
|
|
12
|
+
- 🚀 Added the experimental `CssVarsProvider` in `@mui/material` for generating theme CSS variables (#31138) @mnajdova
|
|
13
|
+
- 📣 Moved date and time pickers from the lab to MUI X (#31984) @flaviendelangle
|
|
14
|
+
- Several 🐛 bug fixes and 📚 documentation improvements
|
|
15
|
+
|
|
16
|
+
### `@mui/material@5.6.0`
|
|
17
|
+
|
|
18
|
+
- ​<!-- 25 -->[CssVarsProvider] Add experimental CssVarsProvider in @mui/material (#31138) @mnajdova
|
|
19
|
+
- ​<!-- 06 -->[Link] Fix `sx` color to support callback (#32123) @siriwatknp
|
|
20
|
+
- ​<!-- 05 -->[Link] Fix color transformation (#32045) @siriwatknp
|
|
21
|
+
- ​<!-- 04 -->[ListItemButton] Specified width so that text would ellide (#32083) @MatthijsMud
|
|
22
|
+
- ​<!-- 03 -->[TablePagination] Fixed the etEE locale (#32052) @raigoinabox
|
|
23
|
+
|
|
24
|
+
### `@mui/base@5.0.0-alpha.75`
|
|
25
|
+
|
|
26
|
+
- ​<!-- 31 -->[Badge] Simplify unstyled API (#31974) @michaldudak
|
|
27
|
+
|
|
28
|
+
### `@mui/codemod@5.6.0`
|
|
29
|
+
|
|
30
|
+
- ​<!-- 29 -->[codemod] Add v5.0.0/date-pickers-moved-to-x codemod (#31373) @flaviendelangle
|
|
31
|
+
|
|
32
|
+
### `@mui/lab@5.0.0-alpha.76`
|
|
33
|
+
|
|
34
|
+
- ​<!-- 24 -->[DatePicker] Remove date and time pickers from the lab (#31984) @flaviendelangle
|
|
35
|
+
|
|
36
|
+
### `@mui/joy@5.0.0-alpha.22`
|
|
37
|
+
|
|
38
|
+
- ​<!-- 07 -->[Joy] Add `Card` components (#32027) @siriwatknp
|
|
39
|
+
|
|
40
|
+
### Docs
|
|
41
|
+
|
|
42
|
+
- ​<!-- 30 -->[blog] New article for the date pickers migration to X (#31831) @flaviendelangle
|
|
43
|
+
- ​<!-- 33 -->[docs] Base Menu style revisions and final review (#32097) @samuelsycamore
|
|
44
|
+
- ​<!-- 32 -->[docs] Base Select style revisions and final review (#32095) @samuelsycamore
|
|
45
|
+
- ​<!-- 31 -->[docs] Base Input style revisions and final review (#32096) @samuelsycamore
|
|
46
|
+
- ​<!-- 30 -->[docs] Base Slider style revisions and final review (#32140) @samuelsycamore
|
|
47
|
+
- ​<!-- 29 -->[docs] Base Modal style revisions and final review (#32093) @samuelsycamore
|
|
48
|
+
- ​<!-- 28 -->[docs] Add page for CSS variables support in @mui/material (#32050) @mnajdova
|
|
49
|
+
- ​<!-- 27 -->[docs] Add TSS support for theme style overrides (#31918) @garronej
|
|
50
|
+
- ​<!-- 23 -->[docs] Simplify customization examples in ButtonUnstyled demos (#32092) @michaldudak
|
|
51
|
+
- ​<!-- 22 -->[docs] Fix linking issues for the redirects (#32101) @siriwatknp
|
|
52
|
+
- ​<!-- 21 -->[docs] Create the FormControl page (#32073) @michaldudak
|
|
53
|
+
- ​<!-- 20 -->[docs] Remove trap-focus from the navigation (#32079) @psjishnu
|
|
54
|
+
- ​<!-- 19 -->[docs] Add date-pickers product identifier (#32076) @siriwatknp
|
|
55
|
+
- ​<!-- 18 -->[docs] Move SwitchUnstyled docs to the Base space (#31964) @michaldudak
|
|
56
|
+
- ​<!-- 17 -->[docs] Add docs page for unstyled popper (#31813) @siriwatknp
|
|
57
|
+
- ​<!-- 16 -->[docs] Copy TextareaAutosize docs to Base (#32034) @michaldudak
|
|
58
|
+
- ​<!-- 15 -->[docs] Add react-hook-form-mui to Complementary projects #32015 @TkaczykAdam
|
|
59
|
+
- ​<!-- 14 -->[docs] Improve the translation experience (#32021) @oliviertassinari
|
|
60
|
+
- ​<!-- 13 -->[docs] Add small size Select demo (#32060) @ivan-ngchakming
|
|
61
|
+
- ​<!-- 12 -->[docs] Correct typos (#32029) @apeltop
|
|
62
|
+
- ​<!-- 11 -->[docs] Create SliderUnstyled docs (#31850) @michaldudak
|
|
63
|
+
- ​<!-- 10 -->[docs] Create TablePaginationUnstyled docs (#32018) @michaldudak
|
|
64
|
+
- ​<!-- 09 -->[docs] Move SelectUnstyled docs to the Base space (#31816) @michaldudak
|
|
65
|
+
- ​<!-- 08 -->[docs] Create the TabsUnstyled docs (#32023) @michaldudak
|
|
66
|
+
- ​<!-- 02 -->[website] The studio finally has a name, use it (#32105) @oliviertassinari
|
|
67
|
+
- ​<!-- 01 -->[website] Disable job ad @oliviertassinari
|
|
68
|
+
|
|
69
|
+
### Core
|
|
70
|
+
|
|
71
|
+
- ​<!-- 28 -->[core] Update peer deps to support React 18 (#32063) @eps1lon
|
|
72
|
+
- ​<!-- 27 -->[core] Fix running docs:api on Windows (#32091) @michaldudak
|
|
73
|
+
- ​<!-- 26 -->[core] Fix api build script for MUI Base (#32081) @siriwatknp
|
|
74
|
+
|
|
75
|
+
All contributors of this release in alphabetical order: @apeltop, @eps1lon, @flaviendelangle, @garronej, @ivan-ngchakming, @m4theushw, @MatthijsMud, @michaldudak, @mnajdova, @oliviertassinari, @psjishnu, @raigoinabox, @samuelsycamore, @siriwatknp, @TkaczykAdam
|
|
76
|
+
|
|
3
77
|
## 5.5.3
|
|
4
78
|
|
|
5
79
|
<!-- generated comparing v5.5.2..master -->
|
package/colorManipulator.d.ts
CHANGED
|
@@ -9,6 +9,7 @@ export function hexToRgb(hex: string): string;
|
|
|
9
9
|
export function rgbToHex(color: string): string;
|
|
10
10
|
export function hslToRgb(color: string): string;
|
|
11
11
|
export function decomposeColor(color: string): ColorObject;
|
|
12
|
+
export function colorChannel(color: string): string;
|
|
12
13
|
export function recomposeColor(color: ColorObject): string;
|
|
13
14
|
export function getContrastRatio(foreground: string, background: string): number;
|
|
14
15
|
export function getLuminance(color: string): number;
|
package/colorManipulator.js
CHANGED
|
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.alpha = alpha;
|
|
7
|
+
exports.colorChannel = void 0;
|
|
7
8
|
exports.darken = darken;
|
|
8
9
|
exports.decomposeColor = decomposeColor;
|
|
9
10
|
exports.emphasize = emphasize;
|
|
@@ -111,6 +112,18 @@ The following color spaces are supported: srgb, display-p3, a98-rgb, prophoto-rg
|
|
|
111
112
|
colorSpace
|
|
112
113
|
};
|
|
113
114
|
}
|
|
115
|
+
/**
|
|
116
|
+
* Returns a channel created from the input color.
|
|
117
|
+
*
|
|
118
|
+
* @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()
|
|
119
|
+
* @returns {string} - The channel for the color, that can be used in rgba or hsla colors
|
|
120
|
+
*/
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
const colorChannel = color => {
|
|
124
|
+
const decomposedColor = decomposeColor(color);
|
|
125
|
+
return decomposedColor.values.slice(0, 3).map((val, idx) => decomposedColor.type.indexOf('hsl') !== -1 && idx !== 0 ? `${val}%` : val).join(' ');
|
|
126
|
+
};
|
|
114
127
|
/**
|
|
115
128
|
* Converts a color object with type and values to a string.
|
|
116
129
|
* @param {object} color - Decomposed color
|
|
@@ -120,6 +133,8 @@ The following color spaces are supported: srgb, display-p3, a98-rgb, prophoto-rg
|
|
|
120
133
|
*/
|
|
121
134
|
|
|
122
135
|
|
|
136
|
+
exports.colorChannel = colorChannel;
|
|
137
|
+
|
|
123
138
|
function recomposeColor(color) {
|
|
124
139
|
const {
|
|
125
140
|
type,
|
package/createBox.spec.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export {};
|
|
1
|
+
export {};
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
export declare type SpacingOptions = number | Spacing | ((abs: number) => number | string) | ((abs: number | string) => number | string) | ReadonlyArray<string | number>;
|
|
2
|
-
export declare type SpacingArgument = number | string;
|
|
3
|
-
export interface Spacing {
|
|
4
|
-
(): string;
|
|
5
|
-
(value: number): string;
|
|
6
|
-
(topBottom: SpacingArgument, rightLeft: SpacingArgument): string;
|
|
7
|
-
(top: SpacingArgument, rightLeft: SpacingArgument, bottom: SpacingArgument): string;
|
|
8
|
-
(top: SpacingArgument, right: SpacingArgument, bottom: SpacingArgument, left: SpacingArgument): string;
|
|
9
|
-
}
|
|
10
|
-
export default function createSpacing(spacingInput?: SpacingOptions): Spacing;
|
|
1
|
+
export declare type SpacingOptions = number | Spacing | ((abs: number) => number | string) | ((abs: number | string) => number | string) | ReadonlyArray<string | number>;
|
|
2
|
+
export declare type SpacingArgument = number | string;
|
|
3
|
+
export interface Spacing {
|
|
4
|
+
(): string;
|
|
5
|
+
(value: number): string;
|
|
6
|
+
(topBottom: SpacingArgument, rightLeft: SpacingArgument): string;
|
|
7
|
+
(top: SpacingArgument, rightLeft: SpacingArgument, bottom: SpacingArgument): string;
|
|
8
|
+
(top: SpacingArgument, right: SpacingArgument, bottom: SpacingArgument, left: SpacingArgument): string;
|
|
9
|
+
}
|
|
10
|
+
export default function createSpacing(spacingInput?: SpacingOptions): Spacing;
|
|
@@ -36,6 +36,28 @@ export interface CssVarsProviderConfig<ColorScheme extends string> {
|
|
|
36
36
|
prefix?: string;
|
|
37
37
|
}
|
|
38
38
|
|
|
39
|
+
export interface CreateCssVarsProviderResult<ColorScheme extends string, ThemeInput> {
|
|
40
|
+
CssVarsProvider: (
|
|
41
|
+
props: React.PropsWithChildren<
|
|
42
|
+
Partial<CssVarsProviderConfig<ColorScheme>> & {
|
|
43
|
+
theme?: ThemeInput;
|
|
44
|
+
/**
|
|
45
|
+
* localStorage key used to store application `mode`
|
|
46
|
+
* @default 'mui-mode'
|
|
47
|
+
*/
|
|
48
|
+
modeStorageKey?: string;
|
|
49
|
+
/**
|
|
50
|
+
* DOM attribute for applying color scheme
|
|
51
|
+
* @default 'data-mui-color-scheme'
|
|
52
|
+
*/
|
|
53
|
+
attribute?: string;
|
|
54
|
+
}
|
|
55
|
+
>,
|
|
56
|
+
) => React.ReactElement;
|
|
57
|
+
useColorScheme: () => ColorSchemeContextValue<ColorScheme>;
|
|
58
|
+
getInitColorSchemeScript: typeof getInitColorSchemeScript;
|
|
59
|
+
}
|
|
60
|
+
|
|
39
61
|
export default function createCssVarsProvider<
|
|
40
62
|
ColorScheme extends string,
|
|
41
63
|
ThemeInput extends { colorSchemes?: Partial<Record<ColorScheme, any>> },
|
|
@@ -83,27 +105,7 @@ export default function createCssVarsProvider<
|
|
|
83
105
|
*/
|
|
84
106
|
resolveTheme?: (theme: any) => any; // the type is any because it depends on the design system.
|
|
85
107
|
},
|
|
86
|
-
):
|
|
87
|
-
CssVarsProvider: (
|
|
88
|
-
props: React.PropsWithChildren<
|
|
89
|
-
Partial<CssVarsProviderConfig<ColorScheme>> & {
|
|
90
|
-
theme?: ThemeInput;
|
|
91
|
-
/**
|
|
92
|
-
* localStorage key used to store application `mode`
|
|
93
|
-
* @default 'mui-mode'
|
|
94
|
-
*/
|
|
95
|
-
modeStorageKey?: string;
|
|
96
|
-
/**
|
|
97
|
-
* DOM attribute for applying color scheme
|
|
98
|
-
* @default 'data-mui-color-scheme'
|
|
99
|
-
*/
|
|
100
|
-
attribute?: string;
|
|
101
|
-
}
|
|
102
|
-
>,
|
|
103
|
-
) => React.ReactElement;
|
|
104
|
-
useColorScheme: () => ColorSchemeContextValue<ColorScheme>;
|
|
105
|
-
getInitColorSchemeScript: typeof getInitColorSchemeScript;
|
|
106
|
-
};
|
|
108
|
+
): CreateCssVarsProviderResult<ColorScheme, ThemeInput>;
|
|
107
109
|
|
|
108
110
|
// disable automatic export
|
|
109
111
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export {};
|
|
1
|
+
export {};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The benefit of this function is to help developers get CSS var from theme without specifying the whole variable
|
|
3
|
-
* and they does not need to remember the prefix (defined once).
|
|
4
|
-
*/
|
|
5
|
-
export default function createGetCssVar<T extends string = string>(prefix?: string): <AdditionalVars extends string = never>(field: T | AdditionalVars, ...vars: (T | AdditionalVars)[]) => string;
|
|
1
|
+
/**
|
|
2
|
+
* The benefit of this function is to help developers get CSS var from theme without specifying the whole variable
|
|
3
|
+
* and they does not need to remember the prefix (defined once).
|
|
4
|
+
*/
|
|
5
|
+
export default function createGetCssVar<T extends string = string>(prefix?: string): <AdditionalVars extends string = never>(field: T | AdditionalVars, ...vars: (T | AdditionalVars)[]) => string;
|
|
@@ -1,70 +1,70 @@
|
|
|
1
|
-
declare type NestedRecord<V = any> = {
|
|
2
|
-
[k: string | number]: NestedRecord<V> | V;
|
|
3
|
-
};
|
|
4
|
-
/**
|
|
5
|
-
* This function create an object from keys, value and then assign to target
|
|
6
|
-
*
|
|
7
|
-
* @param {Object} obj : the target object to be assigned
|
|
8
|
-
* @param {string[]} keys
|
|
9
|
-
* @param {string | number} value
|
|
10
|
-
*
|
|
11
|
-
* @example
|
|
12
|
-
* const source = {}
|
|
13
|
-
* assignNestedKeys(source, ['palette', 'primary'], 'var(--palette-primary)')
|
|
14
|
-
* console.log(source) // { palette: { primary: 'var(--palette-primary)' } }
|
|
15
|
-
*
|
|
16
|
-
* @example
|
|
17
|
-
* const source = { palette: { primary: 'var(--palette-primary)' } }
|
|
18
|
-
* assignNestedKeys(source, ['palette', 'secondary'], 'var(--palette-secondary)')
|
|
19
|
-
* console.log(source) // { palette: { primary: 'var(--palette-primary)', secondary: 'var(--palette-secondary)' } }
|
|
20
|
-
*/
|
|
21
|
-
export declare const assignNestedKeys: <Object_1 = NestedRecord<any>, Value = any>(obj: Object_1, keys: Array<string>, value: Value) => void;
|
|
22
|
-
/**
|
|
23
|
-
*
|
|
24
|
-
* @param {Object} obj : source object
|
|
25
|
-
* @param {Function} callback : a function that will be called when
|
|
26
|
-
* - the deepest key in source object is reached
|
|
27
|
-
* - the value of the deepest key is NOT `undefined` | `null`
|
|
28
|
-
*
|
|
29
|
-
* @example
|
|
30
|
-
* walkObjectDeep({ palette: { primary: { main: '#000000' } } }, console.log)
|
|
31
|
-
* // ['palette', 'primary', 'main'] '#000000'
|
|
32
|
-
*/
|
|
33
|
-
export declare const walkObjectDeep: <Value, T = Record<string, any>>(obj: T, callback: (keys: Array<string>, value: Value, scope: Record<string, string | number>) => void, shouldSkipPaths?: ((keys: Array<string>) => boolean) | undefined) => void;
|
|
34
|
-
/**
|
|
35
|
-
* a function that parse theme and return { css, vars }
|
|
36
|
-
*
|
|
37
|
-
* @param {Object} theme
|
|
38
|
-
* @param {{
|
|
39
|
-
* prefix?: string,
|
|
40
|
-
* basePrefix?: string,
|
|
41
|
-
* shouldSkipGeneratingVar?: (objectPathKeys: Array<string>, value: string | number) => boolean
|
|
42
|
-
* }} options.
|
|
43
|
-
* `basePrefix`: defined by design system.
|
|
44
|
-
* `prefix`: defined by application
|
|
45
|
-
*
|
|
46
|
-
* the CSS variable value will be adjusted based on the provided `basePrefix` & `prefix` which can be found in `parsedTheme`.
|
|
47
|
-
*
|
|
48
|
-
* @returns {{ css: Object, vars: Object, parsedTheme: typeof theme }} `css` is the stylesheet, `vars` is an object to get css variable (same structure as theme), and `parsedTheme` is the cloned version of theme.
|
|
49
|
-
*
|
|
50
|
-
* @example
|
|
51
|
-
* const { css, vars, parsedTheme } = parser({
|
|
52
|
-
* fontSize: 12,
|
|
53
|
-
* lineHeight: 1.2,
|
|
54
|
-
* palette: { primary: { 500: 'var(--color)' } }
|
|
55
|
-
* }, { prefix: 'foo' })
|
|
56
|
-
*
|
|
57
|
-
* console.log(css) // { '--foo-fontSize': '12px', '--foo-lineHeight': 1.2, '--foo-palette-primary-500': 'var(--foo-color)' }
|
|
58
|
-
* console.log(vars) // { fontSize: '--foo-fontSize', lineHeight: '--foo-lineHeight', palette: { primary: { 500: 'var(--foo-palette-primary-500)' } } }
|
|
59
|
-
* console.log(parsedTheme) // { fontSize: 12, lineHeight: 1.2, palette: { primary: { 500: 'var(--foo-color)' } } }
|
|
60
|
-
*/
|
|
61
|
-
export default function cssVarsParser<T extends Record<string, any>>(theme: T, options?: {
|
|
62
|
-
prefix?: string;
|
|
63
|
-
basePrefix?: string;
|
|
64
|
-
shouldSkipGeneratingVar?: (objectPathKeys: Array<string>, value: string | number) => boolean;
|
|
65
|
-
}): {
|
|
66
|
-
css: NestedRecord<string>;
|
|
67
|
-
vars: NestedRecord<string>;
|
|
68
|
-
parsedTheme: T;
|
|
69
|
-
};
|
|
70
|
-
export {};
|
|
1
|
+
declare type NestedRecord<V = any> = {
|
|
2
|
+
[k: string | number]: NestedRecord<V> | V;
|
|
3
|
+
};
|
|
4
|
+
/**
|
|
5
|
+
* This function create an object from keys, value and then assign to target
|
|
6
|
+
*
|
|
7
|
+
* @param {Object} obj : the target object to be assigned
|
|
8
|
+
* @param {string[]} keys
|
|
9
|
+
* @param {string | number} value
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* const source = {}
|
|
13
|
+
* assignNestedKeys(source, ['palette', 'primary'], 'var(--palette-primary)')
|
|
14
|
+
* console.log(source) // { palette: { primary: 'var(--palette-primary)' } }
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* const source = { palette: { primary: 'var(--palette-primary)' } }
|
|
18
|
+
* assignNestedKeys(source, ['palette', 'secondary'], 'var(--palette-secondary)')
|
|
19
|
+
* console.log(source) // { palette: { primary: 'var(--palette-primary)', secondary: 'var(--palette-secondary)' } }
|
|
20
|
+
*/
|
|
21
|
+
export declare const assignNestedKeys: <Object_1 = NestedRecord<any>, Value = any>(obj: Object_1, keys: Array<string>, value: Value) => void;
|
|
22
|
+
/**
|
|
23
|
+
*
|
|
24
|
+
* @param {Object} obj : source object
|
|
25
|
+
* @param {Function} callback : a function that will be called when
|
|
26
|
+
* - the deepest key in source object is reached
|
|
27
|
+
* - the value of the deepest key is NOT `undefined` | `null`
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* walkObjectDeep({ palette: { primary: { main: '#000000' } } }, console.log)
|
|
31
|
+
* // ['palette', 'primary', 'main'] '#000000'
|
|
32
|
+
*/
|
|
33
|
+
export declare const walkObjectDeep: <Value, T = Record<string, any>>(obj: T, callback: (keys: Array<string>, value: Value, scope: Record<string, string | number>) => void, shouldSkipPaths?: ((keys: Array<string>) => boolean) | undefined) => void;
|
|
34
|
+
/**
|
|
35
|
+
* a function that parse theme and return { css, vars }
|
|
36
|
+
*
|
|
37
|
+
* @param {Object} theme
|
|
38
|
+
* @param {{
|
|
39
|
+
* prefix?: string,
|
|
40
|
+
* basePrefix?: string,
|
|
41
|
+
* shouldSkipGeneratingVar?: (objectPathKeys: Array<string>, value: string | number) => boolean
|
|
42
|
+
* }} options.
|
|
43
|
+
* `basePrefix`: defined by design system.
|
|
44
|
+
* `prefix`: defined by application
|
|
45
|
+
*
|
|
46
|
+
* the CSS variable value will be adjusted based on the provided `basePrefix` & `prefix` which can be found in `parsedTheme`.
|
|
47
|
+
*
|
|
48
|
+
* @returns {{ css: Object, vars: Object, parsedTheme: typeof theme }} `css` is the stylesheet, `vars` is an object to get css variable (same structure as theme), and `parsedTheme` is the cloned version of theme.
|
|
49
|
+
*
|
|
50
|
+
* @example
|
|
51
|
+
* const { css, vars, parsedTheme } = parser({
|
|
52
|
+
* fontSize: 12,
|
|
53
|
+
* lineHeight: 1.2,
|
|
54
|
+
* palette: { primary: { 500: 'var(--color)' } }
|
|
55
|
+
* }, { prefix: 'foo' })
|
|
56
|
+
*
|
|
57
|
+
* console.log(css) // { '--foo-fontSize': '12px', '--foo-lineHeight': 1.2, '--foo-palette-primary-500': 'var(--foo-color)' }
|
|
58
|
+
* console.log(vars) // { fontSize: '--foo-fontSize', lineHeight: '--foo-lineHeight', palette: { primary: { 500: 'var(--foo-palette-primary-500)' } } }
|
|
59
|
+
* console.log(parsedTheme) // { fontSize: 12, lineHeight: 1.2, palette: { primary: { 500: 'var(--foo-color)' } } }
|
|
60
|
+
*/
|
|
61
|
+
export default function cssVarsParser<T extends Record<string, any>>(theme: T, options?: {
|
|
62
|
+
prefix?: string;
|
|
63
|
+
basePrefix?: string;
|
|
64
|
+
shouldSkipGeneratingVar?: (objectPathKeys: Array<string>, value: string | number) => boolean;
|
|
65
|
+
}): {
|
|
66
|
+
css: NestedRecord<string>;
|
|
67
|
+
vars: NestedRecord<string>;
|
|
68
|
+
parsedTheme: T;
|
|
69
|
+
};
|
|
70
|
+
export {};
|
package/cssVars/cssVarsParser.js
CHANGED
|
@@ -82,6 +82,13 @@ const getCssValue = (keys, value) => {
|
|
|
82
82
|
return value;
|
|
83
83
|
}
|
|
84
84
|
|
|
85
|
+
const lastKey = keys[keys.length - 1];
|
|
86
|
+
|
|
87
|
+
if (lastKey.toLowerCase().indexOf('opacity') >= 0) {
|
|
88
|
+
// opacity values are unitless
|
|
89
|
+
return value;
|
|
90
|
+
}
|
|
91
|
+
|
|
85
92
|
return `${value}px`;
|
|
86
93
|
}
|
|
87
94
|
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
|
-
export declare const DEFAULT_MODE_STORAGE_KEY = "mui-mode";
|
|
3
|
-
export declare const DEFAULT_COLOR_SCHEME_STORAGE_KEY = "mui-color-scheme";
|
|
4
|
-
export declare const DEFAULT_ATTRIBUTE = "data-mui-color-scheme";
|
|
5
|
-
export default function getInitColorSchemeScript(options?: {
|
|
6
|
-
enableSystem?: boolean;
|
|
7
|
-
defaultLightColorScheme?: string;
|
|
8
|
-
defaultDarkColorScheme?: string;
|
|
9
|
-
modeStorageKey?: string;
|
|
10
|
-
colorSchemeStorageKey?: string;
|
|
11
|
-
attribute?: string;
|
|
12
|
-
}): JSX.Element;
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
export declare const DEFAULT_MODE_STORAGE_KEY = "mui-mode";
|
|
3
|
+
export declare const DEFAULT_COLOR_SCHEME_STORAGE_KEY = "mui-color-scheme";
|
|
4
|
+
export declare const DEFAULT_ATTRIBUTE = "data-mui-color-scheme";
|
|
5
|
+
export default function getInitColorSchemeScript(options?: {
|
|
6
|
+
enableSystem?: boolean;
|
|
7
|
+
defaultLightColorScheme?: string;
|
|
8
|
+
defaultDarkColorScheme?: string;
|
|
9
|
+
modeStorageKey?: string;
|
|
10
|
+
colorSchemeStorageKey?: string;
|
|
11
|
+
attribute?: string;
|
|
12
|
+
}): JSX.Element;
|
package/cssVars/index.d.ts
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
export { default } from './createCssVarsProvider';
|
|
1
|
+
export { default } from './createCssVarsProvider';
|
|
2
|
+
export type { CreateCssVarsProviderResult } from './createCssVarsProvider';
|
|
@@ -1,50 +1,50 @@
|
|
|
1
|
-
export declare type Mode = 'light' | 'dark' | 'system';
|
|
2
|
-
export declare type SystemMode = Exclude<Mode, 'system'>;
|
|
3
|
-
export interface State<SupportedColorScheme extends string> {
|
|
4
|
-
/**
|
|
5
|
-
* User selected mode.
|
|
6
|
-
* Note: on the server, mode is always undefined
|
|
7
|
-
*/
|
|
8
|
-
mode: Mode | undefined;
|
|
9
|
-
/**
|
|
10
|
-
* Only valid if `mode: 'system'`, either 'light' | 'dark'.
|
|
11
|
-
*/
|
|
12
|
-
systemMode: SystemMode | undefined;
|
|
13
|
-
/**
|
|
14
|
-
* The color scheme for the light mode.
|
|
15
|
-
*/
|
|
16
|
-
lightColorScheme: SupportedColorScheme;
|
|
17
|
-
/**
|
|
18
|
-
* The color scheme for the dark mode.
|
|
19
|
-
*/
|
|
20
|
-
darkColorScheme: SupportedColorScheme;
|
|
21
|
-
}
|
|
22
|
-
export declare type Result<SupportedColorScheme extends string> = State<SupportedColorScheme> & {
|
|
23
|
-
/**
|
|
24
|
-
* The current application color scheme. It is always `undefined` on the server.
|
|
25
|
-
*/
|
|
26
|
-
colorScheme: SupportedColorScheme | undefined;
|
|
27
|
-
/**
|
|
28
|
-
* `mode` is saved to internal state and localStorage
|
|
29
|
-
* If `mode` is null, it will be reset to the defaultMode
|
|
30
|
-
*/
|
|
31
|
-
setMode: (mode: Mode | null) => void;
|
|
32
|
-
/**
|
|
33
|
-
* `colorScheme` is saved to internal state and localStorage
|
|
34
|
-
* If `colorScheme` is null, it will be reset to the defaultColorScheme (light | dark)
|
|
35
|
-
*/
|
|
36
|
-
setColorScheme: (colorScheme: SupportedColorScheme | Partial<{
|
|
37
|
-
light: SupportedColorScheme | null;
|
|
38
|
-
dark: SupportedColorScheme | null;
|
|
39
|
-
}> | null) => void;
|
|
40
|
-
};
|
|
41
|
-
export declare function getSystemMode(mode: undefined | string): SystemMode | undefined;
|
|
42
|
-
export declare function getColorScheme<SupportedColorScheme extends string>(state: State<SupportedColorScheme>): SupportedColorScheme | undefined;
|
|
43
|
-
export default function useCurrentColorScheme<SupportedColorScheme extends string>(options: {
|
|
44
|
-
defaultLightColorScheme: SupportedColorScheme;
|
|
45
|
-
defaultDarkColorScheme: SupportedColorScheme;
|
|
46
|
-
supportedColorSchemes: Array<SupportedColorScheme>;
|
|
47
|
-
defaultMode?: Mode;
|
|
48
|
-
modeStorageKey?: string;
|
|
49
|
-
colorSchemeStorageKey?: string;
|
|
50
|
-
}): Result<SupportedColorScheme>;
|
|
1
|
+
export declare type Mode = 'light' | 'dark' | 'system';
|
|
2
|
+
export declare type SystemMode = Exclude<Mode, 'system'>;
|
|
3
|
+
export interface State<SupportedColorScheme extends string> {
|
|
4
|
+
/**
|
|
5
|
+
* User selected mode.
|
|
6
|
+
* Note: on the server, mode is always undefined
|
|
7
|
+
*/
|
|
8
|
+
mode: Mode | undefined;
|
|
9
|
+
/**
|
|
10
|
+
* Only valid if `mode: 'system'`, either 'light' | 'dark'.
|
|
11
|
+
*/
|
|
12
|
+
systemMode: SystemMode | undefined;
|
|
13
|
+
/**
|
|
14
|
+
* The color scheme for the light mode.
|
|
15
|
+
*/
|
|
16
|
+
lightColorScheme: SupportedColorScheme;
|
|
17
|
+
/**
|
|
18
|
+
* The color scheme for the dark mode.
|
|
19
|
+
*/
|
|
20
|
+
darkColorScheme: SupportedColorScheme;
|
|
21
|
+
}
|
|
22
|
+
export declare type Result<SupportedColorScheme extends string> = State<SupportedColorScheme> & {
|
|
23
|
+
/**
|
|
24
|
+
* The current application color scheme. It is always `undefined` on the server.
|
|
25
|
+
*/
|
|
26
|
+
colorScheme: SupportedColorScheme | undefined;
|
|
27
|
+
/**
|
|
28
|
+
* `mode` is saved to internal state and localStorage
|
|
29
|
+
* If `mode` is null, it will be reset to the defaultMode
|
|
30
|
+
*/
|
|
31
|
+
setMode: (mode: Mode | null) => void;
|
|
32
|
+
/**
|
|
33
|
+
* `colorScheme` is saved to internal state and localStorage
|
|
34
|
+
* If `colorScheme` is null, it will be reset to the defaultColorScheme (light | dark)
|
|
35
|
+
*/
|
|
36
|
+
setColorScheme: (colorScheme: SupportedColorScheme | Partial<{
|
|
37
|
+
light: SupportedColorScheme | null;
|
|
38
|
+
dark: SupportedColorScheme | null;
|
|
39
|
+
}> | null) => void;
|
|
40
|
+
};
|
|
41
|
+
export declare function getSystemMode(mode: undefined | string): SystemMode | undefined;
|
|
42
|
+
export declare function getColorScheme<SupportedColorScheme extends string>(state: State<SupportedColorScheme>): SupportedColorScheme | undefined;
|
|
43
|
+
export default function useCurrentColorScheme<SupportedColorScheme extends string>(options: {
|
|
44
|
+
defaultLightColorScheme: SupportedColorScheme;
|
|
45
|
+
defaultDarkColorScheme: SupportedColorScheme;
|
|
46
|
+
supportedColorSchemes: Array<SupportedColorScheme>;
|
|
47
|
+
defaultMode?: Mode;
|
|
48
|
+
modeStorageKey?: string;
|
|
49
|
+
colorSchemeStorageKey?: string;
|
|
50
|
+
}): Result<SupportedColorScheme>;
|
package/esm/colorManipulator.js
CHANGED
|
@@ -94,6 +94,17 @@ The following color spaces are supported: srgb, display-p3, a98-rgb, prophoto-rg
|
|
|
94
94
|
colorSpace
|
|
95
95
|
};
|
|
96
96
|
}
|
|
97
|
+
/**
|
|
98
|
+
* Returns a channel created from the input color.
|
|
99
|
+
*
|
|
100
|
+
* @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()
|
|
101
|
+
* @returns {string} - The channel for the color, that can be used in rgba or hsla colors
|
|
102
|
+
*/
|
|
103
|
+
|
|
104
|
+
export const colorChannel = color => {
|
|
105
|
+
const decomposedColor = decomposeColor(color);
|
|
106
|
+
return decomposedColor.values.slice(0, 3).map((val, idx) => decomposedColor.type.indexOf('hsl') !== -1 && idx !== 0 ? `${val}%` : val).join(' ');
|
|
107
|
+
};
|
|
97
108
|
/**
|
|
98
109
|
* Converts a color object with type and values to a string.
|
|
99
110
|
* @param {object} color - Decomposed color
|
|
@@ -68,6 +68,13 @@ const getCssValue = (keys, value) => {
|
|
|
68
68
|
return value;
|
|
69
69
|
}
|
|
70
70
|
|
|
71
|
+
const lastKey = keys[keys.length - 1];
|
|
72
|
+
|
|
73
|
+
if (lastKey.toLowerCase().indexOf('opacity') >= 0) {
|
|
74
|
+
// opacity values are unitless
|
|
75
|
+
return value;
|
|
76
|
+
}
|
|
77
|
+
|
|
71
78
|
return `${value}px`;
|
|
72
79
|
}
|
|
73
80
|
|
package/index.d.ts
CHANGED
|
@@ -162,6 +162,6 @@ export * from './colorManipulator';
|
|
|
162
162
|
export { default as ThemeProvider } from './ThemeProvider';
|
|
163
163
|
export * from './ThemeProvider';
|
|
164
164
|
|
|
165
|
-
export { default as unstable_createCssVarsProvider } from './cssVars';
|
|
165
|
+
export { default as unstable_createCssVarsProvider, CreateCssVarsProviderResult } from './cssVars';
|
|
166
166
|
export { default as unstable_createGetCssVar } from './cssVars/createGetCssVar';
|
|
167
167
|
export * from './cssVars';
|
package/index.js
CHANGED
package/index.spec.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export {};
|
|
1
|
+
export {};
|
|
@@ -99,6 +99,19 @@ export function decomposeColor(color) {
|
|
|
99
99
|
colorSpace: colorSpace
|
|
100
100
|
};
|
|
101
101
|
}
|
|
102
|
+
/**
|
|
103
|
+
* Returns a channel created from the input color.
|
|
104
|
+
*
|
|
105
|
+
* @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()
|
|
106
|
+
* @returns {string} - The channel for the color, that can be used in rgba or hsla colors
|
|
107
|
+
*/
|
|
108
|
+
|
|
109
|
+
export var colorChannel = function colorChannel(color) {
|
|
110
|
+
var decomposedColor = decomposeColor(color);
|
|
111
|
+
return decomposedColor.values.slice(0, 3).map(function (val, idx) {
|
|
112
|
+
return decomposedColor.type.indexOf('hsl') !== -1 && idx !== 0 ? "".concat(val, "%") : val;
|
|
113
|
+
}).join(' ');
|
|
114
|
+
};
|
|
102
115
|
/**
|
|
103
116
|
* Converts a color object with type and values to a string.
|
|
104
117
|
* @param {object} color - Decomposed color
|
|
@@ -81,6 +81,13 @@ var getCssValue = function getCssValue(keys, value) {
|
|
|
81
81
|
return value;
|
|
82
82
|
}
|
|
83
83
|
|
|
84
|
+
var lastKey = keys[keys.length - 1];
|
|
85
|
+
|
|
86
|
+
if (lastKey.toLowerCase().indexOf('opacity') >= 0) {
|
|
87
|
+
// opacity values are unitless
|
|
88
|
+
return value;
|
|
89
|
+
}
|
|
90
|
+
|
|
84
91
|
return "".concat(value, "px");
|
|
85
92
|
}
|
|
86
93
|
|
package/legacy/index.js
CHANGED
|
@@ -94,6 +94,17 @@ The following color spaces are supported: srgb, display-p3, a98-rgb, prophoto-rg
|
|
|
94
94
|
colorSpace
|
|
95
95
|
};
|
|
96
96
|
}
|
|
97
|
+
/**
|
|
98
|
+
* Returns a channel created from the input color.
|
|
99
|
+
*
|
|
100
|
+
* @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()
|
|
101
|
+
* @returns {string} - The channel for the color, that can be used in rgba or hsla colors
|
|
102
|
+
*/
|
|
103
|
+
|
|
104
|
+
export const colorChannel = color => {
|
|
105
|
+
const decomposedColor = decomposeColor(color);
|
|
106
|
+
return decomposedColor.values.slice(0, 3).map((val, idx) => decomposedColor.type.indexOf('hsl') !== -1 && idx !== 0 ? `${val}%` : val).join(' ');
|
|
107
|
+
};
|
|
97
108
|
/**
|
|
98
109
|
* Converts a color object with type and values to a string.
|
|
99
110
|
* @param {object} color - Decomposed color
|
|
@@ -68,6 +68,13 @@ const getCssValue = (keys, value) => {
|
|
|
68
68
|
return value;
|
|
69
69
|
}
|
|
70
70
|
|
|
71
|
+
const lastKey = keys[keys.length - 1];
|
|
72
|
+
|
|
73
|
+
if (lastKey.toLowerCase().indexOf('opacity') >= 0) {
|
|
74
|
+
// opacity values are unitless
|
|
75
|
+
return value;
|
|
76
|
+
}
|
|
77
|
+
|
|
71
78
|
return `${value}px`;
|
|
72
79
|
}
|
|
73
80
|
|
package/modern/index.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mui/system",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.6.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"author": "MUI Team",
|
|
6
6
|
"description": "CSS utilities for rapidly laying out custom designs.",
|
|
@@ -28,8 +28,8 @@
|
|
|
28
28
|
"peerDependencies": {
|
|
29
29
|
"@emotion/react": "^11.5.0",
|
|
30
30
|
"@emotion/styled": "^11.3.0",
|
|
31
|
-
"@types/react": "^16.8.6 || ^17.0.0",
|
|
32
|
-
"react": "^17.0.0"
|
|
31
|
+
"@types/react": "^16.8.6 || ^17.0.0 || ^18.0.0",
|
|
32
|
+
"react": "^17.0.0 || ^18.0.0"
|
|
33
33
|
},
|
|
34
34
|
"peerDependenciesMeta": {
|
|
35
35
|
"@types/react": {
|
|
@@ -44,10 +44,10 @@
|
|
|
44
44
|
},
|
|
45
45
|
"dependencies": {
|
|
46
46
|
"@babel/runtime": "^7.17.2",
|
|
47
|
-
"@mui/private-theming": "^5.
|
|
48
|
-
"@mui/styled-engine": "^5.
|
|
47
|
+
"@mui/private-theming": "^5.6.0",
|
|
48
|
+
"@mui/styled-engine": "^5.6.0",
|
|
49
49
|
"@mui/types": "^7.1.3",
|
|
50
|
-
"@mui/utils": "^5.
|
|
50
|
+
"@mui/utils": "^5.6.0",
|
|
51
51
|
"clsx": "^1.1.1",
|
|
52
52
|
"csstype": "^3.0.11",
|
|
53
53
|
"prop-types": "^15.7.2"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export {};
|
|
1
|
+
export {};
|