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