File tree Expand file tree Collapse file tree 8 files changed +125
-102
lines changed Expand file tree Collapse file tree 8 files changed +125
-102
lines changed Original file line number Diff line number Diff line change 1
- const Color = {
1
+ const Color = Object . freeze ( {
2
2
black : "black" ,
3
3
red : "red" ,
4
4
green : "green" ,
@@ -21,6 +21,6 @@ const Color = {
21
21
// alternate spellings
22
22
grey : "grey" ,
23
23
lightgrey : "lightgrey" ,
24
- } ;
24
+ } ) ;
25
25
26
26
export default Color ;
Original file line number Diff line number Diff line change @@ -3,66 +3,63 @@ import Color from "./Color.mjs";
3
3
/**
4
4
* @type {import("./Theme").ThemeType }
5
5
*/
6
- const DefaultTheme = {
7
- popup : {
8
- regular : {
6
+ const DefaultTheme = Object . freeze ( {
7
+ popup : Object . freeze ( {
8
+ regular : Object . freeze ( {
9
9
bold : false ,
10
10
bg : Color . white ,
11
11
fg : Color . black ,
12
- focus : {
13
- // @ts -ignore
12
+ focus : Object . freeze ( {
14
13
bold : false ,
15
14
bg : Color . cyan ,
16
15
fg : Color . black ,
17
- } ,
18
- } ,
19
- error : {
16
+ } ) ,
17
+ } ) ,
18
+ error : Object . freeze ( {
20
19
bold : true ,
21
20
bg : Color . red ,
22
21
fg : Color . white ,
23
- focus : {
24
- // @ts -ignore
22
+ focus : Object . freeze ( {
25
23
bold : false ,
26
24
bg : Color . white ,
27
25
fg : Color . black ,
28
- } ,
29
- } ,
30
- menu : {
26
+ } ) ,
27
+ } ) ,
28
+ menu : Object . freeze ( {
31
29
bold : true ,
32
30
bg : Color . cyan ,
33
31
fg : Color . white ,
34
- focus : {
35
- // @ts -ignore
32
+ focus : Object . freeze ( {
36
33
bold : true ,
37
34
bg : Color . black ,
38
35
fg : Color . white ,
39
- } ,
40
- } ,
41
- } ,
36
+ } ) ,
37
+ } ) ,
38
+ } ) ,
42
39
43
- menu : {
44
- key : {
40
+ menu : Object . freeze ( {
41
+ key : Object . freeze ( {
45
42
bg : Color . black ,
46
43
fg : Color . white ,
47
- } ,
48
- item : {
44
+ } ) ,
45
+ item : Object . freeze ( {
49
46
bg : Color . cyan ,
50
47
fg : Color . black ,
51
- } ,
52
- } ,
48
+ } ) ,
49
+ } ) ,
53
50
54
- textBox : {
55
- regular : {
51
+ textBox : Object . freeze ( {
52
+ regular : Object . freeze ( {
56
53
bold : false ,
57
54
bg : Color . cyan ,
58
55
fg : Color . black ,
59
- } ,
60
- selected : {
56
+ } ) ,
57
+ selected : Object . freeze ( {
61
58
bold : false ,
62
59
bg : Color . blue ,
63
60
fg : Color . white ,
64
- } ,
65
- } ,
66
- } ;
61
+ } ) ,
62
+ } ) ,
63
+ } ) ;
67
64
68
65
export default DefaultTheme ;
Original file line number Diff line number Diff line change 1
- import { Widgets } from "blessed" ;
1
+ export interface ThemeStyle {
2
+ readonly bold ?: boolean ;
3
+ readonly bg : string ;
4
+ readonly fg : string ;
5
+ }
2
6
3
- type BlessedStyle = Widgets . Types . TStyle ;
7
+ export interface ThemeEffects extends ThemeStyle {
8
+ readonly focus ?: ThemeStyle ;
9
+ }
4
10
5
- interface ThemePopup {
6
- regular : BlessedStyle ;
7
- error : BlessedStyle ;
8
- menu : BlessedStyle ;
11
+ export interface ThemePopup {
12
+ readonly regular : ThemeEffects ;
13
+ readonly error : ThemeEffects ;
14
+ readonly menu : ThemeEffects ;
9
15
}
10
16
11
- interface ThemeMenu {
12
- key : BlessedStyle ;
13
- item : BlessedStyle ;
17
+ export interface ThemeMenu {
18
+ readonly key : ThemeStyle ;
19
+ readonly item : ThemeStyle ;
14
20
}
15
21
16
- interface ThemeTextBox {
17
- regular : BlessedStyle ;
18
- selected : BlessedStyle ;
22
+ export interface ThemeTextBox {
23
+ readonly regular : ThemeEffects ;
24
+ readonly selected : ThemeEffects ;
19
25
}
20
26
21
27
export interface ThemeType {
22
- popup : ThemePopup ;
23
- menu : ThemeMenu ;
24
- textBox : ThemeTextBox ;
28
+ readonly popup : ThemePopup ;
29
+ readonly menu : ThemeMenu ;
30
+ readonly textBox : ThemeTextBox ;
25
31
}
Original file line number Diff line number Diff line change @@ -3,68 +3,65 @@ import Color from "./Color.mjs";
3
3
/**
4
4
* @type {import("./Theme").ThemeType }
5
5
*/
6
- const XTerm256Theme = {
7
- popup : {
8
- regular : {
6
+ const XTerm256Theme = Object . freeze ( {
7
+ popup : Object . freeze ( {
8
+ regular : Object . freeze ( {
9
9
bold : true ,
10
10
bg : Color . white ,
11
11
fg : "#111" ,
12
- focus : {
13
- // @ts -ignore
12
+ focus : Object . freeze ( {
14
13
bold : true ,
15
14
bg : "#088" ,
16
15
fg : "#111" ,
17
- } ,
18
- } ,
19
- error : {
16
+ } ) ,
17
+ } ) ,
18
+ error : Object . freeze ( {
20
19
bold : true ,
21
20
bg : Color . red ,
22
21
fg : Color . white ,
23
- focus : {
24
- // @ts -ignore
22
+ focus : Object . freeze ( {
25
23
bold : true ,
26
24
bg : Color . white ,
27
25
fg : "#111" ,
28
- } ,
29
- } ,
30
- menu : {
26
+ } ) ,
27
+ } ) ,
28
+ menu : Object . freeze ( {
31
29
bold : true ,
32
30
bg : "#088" ,
33
31
fg : Color . white ,
34
- focus : {
35
- // @ts -ignore
32
+ focus : Object . freeze ( {
36
33
bold : true ,
37
34
bg : Color . black ,
38
35
fg : Color . white ,
39
- } ,
40
- } ,
41
- } ,
36
+ } ) ,
37
+ } ) ,
38
+ } ) ,
42
39
43
- menu : {
44
- key : {
40
+ menu : Object . freeze ( {
41
+ key : Object . freeze ( {
45
42
bold : true ,
46
43
bg : Color . black ,
47
44
fg : "#aaa" ,
48
- } ,
49
- item : {
45
+ } ) ,
46
+ item : Object . freeze ( {
50
47
bold : true ,
51
48
bg : "#088" ,
52
49
fg : "#111" ,
53
- } ,
54
- } ,
50
+ } ) ,
51
+ } ) ,
55
52
56
- textBox : {
57
- regular : {
53
+ textBox : Object . freeze ( {
54
+ regular : Object . freeze ( {
58
55
bold : true ,
59
56
bg : "#088" ,
60
57
fg : "#111" ,
61
- } ,
62
- selected : {
58
+ } ) ,
59
+ selected : Object . freeze ( {
63
60
bold : true ,
64
61
bg : Color . blue ,
65
62
fg : Color . white ,
66
- } ,
67
- } ,
68
- } ;
63
+ } ) ,
64
+ } ) ,
65
+ } ) ;
69
66
70
67
export default XTerm256Theme ;
Original file line number Diff line number Diff line change 1
1
/**
2
- * @typedef {"Hidden" | "Logs" | "Inputs" | "Colors" } DevToolValue
2
+ * @typedef {"Hidden" | "Logs" | "Inputs" | "Colors" } DevToolType
3
3
*/
4
4
5
5
/**
6
- * @type {DevToolValue }
6
+ * @type {DevToolType }
7
7
*/
8
8
const Hidden = "Hidden" ;
9
9
/**
10
- * @type {DevToolValue }
10
+ * @type {DevToolType }
11
11
*/
12
12
const Logs = "Logs" ;
13
13
/**
14
- * @type {DevToolValue }
14
+ * @type {DevToolType }
15
15
*/
16
16
const Inputs = "Inputs" ;
17
17
/**
18
- * @type {DevToolValue }
18
+ * @type {DevToolType }
19
19
*/
20
20
const Colors = "Colors" ;
21
21
22
- const DevTool = {
22
+ const DevTool = Object . freeze ( {
23
23
Hidden,
24
24
Logs,
25
25
Inputs,
26
26
Colors,
27
27
28
28
/**
29
- * @param {DevToolValue } from
30
- * @param {DevToolValue } to
29
+ * @param {DevToolType } from
30
+ * @param {DevToolType } to
31
31
* @returns {boolean }
32
32
*/
33
33
shouldResize : ( from , to ) => {
34
34
return from === Hidden || to === Hidden ;
35
35
} ,
36
36
37
37
/**
38
- * @param {DevToolValue } from
39
- * @returns {DevToolValue }
38
+ * @param {DevToolType } from
39
+ * @returns {DevToolType }
40
40
*/
41
41
getNext : ( from ) => {
42
42
switch ( from ) {
@@ -50,6 +50,6 @@ const DevTool = {
50
50
return Hidden ;
51
51
}
52
52
} ,
53
- } ;
53
+ } ) ;
54
54
55
55
export default DevTool ;
Original file line number Diff line number Diff line change 1
- import { DevToolValue } from "./DevTool.mjs" ;
1
+ import { DevToolType } from "./DevTool.mjs" ;
2
2
3
3
export interface DevToolPanelProps {
4
- devTool : DevToolValue ;
4
+ devTool : DevToolType ;
5
5
logContent : string ;
6
- onActivate ( devTool : DevToolValue ) : void ;
6
+ onActivate ( devTool : DevToolType ) : void ;
7
7
}
Original file line number Diff line number Diff line change 1
1
/**
2
2
* @typedef {import("./DevToolPanel").DevToolPanelProps } DevToolPanelProps
3
- * @typedef {import("./DevTool.mjs").DevToolValue } DevToolValue
3
+ * @typedef {import("./DevTool.mjs").DevToolType } DevToolType
4
4
*/
5
5
import React from "react" ;
6
6
import LogPanel from "./LogPanel.mjs" ;
@@ -13,7 +13,7 @@ import * as UI from "../UI.mjs";
13
13
const h = React . createElement ;
14
14
15
15
/**
16
- * @type {Array<{tool: DevToolValue , name: string}> }
16
+ * @type {Array<{tool: DevToolType , name: string}> }
17
17
*/
18
18
const tools = [
19
19
{
You can’t perform that action at this time.
0 commit comments