@rufous/ui 0.1.65 → 0.1.66

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.
@@ -191,53 +191,55 @@ var APP_THEMES = {
191
191
  // lib/Contexts/rufousThemeProvider.tsx
192
192
  var RufousThemeContext = (0, import_react.createContext)(null);
193
193
  var RufousThemeProvider = ({ children }) => {
194
- const [colorScheme, setColorScheme] = (0, import_react.useState)("rufous");
195
- const [mode, setMode] = (0, import_react.useState)("light");
194
+ const [committedThemeKey, setCommittedThemeKey] = (0, import_react.useState)("default");
195
+ const [previewThemeKey, setPreviewThemeKey] = (0, import_react.useState)("default");
196
+ const [settings, setSettings] = (0, import_react.useState)(null);
197
+ const getGeneralSettings = async () => {
198
+ try {
199
+ const theme = localStorage.getItem("theme") || "default";
200
+ setCommittedThemeKey(theme);
201
+ setPreviewThemeKey(theme);
202
+ } catch (err) {
203
+ console.error("Error fetching general settings:", err);
204
+ }
205
+ };
196
206
  (0, import_react.useEffect)(() => {
197
- const savedScheme = localStorage.getItem("colorScheme") || "rufous";
198
- const savedMode = localStorage.getItem("themeMode") || "light";
199
- setColorScheme(savedScheme);
200
- setMode(savedMode);
207
+ getGeneralSettings();
201
208
  }, []);
202
- const toggleMode = () => {
203
- const newMode = mode === "light" ? "dark" : "light";
204
- setMode(newMode);
205
- localStorage.setItem("themeMode", newMode);
206
- };
207
- const changeScheme = (scheme) => {
208
- setColorScheme(scheme);
209
- localStorage.setItem("colorScheme", scheme);
210
- };
211
- const saveTheme = () => {
212
- localStorage.setItem("themeMode", mode);
213
- localStorage.setItem("colorScheme", colorScheme);
214
- };
215
- const updateSettings = (settings) => {
216
- if (settings.theme) setColorScheme(settings.theme);
217
- if (settings.mode) setMode(settings.mode);
218
- };
219
209
  const fullTheme = (0, import_react.useMemo)(() => {
220
210
  return {
221
- themeKey: colorScheme,
222
- customStyles: APP_THEMES[colorScheme][mode]
211
+ themeKey: previewThemeKey || settings.theme,
212
+ customStyles: APP_THEMES[previewThemeKey || settings.theme]
223
213
  };
224
- }, [colorScheme, mode]);
214
+ }, [previewThemeKey, settings]);
215
+ const previewTheme = (key) => setPreviewThemeKey(key);
216
+ const saveTheme = (inputKey) => {
217
+ const key = inputKey || previewThemeKey || settings.theme;
218
+ localStorage.setItem("theme", key);
219
+ setCommittedThemeKey(key);
220
+ };
221
+ const cancelTheme = () => setPreviewThemeKey(committedThemeKey);
225
222
  return /* @__PURE__ */ import_react.default.createElement(
226
223
  RufousThemeContext.Provider,
227
224
  {
228
225
  value: {
229
- colorScheme,
230
- mode,
231
- toggleMode,
232
- changeScheme,
233
- previewTheme: fullTheme,
226
+ theme: fullTheme,
227
+ previewTheme,
234
228
  saveTheme,
235
- updateSettings,
236
- theme: APP_THEMES[colorScheme][mode],
237
- themeConfig: APP_THEMES[colorScheme][mode]
229
+ cancelTheme,
230
+ currentThemeKey: previewThemeKey,
231
+ committedThemeKey,
232
+ settings,
233
+ updateSettings: (v) => setSettings(v)
238
234
  }
239
235
  },
240
- /* @__PURE__ */ import_react.default.createElement("div", { className: `rufous-theme-root scheme-${colorScheme} mode-${mode}` }, children)
236
+ /* @__PURE__ */ import_react.default.createElement(
237
+ "div",
238
+ {
239
+ className: `theme-${previewThemeKey || committedThemeKey || "default"}`
240
+ },
241
+ children
242
+ )
241
243
  );
242
244
  };
243
245
  var useRufousTheme = () => (0, import_react.useContext)(RufousThemeContext);
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  RufousThemeProvider,
3
3
  useRufousTheme
4
- } from "../chunk-NNKORPBI.js";
4
+ } from "../chunk-BOE27BFQ.js";
5
5
  import "../chunk-S7BNFVQO.js";
