@ankjs/react-ui 1.0.14 → 1.0.15

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.
@@ -1,38 +1,38 @@
1
1
  export declare const light: {
2
2
  primary: string;
3
3
  primaryColor: string;
4
+ pageBg: string;
4
5
  mainBgColor: string;
5
6
  backgroundColor: string;
6
7
  secondryBgColor: string;
7
- pageBg: string;
8
8
  color: string;
9
9
  };
10
10
  export declare const dark: {
11
11
  primary: string;
12
12
  primaryColor: string;
13
13
  mainBgColor: string;
14
- secondryBgColor: string;
15
14
  pageBg: string;
16
15
  backgroundColor: string;
16
+ secondryBgColor: string;
17
17
  color: string;
18
18
  };
19
19
  declare const colors: {
20
20
  light: {
21
21
  primary: string;
22
22
  primaryColor: string;
23
+ pageBg: string;
23
24
  mainBgColor: string;
24
25
  backgroundColor: string;
25
26
  secondryBgColor: string;
26
- pageBg: string;
27
27
  color: string;
28
28
  };
29
29
  dark: {
30
30
  primary: string;
31
31
  primaryColor: string;
32
32
  mainBgColor: string;
33
- secondryBgColor: string;
34
33
  pageBg: string;
35
34
  backgroundColor: string;
35
+ secondryBgColor: string;
36
36
  color: string;
37
37
  };
38
38
  };
package/dist/index.cjs CHANGED
@@ -12,36 +12,38 @@ const AnkThemeContext = react.createContext(undefined);
12
12
  const ColorContext = react.createContext(undefined);
13
13
 
14
14
  const useSystemTheme = () => {
15
- const [sysTheme, setSysTheme] = react.useState(window.matchMedia('(prefers-color-scheme: dark)').matches
15
+ const theme = window.matchMedia('(prefers-color-scheme: dark)').matches
16
16
  ? "dark"
17
- : "light");
17
+ : "light";
18
+ const [sysTheme, setSysTheme] = react.useState(theme);
18
19
  react.useEffect(() => {
19
20
  const media = window.matchMedia('(prefers-color-scheme: dark)');
20
21
  const handleChange = () => {
21
22
  setSysTheme(media.matches ? "dark" : "light");
22
23
  };
24
+ handleChange();
23
25
  media.addEventListener("change", handleChange);
24
26
  return () => media.removeEventListener("change", handleChange);
25
- }, []);
27
+ }, [theme, setSysTheme]);
26
28
  return sysTheme;
27
29
  };
28
30
 
29
31
  const light = {
30
- primary: '#eee',
32
+ primary: 'red',
31
33
  primaryColor: 'red',
34
+ pageBg: '#8d8d8d',
32
35
  mainBgColor: '#fff',
33
36
  backgroundColor: '#f0f0f0',
34
37
  secondryBgColor: '#808080',
35
- pageBg: '#8d8d8d',
36
38
  color: '#000',
37
39
  };
38
40
  const dark = {
39
- primary: '#b30303',
41
+ primary: 'red',
40
42
  primaryColor: 'red',
41
- mainBgColor: '#009',
42
- secondryBgColor: '808080',
43
+ mainBgColor: '#000',
43
44
  pageBg: '#333',
44
45
  backgroundColor: '#444',
46
+ secondryBgColor: '808080',
45
47
  color: '#eee',
46
48
  };
47
49
 
