@jsenv/plugin-toolbar 0.0.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 (117) hide show
  1. package/dist/css/toolbar_main.css +784 -0
  2. package/dist/html/toolbar.html +305 -0
  3. package/dist/js/toolbar_injector.js +300 -0
  4. package/dist/js/toolbar_main.js +900 -0
  5. package/dist/jsenv_plugin_toolbar.js +51 -0
  6. package/dist/other/jsenv_logo.svg +140 -0
  7. package/package.json +30 -0
  8. package/scripts/build.mjs +20 -0
  9. package/src/client/animation/toolbar_animation_core.js +30 -0
  10. package/src/client/animation/toolbar_animation_ui.js +21 -0
  11. package/src/client/communication/parent_window_communication.js +33 -0
  12. package/src/client/eventsource/eventsource.css +83 -0
  13. package/src/client/eventsource/toolbar_eventsource.js +57 -0
  14. package/src/client/execution/execution.css +79 -0
  15. package/src/client/execution/toolbar_execution.js +88 -0
  16. package/src/client/focus/focus.css +61 -0
  17. package/src/client/focus/toolbar_focus.js +19 -0
  18. package/src/client/jsenv_logo.svg +140 -0
  19. package/src/client/notification/toolbar_notification.js +181 -0
  20. package/src/client/responsive/overflow_menu.css +61 -0
  21. package/src/client/responsive/toolbar_responsive.js +103 -0
  22. package/src/client/settings/settings.css +201 -0
  23. package/src/client/settings/toolbar_settings.js +47 -0
  24. package/src/client/theme/jsenv_theme.css +77 -0
  25. package/src/client/theme/light_theme.css +106 -0
  26. package/src/client/theme/toolbar_theme.js +34 -0
  27. package/src/client/toolbar.html +452 -0
  28. package/src/client/toolbar_injector.js +230 -0
  29. package/src/client/toolbar_main.css +173 -0
  30. package/src/client/toolbar_main.js +174 -0
  31. package/src/client/toolbar_state.js +16 -0
  32. package/src/client/tooltip/tooltip.css +61 -0
  33. package/src/client/tooltip/tooltip.js +39 -0
  34. package/src/client/util/animation.js +305 -0
  35. package/src/client/util/dom.js +108 -0
  36. package/src/client/util/fetch_using_xhr.js +400 -0
  37. package/src/client/util/fetching.js +14 -0
  38. package/src/client/util/iframe_to_parent_href.js +10 -0
  39. package/src/client/util/jsenv_logger.js +28 -0
  40. package/src/client/util/preferences.js +10 -0
  41. package/src/client/util/responsive.js +112 -0
  42. package/src/client/util/util.js +19 -0
  43. package/src/client/variant/variant.js +74 -0
  44. package/src/jsenv_plugin_toolbar.js +63 -0
  45. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/ast/src/html/html_src_set.js +18 -0
  46. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/jsenv-plugin-toolbar/src/client/animation/toolbar_animation.js +45 -0
  47. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/jsenv-plugin-toolbar/src/client/animation/toolbar_animation.js.map +12 -0
  48. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/jsenv-plugin-toolbar/src/client/animation/toolbar_animation_core.js +32 -0
  49. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/jsenv-plugin-toolbar/src/client/animation/toolbar_animation_core.js.map +12 -0
  50. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/jsenv-plugin-toolbar/src/client/animation/toolbar_animation_ui.js +23 -0
  51. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/jsenv-plugin-toolbar/src/client/animation/toolbar_animation_ui.js.map +12 -0
  52. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/jsenv-plugin-toolbar/src/client/communication/parent_window_communication.js +33 -0
  53. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/jsenv-plugin-toolbar/src/client/eventsource/eventsource.css +87 -0
  54. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/jsenv-plugin-toolbar/src/client/eventsource/toolbar_eventsource.js +59 -0
  55. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/jsenv-plugin-toolbar/src/client/eventsource/toolbar_eventsource.js.map +12 -0
  56. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/jsenv-plugin-toolbar/src/client/execution/execution.css +88 -0
  57. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/jsenv-plugin-toolbar/src/client/execution/toolbar_execution.js +90 -0
  58. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/jsenv-plugin-toolbar/src/client/execution/toolbar_execution.js.map +12 -0
  59. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/jsenv-plugin-toolbar/src/client/focus/focus.css +28 -0
  60. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/jsenv-plugin-toolbar/src/client/focus/toolbar_focus.js +19 -0
  61. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/jsenv-plugin-toolbar/src/client/jsenv_logo.svg +140 -0
  62. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/jsenv-plugin-toolbar/src/client/notification/toolbar_notification.js +183 -0
  63. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/jsenv-plugin-toolbar/src/client/notification/toolbar_notification.js.map +12 -0
  64. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/jsenv-plugin-toolbar/src/client/responsive/overflow_menu.css +60 -0
  65. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/jsenv-plugin-toolbar/src/client/responsive/toolbar_responsive.js +105 -0
  66. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/jsenv-plugin-toolbar/src/client/responsive/toolbar_responsive.js.map +12 -0
  67. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/jsenv-plugin-toolbar/src/client/settings/settings.css +200 -0
  68. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/jsenv-plugin-toolbar/src/client/settings/toolbar_settings.js +49 -0
  69. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/jsenv-plugin-toolbar/src/client/settings/toolbar_settings.js.map +12 -0
  70. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/jsenv-plugin-toolbar/src/client/theme/light_theme.css +110 -0
  71. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/jsenv-plugin-toolbar/src/client/theme/toolbar_theme.js +36 -0
  72. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/jsenv-plugin-toolbar/src/client/theme/toolbar_theme.js.map +12 -0
  73. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/jsenv-plugin-toolbar/src/client/toolbar.html +319 -0
  74. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/jsenv-plugin-toolbar/src/client/toolbar_injector.js +232 -0
  75. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/jsenv-plugin-toolbar/src/client/toolbar_injector.js.map +12 -0
  76. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/jsenv-plugin-toolbar/src/client/toolbar_main.css +161 -0
  77. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/jsenv-plugin-toolbar/src/client/toolbar_main.css.map +12 -0
  78. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/jsenv-plugin-toolbar/src/client/toolbar_main.js +176 -0
  79. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/jsenv-plugin-toolbar/src/client/toolbar_main.js.map +12 -0
  80. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/jsenv-plugin-toolbar/src/client/toolbar_state.js +18 -0
  81. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/jsenv-plugin-toolbar/src/client/toolbar_state.js.map +12 -0
  82. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/jsenv-plugin-toolbar/src/client/tooltip/tooltip.css +60 -0
  83. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/jsenv-plugin-toolbar/src/client/tooltip/tooltip.js +41 -0
  84. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/jsenv-plugin-toolbar/src/client/tooltip/tooltip.js.map +12 -0
  85. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/jsenv-plugin-toolbar/src/client/util/animation.js +307 -0
  86. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/jsenv-plugin-toolbar/src/client/util/animation.js.map +12 -0
  87. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/jsenv-plugin-toolbar/src/client/util/dom.js +108 -0
  88. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/jsenv-plugin-toolbar/src/client/util/iframe_to_parent_href.js +10 -0
  89. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/jsenv-plugin-toolbar/src/client/util/preferences.js +10 -0
  90. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/jsenv-plugin-toolbar/src/client/util/responsive.js +112 -0
  91. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/jsenv-plugin-toolbar/src/client/variant/variant.js +74 -0
  92. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/src/plugins/autoreload/client/autoreload.js +201 -0
  93. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/src/plugins/autoreload/client/autoreload.js.map +12 -0
  94. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/src/plugins/autoreload/client/autoreload_preference.js +11 -0
  95. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/src/plugins/autoreload/client/reload.js +138 -0
  96. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/src/plugins/autoreload/client/reload.js.map +12 -0
  97. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/src/plugins/autoreload/client/url_helpers.js +20 -0
  98. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/src/plugins/explorer/client/explorer.html +590 -0
  99. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/src/plugins/explorer/client/explorer.html@L15C5-L20C12.js +7 -0
  100. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/src/plugins/explorer/client/explorer.html@L15C5-L20C12.js.map +12 -0
  101. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/src/plugins/explorer/client/explorer.html@L368C5-L481C14.js +114 -0
  102. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/src/plugins/explorer/client/explorer.html@L482C5-L605C14.js +124 -0
  103. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/src/plugins/explorer/client/explorer.html@L69C5-L299C13.css +227 -0
  104. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/src/plugins/explorer/client/explorer.html@L8C5-L68C13.css +28 -0
  105. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/src/plugins/import_meta_hot/client/import_meta_hot.js +82 -0
  106. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/src/plugins/ribbon/client/ribbon.js +51 -0
  107. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/src/plugins/server_events/client/connection_manager.js +165 -0
  108. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/src/plugins/server_events/client/events_manager.js +75 -0
  109. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/src/plugins/server_events/client/server_events_client.js +20 -0
  110. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/src/plugins/server_events/client/server_events_client.js.map +12 -0
  111. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/src/plugins/server_events/client/web_socket_connection.js +83 -0
  112. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/src/plugins/server_events/client/web_socket_connection.js.map +12 -0
  113. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/src/plugins/supervisor/client/script_type_module_supervisor.js +98 -0
  114. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/src/plugins/supervisor/client/supervisor.js +966 -0
  115. package/tests/toolbar_basic/main.html +18 -0
  116. package/tests/toolbar_basic/start_dev_server.mjs +7 -0
  117. package/todo.txt +0 -0
