@mui/system 7.0.1 → 7.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (283) hide show
  1. package/Box/Box.d.ts +12 -31
  2. package/CHANGELOG.md +157 -0
  3. package/Grid/createGrid.js +1 -2
  4. package/InitColorSchemeScript/InitColorSchemeScript.js +1 -1
  5. package/Stack/createStack.js +1 -2
  6. package/borders/borders.d.ts +2 -1
  7. package/breakpoints/breakpoints.d.ts +1 -1
  8. package/compose/compose.d.ts +14 -1
  9. package/compose/index.d.ts +1 -1
  10. package/cssGrid/cssGrid.d.ts +2 -1
  11. package/cssVars/cssVarsParser.d.ts +1 -1
  12. package/display/display.d.ts +2 -1
  13. package/esm/Box/Box.d.ts +12 -31
  14. package/esm/Grid/createGrid.js +1 -2
  15. package/esm/InitColorSchemeScript/InitColorSchemeScript.js +1 -1
  16. package/esm/Stack/createStack.js +1 -2
  17. package/esm/borders/borders.d.ts +2 -1
  18. package/esm/breakpoints/breakpoints.d.ts +1 -1
  19. package/esm/compose/compose.d.ts +14 -1
  20. package/esm/compose/index.d.ts +1 -1
  21. package/esm/cssGrid/cssGrid.d.ts +2 -1
  22. package/esm/cssVars/cssVarsParser.d.ts +1 -1
  23. package/esm/display/display.d.ts +2 -1
  24. package/esm/flexbox/flexbox.d.ts +15 -1
  25. package/esm/index.d.ts +10 -0
  26. package/esm/index.js +1 -1
  27. package/esm/memoTheme.d.ts +1 -1
  28. package/esm/palette/palette.d.ts +2 -1
  29. package/esm/positions/positions.d.ts +2 -1
  30. package/esm/shadows/shadows.d.ts +2 -1
  31. package/esm/sizing/sizing.d.ts +2 -1
  32. package/esm/spacing/spacing.d.ts +2 -1
  33. package/esm/style/style.d.ts +5 -1
  34. package/esm/styleFunctionSx/defaultSxConfig.d.ts +1 -2
  35. package/esm/typography/typography.d.ts +2 -1
  36. package/esm/useMediaQuery/useMediaQuery.js +3 -0
  37. package/esm/useThemeProps/getThemeProps.d.ts +0 -5
  38. package/esm/version/index.js +3 -3
  39. package/flexbox/flexbox.d.ts +15 -1
  40. package/index.d.ts +10 -0
  41. package/index.js +1 -1
  42. package/memoTheme.d.ts +1 -1
  43. package/package.json +7 -15
  44. package/palette/palette.d.ts +2 -1
  45. package/positions/positions.d.ts +2 -1
  46. package/shadows/shadows.d.ts +2 -1
  47. package/sizing/sizing.d.ts +2 -1
  48. package/spacing/spacing.d.ts +2 -1
  49. package/style/style.d.ts +5 -1
  50. package/styleFunctionSx/defaultSxConfig.d.ts +1 -2
  51. package/typography/typography.d.ts +2 -1
  52. package/useMediaQuery/useMediaQuery.js +3 -0
  53. package/useThemeProps/getThemeProps.d.ts +0 -5
  54. package/version/index.js +3 -3
  55. package/modern/Box/Box.d.ts +0 -72
  56. package/modern/Box/Box.js +0 -30
  57. package/modern/Box/boxClasses.d.ts +0 -7
  58. package/modern/Box/boxClasses.js +0 -3
  59. package/modern/Box/index.d.ts +0 -4
  60. package/modern/Box/index.js +0 -3
  61. package/modern/CSSProperties.d.ts +0 -7
  62. package/modern/Container/Container.d.ts +0 -13
  63. package/modern/Container/Container.js +0 -61
  64. package/modern/Container/ContainerProps.d.ts +0 -40
  65. package/modern/Container/ContainerProps.js +0 -1
  66. package/modern/Container/containerClasses.d.ts +0 -22
  67. package/modern/Container/containerClasses.js +0 -7
  68. package/modern/Container/createContainer.d.ts +0 -18
  69. package/modern/Container/createContainer.js +0 -149
  70. package/modern/Container/index.d.ts +0 -4
  71. package/modern/Container/index.js +0 -3
  72. package/modern/DefaultPropsProvider/DefaultPropsProvider.d.ts +0 -18
  73. package/modern/DefaultPropsProvider/DefaultPropsProvider.js +0 -64
  74. package/modern/DefaultPropsProvider/index.d.ts +0 -1
  75. package/modern/DefaultPropsProvider/index.js +0 -1
  76. package/modern/GlobalStyles/GlobalStyles.d.ts +0 -17
  77. package/modern/GlobalStyles/GlobalStyles.js +0 -37
  78. package/modern/GlobalStyles/index.d.ts +0 -2
  79. package/modern/GlobalStyles/index.js +0 -2
  80. package/modern/Grid/Grid.d.ts +0 -13
  81. package/modern/Grid/Grid.js +0 -106
  82. package/modern/Grid/GridProps.d.ts +0 -103
  83. package/modern/Grid/GridProps.js +0 -1
  84. package/modern/Grid/createGrid.d.ts +0 -13
  85. package/modern/Grid/createGrid.js +0 -155
  86. package/modern/Grid/deleteLegacyGridProps.d.ts +0 -11
  87. package/modern/Grid/deleteLegacyGridProps.js +0 -41
  88. package/modern/Grid/gridClasses.d.ts +0 -20
  89. package/modern/Grid/gridClasses.js +0 -19
  90. package/modern/Grid/gridGenerator.d.ts +0 -42
  91. package/modern/Grid/gridGenerator.js +0 -193
  92. package/modern/Grid/index.d.ts +0 -7
  93. package/modern/Grid/index.js +0 -7
  94. package/modern/Grid/traverseBreakpoints.d.ts +0 -7
  95. package/modern/Grid/traverseBreakpoints.js +0 -42
  96. package/modern/InitColorSchemeScript/InitColorSchemeScript.d.ts +0 -51
  97. package/modern/InitColorSchemeScript/InitColorSchemeScript.js +0 -78
  98. package/modern/InitColorSchemeScript/index.d.ts +0 -2
  99. package/modern/InitColorSchemeScript/index.js +0 -1
  100. package/modern/RtlProvider/index.d.ts +0 -8
  101. package/modern/RtlProvider/index.js +0 -24
  102. package/modern/Stack/Stack.d.ts +0 -14
  103. package/modern/Stack/Stack.js +0 -62
  104. package/modern/Stack/StackProps.d.ts +0 -53
  105. package/modern/Stack/StackProps.js +0 -1
  106. package/modern/Stack/createStack.d.ts +0 -24
  107. package/modern/Stack/createStack.js +0 -173
  108. package/modern/Stack/index.d.ts +0 -5
  109. package/modern/Stack/index.js +0 -5
  110. package/modern/Stack/stackClasses.d.ts +0 -8
  111. package/modern/Stack/stackClasses.js +0 -7
  112. package/modern/ThemeProvider/ThemeProvider.d.ts +0 -24
  113. package/modern/ThemeProvider/ThemeProvider.js +0 -97
  114. package/modern/ThemeProvider/index.d.ts +0 -2
  115. package/modern/ThemeProvider/index.js +0 -1
  116. package/modern/borders/borders.d.ts +0 -14
  117. package/modern/borders/borders.js +0 -49
  118. package/modern/borders/index.d.ts +0 -2
  119. package/modern/borders/index.js +0 -2
  120. package/modern/breakpoints/breakpoints.d.ts +0 -19
  121. package/modern/breakpoints/breakpoints.js +0 -171
  122. package/modern/breakpoints/index.d.ts +0 -2
  123. package/modern/breakpoints/index.js +0 -2
  124. package/modern/colorManipulator/colorManipulator.d.ts +0 -25
  125. package/modern/colorManipulator/colorManipulator.js +0 -349
  126. package/modern/colorManipulator/index.d.ts +0 -1
  127. package/modern/colorManipulator/index.js +0 -1
  128. package/modern/compose/compose.d.ts +0 -2
  129. package/modern/compose/compose.js +0 -24
  130. package/modern/compose/index.d.ts +0 -1
  131. package/modern/compose/index.js +0 -1
  132. package/modern/createBox/createBox.d.ts +0 -9
  133. package/modern/createBox/createBox.js +0 -35
  134. package/modern/createBox/index.d.ts +0 -1
  135. package/modern/createBox/index.js +0 -1
  136. package/modern/createBreakpoints/createBreakpoints.d.ts +0 -78
  137. package/modern/createBreakpoints/createBreakpoints.js +0 -81
  138. package/modern/createBreakpoints/index.d.ts +0 -3
  139. package/modern/createBreakpoints/index.js +0 -3
  140. package/modern/createStyled/createStyled.d.ts +0 -27
  141. package/modern/createStyled/createStyled.js +0 -276
  142. package/modern/createStyled/index.d.ts +0 -2
  143. package/modern/createStyled/index.js +0 -2
  144. package/modern/createTheme/applyStyles.d.ts +0 -67
  145. package/modern/createTheme/applyStyles.js +0 -87
  146. package/modern/createTheme/createSpacing.d.ts +0 -10
  147. package/modern/createTheme/createSpacing.js +0 -31
  148. package/modern/createTheme/createTheme.d.ts +0 -54
  149. package/modern/createTheme/createTheme.js +0 -49
  150. package/modern/createTheme/index.d.ts +0 -4
  151. package/modern/createTheme/index.js +0 -3
  152. package/modern/createTheme/shape.d.ts +0 -6
  153. package/modern/createTheme/shape.js +0 -4
  154. package/modern/cssContainerQueries/cssContainerQueries.d.ts +0 -23
  155. package/modern/cssContainerQueries/cssContainerQueries.js +0 -69
  156. package/modern/cssContainerQueries/index.d.ts +0 -3
  157. package/modern/cssContainerQueries/index.js +0 -2
  158. package/modern/cssGrid/cssGrid.d.ts +0 -15
  159. package/modern/cssGrid/cssGrid.js +0 -85
  160. package/modern/cssGrid/index.d.ts +0 -2
  161. package/modern/cssGrid/index.js +0 -2
  162. package/modern/cssVars/createCssVarsProvider.d.ts +0 -141
  163. package/modern/cssVars/createCssVarsProvider.js +0 -338
  164. package/modern/cssVars/createCssVarsTheme.d.ts +0 -15
  165. package/modern/cssVars/createCssVarsTheme.js +0 -21
  166. package/modern/cssVars/createGetCssVar.d.ts +0 -5
  167. package/modern/cssVars/createGetCssVar.js +0 -22
  168. package/modern/cssVars/cssVarsParser.d.ts +0 -64
  169. package/modern/cssVars/cssVarsParser.js +0 -129
  170. package/modern/cssVars/getColorSchemeSelector.d.ts +0 -1
  171. package/modern/cssVars/getColorSchemeSelector.js +0 -26
  172. package/modern/cssVars/index.d.ts +0 -8
  173. package/modern/cssVars/index.js +0 -5
  174. package/modern/cssVars/localStorageManager.d.ts +0 -34
  175. package/modern/cssVars/localStorageManager.js +0 -51
  176. package/modern/cssVars/prepareCssVars.d.ts +0 -16
  177. package/modern/cssVars/prepareCssVars.js +0 -153
  178. package/modern/cssVars/prepareTypographyVars.d.ts +0 -4
  179. package/modern/cssVars/prepareTypographyVars.js +0 -11
  180. package/modern/cssVars/useCurrentColorScheme.d.ts +0 -56
  181. package/modern/cssVars/useCurrentColorScheme.js +0 -228
  182. package/modern/display/display.d.ts +0 -3
  183. package/modern/display/display.js +0 -27
  184. package/modern/display/index.d.ts +0 -2
  185. package/modern/display/index.js +0 -2
  186. package/modern/flexbox/flexbox.d.ts +0 -3
  187. package/modern/flexbox/flexbox.js +0 -43
  188. package/modern/flexbox/index.d.ts +0 -2
  189. package/modern/flexbox/index.js +0 -2
  190. package/modern/getThemeValue/getThemeValue.d.ts +0 -1
  191. package/modern/getThemeValue/getThemeValue.js +0 -51
  192. package/modern/getThemeValue/index.d.ts +0 -2
  193. package/modern/getThemeValue/index.js +0 -2
  194. package/modern/index.d.ts +0 -80
  195. package/modern/index.js +0 -75
  196. package/modern/memoTheme.d.ts +0 -12
  197. package/modern/memoTheme.js +0 -28
  198. package/modern/memoize/index.d.ts +0 -1
  199. package/modern/memoize/index.js +0 -1
  200. package/modern/memoize/memoize.d.ts +0 -1
  201. package/modern/memoize/memoize.js +0 -9
  202. package/modern/merge/index.d.ts +0 -1
  203. package/modern/merge/index.js +0 -1
  204. package/modern/merge/merge.d.ts +0 -1
  205. package/modern/merge/merge.js +0 -10
  206. package/modern/package.json +0 -1
  207. package/modern/palette/index.d.ts +0 -2
  208. package/modern/palette/index.js +0 -2
  209. package/modern/palette/palette.d.ts +0 -5
  210. package/modern/palette/palette.js +0 -26
  211. package/modern/positions/index.d.ts +0 -2
  212. package/modern/positions/index.js +0 -2
  213. package/modern/positions/positions.d.ts +0 -3
  214. package/modern/positions/positions.js +0 -22
  215. package/modern/preprocessStyles.d.ts +0 -5
  216. package/modern/preprocessStyles.js +0 -25
  217. package/modern/propsToClassKey/index.d.ts +0 -1
  218. package/modern/propsToClassKey/index.js +0 -1
  219. package/modern/propsToClassKey/propsToClassKey.d.ts +0 -1
  220. package/modern/propsToClassKey/propsToClassKey.js +0 -25
  221. package/modern/responsivePropType/index.d.ts +0 -1
  222. package/modern/responsivePropType/index.js +0 -1
  223. package/modern/responsivePropType/responsivePropType.d.ts +0 -2
  224. package/modern/responsivePropType/responsivePropType.js +0 -3
  225. package/modern/shadows/index.d.ts +0 -1
  226. package/modern/shadows/index.js +0 -1
  227. package/modern/shadows/shadows.d.ts +0 -3
  228. package/modern/shadows/shadows.js +0 -6
  229. package/modern/sizing/index.d.ts +0 -2
  230. package/modern/sizing/index.js +0 -2
  231. package/modern/sizing/sizing.d.ts +0 -12
  232. package/modern/sizing/sizing.js +0 -64
  233. package/modern/spacing/index.d.ts +0 -2
  234. package/modern/spacing/index.js +0 -2
  235. package/modern/spacing/spacing.d.ts +0 -19
  236. package/modern/spacing/spacing.js +0 -157
  237. package/modern/style/index.d.ts +0 -2
  238. package/modern/style/index.js +0 -2
  239. package/modern/style/style.d.ts +0 -19
  240. package/modern/style/style.js +0 -75
  241. package/modern/styleFunctionSx/AliasesCSSProperties.d.ts +0 -269
  242. package/modern/styleFunctionSx/AliasesCSSProperties.js +0 -1
  243. package/modern/styleFunctionSx/OverwriteCSSProperties.d.ts +0 -54
  244. package/modern/styleFunctionSx/OverwriteCSSProperties.js +0 -1
  245. package/modern/styleFunctionSx/StandardCssProperties.d.ts +0 -2
  246. package/modern/styleFunctionSx/StandardCssProperties.js +0 -1
  247. package/modern/styleFunctionSx/defaultSxConfig.d.ts +0 -15
  248. package/modern/styleFunctionSx/defaultSxConfig.js +0 -294
  249. package/modern/styleFunctionSx/extendSxProp.d.ts +0 -4
  250. package/modern/styleFunctionSx/extendSxProp.js +0 -51
  251. package/modern/styleFunctionSx/index.d.ts +0 -9
  252. package/modern/styleFunctionSx/index.js +0 -4
  253. package/modern/styleFunctionSx/styleFunctionSx.d.ts +0 -62
  254. package/modern/styleFunctionSx/styleFunctionSx.js +0 -127
  255. package/modern/styled/index.d.ts +0 -1
  256. package/modern/styled/index.js +0 -1
  257. package/modern/styled/styled.d.ts +0 -3
  258. package/modern/styled/styled.js +0 -3
  259. package/modern/typography/index.d.ts +0 -2
  260. package/modern/typography/index.js +0 -2
  261. package/modern/typography/typography.d.ts +0 -12
  262. package/modern/typography/typography.js +0 -37
  263. package/modern/useMediaQuery/index.d.ts +0 -2
  264. package/modern/useMediaQuery/index.js +0 -2
  265. package/modern/useMediaQuery/useMediaQuery.d.ts +0 -32
  266. package/modern/useMediaQuery/useMediaQuery.js +0 -118
  267. package/modern/useTheme/index.d.ts +0 -2
  268. package/modern/useTheme/index.js +0 -2
  269. package/modern/useTheme/useTheme.d.ts +0 -2
  270. package/modern/useTheme/useTheme.js +0 -9
  271. package/modern/useThemeProps/getThemeProps.d.ts +0 -16
  272. package/modern/useThemeProps/getThemeProps.js +0 -12
  273. package/modern/useThemeProps/index.d.ts +0 -3
  274. package/modern/useThemeProps/index.js +0 -2
  275. package/modern/useThemeProps/useThemeProps.d.ts +0 -14
  276. package/modern/useThemeProps/useThemeProps.js +0 -20
  277. package/modern/useThemeWithoutDefault/index.d.ts +0 -1
  278. package/modern/useThemeWithoutDefault/index.js +0 -1
  279. package/modern/useThemeWithoutDefault/useThemeWithoutDefault.d.ts +0 -1
  280. package/modern/useThemeWithoutDefault/useThemeWithoutDefault.js +0 -12
  281. package/modern/version/index.d.ts +0 -6
  282. package/modern/version/index.js +0 -6
  283. package/tsconfig.build.tsbuildinfo +0 -1