@@ -63,7 +65,7 @@ const useThemeColors = () => {
63
65
  const reLight = light$1 ?? light;
64
66
  const reDark = dark$1 ?? dark;
65
67
  const theme = context.theme || undefined;
66
- const themeMode = context.themeMode || undefined;
68
+ const themeMode = context.themeType || undefined;
67
69
  if (theme === undefined || themeMode === undefined) {
68
70
  throw new Error(` * useThemeColors must be used within a AnkThemeProvider * \n like this - \n import AnkThemeProvider from '@ankjs/react-ui;
69
71
 
@@ -91,14 +93,25 @@ const useThemeColors = () => {
91
93
  };
92
94
 
93
95
  const MainUiView = (props) => {
94
- const { children, autoApply, style, overflow, } = props;
95
- const mainBgColor = useThemeColors();
96
- return (jsxRuntime.jsxs("div", { children: [JSON.stringify(mainBgColor), children] }));
96
+ const { children, autoApply, style, overflow, backgroundColor, fontolor } = props;
97
+ const colors = useThemeColors();
98
+ const { mainBgColor, color } = useThemeColors();
99
+ const bg = autoApply ? mainBgColor : backgroundColor;
100
+ const text = autoApply ? color : fontolor;
101
+ const styleContener = {
102
+ backgroundColor: bg,
103
+ color: text,
104
+ height: "100dvh",
105
+ width: "100%",
106
+ overflow,
107
+ ...style
108
+ };
109
+ return (jsxRuntime.jsxs("div", { style: styleContener, children: [JSON.stringify(colors), children] }));
97
110
  };
98
111
 
99
112
  const AnkThemeProvider = (props) => {
100
113
  //PROPERTY
101
- const { children, colorsObjectProvide = "", colorsObject = "", defaultThemeMode = "system", autoApply = true, style = {}, overflow = 'visible', } = props;
114
+ const { children, colorsObjectProvide = "", colorsObject = "", defaultThemeMode = "system", autoApply = true, style = {}, overflow = 'scroll', backgroundColor = "pink", color = "black" } = props;
102
115
  // SYSTEM THEME MODE 🪝
103
116
  // Assumed returns 'light' | 'dark'
104
117
  const system = useSystemTheme();
@@ -108,24 +121,30 @@ const AnkThemeProvider = (props) => {
108
121
  const [theme, setTheme] = react.useState(initialActiveTheme);
109
122
  // State for the user's selected preference
110
123
  const [themeType, setThemeType] = react.useState(defaultThemeMode);
124
+ react.useEffect(() => {
125
+ if (defaultThemeMode === 'system') {
126
+ setTheme(initialActiveTheme);
127
+ return setThemeType('system');
128
+ }
129
+ }, [defaultThemeMode, initialActiveTheme, setTheme, setThemeType]);
111
130
  const setDarkTheme = react.useCallback(() => {
112
131
  if (theme === 'dark')
113
132
  return;
114
133
  setThemeType('dark');
115
- setTheme('dark');
134
+ return setTheme('dark');
116
135
  }, [theme, setThemeType, setTheme]);
117
136
  const setLightTheme = react.useCallback(() => {
118
137
  if (theme === 'light')
119
138
  return;
120
139
  setThemeType('light');
121
- setTheme('light');
140
+ return setTheme('light');
122
141
  }, [theme, setThemeType, setTheme]);
123
142
  const setSystemTheme = react.useCallback(() => {
124
143
  if (themeType === 'system')
125
144
  return;
126
145
  setThemeType('system');
127
- setTheme(system);
128
- }, [theme, setTheme, system, setThemeType]);
146
+ return setTheme(system);
147
+ }, [themeType, setTheme, system, setThemeType]);
129
148
  // Memoize the context value to prevent unnecessary re-renders in consumers
130
149
  const contextValue = react.useMemo(() => ({
131
150
  theme,
@@ -134,13 +153,13 @@ const AnkThemeProvider = (props) => {
134
153
  setDarkTheme,
135
154
  setLightTheme,
136
155
  setSystemTheme,
137
- }), [theme, setTheme, setDarkTheme, setLightTheme, setSystemTheme]);
156
+ }), [theme, themeType, setTheme, setDarkTheme, setLightTheme, setSystemTheme]);
138
157
  // WONER COLOUR OBJECT
139
158
  const colorObj = react.useMemo(() => ({
140
159
  ...colorsObject,
141
160
  ...colorsObjectProvide,
142
161
  }), [colorsObject, colorsObjectProvide]);
143
- return (jsxRuntime.jsx(AnkThemeContext.Provider, { value: contextValue, children: jsxRuntime.jsx(ColorContext.Provider, { value: colorObj, children: jsxRuntime.jsx(MainUiView, { autoApply: autoApply, style: style, overflow: overflow, children: children }) }) }));
162
+ return (jsxRuntime.jsx(AnkThemeContext.Provider, { value: contextValue, children: jsxRuntime.jsx(ColorContext.Provider, { value: colorObj, children: jsxRuntime.jsx(MainUiView, { autoApply: autoApply, style: style, overflow: overflow, backgroundColor: backgroundColor, fontolor: color, children: children }) }) }));
144
163
  };
145
164
 
146
165
  exports.default = AnkThemeProvider;
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../src/contexts/AnkThemeContext.ts","../src/hook/useSystemTheme.ts","../src/constants/colors.ts","../src/hook/useThemeColors.ts","../src/providers/MainUiView.tsx","../src/providers/AnkThemeProvider.tsx"],"sourcesContent":[null,null,null,null,null,null],"names":["createContext","useState","useEffect","defaultLight","defaultDark","useContext","light","dark","_jsxs","useCallback","useMemo","_jsx"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","sources":["../src/contexts/AnkThemeContext.ts","../src/hook/useSystemTheme.ts","../src/constants/colors.ts","../src/hook/useThemeColors.ts","../src/providers/MainUiView.tsx","../src/providers/AnkThemeProvider.tsx"],"sourcesContent":[null,null,null,null,null,null],"names":["createContext","useState","useEffect","defaultLight","defaultDark","useContext","light","dark","_jsxs","useCallback","useMemo","_jsx"],"mappings":"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"}
package/dist/index.esm.js CHANGED
@@ -8,36 +8,38 @@ const AnkThemeContext = createContext(undefined);
8
8
  const ColorContext = createContext(undefined);
9
9
 
10
10
  const useSystemTheme = () => {
11
- const [sysTheme, setSysTheme] = useState(window.matchMedia('(prefers-color-scheme: dark)').matches
11
+ const theme = window.matchMedia('(prefers-color-scheme: dark)').matches
12
12
  ? "dark"
13
- : "light");
13
+ : "light";
14
+ const [sysTheme, setSysTheme] = useState(theme);
14
15
  useEffect(() => {
15
16
  const media = window.matchMedia('(prefers-color-scheme: dark)');
16
17
  const handleChange = () => {
17
18
  setSysTheme(media.matches ? "dark" : "light");
18
19
  };
20
+ handleChange();
19
21
  media.addEventListener("change", handleChange);
20
22
  return () => media.removeEventListener("change", handleChange);
21
- }, []);
23
+ }, [theme, setSysTheme]);
22
24
  return sysTheme;
23
25
  };
24
26
 
25
27
  const light = {
26
- primary: '#eee',
28
+ primary: 'red',
27
29
  primaryColor: 'red',
30
+ pageBg: '#8d8d8d',
28
31
  mainBgColor: '#fff',
29
32
  backgroundColor: '#f0f0f0',
30
33
  secondryBgColor: '#808080',
31
- pageBg: '#8d8d8d',
32
34
  color: '#000',
33
35
  };
34
36
  const dark = {
35
- primary: '#b30303',
37
+ primary: 'red',
36
38
  primaryColor: 'red',
37
- mainBgColor: '#009',
38
- secondryBgColor: '808080',
39
+ mainBgColor: '#000',
39
40
  pageBg: '#333',
40
41
  backgroundColor: '#444',
42
+ secondryBgColor: '808080',
41
43
  color: '#eee',
42
44
  };
43
45
 
@@ -59,7 +61,7 @@ const useThemeColors = () => {
59
61
  const reLight = light$1 ?? light;
60
62
  const reDark = dark$1 ?? dark;
61
63
  const theme = context.theme || undefined;
62
- const themeMode = context.themeMode || undefined;
64
+ const themeMode = context.themeType || undefined;
63
65
  if (theme === undefined || themeMode === undefined) {
64
66
  throw new Error(` * useThemeColors must be used within a AnkThemeProvider * \n like this - \n import AnkThemeProvider from '@ankjs/react-ui;
65
67
 
@@ -87,14 +89,25 @@ const useThemeColors = () => {
87
89
  };
88
90
 
89
91
  const MainUiView = (props) => {
90
- const { children, autoApply, style, overflow, } = props;
91
- const mainBgColor = useThemeColors();
92
- return (jsxs("div", { children: [JSON.stringify(mainBgColor), children] }));
92
+ const { children, autoApply, style, overflow, backgroundColor, fontolor } = props;
93
+ const colors = useThemeColors();
94
+ const { mainBgColor, color } = useThemeColors();
95
+ const bg = autoApply ? mainBgColor : backgroundColor;
96
+ const text = autoApply ? color : fontolor;
97
+ const styleContener = {
98
+ backgroundColor: bg,
99
+ color: text,
100
+ height: "100dvh",
101
+ width: "100%",
102
+ overflow,
103
+ ...style
104
+ };
105
+ return (jsxs("div", { style: styleContener, children: [JSON.stringify(colors), children] }));
93
106
  };
94
107
 
95
108
  const AnkThemeProvider = (props) => {
96
109
  //PROPERTY
97
- const { children, colorsObjectProvide = "", colorsObject = "", defaultThemeMode = "system", autoApply = true, style = {}, overflow = 'visible', } = props;
110
+ const { children, colorsObjectProvide = "", colorsObject = "", defaultThemeMode = "system", autoApply = true, style = {}, overflow = 'scroll', backgroundColor = "pink", color = "black" } = props;
98
111
  // SYSTEM THEME MODE 🪝
99
112
  // Assumed returns 'light' | 'dark'
100
113
  const system = useSystemTheme();
@@ -104,24 +117,30 @@ const AnkThemeProvider = (props) => {
104
117
  const [theme, setTheme] = useState(initialActiveTheme);
105
118
  // State for the user's selected preference
106
119
  const [themeType, setThemeType] = useState(defaultThemeMode);
120
+ useEffect(() => {
121
+ if (defaultThemeMode === 'system') {
122
+ setTheme(initialActiveTheme);
123
+ return setThemeType('system');
124
+ }
125
+ }, [defaultThemeMode, initialActiveTheme, setTheme, setThemeType]);
107
126
  const setDarkTheme = useCallback(() => {
108
127
  if (theme === 'dark')
109
128
  return;
110
129
  setThemeType('dark');
111
- setTheme('dark');
130
+ return setTheme('dark');
112
131
  }, [theme, setThemeType, setTheme]);
113
132
  const setLightTheme = useCallback(() => {
114
133
  if (theme === 'light')
115
134
  return;
116
135
  setThemeType('light');
117
- setTheme('light');
136
+ return setTheme('light');
118
137
  }, [theme, setThemeType, setTheme]);
119
138
  const setSystemTheme = useCallback(() => {
120
139
  if (themeType === 'system')
121
140
  return;
122
141
  setThemeType('system');
123
- setTheme(system);
124
- }, [theme, setTheme, system, setThemeType]);
142
+ return setTheme(system);
143
+ }, [themeType, setTheme, system, setThemeType]);
125
144
  // Memoize the context value to prevent unnecessary re-renders in consumers
126
145
  const contextValue = useMemo(() => ({
127
146
  theme,
@@ -130,13 +149,13 @@ const AnkThemeProvider = (props) => {
130
149
  setDarkTheme,
131
150
  setLightTheme,
132
151
  setSystemTheme,
133
- }), [theme, setTheme, setDarkTheme, setLightTheme, setSystemTheme]);
152
+ }), [theme, themeType, setTheme, setDarkTheme, setLightTheme, setSystemTheme]);
134
153
  // WONER COLOUR OBJECT
135
154
  const colorObj = useMemo(() => ({
136
155
  ...colorsObject,
137
156
  ...colorsObjectProvide,
138
157
  }), [colorsObject, colorsObjectProvide]);
139
- return (jsx(AnkThemeContext.Provider, { value: contextValue, children: jsx(ColorContext.Provider, { value: colorObj, children: jsx(MainUiView, { autoApply: autoApply, style: style, overflow: overflow, children: children }) }) }));
158
+ return (jsx(AnkThemeContext.Provider, { value: contextValue, children: jsx(ColorContext.Provider, { value: colorObj, children: jsx(MainUiView, { autoApply: autoApply, style: style, overflow: overflow, backgroundColor: backgroundColor, fontolor: color, children: children }) }) }));
140
159
  };
