@whoz-oss/coday-web 0.13.2
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/client/app.js +1560 -0
- package/client/app.js.map +7 -0
- package/client/chat-history/chat-history.css +169 -0
- package/client/chat-textarea/chat-textarea.css +60 -0
- package/client/chat-textarea/voice-controls.css +75 -0
- package/client/choice-select/choice-select.css +41 -0
- package/client/index.html +165 -0
- package/client/static/CODAY-Logo.png +0 -0
- package/client/styles/button.css +16 -0
- package/client/styles/colors.css +67 -0
- package/client/styles/global.css +26 -0
- package/client/styles/header.css +145 -0
- package/client/styles/main.css +12 -0
- package/client/styles/utilities.css +55 -0
- package/package.json +7 -0
- package/server/package.json +7 -0
- package/server/server.js +135424 -0
- package/server/server.js.map +7 -0
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8"/>
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
|
|
6
|
+
<base href="/"/>
|
|
7
|
+
<title>Coday</title>
|
|
8
|
+
<link rel="icon" type="image/png" href="static/CODAY-Logo.png"/>
|
|
9
|
+
<link rel="stylesheet" href="styles/colors.css"/>
|
|
10
|
+
<link rel="stylesheet" href="styles/global.css"/>
|
|
11
|
+
<link rel="stylesheet" href="styles/main.css"/>
|
|
12
|
+
<link rel="stylesheet" href="styles/button.css"/>
|
|
13
|
+
<link rel="stylesheet" href="styles/header.css"/>
|
|
14
|
+
<link rel="stylesheet" href="styles/utilities.css"/>
|
|
15
|
+
<link rel="stylesheet" href="chat-history/chat-history.css"/>
|
|
16
|
+
<link rel="stylesheet" href="chat-textarea/chat-textarea.css"/>
|
|
17
|
+
<link rel="stylesheet" href="choice-select/choice-select.css"/>
|
|
18
|
+
</head>
|
|
19
|
+
<body>
|
|
20
|
+
<!-- Transparent header positioned over the content -->
|
|
21
|
+
<div class="overlay-header">
|
|
22
|
+
<div class="header-content">
|
|
23
|
+
<div class="logo-container">
|
|
24
|
+
<img src="static/CODAY-Logo.png" alt="Coday Logo" class="header-logo"/>
|
|
25
|
+
</div>
|
|
26
|
+
<div style="display: flex; align-items: center; gap: 8px;">
|
|
27
|
+
<div id="voice-volume-control" style="display: none; align-items: center; gap: 4px;">
|
|
28
|
+
<span style="font-size: 12px;">🔊</span>
|
|
29
|
+
<input type="range" id="voice-volume-slider" min="0" max="100" value="80" style="width: 60px;">
|
|
30
|
+
<span id="volume-display" style="font-size: 12px; min-width: 30px;">80%</span>
|
|
31
|
+
</div>
|
|
32
|
+
<button id="options-button">⚙️</button>
|
|
33
|
+
</div>
|
|
34
|
+
</div>
|
|
35
|
+
<div id="options-panel">
|
|
36
|
+
<div style="margin-bottom: 10px;">
|
|
37
|
+
<label>
|
|
38
|
+
<input type="checkbox" id="enter-to-send-toggle">
|
|
39
|
+
Use Enter to send (Shift+Enter for new line)
|
|
40
|
+
</label>
|
|
41
|
+
</div>
|
|
42
|
+
<div>
|
|
43
|
+
<p style="margin: 5px 0;">Theme:</p>
|
|
44
|
+
<div>
|
|
45
|
+
<label>
|
|
46
|
+
<input type="radio" name="theme" value="light" id="theme-light">
|
|
47
|
+
Light
|
|
48
|
+
</label>
|
|
49
|
+
</div>
|
|
50
|
+
<div>
|
|
51
|
+
<label>
|
|
52
|
+
<input type="radio" name="theme" value="dark" id="theme-dark">
|
|
53
|
+
Dark
|
|
54
|
+
</label>
|
|
55
|
+
</div>
|
|
56
|
+
<div>
|
|
57
|
+
<label>
|
|
58
|
+
<input type="radio" name="theme" value="system" id="theme-system">
|
|
59
|
+
System
|
|
60
|
+
</label>
|
|
61
|
+
</div>
|
|
62
|
+
</div>
|
|
63
|
+
<div style="margin-top: 10px;">
|
|
64
|
+
<label for="voice-language-select" style="margin: 5px 0; display: block;">Voice Recognition
|
|
65
|
+
Language:</label>
|
|
66
|
+
<select id="voice-language-select"
|
|
67
|
+
style="width: 100%; padding: 4px; border: 1px solid #ddd; border-radius: 4px; background: white;">
|
|
68
|
+
<option value="fr-FR">🇫🇷 Français</option>
|
|
69
|
+
<option value="en-US">🇺🇸 English (US)</option>
|
|
70
|
+
<option value="en-GB">🇬🇧 English (UK)</option>
|
|
71
|
+
<option value="es-ES">🇪🇸 Español</option>
|
|
72
|
+
<option value="de-DE">🇩🇪 Deutsch</option>
|
|
73
|
+
<option value="it-IT">🇮🇹 Italiano</option>
|
|
74
|
+
<option value="pt-BR">🇧🇷 Português</option>
|
|
75
|
+
<option value="ja-JP">🇯🇵 日本語</option>
|
|
76
|
+
<option value="ko-KR">🇰🇷 한국어</option>
|
|
77
|
+
<option value="zh-CN">🇨🇳 中文 (简体)</option>
|
|
78
|
+
<option value="ru-RU">🇷🇺 Русский</option>
|
|
79
|
+
<option value="ar-SA">🇸🇦 العربية</option>
|
|
80
|
+
</select>
|
|
81
|
+
<div style="margin-top: 10px;">
|
|
82
|
+
<label>
|
|
83
|
+
<input type="checkbox" id="voice-announce-toggle">
|
|
84
|
+
Announce agent responses
|
|
85
|
+
</label>
|
|
86
|
+
</div>
|
|
87
|
+
<div style="margin-top: 10px; display: none;" id="voice-options">
|
|
88
|
+
<label for="voice-mode-select" style="margin: 5px 0; display: block;">Announcement Mode:</label>
|
|
89
|
+
<select id="voice-mode-select"
|
|
90
|
+
style="width: 100%; padding: 4px; border: 1px solid #ddd; border-radius: 4px; background: white;">
|
|
91
|
+
<option value="speech">🔊 Voice Synthesis</option>
|
|
92
|
+
<option value="notification">🔔 Notification Sound</option>
|
|
93
|
+
</select>
|
|
94
|
+
|
|
95
|
+
<div id="voice-selection-container" style="margin-top: 10px; display: none;">
|
|
96
|
+
<label for="voice-select" style="margin: 5px 0; display: block;">Select Voice:</label>
|
|
97
|
+
<select id="voice-select"
|
|
98
|
+
style="width: 100%; padding: 4px; border: 1px solid #ddd; border-radius: 4px; background: white;">
|
|
99
|
+
<option value="">Loading voices...</option>
|
|
100
|
+
</select>
|
|
101
|
+
|
|
102
|
+
<label for="voice-rate-select" style="margin: 10px 0 5px 0; display: block;">Vitesse de
|
|
103
|
+
parole:</label>
|
|
104
|
+
<select id="voice-rate-select"
|
|
105
|
+
style="width: 100%; padding: 4px; border: 1px solid #ddd; border-radius: 4px; background: white;">
|
|
106
|
+
<option value="0.8">Lent (0.8x)</option>
|
|
107
|
+
<option value="1.0">Normal (1.0x)</option>
|
|
108
|
+
<option value="1.2" selected>Rapide (1.2x)</option>
|
|
109
|
+
<option value="1.4">Très rapide (1.4x)</option>
|
|
110
|
+
<option value="1.7">Maximum (1.7x)</option>
|
|
111
|
+
</select>
|
|
112
|
+
|
|
113
|
+
<div style="margin-top: 10px;">
|
|
114
|
+
<label>
|
|
115
|
+
<input type="checkbox" id="voice-read-full-toggle">
|
|
116
|
+
Read whole message
|
|
117
|
+
</label>
|
|
118
|
+
<p style="font-size: 0.8em; color: #666; margin: 5px 0;">If disabled, only the beginning will be
|
|
119
|
+
read</p>
|
|
120
|
+
</div>
|
|
121
|
+
|
|
122
|
+
<p style="font-size: 0.8em; color: #666; margin: 5px 0;">💡 Voice will be tested automatically when
|
|
123
|
+
selected</p>
|
|
124
|
+
</div>
|
|
125
|
+
</div>
|
|
126
|
+
</div>
|
|
127
|
+
</div>
|
|
128
|
+
</div>
|
|
129
|
+
<main>
|
|
130
|
+
<div id="chat-history">
|
|
131
|
+
<div id="thinking-dots" class="text left">
|
|
132
|
+
<div class="dots"><span>.</span><span>.</span><span>.</span></div>
|
|
133
|
+
<button type="button" class="stop-button" title="Stop current execution">⏹️</button>
|
|
134
|
+
</div>
|
|
135
|
+
</div>
|
|
136
|
+
</main>
|
|
137
|
+
<footer>
|
|
138
|
+
<!-- Chat Textarea Block -->
|
|
139
|
+
<form id="chat-form" style="display: none">
|
|
140
|
+
<div class="row">
|
|
141
|
+
<div class="column" style="flex-grow: 1">
|
|
142
|
+
<label id="chat-label" for="chat-input"></label>
|
|
143
|
+
<textarea id="chat-input" placeholder="Type your message here..."></textarea>
|
|
144
|
+
</div>
|
|
145
|
+
<div class="column">
|
|
146
|
+
<button type="submit" id="send-button" class="submit">SEND <br/><br/>cmd/win + <br/>enter</button>
|
|
147
|
+
</div>
|
|
148
|
+
</div>
|
|
149
|
+
</form>
|
|
150
|
+
|
|
151
|
+
<!-- Choice Select Block -->
|
|
152
|
+
<form id="choice-form" style="display: none">
|
|
153
|
+
<div class="row">
|
|
154
|
+
<div class="column" style="flex-grow: 1">
|
|
155
|
+
<label id="choices-label" for="choice-select"></label>
|
|
156
|
+
<select id="choice-select"></select>
|
|
157
|
+
</div>
|
|
158
|
+
<button type="submit" id="send-choice-button">Choose</button>
|
|
159
|
+
</div>
|
|
160
|
+
</form>
|
|
161
|
+
</footer>
|
|
162
|
+
<script src="https://cdn.jsdelivr.net/npm/marked/marked.min.js"></script>
|
|
163
|
+
<script type="module" src="app.js"></script>
|
|
164
|
+
</body>
|
|
165
|
+
</html>
|
|
Binary file
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
button {
|
|
2
|
+
padding: 0.5em;
|
|
3
|
+
margin: 0.2em;
|
|
4
|
+
background-color: var(--color-bg-secondary);
|
|
5
|
+
color: var(--color-text);
|
|
6
|
+
border-color: var(--color-border);
|
|
7
|
+
border-radius: 0.5em;
|
|
8
|
+
cursor: pointer;
|
|
9
|
+
flex-shrink: 0;
|
|
10
|
+
box-sizing: border-box;
|
|
11
|
+
font-family: 'JetBrains Mono', monospace;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
button:hover {
|
|
15
|
+
background-color: var(--color-primary-hover);
|
|
16
|
+
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Coday Color Variables
|
|
3
|
+
*
|
|
4
|
+
* A simplified theme system with essential color variables.
|
|
5
|
+
* Default theme is light, with dark theme available via data-theme="dark".
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
:root {
|
|
9
|
+
/* Light Theme (Default) */
|
|
10
|
+
|
|
11
|
+
/* Base Colors */
|
|
12
|
+
--color-bg: #f8f8f2;
|
|
13
|
+
--color-bg-secondary: #f1f1eb;
|
|
14
|
+
--color-text: #282a36;
|
|
15
|
+
--color-text-secondary: #6272a4;
|
|
16
|
+
--color-text-inverse: #ffffff;
|
|
17
|
+
|
|
18
|
+
/* Interactive Elements */
|
|
19
|
+
--color-primary: #7064fb;
|
|
20
|
+
--color-primary-hover: #ff79c6;
|
|
21
|
+
--color-link: #3498db;
|
|
22
|
+
--color-border: #aeaeae;
|
|
23
|
+
--color-input-bg: #ffffff;
|
|
24
|
+
|
|
25
|
+
/* Status Colors */
|
|
26
|
+
--color-success: #50fa7b;
|
|
27
|
+
--color-error: #ff5555;
|
|
28
|
+
--color-warning: #ffb86c;
|
|
29
|
+
--color-info: #8be9fd;
|
|
30
|
+
|
|
31
|
+
/* Application-Specific */
|
|
32
|
+
--color-message-user: #e2dee2;
|
|
33
|
+
--color-message-ai: #e8ecf6;
|
|
34
|
+
--color-code-bg: #1e1f29;
|
|
35
|
+
|
|
36
|
+
/* Utility Colors */
|
|
37
|
+
--color-shadow: rgba(0, 0, 0, 0.1);
|
|
38
|
+
--color-overlay: rgba(0, 0, 0, 0.3);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/* Dark Theme */
|
|
42
|
+
[data-theme="dark"] {
|
|
43
|
+
/* Base Colors */
|
|
44
|
+
--color-bg: #333339;
|
|
45
|
+
--color-bg-secondary: #44475a;
|
|
46
|
+
--color-text: #f8f8f2;
|
|
47
|
+
--color-text-secondary: #6272a4;
|
|
48
|
+
--color-text-inverse: #ffffff;
|
|
49
|
+
|
|
50
|
+
/* Interactive Elements */
|
|
51
|
+
--color-primary: #e4d1ff;
|
|
52
|
+
--color-primary-hover: #ff79c6;
|
|
53
|
+
--color-link: #61afef;
|
|
54
|
+
--color-border: #6272a4;
|
|
55
|
+
--color-input-bg: #282a36;
|
|
56
|
+
|
|
57
|
+
/* Status Colors remain the same for consistency */
|
|
58
|
+
|
|
59
|
+
/* Application-Specific */
|
|
60
|
+
--color-message-user: #6a5b7e;
|
|
61
|
+
--color-message-ai: #677088;
|
|
62
|
+
--color-code-bg: #1e1f29;
|
|
63
|
+
|
|
64
|
+
/* Utility Colors */
|
|
65
|
+
--color-shadow: rgba(0, 0, 0, 0.3);
|
|
66
|
+
--color-overlay: rgba(0, 0, 0, 0.7);
|
|
67
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
body {
|
|
2
|
+
font-family: 'JetBrains Mono', 'Consolas', 'Monaco', 'Menlo', monospace;
|
|
3
|
+
margin: 0;
|
|
4
|
+
padding: 0;
|
|
5
|
+
display: flex;
|
|
6
|
+
flex-direction: column;
|
|
7
|
+
height: 100vh;
|
|
8
|
+
background-color: var(--color-bg);
|
|
9
|
+
color: var(--color-text);
|
|
10
|
+
transition: background-color 0.3s ease, color 0.3s ease;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
h1 {
|
|
14
|
+
font-size: 1.5em;
|
|
15
|
+
margin: 0;
|
|
16
|
+
color: var(--color-primary-hover);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/* Text selection styling */
|
|
20
|
+
::selection {
|
|
21
|
+
background-color: var(--color-primary);
|
|
22
|
+
color: var(--color-text-inverse, #ffffff);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/* Import voice controls styles */
|
|
26
|
+
@import '../chat-textarea/voice-controls.css';
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
header {
|
|
2
|
+
background-color: var(--color-bg-secondary);
|
|
3
|
+
padding: 0.5em;
|
|
4
|
+
border-bottom: 1px solid var(--color-border);
|
|
5
|
+
transition: background-color 0.3s ease, border-color 0.3s ease;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
/* Transparent overlay header */
|
|
9
|
+
.overlay-header {
|
|
10
|
+
padding: 4px 8px; /* Reduced padding to minimize height */
|
|
11
|
+
position: fixed;
|
|
12
|
+
top: 0;
|
|
13
|
+
left: 0;
|
|
14
|
+
right: 0;
|
|
15
|
+
z-index: 1000;
|
|
16
|
+
background-color: transparent;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
.header-content {
|
|
20
|
+
display: flex;
|
|
21
|
+
justify-content: space-between;
|
|
22
|
+
align-items: center;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
.logo-container {
|
|
26
|
+
display: flex;
|
|
27
|
+
align-items: center;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.header-logo {
|
|
31
|
+
width: 48px;
|
|
32
|
+
height: 48px;
|
|
33
|
+
border-radius: 4px;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
.logo-text {
|
|
37
|
+
margin-left: 8px;
|
|
38
|
+
font-weight: bold;
|
|
39
|
+
color: var(--color-text);
|
|
40
|
+
font-size: 18px;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/* Options button */
|
|
44
|
+
#options-button {
|
|
45
|
+
background-color: var(--color-bg);
|
|
46
|
+
padding: 5px 10px;
|
|
47
|
+
border-radius: 4px;
|
|
48
|
+
border: 1px solid var(--color-border);
|
|
49
|
+
color: var(--color-bg);
|
|
50
|
+
cursor: pointer;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
#options-button:hover {
|
|
54
|
+
background-color: var(--color-bg-secondary);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/* Options panel */
|
|
58
|
+
#options-panel {
|
|
59
|
+
display: none;
|
|
60
|
+
text-align: start;
|
|
61
|
+
padding: 10px;
|
|
62
|
+
background-color: var(--color-bg-secondary);
|
|
63
|
+
position: absolute;
|
|
64
|
+
right: 8px;
|
|
65
|
+
top: 35px; /* Adjusted to match reduced header height */
|
|
66
|
+
border: 1px solid var(--color-border);
|
|
67
|
+
z-index: 1000;
|
|
68
|
+
box-shadow: 0 4px 8px var(--color-shadow);
|
|
69
|
+
border-radius: 4px;
|
|
70
|
+
flex-direction: column;
|
|
71
|
+
align-items: flex-start;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/* Voice language selector in options panel */
|
|
75
|
+
#voice-language-select {
|
|
76
|
+
width: 100%;
|
|
77
|
+
padding: 4px;
|
|
78
|
+
border: 1px solid var(--color-border);
|
|
79
|
+
border-radius: 4px;
|
|
80
|
+
background-color: var(--color-bg);
|
|
81
|
+
color: var(--color-text);
|
|
82
|
+
font-size: 12px;
|
|
83
|
+
transition: border-color 0.2s ease, background-color 0.3s ease, color 0.3s ease;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
#voice-language-select:hover {
|
|
87
|
+
border-color: var(--color-primary);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
#voice-language-select:focus {
|
|
91
|
+
outline: none;
|
|
92
|
+
border-color: var(--color-primary);
|
|
93
|
+
box-shadow: 0 0 0 2px var(--color-primary-alpha);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
/* Voice volume control */
|
|
97
|
+
#voice-volume-control {
|
|
98
|
+
display: flex;
|
|
99
|
+
align-items: center;
|
|
100
|
+
gap: 4px;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
#voice-volume-slider {
|
|
104
|
+
width: 60px;
|
|
105
|
+
height: 20px;
|
|
106
|
+
background-color: var(--color-bg-secondary);
|
|
107
|
+
border-radius: 10px;
|
|
108
|
+
outline: none;
|
|
109
|
+
transition: background-color 0.3s ease;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
#voice-volume-slider::-webkit-slider-thumb {
|
|
113
|
+
appearance: none;
|
|
114
|
+
width: 16px;
|
|
115
|
+
height: 16px;
|
|
116
|
+
background-color: var(--color-primary, #007bff);
|
|
117
|
+
border-radius: 50%;
|
|
118
|
+
cursor: pointer;
|
|
119
|
+
transition: background-color 0.3s ease;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
#voice-volume-slider::-webkit-slider-thumb:hover {
|
|
123
|
+
background-color: var(--color-primary-hover, #0056b3);
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
#voice-volume-slider::-moz-range-thumb {
|
|
127
|
+
width: 16px;
|
|
128
|
+
height: 16px;
|
|
129
|
+
background-color: var(--color-primary, #007bff);
|
|
130
|
+
border-radius: 50%;
|
|
131
|
+
cursor: pointer;
|
|
132
|
+
border: none;
|
|
133
|
+
transition: background-color 0.3s ease;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
#voice-volume-slider::-moz-range-thumb:hover {
|
|
137
|
+
background-color: var(--color-primary-hover, #0056b3);
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
#volume-display {
|
|
141
|
+
font-size: 12px;
|
|
142
|
+
min-width: 30px;
|
|
143
|
+
color: var(--color-text);
|
|
144
|
+
font-weight: 500;
|
|
145
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
main {
|
|
2
|
+
flex-grow: 1;
|
|
3
|
+
display: flex;
|
|
4
|
+
flex-direction: column;
|
|
5
|
+
justify-content: flex-start;
|
|
6
|
+
overflow-y: auto;
|
|
7
|
+
margin: 0;
|
|
8
|
+
padding: 20px 0 0 0; /* Reduced top padding to match smaller header */
|
|
9
|
+
background-color: var(--color-bg);
|
|
10
|
+
color: var(--color-text);
|
|
11
|
+
transition: background-color 0.3s ease, color 0.3s ease;
|
|
12
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
.column {
|
|
2
|
+
display: flex;
|
|
3
|
+
flex-direction: column;
|
|
4
|
+
justify-content: flex-start;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
.row {
|
|
8
|
+
display: flex;
|
|
9
|
+
flex-direction: row;
|
|
10
|
+
justify-content: flex-start;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
.hidden {
|
|
14
|
+
display: none;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
.visually-hidden {
|
|
18
|
+
position: absolute;
|
|
19
|
+
width: 1px;
|
|
20
|
+
height: 1px;
|
|
21
|
+
margin: -1px;
|
|
22
|
+
border: 0;
|
|
23
|
+
padding: 0;
|
|
24
|
+
clip: rect(0, 0, 0, 0);
|
|
25
|
+
overflow: hidden;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/* Dracula theme utility classes */
|
|
29
|
+
.dracula-selection {
|
|
30
|
+
background-color: #44475a;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
.dracula-comment {
|
|
34
|
+
color: #6272a4;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
.dracula-purple {
|
|
38
|
+
color: #bd93f9;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
.dracula-green {
|
|
42
|
+
color: #50fa7b;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.dracula-orange {
|
|
46
|
+
color: #ffb86c;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
.dracula-pink {
|
|
50
|
+
color: #ff79c6;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
.dracula-yellow {
|
|
54
|
+
color: #f1fa8c;
|
|
55
|
+
}
|
package/package.json
ADDED