genbox 1.0.241 → 1.0.243

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,7 +1,8 @@
1
1
  /**
2
2
  * Theme Utilities
3
3
  *
4
- * Provides automatic theme detection based on time of day.
4
+ * Provides automatic theme detection based on system preferences.
5
+ * Falls back to time-based detection if system theme cannot be detected.
5
6
  * Used by session commands to set light/dark theme for AI CLIs.
6
7
  *
7
8
  * Claude Code CLI: Theme is configured via ~/.claude/settings.json
@@ -9,12 +10,20 @@
9
10
  * - No command-line flag available (removed in v2.0.0)
10
11
  *
11
12
  * Gemini CLI: Theme is configured via ~/.gemini/settings.json
12
- * - Format: { "ui": { "theme": "dark" } }
13
+ * - Format: { "theme": "Default Light" } or { "theme": "Default Dark" }
13
14
  * - No command-line flag available
14
15
  */
15
16
  export type Theme = 'light' | 'dark';
17
+ /**
18
+ * Detect the system theme based on the current platform.
19
+ * Returns null if detection fails or platform is unsupported.
20
+ *
21
+ * @returns 'dark' or 'light' based on system preference, null if detection fails
22
+ */
23
+ export declare function detectSystemTheme(): Theme | null;
16
24
  /**
17
25
  * Get the appropriate theme based on the current time of day.
26
+ * This is used as a fallback when system theme detection fails.
18
27
  *
19
28
  * @param options Optional configuration for day/night hours
20
29
  * @returns 'light' during day hours (6 AM - 6 PM), 'dark' otherwise
@@ -25,17 +34,33 @@ export declare function getThemeForTime(options?: {
25
34
  now?: Date;
26
35
  }): Theme;
27
36
  /**
28
- * Get the theme for Claude CLI based on current time.
37
+ * Get the current theme, preferring system detection over time-based.
38
+ *
39
+ * @returns The detected system theme, or time-based fallback
40
+ */
41
+ export declare function getSystemTheme(): Theme;
42
+ /**
43
+ * Get the theme for Claude CLI based on system preference.
44
+ * Falls back to time-based detection if system theme cannot be detected.
29
45
  *
30
46
  * @returns The theme value
31
47
  */
32
48
  export declare function getClaudeTheme(): Theme;
33
49
  /**
34
- * Get the theme for Gemini CLI based on current time.
50
+ * Get the theme for Gemini CLI based on system preference.
51
+ * Falls back to time-based detection if system theme cannot be detected.
35
52
  *
36
- * @returns The theme value
53
+ * @returns The theme value (light/dark)
37
54
  */
38
55
  export declare function getGeminiTheme(): Theme;
