@vasakgroup/plugin-config-manager 2.1.0 → 2.2.2

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/dist-js/index.cjs CHANGED
@@ -26,6 +26,12 @@ async function readConfig() {
26
26
  }
27
27
  return null;
28
28
  }
29
+ async function getSchemes() {
30
+ return await core.invoke("plugin:config-manager|get_schemes");
31
+ }
32
+ async function getSchemeById(schemeId) {
33
+ return await core.invoke("plugin:config-manager|get_scheme_by_id", { schemeId });
34
+ }
29
35
  let configStore = null;
30
36
  const useConfigStore = () => {
31
37
  configStore ??= pinia.defineStore("config", () => {
@@ -33,7 +39,7 @@ const useConfigStore = () => {
33
39
  const loadConfig = async () => {
34
40
  config.value = await readConfig();
35
41
  setMode();
36
- setProperties();
42
+ await setProperties();
37
43
  };
38
44
  const setMode = () => {
39
45
  if (config.value?.style?.darkmode) {
@@ -43,13 +49,80 @@ const useConfigStore = () => {
43
49
  document.documentElement.classList.remove("dark");
44
50
  }
45
51
  };
46
- const setProperties = () => {
52
+ const setProperties = async () => {
47
53
  if (config.value?.style) {
48
- const { primarycolor, radius } = config.value.style;
49
- if (primarycolor && primarycolor.trim() !== "") {
50
- document.documentElement.style.setProperty("--primary-color", primarycolor);
54
+ const { "color-scheme": colorScheme, radius } = config.value.style;
55
+ const scheme = await getSchemeById(colorScheme);
56
+ if (scheme !== null && scheme !== undefined) {
57
+ const darkScheme = scheme.scheme.colors.dark;
58
+ const lightScheme = scheme.scheme.colors.light;
59
+ // Colores de Marca
60
+ document.documentElement.style.setProperty("--primary", lightScheme.ui.color.primary);
61
+ document.documentElement.style.setProperty("--secondary", lightScheme.ui.color.secondary);
62
+ document.documentElement.style.setProperty("--primary-dark", darkScheme.ui.color.primary);
63
+ document.documentElement.style.setProperty("--secondary-dark", darkScheme.ui.color.secondary);
64
+ // Colores de Interfaz (UI)
65
+ document.documentElement.style.setProperty("--ui-background", lightScheme.ui.background);
66
+ document.documentElement.style.setProperty("--ui-surface", lightScheme.ui.surface);
67
+ document.documentElement.style.setProperty("--ui-border", lightScheme.ui.border);
68
+ document.documentElement.style.setProperty("--ui-background-dark", darkScheme.ui.background);
69
+ document.documentElement.style.setProperty("--ui-surface-dark", darkScheme.ui.surface);
70
+ document.documentElement.style.setProperty("--ui-border-dark", darkScheme.ui.border);
71
+ // Colores de Texto
72
+ document.documentElement.style.setProperty("--text-main", lightScheme.ui.text.main);
73
+ document.documentElement.style.setProperty("--text-muted", lightScheme.ui.text.muted);
74
+ document.documentElement.style.setProperty("--text-on-primary", lightScheme.ui.text["on-primary"]);
75
+ document.documentElement.style.setProperty("--text-main-dark", darkScheme.ui.text.main);
76
+ document.documentElement.style.setProperty("--text-muted-dark", darkScheme.ui.text.muted);
77
+ document.documentElement.style.setProperty("--text-on-primary-dark", darkScheme.ui.text["on-primary"]);
78
+ // Status Colors
79
+ document.documentElement.style.setProperty("--status-error", lightScheme.terminal.ansi.red);
80
+ document.documentElement.style.setProperty("--status-success", lightScheme.terminal.ansi.green);
81
+ document.documentElement.style.setProperty("--status-warning", lightScheme.terminal.ansi.yellow);
82
+ document.documentElement.style.setProperty("--status-error-dark", darkScheme.terminal.ansi.red);
83
+ document.documentElement.style.setProperty("--status-success-dark", darkScheme.terminal.ansi.green);
84
+ document.documentElement.style.setProperty("--status-warning-dark", darkScheme.terminal.ansi.yellow);
85
+ // Terminal Colors
86
+ document.documentElement.style.setProperty("--terminal-foreground", lightScheme.terminal.foreground);
87
+ document.documentElement.style.setProperty("--terminal-background", lightScheme.terminal.background);
88
+ document.documentElement.style.setProperty("--terminal-cursor", lightScheme.terminal.cursor);
89
+ document.documentElement.style.setProperty("--terminal-foreground-dark", darkScheme.terminal.foreground);
90
+ document.documentElement.style.setProperty("--terminal-background-dark", darkScheme.terminal.background);
91
+ document.documentElement.style.setProperty("--terminal-cursor-dark", darkScheme.terminal.cursor);
92
+ document.documentElement.style.setProperty("--terminal-ansi-black", lightScheme.terminal.ansi.black);
93
+ document.documentElement.style.setProperty("--terminal-ansi-red", lightScheme.terminal.ansi.red);
94
+ document.documentElement.style.setProperty("--terminal-ansi-green", lightScheme.terminal.ansi.green);
95
+ document.documentElement.style.setProperty("--terminal-ansi-yellow", lightScheme.terminal.ansi.yellow);
96
+ document.documentElement.style.setProperty("--terminal-ansi-blue", lightScheme.terminal.ansi.blue);
97
+ document.documentElement.style.setProperty("--terminal-ansi-magenta", lightScheme.terminal.ansi.magenta);
98
+ document.documentElement.style.setProperty("--terminal-ansi-cyan", lightScheme.terminal.ansi.cyan);
99
+ document.documentElement.style.setProperty("--terminal-ansi-white", lightScheme.terminal.ansi.white);
100
+ document.documentElement.style.setProperty("--terminal-ansi-bright-black", lightScheme.terminal.ansi.brightBlack);
101
+ document.documentElement.style.setProperty("--terminal-ansi-bright-red", lightScheme.terminal.ansi.brightRed);
102
+ document.documentElement.style.setProperty("--terminal-ansi-bright-green", lightScheme.terminal.ansi.brightGreen);
103
+ document.documentElement.style.setProperty("--terminal-ansi-bright-yellow", lightScheme.terminal.ansi.brightYellow);
104
+ document.documentElement.style.setProperty("--terminal-ansi-bright-blue", lightScheme.terminal.ansi.brightBlue);
105
+ document.documentElement.style.setProperty("--terminal-ansi-bright-magenta", lightScheme.terminal.ansi.brightMagenta);
106
+ document.documentElement.style.setProperty("--terminal-ansi-bright-cyan", lightScheme.terminal.ansi.brightCyan);
107
+ document.documentElement.style.setProperty("--terminal-ansi-bright-white", lightScheme.terminal.ansi.brightWhite);
108
+ document.documentElement.style.setProperty("--terminal-ansi-black-dark", darkScheme.terminal.ansi.black);
109
+ document.documentElement.style.setProperty("--terminal-ansi-red-dark", darkScheme.terminal.ansi.red);
110
+ document.documentElement.style.setProperty("--terminal-ansi-green-dark", darkScheme.terminal.ansi.green);
111
+ document.documentElement.style.setProperty("--terminal-ansi-yellow-dark", darkScheme.terminal.ansi.yellow);
112
+ document.documentElement.style.setProperty("--terminal-ansi-blue-dark", darkScheme.terminal.ansi.blue);
113
+ document.documentElement.style.setProperty("--terminal-ansi-magenta-dark", darkScheme.terminal.ansi.magenta);
114
+ document.documentElement.style.setProperty("--terminal-ansi-cyan-dark", darkScheme.terminal.ansi.cyan);
115
+ document.documentElement.style.setProperty("--terminal-ansi-white-dark", darkScheme.terminal.ansi.white);
116
+ document.documentElement.style.setProperty("--terminal-ansi-bright-black-dark", darkScheme.terminal.ansi.brightBlack);
117
+ document.documentElement.style.setProperty("--terminal-ansi-bright-red-dark", darkScheme.terminal.ansi.brightRed);
118
+ document.documentElement.style.setProperty("--terminal-ansi-bright-green-dark", darkScheme.terminal.ansi.brightGreen);
119
+ document.documentElement.style.setProperty("--terminal-ansi-bright-yellow-dark", darkScheme.terminal.ansi.brightYellow);
120
+ document.documentElement.style.setProperty("--terminal-ansi-bright-blue-dark", darkScheme.terminal.ansi.brightBlue);
121
+ document.documentElement.style.setProperty("--terminal-ansi-bright-magenta-dark", darkScheme.terminal.ansi.brightMagenta);
122
+ document.documentElement.style.setProperty("--terminal-ansi-bright-cyan-dark", darkScheme.terminal.ansi.brightCyan);
123
+ document.documentElement.style.setProperty("--terminal-ansi-bright-white-dark", darkScheme.terminal.ansi.brightWhite);
51
124
  }
52
- document.documentElement.style.setProperty("--border-radius", `${radius}px`);
125
+ document.documentElement.style.setProperty("--corner-radius", `${radius}px`);
53
126
  }
54
127
  };
55
128
  return {
@@ -60,6 +133,8 @@ const useConfigStore = () => {
60
133
  return configStore();
61
134
  };
62
135
 
136
+ exports.getSchemeById = getSchemeById;
137
+ exports.getSchemes = getSchemes;
63
138
  exports.readConfig = readConfig;
64
139
  exports.setDarkMode = setDarkMode;
65
140
  exports.useConfigStore = useConfigStore;
@@ -1,10 +1,12 @@
1
1
  export declare function writeConfig(value: VSKConfig): Promise<void>;
2
2
  export declare function setDarkMode(darkmode: boolean): Promise<void>;
3
3
  export declare function readConfig(): Promise<VSKConfig | null>;
4
+ export declare function getSchemes(): Promise<Scheme[]>;
5
+ export declare function getSchemeById(schemeId: string): Promise<Scheme | null>;
4
6
  export type VSKConfig = {
5
7
  style: {
6
8
  darkmode: boolean;
7
- primarycolor: string;
9
+ "color-scheme": string;
8
10
  radius: number;
9
11
  };
10
12
  desktop: {
@@ -14,6 +16,66 @@ export type VSKConfig = {
14
16
  showhiddenfiles: boolean;
15
17
  };
16
18
  };
19
+ export type Scheme = {
20
+ path: string;
21
+ scheme: SchemeData;
22
+ };
23
+ export type SchemeData = {
24
+ id: string;
25
+ name: string;
26
+ author: string;
27
+ description: string;
28
+ version: string;
29
+ colors: SchemeColors;
30
+ };
31
+ export type SchemeColors = {
32
+ dark: ThemeVariant;
33
+ light: ThemeVariant;
34
+ };
35
+ export type ThemeVariant = {
36
+ ui: UiColors;
37
+ terminal: TerminalColors;
38
+ };
39
+ export type UiColors = {
40
+ color: ColorPalette;
41
+ text: TextColors;
42
+ background: string;
43
+ border: string;
44
+ surface: string;
45
+ };
46
+ export type ColorPalette = {
47
+ primary: string;
48
+ secondary: string;
49
+ };
50
+ export type TextColors = {
51
+ main: string;
52
+ muted: string;
53
+ "on-primary": string;
54
+ };
55
+ export type TerminalColors = {
56
+ foreground: string;
57
+ background: string;
58
+ cursor: string;
59
+ ansi: AnsiColors;
60
+ };
61
+ export type AnsiColors = {
62
+ black: string;
63
+ red: string;
64
+ green: string;
65
+ yellow: string;
66
+ blue: string;
67
+ magenta: string;
68
+ cyan: string;
69
+ white: string;
70
+ brightBlack: string;
71
+ brightRed: string;
72
+ brightGreen: string;
73
+ brightYellow: string;
74
+ brightBlue: string;
75
+ brightMagenta: string;
76
+ brightCyan: string;
77
+ brightWhite: string;
78
+ };
17
79
  export declare const useConfigStore: () => import("pinia").Store<"config", Pick<() => {
18
80
  config: any;
19
81
  loadConfig: () => Promise<void>;
package/dist-js/index.js CHANGED
@@ -24,6 +24,12 @@ async function readConfig() {
24
24
  }
25
25
  return null;
26
26
  }
27
+ async function getSchemes() {
28
+ return await invoke("plugin:config-manager|get_schemes");
29
+ }
30
+ async function getSchemeById(schemeId) {
31
+ return await invoke("plugin:config-manager|get_scheme_by_id", { schemeId });
32
+ }
27
33
  let configStore = null;
28
34
  const useConfigStore = () => {
29
35
  configStore ??= defineStore("config", () => {
@@ -31,7 +37,7 @@ const useConfigStore = () => {
31
37
  const loadConfig = async () => {
32
38
  config.value = await readConfig();
33
39
  setMode();
34
- setProperties();
40
+ await setProperties();
35
41
  };
36
42
  const setMode = () => {
37
43
  if (config.value?.style?.darkmode) {
@@ -41,13 +47,80 @@ const useConfigStore = () => {
41
47
  document.documentElement.classList.remove("dark");
42
48
  }
43
49
  };
44
- const setProperties = () => {
50
+ const setProperties = async () => {
45
51
  if (config.value?.style) {
46
- const { primarycolor, radius } = config.value.style;
47
- if (primarycolor && primarycolor.trim() !== "") {
48
- document.documentElement.style.setProperty("--primary-color", primarycolor);
52
+ const { "color-scheme": colorScheme, radius } = config.value.style;
53
+ const scheme = await getSchemeById(colorScheme);
54
+ if (scheme !== null && scheme !== undefined) {
55
+ const darkScheme = scheme.scheme.colors.dark;
56
+ const lightScheme = scheme.scheme.colors.light;
57
+ // Colores de Marca
58
+ document.documentElement.style.setProperty("--primary", lightScheme.ui.color.primary);
59
+ document.documentElement.style.setProperty("--secondary", lightScheme.ui.color.secondary);
60
+ document.documentElement.style.setProperty("--primary-dark", darkScheme.ui.color.primary);
61
+ document.documentElement.style.setProperty("--secondary-dark", darkScheme.ui.color.secondary);
62
+ // Colores de Interfaz (UI)
63
+ document.documentElement.style.setProperty("--ui-background", lightScheme.ui.background);
64
+ document.documentElement.style.setProperty("--ui-surface", lightScheme.ui.surface);
65
+ document.documentElement.style.setProperty("--ui-border", lightScheme.ui.border);
66
+ document.documentElement.style.setProperty("--ui-background-dark", darkScheme.ui.background);
67
+ document.documentElement.style.setProperty("--ui-surface-dark", darkScheme.ui.surface);
68
+ document.documentElement.style.setProperty("--ui-border-dark", darkScheme.ui.border);
69
+ // Colores de Texto
70
+ document.documentElement.style.setProperty("--text-main", lightScheme.ui.text.main);
71
+ document.documentElement.style.setProperty("--text-muted", lightScheme.ui.text.muted);
72
+ document.documentElement.style.setProperty("--text-on-primary", lightScheme.ui.text["on-primary"]);
73
+ document.documentElement.style.setProperty("--text-main-dark", darkScheme.ui.text.main);
74
+ document.documentElement.style.setProperty("--text-muted-dark", darkScheme.ui.text.muted);
75
+ document.documentElement.style.setProperty("--text-on-primary-dark", darkScheme.ui.text["on-primary"]);
76
+ // Status Colors
77
+ document.documentElement.style.setProperty("--status-error", lightScheme.terminal.ansi.red);
78
+ document.documentElement.style.setProperty("--status-success", lightScheme.terminal.ansi.green);
79
+ document.documentElement.style.setProperty("--status-warning", lightScheme.terminal.ansi.yellow);
80
+ document.documentElement.style.setProperty("--status-error-dark", darkScheme.terminal.ansi.red);
81
+ document.documentElement.style.setProperty("--status-success-dark", darkScheme.terminal.ansi.green);
82
+ document.documentElement.style.setProperty("--status-warning-dark", darkScheme.terminal.ansi.yellow);
83
+ // Terminal Colors
84
+ document.documentElement.style.setProperty("--terminal-foreground", lightScheme.terminal.foreground);
85
+ document.documentElement.style.setProperty("--terminal-background", lightScheme.terminal.background);
86
+ document.documentElement.style.setProperty("--terminal-cursor", lightScheme.terminal.cursor);
87
+ document.documentElement.style.setProperty("--terminal-foreground-dark", darkScheme.terminal.foreground);
88
+ document.documentElement.style.setProperty("--terminal-background-dark", darkScheme.terminal.background);
89
+ document.documentElement.style.setProperty("--terminal-cursor-dark", darkScheme.terminal.cursor);
90
+ document.documentElement.style.setProperty("--terminal-ansi-black", lightScheme.terminal.ansi.black);
91
+ document.documentElement.style.setProperty("--terminal-ansi-red", lightScheme.terminal.ansi.red);
92
+ document.documentElement.style.setProperty("--terminal-ansi-green", lightScheme.terminal.ansi.green);
93
+ document.documentElement.style.setProperty("--terminal-ansi-yellow", lightScheme.terminal.ansi.yellow);
94
+ document.documentElement.style.setProperty("--terminal-ansi-blue", lightScheme.terminal.ansi.blue);
95
+ document.documentElement.style.setProperty("--terminal-ansi-magenta", lightScheme.terminal.ansi.magenta);
96
+ document.documentElement.style.setProperty("--terminal-ansi-cyan", lightScheme.terminal.ansi.cyan);
97
+ document.documentElement.style.setProperty("--terminal-ansi-white", lightScheme.terminal.ansi.white);
98
+ document.documentElement.style.setProperty("--terminal-ansi-bright-black", lightScheme.terminal.ansi.brightBlack);
99
+ document.documentElement.style.setProperty("--terminal-ansi-bright-red", lightScheme.terminal.ansi.brightRed);
100
+ document.documentElement.style.setProperty("--terminal-ansi-bright-green", lightScheme.terminal.ansi.brightGreen);
101
+ document.documentElement.style.setProperty("--terminal-ansi-bright-yellow", lightScheme.terminal.ansi.brightYellow);
102
+ document.documentElement.style.setProperty("--terminal-ansi-bright-blue", lightScheme.terminal.ansi.brightBlue);
103
+ document.documentElement.style.setProperty("--terminal-ansi-bright-magenta", lightScheme.terminal.ansi.brightMagenta);
104
+ document.documentElement.style.setProperty("--terminal-ansi-bright-cyan", lightScheme.terminal.ansi.brightCyan);
105
+ document.documentElement.style.setProperty("--terminal-ansi-bright-white", lightScheme.terminal.ansi.brightWhite);
106
+ document.documentElement.style.setProperty("--terminal-ansi-black-dark", darkScheme.terminal.ansi.black);
107
+ document.documentElement.style.setProperty("--terminal-ansi-red-dark", darkScheme.terminal.ansi.red);
108
+ document.documentElement.style.setProperty("--terminal-ansi-green-dark", darkScheme.terminal.ansi.green);
109
+ document.documentElement.style.setProperty("--terminal-ansi-yellow-dark", darkScheme.terminal.ansi.yellow);
110
+ document.documentElement.style.setProperty("--terminal-ansi-blue-dark", darkScheme.terminal.ansi.blue);
111
+ document.documentElement.style.setProperty("--terminal-ansi-magenta-dark", darkScheme.terminal.ansi.magenta);
112
+ document.documentElement.style.setProperty("--terminal-ansi-cyan-dark", darkScheme.terminal.ansi.cyan);
113
+ document.documentElement.style.setProperty("--terminal-ansi-white-dark", darkScheme.terminal.ansi.white);
114
+ document.documentElement.style.setProperty("--terminal-ansi-bright-black-dark", darkScheme.terminal.ansi.brightBlack);
115
+ document.documentElement.style.setProperty("--terminal-ansi-bright-red-dark", darkScheme.terminal.ansi.brightRed);
116
+ document.documentElement.style.setProperty("--terminal-ansi-bright-green-dark", darkScheme.terminal.ansi.brightGreen);
117
+ document.documentElement.style.setProperty("--terminal-ansi-bright-yellow-dark", darkScheme.terminal.ansi.brightYellow);
118
+ document.documentElement.style.setProperty("--terminal-ansi-bright-blue-dark", darkScheme.terminal.ansi.brightBlue);
119
+ document.documentElement.style.setProperty("--terminal-ansi-bright-magenta-dark", darkScheme.terminal.ansi.brightMagenta);
120
+ document.documentElement.style.setProperty("--terminal-ansi-bright-cyan-dark", darkScheme.terminal.ansi.brightCyan);
121
+ document.documentElement.style.setProperty("--terminal-ansi-bright-white-dark", darkScheme.terminal.ansi.brightWhite);
49
122
  }
50
- document.documentElement.style.setProperty("--border-radius", `${radius}px`);
123
+ document.documentElement.style.setProperty("--corner-radius", `${radius}px`);
51
124
  }
52
125
  };
53
126
  return {
@@ -58,4 +131,4 @@ const useConfigStore = () => {
58
131
  return configStore();
59
132
  };
60
133
 
61
- export { readConfig, setDarkMode, useConfigStore, writeConfig };
134
+ export { getSchemeById, getSchemes, readConfig, setDarkMode, useConfigStore, writeConfig };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vasakgroup/plugin-config-manager",
3
- "version": "2.1.0",
3
+ "version": "2.2.2",
4
4
  "author": "Joaquin (Pato) Decima <jdecima@vasak.net.ar>",
5
5
  "description": "A tauri plugin for managing configuration in a Vue 3 application using Pinia.",
6
6
  "type": "module",
@@ -22,13 +22,13 @@
22
22
  "pretest": "bun run build"
23
23
  },
24
24
  "dependencies": {
25
- "@tauri-apps/api": "^2.9.1",
25
+ "@tauri-apps/api": "^2.10.1",
26
26
  "pinia": "^3.0.4",
27
- "vue": "^3.5.26"
27
+ "vue": "^3.5.28"
28
28
  },
29
29
  "devDependencies": {
30
30
  "@rollup/plugin-typescript": "^12.3.0",
31
- "rollup": "^4.55.1",
31
+ "rollup": "^4.58.0",
32
32
  "typescript": "^5.9.3",
33
33
  "tslib": "^2.8.1"
34
34
  },