141
160
 
142
161
  export { AnkThemeProvider as default };
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","sources":["../src/contexts/AnkThemeContext.ts","../src/hook/useSystemTheme.ts","../src/constants/colors.ts","../src/hook/useThemeColors.ts","../src/providers/MainUiView.tsx","../src/providers/AnkThemeProvider.tsx"],"sourcesContent":[null,null,null,null,null,null],"names":["defaultLight","defaultDark","light","dark","_jsxs","_jsx"],"mappings":"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"}
1
+ {"version":3,"file":"index.esm.js","sources":["../src/contexts/AnkThemeContext.ts","../src/hook/useSystemTheme.ts","../src/constants/colors.ts","../src/hook/useThemeColors.ts","../src/providers/MainUiView.tsx","../src/providers/AnkThemeProvider.tsx"],"sourcesContent":[null,null,null,null,null,null],"names":["defaultLight","defaultDark","light","dark","_jsxs","_jsx"],"mappings":"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"}
@@ -4,4 +4,5 @@ export type MainPropsType = {
4
4
  autoApply: boolean;
5
5
  style?: CSSProperties;
6
6
  overflow?: CSSProperties['overflow'];
7
+ fontolor?: CSSProperties['color'];
7
8
  };
@@ -17,6 +17,7 @@ export type ThemeProviderProps = {
17
17
  defaultThemeMode?: 'light' | 'dark' | 'system';
18
18
  style?: CSSProperties;
19
19
  overflow?: CSSProperties['overflow'];
20
+ color?: CSSProperties['color'];
20
21
  };