56
+ /**
57
+ * Get the full Gemini theme name based on system preference.
58
+ * Gemini CLI uses specific theme names like "Default Light", "Default Dark", etc.
59
+ * Falls back to time-based detection if system theme cannot be detected.
60
+ *
61
+ * @returns The full Gemini theme name
62
+ */
63
+ export declare function getGeminiThemeName(): string;
39
64
  /**
40
65
  * Update local Claude Code settings.json with the current time-based theme.
41
66
  * Creates the settings file if it doesn't exist.
@@ -1 +1 @@
1
- {"version":3,"file":"theme-utils.d.ts","sourceRoot":"","sources":["../../src/utils/theme-utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAMH,MAAM,MAAM,KAAK,GAAG,OAAO,GAAG,MAAM,CAAC;AAQrC;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,OAAO,CAAC,EAAE;IACxC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,GAAG,CAAC,EAAE,IAAI,CAAC;CACZ,GAAG,KAAK,CAgBR;AAED;;;;GAIG;AACH,wBAAgB,cAAc,IAAI,KAAK,CAEtC;AAED;;;;GAIG;AACH,wBAAgB,cAAc,IAAI,KAAK,CAEtC;AASD;;;;;GAKG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAiC3C;AAED;;;;;GAKG;AACH,wBAAgB,6BAA6B,IAAI,MAAM,CAiBtD;AASD;;;;;GAKG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAoC3C;AAED;;;;;GAKG;AACH,wBAAgB,6BAA6B,IAAI,MAAM,CAiBtD"}
1
+ {"version":3,"file":"theme-utils.d.ts","sourceRoot":"","sources":["../../src/utils/theme-utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAOH,MAAM,MAAM,KAAK,GAAG,OAAO,GAAG,MAAM,CAAC;AAqHrC;;;;;GAKG;AACH,wBAAgB,iBAAiB,IAAI,KAAK,GAAG,IAAI,CAahD;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,OAAO,CAAC,EAAE;IACxC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,GAAG,CAAC,EAAE,IAAI,CAAC;CACZ,GAAG,KAAK,CAgBR;AAED;;;;GAIG;AACH,wBAAgB,cAAc,IAAI,KAAK,CAOtC;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,IAAI,KAAK,CAEtC;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,IAAI,KAAK,CAEtC;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAI3C;AASD;;;;;GAKG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAiC3C;AAED;;;;;GAKG;AACH,wBAAgB,6BAA6B,IAAI,MAAM,CAiBtD;AASD;;;;;GAKG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAsC3C;AAED;;;;;GAKG;AACH,wBAAgB,6BAA6B,IAAI,MAAM,CAkBtD"}
@@ -1,7 +1,8 @@
1
1
  /**
2
2
  * Theme Utilities
3
3
  *
4
- * Provides automatic theme detection based on time of day.
4
+ * Provides automatic theme detection based on system preferences.
5
+ * Falls back to time-based detection if system theme cannot be detected.
5
6
  * Used by session commands to set light/dark theme for AI CLIs.
6
7
  *
7
8
  * Claude Code CLI: Theme is configured via ~/.claude/settings.json
@@ -9,19 +10,143 @@
9
10
  * - No command-line flag available (removed in v2.0.0)
10
11
  *
11
12
  * Gemini CLI: Theme is configured via ~/.gemini/settings.json
12
- * - Format: { "ui": { "theme": "dark" } }
13
+ * - Format: { "theme": "Default Light" } or { "theme": "Default Dark" }
13
14
  * - No command-line flag available
14
15
  */
15
16
  import * as fs from 'fs';
16
17
  import * as path from 'path';
17
18
  import * as os from 'os';
19
+ import { execSync } from 'child_process';
18
20
  /**
19
21
  * Default day hours (6 AM to 6 PM is considered "day")
22
+ * Used as fallback when system theme detection fails.
20
23
  */
21
24
  const DEFAULT_DAY_START_HOUR = 6; // 6 AM
22
25
  const DEFAULT_DAY_END_HOUR = 18; // 6 PM
