pilotswarm-web 0.1.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/README.md +144 -0
- package/auth/authz/engine.js +139 -0
- package/auth/config.js +110 -0
- package/auth/index.js +153 -0
- package/auth/normalize/entra.js +22 -0
- package/auth/providers/entra.js +76 -0
- package/auth/providers/none.js +24 -0
- package/auth.js +10 -0
- package/bin/serve.js +53 -0
- package/config.js +20 -0
- package/dist/app.js +469 -0
- package/dist/assets/index-BSVg-lGb.css +1 -0
- package/dist/assets/index-BXD5YP7A.js +24 -0
- package/dist/assets/msal-CytV9RFv.js +7 -0
- package/dist/assets/pilotswarm-WX3NED6m.js +40 -0
- package/dist/assets/react-jg0oazEi.js +1 -0
- package/dist/index.html +16 -0
- package/node_modules/pilotswarm-ui-core/README.md +6 -0
- package/node_modules/pilotswarm-ui-core/package.json +32 -0
- package/node_modules/pilotswarm-ui-core/src/commands.js +72 -0
- package/node_modules/pilotswarm-ui-core/src/context-usage.js +212 -0
- package/node_modules/pilotswarm-ui-core/src/controller.js +3613 -0
- package/node_modules/pilotswarm-ui-core/src/formatting.js +872 -0
- package/node_modules/pilotswarm-ui-core/src/history.js +571 -0
- package/node_modules/pilotswarm-ui-core/src/index.js +13 -0
- package/node_modules/pilotswarm-ui-core/src/layout.js +196 -0
- package/node_modules/pilotswarm-ui-core/src/reducer.js +1027 -0
- package/node_modules/pilotswarm-ui-core/src/selectors.js +2786 -0
- package/node_modules/pilotswarm-ui-core/src/session-tree.js +109 -0
- package/node_modules/pilotswarm-ui-core/src/state.js +80 -0
- package/node_modules/pilotswarm-ui-core/src/store.js +23 -0
- package/node_modules/pilotswarm-ui-core/src/system-titles.js +24 -0
- package/node_modules/pilotswarm-ui-core/src/themes/catppuccin-mocha.js +56 -0
- package/node_modules/pilotswarm-ui-core/src/themes/cobalt2.js +56 -0
- package/node_modules/pilotswarm-ui-core/src/themes/dark-high-contrast.js +56 -0
- package/node_modules/pilotswarm-ui-core/src/themes/dracula.js +56 -0
- package/node_modules/pilotswarm-ui-core/src/themes/github-dark.js +56 -0
- package/node_modules/pilotswarm-ui-core/src/themes/gruvbox-dark.js +56 -0
- package/node_modules/pilotswarm-ui-core/src/themes/hacker-x-matrix.js +56 -0
- package/node_modules/pilotswarm-ui-core/src/themes/hacker-x-orion-prime.js +56 -0
- package/node_modules/pilotswarm-ui-core/src/themes/helpers.js +77 -0
- package/node_modules/pilotswarm-ui-core/src/themes/index.js +42 -0
- package/node_modules/pilotswarm-ui-core/src/themes/noctis-viola.js +56 -0
- package/node_modules/pilotswarm-ui-core/src/themes/noctis.js +56 -0
- package/node_modules/pilotswarm-ui-core/src/themes/nord.js +56 -0
- package/node_modules/pilotswarm-ui-core/src/themes/solarized-dark.js +56 -0
- package/node_modules/pilotswarm-ui-core/src/themes/tokyo-night.js +56 -0
- package/node_modules/pilotswarm-ui-react/README.md +5 -0
- package/node_modules/pilotswarm-ui-react/package.json +36 -0
- package/node_modules/pilotswarm-ui-react/src/components.js +1316 -0
- package/node_modules/pilotswarm-ui-react/src/index.js +4 -0
- package/node_modules/pilotswarm-ui-react/src/platform.js +15 -0
- package/node_modules/pilotswarm-ui-react/src/use-controller-state.js +38 -0
- package/node_modules/pilotswarm-ui-react/src/web-app.js +2661 -0
- package/package.json +64 -0
- package/runtime.js +146 -0
- package/server.js +311 -0
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { createTheme } from "./helpers.js";
|
|
2
|
+
|
|
3
|
+
const hackerXOrionPrimeTheme = createTheme({
|
|
4
|
+
id: "hacker-x-orion-prime",
|
|
5
|
+
label: "Hacker X - Orion Prime",
|
|
6
|
+
description: "Deep-space navy palette with electric cyan, violet, and amber accents.",
|
|
7
|
+
page: {
|
|
8
|
+
background: "#0a0f1e",
|
|
9
|
+
foreground: "#e8f2ff",
|
|
10
|
+
overlayBackground: "#0a0f1e",
|
|
11
|
+
overlayForeground: "#e8f2ff",
|
|
12
|
+
hintColor: "#7e90b5",
|
|
13
|
+
modalBackdrop: "rgba(6, 10, 24, 0.76)",
|
|
14
|
+
modalBackground: "#121a30",
|
|
15
|
+
modalBorder: "#2d4a73",
|
|
16
|
+
modalForeground: "#edf5ff",
|
|
17
|
+
modalMuted: "#93a7cc",
|
|
18
|
+
modalSelectedBackground: "#19365f",
|
|
19
|
+
modalSelectedBorder: "#55c2ff",
|
|
20
|
+
modalSelectedForeground: "#f3fbff",
|
|
21
|
+
},
|
|
22
|
+
terminal: {
|
|
23
|
+
background: "#0a0f1e",
|
|
24
|
+
foreground: "#e8f2ff",
|
|
25
|
+
cursor: "#55c2ff",
|
|
26
|
+
cursorAccent: "#0a0f1e",
|
|
27
|
+
selectionBackground: "rgba(85, 194, 255, 0.22)",
|
|
28
|
+
black: "#10182b",
|
|
29
|
+
red: "#ff6b88",
|
|
30
|
+
green: "#67f5c2",
|
|
31
|
+
yellow: "#ffd36b",
|
|
32
|
+
blue: "#55c2ff",
|
|
33
|
+
magenta: "#c79bff",
|
|
34
|
+
cyan: "#7ceeff",
|
|
35
|
+
white: "#c3d4ef",
|
|
36
|
+
brightBlack: "#7e90b5",
|
|
37
|
+
brightRed: "#ff8aa2",
|
|
38
|
+
brightGreen: "#8cffd8",
|
|
39
|
+
brightYellow: "#ffe28f",
|
|
40
|
+
brightBlue: "#8fdcff",
|
|
41
|
+
brightMagenta: "#d8b6ff",
|
|
42
|
+
brightCyan: "#a2f5ff",
|
|
43
|
+
brightWhite: "#ffffff",
|
|
44
|
+
},
|
|
45
|
+
tui: {
|
|
46
|
+
surface: "#0c1325",
|
|
47
|
+
activeHighlightBackground: "#173052",
|
|
48
|
+
activeHighlightForeground: "#f3fbff",
|
|
49
|
+
selectionBackground: "#55c2ff",
|
|
50
|
+
selectionForeground: "#0a0f1e",
|
|
51
|
+
promptCursorBackground: "#55c2ff",
|
|
52
|
+
promptCursorForeground: "#0a0f1e",
|
|
53
|
+
},
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
export default hackerXOrionPrimeTheme;
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
function freezeTheme(theme) {
|
|
2
|
+
return Object.freeze({
|
|
3
|
+
...theme,
|
|
4
|
+
page: Object.freeze({ ...(theme.page || {}) }),
|
|
5
|
+
terminal: Object.freeze({ ...(theme.terminal || {}) }),
|
|
6
|
+
tui: Object.freeze({ ...(theme.tui || {}) }),
|
|
7
|
+
});
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
function parseHexChannel(value) {
|
|
11
|
+
return Number.parseInt(value, 16) / 255;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
function normalizeHexColor(value) {
|
|
15
|
+
const color = String(value || "").trim();
|
|
16
|
+
if (/^#[0-9a-f]{3}$/iu.test(color)) {
|
|
17
|
+
return `#${color.slice(1).split("").map((channel) => channel + channel).join("")}`;
|
|
18
|
+
}
|
|
19
|
+
return /^#[0-9a-f]{6}$/iu.test(color) ? color : null;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
function toRelativeLuminanceChannel(value) {
|
|
23
|
+
return value <= 0.03928
|
|
24
|
+
? value / 12.92
|
|
25
|
+
: ((value + 0.055) / 1.055) ** 2.4;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
function getRelativeLuminance(color) {
|
|
29
|
+
const normalized = normalizeHexColor(color);
|
|
30
|
+
if (!normalized) return 0;
|
|
31
|
+
|
|
32
|
+
const red = toRelativeLuminanceChannel(parseHexChannel(normalized.slice(1, 3)));
|
|
33
|
+
const green = toRelativeLuminanceChannel(parseHexChannel(normalized.slice(3, 5)));
|
|
34
|
+
const blue = toRelativeLuminanceChannel(parseHexChannel(normalized.slice(5, 7)));
|
|
35
|
+
|
|
36
|
+
return (0.2126 * red) + (0.7152 * green) + (0.0722 * blue);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export function isThemeLight(theme) {
|
|
40
|
+
const background = theme?.page?.background || theme?.tui?.background || theme?.terminal?.background;
|
|
41
|
+
return getRelativeLuminance(background) >= 0.5;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export function createTheme({ id, label, description, page, terminal, tui = {} }) {
|
|
45
|
+
const baseTui = {
|
|
46
|
+
background: page?.background || terminal?.background || "#000000",
|
|
47
|
+
surface: terminal?.background || page?.background || "#000000",
|
|
48
|
+
foreground: terminal?.foreground || page?.foreground || "#ffffff",
|
|
49
|
+
white: terminal?.foreground || page?.foreground || "#ffffff",
|
|
50
|
+
gray: page?.hintColor || terminal?.brightBlack || terminal?.white || "#999999",
|
|
51
|
+
black: terminal?.black || "#000000",
|
|
52
|
+
red: terminal?.red || "#ff5555",
|
|
53
|
+
green: terminal?.green || "#55ff55",
|
|
54
|
+
yellow: terminal?.yellow || "#ffff55",
|
|
55
|
+
blue: terminal?.blue || "#5555ff",
|
|
56
|
+
magenta: terminal?.magenta || "#ff55ff",
|
|
57
|
+
cyan: terminal?.cyan || "#55ffff",
|
|
58
|
+
activeHighlightBackground: terminal?.blue || "#5555ff",
|
|
59
|
+
activeHighlightForeground: terminal?.background || "#000000",
|
|
60
|
+
selectionBackground: terminal?.cursor || terminal?.blue || "#5555ff",
|
|
61
|
+
selectionForeground: terminal?.cursorAccent || terminal?.background || "#000000",
|
|
62
|
+
promptCursorBackground: terminal?.cursor || terminal?.green || "#55ff55",
|
|
63
|
+
promptCursorForeground: terminal?.cursorAccent || terminal?.background || "#000000",
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
return freezeTheme({
|
|
67
|
+
id,
|
|
68
|
+
label,
|
|
69
|
+
description,
|
|
70
|
+
page,
|
|
71
|
+
terminal,
|
|
72
|
+
tui: {
|
|
73
|
+
...baseTui,
|
|
74
|
+
...tui,
|
|
75
|
+
},
|
|
76
|
+
});
|
|
77
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import githubDarkTheme from "./github-dark.js";
|
|
2
|
+
import cobalt2Theme from "./cobalt2.js";
|
|
3
|
+
import draculaTheme from "./dracula.js";
|
|
4
|
+
import catppuccinMochaTheme from "./catppuccin-mocha.js";
|
|
5
|
+
import hackerXMatrixTheme from "./hacker-x-matrix.js";
|
|
6
|
+
import hackerXOrionPrimeTheme from "./hacker-x-orion-prime.js";
|
|
7
|
+
import nordTheme from "./nord.js";
|
|
8
|
+
import tokyoNightTheme from "./tokyo-night.js";
|
|
9
|
+
import gruvboxDarkTheme from "./gruvbox-dark.js";
|
|
10
|
+
import solarizedDarkTheme from "./solarized-dark.js";
|
|
11
|
+
import noctisTheme from "./noctis.js";
|
|
12
|
+
import noctisViolaTheme from "./noctis-viola.js";
|
|
13
|
+
import darkHighContrastTheme from "./dark-high-contrast.js";
|
|
14
|
+
|
|
15
|
+
const THEMES = Object.freeze([
|
|
16
|
+
draculaTheme,
|
|
17
|
+
githubDarkTheme,
|
|
18
|
+
cobalt2Theme,
|
|
19
|
+
hackerXOrionPrimeTheme,
|
|
20
|
+
hackerXMatrixTheme,
|
|
21
|
+
catppuccinMochaTheme,
|
|
22
|
+
nordTheme,
|
|
23
|
+
tokyoNightTheme,
|
|
24
|
+
gruvboxDarkTheme,
|
|
25
|
+
solarizedDarkTheme,
|
|
26
|
+
noctisTheme,
|
|
27
|
+
noctisViolaTheme,
|
|
28
|
+
darkHighContrastTheme,
|
|
29
|
+
]);
|
|
30
|
+
|
|
31
|
+
const THEME_MAP = new Map(THEMES.map((theme) => [theme.id, theme]));
|
|
32
|
+
|
|
33
|
+
export const DEFAULT_THEME_ID = draculaTheme.id;
|
|
34
|
+
|
|
35
|
+
export function listThemes() {
|
|
36
|
+
return THEMES;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export function getTheme(themeId) {
|
|
40
|
+
if (!themeId) return null;
|
|
41
|
+
return THEME_MAP.get(themeId) ?? null;
|
|
42
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { createTheme } from "./helpers.js";
|
|
2
|
+
|
|
3
|
+
const noctisViolaTheme = createTheme({
|
|
4
|
+
id: "noctis-viola",
|
|
5
|
+
label: "Noctis Viola",
|
|
6
|
+
description: "Saturated dark violet palette with purple and warm accents.",
|
|
7
|
+
page: {
|
|
8
|
+
background: "#30243d",
|
|
9
|
+
foreground: "#ccbfd9",
|
|
10
|
+
overlayBackground: "#30243d",
|
|
11
|
+
overlayForeground: "#ccbfd9",
|
|
12
|
+
hintColor: "#bf8ef1",
|
|
13
|
+
modalBackdrop: "rgba(28, 18, 38, 0.72)",
|
|
14
|
+
modalBackground: "#3d2e4d",
|
|
15
|
+
modalBorder: "#8767a8",
|
|
16
|
+
modalForeground: "#ccbfd9",
|
|
17
|
+
modalMuted: "#ad9cc0",
|
|
18
|
+
modalSelectedBackground: "#593a78",
|
|
19
|
+
modalSelectedBorder: "#bf8ef1",
|
|
20
|
+
modalSelectedForeground: "#edebff",
|
|
21
|
+
},
|
|
22
|
+
terminal: {
|
|
23
|
+
background: "#291d35",
|
|
24
|
+
foreground: "#ccbfd9",
|
|
25
|
+
cursor: "#d9b3ff",
|
|
26
|
+
cursorAccent: "#291d35",
|
|
27
|
+
selectionBackground: "rgba(135, 103, 168, 0.33)",
|
|
28
|
+
black: "#362f3d",
|
|
29
|
+
red: "#e66533",
|
|
30
|
+
green: "#49e9a6",
|
|
31
|
+
yellow: "#e4b781",
|
|
32
|
+
blue: "#49ace9",
|
|
33
|
+
magenta: "#df769b",
|
|
34
|
+
cyan: "#49d6e9",
|
|
35
|
+
white: "#bfafcf",
|
|
36
|
+
brightBlack: "#8f869b",
|
|
37
|
+
brightRed: "#e97749",
|
|
38
|
+
brightGreen: "#60ebb1",
|
|
39
|
+
brightYellow: "#e69533",
|
|
40
|
+
brightBlue: "#60b6eb",
|
|
41
|
+
brightMagenta: "#e798b3",
|
|
42
|
+
brightCyan: "#60dbeb",
|
|
43
|
+
brightWhite: "#ccbfd9",
|
|
44
|
+
},
|
|
45
|
+
tui: {
|
|
46
|
+
surface: "#291d35",
|
|
47
|
+
activeHighlightBackground: "#402d53",
|
|
48
|
+
activeHighlightForeground: "#edebff",
|
|
49
|
+
selectionBackground: "#8767a8",
|
|
50
|
+
selectionForeground: "#30243d",
|
|
51
|
+
promptCursorBackground: "#d9b3ff",
|
|
52
|
+
promptCursorForeground: "#291d35",
|
|
53
|
+
},
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
export default noctisViolaTheme;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { createTheme } from "./helpers.js";
|
|
2
|
+
|
|
3
|
+
const noctisTheme = createTheme({
|
|
4
|
+
id: "noctis",
|
|
5
|
+
label: "Noctis",
|
|
6
|
+
description: "Dark cyan-tinted palette with warm and cold medium contrast accents.",
|
|
7
|
+
page: {
|
|
8
|
+
background: "#052529",
|
|
9
|
+
foreground: "#b2cacd",
|
|
10
|
+
overlayBackground: "#052529",
|
|
11
|
+
overlayForeground: "#b2cacd",
|
|
12
|
+
hintColor: "#40d4e7",
|
|
13
|
+
modalBackdrop: "rgba(3, 25, 27, 0.72)",
|
|
14
|
+
modalBackground: "#073940",
|
|
15
|
+
modalBorder: "#0e6671",
|
|
16
|
+
modalForeground: "#b2cacd",
|
|
17
|
+
modalMuted: "#87a7ab",
|
|
18
|
+
modalSelectedBackground: "#0b515b",
|
|
19
|
+
modalSelectedBorder: "#40d4e7",
|
|
20
|
+
modalSelectedForeground: "#ebfdff",
|
|
21
|
+
},
|
|
22
|
+
terminal: {
|
|
23
|
+
background: "#03191b",
|
|
24
|
+
foreground: "#b2cacd",
|
|
25
|
+
cursor: "#85efff",
|
|
26
|
+
cursorAccent: "#03191b",
|
|
27
|
+
selectionBackground: "rgba(22, 159, 177, 0.27)",
|
|
28
|
+
black: "#324a4d",
|
|
29
|
+
red: "#e66533",
|
|
30
|
+
green: "#49e9a6",
|
|
31
|
+
yellow: "#e4b781",
|
|
32
|
+
blue: "#49ace9",
|
|
33
|
+
magenta: "#df769b",
|
|
34
|
+
cyan: "#49d6e9",
|
|
35
|
+
white: "#b2cacd",
|
|
36
|
+
brightBlack: "#5e878c",
|
|
37
|
+
brightRed: "#e97749",
|
|
38
|
+
brightGreen: "#60ebb1",
|
|
39
|
+
brightYellow: "#e69533",
|
|
40
|
+
brightBlue: "#60b6eb",
|
|
41
|
+
brightMagenta: "#e798b3",
|
|
42
|
+
brightCyan: "#60dbeb",
|
|
43
|
+
brightWhite: "#c1d4d7",
|
|
44
|
+
},
|
|
45
|
+
tui: {
|
|
46
|
+
surface: "#03191b",
|
|
47
|
+
activeHighlightBackground: "#083d44",
|
|
48
|
+
activeHighlightForeground: "#ebfdff",
|
|
49
|
+
selectionBackground: "#169fb1",
|
|
50
|
+
selectionForeground: "#052529",
|
|
51
|
+
promptCursorBackground: "#85efff",
|
|
52
|
+
promptCursorForeground: "#03191b",
|
|
53
|
+
},
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
export default noctisTheme;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { createTheme } from "./helpers.js";
|
|
2
|
+
|
|
3
|
+
const nordTheme = createTheme({
|
|
4
|
+
id: "nord",
|
|
5
|
+
label: "Nord",
|
|
6
|
+
description: "Arctic blue-gray palette with frosty accents and clean contrast.",
|
|
7
|
+
page: {
|
|
8
|
+
background: "#2e3440",
|
|
9
|
+
foreground: "#d8dee9",
|
|
10
|
+
overlayBackground: "#2e3440",
|
|
11
|
+
overlayForeground: "#d8dee9",
|
|
12
|
+
hintColor: "#8f9ab5",
|
|
13
|
+
modalBackdrop: "rgba(46, 52, 64, 0.74)",
|
|
14
|
+
modalBackground: "#3b4252",
|
|
15
|
+
modalBorder: "#4c566a",
|
|
16
|
+
modalForeground: "#d8dee9",
|
|
17
|
+
modalMuted: "#8f9ab5",
|
|
18
|
+
modalSelectedBackground: "#434c5e",
|
|
19
|
+
modalSelectedBorder: "#88c0d0",
|
|
20
|
+
modalSelectedForeground: "#eceff4",
|
|
21
|
+
},
|
|
22
|
+
terminal: {
|
|
23
|
+
background: "#2e3440",
|
|
24
|
+
foreground: "#d8dee9",
|
|
25
|
+
cursor: "#d8dee9",
|
|
26
|
+
cursorAccent: "#2e3440",
|
|
27
|
+
selectionBackground: "rgba(136, 192, 208, 0.22)",
|
|
28
|
+
black: "#3b4252",
|
|
29
|
+
red: "#bf616a",
|
|
30
|
+
green: "#a3be8c",
|
|
31
|
+
yellow: "#ebcb8b",
|
|
32
|
+
blue: "#81a1c1",
|
|
33
|
+
magenta: "#b48ead",
|
|
34
|
+
cyan: "#88c0d0",
|
|
35
|
+
white: "#e5e9f0",
|
|
36
|
+
brightBlack: "#4c566a",
|
|
37
|
+
brightRed: "#bf616a",
|
|
38
|
+
brightGreen: "#a3be8c",
|
|
39
|
+
brightYellow: "#ebcb8b",
|
|
40
|
+
brightBlue: "#81a1c1",
|
|
41
|
+
brightMagenta: "#b48ead",
|
|
42
|
+
brightCyan: "#8fbcbb",
|
|
43
|
+
brightWhite: "#eceff4",
|
|
44
|
+
},
|
|
45
|
+
tui: {
|
|
46
|
+
surface: "#2e3440",
|
|
47
|
+
activeHighlightBackground: "#434c5e",
|
|
48
|
+
activeHighlightForeground: "#eceff4",
|
|
49
|
+
selectionBackground: "#88c0d0",
|
|
50
|
+
selectionForeground: "#2e3440",
|
|
51
|
+
promptCursorBackground: "#d8dee9",
|
|
52
|
+
promptCursorForeground: "#2e3440",
|
|
53
|
+
},
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
export default nordTheme;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { createTheme } from "./helpers.js";
|
|
2
|
+
|
|
3
|
+
const solarizedDarkTheme = createTheme({
|
|
4
|
+
id: "solarized-dark",
|
|
5
|
+
label: "Solarized Dark",
|
|
6
|
+
description: "Ethan Schoonover's precision-engineered dark palette with warm accents.",
|
|
7
|
+
page: {
|
|
8
|
+
background: "#002b36",
|
|
9
|
+
foreground: "#839496",
|
|
10
|
+
overlayBackground: "#002b36",
|
|
11
|
+
overlayForeground: "#839496",
|
|
12
|
+
hintColor: "#839496",
|
|
13
|
+
modalBackdrop: "rgba(0, 43, 54, 0.74)",
|
|
14
|
+
modalBackground: "#073642",
|
|
15
|
+
modalBorder: "#586e75",
|
|
16
|
+
modalForeground: "#839496",
|
|
17
|
+
modalMuted: "#839496",
|
|
18
|
+
modalSelectedBackground: "#073642",
|
|
19
|
+
modalSelectedBorder: "#268bd2",
|
|
20
|
+
modalSelectedForeground: "#93a1a1",
|
|
21
|
+
},
|
|
22
|
+
terminal: {
|
|
23
|
+
background: "#002b36",
|
|
24
|
+
foreground: "#839496",
|
|
25
|
+
cursor: "#839496",
|
|
26
|
+
cursorAccent: "#002b36",
|
|
27
|
+
selectionBackground: "rgba(38, 139, 210, 0.22)",
|
|
28
|
+
black: "#073642",
|
|
29
|
+
red: "#dc322f",
|
|
30
|
+
green: "#859900",
|
|
31
|
+
yellow: "#b58900",
|
|
32
|
+
blue: "#268bd2",
|
|
33
|
+
magenta: "#d33682",
|
|
34
|
+
cyan: "#2aa198",
|
|
35
|
+
white: "#eee8d5",
|
|
36
|
+
brightBlack: "#586e75",
|
|
37
|
+
brightRed: "#cb4b16",
|
|
38
|
+
brightGreen: "#586e75",
|
|
39
|
+
brightYellow: "#657b83",
|
|
40
|
+
brightBlue: "#839496",
|
|
41
|
+
brightMagenta: "#6c71c4",
|
|
42
|
+
brightCyan: "#93a1a1",
|
|
43
|
+
brightWhite: "#fdf6e3",
|
|
44
|
+
},
|
|
45
|
+
tui: {
|
|
46
|
+
surface: "#002b36",
|
|
47
|
+
activeHighlightBackground: "#073642",
|
|
48
|
+
activeHighlightForeground: "#93a1a1",
|
|
49
|
+
selectionBackground: "#268bd2",
|
|
50
|
+
selectionForeground: "#fdf6e3",
|
|
51
|
+
promptCursorBackground: "#839496",
|
|
52
|
+
promptCursorForeground: "#002b36",
|
|
53
|
+
},
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
export default solarizedDarkTheme;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { createTheme } from "./helpers.js";
|
|
2
|
+
|
|
3
|
+
const tokyoNightTheme = createTheme({
|
|
4
|
+
id: "tokyo-night",
|
|
5
|
+
label: "Tokyo Night",
|
|
6
|
+
description: "Deep blue-gray canvas with vivid neon accents inspired by Tokyo city lights.",
|
|
7
|
+
page: {
|
|
8
|
+
background: "#1a1b26",
|
|
9
|
+
foreground: "#a9b1d6",
|
|
10
|
+
overlayBackground: "#1a1b26",
|
|
11
|
+
overlayForeground: "#a9b1d6",
|
|
12
|
+
hintColor: "#737aa2",
|
|
13
|
+
modalBackdrop: "rgba(26, 27, 38, 0.74)",
|
|
14
|
+
modalBackground: "#24283b",
|
|
15
|
+
modalBorder: "#414868",
|
|
16
|
+
modalForeground: "#a9b1d6",
|
|
17
|
+
modalMuted: "#737aa2",
|
|
18
|
+
modalSelectedBackground: "#33467c",
|
|
19
|
+
modalSelectedBorder: "#7aa2f7",
|
|
20
|
+
modalSelectedForeground: "#c0caf5",
|
|
21
|
+
},
|
|
22
|
+
terminal: {
|
|
23
|
+
background: "#1a1b26",
|
|
24
|
+
foreground: "#a9b1d6",
|
|
25
|
+
cursor: "#c0caf5",
|
|
26
|
+
cursorAccent: "#1a1b26",
|
|
27
|
+
selectionBackground: "rgba(122, 162, 247, 0.22)",
|
|
28
|
+
black: "#414868",
|
|
29
|
+
red: "#f7768e",
|
|
30
|
+
green: "#9ece6a",
|
|
31
|
+
yellow: "#e0af68",
|
|
32
|
+
blue: "#7aa2f7",
|
|
33
|
+
magenta: "#bb9af7",
|
|
34
|
+
cyan: "#7dcfff",
|
|
35
|
+
white: "#a9b1d6",
|
|
36
|
+
brightBlack: "#565f89",
|
|
37
|
+
brightRed: "#f7768e",
|
|
38
|
+
brightGreen: "#9ece6a",
|
|
39
|
+
brightYellow: "#e0af68",
|
|
40
|
+
brightBlue: "#7aa2f7",
|
|
41
|
+
brightMagenta: "#bb9af7",
|
|
42
|
+
brightCyan: "#7dcfff",
|
|
43
|
+
brightWhite: "#c0caf5",
|
|
44
|
+
},
|
|
45
|
+
tui: {
|
|
46
|
+
surface: "#1a1b26",
|
|
47
|
+
activeHighlightBackground: "#33467c",
|
|
48
|
+
activeHighlightForeground: "#c0caf5",
|
|
49
|
+
selectionBackground: "#7aa2f7",
|
|
50
|
+
selectionForeground: "#1a1b26",
|
|
51
|
+
promptCursorBackground: "#c0caf5",
|
|
52
|
+
promptCursorForeground: "#1a1b26",
|
|
53
|
+
},
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
export default tokyoNightTheme;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "pilotswarm-ui-react",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"private": true,
|
|
5
|
+
"type": "module",
|
|
6
|
+
"description": "Shared React screens and panes for PilotSwarm hosts.",
|
|
7
|
+
"main": "./src/index.js",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": "./src/index.js"
|
|
10
|
+
},
|
|
11
|
+
"files": [
|
|
12
|
+
"src/**/*",
|
|
13
|
+
"README.md"
|
|
14
|
+
],
|
|
15
|
+
"dependencies": {
|
|
16
|
+
"pilotswarm-ui-core": "0.1.0",
|
|
17
|
+
"react": "^19.2.4"
|
|
18
|
+
},
|
|
19
|
+
"scripts": {
|
|
20
|
+
"build": "echo 'pilotswarm-ui-react: no build step (plain JS)'",
|
|
21
|
+
"clean": "true"
|
|
22
|
+
},
|
|
23
|
+
"author": "Affan Dar",
|
|
24
|
+
"license": "MIT",
|
|
25
|
+
"repository": {
|
|
26
|
+
"type": "git",
|
|
27
|
+
"url": "https://github.com/affandar/PilotSwarm"
|
|
28
|
+
},
|
|
29
|
+
"homepage": "https://github.com/affandar/PilotSwarm",
|
|
30
|
+
"bugs": {
|
|
31
|
+
"url": "https://github.com/affandar/PilotSwarm/issues"
|
|
32
|
+
},
|
|
33
|
+
"engines": {
|
|
34
|
+
"node": ">=24.0.0"
|
|
35
|
+
}
|
|
36
|
+
}
|