21
22
  export type ThemeContextType = {
22
23
  theme?: 'light' | 'dark' | 'system';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ankjs/react-ui",
3
- "version": "1.0.14",
3
+ "version": "1.0.15",
4
4
  "description": "A simple React UI Library",
5
5
  "main": "index.js",
6
6
  "module": "dist/index.esm.js",
@@ -2,22 +2,22 @@
2
2
 
3
3
 
4
4
  export const light = {
5
- primary: '#eee',
5
+ primary: 'red',
6
6
  primaryColor: 'red',
7
+ pageBg: '#8d8d8d',
7
8
  mainBgColor: '#fff',
8
9
  backgroundColor: '#f0f0f0',
9
10
  secondryBgColor: '#808080',
10
- pageBg: '#8d8d8d',
11
11
  color: '#000',
12
12
  }
13
13
 
14
14
  export const dark = {
15
- primary: '#b30303',
15
+ primary: 'red',
16
16
  primaryColor: 'red',
17
- mainBgColor: '#009',
18
- secondryBgColor: '808080',
17
+ mainBgColor: '#000',
19
18
  pageBg: '#333',
20
19
  backgroundColor: '#444',
20
+ secondryBgColor: '808080',
21
21
  color: '#eee',
22
22
  }
23
23
 
@@ -2,25 +2,27 @@ import { useEffect, useState } from "react";
2
2
 
3
3
 
4
4
 
5
- type Theme = "light" | "dark";
5
+
6
+
6
7
  const useSystemTheme = () => {
7
8
 
9
+ const theme = window.matchMedia('(prefers-color-scheme: dark)').matches
10
+ ? "dark"
11
+ : "light"
8
12
 
9
13
  const [sysTheme, setSysTheme] = useState<'light' | 'dark'>(
10
- window.matchMedia('(prefers-color-scheme: dark)').matches
11
- ? "dark"
12
- : "light"
14
+ theme
13
15
  );
14
16
 
15
-
16
17
  useEffect(() => {
17
18
  const media = window.matchMedia('(prefers-color-scheme: dark)');
18
19
  const handleChange = () => {
19
20
  setSysTheme(media.matches ? "dark" : "light");
20
21
  };
22
+ handleChange();
21
23
  media.addEventListener("change", handleChange);
22
24
  return () => media.removeEventListener("change", handleChange);
23
- }, []);
25
+ }, [theme, setSysTheme]);
24
26
 