6
6
  import "../chunk-LI4N7JWK.js";
7
7
  export {
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  BaseDialog_default
3
- } from "../chunk-EZ7WAUAG.js";
3
+ } from "../chunk-4GPYGFPP.js";
4
4
  import "../chunk-E5RTHYCU.js";
5
5
  import "../chunk-EZI3QGYJ.js";
6
6
  import "../chunk-QTGVW36I.js";
@@ -54,15 +54,13 @@ import "../chunk-XPJVVKOU.js";
54
54
  import "../chunk-GL43GPEM.js";
55
55
  import "../chunk-FZCFFVXW.js";
56
56
  import "../chunk-N26C33E6.js";
57
+ import "../chunk-EB6MPFGC.js";
58
+ import "../chunk-UPCMMCPQ.js";
57
59
  import "../chunk-AH6RCYDL.js";
58
60
  import "../chunk-3IBCGGN3.js";
59
61
  import "../chunk-MNPAE2ZF.js";
60
62
  import "../chunk-Q5XKCUE3.js";
61
- import "../chunk-3MC7I6L2.js";
62
- import "../chunk-UPCMMCPQ.js";
63
63
  import "../chunk-X357WQOT.js";
64
- import "../chunk-NNKORPBI.js";
65
- import "../chunk-S7BNFVQO.js";
66
64
  import "../chunk-7KRG7VNW.js";
67
65
  import "../chunk-J6E3UO2W.js";
68
66
  import "../chunk-GJGRMMAQ.js";
@@ -73,6 +71,8 @@ import "../chunk-BMMDUQDJ.js";
73
71
  import "../chunk-R3GARAVJ.js";
74
72
  import "../chunk-YRLN3TBF.js";
75
73
  import "../chunk-CTBYVXFP.js";
74
+ import "../chunk-BOE27BFQ.js";
75
+ import "../chunk-S7BNFVQO.js";
76
76
  import "../chunk-LI4N7JWK.js";
77
77
  export {
78
78
  BaseDialog_default as default
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  BaseDialog_default
3
- } from "../chunk-EZ7WAUAG.js";
3
+ } from "../chunk-4GPYGFPP.js";
4
4
  import "../chunk-E5RTHYCU.js";
5
5
  import "../chunk-EZI3QGYJ.js";
6
6
  import "../chunk-QTGVW36I.js";
@@ -54,15 +54,13 @@ import "../chunk-XPJVVKOU.js";
54
54
  import "../chunk-GL43GPEM.js";
55
55
  import "../chunk-FZCFFVXW.js";
56
56
  import "../chunk-N26C33E6.js";
57
+ import "../chunk-EB6MPFGC.js";
58
+ import "../chunk-UPCMMCPQ.js";
57
59
  import "../chunk-AH6RCYDL.js";
58
60
  import "../chunk-3IBCGGN3.js";
59
61
  import "../chunk-MNPAE2ZF.js";
60
62
  import "../chunk-Q5XKCUE3.js";
61
- import "../chunk-3MC7I6L2.js";
62
- import "../chunk-UPCMMCPQ.js";
63
63
  import "../chunk-X357WQOT.js";
64
- import "../chunk-NNKORPBI.js";
65
- import "../chunk-S7BNFVQO.js";
66
64
  import "../chunk-7KRG7VNW.js";
67
65
  import "../chunk-J6E3UO2W.js";
68
66
  import "../chunk-GJGRMMAQ.js";
@@ -73,6 +71,8 @@ import "../chunk-BMMDUQDJ.js";
73
71
  import "../chunk-R3GARAVJ.js";
74
72
  import "../chunk-YRLN3TBF.js";
75
73
  import "../chunk-CTBYVXFP.js";
74
+ import "../chunk-BOE27BFQ.js";
75
+ import "../chunk-S7BNFVQO.js";
76
76
  import "../chunk-LI4N7JWK.js";
77
77
  export {
78
78
  BaseDialog_default as BaseDialog
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  AddressLookup_default
3
- } from "../chunk-3MC7I6L2.js";
3
+ } from "../chunk-EB6MPFGC.js";
4
4
  import "../chunk-UPCMMCPQ.js";
5
- import "../chunk-NNKORPBI.js";
6
- import "../chunk-S7BNFVQO.js";
7
5
  import "../chunk-CTBYVXFP.js";
