agentbox-app 0.1.7 → 0.1.12

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 (255) hide show
  1. package/README.md +220 -58
  2. package/bin/agentbox.mjs +18 -3
  3. package/briefs/message-rules.md +24 -3
  4. package/briefs/worker.md +63 -49
  5. package/briefs/writing-rules.md +90 -131
  6. package/main/account-discovery.mjs +21 -20
  7. package/main/account-tooling.mjs +11 -11
  8. package/main/agent-activity.mjs +45 -5
  9. package/main/agent-schedule.mjs +14 -14
  10. package/main/agent-sessions.mjs +94 -10
  11. package/main/agent-updates.mjs +116 -0
  12. package/main/agents.mjs +52 -46
  13. package/main/analytics.mjs +27 -0
  14. package/main/approval-prompt-server.mjs +2 -2
  15. package/main/approvals.mjs +14 -5
  16. package/main/artifact-path.mjs +11 -0
  17. package/main/claude-bin.mjs +32 -5
  18. package/main/claude-input.mjs +45 -3
  19. package/main/claude-plan.mjs +25 -13
  20. package/main/code-change.mjs +3 -3
  21. package/main/codex-account.mjs +1 -1
  22. package/main/codex-bin.mjs +18 -0
  23. package/main/codex-launch-env.mjs +31 -0
  24. package/main/codex-memory-gate.mjs +260 -0
  25. package/main/codex-models.mjs +12 -7
  26. package/main/codex-threads.mjs +46 -23
  27. package/main/codex-usage-file.mjs +7 -7
  28. package/main/codex-usage.mjs +4 -4
  29. package/main/codex-watch.mjs +12 -12
  30. package/main/config.mjs +82 -17
  31. package/main/demo.mjs +17 -14
  32. package/main/dev-window.mjs +9 -9
  33. package/main/doc-scheme.mjs +2 -0
  34. package/main/engine-setup.mjs +204 -0
  35. package/main/feedback.mjs +55 -0
  36. package/main/folder-pictures.mjs +48 -0
  37. package/main/frame-scrollbars.mjs +90 -0
  38. package/main/fresh-user.mjs +7 -4
  39. package/main/git-change-offthread.mjs +70 -0
  40. package/main/git-change-thread.mjs +11 -0
  41. package/main/git-change.mjs +9 -3
  42. package/main/img-scheme.mjs +70 -1
  43. package/main/instruction-settings.mjs +134 -60
  44. package/main/ipc.mjs +335 -42
  45. package/main/leftovers.mjs +518 -0
  46. package/main/live-replies.mjs +43 -5
  47. package/main/machine.mjs +48 -1
  48. package/main/main.mjs +138 -15
  49. package/main/memory-gate-history.mjs +254 -0
  50. package/main/memory-gate-server.mjs +461 -0
  51. package/main/memory-gate.mjs +206 -0
  52. package/main/message-priority.mjs +87 -0
  53. package/main/notify.mjs +1 -1
  54. package/main/rail-note.mjs +2 -2
  55. package/main/refresh-agent-models.mjs +21 -0
  56. package/main/repeats.mjs +4 -4
  57. package/main/row-label.mjs +115 -51
  58. package/main/runs-on.mjs +93 -0
  59. package/main/serve.mjs +77 -5
  60. package/main/settings.mjs +245 -26
  61. package/main/ship-queue.mjs +279 -0
  62. package/main/sign-in-files.mjs +39 -0
  63. package/main/source-updater.mjs +298 -0
  64. package/main/store/home.mjs +84 -7
  65. package/main/store/project.mjs +15 -19
  66. package/main/store/work-items.mjs +150 -6
  67. package/main/store.mjs +245 -13
  68. package/main/supervisor.mjs +1634 -417
  69. package/main/task-commands.mjs +8 -10
  70. package/main/task-folders.mjs +94 -16
  71. package/main/task-remote-control.mjs +3 -3
  72. package/main/task-terminals.mjs +14 -2
  73. package/main/team/index.mjs +440 -0
  74. package/main/team/memory-cloud.mjs +247 -0
  75. package/main/team/projects.mjs +162 -0
  76. package/main/team/session.mjs +225 -0
  77. package/main/team/sign-in.mjs +106 -0
  78. package/main/team/supabase-backend.mjs +231 -0
  79. package/main/team/sync.mjs +163 -0
  80. package/main/updater.mjs +15 -5
  81. package/main/write-before-reload.mjs +50 -0
  82. package/mcp/core/page.mjs +10 -12
  83. package/mcp/core/work.mjs +123 -26
  84. package/mcp/tools.mjs +13 -6
  85. package/package.json +21 -9
  86. package/renderer/dist/assets/agentbox-icon-F1oN9nj_.svg +15 -0
  87. package/renderer/dist/assets/index-ChKsQkRw.js +1169 -0
  88. package/renderer/dist/assets/index-ClBXnq3B.css +32 -0
  89. package/renderer/dist/index.html +2 -2
  90. package/scripts/after-install.mjs +14 -0
  91. package/scripts/approval-server.sh +7 -2
  92. package/scripts/memory-gate-hook.sh +59 -0
  93. package/shared/agent-import.mjs +39 -16
  94. package/shared/agents.d.mts +26 -8
  95. package/shared/agents.mjs +100 -108
  96. package/shared/analytics-events.mjs +19 -2
  97. package/shared/answers.mjs +12 -0
  98. package/shared/bridge-map.d.mts +12 -0
  99. package/shared/bridge-map.mjs +38 -1
  100. package/shared/claude-commands.generated.mjs +2 -2
  101. package/shared/claude-models.generated.mjs +6 -6
  102. package/shared/claude-usage.mjs +6 -6
  103. package/shared/codex-import.mjs +7 -7
  104. package/shared/codex-modes.d.mts +50 -0
  105. package/shared/codex-modes.mjs +1 -1
  106. package/shared/codex-usage.mjs +7 -8
  107. package/shared/demo-world.mjs +6 -6
  108. package/shared/engines.mjs +27 -10
  109. package/shared/feedback.d.mts +14 -0
  110. package/shared/feedback.mjs +44 -0
  111. package/shared/first-run-examples.mjs +4 -4
  112. package/shared/first-run-practice.d.mts +16 -0
  113. package/shared/first-run-practice.mjs +176 -70
  114. package/shared/fresh-user-home.mjs +34 -4
  115. package/shared/instruction-defaults.json +2 -2
  116. package/shared/product-name.mjs +4 -2
  117. package/shared/project-folder-check.mjs +9 -3
  118. package/shared/rank.d.mts +1 -0
  119. package/shared/rank.mjs +22 -0
  120. package/shared/referenced-files.mjs +1 -1
  121. package/shared/runs-on.d.mts +20 -0
  122. package/shared/runs-on.mjs +79 -0
  123. package/shared/schemes.d.mts +11 -0
  124. package/shared/schemes.mjs +1 -1
  125. package/shared/shortcuts.d.mts +41 -0
  126. package/shared/shortcuts.mjs +236 -0
  127. package/shared/spawn-trouble.d.mts +2 -0
  128. package/shared/spawn-trouble.mjs +40 -19
  129. package/shared/team-rules.d.mts +17 -0
  130. package/shared/team-rules.mjs +230 -0
  131. package/shared/team-status.d.mts +11 -0
  132. package/shared/team-status.mjs +90 -0
  133. package/shared/terminal-links.d.mts +2 -0
  134. package/shared/terminal-links.mjs +55 -0
  135. package/shared/terminal-state.d.mts +1 -0
  136. package/shared/terminal-state.mjs +16 -0
  137. package/shared/thread-cards.d.mts +19 -0
  138. package/shared/thread-cards.mjs +254 -0
  139. package/shared/usage.d.mts +1 -1
  140. package/shared/usage.mjs +6 -7
  141. package/shared/work-items.mjs +258 -28
  142. package/shared/work-lines.mjs +393 -16
  143. package/worker-permissions.json +1 -1
  144. package/renderer/dist/assets/cel-dusk-CS5I7kJS.webp +0 -0
  145. package/renderer/dist/assets/cel-dusk-DUslqS6B.webp +0 -0
  146. package/renderer/dist/assets/cel-dusk-Jt_xVGxp.webp +0 -0
  147. package/renderer/dist/assets/cel-dusk-sm-BBkV-tWT.webp +0 -0
  148. package/renderer/dist/assets/frost-haze-CxPSOBEg.webp +0 -0
  149. package/renderer/dist/assets/frost-haze-sm-C_w21qgd.webp +0 -0
  150. package/renderer/dist/assets/ice-BC8luINc.webp +0 -0
  151. package/renderer/dist/assets/ice-CP9PrKHo.webp +0 -0
  152. package/renderer/dist/assets/ice-river-D6ziOhLY.webp +0 -0
  153. package/renderer/dist/assets/ice-river-UVM2-JY_.webp +0 -0
  154. package/renderer/dist/assets/ice-river-bErJwYWW.webp +0 -0
  155. package/renderer/dist/assets/ice-river-sm-Bg1U-SIj.webp +0 -0
  156. package/renderer/dist/assets/ice-sm-CbVcg3_D.webp +0 -0
  157. package/renderer/dist/assets/index-B7hhfHrT.js +0 -684
  158. package/renderer/dist/assets/index-CwiDv5bL.css +0 -32
  159. package/renderer/dist/assets/lake-C0WaW-6E.webp +0 -0
  160. package/renderer/dist/assets/lake-CSKjLC5K.webp +0 -0
  161. package/renderer/dist/assets/lake-ETGcOb25.webp +0 -0
  162. package/renderer/dist/assets/lake-harbour-BCQRbrHb.webp +0 -0
  163. package/renderer/dist/assets/lake-harbour-B_wfXTmE.webp +0 -0
  164. package/renderer/dist/assets/lake-harbour-Te1pEvBh.webp +0 -0
  165. package/renderer/dist/assets/lake-harbour-sm-Cme_ShEg.webp +0 -0
  166. package/renderer/dist/assets/lake-sm-CbG72Hbv.webp +0 -0
  167. package/renderer/dist/assets/lino-coast-CUZHcucI.webp +0 -0
  168. package/renderer/dist/assets/lino-coast-DP4J7cgd.webp +0 -0
  169. package/renderer/dist/assets/lino-coast-kOIAffr_.webp +0 -0
  170. package/renderer/dist/assets/lino-coast-sm-C1Mdbgit.webp +0 -0
  171. package/renderer/dist/assets/moon-pines-BskgnnXR.webp +0 -0
  172. package/renderer/dist/assets/moon-pines-CFSIIwt0.webp +0 -0
  173. package/renderer/dist/assets/moon-pines-PNhdOYww.webp +0 -0
  174. package/renderer/dist/assets/moon-pines-sm-C6K1NomK.webp +0 -0
  175. package/renderer/dist/assets/orbit-rings-2XV36Ch3.webp +0 -0
  176. package/renderer/dist/assets/orbit-rings-C4NrcYGQ.webp +0 -0
  177. package/renderer/dist/assets/orbit-rings-DGLk07dT.webp +0 -0
  178. package/renderer/dist/assets/orbit-rings-sm-Dky3YdvL.webp +0 -0
  179. package/renderer/dist/assets/peach-haze-2-C6f7xnWw.webp +0 -0
  180. package/renderer/dist/assets/peach-haze-2-sm-Dj_Ez_Sb.webp +0 -0
  181. package/renderer/dist/assets/pixel-harbour-DQjqMROg.webp +0 -0
  182. package/renderer/dist/assets/pixel-harbour-Dw71H_bc.webp +0 -0
  183. package/renderer/dist/assets/pixel-harbour-kOZfm-GM.webp +0 -0
  184. package/renderer/dist/assets/pixel-harbour-sm-Dturjuky.webp +0 -0
  185. package/renderer/dist/assets/pixel-orbit-C296JVMO.webp +0 -0
  186. package/renderer/dist/assets/pixel-orbit-C4oMRDSx.webp +0 -0
  187. package/renderer/dist/assets/pixel-orbit-CqVmQ4eh.webp +0 -0
  188. package/renderer/dist/assets/pixel-orbit-sm-CHagC_nO.webp +0 -0
  189. package/renderer/dist/assets/pixel-ridge-C6LYu6uE.webp +0 -0
  190. package/renderer/dist/assets/pixel-ridge-CIUCEESs.webp +0 -0
  191. package/renderer/dist/assets/pixel-ridge-sm-BnE0F_w-.webp +0 -0
  192. package/renderer/dist/assets/riso-hills-7heKVtry.webp +0 -0
  193. package/renderer/dist/assets/riso-hills-CIjAL3J6.webp +0 -0
  194. package/renderer/dist/assets/riso-hills-sm-DHsnbCfP.webp +0 -0
  195. package/renderer/dist/assets/slate-haze-BPWdkNsw.webp +0 -0
  196. package/renderer/dist/assets/slate-haze-sm-B0Cb5a2W.webp +0 -0
  197. package/renderer/dist/assets/valley-haze-BDHPqoJy.webp +0 -0
  198. package/renderer/dist/assets/valley-haze-sm-CTyjmPAG.webp +0 -0
  199. package/renderer/dist/assets/vector-dunes-DzzWLdKo.webp +0 -0
  200. package/renderer/dist/assets/vector-dunes-Yr9NBQUy.webp +0 -0
  201. package/renderer/dist/assets/vector-dunes-sm-D8MYY6ms.webp +0 -0
  202. package/renderer/dist/assets/watercolour-mist-BCGKN4u4.webp +0 -0
  203. package/renderer/dist/assets/watercolour-mist-BF-jk5MC.webp +0 -0
  204. package/renderer/dist/assets/watercolour-mist-sm-Ds1xzTw9.webp +0 -0
  205. package/renderer/dist/assets/woodblock-sea-B1um67Z9.webp +0 -0
  206. package/renderer/dist/assets/woodblock-sea-DKQdYs32.webp +0 -0
  207. package/renderer/dist/assets/woodblock-sea-sm-BJzNq8xh.webp +0 -0
  208. package/renderer/dist/emulator/audio-rules.mjs +0 -74
  209. package/renderer/dist/emulator/data/compression/README.md +0 -11
  210. package/renderer/dist/emulator/data/compression/extract7z.js +0 -1
  211. package/renderer/dist/emulator/data/compression/extractzip.js +0 -1
  212. package/renderer/dist/emulator/data/compression/libunrar.js +0 -519
  213. package/renderer/dist/emulator/data/compression/libunrar.wasm +0 -0
  214. package/renderer/dist/emulator/data/cores/README.md +0 -22
  215. package/renderer/dist/emulator/data/cores/mgba-legacy-wasm.data +0 -0
  216. package/renderer/dist/emulator/data/cores/mgba-thread-legacy-wasm.data +0 -0
  217. package/renderer/dist/emulator/data/cores/mgba-thread-wasm.data +0 -0
  218. package/renderer/dist/emulator/data/cores/mgba-wasm.data +0 -0
  219. package/renderer/dist/emulator/data/cores/package.json +0 -65
  220. package/renderer/dist/emulator/data/cores/reports/mgba.json +0 -1
  221. package/renderer/dist/emulator/data/emulator.css +0 -1614
  222. package/renderer/dist/emulator/data/loader.js +0 -170
  223. package/renderer/dist/emulator/data/localization/README.md +0 -63
  224. package/renderer/dist/emulator/data/localization/af-FR.json +0 -339
  225. package/renderer/dist/emulator/data/localization/ar-AR.json +0 -301
  226. package/renderer/dist/emulator/data/localization/ben-BEN.json +0 -301
  227. package/renderer/dist/emulator/data/localization/de-GER.json +0 -301
  228. package/renderer/dist/emulator/data/localization/el-GR.json +0 -301
  229. package/renderer/dist/emulator/data/localization/en-US.json +0 -339
  230. package/renderer/dist/emulator/data/localization/es-ES.json +0 -310
  231. package/renderer/dist/emulator/data/localization/fa-AF.json +0 -310
  232. package/renderer/dist/emulator/data/localization/hi-HI.json +0 -301
  233. package/renderer/dist/emulator/data/localization/it-IT.json +0 -302
  234. package/renderer/dist/emulator/data/localization/ja-JA.json +0 -301
  235. package/renderer/dist/emulator/data/localization/jv-JV.json +0 -301
  236. package/renderer/dist/emulator/data/localization/ko-KO.json +0 -336
  237. package/renderer/dist/emulator/data/localization/pt-BR.json +0 -361
  238. package/renderer/dist/emulator/data/localization/retroarch.json +0 -617
  239. package/renderer/dist/emulator/data/localization/ro-RO.json +0 -310
  240. package/renderer/dist/emulator/data/localization/ru-RU.json +0 -301
  241. package/renderer/dist/emulator/data/localization/tr-TR.json +0 -310
  242. package/renderer/dist/emulator/data/localization/vi-VN.json +0 -302
  243. package/renderer/dist/emulator/data/localization/zh-CN.json +0 -351
  244. package/renderer/dist/emulator/data/src/GameManager.js +0 -464
  245. package/renderer/dist/emulator/data/src/compression.js +0 -142
  246. package/renderer/dist/emulator/data/src/emulator.js +0 -6158
  247. package/renderer/dist/emulator/data/src/gamepad.js +0 -167
  248. package/renderer/dist/emulator/data/src/nipplejs.js +0 -1
  249. package/renderer/dist/emulator/data/src/shaders.js +0 -236
  250. package/renderer/dist/emulator/data/src/socket.io.min.js +0 -7
  251. package/renderer/dist/emulator/data/src/storage.js +0 -125
  252. package/renderer/dist/emulator/data/version.json +0 -5
  253. package/renderer/dist/emulator/host.js +0 -299
  254. package/renderer/dist/emulator/index.html +0 -28
  255. package/renderer/dist/emulator/provenance.json +0 -6