25
27
  return sysTheme;
26
28
  };
@@ -15,6 +15,7 @@ const defaultColorsObject = {
15
15
  const useThemeColors = (): ThemeContextType | undefined => {
16
16
  const context = useContext(AnkThemeContext);
17
17
 
18
+
18
19
  if (!context) {
19
20
  throw new Error(` * useThemeColors must be used within a AnkThemeProvider * \n like this - \n import AnkThemeProvider from '@ankjs/react-ui;
20
21
 
@@ -23,13 +24,18 @@ const useThemeColors = (): ThemeContextType | undefined => {
23
24
  </AnkThemeProvider>
24
25
  `)
25
26
  };
27
+
28
+
26
29
  const { light, dark } = useContext(ColorContext) ?? defaultColorsObject;
27
30
 
28
31
  const reLight = light ?? defaultLight;
29
32
  const reDark = dark ?? defaultDark;
30
33
 
31
34
  const theme = context.theme || undefined;
32
- const themeMode = context.themeMode || undefined;
35
+ const themeMode = context.themeType || undefined;
36
+
37
+
38
+
33
39
 
34
40
  if (theme === undefined || themeMode === undefined) {
35
41
  throw new Error(` * useThemeColors must be used within a AnkThemeProvider * \n like this - \n import AnkThemeProvider from '@ankjs/react-ui;
@@ -5,7 +5,7 @@ Copyright (c) [2026] [ankjs]
5
5
  Filename: AnkThemeProvider.tsx
6
6
  */
7
7
 
8
- import React, { useState, useCallback, useMemo } from 'react';
8
+ import React, { useState, useCallback, useMemo, useEffect } from 'react';
9
9
  import {
10
10
  AnkThemeContext,
11
11
  ColorContext
@@ -28,7 +28,9 @@ const AnkThemeProvider = (props: ThemeProviderProps) => {
28
28
  defaultThemeMode = "system",
29
29
  autoApply = true,
30
30
  style = {},
31
- overflow = 'visible',
31
+ overflow = 'scroll',
32
+ backgroundColor = "pink",
33
+ color = "black"
32
34
  } = props;
33
35
 
34
36
 
@@ -48,23 +50,32 @@ const AnkThemeProvider = (props: ThemeProviderProps) => {
48
50
 
49
51
 
50
52
 
53
+ useEffect(() => {
54
+ if (defaultThemeMode === 'system') {
55
+ setTheme(initialActiveTheme);
56
+ return setThemeType('system');
57
+ };
58
+ }, [defaultThemeMode, initialActiveTheme, setTheme, setThemeType]);
59
+
60
+
61
+
51
62
  const setDarkTheme = useCallback(() => {
52
63
  if (theme === 'dark') return;
53
64
  setThemeType('dark');
54
- setTheme('dark');
65
+ return setTheme('dark');
55
66
  }, [theme, setThemeType, setTheme]);
56
67
 
57
68
  const setLightTheme = useCallback(() => {
58
69
  if (theme === 'light') return;
59
70
  setThemeType('light');
60
- setTheme('light');
71
+ return setTheme('light');
61
72
  }, [theme, setThemeType, setTheme]);
62
73
 
63
74
  const setSystemTheme = useCallback(() => {
64
75
  if (themeType === 'system') return
65
76
  setThemeType('system');
66
- setTheme(system);
67
- }, [theme, setTheme, system, setThemeType]);
77
+ return setTheme(system);
78
+ }, [themeType, setTheme, system, setThemeType]);
68
79
 
69
80
 
70
81
 
@@ -78,7 +89,7 @@ const AnkThemeProvider = (props: ThemeProviderProps) => {
78
89
  setLightTheme,
79
90
  setSystemTheme,
80
91
  }),
81
- [theme, setTheme, setDarkTheme, setLightTheme, setSystemTheme],
92
+ [theme, themeType, setTheme, setDarkTheme, setLightTheme, setSystemTheme],
82
93
  );
83
94
 
84
95
 
@@ -100,7 +111,10 @@ const AnkThemeProvider = (props: ThemeProviderProps) => {
100
111
  autoApply={autoApply}
101
112
  style={style}
102
113
  overflow={overflow}
114
+ backgroundColor={backgroundColor}
115
+ fontolor={color}
103
116
  >
117
+
104
118
  {children}
105
119
  </MainUiView>
106
120
  </ColorContext.Provider>
@@ -108,3 +122,6 @@ const AnkThemeProvider = (props: ThemeProviderProps) => {
108
122
  )
109
123
  };
110
124
  export default AnkThemeProvider;
125
+
126
+ /*
127
+ */
@@ -12,16 +12,34 @@ const MainUiView = (props: MainPropsType) => {
12
12
  autoApply,
13
13
  style,
14
14
  overflow,
15
+ backgroundColor,
16
+ fontolor
15
17
  } = props;
16
18
 
17
- const mainBgColor = useThemeColors();
19
+ const colors = useThemeColors();
20
+ const {
21
+ mainBgColor, color
22
+ } = useThemeColors();
23
+
24
+ const bg = autoApply ? mainBgColor : backgroundColor
25
+ const text = autoApply ? color: fontolor ;
26
+
27
+ const styleContener = {
28
+ backgroundColor: bg,
29
+ color: text,
30
+ height: "100dvh",
31
+ width: "100%",
32
+ overflow,
33
+ ...style
34
+ }
18
35
 
19
36
 
20
37
  return (
21
38
  <div
39
+ style={styleContener}
22
40
  >
23
41
  {
24
- JSON.stringify(mainBgColor)
42
+ JSON.stringify(colors)
25
43
  }
26
44
  {children}
27
45
  </div>
@@ -9,5 +9,6 @@ export type MainPropsType = {
9
9
  children: ReactNode,
10
10
  autoApply: boolean,
11
11
  style?: CSSProperties,
12
- overflow?: CSSProperties['overflow']
12
+ overflow?: CSSProperties['overflow'],
13
+ fontolor?: CSSProperties['color']
13
14
  }
@@ -20,6 +20,7 @@ export type ThemeProviderProps = {
20
20
  defaultThemeMode?: 'light' | 'dark' | 'system',
21
21
  style?: CSSProperties,
22
22
  overflow?: CSSProperties['overflow']
23
+ color?: CSSProperties['color']
23
24
  }
24
25
 
25
26
  export type ThemeContextType = {