@@ -0,0 +1,784 @@
1
+ #loader-icon {
2
+ width: 20px;
3
+ height: 20px;
4
+ color: #cecece;
5
+ margin: 10px;
6
+ transform: scaleX(-1);
7
+ }
8
+
9
+ #loader-icon[data-animate] {
10
+ opacity: 0;
11
+ transform-origin: center;
12
+ animation: 1s linear infinite rotateLoader !important;
13
+ }
14
+
15
+ @keyframes rotateLoader {
16
+ 0% {
17
+ opacity: 1;
18
+ transform: scaleX(-1)rotate(360deg);
19
+ }
20
+
21
+ 50% {
22
+ opacity: 0;
23
+ }
24
+
25
+ 100% {
26
+ opacity: 1;
27
+ transform: scaleX(-1)rotate(0);
28
+ }
29
+ }
30
+
31
+ #check-icon {
32
+ width: 25px;
33
+ height: 25px;
34
+ opacity: 0;
35
+ stroke-width: 5px;
36
+ margin: 7px;
37
+ }
38
+
39
+ #check-icon[data-animate] {
40
+ opacity: 1;
41
+ }
42
+
43
+ #check-icon[data-animate] path {
44
+ transform-origin: 50%;
45
+ stroke-dasharray: 48;
46
+ stroke-dashoffset: 48px;
47
+ stroke: green;
48
+ animation: .5s cubic-bezier(.65, 0, .45, 1) forwards stroke;
49
+ }
50
+
51
+ @keyframes stroke {
52
+ 100% {
53
+ stroke-dashoffset: 0;
54
+ }
55
+ }
56
+
57
+ #cross-icon {
58
+ width: 20px;
59
+ height: 20px;
60
+ opacity: 0;
61
+ stroke-width: 5px;
62
+ margin: 10px;
63
+ }
64
+
65
+ #cross-icon rect {
66
+ width: 33px;
67
+ height: 0;
68
+ fill: #d74640;
69
+ }
70
+
71
+ #cross-icon[data-animate] {
72
+ opacity: 1;
73
+ }
74
+
75
+ #cross-icon[data-animate] #cross_p1 {
76
+ animation: .5s cubic-bezier(.65, 0, .45, 1) forwards draw;
77
+ }
78
+
79
+ #cross-icon[data-animate] #cross_p2 {
80
+ animation: .5s cubic-bezier(.65, 0, .45, 1) .2s forwards draw;
81
+ }
82
+
83
+ @keyframes draw {
84
+ 100% {
85
+ height: 376.964px;
86
+ width: 45px;
87
+ }
88
+ }
89
+ button:focus, a:focus, input:focus, [data-contains-hidden-input] input:focus + * {
90
+ outline-offset: -2px;
91
+ outline-style: none;
92
+ }
93
+
94
+ [data-contains-hidden-input] input:focus + * {
95
+ outline-offset: -2px;
96
+ outline-width: 4px;
97
+ }
98
+
99
+ html[data-last-interaction="keyboard"] button:focus, html[data-last-interaction="keyboard"] a:focus, html[data-last-interaction="keyboard"] input:focus, html[data-last-interaction="keyboard"] [data-contains-hidden-input] input:focus + * {
100
+ outline-style: auto;
101
+ }
102
+
103
+ html[data-last-interaction="keyboard"] [data-contains-hidden-input] input:focus + * {
104
+ outline-color: #0096ff;
105
+ }
106
+
107
+ @-moz-document url-prefix() {
108
+ html[data-last-interaction="keyboard"] button:focus, html[data-last-interaction="keyboard"] a:focus, html[data-last-interaction="keyboard"] input:focus, html[data-last-interaction="keyboard"] [data-input-customized] input:focus + * {
109
+ outline-offset: 0;
110
+ outline: 2px solid #0096ff;
111
+ }
112
+ }
113
+
114
+ ::-moz-focus-inner {
115
+ border: 0;
116
+ }
117
+ #eventsource-indicator button {
118
+ position: relative;
119
+ }
120
+
121
+ #eventsource-indicator button svg {
122
+ width: 40px;
123
+ height: 40px;
124
+ }
125
+
126
+ #eventsource-indicator .event-source-autoreload {
127
+ width: 32px;
128
+ height: 32px;
129
+ margin: 4px;
130
+ position: absolute;
131
+ top: 0;
132
+ left: 0;
133
+ }
134
+
135
+ .event-source-autoreload[data-variant="enabled"] {
136
+ color: green;
137
+ }
138
+
139
+ #eventsource-indicator .event-source-icon {
140
+ width: 40px;
141
+ height: 40px;
142
+ }
143
+
144
+ .eventsource-circle {
145
+ stroke: #000;
146
+ stroke-width: 0;
147
+ }
148
+
149
+ .eventsource-circle[data-variant="off"] {
150
+ fill: #cecece;
151
+ }
152
+
153
+ .eventsource-circle[data-variant="connecting"] {
154
+ fill: #cecece;
155
+ transform-origin: center;
156
+ animation: 1.2s ease-out infinite wink;
157
+ }
158
+
159
+ @keyframes wink {
160
+ 0% {
161
+ opacity: 0;
162
+ }
163
+
164
+ 80% {
165
+ opacity: 1;
166
+ }
167
+
168
+ 100% {
169
+ opacity: 0;
170
+ }
171
+ }
172
+
173
+ .eventsource-ring {
174
+ stroke: #cecece75;
175
+ stroke-width: 4px;
176
+ fill: #0000;
177
+ transform-origin: center;
178
+ animation: 1.2s ease-out infinite pulse;
179
+ }
180
+
181
+ @keyframes pulse {
182
+ 0% {
183
+ opacity: 0;
184
+ transform: scale(0);
185
+ }
186
+
187
+ 50% {
188
+ opacity: 1;
189
+ }
190
+
191
+ 100% {
192
+ opacity: 0;
193
+ transform: scale(1);
194
+ }
195
+ }
196
+
197
+ .eventsource-circle[data-variant="connected"] {
198
+ fill: green;
199
+ }
200
+
201
+ .eventsource-circle[data-variant="failed"] {
202
+ fill: #c00;
203
+ }
204
+ #overflow-menu-button {
205
+ width: 40px;
206
+ background: #404040;
207
+ display: none;
208
+ position: absolute;
209
+ top: 0;
210
+ right: 0;
211
+ }
212
+
213
+ #dotsIconSvg {
214
+ width: 25px;
215
+ }
216
+
217
+ #overflow-menu {
218
+ visibility: hidden;
219
+ width: 100%;
220
+ height: 100%;
221
+ opacity: 0;
222
+ background: #404040;
223
+ display: none;
224
+ position: absolute;
225
+ top: 0;
226
+ bottom: 0;
227
+ left: 100%;
228
+ }
229
+
230
+ #overflow-menu[data-animate] {
231
+ transition-property: left, opacity;
232
+ transition-duration: .3s;
233
+ }
234
+
235
+ #overflow-menu > * {
236
+ vertical-align: middle;
237
+ text-align: center;
238
+ display: table-cell;
239
+ }
240
+
241
+ #toolbar[data-overflow-menu-enabled] #overflow-menu-button {
242
+ display: block;
243
+ }
244
+
245
+ #toolbar[data-overflow-menu-visible] #overflow-menu-button {
246
+ background: #030713;
247
+ }
248
+
249
+ #toolbar[data-overflow-menu-enabled][data-overflow-menu-visible] #toolbar-wrapper {
250
+ visibility: hidden;
251
+ }
252
+
253
+ #toolbar[data-overflow-menu-visible] #overflow-menu {
254
+ visibility: visible;
255
+ opacity: 1;
256
+ margin-left: -40px;
257
+ display: block;
258
+ left: 0;
259
+ }
260
+
261
+ #toolbar[data-overflow-menu-enabled] #settings-box {
262
+ right: -40px;
263
+ }
264
+ #settings-button {
265
+ position: relative;
266
+ }
267
+
268
+ #settings-button[data-warning] svg {
269
+ fill: #cb5909;
270
+ }
271
+
272
+ #settings-button[data-warning] svg:hover {
273
+ fill: #ff8c00 !important;
274
+ }
275
+
276
+ #settings-box {
277
+ text-align: center;
278
+ color: #fff;
279
+ min-width: 250px;
280
+ min-height: 150px;
281
+ z-index: -1;
282
+ background-color: #030713;
283
+ border-radius: 5px 5px 0 0;
284
+ padding: 17px;
285
+ font-size: 14px;
286
+ display: none;
287
+ position: absolute;
288
+ bottom: 40px;
289
+ right: 0;
290
+ }
291
+
292
+ [data-active] #settings-box {
293
+ animation: .3s comeUp;
294
+ display: block;
295
+ }
296
+
297
+ @keyframes comeUp {
298
+ 0% {
299
+ opacity: 0;
300
+ transform: translate(0, 90px);
301
+ }
302
+
303
+ 100% {
304
+ opacity: 1;
305
+ transform: translate(0);
306
+ }
307
+ }
308
+
309
+ #settings-box-body {
310
+ text-align: left;
311
+ max-height: 80vh;
312
+ width: 100vw;
313
+ justify-content: center;
314
+ padding: 18px 0;
315
+ display: flex;
316
+ overflow: auto;
317
+ }
318
+
319
+ .settings-box-items-wrapper {
320
+ max-width: 700px;
321
+ flex-wrap: wrap;
322
+ justify-content: center;
323
+ display: flex;
324
+ }
325
+
326
+ .settings-box-item {
327
+ width: 250px;
328
+ background: #0c111b;
329
+ margin: 9px 18px;
330
+ padding: 15px;
331
+ }
332
+
333
+ #settings-box-header .settings-icon {
334
+ fill: none;
335
+ stroke: #24b1b0;
336
+ stroke-width: 2px;
337
+ width: 22px;
338
+ height: 22px;
339
+ margin-right: 10px;
340
+ position: relative;
341
+ top: 4px;
342
+ }
343
+
344
+ #settings-box h3 {
345
+ color: #24b1b0;
346
+ margin: 10px 0;
347
+ font-size: 20px;
348
+ display: inline-block;
349
+ }
350
+
351
+ #button-close-settings {
352
+ float: right;
353
+ fill: #24b1b0;
354
+ }
355
+
356
+ #button-close-settings:hover {
357
+ opacity: .6;
358
+ }
359
+
360
+ label {
361
+ color: #a9a8a8;
362
+ padding-bottom: 3px;
363
+ font-size: 14px;
364
+ display: block;
365
+ }
366
+
367
+ #settings-box .category-title {
368
+ color: #24b1b0;
369
+ margin-top: 4px;
370
+ margin-bottom: 15px;
371
+ font-size: 16px;
372
+ display: inline-block;
373
+ }
374
+
375
+ #settings-box .category-title svg {
376
+ fill: currentColor;
377
+ vertical-align: top;
378
+ width: 18px;
379
+ height: 18px;
380
+ margin-right: 5px;
381
+ }
382
+
383
+ #settings-box .category-subtitle {
384
+ color: #a9a8a8;
385
+ max-width: 220px;
386
+ font-size: 14px;
387
+ }
388
+
389
+ .switch {
390
+ float: right;
391
+ width: 3.5em;
392
+ height: 2em;
393
+ cursor: pointer;
394
+ padding: 0;
395
+ position: relative;
396
+ }
397
+
398
+ .switch input {
399
+ opacity: 0;
400
+ width: 0;
401
+ height: 0;
402
+ position: absolute;
403
+ }
404
+
405
+ .switch .slider {
406
+ vertical-align: middle;
407
+ height: .3em;
408
+ background-color: #4c4c4c;
409
+ border-radius: .15em;
410
+ margin-top: -.15em;
411
+ transition: all .4s;
412
+ position: absolute;
413
+ top: 50%;
414
+ left: .5em;
415
+ right: .5em;
416
+ }
417
+
418
+ .switch .square {
419
+ content: "";
420
+ height: 1em;
421
+ width: 1em;
422
+ color: #030713;
423
+ background-color: #4c4c4c;
424
+ border-radius: .15em;
425
+ margin-top: -.5em;
426
+ transition: all .4s;
427
+ position: absolute;
428
+ top: 50%;
429
+ left: .5em;
430
+ }
431
+
432
+ .switch input + * {
433
+ width: 100%;
434
+ height: 100%;
435
+ border: 1px solid #0000;
436
+ position: relative;
437
+ }
438
+
439
+ .switch input:checked + * .slider {
440
+ background-color: #24b1b0;
441
+ }
442
+
443
+ .switch input:checked + * .square {
444
+ background-color: #24b1b0;
445
+ transform: translateX(1.6em);
446
+ }
447
+
448
+ .settings-box-item[data-disabled] {
449
+ cursor: default;
450
+ background-color: #0c111b66;
451
+ }
452
+
453
+ .settings-box-item[data-disabled] .category-title, .settings-box-item[data-disabled] .switch, .settings-box-item[data-disabled] .category-subtitle {
454
+ opacity: .4;
455
+ }
456
+
457
+ .settings-box-item[data-disabled] .category-title span, .settings-box-item[data-disabled] .category-subtitle {
458
+ text-decoration: line-through;
459
+ }
460
+
461
+ .settings-box-item[data-disabled] .switch {
462
+ cursor: default;
463
+ }
464
+ html[data-theme="light"] #toolbar {
465
+ background: #e8eff3;
466
+ }
467
+
468
+ html[data-theme="light"] .iconToolbar {
469
+ fill: #404040;
470
+ }
471
+
472
+ html[data-theme="light"] .iconToolbar:hover {
473
+ fill: #757575 !important;
474
+ }
475
+
476
+ html[data-theme="light"] #loader-icon {
477
+ color: #404040;
478
+ }
479
+
480
+ html[data-theme="light"] #settings-box, html[data-theme="light"] #settings[data-active] button {
481
+ background: #87acd3;
482
+ }
483
+
484
+ html[data-theme="light"] .settings-box-item {
485
+ background: #97b9da;
486
+ }
487
+
488
+ html[data-theme="light"] #settings-box-header .settings-icon {
489
+ stroke: #076570;
490
+ }
491
+
492
+ html[data-theme="light"] #button-close-settings {
493
+ fill: #076570;
494
+ }
495
+
496
+ html[data-theme="light"] #settings-box h3, html[data-theme="light"] #settings-box .category-title {
497
+ color: #076570;
498
+ }
499
+
500
+ html[data-theme="light"] #settings-box .category-title svg {
501
+ fill: #076570;
502
+ }
503
+
504
+ html[data-theme="light"] #settings-box .category-subtitle {
505
+ color: #5d5d5d;
506
+ }
507
+
508
+ html[data-theme="light"] label {
509
+ color: #002e33;
510
+ }
511
+
512
+ html[data-theme="light"] .switch input + * .slider, html[data-theme="light"] .switch input + * .square {
513
+ background-color: gray;
514
+ }
515
+
516
+ html[data-theme="light"] .switch input:checked + * .slider, html[data-theme="light"] .switch input:checked + * .square {
517
+ background-color: #076570;
518
+ }
519
+
520
+ html[data-theme="light"] .tooltip {
521
+ color: #fff;
522
+ background-color: #8a919a;
523
+ }
524
+
525
+ html[data-theme="light"] .tooltipAction {
526
+ border-color: #fff;
527
+ }
528
+
529
+ html[data-theme="light"] .tooltip:after {
530
+ border-color: #8a919a #0000 #0000;
531
+ }
532
+
533
+ html[data-theme="light"] #overflow-menu-button {
534
+ background: #e8eff3;
535
+ }
536
+
537
+ html[data-theme="light"] #toolbar[data-overflow-menu-visible] #overflow-menu-button {
538
+ background: #a5a9ad;
539
+ }
540
+
541
+ html[data-theme="light"] #overflow-menu {
542
+ background: #dfe4e7;
543
+ }
544
+
545
+ html[data-theme="light"] h2, html[data-theme="light"] h4 {
546
+ color: #076570;
547
+ }
548
+
549
+ html[data-theme="light"] #fileIconSvgConfig {
550
+ fill: #076570;
551
+ }
552
+
553
+ html[data-theme="light"] #explorables h2 span {
554
+ color: #ff8d00;
555
+ }
556
+
557
+ html[data-theme="light"] article[data-page="file-list"], html[data-theme="light"] #file-list-link[data-active] a {
558
+ background: #bbd5ea;
559
+ }
560
+
561
+ html[data-theme="light"] #explorables fieldset input:checked + * {
562
+ color: #ff8d00;
563
+ background: #bbd5ea;
564
+ }
565
+
566
+ html[data-theme="light"] #explorables #explorables-header, html[data-theme="light"] #explorables fieldset label input + * {
567
+ background: #ddf0ff;
568
+ }
569
+
570
+ html[data-theme="light"] .execution-link {
571
+ color: #076570;
572
+ background: #ddf0ff;
573
+ }
574
+ .tooltip {
575
+ color: #fff;
576
+ text-align: center;
577
+ max-width: 260px;
578
+ cursor: default;
579
+ background-color: #5e5e5e;
580
+ border-radius: 6px;
581
+ margin-left: -40px;
582
+ padding: 10px;
583
+ font-size: 14px;
584
+ display: none;
585
+ position: absolute;
586
+ bottom: 120%;
587
+ }
588
+
589
+ .tooltip:after {
590
+ content: "";
591
+ border: 5px solid #0000;
592
+ border-top-color: #5e5e5e;
593
+ margin-left: -5px;
594
+ position: absolute;
595
+ top: 100%;
596
+ left: 60px;
597
+ }
598
+
599
+ [data-tooltip-visible] .tooltip, [data-tooltip-auto-visible] .tooltip {
600
+ animation: .4s fadeIn;
601
+ display: block;
602
+ }
603
+
604
+ @keyframes fadeIn {
605
+ 0% {
606
+ opacity: 0;
607
+ }
608
+
609
+ 100% {
610
+ opacity: 1;
611
+ }
612
+ }
613
+
614
+ .tooltipAction {
615
+ border: 1px solid #a0a0a0;
616
+ border-radius: 3px;
617
+ margin-top: 6px;
618
+ padding: 3px 7px;
619
+ display: inline-block;
620
+ }
621
+
622
+ .tooltipAction a {
623
+ vertical-align: middle;
624
+ color: #fff;
625
+ text-decoration: none;
626
+ }
627
+
628
+ .tooltipIcon {
629
+ fill: #fff;
630
+ width: 20px;
631
+ height: 20px;
632
+ vertical-align: middle;
633
+ }
634
+
635
+ html[data-animation-disabled] * {
636
+ transition: none !important;
637
+ animation-duration: 0s !important;
638
+ animation-delay: 0s !important;
639
+ }
640
+
641
+ [data-when] {
642
+ display: none !important;
643
+ }
644
+
645
+ * {
646
+ box-sizing: border-box;
647
+ }
648
+
649
+ html, body {
650
+ margin: 0;
651
+ padding: 0;
652
+ }
653
+
654
+ html {
655
+ font-family: arial, sans;
656
+ }
657
+
658
+ [data-force-hide] {
659
+ display: none !important;
660
+ }
661
+
662
+ #toolbar-overlay {
663
+ width: 100%;
664
+ height: 100%;
665
+ filter: url(#better-blur);
666
+ background-color: #0003;
667
+ position: fixed;
668
+ top: 0;
669
+ left: 0;
670
+ }
671
+
672
+ #toolbar {
673
+ height: 40px;
674
+ width: 100%;
675
+ background: #404040;
676
+ position: fixed;
677
+ bottom: 0;
678
+ }
679
+
680
+ #toolbar-wrapper {
681
+ width: 100%;
682
+ height: 100%;
683
+ display: table;
684
+ }
685
+
686
+ #toolbar-wrapper > * {
687
+ vertical-align: middle;
688
+ display: table-cell;
689
+ }
690
+
691
+ #toolbar button {
692
+ height: 100%;
693
+ background: none;
694
+ border: none;
695
+ padding: 0;
696
+ }
697
+
698
+ #toolbar button:hover, #toolbar a:hover {
699
+ cursor: pointer;
700
+ }
701
+
702
+ #fileIconSvg, .settings-icon {
703
+ width: 20px;
704
+ }
705
+
706
+ .iconToolbar {
707
+ height: 40px;
708
+ fill: #cecece;
709
+ color: #cecece;
710
+ }
711
+
712
+ .iconToolbar:hover {
713
+ fill: #909090 !important;
714
+ }
715
+
716
+ .toolbar-icon-wrapper {
717
+ height: 100%;
718
+ text-align: center;
719
+ width: 40px;
720
+ display: inline-block;
721
+ }
722
+
723
+ #file-list-link[data-active] a {
724
+ background: #1f262c;
725
+ }
726
+
727
+ #file[data-active] {
728
+ background: #1f262cb8;
729
+ }
730
+
731
+ #settings[data-active] button {
732
+ background: #030713;
733
+ }
734
+
735
+ #crossIconSvg {
736
+ width: 18px;
737
+ }
738
+
739
+ #toolbar-trigger {
740
+ height: 40px;
741
+ width: 40px;
742
+ background: none;
743
+ border: 1px solid #00000054;
744
+ border-bottom: none;
745
+ border-radius: 5px 5px 0 0;
746
+ padding: 0;
747
+ display: block;
748
+ position: absolute;
749
+ bottom: -32px;
750
+ right: 20px;
751
+ overflow: hidden;
752
+ box-shadow: 0 0 6px 2px #00000075;
753
+ }
754
+
755
+ #toolbar-trigger[data-animate] {
756
+ transition: all .6s;
757
+ }
758
+
759
+ #toolbar-trigger #jsenvLogoSvg {
760
+ width: 35px;
761
+ height: 35px;
762
+ opacity: 0;
763
+ transition: all .6s;
764
+ }
765
+
766
+ html[data-toolbar-visible] #toolbar-trigger {
767
+ display: none;
768
+ }
769
+
770
+ #toolbar-trigger:hover {
771
+ cursor: pointer;
772
+ }
773
+
774
+ #toolbar-trigger[data-expanded] {
775
+ bottom: 0;
776
+ }
777
+
778
+ #toolbar-trigger[data-expanded] #jsenvLogoSvg {
779
+ opacity: 1;
780
+ }
781
+
782
+ #toolbar a {
783
+ color: inherit;
784
+ }