@tooee/themes 0.2.4 → 0.3.1

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.
Files changed (41) hide show
  1. package/dist/{CloseButton.d.ts → close-button.d.ts} +2 -2
  2. package/dist/close-button.d.ts.map +1 -0
  3. package/dist/{CloseButton.js → close-button.js} +5 -4
  4. package/dist/close-button.js.map +1 -0
  5. package/dist/context.d.ts +7 -7
  6. package/dist/context.d.ts.map +1 -1
  7. package/dist/context.js +28 -26
  8. package/dist/context.js.map +1 -1
  9. package/dist/index.d.ts +3 -3
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +2 -2
  12. package/dist/index.js.map +1 -1
  13. package/dist/loader.d.ts +5 -5
  14. package/dist/loader.d.ts.map +1 -1
  15. package/dist/loader.js +80 -74
  16. package/dist/loader.js.map +1 -1
  17. package/dist/syntax-rules.d.ts +1 -1
  18. package/dist/syntax-rules.d.ts.map +1 -1
  19. package/dist/syntax-rules.js +17 -17
  20. package/dist/syntax-rules.js.map +1 -1
  21. package/dist/{ThemePicker.d.ts → theme-picker.d.ts} +2 -2
  22. package/dist/theme-picker.d.ts.map +1 -0
  23. package/dist/{ThemePicker.js → theme-picker.js} +37 -33
  24. package/dist/theme-picker.js.map +1 -0
  25. package/dist/types.d.ts +7 -9
  26. package/dist/types.d.ts.map +1 -1
  27. package/dist/types.js +52 -43
  28. package/dist/types.js.map +1 -1
  29. package/package.json +4 -4
  30. package/src/{CloseButton.tsx → close-button.tsx} +21 -15
  31. package/src/context.tsx +83 -74
  32. package/src/index.ts +10 -10
  33. package/src/loader.ts +109 -95
  34. package/src/syntax-rules.ts +21 -21
  35. package/src/theme-picker.tsx +189 -0
  36. package/src/types.ts +129 -110
  37. package/dist/CloseButton.d.ts.map +0 -1
  38. package/dist/CloseButton.js.map +0 -1
  39. package/dist/ThemePicker.d.ts.map +0 -1
  40. package/dist/ThemePicker.js.map +0 -1
  41. 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 function CloseButton({ onClose, glyph, color }: CloseButtonProps): import("react").ReactNode;
15
+ export declare const CloseButton: ({ onClose, glyph, color, }: CloseButtonProps) => React.ReactNode;
16
16
  export {};
17
- //# sourceMappingURL=CloseButton.d.ts.map
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=CloseButton.js.map
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 { type ReactNode } from "react";
2
- import { type SyntaxStyle } from "@opentui/core";
1
+ import type { ReactNode } from "react";
2
+ import type { SyntaxStyle } from "@opentui/core";
3
3
  import type { ResolvedTheme } from "./types.js";
4
- import { type Theme } from "./loader.js";
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 function ThemeProvider({ name, mode, theme: themeProp, children }: ThemeProviderProps): ReactNode;
21
- export declare function useTheme(): ThemeContextValue;
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 function ThemeSwitcherProvider({ initialTheme, initialMode, children, }: ThemeSwitcherProviderProps): ReactNode;
36
- export declare function useThemeSwitcher(): ThemeSwitcherContextValue;
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
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA6D,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AACjG,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,eAAe,CAAA;AAEhD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAC/C,OAAO,EACL,KAAK,KAAK,EAMX,MAAM,aAAa,CAAA;AAMpB,UAAU,iBAAiB;IACzB,KAAK,EAAE,aAAa,CAAA;IACpB,MAAM,EAAE,WAAW,CAAA;IACnB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AASD,MAAM,WAAW,kBAAkB;IACjC,8DAA8D;IAC9D,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,iBAAiB;IACjB,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;IACvB,0DAA0D;IAC1D,KAAK,CAAC,EAAE,KAAK,CAAA;IACb,QAAQ,EAAE,SAAS,CAAA;CACpB;AAED,wBAAgB,aAAa,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,kBAAkB,aAgB3F;AAED,wBAAgB,QAAQ,IAAI,iBAAiB,CAE5C;AAMD,UAAU,yBAA0B,SAAQ,iBAAiB;IAC3D,SAAS,EAAE,MAAM,IAAI,CAAA;IACrB,SAAS,EAAE,MAAM,IAAI,CAAA;IACrB,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAA;IAC9D,SAAS,EAAE,MAAM,EAAE,CAAA;CACpB;AAID,MAAM,WAAW,0BAA0B;IACzC,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;IAC9B,QAAQ,EAAE,SAAS,CAAA;CACpB;AAED,wBAAgB,qBAAqB,CAAC,EACpC,YAAY,EACZ,WAAW,EACX,QAAQ,GACT,EAAE,0BAA0B,aAuD5B;AAED,wBAAgB,gBAAgB,IAAI,yBAAyB,CAI5D"}
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 { theme: t.colors, syntax: t.syntax, name: t.name, mode: t.mode };
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, _setMode] = useState(initialMode ?? DEFAULT_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, mode } });
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, mode } });
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: { name, mode } });
50
+ if (opts?.persist === true) {
51
+ writeGlobalConfig({ theme: { mode, name } });
51
52
  }