@@ -1,51 +0,0 @@
1
- function noop() {}
2
- const localStorageManager = ({
3
- key,
4
- storageWindow
5
- }) => {
6
- if (!storageWindow && typeof window !== 'undefined') {
7
- storageWindow = window;
8
- }
9
- return {
10
- get(defaultValue) {
11
- if (typeof window === 'undefined') {
12
- return undefined;
13
- }
14
- if (!storageWindow) {
15
- return defaultValue;
16
- }
17
- let value;
18
- try {
19
- value = storageWindow.localStorage.getItem(key);
20
- } catch {
21
- // Unsupported
22
- }
23
- return value || defaultValue;
24
- },
25
- set: value => {
26
- if (storageWindow) {
27
- try {
28
- storageWindow.localStorage.setItem(key, value);
29
- } catch {
30
- // Unsupported
31
- }
32
- }
33
- },
34
- subscribe: handler => {
35
- if (!storageWindow) {
36
- return noop;
37
- }
38
- const listener = event => {
39
- const value = event.newValue;
40
- if (event.key === key) {
41
- handler(value);
42
- }
43
- };
44
- storageWindow.addEventListener('storage', listener);
45
- return () => {
46
- storageWindow.removeEventListener('storage', listener);
47
- };
48
- }
49
- };
50
- };
51
- export default localStorageManager;
@@ -1,16 +0,0 @@
1
- export interface DefaultCssVarsTheme {
2
- colorSchemes?: Record<string, any>;
3
- defaultColorScheme?: string;
4
- }
5
- declare function prepareCssVars<T extends DefaultCssVarsTheme, ThemeVars extends Record<string, any>>(theme: T, parserConfig?: {
6
- prefix?: string;
7
- colorSchemeSelector?: 'media' | 'class' | 'data' | string;
8
- disableCssColorScheme?: boolean;
9
- shouldSkipGeneratingVar?: (objectPathKeys: Array<string>, value: string | number) => boolean;
10
- getSelector?: (colorScheme: keyof T['colorSchemes'] | undefined, css: Record<string, any>) => string | Record<string, any>;
11
- }): {
12
- vars: ThemeVars;
13
- generateThemeVars: () => ThemeVars;
14
- generateStyleSheets: () => Record<string, any>[];
15
- };
16
- export default prepareCssVars;
@@ -1,153 +0,0 @@
1
- import deepmerge from '@mui/utils/deepmerge';
2
- import cssVarsParser from "./cssVarsParser.js";
3
- function prepareCssVars(theme, parserConfig = {}) {
4
- const {
5
- getSelector = defaultGetSelector,
6
- disableCssColorScheme,
7
- colorSchemeSelector: selector
8
- } = parserConfig;
9
- // @ts-ignore - ignore components do not exist
10
- const {
11
- colorSchemes = {},
12
- components,
13
- defaultColorScheme = 'light',
14
- ...otherTheme
15
- } = theme;
16
- const {
17
- vars: rootVars,
18
- css: rootCss,
19
- varsWithDefaults: rootVarsWithDefaults
20
- } = cssVarsParser(otherTheme, parserConfig);
21
- let themeVars = rootVarsWithDefaults;
22
- const colorSchemesMap = {};
23
- const {
24
- [defaultColorScheme]: defaultScheme,
25
- ...otherColorSchemes
26
- } = colorSchemes;
27
- Object.entries(otherColorSchemes || {}).forEach(([key, scheme]) => {
28
- const {
29
- vars,
30
- css,
31
- varsWithDefaults
32
- } = cssVarsParser(scheme, parserConfig);
33
- themeVars = deepmerge(themeVars, varsWithDefaults);
34
- colorSchemesMap[key] = {
35
- css,
36
- vars
37
- };
38
- });
39
- if (defaultScheme) {
40
- // default color scheme vars should be merged last to set as default
41
- const {
42
- css,
43
- vars,
44
- varsWithDefaults
45
- } = cssVarsParser(defaultScheme, parserConfig);
46
- themeVars = deepmerge(themeVars, varsWithDefaults);
47
- colorSchemesMap[defaultColorScheme] = {
48
- css,
49
- vars
50
- };
51
- }
52
- function defaultGetSelector(colorScheme, cssObject) {
53
- let rule = selector;
54
- if (selector === 'class') {
55
- rule = '.%s';
56
- }
57
- if (selector === 'data') {
58
- rule = '[data-%s]';
59
- }
60
- if (selector?.startsWith('data-') && !selector.includes('%s')) {
61
- // 'data-joy-color-scheme' -> '[data-joy-color-scheme="%s"]'
62
- rule = `[${selector}="%s"]`;
63
- }
64
- if (colorScheme) {
65
- if (rule === 'media') {
66
- if (theme.defaultColorScheme === colorScheme) {
67
- return ':root';
68
- }
69
- const mode = colorSchemes[colorScheme]?.palette?.mode || colorScheme;
70
- return {
71
- [`@media (prefers-color-scheme: ${mode})`]: {
72
- ':root': cssObject
73
- }
74
- };
75
- }
76
- if (rule) {
77
- if (theme.defaultColorScheme === colorScheme) {
78
- return `:root, ${rule.replace('%s', String(colorScheme))}`;
79
- }
80
- return rule.replace('%s', String(colorScheme));
81
- }
82
- }
83
- return ':root';
84
- }
85
- const generateThemeVars = () => {
86
- let vars = {
87
- ...rootVars
88
- };
89
- Object.entries(colorSchemesMap).forEach(([, {
90
- vars: schemeVars
91
- }]) => {
92
- vars = deepmerge(vars, schemeVars);
93
- });
94
- return vars;
95
- };
96
- const generateStyleSheets = () => {
97
- const stylesheets = [];
98
- const colorScheme = theme.defaultColorScheme || 'light';
99
- function insertStyleSheet(key, css) {
100
- if (Object.keys(css).length) {
101
- stylesheets.push(typeof key === 'string' ? {
102
- [key]: {
103
- ...css
104
- }
105
- } : key);
106
- }
107
- }
108
- insertStyleSheet(getSelector(undefined, {
109
- ...rootCss
110
- }), rootCss);
111
- const {
112
- [colorScheme]: defaultSchemeVal,
113
- ...other
114
- } = colorSchemesMap;
115
- if (defaultSchemeVal) {
116
- // default color scheme has to come before other color schemes
117
- const {
118
- css
119
- } = defaultSchemeVal;
120
- const cssColorSheme = colorSchemes[colorScheme]?.palette?.mode;
121
- const finalCss = !disableCssColorScheme && cssColorSheme ? {
122
- colorScheme: cssColorSheme,
123
- ...css
124
- } : {
125
- ...css
126
- };
127
- insertStyleSheet(getSelector(colorScheme, {
128
- ...finalCss
129
- }), finalCss);
130
- }
131
- Object.entries(other).forEach(([key, {
132
- css
133
- }]) => {
134
- const cssColorSheme = colorSchemes[key]?.palette?.mode;
135
- const finalCss = !disableCssColorScheme && cssColorSheme ? {
136
- colorScheme: cssColorSheme,
137
- ...css
138
- } : {
139
- ...css
140
- };
141
- insertStyleSheet(getSelector(key, {
142
- ...finalCss
143
- }), finalCss);
144
- });
145
- return stylesheets;
146
- };
147
- return {
148
- vars: themeVars,
149
- generateThemeVars,
150
- generateStyleSheets
151
- };
152
- }
153
- export default prepareCssVars;
@@ -1,4 +0,0 @@
1
- type RecordPropertyNames<T> = { [K in keyof T]: T[K] extends Function ? never : T[K] extends Record<string, any> ? K : never }[keyof T];
2
- export type ExtractTypographyTokens<T> = { [K in RecordPropertyNames<T>]: string };
3
- export default function prepareTypographyVars<T extends Record<string, any>>(typography: T): ExtractTypographyTokens<T>;
4
- export {};
@@ -1,11 +0,0 @@
1
- export default function prepareTypographyVars(typography) {
2
- const vars = {};
3
- const entries = Object.entries(typography);
4
- entries.forEach(entry => {
5
- const [key, value] = entry;
6
- if (typeof value === 'object') {
7
- vars[key] = `${value.fontStyle ? `${value.fontStyle} ` : ''}${value.fontVariant ? `${value.fontVariant} ` : ''}${value.fontWeight ? `${value.fontWeight} ` : ''}${value.fontStretch ? `${value.fontStretch} ` : ''}${value.fontSize || ''}${value.lineHeight ? `/${value.lineHeight} ` : ''}${value.fontFamily || ''}`;
8
- }
9
- });
10
- return vars;
11
- }
@@ -1,56 +0,0 @@
1
- import type { StorageManager } from "./localStorageManager.js";
2
- export type Mode = 'light' | 'dark' | 'system';
3
- export type SystemMode = Exclude<Mode, 'system'>;
4
- export interface State<SupportedColorScheme extends string> {
5
- /**
6
- * User selected mode.
7
- * Note: on the server, mode is always undefined
8
- */
9
- mode: 'light' | 'dark' | 'system' | undefined;
10
- /**
11
- * Only valid if `mode: 'system'`, either 'light' | 'dark'.
12
- */
13
- systemMode: 'light' | 'dark' | undefined;
14
- /**
15
- * The color scheme for the light mode.
16
- */
17
- lightColorScheme: SupportedColorScheme;
18
- /**
19
- * The color scheme for the dark mode.
20
- */
21
- darkColorScheme: SupportedColorScheme;
22
- }
23
- export type Result<SupportedColorScheme extends string> = State<SupportedColorScheme> & {
24
- /**
25
- * The current application color scheme. It is always `undefined` on the server.
26
- */
27
- colorScheme: SupportedColorScheme | undefined;
28
- /**
29
- * `mode` is saved to internal state and localStorage
30
- * If `mode` is null, it will be reset to the defaultMode
31
- */
32
- setMode: (mode: Mode | null) => void;
33
- /**
34
- * `colorScheme` is saved to internal state and localStorage
35
- * If `colorScheme` is null, it will be reset to the defaultColorScheme (light | dark)
36
- */
37
- setColorScheme: (colorScheme: SupportedColorScheme | Partial<{
38
- light: SupportedColorScheme | null;
39
- dark: SupportedColorScheme | null;
40
- }> | null) => void;
41
- };
42
- export declare function getSystemMode(mode: undefined | string): SystemMode | undefined;
43
- export declare function getColorScheme<SupportedColorScheme extends string>(state: State<SupportedColorScheme>): SupportedColorScheme | undefined;
44
- interface UseCurrentColoSchemeOptions<SupportedColorScheme extends string> {
45
- defaultLightColorScheme: SupportedColorScheme;
46
- defaultDarkColorScheme: SupportedColorScheme;
47
- supportedColorSchemes: Array<SupportedColorScheme>;
48
- defaultMode?: Mode;
49
- modeStorageKey?: string;
50
- colorSchemeStorageKey?: string;
51
- storageWindow?: Window | null;
52
- storageManager?: StorageManager | null;
53
- noSsr?: boolean;
54
- }
55
- export default function useCurrentColorScheme<SupportedColorScheme extends string>(options: UseCurrentColoSchemeOptions<SupportedColorScheme>): Result<SupportedColorScheme>;
56
- export {};
@@ -1,228 +0,0 @@
1
- 'use client';
2
-
3
- import * as React from 'react';
4
- import { DEFAULT_MODE_STORAGE_KEY, DEFAULT_COLOR_SCHEME_STORAGE_KEY } from "../InitColorSchemeScript/InitColorSchemeScript.js";
5
- import localStorageManager from "./localStorageManager.js";
6
- function noop() {}
7
- export function getSystemMode(mode) {
8
- if (typeof window !== 'undefined' && typeof window.matchMedia === 'function' && mode === 'system') {
9
- const mql = window.matchMedia('(prefers-color-scheme: dark)');
10
- if (mql.matches) {
11
- return 'dark';
12
- }
13
- return 'light';
14
- }
15
- return undefined;
16
- }
17
- function processState(state, callback) {
18
- if (state.mode === 'light' || state.mode === 'system' && state.systemMode === 'light') {
19
- return callback('light');
20
- }
21
- if (state.mode === 'dark' || state.mode === 'system' && state.systemMode === 'dark') {
22
- return callback('dark');
23
- }
24
- return undefined;
25
- }
26
- export function getColorScheme(state) {
27
- return processState(state, mode => {
28
- if (mode === 'light') {
29
- return state.lightColorScheme;
30
- }
31
- if (mode === 'dark') {
32
- return state.darkColorScheme;
33
- }
34
- return undefined;
35
- });
36
- }
37
- export default function useCurrentColorScheme(options) {
38
- const {
39
- defaultMode = 'light',
40
- defaultLightColorScheme,
41
- defaultDarkColorScheme,
42
- supportedColorSchemes = [],
43
- modeStorageKey = DEFAULT_MODE_STORAGE_KEY,
44
- colorSchemeStorageKey = DEFAULT_COLOR_SCHEME_STORAGE_KEY,
45
- storageWindow = typeof window === 'undefined' ? undefined : window,
46
- storageManager = localStorageManager,
47
- noSsr = false
48
- } = options;
49
- const joinedColorSchemes = supportedColorSchemes.join(',');
50
- const isMultiSchemes = supportedColorSchemes.length > 1;
51
- const modeStorage = React.useMemo(() => storageManager?.({
52
- key: modeStorageKey,
53
- storageWindow
54
- }), [storageManager, modeStorageKey, storageWindow]);
55
- const lightStorage = React.useMemo(() => storageManager?.({
56
- key: `${colorSchemeStorageKey}-light`,
57
- storageWindow
58
- }), [storageManager, colorSchemeStorageKey, storageWindow]);
59
- const darkStorage = React.useMemo(() => storageManager?.({
60
- key: `${colorSchemeStorageKey}-dark`,
61
- storageWindow
62
- }), [storageManager, colorSchemeStorageKey, storageWindow]);
63
- const [state, setState] = React.useState(() => {
64
- const initialMode = modeStorage?.get(defaultMode) || defaultMode;
65
- const lightColorScheme = lightStorage?.get(defaultLightColorScheme) || defaultLightColorScheme;
66
- const darkColorScheme = darkStorage?.get(defaultDarkColorScheme) || defaultDarkColorScheme;
67
- return {
68
- mode: initialMode,
69
- systemMode: getSystemMode(initialMode),
70
- lightColorScheme,
71
- darkColorScheme
72
- };
73
- });
74
- const [isClient, setIsClient] = React.useState(noSsr || !isMultiSchemes);
75
- React.useEffect(() => {
76
- setIsClient(true); // to rerender the component after hydration
77
- }, []);
78
- const colorScheme = getColorScheme(state);
79
- const setMode = React.useCallback(mode => {
80
- setState(currentState => {
81
- if (mode === currentState.mode) {
82
- // do nothing if mode does not change
83
- return currentState;
84
- }
85
- const newMode = mode ?? defaultMode;
86
- modeStorage?.set(newMode);
87
- return {
88
- ...currentState,
89
- mode: newMode,
90
- systemMode: getSystemMode(newMode)
91
- };
92
- });
93
- }, [modeStorage, defaultMode]);
94
- const setColorScheme = React.useCallback(value => {
95
- if (!value) {
96
- setState(currentState => {
97
- lightStorage?.set(defaultLightColorScheme);
98
- darkStorage?.set(defaultDarkColorScheme);
99
- return {
100
- ...currentState,
101
- lightColorScheme: defaultLightColorScheme,
102
- darkColorScheme: defaultDarkColorScheme
103
- };
104
- });
105
- } else if (typeof value === 'string') {
106
- if (value && !joinedColorSchemes.includes(value)) {
107
- console.error(`\`${value}\` does not exist in \`theme.colorSchemes\`.`);
108
- } else {
109
- setState(currentState => {
110
- const newState = {
111
- ...currentState
112
- };
113
- processState(currentState, mode => {
114
- if (mode === 'light') {
115
- lightStorage?.set(value);
116
- newState.lightColorScheme = value;
117
- }
118
- if (mode === 'dark') {
119
- darkStorage?.set(value);
120
- newState.darkColorScheme = value;
121
- }
122
- });
123
- return newState;
124
- });
125
- }
126
- } else {
127
- setState(currentState => {
128
- const newState = {
129
- ...currentState
130
- };
131
- const newLightColorScheme = value.light === null ? defaultLightColorScheme : value.light;
132
- const newDarkColorScheme = value.dark === null ? defaultDarkColorScheme : value.dark;
133
- if (newLightColorScheme) {
134
- if (!joinedColorSchemes.includes(newLightColorScheme)) {
135
- console.error(`\`${newLightColorScheme}\` does not exist in \`theme.colorSchemes\`.`);
136
- } else {
137
- newState.lightColorScheme = newLightColorScheme;
138
- lightStorage?.set(newLightColorScheme);
139
- }
140
- }
141
- if (newDarkColorScheme) {
142
- if (!joinedColorSchemes.includes(newDarkColorScheme)) {
143
- console.error(`\`${newDarkColorScheme}\` does not exist in \`theme.colorSchemes\`.`);
144
- } else {
145
- newState.darkColorScheme = newDarkColorScheme;
146
- darkStorage?.set(newDarkColorScheme);
147
- }
148
- }
149
- return newState;
150
- });
151
- }
152
- }, [joinedColorSchemes, lightStorage, darkStorage, defaultLightColorScheme, defaultDarkColorScheme]);
153
- const handleMediaQuery = React.useCallback(event => {
154
- if (state.mode === 'system') {
155
- setState(currentState => {
156
- const systemMode = event?.matches ? 'dark' : 'light';
157
-
158
- // Early exit, nothing changed.
159
- if (currentState.systemMode === systemMode) {
160
- return currentState;
161
- }
162
- return {
163
- ...currentState,
164
- systemMode
165
- };
166
- });
167
- }
168
- }, [state.mode]);
169
-
170
- // Ref hack to avoid adding handleMediaQuery as a dep
171
- const mediaListener = React.useRef(handleMediaQuery);
172
- mediaListener.current = handleMediaQuery;
173
- React.useEffect(() => {
174
- if (typeof window.matchMedia !== 'function' || !isMultiSchemes) {
175
- return undefined;
176
- }
177
- const handler = (...args) => mediaListener.current(...args);
178
-
179
- // Always listen to System preference
180
- const media = window.matchMedia('(prefers-color-scheme: dark)');
181
-
182
- // Intentionally use deprecated listener methods to support iOS & old browsers
183
- media.addListener(handler);
184
- handler(media);
185
- return () => {
186
- media.removeListener(handler);
187
- };
188
- }, [isMultiSchemes]);
189
-
190
- // Handle when localStorage has changed
191
- React.useEffect(() => {
192
- if (isMultiSchemes) {
193
- const unsubscribeMode = modeStorage?.subscribe(value => {
194
- if (!value || ['light', 'dark', 'system'].includes(value)) {
195
- setMode(value || defaultMode);
196
- }
197
- }) || noop;
198
- const unsubscribeLight = lightStorage?.subscribe(value => {
199
- if (!value || joinedColorSchemes.match(value)) {
200
- setColorScheme({
201
- light: value
202
- });
203
- }
204
- }) || noop;
205
- const unsubscribeDark = darkStorage?.subscribe(value => {
206
- if (!value || joinedColorSchemes.match(value)) {
207
- setColorScheme({
208
- dark: value
209
- });
210
- }
211
- }) || noop;
212
- return () => {
213
- unsubscribeMode();
214
- unsubscribeLight();
215
- unsubscribeDark();
216
- };
217
- }
218
- return undefined;
219
- }, [setColorScheme, setMode, joinedColorSchemes, defaultMode, storageWindow, isMultiSchemes, modeStorage, lightStorage, darkStorage]);
220
- return {
221
- ...state,
222
- mode: isClient ? state.mode : undefined,
223
- systemMode: isClient ? state.systemMode : undefined,
224
- colorScheme: isClient ? colorScheme : undefined,
225
- setMode,
226
- setColorScheme
227
- };
228
- }
@@ -1,3 +0,0 @@
1
- import { PropsFor, display } from "../Box/index.js";
2
- export type DisplayProps = PropsFor<typeof display>;
3
- export default display;
@@ -1,27 +0,0 @@
1
- import style from "../style/index.js";
2
- import compose from "../compose/index.js";
3
- export const displayPrint = style({
4
- prop: 'displayPrint',
5
- cssProperty: false,
6
- transform: value => ({
7
- '@media print': {
8
- display: value
9
- }
10
- })
11
- });
12
- export const displayRaw = style({
13
- prop: 'display'
14
- });
15
- export const overflow = style({
16
- prop: 'overflow'
17
- });
18
- export const textOverflow = style({
19
- prop: 'textOverflow'
20
- });
21
- export const visibility = style({
22
- prop: 'visibility'
23
- });
24
- export const whiteSpace = style({
25
- prop: 'whiteSpace'
26
- });
27
- export default compose(displayPrint, displayRaw, overflow, textOverflow, visibility, whiteSpace);
@@ -1,2 +0,0 @@
1
- export { default } from "./display.js";
2
- export * from "./display.js";
@@ -1,2 +0,0 @@
1
- export { default } from "./display.js";
2
- export * from "./display.js";
@@ -1,3 +0,0 @@
1
- import { PropsFor, flexbox } from "../Box/index.js";
2
- export type FlexboxProps = PropsFor<typeof flexbox>;
3
- export default flexbox;
@@ -1,43 +0,0 @@
1
- import style from "../style/index.js";
2
- import compose from "../compose/index.js";
3
- export const flexBasis = style({
4
- prop: 'flexBasis'
5
- });
6
- export const flexDirection = style({
7
- prop: 'flexDirection'
8
- });
9
- export const flexWrap = style({
10
- prop: 'flexWrap'
11
- });
12
- export const justifyContent = style({
13
- prop: 'justifyContent'
14
- });
15
- export const alignItems = style({
16
- prop: 'alignItems'
17
- });
18
- export const alignContent = style({
19
- prop: 'alignContent'
20
- });
21
- export const order = style({
22
- prop: 'order'
23
- });
24
- export const flex = style({
25
- prop: 'flex'
26
- });
27
- export const flexGrow = style({
28
- prop: 'flexGrow'
29
- });
30
- export const flexShrink = style({
31
- prop: 'flexShrink'
32
- });
33
- export const alignSelf = style({
34
- prop: 'alignSelf'
35
- });
36
- export const justifyItems = style({
37
- prop: 'justifyItems'
38
- });
39
- export const justifySelf = style({
40
- prop: 'justifySelf'
41
- });
42
- const flexbox = compose(flexBasis, flexDirection, flexWrap, justifyContent, alignItems, alignContent, order, flex, flexGrow, flexShrink, alignSelf, justifyItems, justifySelf);
43
- export default flexbox;
@@ -1,2 +0,0 @@
1
- export { default } from "./flexbox.js";
2
- export * from "./flexbox.js";
@@ -1,2 +0,0 @@
1
- export { default } from "./flexbox.js";
2
- export * from "./flexbox.js";
@@ -1 +0,0 @@
1
- export default function getThemeValue(prop: string, value: any, theme: object): any;
@@ -1,51 +0,0 @@
1
- import borders from "../borders/index.js";
2
- import display from "../display/index.js";
3
- import flexbox from "../flexbox/index.js";
4
- import grid from "../cssGrid/index.js";
5
- import positions from "../positions/index.js";
6
- import palette from "../palette/index.js";
7
- import shadows from "../shadows/index.js";
8
- import sizing from "../sizing/index.js";
9
- import spacing from "../spacing/index.js";
10
- import typography from "../typography/index.js";
11
- const filterPropsMapping = {
12
- borders: borders.filterProps,
13
- display: display.filterProps,
14
- flexbox: flexbox.filterProps,
15
- grid: grid.filterProps,
16
- positions: positions.filterProps,
17
- palette: palette.filterProps,
18
- shadows: shadows.filterProps,
19
- sizing: sizing.filterProps,
20
- spacing: spacing.filterProps,
21
- typography: typography.filterProps
22
- };
23
- export const styleFunctionMapping = {
24
- borders,
25
- display,
26
- flexbox,
27
- grid,
28
- positions,
29
- palette,
30
- shadows,
31
- sizing,
32
- spacing,
33
- typography
34
- };
35
- export const propToStyleFunction = Object.keys(filterPropsMapping).reduce((acc, styleFnName) => {
36
- filterPropsMapping[styleFnName].forEach(propName => {
37
- acc[propName] = styleFunctionMapping[styleFnName];
38
- });
39
- return acc;
40
- }, {});
41
- function getThemeValue(prop, value, theme) {
42
- const inputProps = {
43
- [prop]: value,
44
- theme
45
- };
46
- const styleFunction = propToStyleFunction[prop];
47
- return styleFunction ? styleFunction(inputProps) : {
48
- [prop]: value
49
- };
50
- }
51
- export default getThemeValue;
@@ -1,2 +0,0 @@
1
- export { default } from "./getThemeValue.js";
2
- export * from "./getThemeValue.js";
@@ -1,2 +0,0 @@
1
- export { default } from "./getThemeValue.js";
2
- export * from "./getThemeValue.js";