omegga 1.1.2 → 1.2.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.
Files changed (137) hide show
  1. package/README.md +10 -1
  2. package/dist/brickadia/server.d.ts +17 -0
  3. package/dist/brickadia/server.js +81 -4
  4. package/dist/brickadia/server.js.map +1 -1
  5. package/dist/cli/auth.js +1 -1
  6. package/dist/cli/auth.js.map +1 -1
  7. package/dist/cli/terminal.js +99 -6
  8. package/dist/cli/terminal.js.map +1 -1
  9. package/dist/config/reader.js.map +1 -1
  10. package/dist/config/types.d.ts +5 -0
  11. package/dist/main.js +43 -47
  12. package/dist/main.js.map +1 -1
  13. package/dist/omegga/player.js +4 -2
  14. package/dist/omegga/player.js.map +1 -1
  15. package/dist/omegga/plugin/plugin_jsonrpc_stdio.js.map +1 -1
  16. package/dist/omegga/plugin/plugin_node_safe/proxyOmegga.d.ts +5 -5
  17. package/dist/omegga/plugin.d.ts +2 -2
  18. package/dist/omegga/server.d.ts +6 -5
  19. package/dist/omegga/server.js +128 -84
  20. package/dist/omegga/server.js.map +1 -1
  21. package/dist/omegga/wrapper.d.ts +11 -0
  22. package/dist/omegga/wrapper.js +16 -0
  23. package/dist/omegga/wrapper.js.map +1 -1
  24. package/dist/plugin.d.ts +7 -9
  25. package/dist/plugin.js.map +1 -1
  26. package/dist/softconfig.d.ts +1 -0
  27. package/dist/softconfig.js +2 -1
  28. package/dist/softconfig.js.map +1 -1
  29. package/dist/tsconfig.tsbuildinfo +1 -1
  30. package/dist/updater/index.d.ts +1 -0
  31. package/dist/updater/index.js +10 -0
  32. package/dist/updater/index.js.map +1 -0
  33. package/dist/updater/steam.d.ts +52 -0
  34. package/dist/updater/steam.js +139 -0
  35. package/dist/updater/steam.js.map +1 -0
  36. package/dist/util/color.js +7 -7
  37. package/dist/util/color.js.map +1 -1
  38. package/dist/util/time.js +1 -1
  39. package/dist/util/time.js.map +1 -1
  40. package/dist/webserver/backend/api.d.ts +83 -1
  41. package/dist/webserver/backend/api.js +174 -15
  42. package/dist/webserver/backend/api.js.map +1 -1
  43. package/dist/webserver/backend/database.js +10 -3
  44. package/dist/webserver/backend/database.js.map +1 -1
  45. package/dist/webserver/backend/index.js +5 -9
  46. package/dist/webserver/backend/index.js.map +1 -1
  47. package/dist/webserver/backend/metrics.js +58 -11
  48. package/dist/webserver/backend/metrics.js.map +1 -1
  49. package/eslint.config.mjs +53 -0
  50. package/package.json +37 -29
  51. package/public/app.html +1865 -0
  52. package/public/assets/IconArrowRight-CA5_cccJ.js +7 -0
  53. package/public/assets/IconArrowRight-CA5_cccJ.js.map +1 -0
  54. package/public/assets/IconCheck-Dyq5qyY1.js +17 -0
  55. package/public/assets/IconCheck-Dyq5qyY1.js.map +1 -0
  56. package/public/assets/IconLockOpen-D95XLORK.js +7 -0
  57. package/public/assets/IconLockOpen-D95XLORK.js.map +1 -0
  58. package/public/assets/IconWorld-DtARpBKX.js +72 -0
  59. package/public/assets/IconWorld-DtARpBKX.js.map +1 -0
  60. package/public/assets/IconWorldPlus-CMeE6oOX.js +182 -0
  61. package/public/assets/IconWorldPlus-CMeE6oOX.js.map +1 -0
  62. package/public/assets/IconX-SYtbnYKI.js +12 -0
  63. package/public/assets/IconX-SYtbnYKI.js.map +1 -0
  64. package/public/assets/_commonjsHelpers-CE1G-McA.js +2 -0
  65. package/public/assets/_commonjsHelpers-CE1G-McA.js.map +1 -0
  66. package/public/assets/app-CRu25Om6.js +6 -0
  67. package/public/assets/app-CRu25Om6.js.map +1 -0
  68. package/public/assets/auth-DdQ5DJ5h.js +2 -0
  69. package/public/assets/auth-DdQ5DJ5h.js.map +1 -0
  70. package/public/assets/client-C5T7_OK9.js +26 -0
  71. package/public/assets/client-C5T7_OK9.js.map +1 -0
  72. package/public/assets/index-CJ4e7_2M.js +2 -0
  73. package/public/assets/index-CJ4e7_2M.js.map +1 -0
  74. package/public/assets/index-CRRRLlCc.js +10 -0
  75. package/public/assets/index-CRRRLlCc.js.map +1 -0
  76. package/public/assets/index-CSV4ZXsq.js +2 -0
  77. package/public/assets/index-CSV4ZXsq.js.map +1 -0
  78. package/public/assets/index-CtY8r8rg.js +9 -0
  79. package/public/assets/index-CtY8r8rg.js.map +1 -0
  80. package/public/assets/index-DaWNRjkx.js +2 -0
  81. package/public/assets/index-DaWNRjkx.js.map +1 -0
  82. package/public/assets/index-DqHVrEeL.js +10 -0
  83. package/public/assets/index-DqHVrEeL.js.map +1 -0
  84. package/public/assets/index-c0qeY2gs.js +10 -0
  85. package/public/assets/index-c0qeY2gs.js.map +1 -0
  86. package/public/assets/index-i4mjW0og.js +2 -0
  87. package/public/assets/index-i4mjW0og.js.map +1 -0
  88. package/public/assets/jsx-runtime-Bw5QeaCk.js +10 -0
  89. package/public/assets/jsx-runtime-Bw5QeaCk.js.map +1 -0
  90. package/public/assets/jsx-runtime-DoEZbXM1.js +2 -0
  91. package/public/assets/jsx-runtime-DoEZbXM1.js.map +1 -0
  92. package/public/assets/shared/@components-BiaBe0jO.js +2 -0
  93. package/public/assets/shared/@components-BiaBe0jO.js.map +1 -0
  94. package/public/assets/shared/@hooks-DfTzYBIL.js +2 -0
  95. package/public/assets/shared/@hooks-DfTzYBIL.js.map +1 -0
  96. package/public/assets/shared/@nanostores_react-HTG3s0lp.js +2 -0
  97. package/public/assets/shared/@nanostores_react-HTG3s0lp.js.map +1 -0
  98. package/public/assets/shared/@tabler_icons-react-DwfGvIVr.js +29458 -0
  99. package/public/assets/shared/@tabler_icons-react-DwfGvIVr.js.map +1 -0
  100. package/public/assets/shared/@utils-BQyGUOvP.js +2 -0
  101. package/public/assets/shared/@utils-BQyGUOvP.js.map +1 -0
  102. package/public/assets/shared/nanostores-BFqqIY_c.js +2 -0
  103. package/public/assets/shared/nanostores-BFqqIY_c.js.map +1 -0
  104. package/public/assets/shared/react-CR6vSpIu.js +2 -0
  105. package/public/assets/shared/react-CR6vSpIu.js.map +1 -0
  106. package/public/assets/shared/react-dom-BznoGTRX.js +2 -0
  107. package/public/assets/shared/react-dom-BznoGTRX.js.map +1 -0
  108. package/public/assets/shared/react_jsx-runtime-C15Zu6_p.js +2 -0
  109. package/public/assets/shared/react_jsx-runtime-C15Zu6_p.js.map +1 -0
  110. package/public/assets/shared/wouter-DbmGxXTo.js +2 -0
  111. package/public/assets/shared/wouter-DbmGxXTo.js.map +1 -0
  112. package/public/auth.html +1206 -0
  113. package/templates/rust/src/main.rs +25 -0
  114. package/templates/safe-ts/omegga.d.ts +7 -9
  115. package/tools/install_steamcmd.sh +1 -1
  116. package/.prettierignore +0 -6
  117. package/frontend/app.html +0 -14
  118. package/frontend/auth.html +0 -14
  119. package/omegga-config.yml +0 -7
  120. package/public/app.bundle.js +0 -54537
  121. package/public/app.bundle.js.map +0 -1
  122. package/public/app.css +0 -6345
  123. package/public/app.css.map +0 -1
  124. package/public/auth.bundle.js +0 -17789
  125. package/public/auth.bundle.js.map +0 -1
  126. package/public/auth.css +0 -3313
  127. package/public/auth.css.map +0 -1
  128. /package/{frontend/assets/fonts/GlacialIndifferenceBold.ttf → public/assets/GlacialIndifferenceBold-DhenBmgZ.ttf} +0 -0
  129. /package/{frontend/assets/fonts/GlacialIndifferenceItalic.otf → public/assets/GlacialIndifferenceItalic-BApAEtVA.otf} +0 -0
  130. /package/{frontend/assets/fonts/GlacialIndifferenceMedium.otf → public/assets/GlacialIndifferenceMedium-CALcoUYm.otf} +0 -0
  131. /package/{frontend/assets/fonts/GlacialIndifferenceRegular.ttf → public/assets/GlacialIndifferenceRegular-DynFsoUc.ttf} +0 -0
  132. /package/{frontend/assets/fonts/RobotoBold.ttf → public/assets/RobotoBold-DB1hqCFM.ttf} +0 -0
  133. /package/{frontend/assets/fonts/RobotoItalic.ttf → public/assets/RobotoItalic-DIrf6xfk.ttf} +0 -0
  134. /package/{frontend/assets/fonts/RobotoRegular.ttf → public/assets/RobotoRegular-CGSfnFoJ.ttf} +0 -0
  135. /package/{frontend/assets/img/auth_bg.webp → public/assets/auth_bg-DJZN1T-H.webp} +0 -0
  136. /package/{frontend/assets/img/dark_bg.webp → public/assets/dark_bg-uu5tZDxN.webp} +0 -0
  137. /package/{frontend/assets/img/turkey.webp → public/assets/turkey-BW4gu-4u.webp} +0 -0
