@mongoosejs/studio 0.2.13 → 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.
- package/backend/actions/ChatMessage/executeScript.js +5 -1
- package/backend/actions/ChatThread/createChatMessage.js +4 -1
- package/backend/actions/ChatThread/streamChatMessage.js +4 -2
- package/backend/actions/Dashboard/updateDashboard.js +2 -2
- package/backend/actions/Task/getTaskOverview.js +102 -0
- package/backend/actions/Task/getTasks.js +85 -45
- package/backend/actions/Task/index.js +1 -0
- package/eslint.config.js +4 -1
- package/frontend/public/app.js +25025 -762
- package/frontend/public/dark-theme.css +365 -0
- package/frontend/public/images/mongoose-studio.svg +4 -0
- package/frontend/public/index.html +21 -1
- package/frontend/public/style.css +5 -7
- package/frontend/public/theme-variables.css +294 -0
- package/frontend/public/tw.css +348 -213
- package/frontend/src/_util/dateRange.js +82 -0
- package/frontend/src/ace-editor/ace-editor.html +4 -0
- package/frontend/src/ace-editor/ace-editor.js +95 -0
- package/frontend/src/aceEditor.js +69 -0
- package/frontend/src/api.js +6 -0
- package/frontend/src/chat/chat-message/chat-message.html +1 -1
- package/frontend/src/chat/chat-message/chat-message.js +1 -1
- package/frontend/src/chat/chat-message-script/chat-message-script.html +54 -42
- package/frontend/src/chat/chat-message-script/chat-message-script.js +6 -55
- package/frontend/src/chat/chat.html +68 -39
- package/frontend/src/chat/chat.js +26 -2
- package/frontend/src/clone-document/clone-document.html +7 -2
- package/frontend/src/clone-document/clone-document.js +1 -8
- package/frontend/src/create-dashboard/create-dashboard.html +11 -6
- package/frontend/src/create-dashboard/create-dashboard.js +0 -7
- package/frontend/src/create-document/create-document.html +15 -9
- package/frontend/src/create-document/create-document.js +5 -12
- package/frontend/src/dashboard/dashboard.html +14 -12
- package/frontend/src/dashboard/dashboard.js +21 -4
- package/frontend/src/dashboard/edit-dashboard/edit-dashboard.html +13 -7
- package/frontend/src/dashboard/edit-dashboard/edit-dashboard.js +16 -23
- package/frontend/src/dashboard-result/dashboard-chart/dashboard-chart.html +19 -17
- package/frontend/src/dashboard-result/dashboard-chart/dashboard-chart.js +97 -2
- package/frontend/src/dashboard-result/dashboard-map/dashboard-map.js +27 -3
- package/frontend/src/dashboard-result/dashboard-result.html +3 -3
- package/frontend/src/dashboard-result/dashboard-result.js +3 -0
- package/frontend/src/dashboard-result/dashboard-table/dashboard-table.html +34 -0
- package/frontend/src/dashboard-result/dashboard-table/dashboard-table.js +37 -0
- package/frontend/src/dashboards/dashboards.html +101 -109
- package/frontend/src/dashboards/dashboards.js +25 -1
- package/frontend/src/detail-default/detail-default.html +2 -2
- package/frontend/src/detail-default/detail-default.js +24 -3
- package/frontend/src/document/confirm-changes/confirm-changes.html +1 -1
- package/frontend/src/document/confirm-delete/confirm-delete.html +1 -1
- package/frontend/src/document/document.css +1 -1
- package/frontend/src/document/document.html +28 -28
- package/frontend/src/document/execute-script/execute-script.html +20 -21
- package/frontend/src/document/execute-script/execute-script.js +1 -43
- package/frontend/src/document-details/document-details.css +4 -9
- package/frontend/src/document-details/document-details.html +34 -33
- package/frontend/src/document-details/document-details.js +2 -53
- package/frontend/src/document-details/document-property/document-property.html +12 -12
- package/frontend/src/edit-array/edit-array.html +7 -6
- package/frontend/src/edit-array/edit-array.js +10 -50
- package/frontend/src/edit-boolean/edit-boolean.html +12 -12
- package/frontend/src/edit-date/edit-date.html +2 -2
- package/frontend/src/edit-default/edit-default.html +1 -1
- package/frontend/src/edit-string/edit-string.html +3 -3
- package/frontend/src/edit-subdocument/edit-subdocument.html +5 -3
- package/frontend/src/edit-subdocument/edit-subdocument.js +1 -15
- package/frontend/src/export-query-results/export-query-results.html +3 -3
- package/frontend/src/json-node/json-node.html +3 -3
- package/frontend/src/list-json/json-node.html +1 -1
- package/frontend/src/models/document-search/document-search.html +3 -3
- package/frontend/src/models/model-switcher/model-switcher.html +53 -0
- package/frontend/src/models/model-switcher/model-switcher.js +123 -0
- package/frontend/src/models/models.css +3 -10
- package/frontend/src/models/models.html +146 -80
- package/frontend/src/models/models.js +116 -7
- package/frontend/src/navbar/navbar.html +157 -97
- package/frontend/src/navbar/navbar.js +31 -12
- package/frontend/src/routes.js +1 -1
- package/frontend/src/splash/splash.html +5 -5
- package/frontend/src/task-by-name/task-by-name.html +77 -7
- package/frontend/src/task-by-name/task-by-name.js +84 -9
- package/frontend/src/task-single/task-single.html +29 -29
- package/frontend/src/task-single/task-single.js +10 -10
- package/frontend/src/tasks/task-details/task-details.html +43 -43
- package/frontend/src/tasks/task-details/task-details.js +9 -3
- package/frontend/src/tasks/tasks.html +36 -35
- package/frontend/src/tasks/tasks.js +27 -143
- package/frontend/src/team/new-invitation/new-invitation.html +8 -8
- package/frontend/src/team/team.html +27 -27
- package/frontend/src/update-document/update-document.html +7 -2
- package/frontend/src/update-document/update-document.js +2 -11
- package/package.json +3 -1
- package/tailwind.config.js +75 -11
|
@@ -0,0 +1,365 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Dark-mode overrides for Mongoose Studio.
|
|
3
|
+
*
|
|
4
|
+
* Semantic Tailwind tokens (bg-primary, bg-surface, text-content, border-edge, etc.)
|
|
5
|
+
* swap automatically via CSS variables in theme-variables.css — no overrides needed here.
|
|
6
|
+
*
|
|
7
|
+
* This file only covers:
|
|
8
|
+
* 1. Remaining hard-coded Tailwind gray shades not yet converted to semantic tokens
|
|
9
|
+
* 2. Status / semantic colors (red, green, yellow, blue)
|
|
10
|
+
* 3. Component-specific overrides (CodeMirror, modals, chat, etc.)
|
|
11
|
+
* 4. Miscellaneous (JSON view, tooltips, scrollbars, placeholders)
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
/* ---- Remaining gray backgrounds ---- */
|
|
15
|
+
.dark .bg-gray-200 {
|
|
16
|
+
background-color: var(--studio-bg-subtle);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
.dark .bg-gray-300 {
|
|
20
|
+
background-color: var(--studio-bg-subtle-hover);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
.dark .bg-gray-600 {
|
|
24
|
+
background-color: var(--studio-bg-strong);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.dark .bg-gray-800 {
|
|
28
|
+
background-color: var(--studio-bg-stronger);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
.dark .hover\:bg-gray-300:hover,
|
|
32
|
+
.dark .hover\:bg-gray-400:hover {
|
|
33
|
+
background-color: var(--studio-bg-strong);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/* ---- Remaining gray text ---- */
|
|
37
|
+
.dark .text-gray-300,
|
|
38
|
+
.dark .text-gray-400 {
|
|
39
|
+
color: var(--studio-text-subtle);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
.dark .text-gray-600 {
|
|
43
|
+
color: var(--studio-text-muted);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
.dark .text-gray-800 {
|
|
47
|
+
color: var(--studio-text-primary);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/* ---- Status / semantic ---- */
|
|
51
|
+
.dark .bg-red-50 {
|
|
52
|
+
background-color: var(--studio-bg-error);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
.dark .bg-yellow-50 {
|
|
56
|
+
background-color: var(--studio-bg-warning);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
.dark .bg-green-50 {
|
|
60
|
+
background-color: var(--studio-bg-success);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
.dark .bg-blue-100 {
|
|
64
|
+
background-color: var(--studio-bg-info);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
.dark .border-red-200 {
|
|
68
|
+
border-color: var(--studio-border-error);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
.dark .border-yellow-200 {
|
|
72
|
+
border-color: var(--studio-border-warning);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
.dark .border-green-200 {
|
|
76
|
+
border-color: var(--studio-border-success);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
.dark .text-red-700 {
|
|
80
|
+
color: var(--studio-text-error);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
.dark .text-green-700 {
|
|
84
|
+
color: var(--studio-text-success);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
.dark .ring-green-600\/20 {
|
|
88
|
+
--tw-ring-color: var(--studio-ring-success);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
.dark .ring-gray-600\/20 {
|
|
92
|
+
--tw-ring-color: var(--studio-ring-muted);
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
/* ---- Ring / shadow ---- */
|
|
96
|
+
.dark .ring-black\/5,
|
|
97
|
+
.dark .ring-opacity-5 {
|
|
98
|
+
--tw-ring-color: var(--studio-ring);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
.dark .ring-gray-900\/5 {
|
|
102
|
+
--tw-ring-color: var(--studio-ring);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
/* ---- Slate (documents area, filter bar) ---- */
|
|
106
|
+
.dark .bg-slate-50 {
|
|
107
|
+
background-color: var(--studio-bg-muted);
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
.dark .hover\:bg-slate-50:hover {
|
|
111
|
+
background-color: var(--studio-bg-muted-hover);
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
.dark .bg-slate-100 {
|
|
115
|
+
background-color: var(--studio-bg-muted);
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
.dark .border-slate-100,
|
|
119
|
+
.dark .border-slate-300 {
|
|
120
|
+
border-color: var(--studio-border);
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
.dark .text-slate-400 {
|
|
124
|
+
color: var(--studio-text-muted);
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
.dark .text-slate-500 {
|
|
128
|
+
color: var(--studio-text-muted);
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
.dark .text-slate-600 {
|
|
132
|
+
color: var(--studio-text-secondary);
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
.dark .text-slate-700 {
|
|
136
|
+
color: var(--studio-text-secondary);
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
.dark .text-slate-800 {
|
|
140
|
+
color: var(--studio-text-primary);
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
.dark .hover\:text-slate-700:hover {
|
|
144
|
+
color: var(--studio-text-primary);
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
/* ---- JSON view – high-contrast value colors ---- */
|
|
148
|
+
.dark .text-blue-600 {
|
|
149
|
+
color: #93c5fd;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
.dark .text-sky-700,
|
|
153
|
+
.dark .text-sky-800 {
|
|
154
|
+
color: #7dd3fc;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
.dark .text-emerald-600 {
|
|
158
|
+
color: #6ee7b7;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
.dark .text-amber-600 {
|
|
162
|
+
color: #fcd34d;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
.dark .text-violet-600 {
|
|
166
|
+
color: #c4b5fd;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
/* ---- Selected document row ---- */
|
|
170
|
+
.dark .bg-blue-200 {
|
|
171
|
+
background-color: rgba(127, 29, 43, 0.35);
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
/* ---- Tooltip ---- */
|
|
175
|
+
.dark .tooltip .tooltiptext {
|
|
176
|
+
background-color: var(--studio-tooltip-bg);
|
|
177
|
+
color: var(--studio-tooltip-text);
|
|
178
|
+
border: 1px solid var(--studio-tooltip-border);
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
/* ---- Document layout ---- */
|
|
182
|
+
.dark .document .document-menu {
|
|
183
|
+
background-color: var(--studio-bg-surface);
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
.dark .document-details .path-key {
|
|
187
|
+
background-color: var(--studio-bg-subtle);
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
.dark .document-details .path-type {
|
|
191
|
+
color: var(--studio-text-muted);
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
.dark .document-details .value {
|
|
195
|
+
color: var(--studio-text-secondary);
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
.dark .json-view pre {
|
|
199
|
+
background-color: var(--studio-bg-surface);
|
|
200
|
+
color: var(--studio-text-primary);
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
.dark .json-view pre::-webkit-scrollbar-track {
|
|
204
|
+
background: var(--studio-bg-subtle);
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
.dark .json-view pre::-webkit-scrollbar-thumb {
|
|
208
|
+
background: var(--studio-bg-strong);
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
.dark .json-view pre::-webkit-scrollbar-thumb:hover {
|
|
212
|
+
background: var(--studio-text-muted);
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
/* ---- Models table and sidebar ---- */
|
|
216
|
+
.dark .models .documents table th,
|
|
217
|
+
.dark .models .documents table td,
|
|
218
|
+
.dark .models .documents table tr {
|
|
219
|
+
color: var(--studio-text-primary);
|
|
220
|
+
border-bottom-color: var(--studio-border);
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
.dark .models .documents table th::after {
|
|
224
|
+
border-bottom-color: var(--studio-border);
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
.dark .models .model-selector,
|
|
228
|
+
.dark .models button.gray {
|
|
229
|
+
background-color: var(--studio-bg-muted);
|
|
230
|
+
color: var(--studio-text-primary);
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
.dark .models .path-type {
|
|
234
|
+
color: var(--studio-text-muted);
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
/* ---- Modal ---- */
|
|
238
|
+
.dark .modal-container {
|
|
239
|
+
background-color: var(--studio-bg-surface);
|
|
240
|
+
color: var(--studio-text-primary);
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
.dark .modal-body {
|
|
244
|
+
color: inherit;
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
/* ---- Ace editor border in dark mode ---- */
|
|
248
|
+
.dark .ace-editor-container {
|
|
249
|
+
border-color: var(--studio-border) !important;
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
/* ---- Prism.js syntax highlighting (dark) ---- */
|
|
253
|
+
.dark code[class*="language-"],
|
|
254
|
+
.dark pre[class*="language-"] {
|
|
255
|
+
color: #e8e8e8 !important;
|
|
256
|
+
text-shadow: none !important;
|
|
257
|
+
background: var(--studio-bg-muted) !important;
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
.dark .token.comment,
|
|
261
|
+
.dark .token.prolog,
|
|
262
|
+
.dark .token.doctype,
|
|
263
|
+
.dark .token.cdata {
|
|
264
|
+
color: #6a9955 !important;
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
.dark .token.punctuation {
|
|
268
|
+
color: #b8b8bc !important;
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
.dark .token.property,
|
|
272
|
+
.dark .token.tag,
|
|
273
|
+
.dark .token.boolean,
|
|
274
|
+
.dark .token.number,
|
|
275
|
+
.dark .token.constant,
|
|
276
|
+
.dark .token.symbol,
|
|
277
|
+
.dark .token.deleted {
|
|
278
|
+
color: #d19a66 !important;
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
.dark .token.selector,
|
|
282
|
+
.dark .token.attr-name,
|
|
283
|
+
.dark .token.string,
|
|
284
|
+
.dark .token.char,
|
|
285
|
+
.dark .token.builtin,
|
|
286
|
+
.dark .token.inserted {
|
|
287
|
+
color: #98c379 !important;
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
.dark .token.operator,
|
|
291
|
+
.dark .token.entity,
|
|
292
|
+
.dark .token.url,
|
|
293
|
+
.dark .language-css .token.string,
|
|
294
|
+
.dark .style .token.string {
|
|
295
|
+
color: #56b6c2 !important;
|
|
296
|
+
background: none !important;
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
.dark .token.atrule,
|
|
300
|
+
.dark .token.attr-value,
|
|
301
|
+
.dark .token.keyword {
|
|
302
|
+
color: #c678dd !important;
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
.dark .token.function,
|
|
306
|
+
.dark .token.class-name {
|
|
307
|
+
color: #61afef !important;
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
.dark .token.regex,
|
|
311
|
+
.dark .token.important,
|
|
312
|
+
.dark .token.variable {
|
|
313
|
+
color: #d19a66 !important;
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
/* ---- Textarea (modal, dashboard editor) ---- */
|
|
317
|
+
.dark .modal-container textarea,
|
|
318
|
+
.dark .modal-body textarea,
|
|
319
|
+
.dark .dashboard-editor textarea,
|
|
320
|
+
.dark .dashboard-editor input {
|
|
321
|
+
background-color: var(--studio-bg-muted) !important;
|
|
322
|
+
color: var(--studio-text-primary) !important;
|
|
323
|
+
border-color: var(--studio-border) !important;
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
.dark .modal-container textarea::placeholder,
|
|
327
|
+
.dark .modal-body textarea::placeholder,
|
|
328
|
+
.dark .dashboard-editor textarea::placeholder,
|
|
329
|
+
.dark .dashboard-editor input::placeholder {
|
|
330
|
+
color: var(--studio-text-subtle) !important;
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
.dark .modal-container textarea:focus,
|
|
334
|
+
.dark .modal-body textarea:focus,
|
|
335
|
+
.dark .dashboard-editor textarea:focus,
|
|
336
|
+
.dark .dashboard-editor input:focus {
|
|
337
|
+
border-color: var(--studio-focus-ring) !important;
|
|
338
|
+
outline: none;
|
|
339
|
+
box-shadow: 0 0 0 2px var(--studio-focus-ring-shadow) !important;
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
/* ---- Dashboard editor panel ---- */
|
|
343
|
+
.dark .dashboard-editor {
|
|
344
|
+
background-color: var(--studio-bg-muted) !important;
|
|
345
|
+
color: var(--studio-text-primary);
|
|
346
|
+
}
|
|
347
|
+
|
|
348
|
+
/* ---- Chat message script block ---- */
|
|
349
|
+
.dark .chat-message-script {
|
|
350
|
+
background-color: var(--studio-bg-surface) !important;
|
|
351
|
+
color: var(--studio-text-primary);
|
|
352
|
+
border-color: var(--studio-border) !important;
|
|
353
|
+
}
|
|
354
|
+
|
|
355
|
+
.dark .chat-message-script .flex.border-b {
|
|
356
|
+
background-color: var(--studio-bg-surface) !important;
|
|
357
|
+
border-color: var(--studio-border) !important;
|
|
358
|
+
}
|
|
359
|
+
|
|
360
|
+
|
|
361
|
+
/* ---- Input placeholder contrast ---- */
|
|
362
|
+
.dark ::placeholder,
|
|
363
|
+
.dark .placeholder\:text-gray-400::placeholder {
|
|
364
|
+
color: var(--studio-text-muted);
|
|
365
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="250" height="250" viewBox="0 0 250 250" fill="none">
|
|
2
|
+
<path d="M 241.66,125.01 C 237.81,112.98 227.41,111.95 216.76,110.36 C 215.12,95.83 210.99,83.09 202.29,70.33 C 202.99,68.37 201.92,66.65 200.74,65.11 C 183.14,41.46 157.52,27 124.66,27 C 92.62,27 66.09,40.77 48.28,63.38 C 46.21,65.85 46.26,67.71 47.12,69.36 C 37.81,81.15 33.21,93.78 30.99,109.86 C 20.19,110.58 11.71,115.92 9.04,124.94 C 3.28,145.66 5.62,157.95 10.01,169.16 C 16.14,184.65 29.12,186.31 36.04,185.81 C 42.48,185.68 44.94,184.31 44.72,182.11 C 44.26,177.79 41.01,165.31 41.01,149.12 C 41.01,138.22 43.19,127.74 46.21,117.7 C 47.51,113.33 44.66,112.05 39.16,110.28 C 41.01,96.88 45.88,84.85 52.61,73.79 C 55.17,75.56 58.07,74.88 59.61,72.71 C 75.86,54.31 97.89,45.16 124.61,45.16 C 149.71,45.16 171.91,55.91 189.29,73.47 C 191.95,76.59 193.91,76.67 197.6,74.42 C 204.93,86.26 208.28,98.24 208.98,110.39 C 203.84,111.81 201.28,113.19 202.92,118.61 C 206.51,128.99 207.92,137.93 207.92,148.73 C 207.92,162.11 204.8,174.71 202.84,182.71 C 201.92,186.23 204.31,186.91 210.79,186.99 H 213.91 C 225.87,186.61 235.39,180.64 239.49,169.05 C 244.83,155.26 245.08,138.01 241.66,125.01 Z" fill="#7F1D2B"/>
|
|
3
|
+
<path d="M 124.71,70.81 C 79.63,70.81 47.49,107.12 47.49,148.72 C 47.49,169.16 56.41,188.19 73.71,200.61 L 73.96,200.77 C 77.43,177.81 84.16,162.21 95.29,145.42 C 92.04,137.09 91.71,130.87 92.62,120.83 C 93.81,111.23 96.08,107.12 102.19,107.68 C 110.04,108.87 117.98,116.18 126.22,124.96 C 139.89,124.05 157.81,131.25 178.33,139.09 C 183.11,140.86 183.72,142.63 182.97,148.33 C 179.45,160.93 170.86,166.63 158.11,174.05 C 143.09,183.07 141.13,199.42 153.88,220.09 L 153.96,221.01 L 154.71,221.17 C 181.31,208.43 201.34,181.01 201.34,148.72 C 201.34,108.15 169.29,70.81 124.71,70.81 Z" fill="#7F1D2B"/>
|
|
4
|
+
</svg>
|
|
@@ -6,11 +6,12 @@
|
|
|
6
6
|
<meta name="msapplication-TileColor" />
|
|
7
7
|
<meta name="theme-color" content="#ffffff"/>
|
|
8
8
|
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Inter"/>
|
|
9
|
+
<link rel="stylesheet" href="theme-variables.css">
|
|
9
10
|
<link rel="stylesheet" type="text/css" href="style.css"/>
|
|
10
11
|
<link rel="stylesheet" href="https://unpkg.com/prismjs@1.29.0/themes/prism.css"/>
|
|
11
12
|
<link rel="stylesheet" href="tw.css">
|
|
13
|
+
<link rel="stylesheet" href="dark-theme.css">
|
|
12
14
|
<link rel="stylesheet" href="vanillatoasts/vanillatoasts.css">
|
|
13
|
-
<link rel="stylesheet" href="https://unpkg.com/codemirror@5.65.16/lib/codemirror.css">
|
|
14
15
|
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css"/>
|
|
15
16
|
<link rel="icon" href="images/logo.svg" type="image/svg+xml">
|
|
16
17
|
<script src="./config.js"></script>
|
|
@@ -20,6 +21,25 @@
|
|
|
20
21
|
<script src="https://unpkg.com/leaflet@1.9.4/dist/leaflet.js"></script>
|
|
21
22
|
<script src="https://unpkg.com/codemirror@5.65.16/lib/codemirror.js"></script>
|
|
22
23
|
<script src="https://unpkg.com/codemirror@5.65.16/mode/javascript/javascript.js"></script>
|
|
24
|
+
<script>
|
|
25
|
+
(function() {
|
|
26
|
+
try {
|
|
27
|
+
var key = 'studio-theme';
|
|
28
|
+
var stored = localStorage.getItem(key);
|
|
29
|
+
var prefersDark = typeof matchMedia !== 'undefined' && matchMedia('(prefers-color-scheme: dark)').matches;
|
|
30
|
+
var isDark = stored === 'dark' || (!stored && prefersDark);
|
|
31
|
+
if (!stored) localStorage.setItem(key, isDark ? 'dark' : 'light');
|
|
32
|
+
if (isDark) document.documentElement.classList.add('dark');
|
|
33
|
+
var meta = document.querySelector('meta[name="theme-color"]');
|
|
34
|
+
if (meta) meta.setAttribute('content', isDark ? '#0f0f0f' : '#ffffff');
|
|
35
|
+
} catch (err) {
|
|
36
|
+
var prefersDark = typeof matchMedia !== 'undefined' && matchMedia('(prefers-color-scheme: dark)').matches;
|
|
37
|
+
if (prefersDark) document.documentElement.classList.add('dark');
|
|
38
|
+
var meta = document.querySelector('meta[name="theme-color"]');
|
|
39
|
+
if (meta) meta.setAttribute('content', prefersDark ? '#0f0f0f' : '#ffffff');
|
|
40
|
+
}
|
|
41
|
+
})();
|
|
42
|
+
</script>
|
|
23
43
|
</head>
|
|
24
44
|
|
|
25
45
|
<body>
|
|
@@ -3,11 +3,8 @@ body {
|
|
|
3
3
|
margin: 0;
|
|
4
4
|
padding: 0;
|
|
5
5
|
font-family: "Inter", Helvetica, Arial, FreeSans, sans-serif;
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
a {
|
|
9
|
-
text-decoration: none;
|
|
10
|
-
color: #0e5887;
|
|
6
|
+
background-color: var(--studio-bg-page);
|
|
7
|
+
color: var(--studio-text-page);
|
|
11
8
|
}
|
|
12
9
|
|
|
13
10
|
.bold {
|
|
@@ -23,8 +20,9 @@ a {
|
|
|
23
20
|
.tooltip .tooltiptext {
|
|
24
21
|
visibility: hidden;
|
|
25
22
|
width: 120px;
|
|
26
|
-
background-color:
|
|
27
|
-
color:
|
|
23
|
+
background-color: var(--studio-tooltip-bg);
|
|
24
|
+
color: var(--studio-tooltip-text);
|
|
25
|
+
border: 1px solid var(--studio-tooltip-border);
|
|
28
26
|
text-align: center;
|
|
29
27
|
padding: 5px 0px;
|
|
30
28
|
border-radius: 6px;
|