@@ -1,1614 +0,0 @@
1
- .ejs_parent {
2
- background: #000;
3
- overflow: hidden;
4
- position: relative;
5
- font-family: Avenir, "Avenir Next", "Helvetica Neue", "Segoe UI", Helvetica, Arial, sans-serif;
6
- -webkit-user-select: none;
7
- -moz-user-select: none;
8
- -ms-user-select: none;
9
- user-select: none;
10
- font-weight: 500;
11
- line-height: 1.7;
12
- width: 100%;
13
- height: 100%;
14
- color: #bcbcbc;
15
- outline-width: 0;
16
- outline: none;
17
- font-size: 14px;
18
- }
19
-
20
- .ejs_parent *,
21
- .ejs_parent *::after,
22
- .ejs_parent *::before {
23
- font-family: Avenir, "Avenir Next", "Helvetica Neue", "Segoe UI", Helvetica, Arial, sans-serif;
24
- box-sizing: border-box;
25
-
26
- -webkit-user-select: none;
27
- -moz-user-select: none;
28
- -ms-user-select: none;
29
- user-select: none;
30
- }
31
-
32
- .ejs_parent ::-webkit-scrollbar {
33
- width: 8px;
34
- height: 16px;
35
- }
36
-
37
- .ejs_parent ::-webkit-scrollbar-thumb {
38
- border-radius: 10px;
39
- background: rgba(var(--ejs-primary-color));
40
- }
41
-
42
- .ejs_parent ::-webkit-scrollbar-track {
43
- border-radius: 10px;
44
- background: rgba(64, 64, 64, 0.5)
45
- }
46
-
47
- .ejs_ad_iframe {
48
- position: absolute;
49
- left: 50%;
50
- top: 50%;
51
- z-index: 1;
52
- transform: translate(-50%, -50%);
53
- }
54
-
55
- .ejs_ad_close {
56
- cursor: pointer;
57
- }
58
-
59
- .ejs_ad_close:after {
60
- content: "";
61
- position: absolute;
62
- border-left: 20px solid transparent;
63
- border-right: 20px solid #a7a7a77d;
64
- border-top: 20px solid #a7a7a77d;
65
- border-bottom: 20px solid transparent;
66
- right: 0;
67
- }
68
-
69
- .ejs_ad_close a {
70
- right: 4px;
71
- top: 4px;
72
- position: absolute;
73
- border: 0;
74
- padding: 0;
75
- width: 15px;
76
- height: 15px;
77
- z-index: 99;
78
- }
79
-
80
- .ejs_ad_close a:before {
81
- content: "";
82
- border-bottom: 1px solid #fff;
83
- transform: rotate(45deg) translateY(-45%);
84
- width: 15px;
85
- height: 15px;
86
- display: block;
87
- position: absolute;
88
- top: 0;
89
- right: 0;
90
- }
91
-
92
- .ejs_ad_close a:after {
93
- content: "";
94
- border-bottom: 1px solid #fff;
95
- width: 15px;
96
- height: 15px;
97
- display: block;
98
- position: absolute;
99
- right: 0;
100
- background: transparent;
101
- top: 0;
102
- transform: rotate(-45deg) translateY(-50%) translateX(0);
103
- }
104
-
105
- .ejs_game {
106
- width: inherit;
107
- height: inherit;
108
- background-color: var(--ejs-background-color);
109
- cursor: default;
110
- position: relative;
111
- overflow: hidden;
112
- }
113
-
114
- .ejs_game_background {
115
- background-image: var(--ejs-background-image);
116
- background-size: contain;
117
- background-position: center center;
118
- background-repeat: no-repeat;
119
- text-align: -webkit-auto;
120
- }
121
-
122
- .ejs_game_background_blur:before,
123
- .ejs_game_background_blur:after {
124
- content: "";
125
- position: absolute;
126
- width: 100%;
127
- height: 100%;
128
- background: var(--ejs-background-image);
129
- background-repeat: no-repeat;
130
- background-position: center;
131
- background-size: contain;
132
- }
133
-
134
- .ejs_game_background_blur:before {
135
- background-size: cover;
136
- filter: blur(10px);
137
- transform: scale(1.1);
138
- }
139
-
140
- .ejs_start_button {
141
- position: absolute;
142
- bottom: 65px;
143
- left: 50%;
144
- transform: translateX(-50%);
145
- cursor: pointer;
146
- box-sizing: inherit;
147
- display: flex;
148
- justify-content: center;
149
- text-shadow: 0 1px 1px rgba(0, 0, 0, 0.5);
150
- font-size: 20px;
151
- line-height: 45px;
152
- text-transform: uppercase;
153
- font-weight: bolder;
154
- position: relative;
155
- text-decoration: none;
156
- width: fit-content;
157
- padding-left: 40px;
158
- padding-right: 40px;
159
- white-space: nowrap;
160
- height: 45px;
161
- border: 0;
162
- color: #fff !important;
163
- border-radius: 35px;
164
- text-align: center;
165
- background-color: rgba(var(--ejs-primary-color), 1);
166
- box-shadow: 0 0 0 0 #222, 0 0px 0px 0 #111, inset 0 0px 0px 0 rgba(250, 250, 250, 0.2), inset 0 0px 0px 0px rgba(0, 0, 0, 0.5);
167
- }
168
-
169
- .ejs_start_button_border {
170
- border: 0.5px solid #333;
171
- }
172
-
173
- .ejs_start_button:active,
174
- .ejs_start_button:hover {
175
- animation: ejs_start_button_pulse 2s infinite;
176
- }
177
-
178
- @keyframes ejs_start_button_pulse {
179
- 50% {
180
- box-shadow: 0 0 0 0 #222, 0 3px 7px 0 #111, inset 0 1px 1px 0 rgba(250, 250, 250, 0.2), inset 0 0px 15px 1px rgba(0, 0, 0, 0.5);
181
- }
182
-
183
- 0%,
184
- 100% {
185
- box-shadow: 0 0 0 0 #222, 0 0px 0px 0 #111, inset 0 0px 0px 0 rgba(250, 250, 250, 0.2), inset 0 0px 0px 0px rgba(0, 0, 0, 0.5);
186
- }
187
- }
188
-
189
- .ejs_loading_text {
190
- position: absolute;
191
- bottom: 20px;
192
- font-weight: 500;
193
- left: 50%;
194
- transform: translateX(-50%);
195
- box-sizing: inherit;
196
- font-size: 12px;
197
- color: #bcbcbc;
198
- text-align: center;
199
- text-shadow: 0 0 5px rgba(0, 0, 0, 0.5);
200
- }
201
-
202
- .ejs_loading_text_glow {
203
- background-color: rgba(0, 0, 0, 0.9);
204
- border-radius: 10px;
205
- padding: 1px 5px 1px 5px;
206
- box-shadow: 0 0 30px rgba(0, 0, 0, 0.9);
207
- }
208
-
209
- .ejs_error_text {
210
- bottom: 10%;
211
- color: #F82300;
212
- border-radius: 15px;
213
- padding: 1.5px 8px 1.5px 8px;
214
- font-weight: bold;
215
- background-color: rgba(0, 0, 0, 0.6);
216
- box-shadow: 0 0 5px rgba(0, 0, 0, 0.7);
217
- }
218
-
219
- .ejs_canvas {
220
- width: 100%;
221
- height: 100%;
222
- }
223
-
224
- .ejs_canvas_parent {
225
- width: 100%;
226
- height: 100%;
227
- }
228
-
229
- .ejs_context_menu {
230
- position: absolute;
231
- display: none;
232
- z-index: 9;
233
- background: rgba(16, 16, 16, 0.9);
234
- border-radius: 3px;
235
- font-size: 13px;
236
- min-width: 140px;
237
- padding: 8px;
238
- box-sizing: inherit;
239
- }
240
-
241
- .ejs_context_menu li {
242
- padding: 4px 11px;
243
- text-align: center;
244
- }
245
-
246
- .ejs_context_menu li a {
247
- color: #999;
248
- display: block;
249
- font-size: 13px;
250
- }
251
-
252
- .ejs_context_menu ul {
253
- color: #999;
254
- display: block;
255
- font-size: 13px;
256
- list-style: none;
257
- margin: 0;
258
- padding: 0;
259
- }
260
-
261
- .ejs_context_menu li:hover {
262
- background: rgba(var(--ejs-primary-color), 1);
263
- border-radius: 4px;
264
- box-shadow: 0 0 0 5px rgba(var(--ejs-primary-color), 0.5);
265
- outline: 0;
266
- }
267
-
268
- .ejs_context_menu li:hover a {
269
- color: #fff;
270
- }
271
-
272
- .ejs_context_menu_tab {
273
- text-align: center;
274
- width: 100%;
275
- padding: 10px;
276
- overflow-wrap: anywhere;
277
- }
278
-
279
- .ejs_list_selector {
280
- background: rgba(0, 0, 0, 0.5);
281
- border-radius: 3px;
282
- font-size: 13px;
283
- min-width: 140px;
284
- padding: 8px;
285
- box-sizing: inherit;
286
- width: 10%;
287
- max-width: 15%;
288
- top: 10%;
289
- left: 0px;
290
- height: 80%;
291
- overflow: auto;
292
- position: sticky;
293
- }
294
-
295
- .ejs_list_selector li {
296
- padding: 4px 11px;
297
- text-align: center;
298
- }
299
-
300
- .ejs_list_selector li a {
301
- color: #999;
302
- display: block;
303
- font-size: 13px;
304
- }
305
-
306
- .ejs_list_selector ul {
307
- color: #999 !important;
308
- display: block;
309
- font-size: 13px;
310
- list-style: none;
311
- margin: 0;
312
- padding: 0;
313
- }
314
-
315
- .ejs_list_selector li:hover {
316
- background: rgba(var(--ejs-primary-color), 1);
317
- border-radius: 4px;
318
- box-shadow: 0 0 0 5px rgba(var(--ejs-primary-color), 0.5);
319
- outline: 0;
320
- }
321
-
322
- .ejs_list_selector li:hover a {
323
- color: #fff !important;
324
- }
325
-
326
- .ejs_active_list_element {
327
- background: rgba(var(--ejs-primary-color), 1);
328
- border-radius: 4px;
329
- box-shadow: 0 0 0 5px rgba(var(--ejs-primary-color), 0.25);
330
- outline: 0;
331
- color: #fff !important;
332
- }
333
-
334
- .ejs_active_list_element a {
335
- color: #fff !important;
336
- }
337
-
338
- .ejs_svg_rotate {
339
- transform: rotate(90deg);
340
- }
341
-
342
- .ejs_small_screen .ejs_settings_parent::before {
343
- border: none;
344
- }
345
-
346
- .ejs_small_screen .ejs_settings_parent::after {
347
- border: none;
348
- }
349
-
350
- .ejs_small_screen .ejs_settings_center_right {
351
- right: -35%
352
- }
353
-
354
- .ejs_small_screen .ejs_settings_center_left {
355
- right: -135%
356
- }
357
-
358
- .ejs_small_screen .ejs_settings_center_right::after {
359
- right: 25%;
360
- }
361
-
362
- .ejs_small_screen .ejs_settings_center_left::after {
363
- left: 25%;
364
- }
365
-
366
- .ejs_small_screen .ejs_menu_bar {
367
- transition: opacity .4s ease-in-out, transform .4s ease-in-out;
368
- position: absolute;
369
- transform: translate(-50%, 0);
370
- width: 300px;
371
- max-height: 260px;
372
- display: flex;
373
- flex-wrap: wrap;
374
- align-items: flex-start;
375
- background: rgba(0, 0, 0, .9);
376
- padding: 10px;
377
- z-index: 9999;
378
- left: 50%;
379
- bottom: 0;
380
- color: #fff;
381
- }
382
-
383
- .ejs_small_screen .ejs_menu_bar_hidden {
384
- opacity: 0;
385
- pointer-events: none;
386
- transform: translate(-50%, 100%);
387
- }
388
-
389
- .ejs_small_screen .ejs_menu_button {
390
- width: 135px;
391
- margin: 0px;
392
- margin-left: 2px !important;
393
- margin-right: 0 !important;
394
- line-height: 1;
395
- background: 0 0;
396
- border: 0;
397
- border-radius: 3px;
398
- color: inherit;
399
- cursor: pointer;
400
- flex-shrink: 0;
401
- overflow: visible;
402
- padding: 7px;
403
- position: relative;
404
- transition: all .3s ease;
405
- }
406
-
407
- .ejs_small_screen .ejs_menu_button:hover {
408
- background: rgba(var(--ejs-primary-color), 1);
409
- color: #fff;
410
- box-shadow: none;
411
- }
412
-
413
- .ejs_small_screen .ejs_menu_button svg {
414
- float: left;
415
- transition: transform .3s ease;
416
- }
417
-
418
- .ejs_small_screen .ejs_menu_text {
419
- position: static;
420
- color: #fff;
421
- background: 0 0;
422
- opacity: 1;
423
- padding: 0;
424
- transform: scale(.8) !important;
425
- font-size: 12px;
426
- }
427
-
428
- .ejs_small_screen .ejs_menu_bar_spacer {
429
- display: none;
430
- }
431
-
432
- .ejs_small_screen .ejs_volume_parent span {
433
- display: none;
434
- }
435
-
436
- .ejs_small_screen .ejs_volume_parent button {
437
- width: 30px;
438
- }
439
-
440
- .ejs_big_screen .ejs_menu_bar_hidden {
441
- opacity: 0;
442
- pointer-events: none;
443
- transform: translateY(100%);
444
- }
445
-
446
- .ejs_big_screen .ejs_settings_parent {
447
- right: -3px;
448
- }
449
-
450
- /* .ejs_big_screen .ejs_settings_parent::after {
451
- right: 15px;
452
- } */
453
- .ejs_big_screen .ejs_settings_text {
454
- display: none;
455
- }
456
-
457
- .ejs_big_screen .ejs_disks_text {
458
- display: none;
459
- }
460
-
461
- .ejs_big_screen .ejs_menu_bar_spacer {
462
- flex: 1;
463
- }
464
-
465
- .ejs_big_screen .ejs_menu_button svg {
466
- transition: transform .3s ease;
467
- }
468
-
469
- .ejs_big_screen .ejs_menu_button {
470
- width: auto;
471
- margin: auto;
472
- font-family: Avenir, "Avenir Next", "Helvetica Neue", "Segoe UI", Helvetica, Arial, sans-serif;
473
- margin-right: 2px;
474
- touch-action: manipulation;
475
- background: transparent;
476
- border: 0;
477
- border-radius: 3px;
478
- color: inherit;
479
- cursor: pointer;
480
- flex-shrink: 0;
481
- overflow: visible;
482
- padding: 7px;
483
- position: relative;
484
- transition: all .3s ease;
485
- }
486
-
487
- .ejs_big_screen .ejs_menu_button:hover {
488
- background: rgba(var(--ejs-primary-color), 1);
489
- color: #fff;
490
- box-shadow: none;
491
- }
492
-
493
- .ejs_big_screen .ejs_menu_button:hover .ejs_menu_text {
494
- transform: translate(0, 0) scale(1);
495
- opacity: 1;
496
- }
497
-
498
- .ejs_big_screen .ejs_menu_text_right {
499
- right: 0;
500
- left: auto !important;
501
- }
502
-
503
- .ejs_big_screen .ejs_menu_text {
504
- left: 0;
505
- background: rgba(255, 255, 255, 0.9);
506
- border-radius: 3px;
507
- bottom: 100%;
508
- box-shadow: 0 1px 2px rgba(0, 0, 0, 0.15);
509
- color: #4f5b5f;
510
- font-size: 14px;
511
- font-weight: 500;
512
- line-height: 1.3;
513
- margin-bottom: 10px;
514
- opacity: 0;
515
- padding: 5px 7.5px;
516
- pointer-events: none;
517
- position: absolute;
518
- transform: translate(0, 10px) scale(0.8);
519
- transform-origin: 0 100%;
520
- transition: transform .2s .1s ease, opacity .2s .1s ease;
521
- white-space: nowrap;
522
- z-index: 2;
523
- }
524
-
525
- .ejs_big_screen .ejs_menu_text::before {
526
- border-left: 4px solid transparent;
527
- border-right: 4px solid transparent;
528
- border-top: 4px solid rgba(255, 255, 255, 0.9);
529
- bottom: -4px;
530
- content: '';
531
- height: 0;
532
- left: 16px;
533
- position: absolute;
534
- transform: translateX(-50%);
535
- width: 0;
536
- z-index: 2;
537
- }
538
-
539
- .ejs_big_screen .ejs_menu_text_right::before {
540
- left: auto !important;
541
- right: 16px;
542
- transform: translateX(50%) !important;
543
- }
544
-
545
- .ejs_big_screen .ejs_menu_bar {
546
- padding: 15px 10px 10px;
547
- background: linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.7));
548
- border-bottom-left-radius: inherit;
549
- border-bottom-right-radius: inherit;
550
- bottom: 0;
551
- color: #fff;
552
- left: 0;
553
- position: absolute;
554
- right: 0;
555
- transition: opacity .4s ease-in-out, transform .4s ease-in-out;
556
- z-index: 9999;
557
- align-items: center;
558
- display: flex;
559
- justify-content: flex-start;
560
- text-align: center;
561
- }
562
-
563
- .ejs_menu_button.shadow {
564
- background: rgba(0, 0, 0, 0.7);
565
- box-shadow: 0 0 5px 1px rgba(0, 0, 0, 0.7);
566
- }
567
-
568
- .ejs_menu_bar svg {
569
- display: block;
570
- fill: currentColor;
571
- height: 18px;
572
- pointer-events: none;
573
- width: 18px;
574
- }
575
-
576
- .ejs_popup_container {
577
- background: rgba(0, 0, 0, 0.8);
578
- text-align: center;
579
- z-index: 9999;
580
- height: 100%;
581
- overflow: hidden;
582
- position: absolute;
583
- top: 0;
584
- width: 100%;
585
- color: #ccc;
586
- }
587
-
588
- .ejs_popup_container *,
589
- .ejs_popup_container *::after,
590
- .ejs_popup_container *::before {
591
- box-sizing: border-box;
592
- color: #bcbcbc;
593
-
594
- -webkit-user-select: none;
595
- -moz-user-select: none;
596
- -ms-user-select: none;
597
- user-select: none;
598
- }
599
-
600
- .ejs_popup_container h4 {
601
- color: #ccc;
602
- font-size: 24px;
603
- margin: 0;
604
- padding: 10px;
605
- }
606
-
607
- .ejs_button {
608
- border-radius: .25rem;
609
- font-size: .875rem;
610
- padding-left: 1rem;
611
- padding-right: 1rem;
612
- padding-top: .5rem;
613
- padding-bottom: .5rem;
614
- display: inline-block;
615
- background-color: rgba(var(--ejs-primary-color), 1);
616
- margin: 0 10px;
617
- color: #fff !important;
618
- touch-action: manipulation;
619
- cursor: pointer;
620
- }
621
-
622
- .ejs_popup_body {
623
- height: calc(100% - 130px);
624
- overflow: auto;
625
- }
626
-
627
- .ejs_control_body {
628
- color: #bcbcbc !important;
629
- border: unset;
630
- }
631
-
632
- .ejs_control_body input[type='text'] {
633
- background-color: #fff;
634
- border: 1px solid #000;
635
- font-size: 12px;
636
- font-weight: 700;
637
- color: #000 !important;
638
- }
639
-
640
- .ejs_control_player_bar {
641
- margin: 0;
642
- padding: 0;
643
- }
644
-
645
- .ejs_control_player_bar ul {
646
- list-style: none;
647
- }
648
-
649
- .ejs_control_player_bar li {
650
- color: #bcbcbc !important;
651
- display: inline-block;
652
- }
653
-
654
- .ejs_control_player_bar a {
655
- padding: 2px 5px;
656
- color: #bcbcbc !important;
657
- font-size: 14px;
658
- cursor: pointer;
659
- }
660
-
661
- .ejs_control_player_bar li:hover:not(.ejs_control_selected) {
662
- background-color: #333;
663
- border-bottom: 1px solid #333;
664
- }
665
-
666
- .ejs_control_selected {
667
- border-bottom: 1px solid #fff;
668
- background-color: #fff;
669
- }
670
-
671
- .ejs_control_selected a {
672
- color: #000 !important;
673
- }
674
-
675
- .ejs_control_bar:hover {
676
- background-color: #2d2d2d;
677
- }
678
-
679
- .ejs_control_set_button {
680
- float: none;
681
- padding: .1rem .5rem;
682
- background-color: rgba(var(--ejs-primary-color), 1);
683
- color: #fff !important;
684
- border-radius: .25rem;
685
- cursor: pointer;
686
- font-size: 14px;
687
- }
688
-
689
- .ejs_control_row label::before {
690
- top: -0.15rem !important;
691
- }
692
-
693
- .ejs_control_row label::after {
694
- top: calc(-0.15rem + 2px) !important;
695
- }
696
-
697
- .ejs_popup_box {
698
- position: absolute;
699
- width: 300px;
700
- top: 50%;
701
- margin-left: -150px;
702
- margin-top: -50px;
703
- left: 50%;
704
- background: rgba(0, 0, 0, 0.8) !important;
705
- padding: 15px 0;
706
- }
707
-
708
- .ejs_virtualGamepad_parent {
709
- width: 100%;
710
- position: absolute;
711
- bottom: 50px;
712
- }
713
-
714
- .ejs_virtualGamepad_top {
715
- position: absolute;
716
- bottom: 250px;
717
- width: 100%;
718
- }
719
-
720
- .ejs_virtualGamepad_bottom {
721
- position: absolute;
722
- bottom: 10px;
723
- height: 30px;
724
- width: 124px;
725
- left: 50%;
726
- margin-left: -62px;
727
- }
728
-
729
- .ejs_virtualGamepad_left {
730
- position: absolute;
731
- bottom: 50px;
732
- width: 125px;
733
- height: 125px;
734
- left: 10px;
735
- }
736
-
737
- .ejs_virtualGamepad_right {
738
- position: absolute;
739
- bottom: 50px;
740
- width: 130px;
741
- height: 130px;
742
- right: 10px;
743
- }
744
-
745
- .ejs_virtualGamepad_button {
746
- position: absolute;
747
- font-size: 20px;
748
- width: 50px;
749
- height: 50px;
750
- text-align: center;
751
- line-height: 50px;
752
- border: 1px solid #ccc;
753
- border-radius: 50%;
754
- font-size: 30px;
755
- font-weight: bold;
756
- background-color: rgba(255, 255, 255, 0.15);
757
- user-select: none;
758
- transition: all .2s;
759
- }
760
-
761
- .ejs_virtualGamepad_button_down {
762
- background-color: #000000ad;
763
- }
764
-
765
- .ejs_dpad_main {
766
- touch-action: none;
767
- position: absolute;
768
- top: 0;
769
- left: 0;
770
- width: 100%;
771
- height: 100%;
772
- opacity: .7;
773
- }
774
-
775
- .ejs_dpad_horizontal {
776
- width: 100%;
777
- height: 36px;
778
- transform: translate(0, -50%);
779
- position: absolute;
780
- left: 0;
781
- top: 50%;
782
- border-radius: 5px;
783
- overflow: hidden;
784
- }
785
-
786
- .ejs_dpad_horizontal:before {
787
- content: "";
788
- position: absolute;
789
- left: 0;
790
- top: 50%;
791
- z-index: 1;
792
- transform: translate(0, -50%);
793
- width: 0;
794
- height: 0;
795
- border: 8px solid;
796
- border-color: transparent #333 transparent transparent;
797
- }
798
-
799
- .ejs_dpad_horizontal:after {
800
- content: "";
801
- position: absolute;
802
- right: 0;
803
- top: 50%;
804
- z-index: 1;
805
- transform: translate(0, -50%);
806
- width: 0;
807
- height: 0;
808
- border: 8px solid;
809
- border-color: transparent transparent transparent #333;
810
- }
811
-
812
- .ejs_dpad_vertical {
813
- width: 36px;
814
- height: 100%;
815
- transform: translate(-50%, 0);
816
- position: absolute;
817
- left: 50%;
818
- border-radius: 5px;
819
- overflow: hidden;
820
- }
821
-
822
- .ejs_dpad_vertical:before {
823
- content: "";
824
- position: absolute;
825
- top: 0;
826
- left: 50%;
827
- z-index: 1;
828
- transform: translate(-50%, 0);
829
- width: 0;
830
- height: 0;
831
- border: 8px solid;
832
- border-color: transparent transparent #333 transparent;
833
- }
834
-
835
- .ejs_dpad_vertical:after {
836
- content: "";
837
- position: absolute;
838
- bottom: 0;
839
- left: 50%;
840
- z-index: 1;
841
- transform: translate(-50%, 0);
842
- width: 0;
843
- height: 0;
844
- border: 8px solid;
845
- border-color: #333 transparent transparent transparent;
846
- }
847
-
848
- .ejs_dpad_bar {
849
- position: absolute;
850
- width: 100%;
851
- height: 100%;
852
- background: #787878;
853
- }
854
-
855
- .ejs_dpad_left_pressed .ejs_dpad_horizontal:before {
856
- border-right-color: #fff;
857
- }
858
-
859
- .ejs_dpad_right_pressed .ejs_dpad_horizontal:after {
860
- border-left-color: #fff;
861
- }
862
-
863
- .ejs_dpad_up_pressed .ejs_dpad_vertical:before {
864
- border-bottom-color: #fff;
865
- }
866
-
867
- .ejs_dpad_down_pressed .ejs_dpad_vertical:after {
868
- border-top-color: #fff
869
- }
870
-
871
- @keyframes ejs_settings_parent_animation {
872
- 0% {
873
- opacity: 0.5;
874
- transform: translateY(10px)
875
- }
876
-
877
- to {
878
- opacity: 1;
879
- transform: translateY(0)
880
- }
881
- }
882
-
883
- .ejs_settings_parent {
884
- animation: ejs_settings_parent_animation .2s ease;
885
- background: rgba(29, 29, 29, 0.9);
886
- border-radius: 4px;
887
- border-width: 1px;
888
- border-style: solid;
889
- border-color: rgba(49, 49, 49, 0.9);
890
- bottom: 100%;
891
- box-shadow: 0 1px 2px rgba(0, 0, 0, 0.15);
892
- color: #4f5b5f;
893
- font-size: 16px;
894
- margin-bottom: 10px;
895
- position: absolute;
896
- text-align: left;
897
- white-space: nowrap;
898
- z-index: 9999;
899
- backdrop-filter: blur(8px);
900
- -webkit-backdrop-filter: blur(8px);
901
- }
902
-
903
- /* .ejs_settings_parent::after {
904
- border: 5px solid transparent;
905
- border-top-color: rgba(119, 119, 119, 0.9);
906
- content: '';
907
- height: 0;
908
- position: absolute;
909
- top: 100%;
910
- width: 0;
911
- } */
912
- .ejs_settings_parent::before,
913
- .ejs_settings_parent::after {
914
- position: absolute;
915
- right: 15px;
916
- width: 0;
917
- height: 0;
918
- content: '';
919
- border-left: 5px solid transparent;
920
- border-right: 5px solid transparent;
921
- border-top-width: 5px;
922
- border-top-style: solid;
923
- }
924
-
925
- .ejs_settings_parent::before {
926
- top: calc(100% + 1px);
927
- border-top-color: rgba(49, 49, 49, 0.9);
928
- }
929
-
930
- .ejs_settings_parent::after {
931
- top: 100%;
932
- border-top-color: rgba(29, 29, 29, 0.9);
933
- }
934
-
935
- .ejs_settings_transition {
936
- overflow: hidden;
937
- transition: height .35s cubic-bezier(0.4, 0, 0.2, 1), width .35s cubic-bezier(0.4, 0, 0.2, 1);
938
- }
939
-
940
- .ejs_settings_main_bar {
941
- align-items: center;
942
- color: #999;
943
- display: flex;
944
- font-size: 13px;
945
- padding: 4px 11px;
946
- user-select: none;
947
- width: 100%;
948
- padding-right: 28px;
949
- background: transparent;
950
- border: 0;
951
- border-radius: 3px;
952
- flex-shrink: 0;
953
- overflow: visible;
954
- position: relative;
955
- transition: all .3s ease;
956
- box-sizing: border-box;
957
- }
958
-
959
- .ejs_settings_main_bar::after {
960
- border: 4px solid transparent;
961
- content: '';
962
- position: absolute;
963
- top: 50%;
964
- transform: translateY(-50%);
965
- border-left-color: rgba(79, 91, 95, 0.8);
966
- right: 5px;
967
- }
968
-
969
- .ejs_settings_main_bar>span {
970
- align-items: inherit;
971
- display: flex;
972
- width: 100%;
973
- }
974
-
975
- .ejs_settings_main_bar:hover {
976
- background: rgba(var(--ejs-primary-color), 1);
977
- color: #fff;
978
- cursor: pointer;
979
- }
980
-
981
- .ejs_settings_main_bar:hover::after {
982
- border-left-color: currentColor;
983
- }
984
-
985
- .ejs_settings_main_bar_selected {
986
- align-items: center;
987
- display: flex;
988
- margin-left: auto;
989
- margin-right: -5px;
990
- overflow: hidden;
991
- padding-left: 25px;
992
- pointer-events: none;
993
- }
994
-
995
- .ejs_setting_menu {
996
- padding: 7px;
997
- overflow-x: hidden;
998
- overflow-y: auto;
999
- }
1000
-
1001
- .ejs_parent_option_div {
1002
- display: flex;
1003
- flex-direction: column;
1004
- max-height: inherit;
1005
- overflow: hidden;
1006
- }
1007
-
1008
- .ejs_back_button {
1009
- font-weight: 500;
1010
- margin: 7px;
1011
- margin-bottom: 3px;
1012
- padding-left: 28px;
1013
- position: relative;
1014
- width: calc(100% - 14px);
1015
- align-items: center;
1016
- color: #999;
1017
- display: flex;
1018
- font-size: 13px;
1019
- padding: 4px 11px;
1020
- user-select: none;
1021
-
1022
- background: transparent;
1023
- border: 0;
1024
- border-radius: 3px;
1025
- cursor: pointer;
1026
- flex-shrink: 0;
1027
- overflow: visible;
1028
- transition: all .3s ease;
1029
- }
1030
-
1031
- .ejs_back_button:hover {
1032
- background: rgba(var(--ejs-primary-color), 1);
1033
- color: #fff;
1034
- }
1035
-
1036
- .ejs_back_button:hover::after {
1037
- border-right-color: currentColor;
1038
- }
1039
-
1040
- .ejs_back_button::before {
1041
- background: #b7c5cd;
1042
- box-shadow: 0 1px 0 #fff;
1043
- content: '';
1044
- height: 1px;
1045
- left: 0;
1046
- margin-top: 4px;
1047
- overflow: hidden;
1048
- position: absolute;
1049
- right: 0;
1050
- top: 100%;
1051
- }
1052
-
1053
- .ejs_back_button::after {
1054
- border: 4px solid transparent;
1055
- border-right-color: rgba(79, 91, 95, 0.8);
1056
- left: 7px;
1057
- content: '';
1058
- position: absolute;
1059
- top: 50%;
1060
- transform: translateY(-50%);
1061
- }
1062
-
1063
- .ejs_menu_text_a {
1064
- align-items: center;
1065
- display: flex;
1066
- font-size: 13px;
1067
- padding: 4px 11px;
1068
- user-select: none;
1069
- width: 100%;
1070
- }
1071
-
1072
- .ejs_option_row {
1073
- padding-left: 7px;
1074
- }
1075
-
1076
- .ejs_option_row:hover::before {
1077
- background: rgba(0, 0, 0, 0.1);
1078
- }
1079
-
1080
- .ejs_option_row::before {
1081
- background: rgba(204, 204, 204, 0.1);
1082
- content: '';
1083
- display: block;
1084
- flex-shrink: 0;
1085
- height: 16px;
1086
- margin-right: 10px;
1087
- transition: all .3s ease;
1088
- width: 16px;
1089
- border-radius: 100%;
1090
- }
1091
-
1092
- .ejs_option_row::after {
1093
- background: #fff;
1094
- border: 0;
1095
- height: 6px;
1096
- left: 12px;
1097
- opacity: 0;
1098
- top: 50%;
1099
- transform: translateY(-50%) scale(0);
1100
- transition: transform .3s ease, opacity .3s ease;
1101
- width: 6px;
1102
- border-radius: 100%;
1103
- content: '';
1104
- position: absolute;
1105
- }
1106
-
1107
- .ejs_option_row_selected::before {
1108
- background: rgba(var(--ejs-primary-color), 1);
1109
- }
1110
-
1111
- .ejs_option_row_selected::after {
1112
- opacity: 1;
1113
- transform: translateY(-50%) scale(1);
1114
- }
1115
-
1116
- .ejs_option_row>span {
1117
- align-items: center;
1118
- display: flex;
1119
- width: 100%;
1120
- }
1121
-
1122
- .ejs_button_style {
1123
- margin: 0px;
1124
- background: transparent;
1125
- border: 0;
1126
- border-radius: 3px;
1127
- cursor: pointer;
1128
- flex-shrink: 0;
1129
- overflow: visible;
1130
- padding: 7px;
1131
- position: relative;
1132
- transition: all .3s ease;
1133
-
1134
- align-items: center;
1135
- color: #999;
1136
- display: flex;
1137
- font-size: 13px;
1138
- user-select: none;
1139
- width: 100%;
1140
- }
1141
-
1142
- .ejs_button_style:hover {
1143
- background: rgba(var(--ejs-primary-color), 1);
1144
- color: #fff;
1145
- }
1146
-
1147
- .ejs_cheat_heading {
1148
- margin-top: 0 !important;
1149
- margin-bottom: 0 !important;
1150
- font-weight: 600 !important;
1151
- font-size: 1.25rem;
1152
- line-height: 1.25 !important;
1153
- color: rgba(var(--ejs-primary-color), 1) !important;
1154
- }
1155
-
1156
- .ejs_cheat_close {
1157
- font: inherit;
1158
- line-height: inherit;
1159
- width: auto;
1160
- background: transparent;
1161
- border: 0;
1162
- color: #bcbcbc !important;
1163
- cursor: pointer;
1164
- }
1165
-
1166
- .ejs_cheat_close::before {
1167
- content: "\2715";
1168
- color: #bcbcbc !important;
1169
- font: inherit;
1170
- line-height: inherit;
1171
- width: auto;
1172
- }
1173
-
1174
- .ejs_cheat_header {
1175
- display: flex;
1176
- justify-content: space-between;
1177
- align-items: center;
1178
- }
1179
-
1180
- .ejs_cheat_main {
1181
- margin-top: 2rem;
1182
- margin-bottom: 2rem;
1183
- line-height: 1.5;
1184
- color: rgba(0, 0, 0, 0.8);
1185
- text-align: left;
1186
- color: #bcbcbc !important;
1187
- border: unset;
1188
- }
1189
-
1190
- .ejs_cheat_code {
1191
- color: #000 !important;
1192
- font-size: 1rem;
1193
- padding: .4rem;
1194
- max-width: 100%;
1195
- }
1196
-
1197
- @keyframes ejs_cheat_animation {
1198
- from {
1199
- transform: translateY(15%)
1200
- }
1201
-
1202
- to {
1203
- transform: translateY(0)
1204
- }
1205
- }
1206
-
1207
- .ejs_cheat_parent {
1208
- background-color: rgba(0, 0, 0, 0.8);
1209
- border: 1px solid rgba(238, 238, 238, 0.2);
1210
- padding: 30px;
1211
- min-width: 200px;
1212
- max-width: 500px;
1213
- max-height: 100vh;
1214
- border-radius: 4px;
1215
- overflow-y: auto;
1216
- box-sizing: border-box;
1217
- will-change: transform;
1218
- animation: ejs_cheat_animation .3s cubic-bezier(0, 0, 0.2, 1);
1219
- font-size: 14px;
1220
- }
1221
-
1222
- .ejs_popup_container_box {
1223
- position: absolute;
1224
- top: 0;
1225
- left: 0;
1226
- right: 0;
1227
- bottom: 0;
1228
- background: rgba(0, 0, 0, 0.6);
1229
- display: flex;
1230
- justify-content: center;
1231
- align-items: center;
1232
- }
1233
-
1234
- .ejs_popup_submit {
1235
- touch-action: manipulation;
1236
- font: inherit;
1237
- line-height: inherit;
1238
- width: auto;
1239
- }
1240
-
1241
- .ejs_button_button {
1242
- color: #fff !important;
1243
- padding-left: 1rem;
1244
- padding-right: 1rem;
1245
- padding-top: .5rem;
1246
- padding-bottom: .5rem;
1247
- background-color: #929292;
1248
- border-radius: .25rem;
1249
- border-style: none;
1250
- border-width: 0;
1251
- cursor: pointer;
1252
- -webkit-appearance: button;
1253
- appearance: button;
1254
- text-transform: none;
1255
- overflow: visible;
1256
- margin: 0;
1257
- will-change: transform;
1258
- transition: transform .25s ease-out, -webkit-transform .25s ease-out;
1259
- }
1260
-
1261
- .ejs_button_button:hover {
1262
- transform: scale(1.05);
1263
- }
1264
-
1265
- .ejs_cheat_rows {
1266
- max-width: 320px;
1267
- margin: 0 auto;
1268
- text-align: left;
1269
- width: 100%;
1270
- float: none;
1271
- user-select: text !important;
1272
- }
1273
-
1274
- .ejs_cheat_row {
1275
- padding-left: 2.25rem;
1276
- position: relative;
1277
- padding: .2em 0;
1278
- clear: both;
1279
- }
1280
-
1281
- .ejs_cheat_row:hover {
1282
- background-color: rgba(0, 0, 0, 0.8);
1283
- }
1284
-
1285
- .ejs_cheat_row input[type=checkbox] {
1286
- position: absolute;
1287
- z-index: -1;
1288
- opacity: 0;
1289
- box-sizing: border-box;
1290
- width: auto;
1291
- }
1292
-
1293
- .ejs_cheat_row label {
1294
- position: relative;
1295
- margin-bottom: 0;
1296
- vertical-align: top;
1297
- word-break: break-word;
1298
- }
1299
-
1300
- .ejs_cheat_row label::before {
1301
- position: absolute;
1302
- top: 0rem;
1303
- display: block;
1304
- height: 1rem;
1305
- content: "";
1306
- background-color: #fff;
1307
- border: #adb5bd solid 1px;
1308
- left: -2.25rem;
1309
- width: 1.75rem;
1310
- pointer-events: all;
1311
- border-radius: .5rem;
1312
- }
1313
-
1314
- .ejs_cheat_row input:checked+label::before {
1315
- color: #fff;
1316
- border-color: rgba(var(--ejs-primary-color), 1);
1317
- background-color: rgba(var(--ejs-primary-color), 1);
1318
- }
1319
-
1320
- .ejs_cheat_row label::after {
1321
- position: absolute;
1322
- display: block;
1323
- content: "";
1324
- background-repeat: no-repeat;
1325
- background-position: center center;
1326
- top: calc(0rem + 2px);
1327
- left: calc(-2.25rem + 2px);
1328
- width: calc(1rem - 4px);
1329
- height: calc(1rem - 4px);
1330
- background-color: #adb5bd;
1331
- border-radius: .5rem;
1332
- transition: transform .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out, -webkit-transform .15s ease-in-out;
1333
- }
1334
-
1335
- .ejs_cheat_row input:checked+label::after {
1336
- background-color: #fff;
1337
- -webkit-transform: translateX(0.75rem);
1338
- transform: translateX(0.75rem);
1339
- }
1340
-
1341
- .ejs_cheat_row_button {
1342
- position: absolute;
1343
- padding: .1rem .5rem;
1344
- background-color: rgba(var(--ejs-primary-color), 1);
1345
- color: #fff !important;
1346
- border-radius: .25rem;
1347
- cursor: pointer;
1348
- right: .025rem;
1349
- border: 0;
1350
- }
1351
-
1352
- .ejs_small_screen .ejs_volume_parent input[type='range'] {
1353
- width: 100%;
1354
- }
1355
-
1356
- .ejs_big_screen .ejs_volume_parent {
1357
- max-width: 110px;
1358
- }
1359
-
1360
- .ejs_volume_parent {
1361
- align-items: center;
1362
- display: flex;
1363
- flex: 1;
1364
- position: relative;
1365
- }
1366
-
1367
- .ejs_volume_parent {
1368
- padding-right: 15px;
1369
- }
1370
-
1371
- .ejs_volume_parent::-webkit-media-controls {
1372
- display: none;
1373
- }
1374
-
1375
- .ejs_volume_parent input[type='range'] {
1376
- display: block;
1377
- -webkit-appearance: none;
1378
- appearance: none;
1379
- border: 0;
1380
- border-radius: 28px;
1381
- color: rgba(var(--ejs-primary-color), 1);
1382
- margin: 0;
1383
- padding: 0;
1384
- transition: box-shadow 0.3s ease;
1385
- width: 100%;
1386
- background: white;
1387
- height: 6px;
1388
- }
1389
-
1390
- .ejs_volume_parent input[type='range']::-webkit-slider-runnable-track {
1391
- background-color: rgba(255, 255, 255, 0.25);
1392
- outline: 0;
1393
- background: transparent;
1394
- border: 0;
1395
- border-radius: 3px;
1396
- height: 6px;
1397
- transition: box-shadow 0.3s ease;
1398
- user-select: none;
1399
- background-image: linear-gradient(to right, currentColor var(--value, 0%), transparent var(--value, 0%))
1400
- }
1401
-
1402
- .ejs_volume_parent input[type='range']::-webkit-slider-thumb {
1403
- background: #fff;
1404
- border: 0;
1405
- border-radius: 100%;
1406
- box-shadow: 0 1px 1px rgba(0, 0, 0, 0.15), 0 0 0 1px rgba(47, 52, 61, 0.2);
1407
- height: 14px;
1408
- position: relative;
1409
- transition: all 0.2s ease;
1410
- width: 14px;
1411
- -webkit-appearance: none;
1412
- margin-top: -4px
1413
- }
1414
-
1415
- .ejs_volume_parent input[type='range']::-moz-range-track {
1416
- background-color: rgba(255, 255, 255, 0.25);
1417
- outline: 0;
1418
- background: transparent;
1419
- border: 0;
1420
- border-radius: 3px;
1421
- height: 6px;
1422
- transition: box-shadow 0.3s ease;
1423
- user-select: none
1424
- }
1425
-
1426
- .ejs_volume_parent input[type='range']::-moz-range-thumb {
1427
- background: #fff;
1428
- border: 0;
1429
- border-radius: 100%;
1430
- box-shadow: 0 1px 1px rgba(0, 0, 0, 0.15), 0 0 0 1px rgba(47, 52, 61, 0.2);
1431
- height: 14px;
1432
- position: relative;
1433
- transition: all 0.2s ease;
1434
- width: 14px
1435
- }
1436
-
1437
- .ejs_volume_parent input[type='range']::-moz-range-progress {
1438
- background: currentColor;
1439
- border-radius: 3px;
1440
- height: 6px
1441
- }
1442
-
1443
- .ejs_volume_parent input[type='range']::-ms-track {
1444
- background-color: rgba(255, 255, 255, 0.25);
1445
- outline: 0;
1446
- background: transparent;
1447
- border: 0;
1448
- border-radius: 3px;
1449
- height: 6px;
1450
- transition: box-shadow 0.3s ease;
1451
- user-select: none;
1452
- color: transparent
1453
- }
1454
-
1455
- .ejs_volume_parent input[type='range']::-ms-fill-upper {
1456
- background: transparent;
1457
- border: 0;
1458
- border-radius: 3px;
1459
- height: 6px;
1460
- transition: box-shadow 0.3s ease;
1461
- user-select: none
1462
- }
1463
-
1464
- .ejs_volume_parent input[type='range']::-ms-fill-lower {
1465
- background: transparent;
1466
- border: 0;
1467
- border-radius: 3px;
1468
- height: 6px;
1469
- transition: box-shadow 0.3s ease;
1470
- user-select: none;
1471
- background: currentColor
1472
- }
1473
-
1474
- .ejs_volume_parent input[type='range']::-ms-thumb {
1475
- background: #fff;
1476
- border: 0;
1477
- border-radius: 100%;
1478
- box-shadow: 0 1px 1px rgba(0, 0, 0, 0.15), 0 0 0 1px rgba(47, 52, 61, 0.2);
1479
- height: 14px;
1480
- position: relative;
1481
- transition: all 0.2s ease;
1482
- width: 14px;
1483
- margin-top: 0
1484
- }
1485
-
1486
- .ejs_volume_parent input[type='range']::-ms-tooltip {
1487
- display: none
1488
- }
1489
-
1490
- .ejs_volume_parent input[type='range']:focus {
1491
- outline: 0
1492
- }
1493
-
1494
- .ejs_volume_parent input[type='range']::-moz-focus-outer {
1495
- border: 0
1496
- }
1497
-
1498
- .ejs_volume_parent input[type='range']:active::-webkit-slider-thumb {
1499
- box-shadow: 0 1px 1px rgba(0, 0, 0, 0.15), 0 0 0 1px rgba(47, 52, 61, 0.2), 0 0 0 3px rgba(255, 255, 255, 0.5)
1500
- }
1501
-
1502
- .ejs_volume_parent input[type='range']:active::-moz-range-thumb {
1503
- box-shadow: 0 1px 1px rgba(0, 0, 0, 0.15), 0 0 0 1px rgba(47, 52, 61, 0.2), 0 0 0 3px rgba(255, 255, 255, 0.5)
1504
- }
1505
-
1506
- .ejs_volume_parent input[type='range']:active::-ms-thumb {
1507
- box-shadow: 0 1px 1px rgba(0, 0, 0, 0.15), 0 0 0 1px rgba(47, 52, 61, 0.2), 0 0 0 3px rgba(255, 255, 255, 0.5)
1508
- }
1509
-
1510
- .ejs_message {
1511
- float: none;
1512
- overflow: hidden;
1513
- position: absolute;
1514
- top: 0;
1515
- color: red;
1516
- font-size: 17px;
1517
- padding: 10px;
1518
- text-align: left;
1519
- text-shadow: rgb(0, 0, 0) 1px 1px 1px;
1520
- }
1521
-
1522
- .ejs_virtualGamepad_open {
1523
- display: inline-block;
1524
- width: 24px;
1525
- height: 24px;
1526
- color: #fff;
1527
- position: absolute;
1528
- top: 5px;
1529
- right: 5px;
1530
- opacity: .5;
1531
- z-index: 999;
1532
- cursor: pointer;
1533
- }
1534
-
1535
- .ejs_virtualGamepad_open svg {
1536
- fill: currentColor;
1537
- }
1538
-
1539
- .ejs_netplay_header {
1540
- margin-top: .5rem;
1541
- margin-bottom: .5rem;
1542
- line-height: 1.5;
1543
- color: rgba(0, 0, 0, .8);
1544
- text-align: left;
1545
- }
1546
-
1547
- .ejs_netplay_header input,
1548
- .ejs_netplay_header select {
1549
- font-size: 1rem;
1550
- padding: .4rem;
1551
- max-width: 100%;
1552
- color: #000 !important;
1553
- background-color: #fff !important;
1554
- margin: 0;
1555
- height: 2rem;
1556
- display: block;
1557
- font-family: Arial;
1558
- border: 0px;
1559
- }
1560
-
1561
- .ejs_netplay_name_heading {
1562
- margin-top: 0 !important;
1563
- margin-bottom: 0 !important;
1564
- font-weight: 600 !important;
1565
- font-size: 1.25rem;
1566
- line-height: 1.25 !important;
1567
- color: rgba(var(--ejs-primary-color), 1) !important;
1568
- display: flex;
1569
- justify-content: space-between;
1570
- align-items: center;
1571
- }
1572
-
1573
- .ejs_netplay_table {
1574
- font-family: Avenir, "Avenir Next", "Helvetica Neue", "Segoe UI", Helvetica, Arial, sans-serif;
1575
- font-size: 0.8rem;
1576
- padding: 0 10px;
1577
- }
1578
-
1579
- .ejs_netplay_join_button {
1580
- float: none;
1581
- padding: .1rem .5rem;
1582
- background-color: rgba(var(--ejs-primary-color), 1);
1583
- color: #fff !important;
1584
- border-radius: .25rem;
1585
- cursor: pointer;
1586
- }
1587
-
1588
- .ejs_netplay_table_row:hover {
1589
- background-color: #2d2d2d;
1590
- }
1591
-
1592
- .ejs_gamepad_dropdown {
1593
- background-color: var(--ejs-background-color);
1594
- color: white;
1595
- border: none;
1596
- padding: 8px 12px;
1597
- border-radius: 6px;
1598
- font-family: inherit;
1599
- outline: none;
1600
- cursor: pointer;
1601
- font-size: inherit;
1602
- }
1603
-
1604
- .ejs_gamepad_dropdown:focus, .ejs_gamepad_dropdown:active, .ejs_gamepad_dropdown:hover {
1605
- box-shadow: 0 0 0 2px rgba(51, 153, 255, 0.6);
1606
- background-color: var(--ejs-background-color);
1607
- }
1608
-
1609
- .ejs_gamepad_section {
1610
- font-size: 12px;
1611
- justify-content: center;
1612
- display: flex;
1613
- align-items: center;
1614
- }