52
53
  }, [mode]);
53
54
  const value = useMemo(() => ({
54
- theme: theme.colors,
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
- allThemes,
61
+ syntax: theme.syntax,
62
+ theme: theme.colors,
62
63
  }), [theme, mode, nextTheme, prevTheme, setThemeByName, allThemes]);
63
- const themeValue = useMemo(() => ({ theme: theme.colors, syntax: theme.syntax, name: theme.name, mode }), [theme, mode]);
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
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.tsx"],"names":[],"mappings":"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"}
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 "./ThemePicker.js";
9
- export type { ThemePickerEntry } from "./ThemePicker.js";
10
- export { CloseButton } from "./CloseButton.js";
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
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACzC,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAE1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAEpD,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AACrE,YAAY,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAExC,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAC/F,YAAY,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAA;AAElF,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,YAAY,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAExD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA"}
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 "./ThemePicker.js";
6
- export { CloseButton } from "./CloseButton.js";
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,CAAA;AAGzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAEpD,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAGrE,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAG/F,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAG9C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA"}
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 { type SyntaxStyle } from "@opentui/core";
2
- import { type ThemeJSON, type ResolvedTheme } from "./types.js";
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 function loadThemes(): Map<string, ThemeJSON>;
10
- export declare function getThemeNames(): string[];
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
@@ -1 +1 @@
1
- {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,eAAe,CAAA;AAGhD,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,aAAa,EAAgB,MAAM,YAAY,CAAA;AAO7E,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,GAAG,OAAO,CAAA;IACtB,MAAM,EAAE,aAAa,CAAA;IACrB,MAAM,EAAE,WAAW,CAAA;CACpB;AAiDD,wBAAgB,UAAU,IAAI,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAEnD;AAED,wBAAgB,aAAa,IAAI,MAAM,EAAE,CAExC;AAMD,eAAO,MAAM,kBAAkB,eAAe,CAAA;AAC9C,eAAO,MAAM,YAAY,EAAE,MAAM,GAAG,OAAgB,CAAA;AAEpD,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,KAAK,CAmBtE;AA4DD,eAAO,MAAM,YAAY,EAAE,KAA6B,CAAA"}
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 { join, basename, dirname } from "path";
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
- const name = basename(file, ".json");
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 Array.from(loadThemes().keys()).sort();
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
- cursorLine: "#222436",
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
- diffRemoved: "#c53b53",
79
+ diffAddedBg: "#20303b",
80
+ diffAddedLineNumberBg: "#1b2b34",
104
81
  diffContext: "#828bb8",
105
- diffHunkHeader: "#828bb8",
82
+ diffContextBg: "#1e2030",
106
83
  diffHighlightAdded: "#b8db87",
107
84
  diffHighlightRemoved: "#e26a75",
108
- diffAddedBg: "#20303b",
109
- diffRemovedBg: "#37222c",
110
- diffContextBg: "#1e2030",
85
+ diffHunkHeader: "#828bb8",
111
86
  diffLineNumber: "#222436",
112
- diffAddedLineNumberBg: "#1b2b34",
87
+ diffRemoved: "#c53b53",
88
+ diffRemovedBg: "#37222c",
113
89
  diffRemovedLineNumberBg: "#2d1f26",
114
- markdownText: "#c0caf5",
115
- markdownHeading: "#bb9af7",
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
- markdownStrong: "#ff966c",
96
+ markdownHeading: "#bb9af7",
122
97
  markdownHorizontalRule: "#565f89",
123
- markdownListItem: "#7aa2f7",
124
- markdownListEnumeration: "#7dcfff",
125
98
  markdownImage: "#7aa2f7",
126
99
  markdownImageText: "#7dcfff",
127
- markdownCodeBlock: "#c0caf5",
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
- syntaxVariable: "#c0caf5",
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 { name: DEFAULT_THEME_NAME, mode: DEFAULT_MODE, colors, syntax: buildSyntaxStyle(colors) };
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
@@ -1 +1 @@
1
- {"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  import { SyntaxStyle } from "@opentui/core";
2
2
  import type { ResolvedTheme } from "./types.js";
3
- export declare function buildSyntaxStyle(resolved: ResolvedTheme): SyntaxStyle;
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,CAAA;AACjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AA8M/C,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,aAAa,GAAG,WAAW,CAErE"}
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"}