6
+ import "../chunk-BOE27BFQ.js";
7
+ import "../chunk-S7BNFVQO.js";
8
8
  import "../chunk-LI4N7JWK.js";
9
9
  export {
10
10
  AddressLookup_default as default
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-Q5XKCUE3.js";
4
4
  import {
5
5
  useRufousTheme
6
- } from "./chunk-NNKORPBI.js";
6
+ } from "./chunk-BOE27BFQ.js";
7
7
 
8
8
  // lib/Dialogs/BaseDialog.tsx
9
9
  import * as React from "react";
@@ -0,0 +1,71 @@
1
+ import {
2
+ APP_THEMES
3
+ } from "./chunk-S7BNFVQO.js";
4
+
5
+ // lib/Contexts/rufousThemeProvider.tsx
6
+ import React, {
7
+ createContext,
8
+ useContext,
9
+ useEffect,
10
+ useMemo,
11
+ useState
12
+ } from "react";
13
+ var RufousThemeContext = createContext(null);
14
+ var RufousThemeProvider = ({ children }) => {
15
+ const [committedThemeKey, setCommittedThemeKey] = useState("default");
16
+ const [previewThemeKey, setPreviewThemeKey] = useState("default");
17
+ const [settings, setSettings] = useState(null);
18
+ const getGeneralSettings = async () => {
19
+ try {
20
+ const theme = localStorage.getItem("theme") || "default";
21
+ setCommittedThemeKey(theme);
22
+ setPreviewThemeKey(theme);
23
+ } catch (err) {
24
+ console.error("Error fetching general settings:", err);
25
+ }
26
+ };
27
+ useEffect(() => {
28
+ getGeneralSettings();
29
+ }, []);
30
+ const fullTheme = useMemo(() => {
31
+ return {
32
+ themeKey: previewThemeKey || settings.theme,
33
+ customStyles: APP_THEMES[previewThemeKey || settings.theme]
34
+ };
35
+ }, [previewThemeKey, settings]);
36
+ const previewTheme = (key) => setPreviewThemeKey(key);
37
+ const saveTheme = (inputKey) => {
38
+ const key = inputKey || previewThemeKey || settings.theme;
39
+ localStorage.setItem("theme", key);
40
+ setCommittedThemeKey(key);
41
+ };
42
+ const cancelTheme = () => setPreviewThemeKey(committedThemeKey);
43
+ return /* @__PURE__ */ React.createElement(
44
+ RufousThemeContext.Provider,
45
+ {
46
+ value: {
47
+ theme: fullTheme,
48
+ previewTheme,
49
+ saveTheme,
50
+ cancelTheme,
51
+ currentThemeKey: previewThemeKey,
52
+ committedThemeKey,
53
+ settings,
54
+ updateSettings: (v) => setSettings(v)
55
+ }
56
+ },
57
+ /* @__PURE__ */ React.createElement(
58
+ "div",
59
+ {
60
+ className: `theme-${previewThemeKey || committedThemeKey || "default"}`
61
+ },
62
+ children
63
+ )
64
+ );
65
+ };
66
+ var useRufousTheme = () => useContext(RufousThemeContext);
67
+
68
+ export {
69
+ RufousThemeProvider,
70
+ useRufousTheme
71
+ };
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  FloatingInput
3
3
  } from "./chunk-UPCMMCPQ.js";
4
- import {
5
- useRufousTheme
6
- } from "./chunk-NNKORPBI.js";
7
4
  import {
8
5
  circularProgress_default
9
6
  } from "./chunk-CTBYVXFP.js";
7
+ import {
8
+ useRufousTheme
9
+ } from "./chunk-BOE27BFQ.js";
10
10
 
11
11
  // lib/TextFields/AddressLookup.tsx
12
12
  import React, { useState, useRef, useEffect } from "react";
package/dist/main.cjs CHANGED
@@ -29973,53 +29973,55 @@ var BaseDialog_default = BaseDialog;
29973
29973
  var import_react14 = __toESM(require("react"), 1);
29974
29974
  var RufousThemeContext = (0, import_react14.createContext)(null);