26
+ /**
27
+ * Detect the system theme on macOS.
28
+ * Uses `defaults read -g AppleInterfaceStyle` which returns "Dark" if dark mode is enabled.
29
+ *
30
+ * @returns 'dark' if dark mode, 'light' if light mode, null if detection fails
31
+ */
32
+ function detectMacOSTheme() {
33
+ try {
34
+ const result = execSync('defaults read -g AppleInterfaceStyle 2>/dev/null', {
35
+ encoding: 'utf-8',
36
+ timeout: 1000,
37
+ }).trim();
38
+ return result === 'Dark' ? 'dark' : 'light';
39
+ }
40
+ catch {
41
+ // Command fails or returns empty when in light mode
42
+ return 'light';
43
+ }
44
+ }
45
+ /**
46
+ * Detect the system theme on Linux.
47
+ * Tries multiple methods for different desktop environments:
48
+ * - GNOME/GTK: gsettings
49
+ * - KDE: kreadconfig5
50
+ * - Generic: GTK_THEME environment variable
51
+ *
52
+ * @returns 'dark' if dark mode, 'light' if light mode, null if detection fails
53
+ */
54
+ function detectLinuxTheme() {
55
+ // Try GNOME/GTK (most common)
56
+ try {
57
+ const result = execSync('gsettings get org.gnome.desktop.interface color-scheme 2>/dev/null', {
58
+ encoding: 'utf-8',
59
+ timeout: 1000,
60
+ }).trim();
61
+ if (result.includes('dark')) {
62
+ return 'dark';
63
+ }
64
+ if (result.includes('light') || result.includes('default')) {
65
+ return 'light';
66
+ }
67
+ }
68
+ catch {
69
+ // gsettings not available or failed
70
+ }
71
+ // Try GTK theme setting
72
+ try {
73
+ const result = execSync('gsettings get org.gnome.desktop.interface gtk-theme 2>/dev/null', {
74
+ encoding: 'utf-8',
75
+ timeout: 1000,
76
+ }).trim().toLowerCase();
77
+ if (result.includes('dark')) {
78
+ return 'dark';
79
+ }
80
+ }
81
+ catch {
82
+ // gsettings not available or failed
83
+ }
84
+ // Try KDE
85
+ try {
86
+ const result = execSync('kreadconfig5 --group General --key ColorScheme 2>/dev/null', {
87
+ encoding: 'utf-8',
88
+ timeout: 1000,
89
+ }).trim().toLowerCase();
90
+ if (result.includes('dark')) {
91
+ return 'dark';
92
+ }
93
+ if (result) {
94
+ return 'light';
95
+ }
96
+ }
97
+ catch {
98
+ // kreadconfig5 not available or failed
99
+ }
100
+ // Check GTK_THEME environment variable
101
+ const gtkTheme = process.env.GTK_THEME?.toLowerCase();
102
+ if (gtkTheme) {
103
+ return gtkTheme.includes('dark') ? 'dark' : 'light';
104
+ }
105
+ // Check for common dark theme indicators in environment
106
+ const colorScheme = process.env.COLOR_SCHEME?.toLowerCase();
107
+ if (colorScheme) {
108
+ return colorScheme.includes('dark') ? 'dark' : 'light';
109
+ }
110
+ return null;
111
+ }
112
+ /**
113
+ * Detect the system theme on Windows.
114
+ * Uses PowerShell to read the registry key for app theme preference.
115
+ *
116
+ * @returns 'dark' if dark mode, 'light' if light mode, null if detection fails
117
+ */
118
+ function detectWindowsTheme() {
119
+ try {
120
+ const result = execSync('powershell -NoProfile -Command "(Get-ItemProperty -Path HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Themes\\Personalize -Name AppsUseLightTheme).AppsUseLightTheme"', { encoding: 'utf-8', timeout: 2000 }).trim();
121
+ // 0 = dark mode, 1 = light mode
122
+ return result === '0' ? 'dark' : 'light';
123
+ }
124
+ catch {
125
+ return null;
126
+ }
127
+ }
128
+ /**
129
+ * Detect the system theme based on the current platform.
130
+ * Returns null if detection fails or platform is unsupported.
131
+ *
132
+ * @returns 'dark' or 'light' based on system preference, null if detection fails
133
+ */
134
+ export function detectSystemTheme() {
135
+ const platform = os.platform();
136
+ switch (platform) {
137
+ case 'darwin':
138
+ return detectMacOSTheme();
139
+ case 'linux':
140
+ return detectLinuxTheme();
141
+ case 'win32':
142
+ return detectWindowsTheme();
143
+ default:
144
+ return null;
145
+ }
146
+ }
23
147
  /**
24
148
  * Get the appropriate theme based on the current time of day.
149
+ * This is used as a fallback when system theme detection fails.
25
150
  *
26
151
  * @param options Optional configuration for day/night hours
27
152
  * @returns 'light' during day hours (6 AM - 6 PM), 'dark' otherwise
@@ -37,20 +162,47 @@ export function getThemeForTime(options) {
37
162
  return 'dark';
38
163
  }
39
164
  /**
40
- * Get the theme for Claude CLI based on current time.
165
+ * Get the current theme, preferring system detection over time-based.
41
166
  *
42
- * @returns The theme value
167
+ * @returns The detected system theme, or time-based fallback
43
168
  */
