@llmnative/react 1.28.0 → 1.29.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.
@@ -14,6 +14,8 @@ export type ThemeMode = 'light' | 'dark' | 'system';
14
14
  export interface ColorScale {
15
15
  background?: string;
16
16
  foreground?: string;
17
+ /** Page floor behind cards and panels (`bg-canvas`). Falls back to `background` when not set. */
18
+ canvas?: string;
17
19
  card?: string;
18
20
  cardForeground?: string;
19
21
  popover?: string;
@@ -404,7 +406,7 @@ export interface ThemeDefinition {
404
406
  components: Theme;
405
407
  }
406
408
  /** IDs of built-in themes. Extend by adding entries to BUILT_IN_THEMES. */
407
- export declare const BUILT_IN_THEME_IDS: readonly ["default", "flat", "cyber", "vscode-dark-plus", "vscode-light-plus", "tokyo-night", "tokyo-night-light"];
409
+ export declare const BUILT_IN_THEME_IDS: readonly ["default", "flat", "cyber", "vscode-dark-modern", "vscode-light-modern", "vscode-dark-plus", "vscode-light-plus", "tokyo-night", "tokyo-night-light"];
408
410
  export type BuiltInThemeId = (typeof BUILT_IN_THEME_IDS)[number];
409
411
  export type AppThemeProviderConfig = BuiltInThemeId | ThemeDefinition | {
410
412
  defaultMode?: ThemeMode;
@@ -0,0 +1,3 @@
1
+ import type { ThemeDefinition } from '../src/Theme';
2
+ declare const definition: ThemeDefinition;
3
+ export default definition;
@@ -0,0 +1,3 @@
1
+ import type { ThemeDefinition } from '../src/Theme';
2
+ declare const definition: ThemeDefinition;
3
+ export default definition;
package/llms-full.txt CHANGED
@@ -77,7 +77,10 @@ import '@llmnative/react/dist/index.css'
77
77
  }
78
78
  ```
79
79
 
80
- Built-in themes: `default`, `flat`, `cyber`.
80
+ Built-in themes: `default`, `flat`, `cyber`, `vscode-dark-modern`, `vscode-light-modern`, `vscode-dark-plus`, `vscode-light-plus`, `tokyo-night`, `tokyo-night-light`.
81
+ The VS Code and Tokyo Night themes are compiled from the original VS Code theme JSON (`scripts/themes/vscode`), filling the keys a theme does not list with VS Code's color registry defaults; each one has both modes (`vscode-dark-*` starts dark, `vscode-light-*` light). Status colors (destructive/success/warning/info) stay the framework's.
82
+
83
+ `ColorScale` tokens: `background`, `foreground`, `canvas` (page floor behind cards and panels, `bg-canvas`; falls back to `background`), `card`, `popover`, `primary`, `secondary`, `muted`, `accent`, `destructive`, `success`, `warning`, `info` (each with its `*Foreground`), `border`, `input` (border of form fields), `ring`. A consumer bridging the tokens in its own `@theme inline` adds `--color-canvas: hsl(var(--rf-canvas, var(--rf-background)));`.
81
84
 
82
85
  ---
83
86
 
@@ -1034,7 +1037,7 @@ Configurazione API key in `Config.tsx`: `geminiApiKey`, `openaiApiKey`, `anthrop
1034
1037
 
1035
1038
  ```tsx
1036
1039
  const theme = useThemeController()
1037
- theme.applyTheme('flat') // 'default' | 'flat' | 'cyber' | custom
1040
+ theme.applyTheme('flat') // BuiltInThemeId ('default' | 'flat' | 'cyber' | 'vscode-dark-modern' | …) | custom
1038
1041
  theme.setMode('dark') // 'light' | 'dark' | 'system'
1039
1042
 
1040
1043
  const icons = useIconController()
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@llmnative/react",
3
- "version": "1.28.0",
3
+ "version": "1.29.0",
4
4
  "description": "LLM-native React framework for deterministic UI generation. Data-driven by default, schema-driven optional. Ultra-low token consumption — built for AI agents, not just humans.",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",
@@ -409,6 +409,7 @@ function createSourceFiles(params) {
409
409
  @theme inline {
410
410
  --color-background: hsl(var(--rf-background));
411
411
  --color-foreground: hsl(var(--rf-foreground));
412
+ --color-canvas: hsl(var(--rf-canvas, var(--rf-background)));
412
413
  --color-card: hsl(var(--rf-card));
413
414
  --color-card-foreground: hsl(var(--rf-card-foreground));
414
415
  --color-popover: hsl(var(--rf-popover));
package/themes/default.ts CHANGED
@@ -7,6 +7,7 @@ export const preset: ThemePresetConfig = {
7
7
  colors: {
8
8
  background: '0 0% 100%',
9
9
  foreground: '222.2 84% 4.9%',
10
+ canvas: '210 40% 98%',
10
11
  card: '0 0% 100%',
11
12
  cardForeground: '222.2 84% 4.9%',
12
13
  popover: '0 0% 100%',
@@ -34,6 +35,7 @@ export const preset: ThemePresetConfig = {
34
35
  dark: {
35
36
  background: '222.2 84% 4.9%',
36
37
  foreground: '210 40% 98%',
38
+ canvas: '222.2 84% 4.9%',
37
39
  card: '222.2 84% 4.9%',
38
40
  cardForeground: '210 40% 98%',
39
41
  popover: '222.2 84% 4.9%',
@@ -1,3 +1,5 @@
1
+ // Generated by scripts/themes/compile-vscode-themes.js from the VS Code themes
2
+ // "Tokyo Night Light" (light) and "Tokyo Night" (dark). Do not edit: change the sources or the compiler.
1
3
  import baseTheme from './default';
2
4
  import type { ThemeDefinition } from '../src/Theme';
3
5
 
@@ -9,28 +11,48 @@ const definition: ThemeDefinition = {
9
11
  colors: {
10
12
  ...baseTheme.preset.colors,
11
13
  ...{
12
- background: '231.4 16.3% 91.6%',
13
- foreground: '228.6 26.2% 27.6%',
14
- card: '226.7 12.3% 85.7%',
15
- cardForeground: '224.3 17.6% 25.7%',
16
- popover: '231.4 16.3% 91.6%',
17
- popoverForeground: '224.3 17.6% 25.7%',
18
- primary: '217.7 61.1% 41.4%',
19
- primaryForeground: '0 0% 100%',
20
- secondary: '226.7 12.3% 85.7%',
21
- secondaryForeground: '224.3 17.6% 25.7%',
22
- muted: '231.4 16.3% 91.6%',
23
- mutedForeground: '232.5 6.7% 47.1%',
24
- accent: '231.4 16.3% 91.6%',
25
- accentForeground: '224.3 17.6% 25.7%',
26
- border: '230 5.1% 76.9%',
27
- input: '231.4 16.3% 91.6%',
28
- ring: '224.3 17.6% 25.7%'
29
- },
14
+ background: '231.4 16.3% 91.6%',
15
+ foreground: '228.6 26.2% 27.6%',
16
+ canvas: '226.7 12.3% 85.7%',
17
+ card: '231.4 16.3% 91.6%',
18
+ cardForeground: '228.6 26.2% 27.6%',
19
+ popover: '226.7 12.3% 85.7%',
20
+ popoverForeground: '224.3 17.6% 25.7%',
21
+ primary: '217.7 46.1% 48%',
22
+ primaryForeground: '0 0% 100%',
23
+ secondary: '232.5 6.7% 47.1%',
24
+ secondaryForeground: '224.3 17.6% 25.7%',
25
+ muted: '231.4 13.2% 89.6%',
26
+ mutedForeground: '232.5 6.7% 47.1%',
27
+ accent: '231.4 13.2% 89.6%',
28
+ accentForeground: '224.3 17.6% 25.7%',
29
+ border: '230 5.1% 76.9%',
30
+ input: '230 5.1% 76.9%',
31
+ ring: '226.7 10.1% 82.5%'
32
+ },
30
33
  },
31
34
  dark: {
32
35
  ...baseTheme.preset.dark,
33
- ...{},
36
+ ...{
37
+ background: '235 18.8% 12.5%',
38
+ foreground: '229.3 35.4% 75.1%',
39
+ canvas: '240 15.4% 10.2%',
40
+ card: '235 18.8% 12.5%',
41
+ cardForeground: '229.3 35.4% 75.1%',
42
+ popover: '240 15.4% 10.2%',
43
+ popoverForeground: '232.7 13.9% 53.5%',
44
+ primary: '223.1 44.3% 39.4%',
45
+ primaryForeground: '0 0% 100%',
46
+ secondary: '232.2 16.3% 27.6%',
47
+ secondaryForeground: '232.7 13.9% 53.5%',
48
+ muted: '240 15.6% 8.8%',
49
+ mutedForeground: '230.3 16.1% 37.8%',
50
+ accent: '240 15.6% 8.8%',
51
+ accentForeground: '229.3 35.4% 75.1%',
52
+ border: '240 11.1% 7.1%',
53
+ input: '240 14.3% 6.9%',
54
+ ring: '233.3 19.1% 18.4%'
55
+ },
34
56
  },
35
57
  },
36
58
  };
@@ -1,3 +1,5 @@
1
+ // Generated by scripts/themes/compile-vscode-themes.js from the VS Code themes
2
+ // "Tokyo Night Light" (light) and "Tokyo Night" (dark). Do not edit: change the sources or the compiler.
1
3
  import baseTheme from './default';
2
4
  import type { ThemeDefinition } from '../src/Theme';
3
5
 
@@ -8,29 +10,49 @@ const definition: ThemeDefinition = {
8
10
  mode: 'dark',
9
11
  colors: {
10
12
  ...baseTheme.preset.colors,
11
- ...{},
13
+ ...{
14
+ background: '231.4 16.3% 91.6%',
15
+ foreground: '228.6 26.2% 27.6%',
16
+ canvas: '226.7 12.3% 85.7%',
17
+ card: '231.4 16.3% 91.6%',
18
+ cardForeground: '228.6 26.2% 27.6%',
19
+ popover: '226.7 12.3% 85.7%',
20
+ popoverForeground: '224.3 17.6% 25.7%',
21
+ primary: '217.7 46.1% 48%',
22
+ primaryForeground: '0 0% 100%',
23
+ secondary: '232.5 6.7% 47.1%',
24
+ secondaryForeground: '224.3 17.6% 25.7%',
25
+ muted: '231.4 13.2% 89.6%',
26
+ mutedForeground: '232.5 6.7% 47.1%',
27
+ accent: '231.4 13.2% 89.6%',
28
+ accentForeground: '224.3 17.6% 25.7%',
29
+ border: '230 5.1% 76.9%',
30
+ input: '230 5.1% 76.9%',
31
+ ring: '226.7 10.1% 82.5%'
32
+ },
12
33
  },
13
34
  dark: {
14
35
  ...baseTheme.preset.dark,
15
36
  ...{
16
- background: '235 18.8% 12.5%',
17
- foreground: '229.3 35.4% 75.1%',
18
- card: '240 15.4% 10.2%',
19
- cardForeground: '232.7 13.9% 53.5%',
20
- popover: '240 14.9% 9.2%',
21
- popoverForeground: '232.7 13.9% 53.5%',
22
- primary: '217.3 39.8% 55.7%',
23
- primaryForeground: '0 0% 100%',
24
- secondary: '240 15.4% 10.2%',
25
- secondaryForeground: '232.7 13.9% 53.5%',
26
- muted: '235.4 18.8% 13.5%',
27
- mutedForeground: '230.3 16.1% 37.8%',
28
- accent: '228.8 20% 15.7%',
29
- accentForeground: '229.3 35.4% 75.1%',
30
- border: '240 11.1% 7.1%',
31
- input: '240 14.9% 9.2%',
32
- ring: '228.7 72.6% 85.7%'
33
- },
37
+ background: '235 18.8% 12.5%',
38
+ foreground: '229.3 35.4% 75.1%',
39
+ canvas: '240 15.4% 10.2%',
40
+ card: '235 18.8% 12.5%',
41
+ cardForeground: '229.3 35.4% 75.1%',
42
+ popover: '240 15.4% 10.2%',
43
+ popoverForeground: '232.7 13.9% 53.5%',
44
+ primary: '223.1 44.3% 39.4%',
45
+ primaryForeground: '0 0% 100%',
46
+ secondary: '232.2 16.3% 27.6%',
47
+ secondaryForeground: '232.7 13.9% 53.5%',
48
+ muted: '240 15.6% 8.8%',
49
+ mutedForeground: '230.3 16.1% 37.8%',
50
+ accent: '240 15.6% 8.8%',
51
+ accentForeground: '229.3 35.4% 75.1%',
52
+ border: '240 11.1% 7.1%',
53
+ input: '240 14.3% 6.9%',
54
+ ring: '233.3 19.1% 18.4%'
55
+ },
34
56
  },
35
57
  },
36
58
  };
@@ -0,0 +1,60 @@
1
+ // Generated by scripts/themes/compile-vscode-themes.js from the VS Code themes
2
+ // "Light Modern" (light) and "Dark Modern" (dark). Do not edit: change the sources or the compiler.
3
+ import baseTheme from './default';
4
+ import type { ThemeDefinition } from '../src/Theme';
5
+
6
+ const definition: ThemeDefinition = {
7
+ ...baseTheme,
8
+ preset: {
9
+ ...baseTheme.preset,
10
+ mode: 'dark',
11
+ colors: {
12
+ ...baseTheme.preset.colors,
13
+ ...{
14
+ background: '0 0% 100%',
15
+ foreground: '0 0% 23.1%',
16
+ canvas: '0 0% 97.3%',
17
+ card: '0 0% 100%',
18
+ cardForeground: '0 0% 23.1%',
19
+ popover: '0 0% 100%',
20
+ popoverForeground: '0 0% 23.1%',
21
+ primary: '209 100% 36.1%',
22
+ primaryForeground: '0 0% 100%',
23
+ secondary: '0 0% 89.8%',
24
+ secondaryForeground: '0 0% 23.1%',
25
+ muted: '0 0% 94.9%',
26
+ mutedForeground: '0 0% 23.1%',
27
+ accent: '0 0% 94.9%',
28
+ accentForeground: '0 0% 23.1%',
29
+ border: '0 0% 89.8%',
30
+ input: '0 0% 80.8%',
31
+ ring: '209 100% 36.1%'
32
+ },
33
+ },
34
+ dark: {
35
+ ...baseTheme.preset.dark,
36
+ ...{
37
+ background: '0 0% 12.2%',
38
+ foreground: '0 0% 80%',
39
+ canvas: '0 0% 9.4%',
40
+ card: '0 0% 12.2%',
41
+ cardForeground: '0 0% 80%',
42
+ popover: '0 0% 12.2%',
43
+ popoverForeground: '0 0% 80%',
44
+ primary: '206 100% 41.6%',
45
+ primaryForeground: '0 0% 100%',
46
+ secondary: '195 4.5% 17.3%',
47
+ secondaryForeground: '0 0% 80%',
48
+ muted: '195 4.5% 17.3%',
49
+ mutedForeground: '0 0% 61.6%',
50
+ accent: '195 4.5% 17.3%',
51
+ accentForeground: '0 0% 80%',
52
+ border: '0 0% 16.9%',
53
+ input: '0 0% 23.5%',
54
+ ring: '206 100% 41.6%'
55
+ },
56
+ },
57
+ },
58
+ };
59
+
60
+ export default definition;
@@ -1,3 +1,5 @@
1
+ // Generated by scripts/themes/compile-vscode-themes.js from the VS Code themes
2
+ // "Light+" (light) and "Dark+" (dark). Do not edit: change the sources or the compiler.
1
3
  import baseTheme from './default';
2
4
  import type { ThemeDefinition } from '../src/Theme';
3
5
 
@@ -8,20 +10,49 @@ const definition: ThemeDefinition = {
8
10
  mode: 'dark',
9
11
  colors: {
10
12
  ...baseTheme.preset.colors,
11
- ...{},
13
+ ...{
14
+ background: '0 0% 100%',
15
+ foreground: '0 0% 0%',
16
+ canvas: '0 0% 95.3%',
17
+ card: '0 0% 100%',
18
+ cardForeground: '0 0% 0%',
19
+ popover: '0 0% 100%',
20
+ popoverForeground: '0 0% 38%',
21
+ primary: '204.1 100% 40%',
22
+ primaryForeground: '0 0% 100%',
23
+ secondary: '0 0% 91%',
24
+ secondaryForeground: '0 0% 38%',
25
+ muted: '0 0% 91%',
26
+ mutedForeground: '0 0% 44.3%',
27
+ accent: '0 0% 91%',
28
+ accentForeground: '0 0% 38%',
29
+ border: '0 0% 82.7%',
30
+ input: '0 0% 80.8%',
31
+ ring: '204.1 100% 47.3%'
32
+ },
12
33
  },
13
34
  dark: {
14
35
  ...baseTheme.preset.dark,
15
36
  ...{
16
- background: '0 0% 11.8%',
17
- foreground: '0 0% 83.1%',
18
- cardForeground: '0 0% 83.1%',
19
- popover: '240 1.3% 14.7%',
20
- popoverForeground: '0 0% 80%',
21
- primaryForeground: '0 0% 11.8%',
22
- secondaryForeground: '0 0% 83.1%',
23
- accentForeground: '0 0% 83.1%'
24
- },
37
+ background: '0 0% 11.8%',
38
+ foreground: '0 0% 83.1%',
39
+ canvas: '0 0% 11.8%',
40
+ card: '240 1.3% 14.7%',
41
+ cardForeground: '0 0% 83.1%',
42
+ popover: '240 1.3% 14.7%',
43
+ popoverForeground: '0 0% 80%',
44
+ primary: '204.1 83.5% 33.3%',
45
+ primaryForeground: '0 0% 100%',
46
+ secondary: '195 4.5% 17.3%',
47
+ secondaryForeground: '0 0% 80%',
48
+ muted: '195 4.5% 17.3%',
49
+ mutedForeground: '240 0.5% 60.6%',
50
+ accent: '195 4.5% 17.3%',
51
+ accentForeground: '0 0% 80%',
52
+ border: '0 0% 27.1%',
53
+ input: '0 0% 23.5%',
54
+ ring: '204.1 100% 41.6%'
55
+ },
25
56
  },
26
57
  },
27
58
  };
@@ -0,0 +1,60 @@
1
+ // Generated by scripts/themes/compile-vscode-themes.js from the VS Code themes
2
+ // "Light Modern" (light) and "Dark Modern" (dark). Do not edit: change the sources or the compiler.
3
+ import baseTheme from './default';
4
+ import type { ThemeDefinition } from '../src/Theme';
5
+
6
+ const definition: ThemeDefinition = {
7
+ ...baseTheme,
8
+ preset: {
9
+ ...baseTheme.preset,
10
+ mode: 'light',
11
+ colors: {
12
+ ...baseTheme.preset.colors,
13
+ ...{
14
+ background: '0 0% 100%',
15
+ foreground: '0 0% 23.1%',
16
+ canvas: '0 0% 97.3%',
17
+ card: '0 0% 100%',
18
+ cardForeground: '0 0% 23.1%',
19
+ popover: '0 0% 100%',
20
+ popoverForeground: '0 0% 23.1%',
21
+ primary: '209 100% 36.1%',
22
+ primaryForeground: '0 0% 100%',
23
+ secondary: '0 0% 89.8%',
24
+ secondaryForeground: '0 0% 23.1%',
25
+ muted: '0 0% 94.9%',
26
+ mutedForeground: '0 0% 23.1%',
27
+ accent: '0 0% 94.9%',
28
+ accentForeground: '0 0% 23.1%',
29
+ border: '0 0% 89.8%',
30
+ input: '0 0% 80.8%',
31
+ ring: '209 100% 36.1%'
32
+ },
33
+ },
34
+ dark: {
35
+ ...baseTheme.preset.dark,
36
+ ...{
37
+ background: '0 0% 12.2%',
38
+ foreground: '0 0% 80%',
39
+ canvas: '0 0% 9.4%',
40
+ card: '0 0% 12.2%',
41
+ cardForeground: '0 0% 80%',
42
+ popover: '0 0% 12.2%',
43
+ popoverForeground: '0 0% 80%',
44
+ primary: '206 100% 41.6%',
45
+ primaryForeground: '0 0% 100%',
46
+ secondary: '195 4.5% 17.3%',
47
+ secondaryForeground: '0 0% 80%',
48
+ muted: '195 4.5% 17.3%',
49
+ mutedForeground: '0 0% 61.6%',
50
+ accent: '195 4.5% 17.3%',
51
+ accentForeground: '0 0% 80%',
52
+ border: '0 0% 16.9%',
53
+ input: '0 0% 23.5%',
54
+ ring: '206 100% 41.6%'
55
+ },
56
+ },
57
+ },
58
+ };
59
+
60
+ export default definition;
@@ -1,3 +1,5 @@
1
+ // Generated by scripts/themes/compile-vscode-themes.js from the VS Code themes
2
+ // "Light+" (light) and "Dark+" (dark). Do not edit: change the sources or the compiler.
1
3
  import baseTheme from './default';
2
4
  import type { ThemeDefinition } from '../src/Theme';
3
5
 
@@ -9,19 +11,48 @@ const definition: ThemeDefinition = {
9
11
  colors: {
10
12
  ...baseTheme.preset.colors,
11
13
  ...{
12
- background: '0 0% 100%',
13
- foreground: '0 0% 0%',
14
- cardForeground: '0 0% 0%',
15
- popoverForeground: '0 0% 0%',
16
- primaryForeground: '0 0% 100%',
17
- secondaryForeground: '0 0% 0%',
18
- accent: '0 0% 91%',
19
- accentForeground: '0 0% 0%'
20
- },
14
+ background: '0 0% 100%',
15
+ foreground: '0 0% 0%',
16
+ canvas: '0 0% 95.3%',
17
+ card: '0 0% 100%',
18
+ cardForeground: '0 0% 0%',
19
+ popover: '0 0% 100%',
20
+ popoverForeground: '0 0% 38%',
21
+ primary: '204.1 100% 40%',
22
+ primaryForeground: '0 0% 100%',
23
+ secondary: '0 0% 91%',
24
+ secondaryForeground: '0 0% 38%',
25
+ muted: '0 0% 91%',
26
+ mutedForeground: '0 0% 44.3%',
27
+ accent: '0 0% 91%',
28
+ accentForeground: '0 0% 38%',
29
+ border: '0 0% 82.7%',
30
+ input: '0 0% 80.8%',
31
+ ring: '204.1 100% 47.3%'
32
+ },
21
33
  },
22
34
  dark: {
23
35
  ...baseTheme.preset.dark,
24
- ...{},
36
+ ...{
37
+ background: '0 0% 11.8%',
38
+ foreground: '0 0% 83.1%',
39
+ canvas: '0 0% 11.8%',
40
+ card: '240 1.3% 14.7%',
41
+ cardForeground: '0 0% 83.1%',
42
+ popover: '240 1.3% 14.7%',
43
+ popoverForeground: '0 0% 80%',
44
+ primary: '204.1 83.5% 33.3%',
45
+ primaryForeground: '0 0% 100%',
46
+ secondary: '195 4.5% 17.3%',
47
+ secondaryForeground: '0 0% 80%',
48
+ muted: '195 4.5% 17.3%',
49
+ mutedForeground: '240 0.5% 60.6%',
50
+ accent: '195 4.5% 17.3%',
51
+ accentForeground: '0 0% 80%',
52
+ border: '0 0% 27.1%',
53
+ input: '0 0% 23.5%',
54
+ ring: '204.1 100% 41.6%'
55
+ },
25
56
  },
26
57
  },
27
58
  };