29975
29975
  var RufousThemeProvider = ({ children }) => {
29976
- const [colorScheme, setColorScheme] = (0, import_react14.useState)("rufous");
29977
- const [mode, setMode] = (0, import_react14.useState)("light");
29976
+ const [committedThemeKey, setCommittedThemeKey] = (0, import_react14.useState)("default");
29977
+ const [previewThemeKey, setPreviewThemeKey] = (0, import_react14.useState)("default");
29978
+ const [settings, setSettings] = (0, import_react14.useState)(null);
29979
+ const getGeneralSettings = async () => {
29980
+ try {
29981
+ const theme = localStorage.getItem("theme") || "default";
29982
+ setCommittedThemeKey(theme);
29983
+ setPreviewThemeKey(theme);
29984
+ } catch (err) {
29985
+ console.error("Error fetching general settings:", err);
29986
+ }
29987
+ };
29978
29988
  (0, import_react14.useEffect)(() => {
29979
- const savedScheme = localStorage.getItem("colorScheme") || "rufous";
29980
- const savedMode = localStorage.getItem("themeMode") || "light";
29981
- setColorScheme(savedScheme);
29982
- setMode(savedMode);
29989
+ getGeneralSettings();
29983
29990
  }, []);
29984
- const toggleMode = () => {
29985
- const newMode = mode === "light" ? "dark" : "light";
29986
- setMode(newMode);
29987
- localStorage.setItem("themeMode", newMode);
29988
- };
29989
- const changeScheme = (scheme) => {
29990
- setColorScheme(scheme);
29991
- localStorage.setItem("colorScheme", scheme);
29992
- };
29993
- const saveTheme = () => {
29994
- localStorage.setItem("themeMode", mode);
29995
- localStorage.setItem("colorScheme", colorScheme);
29996
- };
29997
- const updateSettings = (settings) => {
29998
- if (settings.theme) setColorScheme(settings.theme);
29999
- if (settings.mode) setMode(settings.mode);
30000
- };
30001
29991
  const fullTheme = (0, import_react14.useMemo)(() => {
30002
29992
  return {
30003
- themeKey: colorScheme,
30004
- customStyles: APP_THEMES[colorScheme][mode]
30005
- };
30006
- }, [colorScheme, mode]);
29993
+ themeKey: previewThemeKey || settings.theme,
29994
+ customStyles: APP_THEMES[previewThemeKey || settings.theme]
29995
+ };
29996
+ }, [previewThemeKey, settings]);
29997
+ const previewTheme = (key) => setPreviewThemeKey(key);
29998
+ const saveTheme = (inputKey) => {
29999
+ const key = inputKey || previewThemeKey || settings.theme;
30000
+ localStorage.setItem("theme", key);
30001
+ setCommittedThemeKey(key);
30002
+ };
30003
+ const cancelTheme = () => setPreviewThemeKey(committedThemeKey);
30007
30004
  return /* @__PURE__ */ import_react14.default.createElement(
30008
30005
  RufousThemeContext.Provider,
30009
30006
  {
30010
30007
  value: {
30011
- colorScheme,
30012
- mode,
30013
- toggleMode,
30014
- changeScheme,
30015
- previewTheme: fullTheme,
30008
+ theme: fullTheme,
30009
+ previewTheme,
30016
30010
  saveTheme,
30017
- updateSettings,
30018
- theme: APP_THEMES[colorScheme][mode],
30019
- themeConfig: APP_THEMES[colorScheme][mode]
30011
+ cancelTheme,
30012
+ currentThemeKey: previewThemeKey,
30013
+ committedThemeKey,
30014
+ settings,
30015
+ updateSettings: (v) => setSettings(v)
30020
30016
  }
30021
30017
  },
30022
- /* @__PURE__ */ import_react14.default.createElement("div", { className: `rufous-theme-root scheme-${colorScheme} mode-${mode}` }, children)
30018
+ /* @__PURE__ */ import_react14.default.createElement(
30019
+ "div",
30020
+ {
30021
+ className: `theme-${previewThemeKey || committedThemeKey || "default"}`
30022
+ },
30023
+ children
30024
+ )
30023
30025
  );
30024
30026
  };
30025
30027
  var useRufousTheme = () => (0, import_react14.useContext)(RufousThemeContext);
package/dist/main.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  BaseDialog_default
3
- } from "./chunk-EZ7WAUAG.js";
3
+ } from "./chunk-4GPYGFPP.js";
4
4
  import "./chunk-E5RTHYCU.js";
