@tooee/themes 0.2.3 → 0.3.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.
- package/dist/{CloseButton.d.ts → close-button.d.ts} +2 -2
- package/dist/close-button.d.ts.map +1 -0
- package/dist/{CloseButton.js → close-button.js} +5 -4
- package/dist/close-button.js.map +1 -0
- package/dist/context.d.ts +7 -7
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +28 -26
- package/dist/context.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/loader.d.ts +5 -5
- package/dist/loader.d.ts.map +1 -1
- package/dist/loader.js +80 -74
- package/dist/loader.js.map +1 -1
- package/dist/syntax-rules.d.ts +1 -1
- package/dist/syntax-rules.d.ts.map +1 -1
- package/dist/syntax-rules.js +17 -17
- package/dist/syntax-rules.js.map +1 -1
- package/dist/{ThemePicker.d.ts → theme-picker.d.ts} +2 -2
- package/dist/theme-picker.d.ts.map +1 -0
- package/dist/{ThemePicker.js → theme-picker.js} +37 -33
- package/dist/theme-picker.js.map +1 -0
- package/dist/types.d.ts +7 -9
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +52 -43
- package/dist/types.js.map +1 -1
- package/package.json +4 -4
- package/src/{CloseButton.tsx → close-button.tsx} +21 -15
- package/src/context.tsx +83 -74
- package/src/index.ts +10 -10
- package/src/loader.ts +109 -95
- package/src/syntax-rules.ts +21 -21
- package/src/theme-picker.tsx +189 -0
- package/src/types.ts +129 -110
- package/dist/CloseButton.d.ts.map +0 -1
- package/dist/CloseButton.js.map +0 -1
- package/dist/ThemePicker.d.ts.map +0 -1
- package/dist/ThemePicker.js.map +0 -1
- package/src/ThemePicker.tsx +0 -177
|
@@ -12,6 +12,6 @@ interface CloseButtonProps {
|
|
|
12
12
|
* Renders a small themed glyph that calls `onClose` on left-click. Purely
|
|
13
13
|
* additive — overlays keep their existing Escape / cancel keyboard paths.
|
|
14
14
|
*/
|
|
15
|
-
export declare
|
|
15
|
+
export declare const CloseButton: ({ onClose, glyph, color, }: CloseButtonProps) => React.ReactNode;
|
|
16
16
|
export {};
|
|
17
|
-
//# sourceMappingURL=
|
|
17
|
+
//# sourceMappingURL=close-button.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"close-button.d.ts","sourceRoot":"","sources":["../src/close-button.tsx"],"names":[],"mappings":"AAIA,UAAU,gBAAgB;IACxB,6DAA6D;IAC7D,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,qCAAqC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uDAAuD;IACvD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;GAKG;AACH,eAAO,MAAM,WAAW,GAAwB,4BAI7C,gBAAgB,KAAG,KAAK,CAAC,SAqB3B,CAAC"}
|
|
@@ -7,16 +7,17 @@ import { useTheme } from "./context.js";
|
|
|
7
7
|
* Renders a small themed glyph that calls `onClose` on left-click. Purely
|
|
8
8
|
* additive — overlays keep their existing Escape / cancel keyboard paths.
|
|
9
9
|
*/
|
|
10
|
-
export function CloseButton({ onClose, glyph = "✕", color }) {
|
|
10
|
+
export const CloseButton = function CloseButton({ onClose, glyph = "✕", color, }) {
|
|
11
11
|
const { theme } = useTheme();
|
|
12
12
|
const handleMouseDown = useCallback((event) => {
|
|
13
13
|
// Left button only; let other buttons bubble.
|
|
14
|
-
if (event.button !== 0)
|
|
14
|
+
if (event.button !== 0) {
|
|
15
15
|
return;
|
|
16
|
+
}
|
|
16
17
|
event.preventDefault();
|
|
17
18
|
event.stopPropagation();
|
|
18
19
|
onClose();
|
|
19
20
|
}, [onClose]);
|
|
20
21
|
return (_jsx("box", { flexShrink: 0, paddingLeft: 1, onMouseDown: handleMouseDown, children: _jsx("text", { content: glyph, fg: color ?? theme.textMuted }) }));
|
|
21
|
-
}
|
|
22
|
-
//# sourceMappingURL=
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=close-button.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"close-button.js","sourceRoot":"","sources":["../src/close-button.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAEpC,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAWxC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,SAAS,WAAW,CAAC,EAC9C,OAAO,EACP,KAAK,GAAG,GAAG,EACX,KAAK,GACY;IACjB,MAAM,EAAE,KAAK,EAAE,GAAG,QAAQ,EAAE,CAAC;IAE7B,MAAM,eAAe,GAAG,WAAW,CACjC,CAAC,KAAiB,EAAE,EAAE;QACpB,8CAA8C;QAC9C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO;QACT,CAAC;QACD,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,OAAO,EAAE,CAAC;IACZ,CAAC,EACD,CAAC,OAAO,CAAC,CACV,CAAC;IAEF,OAAO,CACL,cAAK,UAAU,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,EAAE,eAAe,YAC9D,eAAM,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,IAAI,KAAK,CAAC,SAAS,GAAI,GAClD,CACP,CAAC;AACJ,CAAC,CAAC"}
|
package/dist/context.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import type { ReactNode } from "react";
|
|
2
|
+
import type { SyntaxStyle } from "@opentui/core";
|
|
3
3
|
import type { ResolvedTheme } from "./types.js";
|
|
4
|
-
import {
|
|
4
|
+
import type { Theme } from "./loader.js";
|
|
5
5
|
interface ThemeContextValue {
|
|
6
6
|
theme: ResolvedTheme;
|
|
7
7
|
syntax: SyntaxStyle;
|
|
@@ -17,8 +17,8 @@ export interface ThemeProviderProps {
|
|
|
17
17
|
theme?: Theme;
|
|
18
18
|
children: ReactNode;
|
|
19
19
|
}
|
|
20
|
-
export declare
|
|
21
|
-
export declare
|
|
20
|
+
export declare const ThemeProvider: ({ name, mode, theme: themeProp, children, }: ThemeProviderProps) => ReactNode;
|
|
21
|
+
export declare const useTheme: () => ThemeContextValue;
|
|
22
22
|
interface ThemeSwitcherContextValue extends ThemeContextValue {
|
|
23
23
|
nextTheme: () => void;
|
|
24
24
|
prevTheme: () => void;
|
|
@@ -32,7 +32,7 @@ export interface ThemeSwitcherProviderProps {
|
|
|
32
32
|
initialMode?: "dark" | "light";
|
|
33
33
|
children: ReactNode;
|
|
34
34
|
}
|
|
35
|
-
export declare
|
|
36
|
-
export declare
|
|
35
|
+
export declare const ThemeSwitcherProvider: ({ initialTheme, initialMode, children, }: ThemeSwitcherProviderProps) => ReactNode;
|
|
36
|
+
export declare const useThemeSwitcher: () => ThemeSwitcherContextValue;
|
|
37
37
|
export {};
|
|
38
38
|
//# sourceMappingURL=context.d.ts.map
|
package/dist/context.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAQhD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAMzC,UAAU,iBAAiB;IACzB,KAAK,EAAE,aAAa,CAAC;IACrB,MAAM,EAAE,WAAW,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AASD,MAAM,WAAW,kBAAkB;IACjC,8DAA8D;IAC9D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iBAAiB;IACjB,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACxB,0DAA0D;IAC1D,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,eAAO,MAAM,aAAa,GAA0B,6CAKjD,kBAAkB,KAAG,SAgBvB,CAAC;AAEF,eAAO,MAAM,QAAQ,QAAwB,iBAE5C,CAAC;AAMF,UAAU,yBAA0B,SAAQ,iBAAiB;IAC3D,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC;IAC/D,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAID,MAAM,WAAW,0BAA0B;IACzC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAC/B,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,eAAO,MAAM,qBAAqB,GAAkC,0CAIjE,0BAA0B,KAAG,SAwD/B,CAAC;AAEF,eAAO,MAAM,gBAAgB,QAAgC,yBAM5D,CAAC"}
|
package/dist/context.js
CHANGED
|
@@ -3,70 +3,72 @@ import { createContext, useContext, useState, useCallback, useMemo } from "react
|
|
|
3
3
|
import { writeGlobalConfig } from "@tooee/config";
|
|
4
4
|
import { buildTheme, getThemeNames, defaultTheme, DEFAULT_THEME_NAME, DEFAULT_MODE, } from "./loader.js";
|
|
5
5
|
const ThemeContext = createContext({
|
|
6
|
-
theme: defaultTheme.colors,
|
|
7
|
-
syntax: defaultTheme.syntax,
|
|
8
|
-
name: defaultTheme.name,
|
|
9
6
|
mode: defaultTheme.mode,
|
|
7
|
+
name: defaultTheme.name,
|
|
8
|
+
syntax: defaultTheme.syntax,
|
|
9
|
+
theme: defaultTheme.colors,
|
|
10
10
|
});
|
|
11
|
-
export function ThemeProvider({ name, mode, theme: themeProp, children }) {
|
|
11
|
+
export const ThemeProvider = function ThemeProvider({ name, mode, theme: themeProp, children, }) {
|
|
12
12
|
const resolved = useMemo(() => {
|
|
13
13
|
if (themeProp) {
|
|
14
14
|
return {
|
|
15
|
-
theme: themeProp.colors,
|
|
16
|
-
syntax: themeProp.syntax,
|
|
17
|
-
name: themeProp.name,
|
|
18
15
|
mode: themeProp.mode,
|
|
16
|
+
name: themeProp.name,
|
|
17
|
+
syntax: themeProp.syntax,
|
|
18
|
+
theme: themeProp.colors,
|
|
19
19
|
};
|
|
20
20
|
}
|
|
21
21
|
const t = buildTheme(name ?? DEFAULT_THEME_NAME, mode ?? DEFAULT_MODE);
|
|
22
|
-
return {
|
|
22
|
+
return { mode: t.mode, name: t.name, syntax: t.syntax, theme: t.colors };
|
|
23
23
|
}, [themeProp, name, mode]);
|
|
24
24
|
return _jsx(ThemeContext.Provider, { value: resolved, children: children });
|
|
25
|
-
}
|
|
26
|
-
export function useTheme() {
|
|
25
|
+
};
|
|
26
|
+
export const useTheme = function useTheme() {
|
|
27
27
|
return useContext(ThemeContext);
|
|
28
|
-
}
|
|
28
|
+
};
|
|
29
29
|
const ThemeSwitcherContext = createContext(null);
|
|
30
|
-
export function ThemeSwitcherProvider({ initialTheme, initialMode, children, }) {
|
|
30
|
+
export const ThemeSwitcherProvider = function ThemeSwitcherProvider({ initialTheme, initialMode, children, }) {
|
|
31
31
|
const allThemes = useMemo(() => getThemeNames(), []);
|
|
32
32
|
const [themeName, setThemeName] = useState(initialTheme ?? DEFAULT_THEME_NAME);
|
|
33
|
-
const [mode,
|
|
33
|
+
const [mode, setMode] = useState(initialMode ?? DEFAULT_MODE);
|
|
34
|
+
void setMode;
|
|
34
35
|
const theme = useMemo(() => buildTheme(themeName, mode), [themeName, mode]);
|
|
35
36
|
const nextTheme = useCallback(() => {
|
|
36
37
|
const idx = allThemes.indexOf(themeName);
|
|
37
38
|
const next = allThemes[(idx + 1) % allThemes.length];
|
|
38
39
|
setThemeName(next);
|
|
39
|
-
writeGlobalConfig({ theme: { name: next
|
|
40
|
+
writeGlobalConfig({ theme: { mode, name: next } });
|
|
40
41
|
}, [allThemes, mode, themeName]);
|
|
41
42
|
const prevTheme = useCallback(() => {
|
|
42
43
|
const idx = allThemes.indexOf(themeName);
|
|
43
44
|
const prev = allThemes[(idx - 1 + allThemes.length) % allThemes.length];
|
|
44
45
|
setThemeName(prev);
|
|
45
|
-
writeGlobalConfig({ theme: { name: prev
|
|
46
|
+
writeGlobalConfig({ theme: { mode, name: prev } });
|
|
46
47
|
}, [allThemes, mode, themeName]);
|
|
47
48
|
const setThemeByName = useCallback((name, opts) => {
|
|
48
49
|
setThemeName(name);
|
|
49
|
-
if (opts?.persist) {
|
|
50
|
-
writeGlobalConfig({ theme: {
|
|
50
|
+
if (opts?.persist === true) {
|
|
51
|
+
writeGlobalConfig({ theme: { mode, name } });
|
|
51
52
|
}
|
|
52
53
|
}, [mode]);
|
|
53
54
|
const value = useMemo(() => ({
|
|
54
|
-
|
|
55
|
-
syntax: theme.syntax,
|
|
56
|
-
name: theme.name,
|
|
55
|
+
allThemes,
|
|
57
56
|
mode,
|
|
57
|
+
name: theme.name,
|
|
58
58
|
nextTheme,
|
|
59
59
|
prevTheme,
|
|
60
60
|
setTheme: setThemeByName,
|
|
61
|
-
|
|
61
|
+
syntax: theme.syntax,
|
|
62
|
+
theme: theme.colors,
|
|
62
63
|
}), [theme, mode, nextTheme, prevTheme, setThemeByName, allThemes]);
|
|
63
|
-
const themeValue = useMemo(() => ({
|
|
64
|
+
const themeValue = useMemo(() => ({ mode, name: theme.name, syntax: theme.syntax, theme: theme.colors }), [theme, mode]);
|
|
64
65
|
return (_jsx(ThemeSwitcherContext.Provider, { value: value, children: _jsx(ThemeContext.Provider, { value: themeValue, children: children }) }));
|
|
65
|
-
}
|
|
66
|
-
export function useThemeSwitcher() {
|
|
66
|
+
};
|
|
67
|
+
export const useThemeSwitcher = function useThemeSwitcher() {
|
|
67
68
|
const ctx = useContext(ThemeSwitcherContext);
|
|
68
|
-
if (!ctx)
|
|
69
|
+
if (!ctx) {
|
|
69
70
|
throw new Error("useThemeSwitcher must be used within ThemeSwitcherProvider");
|
|
71
|
+
}
|
|
70
72
|
return ctx;
|
|
71
|
-
}
|
|
73
|
+
};
|
|
72
74
|
//# sourceMappingURL=context.js.map
|
package/dist/context.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.tsx"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -5,7 +5,7 @@ export { loadThemes, getThemeNames, defaultTheme } from "./loader.js";
|
|
|
5
5
|
export type { Theme } from "./loader.js";
|
|
6
6
|
export { ThemeProvider, ThemeSwitcherProvider, useTheme, useThemeSwitcher } from "./context.js";
|
|
7
7
|
export type { ThemeProviderProps, ThemeSwitcherProviderProps } from "./context.js";
|
|
8
|
-
export { ThemePicker } from "./
|
|
9
|
-
export type { ThemePickerEntry } from "./
|
|
10
|
-
export { CloseButton } from "./
|
|
8
|
+
export { ThemePicker } from "./theme-picker.js";
|
|
9
|
+
export type { ThemePickerEntry } from "./theme-picker.js";
|
|
10
|
+
export { CloseButton } from "./close-button.js";
|
|
11
11
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAErD,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACtE,YAAY,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChG,YAAY,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAEnF,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,YAAY,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -2,6 +2,6 @@ export { resolveTheme } from "./types.js";
|
|
|
2
2
|
export { buildSyntaxStyle } from "./syntax-rules.js";
|
|
3
3
|
export { loadThemes, getThemeNames, defaultTheme } from "./loader.js";
|
|
4
4
|
export { ThemeProvider, ThemeSwitcherProvider, useTheme, useThemeSwitcher } from "./context.js";
|
|
5
|
-
export { ThemePicker } from "./
|
|
6
|
-
export { CloseButton } from "./
|
|
5
|
+
export { ThemePicker } from "./theme-picker.js";
|
|
6
|
+
export { CloseButton } from "./close-button.js";
|
|
7
7
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAErD,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGtE,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAGhG,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGhD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC"}
|
package/dist/loader.d.ts
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import type { SyntaxStyle } from "@opentui/core";
|
|
2
|
+
import type { ThemeJSON, ResolvedTheme } from "./types.js";
|
|
3
3
|
export interface Theme {
|
|
4
4
|
name: string;
|
|
5
5
|
mode: "dark" | "light";
|
|
6
6
|
colors: ResolvedTheme;
|
|
7
7
|
syntax: SyntaxStyle;
|
|
8
8
|
}
|
|
9
|
-
export declare
|
|
10
|
-
export declare
|
|
9
|
+
export declare const loadThemes: () => Map<string, ThemeJSON>;
|
|
10
|
+
export declare const getThemeNames: () => string[];
|
|
11
11
|
export declare const DEFAULT_THEME_NAME = "tokyonight";
|
|
12
12
|
export declare const DEFAULT_MODE: "dark" | "light";
|
|
13
|
-
export declare function buildTheme(name: string, mode: "dark" | "light"): Theme;
|
|
14
13
|
export declare const defaultTheme: Theme;
|
|
14
|
+
export declare const buildTheme: (name: string, mode: "dark" | "light") => Theme;
|
|
15
15
|
//# sourceMappingURL=loader.d.ts.map
|
package/dist/loader.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAIjD,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAO3D,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,MAAM,EAAE,aAAa,CAAC;IACtB,MAAM,EAAE,WAAW,CAAC;CACrB;AA8DD,eAAO,MAAM,UAAU,QAA0B,GAAG,CAAC,MAAM,EAAE,SAAS,CAErE,CAAC;AAEF,eAAO,MAAM,aAAa,QAA6B,MAAM,EAE5D,CAAC;AAMF,eAAO,MAAM,kBAAkB,eAAe,CAAC;AAC/C,eAAO,MAAM,YAAY,EAAE,MAAM,GAAG,OAAgB,CAAC;AA4DrD,eAAO,MAAM,YAAY,EAAE,KAA6B,CAAC;AAEzD,eAAO,MAAM,UAAU,GAAuB,MAAM,MAAM,EAAE,MAAM,MAAM,GAAG,OAAO,KAAG,KAmBpF,CAAC"}
|
package/dist/loader.js
CHANGED
|
@@ -1,19 +1,23 @@
|
|
|
1
|
-
import { readFileSync, readdirSync, existsSync } from "fs";
|
|
2
|
-
import
|
|
1
|
+
import { readFileSync, readdirSync, existsSync } from "node:fs";
|
|
2
|
+
import path from "node:path";
|
|
3
3
|
import { resolveTheme } from "./types.js";
|
|
4
4
|
import { buildSyntaxStyle } from "./syntax-rules.js";
|
|
5
5
|
/** Cache of loaded theme JSONs by name */
|
|
6
6
|
const themeJsonCache = new Map();
|
|
7
|
-
function loadJsonThemesFromDir(dir, target) {
|
|
7
|
+
const loadJsonThemesFromDir = function loadJsonThemesFromDir(dir, target) {
|
|
8
8
|
try {
|
|
9
|
-
if (!existsSync(dir))
|
|
9
|
+
if (!existsSync(dir)) {
|
|
10
10
|
return;
|
|
11
|
+
}
|
|
11
12
|
for (const file of readdirSync(dir)) {
|
|
12
|
-
if (!file.endsWith(".json"))
|
|
13
|
+
if (!file.endsWith(".json")) {
|
|
13
14
|
continue;
|
|
14
|
-
|
|
15
|
+
}
|
|
16
|
+
const name = path.basename(file, ".json");
|
|
15
17
|
try {
|
|
16
|
-
const content = readFileSync(join(dir, file), "utf-8");
|
|
18
|
+
const content = readFileSync(path.join(dir, file), "utf-8");
|
|
19
|
+
// Deferred(lint-sweep): replace with schema-based validation of untrusted JSON
|
|
20
|
+
// oxlint-disable-next-line typescript/no-unsafe-type-assertion -- untrusted external JSON, validated in a later sweep
|
|
17
21
|
target.set(name, JSON.parse(content));
|
|
18
22
|
}
|
|
19
23
|
catch {
|
|
@@ -24,118 +28,120 @@ function loadJsonThemesFromDir(dir, target) {
|
|
|
24
28
|
catch {
|
|
25
29
|
// dir not readable
|
|
26
30
|
}
|
|
27
|
-
}
|
|
31
|
+
};
|
|
28
32
|
/** Load all bundled themes from packages/themes/themes/ */
|
|
29
|
-
function loadBundledThemes() {
|
|
30
|
-
if (themeJsonCache.size > 0)
|
|
33
|
+
const loadBundledThemes = function loadBundledThemes() {
|
|
34
|
+
if (themeJsonCache.size > 0) {
|
|
31
35
|
return themeJsonCache;
|
|
36
|
+
}
|
|
32
37
|
// Bundled themes
|
|
33
|
-
const bundledDir = join(dirname(new URL(import.meta.url).pathname), "..", "themes");
|
|
38
|
+
const bundledDir = path.join(path.dirname(new URL(import.meta.url).pathname), "..", "themes");
|
|
34
39
|
loadJsonThemesFromDir(bundledDir, themeJsonCache);
|
|
35
40
|
// XDG config: ~/.config/tooee/themes/
|
|
36
|
-
const xdgConfig = process.env.XDG_CONFIG_HOME ?? join(process.env.HOME ?? "", ".config");
|
|
37
|
-
loadJsonThemesFromDir(join(xdgConfig, "tooee", "themes"), themeJsonCache);
|
|
41
|
+
const xdgConfig = process.env.XDG_CONFIG_HOME ?? path.join(process.env.HOME ?? "", ".config");
|
|
42
|
+
loadJsonThemesFromDir(path.join(xdgConfig, "tooee", "themes"), themeJsonCache);
|
|
38
43
|
// Project-local: search upward for .tooee/themes/
|
|
39
44
|
let dir = process.cwd();
|
|
40
45
|
const seen = new Set();
|
|
41
46
|
while (dir && !seen.has(dir)) {
|
|
42
47
|
seen.add(dir);
|
|
43
|
-
loadJsonThemesFromDir(join(dir, ".tooee", "themes"), themeJsonCache);
|
|
44
|
-
const parent = dirname(dir);
|
|
45
|
-
if (parent === dir)
|
|
48
|
+
loadJsonThemesFromDir(path.join(dir, ".tooee", "themes"), themeJsonCache);
|
|
49
|
+
const parent = path.dirname(dir);
|
|
50
|
+
if (parent === dir) {
|
|
46
51
|
break;
|
|
52
|
+
}
|
|
47
53
|
dir = parent;
|
|
48
54
|
}
|
|
49
55
|
return themeJsonCache;
|
|
50
|
-
}
|
|
51
|
-
export function loadThemes() {
|
|
56
|
+
};
|
|
57
|
+
export const loadThemes = function loadThemes() {
|
|
52
58
|
return loadBundledThemes();
|
|
53
|
-
}
|
|
54
|
-
export function getThemeNames() {
|
|
55
|
-
return
|
|
56
|
-
}
|
|
59
|
+
};
|
|
60
|
+
export const getThemeNames = function getThemeNames() {
|
|
61
|
+
return [...loadThemes().keys()].toSorted();
|
|
62
|
+
};
|
|
57
63
|
// ---------------------------------------------------------------------------
|
|
58
64
|
// Default theme
|
|
59
65
|
// ---------------------------------------------------------------------------
|
|
60
66
|
export const DEFAULT_THEME_NAME = "tokyonight";
|
|
61
67
|
export const DEFAULT_MODE = "dark";
|
|
62
|
-
export function buildTheme(name, mode) {
|
|
63
|
-
const themes = loadThemes();
|
|
64
|
-
const json = themes.get(name);
|
|
65
|
-
if (!json) {
|
|
66
|
-
// Fall back to tokyonight, then first available, then hardcoded
|
|
67
|
-
const fallbackJson = themes.get(DEFAULT_THEME_NAME) ?? themes.values().next().value;
|
|
68
|
-
if (fallbackJson) {
|
|
69
|
-
const resolved = resolveTheme(fallbackJson, mode);
|
|
70
|
-
return { name, mode, colors: resolved, syntax: buildSyntaxStyle(resolved) };
|
|
71
|
-
}
|
|
72
|
-
// Absolute fallback — hardcoded Tokyo Night colors
|
|
73
|
-
return hardcodedDefaultTheme;
|
|
74
|
-
}
|
|
75
|
-
try {
|
|
76
|
-
const resolved = resolveTheme(json, mode);
|
|
77
|
-
return { name, mode, colors: resolved, syntax: buildSyntaxStyle(resolved) };
|
|
78
|
-
}
|
|
79
|
-
catch {
|
|
80
|
-
return hardcodedDefaultTheme;
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
68
|
const hardcodedDefaultTheme = (() => {
|
|
84
69
|
const colors = {
|
|
85
|
-
primary: "#7aa2f7",
|
|
86
|
-
secondary: "#bb9af7",
|
|
87
70
|
accent: "#7dcfff",
|
|
88
|
-
error: "#f7768e",
|
|
89
|
-
warning: "#e0af68",
|
|
90
|
-
success: "#9ece6a",
|
|
91
|
-
info: "#7aa2f7",
|
|
92
|
-
text: "#c0caf5",
|
|
93
|
-
textMuted: "#565f89",
|
|
94
71
|
background: "#1a1b26",
|
|
95
|
-
backgroundPanel: "#1e2030",
|
|
96
72
|
backgroundElement: "#222436",
|
|
97
|
-
|
|
98
|
-
selection: "#1e2030",
|
|
73
|
+
backgroundPanel: "#1e2030",
|
|
99
74
|
border: "#565f89",
|
|
100
75
|
borderActive: "#737aa2",
|
|
101
76
|
borderSubtle: "#414868",
|
|
77
|
+
cursorLine: "#222436",
|
|
102
78
|
diffAdded: "#4fd6be",
|
|
103
|
-
|
|
79
|
+
diffAddedBg: "#20303b",
|
|
80
|
+
diffAddedLineNumberBg: "#1b2b34",
|
|
104
81
|
diffContext: "#828bb8",
|
|
105
|
-
|
|
82
|
+
diffContextBg: "#1e2030",
|
|
106
83
|
diffHighlightAdded: "#b8db87",
|
|
107
84
|
diffHighlightRemoved: "#e26a75",
|
|
108
|
-
|
|
109
|
-
diffRemovedBg: "#37222c",
|
|
110
|
-
diffContextBg: "#1e2030",
|
|
85
|
+
diffHunkHeader: "#828bb8",
|
|
111
86
|
diffLineNumber: "#222436",
|
|
112
|
-
|
|
87
|
+
diffRemoved: "#c53b53",
|
|
88
|
+
diffRemovedBg: "#37222c",
|
|
113
89
|
diffRemovedLineNumberBg: "#2d1f26",
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
markdownLink: "#7aa2f7",
|
|
117
|
-
markdownLinkText: "#7dcfff",
|
|
118
|
-
markdownCode: "#9ece6a",
|
|
90
|
+
error: "#f7768e",
|
|
91
|
+
info: "#7aa2f7",
|
|
119
92
|
markdownBlockQuote: "#e0af68",
|
|
93
|
+
markdownCode: "#9ece6a",
|
|
94
|
+
markdownCodeBlock: "#c0caf5",
|
|
120
95
|
markdownEmph: "#e0af68",
|
|
121
|
-
|
|
96
|
+
markdownHeading: "#bb9af7",
|
|
122
97
|
markdownHorizontalRule: "#565f89",
|
|
123
|
-
markdownListItem: "#7aa2f7",
|
|
124
|
-
markdownListEnumeration: "#7dcfff",
|
|
125
98
|
markdownImage: "#7aa2f7",
|
|
126
99
|
markdownImageText: "#7dcfff",
|
|
127
|
-
|
|
100
|
+
markdownLink: "#7aa2f7",
|
|
101
|
+
markdownLinkText: "#7dcfff",
|
|
102
|
+
markdownListEnumeration: "#7dcfff",
|
|
103
|
+
markdownListItem: "#7aa2f7",
|
|
104
|
+
markdownStrong: "#ff966c",
|
|
105
|
+
markdownText: "#c0caf5",
|
|
106
|
+
primary: "#7aa2f7",
|
|
107
|
+
secondary: "#bb9af7",
|
|
108
|
+
selection: "#1e2030",
|
|
109
|
+
success: "#9ece6a",
|
|
128
110
|
syntaxComment: "#565f89",
|
|
129
|
-
syntaxKeyword: "#bb9af7",
|
|
130
111
|
syntaxFunction: "#7aa2f7",
|
|
131
|
-
|
|
132
|
-
syntaxString: "#9ece6a",
|
|
112
|
+
syntaxKeyword: "#bb9af7",
|
|
133
113
|
syntaxNumber: "#ff9e64",
|
|
134
|
-
syntaxType: "#2ac3de",
|
|
135
114
|
syntaxOperator: "#89ddff",
|
|
136
115
|
syntaxPunctuation: "#a9b1d6",
|
|
116
|
+
syntaxString: "#9ece6a",
|
|
117
|
+
syntaxType: "#2ac3de",
|
|
118
|
+
syntaxVariable: "#c0caf5",
|
|
119
|
+
text: "#c0caf5",
|
|
120
|
+
textMuted: "#565f89",
|
|
121
|
+
warning: "#e0af68",
|
|
137
122
|
};
|
|
138
|
-
return {
|
|
123
|
+
return { colors, mode: DEFAULT_MODE, name: DEFAULT_THEME_NAME, syntax: buildSyntaxStyle(colors) };
|
|
139
124
|
})();
|
|
140
125
|
export const defaultTheme = hardcodedDefaultTheme;
|
|
126
|
+
export const buildTheme = function buildTheme(name, mode) {
|
|
127
|
+
const themes = loadThemes();
|
|
128
|
+
const json = themes.get(name);
|
|
129
|
+
if (!json) {
|
|
130
|
+
// Fall back to tokyonight, then first available, then hardcoded
|
|
131
|
+
const fallbackJson = themes.get(DEFAULT_THEME_NAME) ?? themes.values().next().value;
|
|
132
|
+
if (fallbackJson) {
|
|
133
|
+
const resolved = resolveTheme(fallbackJson, mode);
|
|
134
|
+
return { colors: resolved, mode, name, syntax: buildSyntaxStyle(resolved) };
|
|
135
|
+
}
|
|
136
|
+
// Absolute fallback — hardcoded Tokyo Night colors
|
|
137
|
+
return hardcodedDefaultTheme;
|
|
138
|
+
}
|
|
139
|
+
try {
|
|
140
|
+
const resolved = resolveTheme(json, mode);
|
|
141
|
+
return { colors: resolved, mode, name, syntax: buildSyntaxStyle(resolved) };
|
|
142
|
+
}
|
|
143
|
+
catch {
|
|
144
|
+
return hardcodedDefaultTheme;
|
|
145
|
+
}
|
|
146
|
+
};
|
|
141
147
|
//# sourceMappingURL=loader.js.map
|
package/dist/loader.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"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"}
|
package/dist/syntax-rules.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { SyntaxStyle } from "@opentui/core";
|
|
2
2
|
import type { ResolvedTheme } from "./types.js";
|
|
3
|
-
export declare
|
|
3
|
+
export declare const buildSyntaxStyle: (resolved: ResolvedTheme) => SyntaxStyle;
|
|
4
4
|
//# sourceMappingURL=syntax-rules.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"syntax-rules.d.ts","sourceRoot":"","sources":["../src/syntax-rules.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,WAAW,EAAE,MAAM,eAAe,
|
|
1
|
+
{"version":3,"file":"syntax-rules.d.ts","sourceRoot":"","sources":["../src/syntax-rules.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,WAAW,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AA8MhD,eAAO,MAAM,gBAAgB,GAA6B,UAAU,aAAa,KAAG,WAEnF,CAAC"}
|