44
- export function getClaudeTheme() {
169
+ export function getSystemTheme() {
170
+ const systemTheme = detectSystemTheme();
171
+ if (systemTheme !== null) {
172
+ return systemTheme;
173
+ }
174
+ // Fall back to time-based detection
45
175
  return getThemeForTime();
46
176
  }
47
177
  /**
48
- * Get the theme for Gemini CLI based on current time.
178
+ * Get the theme for Claude CLI based on system preference.
179
+ * Falls back to time-based detection if system theme cannot be detected.
49
180
  *
50
181
  * @returns The theme value
51
182
  */
183
+ export function getClaudeTheme() {
184
+ return getSystemTheme();
185
+ }
186
+ /**
187
+ * Get the theme for Gemini CLI based on system preference.
188
+ * Falls back to time-based detection if system theme cannot be detected.
189
+ *
190
+ * @returns The theme value (light/dark)
191
+ */
52
192
  export function getGeminiTheme() {
53
- return getThemeForTime();
193
+ return getSystemTheme();
194
+ }
195
+ /**
196
+ * Get the full Gemini theme name based on system preference.
197
+ * Gemini CLI uses specific theme names like "Default Light", "Default Dark", etc.
198
+ * Falls back to time-based detection if system theme cannot be detected.
199
+ *
200
+ * @returns The full Gemini theme name
201
+ */
202
+ export function getGeminiThemeName() {
203
+ const theme = getSystemTheme();
204
+ // Use "Default Light" or "Default Dark" which match most terminal backgrounds
205
+ return theme === 'light' ? 'Default Light' : 'Default Dark';
54
206
  }
55
207
  /**
56
208
  * Path to Claude Code settings.json
@@ -132,7 +284,7 @@ function getGeminiSettingsPath() {
132
284
  * @returns true if successfully updated, false otherwise
133
285
  */
134
286
  export function updateGeminiTheme() {
135
- const theme = getGeminiTheme();
287
+ const themeName = getGeminiThemeName();
136
288
  const settingsPath = getGeminiSettingsPath();
137
289
  const geminiDir = path.dirname(settingsPath);
138
290
  try {
@@ -152,11 +304,12 @@ export function updateGeminiTheme() {
152
304
  settings = {};
153
305
  }
154
306
  }
155
- // Update the theme in the ui object
156
- if (!settings.ui || typeof settings.ui !== 'object') {
157
- settings.ui = {};
307
+ // Update the theme at root level (Gemini uses full theme names like "Default Light")
308
+ settings.theme = themeName;
309
+ // Clean up old ui.theme format if it exists (no longer used)
310
+ if (settings.ui && typeof settings.ui === 'object') {
311
+ delete settings.ui.theme;
158
312
  }
159
- settings.ui.theme = theme;
160
313
  // Write back
161
314
  fs.writeFileSync(settingsPath, JSON.stringify(settings, null, 2));
162
315
  return true;
@@ -173,19 +326,20 @@ export function updateGeminiTheme() {
173
326
  * @returns Shell command string to update Gemini settings
174
327
  */
175
328
  export function buildRemoteGeminiThemeCommand() {
176
- const theme = getGeminiTheme();
329
+ const themeName = getGeminiThemeName();
177
330
  // This script:
178
331
  // 1. Creates ~/.gemini if needed
179
332
  // 2. Reads existing settings.json or creates new
180
- // 3. Updates the ui.theme value
181
- // 4. Writes back the settings
333
+ // 3. Updates the theme value at root level (Gemini uses full theme names like "Default Light")
334
+ // 4. Cleans up old ui.theme format if present
335
+ // 5. Writes back the settings
182
336
  return `
183
337
  mkdir -p ~/.gemini && \
184
338
  if [ -f ~/.gemini/settings.json ]; then \
185
- node -e "const fs=require('fs'); const s=JSON.parse(fs.readFileSync('$HOME/.gemini/settings.json','utf-8')||'{}'); s.ui=s.ui||{}; s.ui.theme='${theme}'; fs.writeFileSync('$HOME/.gemini/settings.json',JSON.stringify(s,null,2));" 2>/dev/null || \
186
- echo '{"ui":{"theme":"${theme}"}}' > ~/.gemini/settings.json; \
339
+ node -e "const fs=require('fs'); const s=JSON.parse(fs.readFileSync('$HOME/.gemini/settings.json','utf-8')||'{}'); s.theme='${themeName}'; if(s.ui) delete s.ui.theme; fs.writeFileSync('$HOME/.gemini/settings.json',JSON.stringify(s,null,2));" 2>/dev/null || \
340
+ echo '{"theme":"${themeName}"}' > ~/.gemini/settings.json; \
187
341
  else \
188
- echo '{"ui":{"theme":"${theme}"}}' > ~/.gemini/settings.json; \
342
+ echo '{"theme":"${themeName}"}' > ~/.gemini/settings.json; \
189
343
  fi
190
344
  `.trim().replace(/\n/g, ' ');
191
345
  }
@@ -1 +1 @@
1
- {"version":3,"file":"theme-utils.js","sourceRoot":"","sources":["../../src/utils/theme-utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAIzB;;GAEG;AACH,MAAM,sBAAsB,GAAG,CAAC,CAAC,CAAE,OAAO;AAC1C,MAAM,oBAAoB,GAAG,EAAE,CAAC,CAAG,OAAO;AAE1C;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,OAI/B;IACC,MAAM,EACJ,YAAY,GAAG,sBAAsB,EACrC,UAAU,GAAG,oBAAoB,EACjC,GAAG,GAAG,IAAI,IAAI,EAAE,GACjB,GAAG,OAAO,IAAI,EAAE,CAAC;IAElB,MAAM,WAAW,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;IAEnC,6DAA6D;IAC7D,IAAI,WAAW,IAAI,YAAY,IAAI,WAAW,GAAG,UAAU,EAAE,CAAC;QAC5D,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,8CAA8C;IAC9C,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc;IAC5B,OAAO,eAAe,EAAE,CAAC;AAC3B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc;IAC5B,OAAO,eAAe,EAAE,CAAC;AAC3B,CAAC;AAED;;GAEG;AACH,SAAS,qBAAqB;IAC5B,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;AAC7D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB;IAC/B,MAAM,KAAK,GAAG,cAAc,EAAE,CAAC;IAC/B,MAAM,YAAY,GAAG,qBAAqB,EAAE,CAAC;IAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAE7C,IAAI,CAAC;QACH,oCAAoC;QACpC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC9B,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/C,CAAC;QAED,uCAAuC;QACvC,IAAI,QAAQ,GAA4B,EAAE,CAAC;QAC3C,IAAI,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YAChC,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;gBACvD,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACjC,CAAC;YAAC,MAAM,CAAC;gBACP,oCAAoC;gBACpC,QAAQ,GAAG,EAAE,CAAC;YAChB,CAAC;QACH,CAAC;QAED,iCAAiC;QACjC,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC;QAEvB,aAAa;QACb,EAAE,CAAC,aAAa,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAClE,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,0CAA0C;QAC1C,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,6BAA6B;IAC3C,MAAM,KAAK,GAAG,cAAc,EAAE,CAAC;IAE/B,eAAe;IACf,iCAAiC;IACjC,iDAAiD;IACjD,2CAA2C;IAC3C,8BAA8B;IAC9B,OAAO;;;gIAGuH,KAAK;oBACjH,KAAK;;oBAEL,KAAK;;CAExB,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AAC7B,CAAC;AAED;;GAEG;AACH,SAAS,qBAAqB;IAC5B,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;AAC7D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB;IAC/B,MAAM,KAAK,GAAG,cAAc,EAAE,CAAC;IAC/B,MAAM,YAAY,GAAG,qBAAqB,EAAE,CAAC;IAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAE7C,IAAI,CAAC;QACH,oCAAoC;QACpC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC9B,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/C,CAAC;QAED,uCAAuC;QACvC,IAAI,QAAQ,GAA4B,EAAE,CAAC;QAC3C,IAAI,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YAChC,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;gBACvD,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACjC,CAAC;YAAC,MAAM,CAAC;gBACP,oCAAoC;gBACpC,QAAQ,GAAG,EAAE,CAAC;YAChB,CAAC;QACH,CAAC;QAED,oCAAoC;QACpC,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,OAAO,QAAQ,CAAC,EAAE,KAAK,QAAQ,EAAE,CAAC;YACpD,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC;QACnB,CAAC;QACA,QAAQ,CAAC,EAA8B,CAAC,KAAK,GAAG,KAAK,CAAC;QAEvD,aAAa;QACb,EAAE,CAAC,aAAa,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAClE,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,0CAA0C;QAC1C,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,6BAA6B;IAC3C,MAAM,KAAK,GAAG,cAAc,EAAE,CAAC;IAE/B,eAAe;IACf,iCAAiC;IACjC,iDAAiD;IACjD,gCAAgC;IAChC,8BAA8B;IAC9B,OAAO;;;kJAGyI,KAAK;0BAC7H,KAAK;;0BAEL,KAAK;;CAE9B,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AAC7B,CAAC"}
1
+ {"version":3,"file":"theme-utils.js","sourceRoot":"","sources":["../../src/utils/theme-utils.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "genbox",
3
- "version": "1.0.241",
3
+ "version": "1.0.243",
4
4
  "description": "Genbox CLI - AI-Powered Development Environments",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",