5
5
  import {
6
6
  unsubscribeIcon_default
@@ -158,6 +158,12 @@ import {
158
158
  import {
159
159
  downloadPdfIcon_default
160
160
  } from "./chunk-N26C33E6.js";
161
+ import {
162
+ AddressLookup_default
163
+ } from "./chunk-EB6MPFGC.js";
164
+ import {
165
+ FloatingInput
166
+ } from "./chunk-UPCMMCPQ.js";
161
167
  import {
162
168
  activateUserIcon_default
163
169
  } from "./chunk-AH6RCYDL.js";
@@ -170,22 +176,9 @@ import {
170
176
  import {
171
177
  closeIcon_default
172
178
  } from "./chunk-Q5XKCUE3.js";
173
- import {
174
- AddressLookup_default
175
- } from "./chunk-3MC7I6L2.js";
176
- import {
177
- FloatingInput
178
- } from "./chunk-UPCMMCPQ.js";
179
179
  import {
180
180
  Checkbox
181
181
  } from "./chunk-X357WQOT.js";
182
- import {
183
- RufousThemeProvider,
184
- useRufousTheme
185
- } from "./chunk-NNKORPBI.js";
186
- import {
187
- APP_THEMES
188
- } from "./chunk-S7BNFVQO.js";
189
182
  import "./chunk-7KRG7VNW.js";
190
183
  import {
191
184
  DataGrid
@@ -210,6 +203,13 @@ import {
210
203
  import {
211
204
  circularProgress_default
212
205
  } from "./chunk-CTBYVXFP.js";
206
+ import {
207
+ RufousThemeProvider,
208
+ useRufousTheme
209
+ } from "./chunk-BOE27BFQ.js";
210
+ import {
211
+ APP_THEMES
212
+ } from "./chunk-S7BNFVQO.js";
213
213
  import "./chunk-LI4N7JWK.js";
214
214
  export {
215
215
  APP_THEMES,
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@rufous/ui",
3
3
  "private": false,
4
- "version": "0.1.65",
4
+ "version": "0.1.66",
5
5
  "type": "module",
6
6
  "description": "Experimental: A lightweight React UI component library (Beta)",
7
7
  "style": "./dist/style.css",
@@ -1,69 +0,0 @@
1
- import {
2
- APP_THEMES
3
- } from "./chunk-S7BNFVQO.js";
4
-
5
- // lib/Contexts/rufousThemeProvider.tsx
6
- import React, {
7
- createContext,
8
- useContext,
9
- useEffect,
10
- useMemo,
11
- useState
12
- } from "react";
13
- var RufousThemeContext = createContext(null);
14
- var RufousThemeProvider = ({ children }) => {
15
- const [colorScheme, setColorScheme] = useState("rufous");
16
- const [mode, setMode] = useState("light");
17
- useEffect(() => {
18
- const savedScheme = localStorage.getItem("colorScheme") || "rufous";
19
- const savedMode = localStorage.getItem("themeMode") || "light";
20
- setColorScheme(savedScheme);
21
- setMode(savedMode);
22
- }, []);
23
- const toggleMode = () => {
24
- const newMode = mode === "light" ? "dark" : "light";
25
- setMode(newMode);
26
- localStorage.setItem("themeMode", newMode);
27
- };
28
- const changeScheme = (scheme) => {
29
- setColorScheme(scheme);
30
- localStorage.setItem("colorScheme", scheme);
31
- };
32
- const saveTheme = () => {
33
- localStorage.setItem("themeMode", mode);
34
- localStorage.setItem("colorScheme", colorScheme);
35
- };
36
- const updateSettings = (settings) => {
37
- if (settings.theme) setColorScheme(settings.theme);
38
- if (settings.mode) setMode(settings.mode);
39
- };
40
- const fullTheme = useMemo(() => {
41
- return {
42
- themeKey: colorScheme,
43
- customStyles: APP_THEMES[colorScheme][mode]
44
- };
45
- }, [colorScheme, mode]);
46
- return /* @__PURE__ */ React.createElement(
47
- RufousThemeContext.Provider,
48
- {
49
- value: {
50
- colorScheme,
51
- mode,
52
- toggleMode,
53
- changeScheme,
54
- previewTheme: fullTheme,
55
- saveTheme,
56
- updateSettings,
57
- theme: APP_THEMES[colorScheme][mode],
58
- themeConfig: APP_THEMES[colorScheme][mode]
59
- }
60
- },
61
- /* @__PURE__ */ React.createElement("div", { className: `rufous-theme-root scheme-${colorScheme} mode-${mode}` }, children)
62
- );
63
- };
64
- var useRufousTheme = () => useContext(RufousThemeContext);
65
-
66
- export {
67
- RufousThemeProvider,
68
- useRufousTheme
69
- };