@@ -0,0 +1,1865 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+
5
+
6
+ <meta charset="utf-8">
7
+ <meta name="viewport" content="width=device-width,initial-scale=1.0">
8
+ <title>Omegga Web Interface</title>
9
+ <style lang="scss">/* Background & Panel */
10
+ /* Text & Icon */
11
+ /* Buttons & Colored Elements */
12
+ /* Main */
13
+ /* Info */
14
+ /* Error */
15
+ /* Warning */
16
+ /* Button */
17
+ /* Element */
18
+ .background {
19
+ position: fixed;
20
+ left: 0;
21
+ top: 0;
22
+ width: 100%;
23
+ height: 100%;
24
+ overflow: visible;
25
+ background-image: url("/assets/auth_bg-DJZN1T-H.webp");
26
+ background-repeat: no-repeat;
27
+ background-attachment: fixed;
28
+ background-size: cover;
29
+ background-position: 50% 50%;
30
+ }
31
+ .bg-img {
32
+ position: absolute;
33
+ filter: blur(20px);
34
+ left: -40px;
35
+ top: -40px;
36
+ width: calc(100% + 80px);
37
+ height: calc(100% + 80px);
38
+ object-fit: cover;
39
+ }
40
+ .version {
41
+ position: absolute;
42
+ top: 5px;
43
+ right: 5px;
44
+ font-weight: 200;
45
+ font-size: 12px;
46
+ color: rgba(255, 255, 255, 0.5);
47
+ text-shadow: 0 0 2px rgba(0, 0, 0, 0.5);
48
+ }
49
+ @media (prefers-color-scheme: dark) {
50
+ .background {
51
+ background-image: url("/assets/dark_bg-uu5tZDxN.webp");
52
+ }
53
+ .background .light {
54
+ display: none;
55
+ }
56
+ }
57
+ @media (prefers-color-scheme: light) {
58
+ .dark {
59
+ display: none;
60
+ }
61
+ }
62
+ .button {
63
+ display: flex;
64
+ align-items: center;
65
+ justify-content: center;
66
+ text-transform: uppercase;
67
+ height: 32px;
68
+ font-size: 24px;
69
+ border-radius: 16px;
70
+ box-sizing: border-box;
71
+ color: #ffffff;
72
+ font-weight: bold;
73
+ padding: 0 16px;
74
+ cursor: pointer;
75
+ user-select: none;
76
+ }
77
+ .button.boxy {
78
+ border-radius: 8px;
79
+ padding: 0 8px;
80
+ }
81
+ .button:not(:last-child) {
82
+ margin-right: 8px;
83
+ }
84
+ .button:not(.icon) .tabler-icon {
85
+ margin-right: 8px;
86
+ }
87
+ .button.icon {
88
+ border-radius: 8px;
89
+ padding: 0;
90
+ width: 32px;
91
+ min-width: 32px;
92
+ }
93
+ .button.disabled {
94
+ opacity: 50%;
95
+ cursor: default;
96
+ pointer-events: none;
97
+ }
98
+ .button .button-content {
99
+ display: flex;
100
+ text-align: center;
101
+ align-items: center;
102
+ justify-content: center;
103
+ }
104
+ .button:not(.disabled):active .button-content {
105
+ padding-top: 4px;
106
+ }
107
+ .button.warn {
108
+ background-color: #ffa10b;
109
+ }
110
+ .button.warn:hover {
111
+ background-color: #ffbd54;
112
+ }
113
+ .button.warn:active, .button.warn.disabled {
114
+ background-color: #b37108;
115
+ }
116
+ .button.main {
117
+ background-color: #5da93d;
118
+ }
119
+ .button.main:hover {
120
+ background-color: #8dc377;
121
+ }
122
+ .button.main:active, .button.main.disabled {
123
+ background-color: #41772b;
124
+ }
125
+ .button.info {
126
+ background-color: #009bee;
127
+ }
128
+ .button.info:hover {
129
+ background-color: #4cb9f3;
130
+ }
131
+ .button.info:active, .button.info.disabled {
132
+ background-color: #007da7;
133
+ }
134
+ .button.error {
135
+ background-color: #e02d2d;
136
+ }
137
+ .button.error:hover {
138
+ background-color: #e96c6c;
139
+ }
140
+ .button.error:active, .button.error.disabled {
141
+ background-color: #9d2020;
142
+ }
143
+ .button.normal {
144
+ background-color: #455a7e;
145
+ color: #a7bbce;
146
+ }
147
+ .button.normal:hover {
148
+ background-color: #5e7190;
149
+ }
150
+ .button.normal:active, .button.normal.disabled {
151
+ background-color: #263f61;
152
+ }
153
+ .log-entry {
154
+ text-decoration: none;
155
+ font-family: "Roboto";
156
+ }
157
+ .log-entry .log-row {
158
+ display: flex;
159
+ align-items: center;
160
+ }
161
+ .log-entry .log-row .user,
162
+ .log-entry .log-row .time-link {
163
+ text-decoration: none;
164
+ }
165
+ .log-entry .log-row .time-link {
166
+ display: flex;
167
+ align-items: center;
168
+ }
169
+ .log-entry .log-row .time-link .tabler-icon {
170
+ opacity: 0;
171
+ color: white;
172
+ }
173
+ .log-entry .log-row .message {
174
+ flex: 1;
175
+ }
176
+ .log-entry:hover .log-row {
177
+ background: rgba(255, 255, 255, 0.2);
178
+ border-radius: 8px;
179
+ }
180
+ .log-entry:hover .log-row .tabler-icon {
181
+ opacity: 1;
182
+ }
183
+ .log-entry.focused .log-row {
184
+ border-radius: 8px;
185
+ background: #5da93d;
186
+ }
187
+ .chat-timestamp {
188
+ align-self: center;
189
+ font-size: 16px;
190
+ margin-right: 8px;
191
+ font-weight: bold;
192
+ text-align: right;
193
+ display: inline-block;
194
+ width: 75px;
195
+ min-width: 75px;
196
+ color: #ccc;
197
+ }
198
+ .dimmer {
199
+ background-color: #1b2f4a;
200
+ width: 100%;
201
+ height: 100%;
202
+ position: absolute;
203
+ top: 0;
204
+ left: 0;
205
+ background-color: rgba(0, 0, 0, 0.7);
206
+ display: none;
207
+ align-items: stretch;
208
+ z-index: 200;
209
+ }
210
+ .dimmer.visible {
211
+ display: flex;
212
+ }
213
+ .dimmer .dimmer-content {
214
+ position: relative;
215
+ flex: 1;
216
+ }
217
+ .dropdown {
218
+ display: flex;
219
+ flex-direction: column;
220
+ align-items: stretch;
221
+ font-weight: bold;
222
+ cursor: pointer;
223
+ user-select: none;
224
+ position: relative;
225
+ width: 100%;
226
+ }
227
+ .dropdown:not(:last-child) {
228
+ margin-bottom: 0;
229
+ }
230
+ .dropdown.disabled {
231
+ pointer-events: none;
232
+ opacity: 50%;
233
+ cursor: default;
234
+ }
235
+ .dropdown .options {
236
+ position: absolute;
237
+ bottom: 100%;
238
+ left: 0;
239
+ width: 100%;
240
+ max-height: 200px;
241
+ overflow-y: auto;
242
+ overflow-x: hidden;
243
+ z-index: 10;
244
+ box-shadow: 0 4px 8px rgba(0, 0, 0, 0.4);
245
+ border-radius: 8px;
246
+ }
247
+ .dropdown .options .green {
248
+ background-color: #5da93d;
249
+ }
250
+ .dropdown .options .green:hover {
251
+ background: #8dc377;
252
+ outline: none;
253
+ }
254
+ .dropdown .options .green:active {
255
+ background: #41772b;
256
+ outline: none;
257
+ }
258
+ .dropdown .option,
259
+ .dropdown .selected {
260
+ font-family: "Glacial Indifference";
261
+ background: #455a7e;
262
+ color: #1a2848;
263
+ height: 32px;
264
+ padding: 2px 12px;
265
+ padding-right: 0;
266
+ box-sizing: border-box;
267
+ font-weight: bold;
268
+ font-size: 24px;
269
+ }
270
+ .dropdown .option:hover,
271
+ .dropdown .selected:hover {
272
+ background: #5e7190;
273
+ outline: none;
274
+ }
275
+ .dropdown .option:active,
276
+ .dropdown .selected:active {
277
+ background: #263f61;
278
+ outline: none;
279
+ }
280
+ .dropdown .selected {
281
+ display: flex;
282
+ border: none;
283
+ align-items: center;
284
+ border-radius: 8px;
285
+ }
286
+ .dropdown .selected .value {
287
+ flex: 1;
288
+ }
289
+ .dropdown .icon {
290
+ margin-right: 8px;
291
+ }
292
+ .footer {
293
+ background-color: #091021;
294
+ color: #ffffff;
295
+ display: flex;
296
+ font-size: 24px;
297
+ font-weight: bold;
298
+ height: 30px;
299
+ padding: 10px;
300
+ text-transform: uppercase;
301
+ }
302
+ .footer.attached {
303
+ border-bottom-left-radius: 12px;
304
+ border-bottom-right-radius: 12px;
305
+ }
306
+ .header {
307
+ align-items: center;
308
+ background-color: #091021;
309
+ color: #ffffff;
310
+ display: flex;
311
+ font-size: 24px;
312
+ font-weight: bold;
313
+ height: 50px;
314
+ padding-left: 20px;
315
+ padding-right: 10px;
316
+ text-transform: uppercase;
317
+ }
318
+ .header.attached {
319
+ border-top-left-radius: 12px;
320
+ border-top-right-radius: 12px;
321
+ }
322
+ .input {
323
+ display: flex;
324
+ flex-direction: column;
325
+ align-items: stretch;
326
+ font-weight: bold;
327
+ cursor: pointer;
328
+ user-select: none;
329
+ }
330
+ .input:not(:last-child) {
331
+ margin-bottom: 0;
332
+ }
333
+ .input.icon {
334
+ border-radius: 0;
335
+ padding: 0;
336
+ width: 32px;
337
+ }
338
+ .input.disabled {
339
+ pointer-events: none;
340
+ opacity: 50%;
341
+ cursor: default;
342
+ }
343
+ .input input {
344
+ height: 32px;
345
+ font-family: "Glacial Indifference";
346
+ padding: 2px 12px;
347
+ box-sizing: border-box;
348
+ font-weight: bold;
349
+ font-size: 24px;
350
+ background: #455a7e;
351
+ color: #1a2848;
352
+ border: none;
353
+ border-radius: 8px;
354
+ }
355
+ .input input::placeholder {
356
+ color: #224c7b;
357
+ }
358
+ .input input:focus {
359
+ background: #5e7190;
360
+ outline: none;
361
+ }
362
+ .input .icon {
363
+ margin-right: 8px;
364
+ }
365
+ .header > .input input {
366
+ height: 32px !important;
367
+ }
368
+ @font-face {
369
+ font-family: "Glacial Indifference";
370
+ src: url("/assets/GlacialIndifferenceBold-DhenBmgZ.ttf") format("truetype");
371
+ font-weight: bold;
372
+ font-style: normal;
373
+ }
374
+ @font-face {
375
+ font-family: "Glacial Indifference";
376
+ src: url("/assets/GlacialIndifferenceItalic-BApAEtVA.otf") format("opentype");
377
+ font-weight: normal;
378
+ font-style: italic;
379
+ }
380
+ @font-face {
381
+ font-family: "Glacial Indifference";
382
+ src: url("/assets/GlacialIndifferenceMedium-CALcoUYm.otf") format("opentype");
383
+ font-weight: normal;
384
+ font-style: normal;
385
+ }
386
+ @font-face {
387
+ font-family: "Glacial Indifference";
388
+ src: url("/assets/GlacialIndifferenceRegular-DynFsoUc.ttf") format("truetype");
389
+ font-weight: normal;
390
+ font-style: normal;
391
+ }
392
+ @font-face {
393
+ font-family: "Roboto";
394
+ src: url("/assets/RobotoBold-DB1hqCFM.ttf") format("truetype");
395
+ font-weight: bold;
396
+ font-style: normal;
397
+ }
398
+ @font-face {
399
+ font-family: "Roboto";
400
+ src: url("/assets/RobotoItalic-DIrf6xfk.ttf") format("truetype");
401
+ font-weight: normal;
402
+ font-style: italic;
403
+ }
404
+ @font-face {
405
+ font-family: "Roboto";
406
+ src: url("/assets/RobotoRegular-CGSfnFoJ.ttf") format("truetype");
407
+ font-weight: normal;
408
+ font-style: normal;
409
+ }
410
+ body {
411
+ font-family: "Glacial Indifference";
412
+ }
413
+ :root {
414
+ --br-bg-primary: theme.$br-bg-primary;
415
+ --br-bg-primary-alt: theme.$br-bg-primary-alt;
416
+ --br-bg-secondary: theme.$br-bg-secondary;
417
+ --br-bg-secondary-alt: theme.$br-bg-secondary-alt;
418
+ --br-bg-footer: theme.$br-bg-footer;
419
+ --br-bg-header: theme.$br-bg-header;
420
+ --br-fg-footer: theme.$br-fg-footer;
421
+ --br-fg-header: theme.$br-fg-header;
422
+ --br-header-font: theme.$br-header-font;
423
+ --br-header-height: theme.$br-header-height;
424
+ --br-footer-font: theme.$br-footer-font;
425
+ --br-footer-height: theme.$br-footer-height;
426
+ --br-radius-sm: theme.$br-radius-sm;
427
+ --br-radius-md: theme.$br-radius-md;
428
+ --br-radius-lg: theme.$br-radius-lg;
429
+ --br-boring-button-fg: theme.$br-boring-button-fg;
430
+ --br-button-fg: theme.$br-button-fg;
431
+ --br-inverted-fg: theme.$br-inverted-fg;
432
+ --br-main-normal: theme.$br-main-normal;
433
+ --br-main-hover: theme.$br-main-hover;
434
+ --br-main-pressed: theme.$br-main-pressed;
435
+ --br-main-disabled: theme.$br-main-disabled;
436
+ --br-info-normal: theme.$br-info-normal;
437
+ --br-info-hover: theme.$br-info-hover;
438
+ --br-info-pressed: theme.$br-info-pressed;
439
+ --br-info-disabled: theme.$br-info-disabled;
440
+ --br-error-normal: theme.$br-error-normal;
441
+ --br-error-hover: theme.$br-error-hover;
442
+ --br-error-pressed: theme.$br-error-pressed;
443
+ --br-error-disabled: theme.$br-error-disabled;
444
+ --br-warn-normal: theme.$br-warn-normal;
445
+ --br-warn-hover: theme.$br-warn-hover;
446
+ --br-warn-pressed: theme.$br-warn-pressed;
447
+ --br-warn-disabled: theme.$br-warn-disabled;
448
+ --br-button-normal: theme.$br-button-normal;
449
+ --br-button-hover: theme.$br-button-hover;
450
+ --br-button-pressed: theme.$br-button-pressed;
451
+ --br-button-disabled: theme.$br-button-disabled;
452
+ --br-element-normal: theme.$br-element-normal;
453
+ --br-element-fg: theme.$br-element-fg;
454
+ --br-element-pressed: theme.$br-element-pressed;
455
+ --br-element-overlay: theme.$br-element-overlay;
456
+ --br-element-hover: theme.$br-element-hover;
457
+ --br-element-bg: theme.$br-element-bg;
458
+ --br-element-popout-bg: theme.$br-element-popout-bg;
459
+ --br-element-header-bg: theme.$br-element-header-bg;
460
+ --br-element-footer-bg: theme.$br-element-footer-bg;
461
+ --br-element-height: theme.$br-element-height;
462
+ --br-element-font: theme.$br-element-font;
463
+ }
464
+ html,
465
+ body {
466
+ margin: 0;
467
+ padding: 0;
468
+ }
469
+ html {
470
+ width: 100%;
471
+ height: 100%;
472
+ display: table;
473
+ }
474
+ body {
475
+ width: 100%;
476
+ display: table-cell;
477
+ position: relative;
478
+ overflow: hidden;
479
+ font-family: "Glacial Indifference";
480
+ }
481
+ @media screen and (max-width: 600px) {
482
+ body {
483
+ overflow-y: auto;
484
+ }
485
+ }
486
+ ::-webkit-scrollbar {
487
+ width: 16px;
488
+ }
489
+ ::-webkit-scrollbar-track {
490
+ background-color: #162841;
491
+ }
492
+ ::-webkit-scrollbar-thumb {
493
+ background: #224c7b;
494
+ }
495
+ ::-webkit-scrollbar-thumb:hover {
496
+ background: #fff;
497
+ }
498
+ .generic-container {
499
+ flex: 1;
500
+ position: relative;
501
+ margin-left: 8px;
502
+ }
503
+ .stat {
504
+ color: white;
505
+ font-weight: bold;
506
+ }
507
+ .stats {
508
+ padding: 8px;
509
+ font-size: 24px;
510
+ word-break: break-all;
511
+ background-color: #263f61;
512
+ }
513
+ .stat b {
514
+ color: #a7bbce;
515
+ }
516
+ .log-entry {
517
+ font-size: 24px;
518
+ text-shadow: -1px -1px 0 #000, 1px -1px 0 #000, -1px 1px 0 #000, 1px 1px 0 #000;
519
+ word-break: break-all;
520
+ }
521
+ .log-entry .user {
522
+ font-weight: bold;
523
+ }
524
+ .log-entry .join-message,
525
+ .log-entry .join-message .user {
526
+ color: #3477e3 !important;
527
+ }
528
+ .log-entry .chat-message {
529
+ color: #ffffff;
530
+ }
531
+ .log-entry .server-message {
532
+ color: #ff00ff;
533
+ }
534
+ table.br-table {
535
+ font-weight: bold;
536
+ border-collapse: collapse;
537
+ font-size: 24px;
538
+ }
539
+ table.br-table thead th {
540
+ color: white;
541
+ height: 50px;
542
+ background-color: #1b2f4a;
543
+ white-space: nowrap;
544
+ }
545
+ table.br-table th,
546
+ table.br-table td {
547
+ padding: 0 10px;
548
+ }
549
+ table.br-table tr td:first-child,
550
+ table.br-table tr th:first-child {
551
+ padding-left: 20px;
552
+ }
553
+ table.br-table tr td:last-child,
554
+ table.br-table tr th:last-child {
555
+ padding-right: 20px;
556
+ }
557
+ table.br-table tbody tr {
558
+ background-color: #131d30;
559
+ }
560
+ table.br-table tbody tr:nth-child(even) {
561
+ background-color: #111a2b;
562
+ }
563
+ table.br-table tbody tr td {
564
+ font-size: 20px;
565
+ color: #a7bbce;
566
+ height: 50px;
567
+ overflow: hidden;
568
+ white-space: nowrap;
569
+ }
570
+ a,
571
+ :visited {
572
+ color: #0ff;
573
+ }
574
+ .inputs-list {
575
+ background-color: #162841;
576
+ }
577
+ .inputs-list .inputs-item {
578
+ background-color: #1b2f4a;
579
+ display: flex;
580
+ align-items: center;
581
+ justify-content: space-between;
582
+ height: 50px;
583
+ padding: 0 10px;
584
+ }
585
+ .inputs-list .inputs-item:nth-child(even) {
586
+ background-color: #182b44;
587
+ }
588
+ .inputs-list .inputs-item label,
589
+ .inputs-list .inputs-item .inputs {
590
+ display: flex;
591
+ align-items: center;
592
+ }
593
+ .inputs-list .inputs-item .inputs {
594
+ flex: 1;
595
+ }
596
+ .inputs-list .inputs-item .inputs .toggle,
597
+ .inputs-list .inputs-item .inputs .br-input {
598
+ margin-right: 8px;
599
+ }
600
+ .inputs-list .inputs-item label {
601
+ color: #a7bbce;
602
+ min-width: 300px;
603
+ flex: 0.5;
604
+ font-size: 18px;
605
+ font-weight: bold;
606
+ overflow: hidden;
607
+ white-space: nowrap;
608
+ }
609
+ .widgets-container {
610
+ z-index: 100;
611
+ display: flex;
612
+ flex-direction: column;
613
+ align-items: flex-end;
614
+ }
615
+ .widgets-container .widgets-list {
616
+ background-color: #162841;
617
+ margin-right: 8px;
618
+ min-width: 200px;
619
+ border-radius: 12px;
620
+ }
621
+ .widgets-container .widgets-list .widget-item {
622
+ border-radius: 12px;
623
+ background-color: #1b2f4a;
624
+ display: flex;
625
+ align-items: center;
626
+ justify-content: space-between;
627
+ height: 50px;
628
+ padding: 0 10px;
629
+ }
630
+ .widgets-container .widgets-list .widget-item:nth-child(even) {
631
+ background-color: #182b44;
632
+ }
633
+ .widgets-container .widgets-list .widget-item .name {
634
+ text-transform: uppercase;
635
+ display: flex;
636
+ align-items: center;
637
+ }
638
+ .widgets-container .widgets-list .widget-item .name .tabler-icon {
639
+ margin-right: 10px;
640
+ }
641
+ .br-list-input {
642
+ display: flex;
643
+ flex-direction: column;
644
+ align-items: stretch;
645
+ user-select: none;
646
+ width: 100%;
647
+ }
648
+ .br-list-input.disabled {
649
+ pointer-events: none;
650
+ opacity: 50%;
651
+ cursor: default;
652
+ }
653
+ .br-list-input .br-list-item {
654
+ display: flex;
655
+ margin-bottom: 8px;
656
+ width: 100%;
657
+ }
658
+ .br-list-input .br-list-item .button {
659
+ margin-left: 8px;
660
+ }
661
+ .br-list-input > .button {
662
+ margin-bottom: 8px;
663
+ }
664
+ .loader {
665
+ position: absolute;
666
+ left: 0;
667
+ top: 0;
668
+ width: 100%;
669
+ height: 100%;
670
+ display: none;
671
+ align-items: stretch;
672
+ flex-direction: column;
673
+ }
674
+ .loader.active {
675
+ display: flex;
676
+ }
677
+ .loader-container {
678
+ flex: 1;
679
+ }
680
+ .loader-container.blur {
681
+ backdrop-filter: blur(5px);
682
+ }
683
+ .loader.inline {
684
+ position: relative;
685
+ display: inline-block;
686
+ left: auto;
687
+ right: auto;
688
+ width: auto;
689
+ height: auto;
690
+ }
691
+ .loader-container {
692
+ display: flex;
693
+ align-items: center;
694
+ justify-content: center;
695
+ flex-direction: column;
696
+ color: white;
697
+ }
698
+ .inline .loader-container {
699
+ display: block;
700
+ color: inherit;
701
+ }
702
+ .loader-icon {
703
+ color: white;
704
+ animation: rotating 2s infinite linear;
705
+ }
706
+ @keyframes rotating {
707
+ 0% {
708
+ transform: rotate(0);
709
+ }
710
+ 50% {
711
+ transform: rotate(180deg);
712
+ }
713
+ 100% {
714
+ transform: rotate(360deg);
715
+ }
716
+ }
717
+ .modal {
718
+ position: absolute;
719
+ top: 50%;
720
+ left: 50%;
721
+ transform: translate(-50%, -50%);
722
+ background-color: #1b2f4a;
723
+ width: 500px;
724
+ opacity: 0;
725
+ border-radius: 12px;
726
+ }
727
+ .modal.visible {
728
+ opacity: 1;
729
+ animation: fadeIn 0.4s ease 1;
730
+ }
731
+ .modal .modal-content {
732
+ position: relative;
733
+ }
734
+ .modal .popout-inputs .dropdown,
735
+ .modal .popout-inputs .input {
736
+ margin: 8px;
737
+ }
738
+ .nav-header {
739
+ color: white;
740
+ font-weight: bold;
741
+ font-size: 50px;
742
+ text-transform: uppercase;
743
+ }
744
+ .main-nav {
745
+ margin-bottom: 16px;
746
+ }
747
+ .navbar {
748
+ display: flex;
749
+ height: 32px;
750
+ font-size: 24px;
751
+ color: #ffffff;
752
+ background-color: #091021;
753
+ font-weight: bold;
754
+ padding: 10px;
755
+ border-radius: 12px;
756
+ }
757
+ .navbar.attached {
758
+ border-bottom-left-radius: 0;
759
+ border-bottom-right-radius: 0;
760
+ }
761
+ .main-content {
762
+ display: flex;
763
+ flex: 1;
764
+ position: relative;
765
+ }
766
+ @media screen and (max-width: 600px) {
767
+ .main-content {
768
+ flex-direction: column;
769
+ margin-bottom: 24px;
770
+ }
771
+ }
772
+ .content-parent {
773
+ position: absolute;
774
+ left: 0;
775
+ top: 0;
776
+ width: 100%;
777
+ height: 100%;
778
+ display: grid;
779
+ grid-template-rows: 100%;
780
+ }
781
+ .content {
782
+ position: relative;
783
+ display: flex;
784
+ flex-direction: column;
785
+ padding: 24px;
786
+ }
787
+ .br-player-list {
788
+ display: flex;
789
+ flex-direction: column;
790
+ align-items: stretch;
791
+ user-select: none;
792
+ width: 100%;
793
+ }
794
+ .br-player-list.disabled {
795
+ pointer-events: none;
796
+ opacity: 50%;
797
+ cursor: default;
798
+ }
799
+ .br-player-list .br-player-item {
800
+ display: flex;
801
+ margin-bottom: 8px;
802
+ width: 100%;
803
+ }
804
+ .br-player-list .br-player-item .button {
805
+ margin-left: 8px;
806
+ }
807
+ .br-player-list > .button {
808
+ margin-bottom: 8px;
809
+ }
810
+ .br-player-list .player-search {
811
+ position: relative;
812
+ }
813
+ .br-player-list .player-search .options {
814
+ position: absolute;
815
+ bottom: 100%;
816
+ left: 0;
817
+ width: 100%;
818
+ max-height: 200px;
819
+ overflow-y: auto;
820
+ z-index: 10;
821
+ box-shadow: 0 4px 8px rgba(0, 0, 0, 0.4);
822
+ border-radius: 8px;
823
+ }
824
+ .br-player-list .player-search .options .green {
825
+ background-color: #5da93d;
826
+ }
827
+ .br-player-list .player-search .options .green:hover {
828
+ background: #8dc377;
829
+ outline: none;
830
+ }
831
+ .br-player-list .player-search .options .green:active {
832
+ background: #41772b;
833
+ outline: none;
834
+ }
835
+ .br-player-list .selected {
836
+ border-radius: 8px;
837
+ }
838
+ .br-player-list .option,
839
+ .br-player-list .selected {
840
+ font-family: "Glacial Indifference";
841
+ background: #455a7e;
842
+ color: #1a2848;
843
+ height: 32px;
844
+ padding: 2px 12px;
845
+ padding-right: 0;
846
+ box-sizing: border-box;
847
+ font-weight: bold;
848
+ font-size: 24px;
849
+ width: 100%;
850
+ text-decoration: none;
851
+ }
852
+ .br-player-list .option:not(.search):hover,
853
+ .br-player-list .selected:not(.search):hover {
854
+ background: #5e7190;
855
+ outline: none;
856
+ }
857
+ .br-player-list .option:not(.search):active,
858
+ .br-player-list .selected:not(.search):active {
859
+ background: #263f61;
860
+ outline: none;
861
+ }
862
+ .popout-content {
863
+ background-color: #1b2f4a;
864
+ color: #a7bbce;
865
+ font-weight: bold;
866
+ font-size: 24px;
867
+ padding: 20px;
868
+ }
869
+ .popout-content > p {
870
+ margin: 20px 0;
871
+ }
872
+ .popout-content > p:first-child {
873
+ margin-top: 0;
874
+ }
875
+ .popout-content > p:last-child {
876
+ margin-bottom: 0;
877
+ }
878
+ .role-dropdown {
879
+ display: flex;
880
+ flex-direction: column;
881
+ align-items: stretch;
882
+ font-weight: bold;
883
+ cursor: pointer;
884
+ user-select: none;
885
+ position: relative;
886
+ width: 100%;
887
+ }
888
+ .role-dropdown:not(:last-child) {
889
+ margin-bottom: 0;
890
+ }
891
+ .role-dropdown.disabled {
892
+ pointer-events: none;
893
+ opacity: 50%;
894
+ cursor: default;
895
+ }
896
+ .role-dropdown .options {
897
+ position: absolute;
898
+ bottom: 100%;
899
+ left: 0;
900
+ width: 100%;
901
+ max-height: 200px;
902
+ overflow-y: auto;
903
+ z-index: 10;
904
+ box-shadow: 0 4px 8px rgba(0, 0, 0, 0.4);
905
+ border-radius: 8px;
906
+ }
907
+ .role-dropdown .options .green {
908
+ background-color: #5da93d;
909
+ }
910
+ .role-dropdown .options .green:hover {
911
+ background: #8dc377;
912
+ outline: none;
913
+ }
914
+ .role-dropdown .options .green:active {
915
+ background: #41772b;
916
+ outline: none;
917
+ }
918
+ .role-dropdown .option,
919
+ .role-dropdown .selected {
920
+ font-family: "Glacial Indifference";
921
+ background: #455a7e;
922
+ color: #1a2848;
923
+ height: 32px;
924
+ padding: 2px 12px;
925
+ padding-right: 0;
926
+ box-sizing: border-box;
927
+ font-weight: bold;
928
+ font-size: 24px;
929
+ width: 100%;
930
+ text-decoration: none;
931
+ }
932
+ .role-dropdown .option:not(.search):hover,
933
+ .role-dropdown .selected:not(.search):hover {
934
+ background: #5e7190;
935
+ outline: none;
936
+ }
937
+ .role-dropdown .option:not(.search):active,
938
+ .role-dropdown .selected:not(.search):active {
939
+ background: #263f61;
940
+ outline: none;
941
+ }
942
+ .role-dropdown .selected {
943
+ display: flex;
944
+ border: none;
945
+ align-items: center;
946
+ border-radius: 8px;
947
+ }
948
+ .role-dropdown .selected .value {
949
+ flex: 1;
950
+ }
951
+ .role-dropdown .icon {
952
+ margin-right: 8px;
953
+ }
954
+ .scroll-container {
955
+ flex: 1;
956
+ position: relative;
957
+ }
958
+ .scroll-scroller {
959
+ position: absolute;
960
+ top: 0;
961
+ left: 0;
962
+ width: 100%;
963
+ height: 100%;
964
+ overflow-y: scroll;
965
+ }
966
+ .main-menu-buttons {
967
+ width: 350px;
968
+ margin-top: -8px;
969
+ margin-right: 8px;
970
+ }
971
+ @media screen and (max-width: 600px) {
972
+ .main-menu-buttons {
973
+ margin-right: 0;
974
+ width: 100%;
975
+ min-width: 100%;
976
+ }
977
+ }
978
+ .menu-button {
979
+ display: flex;
980
+ align-items: center;
981
+ justify-content: flex-start;
982
+ text-transform: uppercase;
983
+ height: 60px;
984
+ font-size: 30px;
985
+ color: #ffffff;
986
+ background-color: #131d30;
987
+ font-weight: bold;
988
+ padding: 0;
989
+ cursor: pointer;
990
+ user-select: none;
991
+ margin: 8px 0;
992
+ text-decoration: none;
993
+ width: 350px;
994
+ border-radius: 12px;
995
+ }
996
+ .menu-button:visited {
997
+ color: #ffffff;
998
+ }
999
+ .menu-button .menu-button-content {
1000
+ display: flex;
1001
+ text-align: center;
1002
+ align-items: center;
1003
+ justify-content: center;
1004
+ }
1005
+ .menu-button .ti,
1006
+ .menu-button .tabler-icon {
1007
+ display: flex;
1008
+ width: 44px;
1009
+ height: 44px;
1010
+ margin-left: 8px;
1011
+ align-items: center;
1012
+ justify-content: center;
1013
+ margin-right: 24px;
1014
+ border-radius: 8px;
1015
+ }
1016
+ .menu-button:hover {
1017
+ background-color: #5e7190;
1018
+ }
1019
+ .menu-button:active {
1020
+ background-color: #091021;
1021
+ }
1022
+ .menu-button.active {
1023
+ background-color: #455a7e;
1024
+ }
1025
+ .menu-button.disabled {
1026
+ opacity: 50%;
1027
+ cursor: default;
1028
+ pointer-events: none;
1029
+ }
1030
+ .menu-button:not(.disabled):active .menu-button-content {
1031
+ padding-top: 4px;
1032
+ }
1033
+ .toggle {
1034
+ display: flex;
1035
+ font-weight: bold;
1036
+ cursor: pointer;
1037
+ user-select: none;
1038
+ height: 32px;
1039
+ width: 40px;
1040
+ background: #455a7e;
1041
+ border-radius: 8px;
1042
+ }
1043
+ .toggle:not(:last-child) {
1044
+ margin-bottom: 0;
1045
+ }
1046
+ .toggle.icon {
1047
+ border-radius: 0;
1048
+ padding: 0;
1049
+ width: 32px;
1050
+ }
1051
+ .toggle.disabled {
1052
+ pointer-events: none;
1053
+ opacity: 50%;
1054
+ cursor: default;
1055
+ }
1056
+ .toggle .toggle-slider {
1057
+ display: flex;
1058
+ align-items: center;
1059
+ justify-content: center;
1060
+ width: 32px;
1061
+ height: 32px;
1062
+ border-radius: 8px;
1063
+ }
1064
+ .toggle .toggle-slider:focus {
1065
+ background: #5e7190;
1066
+ outline: none;
1067
+ }
1068
+ .toggle .toggle-slider:not(.on) {
1069
+ background-color: #e02d2d;
1070
+ }
1071
+ .toggle .toggle-slider:not(.on):hover {
1072
+ background-color: #e96c6c;
1073
+ }
1074
+ .toggle .toggle-slider:not(.on):active, .toggle .toggle-slider:not(.on).disabled {
1075
+ background-color: #9d2020;
1076
+ }
1077
+ .toggle .toggle-slider:not(.on) .symbol {
1078
+ background-color: transparent;
1079
+ width: 10px;
1080
+ height: 10px;
1081
+ border: 4px solid white;
1082
+ border-radius: 50%;
1083
+ }
1084
+ .toggle .toggle-slider.on {
1085
+ margin-left: 8px;
1086
+ background-color: #5da93d;
1087
+ }
1088
+ .toggle .toggle-slider.on:hover {
1089
+ background-color: #8dc377;
1090
+ }
1091
+ .toggle .toggle-slider.on:active, .toggle .toggle-slider.on.disabled {
1092
+ background-color: #41772b;
1093
+ }
1094
+ .toggle .toggle-slider.on .symbol {
1095
+ width: 4px;
1096
+ height: 16px;
1097
+ background-color: white;
1098
+ border-radius: 2px;
1099
+ }
1100
+ .history-container {
1101
+ display: flex;
1102
+ align-items: stretch;
1103
+ }
1104
+ .chat-history {
1105
+ display: flex;
1106
+ flex-direction: column;
1107
+ flex: 1;
1108
+ position: relative;
1109
+ font-family: "Roboto";
1110
+ }
1111
+ .chat-new-day {
1112
+ display: flex;
1113
+ align-items: center;
1114
+ justify-content: center;
1115
+ color: white;
1116
+ height: 32px;
1117
+ font-size: 24px;
1118
+ text-shadow: none;
1119
+ font-weight: bold;
1120
+ text-align: center;
1121
+ background-color: #091021;
1122
+ margin-bottom: 8px;
1123
+ top: 0;
1124
+ position: sticky;
1125
+ text-transform: uppercase;
1126
+ border-radius: 8px;
1127
+ }
1128
+ .calendar-container {
1129
+ display: flex;
1130
+ flex-direction: column;
1131
+ margin-right: 8px;
1132
+ z-index: 100;
1133
+ min-height: 32px;
1134
+ align-items: flex-end;
1135
+ }
1136
+ .calendar {
1137
+ background-color: #162841;
1138
+ border-radius: 12px;
1139
+ min-width: 200px;
1140
+ }
1141
+ .calendar .year,
1142
+ .calendar .month {
1143
+ display: flex;
1144
+ align-items: center;
1145
+ justify-content: center;
1146
+ background-color: #091021;
1147
+ justify-content: space-between;
1148
+ padding: 0 8px;
1149
+ padding-bottom: 8px;
1150
+ }
1151
+ .calendar .year {
1152
+ padding-top: 8px;
1153
+ }
1154
+ .calendar .calendar-days {
1155
+ font-size: 24px;
1156
+ display: grid;
1157
+ grid-template-columns: repeat(7, 40px);
1158
+ grid-auto-rows: 40px;
1159
+ text-align: center;
1160
+ }
1161
+ .calendar .calendar-days .days {
1162
+ display: flex;
1163
+ align-items: center;
1164
+ justify-content: center;
1165
+ color: #a7bbce;
1166
+ }
1167
+ .calendar .calendar-days .days.week-header {
1168
+ background-color: #091021;
1169
+ }
1170
+ .calendar .calendar-days .days.available {
1171
+ color: white;
1172
+ background-color: #455a7e;
1173
+ border-radius: 0;
1174
+ cursor: pointer;
1175
+ }
1176
+ .calendar .calendar-days .days.available:hover {
1177
+ background-color: #5e7190;
1178
+ }
1179
+ .calendar .calendar-days .days.available:active {
1180
+ background-color: #263f61;
1181
+ }
1182
+ .calendar .calendar-days .days.available.today:hover {
1183
+ background-color: #4cb9f3;
1184
+ }
1185
+ .calendar .calendar-days .days.available.today:active {
1186
+ background-color: #007da7;
1187
+ }
1188
+ .calendar .calendar-days .days.today {
1189
+ color: white;
1190
+ border: 2px solid #009bee;
1191
+ }
1192
+ .calendar .calendar-days .days:not(.today):not(.available) {
1193
+ pointer-events: none;
1194
+ }
1195
+ .grid-container {
1196
+ position: relative;
1197
+ max-height: calc(100vh - 48px - 16px - 113px);
1198
+ width: 100%;
1199
+ overflow-y: scroll;
1200
+ overflow-x: hidden;
1201
+ z-index: 10;
1202
+ }
1203
+ .react-grid-layout {
1204
+ position: absolute;
1205
+ left: 0;
1206
+ margin-top: -8px;
1207
+ top: 0;
1208
+ width: 100%;
1209
+ height: 100%;
1210
+ }
1211
+ .react-grid-item:not(.react-grid-placeholder) {
1212
+ background-color: #263f61;
1213
+ }
1214
+ .react-grid-item .resizing {
1215
+ opacity: 0.9;
1216
+ }
1217
+ .react-grid-item {
1218
+ display: flex;
1219
+ flex-direction: column;
1220
+ overflow: hidden;
1221
+ border-radius: 12px;
1222
+ }
1223
+ .react-draggable-dragging .drag-handle {
1224
+ background-color: #162841;
1225
+ }
1226
+ .react-resizable-handle {
1227
+ opacity: 0;
1228
+ }
1229
+ .resize-handle {
1230
+ color: #a7bbce;
1231
+ font-size: 24px;
1232
+ position: absolute;
1233
+ right: -4px;
1234
+ bottom: -4px;
1235
+ }
1236
+ .react-grid-item.react-grid-placeholder {
1237
+ background-color: rgba(69, 90, 126, 0.2) !important;
1238
+ z-index: -1;
1239
+ }
1240
+ .drag-contents {
1241
+ position: relative;
1242
+ display: flex;
1243
+ align-items: stretch;
1244
+ flex: 1;
1245
+ }
1246
+ @media screen and (max-width: 600px) {
1247
+ .react-grid-layout {
1248
+ margin: -8px;
1249
+ width: calc(100% + 16px);
1250
+ }
1251
+ .grid-container {
1252
+ margin-top: 0;
1253
+ max-height: none;
1254
+ overflow: hidden;
1255
+ }
1256
+ }
1257
+ .player-inspector-container .popout-inputs.ban > .input {
1258
+ margin-bottom: 0 !important;
1259
+ }
1260
+ .player-inspector-container .popout-inputs .ban-duration .input {
1261
+ margin-right: 0 !important;
1262
+ }
1263
+ .player-inspector-container .popout-content {
1264
+ padding: 8px !important;
1265
+ padding-top: 0 !important;
1266
+ }
1267
+ .player-inspector-container .widgets-container {
1268
+ margin-right: 0 !important;
1269
+ border-radius: 8px;
1270
+ }
1271
+ .player-inspector-container .widgets-container .widgets-list {
1272
+ width: calc(100% - 9px);
1273
+ border-radius: 8px;
1274
+ }
1275
+ .player-inspector-container .widgets-container .widgets-list .button {
1276
+ justify-content: flex-start;
1277
+ width: 100%;
1278
+ margin-right: 0;
1279
+ box-sizing: border-box;
1280
+ border-radius: 0;
1281
+ }
1282
+ .player-inspector-container .widgets-container .widgets-list .button:first-child {
1283
+ border-top-left-radius: 8px;
1284
+ border-top-right-radius: 8px;
1285
+ }
1286
+ .player-inspector-container .widgets-container .widgets-list .button:last-child {
1287
+ border-bottom-left-radius: 8px;
1288
+ border-bottom-right-radius: 8px;
1289
+ }
1290
+ .player-inspector-container .widgets-container .widgets-list .button .button-content {
1291
+ text-align: left;
1292
+ }
1293
+ .player-view,
1294
+ .player-info {
1295
+ display: flex;
1296
+ flex-direction: column;
1297
+ flex: 1;
1298
+ position: relative;
1299
+ }
1300
+ .player-view .scroll-scroller,
1301
+ .player-info .scroll-scroller {
1302
+ background-color: #1b2f4a;
1303
+ }
1304
+ .player-info {
1305
+ position: relative;
1306
+ }
1307
+ .player-info .section-header {
1308
+ display: flex;
1309
+ align-items: center;
1310
+ justify-content: center;
1311
+ color: white;
1312
+ height: 32px;
1313
+ font-size: 24px;
1314
+ text-shadow: none;
1315
+ font-weight: bold;
1316
+ text-align: center;
1317
+ background-color: #091021;
1318
+ top: 0;
1319
+ position: sticky;
1320
+ text-transform: uppercase;
1321
+ }
1322
+ .player-info table {
1323
+ width: 100%;
1324
+ max-width: 100%;
1325
+ }
1326
+ .player-info table td.reason {
1327
+ word-break: break-all;
1328
+ white-space: pre-wrap;
1329
+ overflow: visible;
1330
+ max-width: 300px;
1331
+ }
1332
+ .player-inspector {
1333
+ display: flex;
1334
+ flex-direction: column;
1335
+ background-color: #263f61;
1336
+ flex: 1;
1337
+ position: relative;
1338
+ }
1339
+ .player-inspector .navbar {
1340
+ overflow: visible;
1341
+ }
1342
+ .players-container {
1343
+ display: flex;
1344
+ align-items: stretch;
1345
+ }
1346
+ .players-view .widgets-container {
1347
+ z-index: 200;
1348
+ }
1349
+ .player-table-container,
1350
+ .player-inspector-container {
1351
+ display: flex;
1352
+ flex-direction: column;
1353
+ flex: 1;
1354
+ position: relative;
1355
+ }
1356
+ .player-table-container {
1357
+ margin-right: 16px;
1358
+ }
1359
+ .player-table-container .input {
1360
+ max-width: 300px;
1361
+ margin-right: 8px;
1362
+ flex: 1;
1363
+ width: 100%;
1364
+ }
1365
+ .players-list {
1366
+ display: flex;
1367
+ flex-direction: column;
1368
+ flex: 1;
1369
+ position: relative;
1370
+ flex: 1;
1371
+ background-color: #263f61;
1372
+ }
1373
+ .players-list .br-table {
1374
+ width: 100%;
1375
+ flex: 1;
1376
+ }
1377
+ .players-list .br-table thead th:hover {
1378
+ background-color: #5e7190;
1379
+ }
1380
+ .players-list .br-table thead th:active {
1381
+ background-color: #263f61;
1382
+ }
1383
+ .players-list .br-table thead th span {
1384
+ display: flex;
1385
+ align-items: center;
1386
+ position: relative;
1387
+ cursor: pointer;
1388
+ user-select: none;
1389
+ padding-left: 20px;
1390
+ }
1391
+ .players-list .br-table thead th span.icon-cell {
1392
+ padding-right: 0;
1393
+ }
1394
+ .players-list .br-table thead th span .label,
1395
+ .players-list .br-table thead th span .icon {
1396
+ padding: 0;
1397
+ }
1398
+ .players-list .br-table thead th span .icon:not(.label) {
1399
+ color: #a7bbce;
1400
+ position: absolute;
1401
+ left: 16px;
1402
+ transform: translate(-100%);
1403
+ }
1404
+ .players-list .br-table tbody tr {
1405
+ cursor: pointer;
1406
+ user-select: none;
1407
+ }
1408
+ .players-list .br-table tbody tr .ban {
1409
+ color: #e02d2d;
1410
+ vertical-align: center;
1411
+ }
1412
+ .players-list .br-table tbody tr:hover td, .players-list .br-table tbody tr.active td {
1413
+ background-color: #5e7190;
1414
+ }
1415
+ .players-list .br-table tbody tr:active td {
1416
+ background-color: #263f61;
1417
+ }
1418
+ .players-list .pagination-footer {
1419
+ display: flex;
1420
+ align-items: center;
1421
+ }
1422
+ .players-list .pagination-footer .current-page {
1423
+ display: flex;
1424
+ flex-direction: column;
1425
+ text-align: center;
1426
+ font-size: 16px;
1427
+ flex: 1;
1428
+ font-weight: bold;
1429
+ color: white;
1430
+ }
1431
+ .player-inspector {
1432
+ display: flex;
1433
+ flex-direction: column;
1434
+ background-color: #263f61;
1435
+ flex: 1;
1436
+ position: relative;
1437
+ border-bottom-left-radius: 12px;
1438
+ border-bottom-right-radius: 12px;
1439
+ overflow: hidden;
1440
+ }
1441
+ .plugin-view,
1442
+ .plugin-info {
1443
+ display: flex;
1444
+ flex-direction: column;
1445
+ flex: 1;
1446
+ position: relative;
1447
+ }
1448
+ .plugin-view .scroll-scroller,
1449
+ .plugin-info .scroll-scroller {
1450
+ background-color: #1b2f4a;
1451
+ }
1452
+ .plugin-info .section-header {
1453
+ display: flex;
1454
+ align-items: center;
1455
+ justify-content: center;
1456
+ color: white;
1457
+ height: 32px;
1458
+ font-size: 24px;
1459
+ text-shadow: none;
1460
+ font-weight: bold;
1461
+ text-align: center;
1462
+ background-color: #091021;
1463
+ top: 0;
1464
+ position: sticky;
1465
+ text-transform: uppercase;
1466
+ }
1467
+ .option-item {
1468
+ background-color: #131d30;
1469
+ font-size: 20px;
1470
+ color: #a7bbce;
1471
+ min-height: 50px;
1472
+ overflow: visible;
1473
+ white-space: nowrap;
1474
+ display: flex;
1475
+ align-items: center;
1476
+ }
1477
+ .option-item:nth-child(even) {
1478
+ background-color: #111a2b;
1479
+ }
1480
+ .option-item.config {
1481
+ min-height: 80px;
1482
+ }
1483
+ .option-item .option-name,
1484
+ .option-item .option-input {
1485
+ margin-left: 8px;
1486
+ margin-right: 8px;
1487
+ }
1488
+ .option-item .option-name {
1489
+ font-size: 24px;
1490
+ font-weight: bold;
1491
+ cursor: default;
1492
+ }
1493
+ .option-item .option-input {
1494
+ display: flex;
1495
+ flex-direction: column;
1496
+ width: 100%;
1497
+ }
1498
+ .option-item .option-input .option-label {
1499
+ font-weight: bold;
1500
+ margin-bottom: 4px;
1501
+ }
1502
+ .option-item .option-input .option-label .saved-note {
1503
+ color: #009bee;
1504
+ display: inline-flex;
1505
+ align-items: center;
1506
+ font-weight: normal;
1507
+ font-size: 12px;
1508
+ opacity: 0;
1509
+ transition: 0.2s ease;
1510
+ }
1511
+ .option-item .option-input .option-label .saved-note.show {
1512
+ opacity: 1;
1513
+ }
1514
+ .option-item .option-input .option-value {
1515
+ display: flex;
1516
+ justify-content: space-between;
1517
+ }
1518
+ .option-item .option-input .option-value .reset-button {
1519
+ color: white;
1520
+ cursor: pointer;
1521
+ }
1522
+ .option-item .option-args {
1523
+ display: flex;
1524
+ flex-flow: row wrap;
1525
+ }
1526
+ .option-item .option-args .option-arg {
1527
+ display: flex;
1528
+ align-items: center;
1529
+ justify-content: center;
1530
+ background-color: #455a7e;
1531
+ height: 16px;
1532
+ margin: 4px;
1533
+ font-size: 16px;
1534
+ padding: 4px 8px;
1535
+ border-radius: 16px;
1536
+ cursor: default;
1537
+ color: white;
1538
+ }
1539
+ .option-item .option-args .option-arg.required {
1540
+ background-color: #41772b;
1541
+ }
1542
+ .plugins-container {
1543
+ display: flex;
1544
+ align-items: stretch;
1545
+ }
1546
+ .plugins-list-container,
1547
+ .plugin-inspector-container {
1548
+ display: flex;
1549
+ flex-direction: column;
1550
+ flex: 1;
1551
+ position: relative;
1552
+ }
1553
+ .plugins-list-container {
1554
+ margin-right: 16px;
1555
+ }
1556
+ .plugins-list-container .input {
1557
+ max-width: 300px;
1558
+ margin-right: 8px;
1559
+ flex: 1;
1560
+ width: 100%;
1561
+ }
1562
+ .plugins-list {
1563
+ display: flex;
1564
+ flex-direction: column;
1565
+ flex: 1;
1566
+ position: relative;
1567
+ margin-top: 8px;
1568
+ }
1569
+ .plugins-list .plugin-item {
1570
+ background-color: #455a7e;
1571
+ margin-bottom: 8px;
1572
+ margin-right: 8px;
1573
+ display: flex;
1574
+ align-items: center;
1575
+ height: 48px;
1576
+ font-size: 20px;
1577
+ color: white;
1578
+ cursor: pointer;
1579
+ font-weight: bold;
1580
+ text-decoration: none;
1581
+ border-radius: 12px;
1582
+ }
1583
+ .plugins-list .plugin-item:hover,
1584
+ .plugins-list .plugin-item .router-link-active {
1585
+ background-color: #5e7190;
1586
+ }
1587
+ .plugins-list .plugin-item:active, .plugins-list .plugin-item.disabled {
1588
+ background-color: #263f61;
1589
+ }
1590
+ .plugins-list .plugin-item .tabler-icon {
1591
+ display: flex;
1592
+ align-items: center;
1593
+ justify-content: center;
1594
+ height: 32px;
1595
+ width: 32px;
1596
+ margin-left: 8px;
1597
+ margin-right: 8px;
1598
+ border-radius: 8px;
1599
+ }
1600
+ .plugins-list .plugin-item .tabler-icon.running {
1601
+ background-color: #5da93d;
1602
+ }
1603
+ .plugins-list .plugin-item .tabler-icon.bugged {
1604
+ background-color: #ffa10b;
1605
+ }
1606
+ .plugins-list .plugin-item .tabler-icon.broken {
1607
+ background-color: #e02d2d;
1608
+ }
1609
+ .plugins-list .plugin-item .tabler-icon.disabled {
1610
+ background-color: #1b2f4a;
1611
+ }
1612
+ .plugin-inspector {
1613
+ display: flex;
1614
+ flex-direction: column;
1615
+ background-color: #263f61;
1616
+ flex: 1;
1617
+ position: relative;
1618
+ border-bottom-left-radius: 12px;
1619
+ border-bottom-right-radius: 12px;
1620
+ }
1621
+ .server-container {
1622
+ display: flex;
1623
+ align-items: stretch;
1624
+ flex-direction: column;
1625
+ }
1626
+ .server-container .navbar {
1627
+ margin-top: 8px;
1628
+ text-transform: uppercase;
1629
+ }
1630
+ .server-container .navbar .saved-note {
1631
+ color: #009bee;
1632
+ display: inline-flex;
1633
+ align-items: center;
1634
+ font-weight: normal;
1635
+ font-size: 12px;
1636
+ margin-left: 8px;
1637
+ opacity: 0;
1638
+ transition: 0.2s ease;
1639
+ }
1640
+ .server-container .navbar .saved-note.show {
1641
+ opacity: 1;
1642
+ }
1643
+ .server-container .inputs-list {
1644
+ border-bottom-left-radius: 12px;
1645
+ border-bottom-right-radius: 12px;
1646
+ overflow: hidden;
1647
+ }
1648
+ .buttons {
1649
+ flex-direction: row;
1650
+ display: flex;
1651
+ margin-top: 8px;
1652
+ }
1653
+ .world-view,
1654
+ .world-info {
1655
+ display: flex;
1656
+ flex-direction: column;
1657
+ flex: 1;
1658
+ position: relative;
1659
+ }
1660
+ .world-view .scroll-scroller,
1661
+ .world-info .scroll-scroller {
1662
+ background-color: #1b2f4a;
1663
+ }
1664
+ .world-info .section-header {
1665
+ display: flex;
1666
+ align-items: center;
1667
+ justify-content: center;
1668
+ color: white;
1669
+ height: 32px;
1670
+ font-size: 24px;
1671
+ text-shadow: none;
1672
+ font-weight: bold;
1673
+ text-align: center;
1674
+ background-color: #091021;
1675
+ top: 0;
1676
+ position: sticky;
1677
+ text-transform: uppercase;
1678
+ }
1679
+ .revision-item {
1680
+ background-color: #131d30;
1681
+ font-size: 20px;
1682
+ min-height: 60px;
1683
+ overflow: visible;
1684
+ white-space: nowrap;
1685
+ display: flex;
1686
+ align-items: center;
1687
+ font-weight: bold;
1688
+ color: #a7bbce;
1689
+ }
1690
+ .revision-item:nth-child(even) {
1691
+ background-color: #111a2b;
1692
+ }
1693
+ .revision-item .revision-note {
1694
+ color: #ffffff;
1695
+ flex: 1;
1696
+ }
1697
+ .revision-item .revision-index {
1698
+ width: 40px;
1699
+ margin-left: 8px;
1700
+ margin-right: 16px;
1701
+ text-align: right;
1702
+ color: #009bee;
1703
+ }
1704
+ .revision-item .revision-date {
1705
+ color: #a7bbce;
1706
+ font-size: 12px;
1707
+ }
1708
+ .revision-item .button {
1709
+ margin-right: 16px;
1710
+ }
1711
+ .worlds.widgets-container .widgets-list .button {
1712
+ border-radius: 0;
1713
+ margin-right: 0;
1714
+ }
1715
+ .worlds.widgets-container .widgets-list .button:first-child {
1716
+ border-top-left-radius: 12px;
1717
+ border-top-right-radius: 12px;
1718
+ }
1719
+ .worlds.widgets-container .widgets-list .button:last-child {
1720
+ border-bottom-left-radius: 12px;
1721
+ border-bottom-right-radius: 12px;
1722
+ }
1723
+ .worlds-container {
1724
+ display: flex;
1725
+ align-items: stretch;
1726
+ }
1727
+ .worlds-list-container,
1728
+ .world-inspector-container {
1729
+ display: flex;
1730
+ flex-direction: column;
1731
+ flex: 1;
1732
+ position: relative;
1733
+ }
1734
+ .worlds-list-container {
1735
+ margin-right: 16px;
1736
+ }
1737
+ .worlds-list-container .input {
1738
+ max-width: 300px;
1739
+ margin-right: 8px;
1740
+ flex: 1;
1741
+ width: 100%;
1742
+ }
1743
+ .worlds-list {
1744
+ display: flex;
1745
+ flex-direction: column;
1746
+ flex: 1;
1747
+ position: relative;
1748
+ margin-top: 8px;
1749
+ }
1750
+ .worlds-list .world-item {
1751
+ background-color: #455a7e;
1752
+ margin-bottom: 8px;
1753
+ margin-right: 8px;
1754
+ display: flex;
1755
+ align-items: center;
1756
+ height: 48px;
1757
+ font-size: 20px;
1758
+ color: white;
1759
+ cursor: pointer;
1760
+ font-weight: bold;
1761
+ text-decoration: none;
1762
+ border-radius: 12px;
1763
+ }
1764
+ .worlds-list .world-item:hover,
1765
+ .worlds-list .world-item .router-link-active {
1766
+ background-color: #5e7190;
1767
+ }
1768
+ .worlds-list .world-item:active, .worlds-list .world-item.disabled {
1769
+ background-color: #263f61;
1770
+ }
1771
+ .worlds-list .world-item .tabler-icon {
1772
+ display: flex;
1773
+ align-items: center;
1774
+ justify-content: center;
1775
+ height: 32px;
1776
+ width: 32px;
1777
+ margin-left: 8px;
1778
+ margin-right: 8px;
1779
+ border-radius: 8px;
1780
+ }
1781
+ .worlds-list .world-item .tabler-icon.running {
1782
+ background-color: #5da93d;
1783
+ }
1784
+ .worlds-list .world-item .tabler-icon.bugged {
1785
+ background-color: #ffa10b;
1786
+ }
1787
+ .worlds-list .world-item .tabler-icon.broken {
1788
+ background-color: #e02d2d;
1789
+ }
1790
+ .worlds-list .world-item .tabler-icon.disabled {
1791
+ background-color: #1b2f4a;
1792
+ }
1793
+ .world-inspector {
1794
+ display: flex;
1795
+ flex-direction: column;
1796
+ background-color: #263f61;
1797
+ flex: 1;
1798
+ position: relative;
1799
+ border-bottom-left-radius: 12px;
1800
+ border-bottom-right-radius: 12px;
1801
+ }
1802
+ .chat-widget {
1803
+ display: flex;
1804
+ flex: 1;
1805
+ flex-direction: column;
1806
+ position: relative;
1807
+ align-items: stretch;
1808
+ max-width: 100%;
1809
+ }
1810
+ .chat-widget .messages {
1811
+ flex: 1;
1812
+ position: relative;
1813
+ font-family: "Roboto";
1814
+ }
1815
+ .chat-widget .messages .messages-child {
1816
+ display: flex;
1817
+ flex-direction: column;
1818
+ margin: 8px;
1819
+ }
1820
+ .chat-widget .input {
1821
+ flex: 1;
1822
+ width: calc(100% - 24px - 20px);
1823
+ }
1824
+ .status-widget {
1825
+ display: flex;
1826
+ flex-direction: column;
1827
+ align-items: stretch;
1828
+ flex: 1;
1829
+ position: relative;
1830
+ max-width: 100%;
1831
+ min-width: 200px;
1832
+ background-color: #131d30;
1833
+ }
1834
+ .status-widget .players .players-child {
1835
+ display: flex;
1836
+ flex-direction: column;
1837
+ }
1838
+ </style>
1839
+ <script type="importmap">{"imports":{"react":"./assets/shared/react-CR6vSpIu.js","react-dom":"./assets/shared/react-dom-BznoGTRX.js","react/jsx-runtime":"./assets/shared/react_jsx-runtime-C15Zu6_p.js","@nanostores/react":"./assets/shared/@nanostores_react-HTG3s0lp.js","nanostores":"./assets/shared/nanostores-BFqqIY_c.js","@utils":"./assets/shared/@utils-BQyGUOvP.js","@tabler/icons-react":"./assets/shared/@tabler_icons-react-DwfGvIVr.js","@hooks":"./assets/shared/@hooks-DfTzYBIL.js","wouter":"./assets/shared/wouter-DbmGxXTo.js","@components":"./assets/shared/@components-BiaBe0jO.js"}}</script>
1840
+ <script type="module" crossorigin src="/assets/app-CRu25Om6.js"></script>
1841
+ <link rel="modulepreload" crossorigin href="/assets/index-c0qeY2gs.js">
1842
+ <link rel="modulepreload" crossorigin href="/assets/index-DqHVrEeL.js">
1843
+ <link rel="modulepreload" crossorigin href="/assets/client-C5T7_OK9.js">
1844
+ <link rel="modulepreload" crossorigin href="/assets/jsx-runtime-Bw5QeaCk.js">
1845
+ <link rel="modulepreload" crossorigin href="/assets/jsx-runtime-DoEZbXM1.js">
1846
+ <link rel="modulepreload" crossorigin href="/assets/_commonjsHelpers-CE1G-McA.js">
1847
+ <link rel="modulepreload" crossorigin href="/assets/index-i4mjW0og.js">
1848
+ <link rel="modulepreload" crossorigin href="/assets/index-CJ4e7_2M.js">
1849
+ <link rel="modulepreload" crossorigin href="/assets/shared/@nanostores_react-HTG3s0lp.js">
1850
+ <link rel="modulepreload" crossorigin href="/assets/index-CSV4ZXsq.js">
1851
+ <link rel="modulepreload" crossorigin href="/assets/IconCheck-Dyq5qyY1.js">
1852
+ <link rel="modulepreload" crossorigin href="/assets/IconX-SYtbnYKI.js">
1853
+ <link rel="modulepreload" crossorigin href="/assets/index-DaWNRjkx.js">
1854
+ <link rel="modulepreload" crossorigin href="/assets/index-CRRRLlCc.js">
1855
+ <link rel="modulepreload" crossorigin href="/assets/IconWorld-DtARpBKX.js">
1856
+ <link rel="modulepreload" crossorigin href="/assets/shared/@utils-BQyGUOvP.js">
1857
+ <link rel="modulepreload" crossorigin href="/assets/index-CtY8r8rg.js">
1858
+ <link rel="modulepreload" crossorigin href="/assets/IconWorldPlus-CMeE6oOX.js">
1859
+ <link rel="modulepreload" crossorigin href="/assets/IconArrowRight-CA5_cccJ.js">
1860
+ <link rel="modulepreload" crossorigin href="/assets/shared/@hooks-DfTzYBIL.js">
1861
+ </head>
1862
+ <body>
1863
+ <div id="root"></div>
1864
+ </body>
1865
+ </html>