@jsenv/core 24.6.5 → 25.0.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/dist/browser_runtime/asset-manifest.json +2 -1
  2. package/dist/browser_runtime/{browser_runtime-bb0e3aa4.js → browser_runtime_a8097085.js} +1 -1
  3. package/dist/browser_runtime/{browser_runtime-bb0e3aa4.js.map → browser_runtime_a8097085.js.map} +1 -1
  4. package/dist/build_manifest.js +6 -6
  5. package/dist/compile_proxy/asset-manifest.json +2 -1
  6. package/dist/compile_proxy/{compile_proxy-6eb67db4.html → compile_proxy_e16d7de8.html} +2 -2
  7. package/dist/compile_proxy/{compile_proxy.html__inline__20-9e168143.js.map → compile_proxy_e3b0c442_9e168143.js.map} +0 -0
  8. package/dist/event_source_client/asset-manifest.json +2 -1
  9. package/dist/event_source_client/{event_source_client-9f14c8b9.js → event_source_client_620fbc2c.js} +1 -1
  10. package/dist/event_source_client/{event_source_client-9f14c8b9.js.map → event_source_client_620fbc2c.js.map} +1 -1
  11. package/dist/redirector/asset-manifest.json +2 -1
  12. package/dist/redirector/{redirector-b6ad84bf.html → redirector_2e0c8abe.html} +2 -2
  13. package/dist/redirector/{redirector.html__inline__15-3a34a156.js.map → redirector_e3b0c442_3a34a156.js.map} +0 -0
  14. package/dist/toolbar/asset-manifest.json +11 -10
  15. package/dist/toolbar/assets/{compilation.css-209d68b4.map → compilation.css_e37c747b.map} +1 -1
  16. package/dist/toolbar/assets/{eventsource.css-38cd0a36.map → eventsource.css_c0c71e7b.map} +1 -1
  17. package/dist/toolbar/assets/{execution.css-0ebe522f.map → execution.css_f3377c10.map} +1 -1
  18. package/dist/toolbar/assets/{focus.css-3f9c156d.map → focus.css_896f3e45.map} +1 -1
  19. package/dist/toolbar/assets/{light-theme.css-78b19a80.map → light-theme.css_72a60fa3.map} +1 -1
  20. package/dist/toolbar/assets/{overflow-menu.css-d9688a1c.map → overflow-menu.css_2859d519.map} +1 -1
  21. package/dist/toolbar/assets/{settings.css-2b81b245.map → settings.css_61548139.map} +1 -1
  22. package/dist/toolbar/assets/{toolbar.main.css-846920e9.map → toolbar.main.css_269d7ce2.map} +9 -9
  23. package/dist/toolbar/assets/{tooltip.css-03395ee6.map → tooltip.css_a94a8bdd.map} +1 -1
  24. package/dist/toolbar/{toolbar.main-a5ef2c60.js.map → toolbar.main_a5ef2c60.js.map} +0 -0
  25. package/dist/toolbar/{toolbar-1fbf8dcb.html → toolbar_412abb83.html} +3 -5
  26. package/dist/toolbar_injector/asset-manifest.json +3 -2
  27. package/dist/toolbar_injector/assets/{jsenv-logo-188b9ca6.svg → jsenv-logo_188b9ca6.svg} +0 -0
  28. package/dist/toolbar_injector/{toolbar_injector-997dbaa0.js → toolbar_injector_4f9c19e5.js} +3 -3
  29. package/dist/toolbar_injector/{toolbar_injector-997dbaa0.js.map → toolbar_injector_4f9c19e5.js.map} +2 -2
  30. package/package.json +1 -1
  31. package/readme.md +2 -2
  32. package/src/buildProject.js +18 -16
  33. package/src/internal/building/buildUsingRollup.js +9 -7
  34. package/src/internal/building/build_logs.js +2 -2
  35. package/src/internal/building/build_stats.js +11 -1
  36. package/src/internal/building/html/parseHtmlRessource.js +2 -26
  37. package/src/internal/building/js/parseJsRessource.js +3 -2
  38. package/src/internal/building/json_module.js +11 -0
  39. package/src/internal/building/parseRessource.js +1 -1
  40. package/src/internal/building/ressource_builder.js +216 -215
  41. package/src/internal/building/rollup_plugin_jsenv.js +462 -306
  42. package/src/internal/building/url_loader.js +8 -145
  43. package/src/internal/building/url_versioning.js +226 -0
  44. package/src/internal/compiling/compileHtml.js +8 -1
  45. package/src/jsenvServiceWorkerFinalizer.js +7 -8
  46. package/src/internal/building/asset_url_versioning.js +0 -50
  47. package/src/internal/building/rollup_build_sourcemap.js +0 -54
  48. package/src/internal/building/url-versioning.js +0 -96
  49. package/src/internal/renderNamePattern.js +0 -6
@@ -1,3 +1,4 @@
1
1
  {
2
- "browser_runtime.js": "browser_runtime-bb0e3aa4.js"
2
+ "browser_runtime.js": "browser_runtime_a8097085.js",
3
+ "browser_runtime.js.map": "browser_runtime_a8097085.js.map"
3
4
  }
@@ -5185,4 +5185,4 @@
5185
5185
 
5186
5186
  })();
5187
5187
 
5188
- //# sourceMappingURL=browser_runtime-bb0e3aa4.js.map
5188
+ //# sourceMappingURL=browser_runtime_a8097085.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "file": "browser_runtime-bb0e3aa4.js",
3
+ "file": "browser_runtime_a8097085.js",
4
4
  "sources": [
5
5
  "../../helpers/babel/defineProperty/defineProperty.js",
6
6
  "../../helpers/babel/objectSpread2/objectSpread2.js",
@@ -1,12 +1,12 @@
1
1
 
2
- export const REDIRECTOR_BUILD_URL = new URL("redirector/redirector-b6ad84bf.html", import.meta.url).href
2
+ export const REDIRECTOR_BUILD_URL = new URL("redirector/redirector_2e0c8abe.html", import.meta.url).href
3
3
 
4
- export const BROWSER_RUNTIME_BUILD_URL = new URL("browser_runtime/browser_runtime-bb0e3aa4.js", import.meta.url).href
4
+ export const BROWSER_RUNTIME_BUILD_URL = new URL("browser_runtime/browser_runtime_a8097085.js", import.meta.url).href
5
5
 
6
- export const COMPILE_PROXY_BUILD_URL = new URL("compile_proxy/compile_proxy-6eb67db4.html", import.meta.url).href
6
+ export const COMPILE_PROXY_BUILD_URL = new URL("compile_proxy/compile_proxy_e16d7de8.html", import.meta.url).href
7
7
 
8
- export const EVENT_SOURCE_CLIENT_BUILD_URL = new URL("event_source_client/event_source_client-9f14c8b9.js", import.meta.url).href
8
+ export const EVENT_SOURCE_CLIENT_BUILD_URL = new URL("event_source_client/event_source_client_620fbc2c.js", import.meta.url).href
9
9
 
10
- export const TOOLBAR_BUILD_URL = new URL("toolbar/toolbar-1fbf8dcb.html", import.meta.url).href
10
+ export const TOOLBAR_BUILD_URL = new URL("toolbar/toolbar_412abb83.html", import.meta.url).href
11
11
 
12
- export const TOOLBAR_INJECTOR_BUILD_URL = new URL("toolbar_injector/toolbar_injector-997dbaa0.js", import.meta.url).href
12
+ export const TOOLBAR_INJECTOR_BUILD_URL = new URL("toolbar_injector/toolbar_injector_4f9c19e5.js", import.meta.url).href
@@ -1,3 +1,4 @@
1
1
  {
2
- "compile_proxy.html": "compile_proxy-6eb67db4.html"
2
+ "compile_proxy_e3b0c442.js.map": "compile_proxy_e3b0c442_9e168143.js.map",
3
+ "compile_proxy.html": "compile_proxy_e16d7de8.html"
3
4
  }
@@ -782,7 +782,7 @@
782
782
  <script type="systemjs-importmap">
783
783
  {
784
784
  "imports": {
785
- "./compile_proxy.html__inline__20.js": "./compile_proxy.html__inline__20-9e168143.js"
785
+ "./compile_proxy.html__inline__20.js": "./compile_proxy_e3b0c442_9e168143.js"
786
786
  }
787
787
  }</script>
788
788
  <script>System.register("compile_proxy.html__inline__20.js", [], function () {
@@ -2185,7 +2185,7 @@
2185
2185
  };
2186
2186
  });
2187
2187
 
2188
- //# sourceMappingURL=compile_proxy.html__inline__20-9e168143.js.map</script>
2188
+ //# sourceMappingURL=compile_proxy_e3b0c442_9e168143.js.map</script>
2189
2189
 
2190
2190
 
2191
2191
  </body></html>
@@ -1,3 +1,4 @@
1
1
  {
2
- "event_source_client.js": "event_source_client-9f14c8b9.js"
2
+ "event_source_client.js": "event_source_client_620fbc2c.js",
3
+ "event_source_client.js.map": "event_source_client_620fbc2c.js.map"
3
4
  }
@@ -353,4 +353,4 @@
353
353
 
354
354
  })();
355
355
 
356
- //# sourceMappingURL=event_source_client-9f14c8b9.js.map
356
+ //# sourceMappingURL=event_source_client_620fbc2c.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "file": "event_source_client-9f14c8b9.js",
3
+ "file": "event_source_client_620fbc2c.js",
4
4
  "sources": [
5
5
  "../../src/internal/dev_server/event_source_client/event_source_connection.js",
6
6
  "../../src/internal/dev_server/event_source_client/livereload_preference.js",
@@ -1,3 +1,4 @@
1
1
  {
2
- "redirector.html": "redirector-b6ad84bf.html"
2
+ "redirector_e3b0c442.js.map": "redirector_e3b0c442_3a34a156.js.map",
3
+ "redirector.html": "redirector_2e0c8abe.html"
3
4
  }
@@ -777,7 +777,7 @@
777
777
  <script type="systemjs-importmap">
778
778
  {
779
779
  "imports": {
780
- "./redirector.html__inline__15.js": "./redirector.html__inline__15-3a34a156.js"
780
+ "./redirector.html__inline__15.js": "./redirector_e3b0c442_3a34a156.js"
781
781
  }
782
782
  }</script>
783
783
  <script>System.register("redirector.html__inline__15.js", [], function () {
@@ -2229,7 +2229,7 @@
2229
2229
  };
2230
2230
  });
2231
2231
 
2232
- //# sourceMappingURL=redirector.html__inline__15-3a34a156.js.map</script>
2232
+ //# sourceMappingURL=redirector_e3b0c442_3a34a156.js.map</script>
2233
2233
 
2234
2234
 
2235
2235
  </body></html>
@@ -1,12 +1,13 @@
1
1
  {
2
- "assets/compilation.css.map": "assets/compilation.css-209d68b4.map",
3
- "assets/eventsource.css.map": "assets/eventsource.css-38cd0a36.map",
4
- "assets/execution.css.map": "assets/execution.css-0ebe522f.map",
5
- "assets/focus.css.map": "assets/focus.css-3f9c156d.map",
6
- "assets/light-theme.css.map": "assets/light-theme.css-78b19a80.map",
7
- "assets/overflow-menu.css.map": "assets/overflow-menu.css-d9688a1c.map",
8
- "assets/settings.css.map": "assets/settings.css-2b81b245.map",
9
- "assets/toolbar.main.css.map": "assets/toolbar.main.css-846920e9.map",
10
- "assets/tooltip.css.map": "assets/tooltip.css-03395ee6.map",
11
- "toolbar.html": "toolbar-1fbf8dcb.html"
2
+ "assets/compilation.css.map": "assets/compilation.css_e37c747b.map",
3
+ "assets/eventsource.css.map": "assets/eventsource.css_c0c71e7b.map",
4
+ "assets/execution.css.map": "assets/execution.css_f3377c10.map",
5
+ "assets/focus.css.map": "assets/focus.css_896f3e45.map",
6
+ "assets/light-theme.css.map": "assets/light-theme.css_72a60fa3.map",
7
+ "assets/overflow-menu.css.map": "assets/overflow-menu.css_2859d519.map",
8
+ "assets/settings.css.map": "assets/settings.css_61548139.map",
9
+ "assets/toolbar.main.css.map": "assets/toolbar.main.css_269d7ce2.map",
10
+ "assets/tooltip.css.map": "assets/tooltip.css_a94a8bdd.map",
11
+ "toolbar.html": "toolbar_412abb83.html",
12
+ "toolbar.main.js.map": "toolbar.main_a5ef2c60.js.map"
12
13
  }
@@ -5,7 +5,7 @@
5
5
  ],
6
6
  "names": [],
7
7
  "mappings": "AAAA;EACE,WAAW;EACX,YAAY;EACZ,YAAY;EACZ,cAAc;AAChB;;AAEA;EACE,SAAS;EACT,oBAAoB;EACpB,iBAAiB;AACnB;;AAEA;EACE,gBAAgB;AAClB;;AAEA;;EAEE,kBAAkB;EAClB,YAAY;AACd",
8
- "file": "compilation-906adf10.css",
8
+ "file": "compilation_906adf10.css",
9
9
  "sourcesContent": [
10
10
  "#file_info_svg {\n width: 20px;\n height: 20px;\n margin: 10px;\n color: #cecece;\n}\n\n#file_info ul {\n margin: 0;\n margin-bottom: 0.7em;\n padding-left: 1em;\n}\n\n#file_info ul li {\n text-align: left;\n}\n\n.browser_support_text[data-warning],\n.files_compilation_text[data-warning] {\n background: orange;\n color: black;\n}\n"
11
11
  ]
@@ -5,7 +5,7 @@
5
5
  ],
6
6
  "names": [],
7
7
  "mappings": "AAAA;EACE,kBAAkB;AACpB;;AAEA;EACE,WAAW;EACX,YAAY;AACd;;AAEA;EACE,kBAAkB;EAClB,WAAW;EACX,YAAY;EACZ,WAAW;EACX,OAAO;EACP,MAAM;AACR;;AAEA;EACE,YAAY;AACd;;AAEA;EACE,WAAW;EACX,YAAY;AACd;;AAEA;EACE,aAAa;EACb,eAAe;AACjB;;AAEA;EACE,aAAa;AACf;;AAEA;EACE,aAAa;EACb,sCAAsC;EACtC,wBAAwB;AAC1B;;AAEA;EACE;IACE,UAAU;EACZ;EACA;IACE,UAAU;EACZ;EACA;IACE,UAAU;EACZ;AACF;;AAEA;EACE,iCAAiC;EACjC,eAAe;EACf,iBAAiB;EACjB,uCAAuC;EACvC,wBAAwB;AAC1B;;AAEA;EACE;IACE,mBAAmB;IACnB,UAAU;EACZ;EACA;IACE,UAAU;EACZ;EACA;IACE,mBAAmB;IACnB,UAAU;EACZ;AACF;;AAEA;EACE,WAAW;AACb;;AAEA;EACE,aAAa;AACf",
8
- "file": "eventsource-5deb40f8.css",
8
+ "file": "eventsource_5deb40f8.css",
9
9
  "sourcesContent": [
10
10
  "#eventsource-indicator button {\n position: relative;\n}\n\n#eventsource-indicator button svg {\n width: 40px;\n height: 40px;\n}\n\n#eventsource-indicator .event-source-livereload {\n position: absolute;\n width: 32px;\n height: 32px;\n margin: 4px;\n left: 0;\n top: 0;\n}\n\n.event-source-livereload[data-variant=\"enabled\"] {\n color: green;\n}\n\n#eventsource-indicator .event-source-icon {\n width: 40px;\n height: 40px;\n}\n\n.eventsource-circle {\n stroke: black;\n stroke-width: 0;\n}\n\n.eventsource-circle[data-variant=\"off\"] {\n fill: #cecece;\n}\n\n.eventsource-circle[data-variant=\"connecting\"] {\n fill: #cecece;\n animation: wink 1.2s ease-out infinite;\n transform-origin: center;\n}\n\n@keyframes wink {\n 0% {\n opacity: 0;\n }\n 80% {\n opacity: 1;\n }\n 100% {\n opacity: 0;\n }\n}\n\n.eventsource-ring {\n stroke: rgba(206, 206, 206, 0.46);\n stroke-width: 4;\n fill: transparent;\n animation: pulse 1.2s ease-out infinite;\n transform-origin: center;\n}\n\n@keyframes pulse {\n 0% {\n transform: scale(0);\n opacity: 0;\n }\n 50% {\n opacity: 1;\n }\n 100% {\n transform: scale(1);\n opacity: 0;\n }\n}\n\n.eventsource-circle[data-variant=\"connected\"] {\n fill: green;\n}\n\n.eventsource-circle[data-variant=\"failed\"] {\n fill: #cc0000;\n}\n"
11
11
  ]
@@ -5,7 +5,7 @@
5
5
  ],
6
6
  "names": [],
7
7
  "mappings": "AAAA,gBAAgB;AAChB;EACE,WAAW;EACX,YAAY;EACZ,YAAY;EACZ,qBAAqB;EACrB,cAAc;AAChB;AACA;EACE,UAAU;EACV,wBAAwB;EACxB,qDAAqD;AACvD;AACA;EACE;IACE,oCAAoC;IACpC,UAAU;EACZ;EACA;IACE,UAAU;EACZ;EACA;IACE,kCAAkC;IAClC,UAAU;EACZ;AACF;AAEA,eAAe;AACf;EACE,WAAW;EACX,YAAY;EACZ,WAAW;EACX,UAAU;EACV,eAAe;AACjB;AACA;EACE,UAAU;AACZ;AACA;EACE,yBAAyB;EACzB,oBAAoB;EACpB,qBAAqB;EACrB,8DAA8D;EAC9D,aAAa;AACf;AACA;EACE;IACE,oBAAoB;EACtB;AACF;AAEA,eAAe;AACf;EACE,WAAW;EACX,YAAY;EACZ,YAAY;EACZ,UAAU;EACV,eAAe;AACjB;AACA;EACE,WAAW;EACX,SAAS;EACT,aAAa;AACf;AACA;EACE,UAAU;AACZ;AACA;EACE,4DAA4D;AAC9D;AACA;EACE,iEAAiE;AACnE;AACA;EACE;IACE,iBAAiB;IACjB,WAAW;EACb;AACF",
8
- "file": "execution-2b53e173.css",
8
+ "file": "execution_2b53e173.css",
9
9
  "sourcesContent": [
10
10
  "/* Loader icon */\n#loader-icon {\n width: 20px;\n height: 20px;\n margin: 10px;\n transform: scaleX(-1);\n color: #cecece;\n}\n#loader-icon[data-animate] {\n opacity: 0;\n transform-origin: center;\n animation: rotateLoader 1s linear infinite !important;\n}\n@keyframes rotateLoader {\n 0% {\n transform: scaleX(-1) rotate(360deg);\n opacity: 1;\n }\n 50% {\n opacity: 0;\n }\n 100% {\n transform: scaleX(-1) rotate(0deg);\n opacity: 1;\n }\n}\n\n/* Check icon */\n#check-icon {\n width: 25px;\n height: 25px;\n margin: 7px;\n opacity: 0;\n stroke-width: 5;\n}\n#check-icon[data-animate] {\n opacity: 1;\n}\n#check-icon[data-animate] path {\n transform-origin: 50% 50%;\n stroke-dasharray: 48;\n stroke-dashoffset: 48;\n animation: stroke 0.5s cubic-bezier(0.65, 0, 0.45, 1) forwards;\n stroke: green;\n}\n@keyframes stroke {\n 100% {\n stroke-dashoffset: 0;\n }\n}\n\n/* Cross icon */\n#cross-icon {\n width: 20px;\n height: 20px;\n margin: 10px;\n opacity: 0;\n stroke-width: 5;\n}\n#cross-icon rect {\n width: 33px;\n height: 0;\n fill: #d74640;\n}\n#cross-icon[data-animate] {\n opacity: 1;\n}\n#cross-icon[data-animate] #cross_p1 {\n animation: draw 0.5s cubic-bezier(0.65, 0, 0.45, 1) forwards;\n}\n#cross-icon[data-animate] #cross_p2 {\n animation: draw 0.5s cubic-bezier(0.65, 0, 0.45, 1) forwards 0.2s;\n}\n@keyframes draw {\n 100% {\n height: 376.964px;\n width: 45px;\n }\n}\n"
11
11
  ]
@@ -5,7 +5,7 @@
5
5
  ],
6
6
  "names": [],
7
7
  "mappings": "AAAA;;;;EAIE,mBAAmB;EACnB,oBAAoB;AACtB;;AAEA;EACE,kBAAkB;EAClB,oBAAoB;AACtB;;AAEA;;;;;;;EAOE,mBAAmB;AACrB;;AAEA;;;;EAIE,+BAA+B;AACjC;;AAEA;;;;;;;;CAQC;;AACD;EACE;;;;;;;IAOE,kBAAkB;IAClB,iBAAiB;IACjB,oBAAoB;IACpB;;;;KAIC;IACD,+BAA+B;EACjC;AACF;;AACA;EACE,SAAS;AACX",
8
- "file": "focus-62ce6b4e.css",
8
+ "file": "focus_62ce6b4e.css",
9
9
  "sourcesContent": [
10
10
  "button:focus,\na:focus,\ninput:focus,\n*[data-contains-hidden-input] input:focus + * {\n outline-style: none;\n outline-offset: -2px;\n}\n\n*[data-contains-hidden-input] input:focus + * {\n outline-width: 4px;\n outline-offset: -2px;\n}\n\nhtml[data-last-interaction=\"keyboard\"] button:focus,\nhtml[data-last-interaction=\"keyboard\"] a:focus,\nhtml[data-last-interaction=\"keyboard\"] input:focus,\nhtml[data-last-interaction=\"keyboard\"]\n *[data-contains-hidden-input]\n input:focus\n + * {\n outline-style: auto;\n}\n\nhtml[data-last-interaction=\"keyboard\"]\n *[data-contains-hidden-input]\n input:focus\n + * {\n outline-color: rgb(0, 150, 255);\n}\n\n/*\nDon't try to replace @-moz-document url-prefix() this by\n\n-moz-outline or -moz-outline-color\nBecause firefox would take into account outline instead of -moz-outline\n\n:moz-focus-ring\nBecause for some element we set the focus outline on a div which would not match :focusring\n*/\n@-moz-document url-prefix() {\n html[data-last-interaction=\"keyboard\"] button:focus,\n html[data-last-interaction=\"keyboard\"] a:focus,\n html[data-last-interaction=\"keyboard\"] input:focus,\n html[data-last-interaction=\"keyboard\"]\n *[data-input-customized]\n input:focus\n + * {\n outline-width: 2px;\n outline-offset: 0;\n outline-style: solid;\n /*\n force a blue color for firefox otherwise\n it uses outline-color: inherit\n making it unpredictible and sometimes hard to see\n */\n outline-color: rgb(0, 150, 255);\n }\n}\n::-moz-focus-inner {\n border: 0;\n}\n"
11
11
  ]
@@ -5,7 +5,7 @@
5
5
  ],
6
6
  "names": [],
7
7
  "mappings": "AAAA,YAAY;AACZ;EACE,mBAAmB;AACrB;AAEA,UAAU;AACV;EACE,aAAa;AACf;AACA;EACE,wBAAwB;AAC1B;AAEA,YAAY;AACZ;EACE,cAAc;AAChB;AACA;EACE,aAAa;AACf;AACA;EACE,aAAa;AACf;AACA;EACE,iCAAiC;AACnC;AAEA,aAAa;AACb;;EAEE,mBAAmB;AACrB;AACA;EACE,mBAAmB;AACrB;AACA;EACE,eAAe;AACjB;AACA;EACE,aAAa;AACf;AACA;;EAEE,cAAc;AAChB;AACA;EACE,aAAa;AACf;AACA;EACE,cAAc;AAChB;AACA;EACE,cAAc;AAChB;AACA;;EAEE,sBAAsB;AACxB;AACA;;EAEE,yBAAyB;AAC3B;AAEA,eAAe;AACf;EACE,qCAAqC;AACvC;AACA;EACE,cAAc;AAChB;AAEA,aAAa;AACb;EACE,oCAAoC;EACpC,WAAW;AACb;AACA;EACE,kBAAkB;AACpB;AACA;EACE,oEAAoE;AACtE;AAEA,kBAAkB;AAClB;EACE,mBAAmB;AACrB;AACA;;;EAGE,mBAAmB;AACrB;AACA;EACE,mBAAmB;AACrB;AAEA,oBAAoB;AACpB;;EAEE,cAAc;AAChB;AACA;EACE,aAAa;AACf;AACA;EACE,cAAc;AAChB;AACA;;EAEE,mBAAmB;AACrB;AACA;EACE,cAAc;EACd,mBAAmB;AACrB;AACA;;EAEE,mBAAmB;AACrB;AACA;EACE,mBAAmB;EACnB,cAAc;AAChB",
8
- "file": "light-theme-d5a8adb2.css",
8
+ "file": "light-theme_d5a8adb2.css",
9
9
  "sourcesContent": [
10
10
  "/* general */\nhtml[data-theme=\"light\"] #toolbar {\n background: #e8eff3;\n}\n\n/* icons */\nhtml[data-theme=\"light\"] .iconToolbar {\n fill: #404040;\n}\nhtml[data-theme=\"light\"] .iconToolbar:hover {\n fill: #757575 !important;\n}\n\n/* loaders */\nhtml[data-theme=\"light\"] #loader-icon {\n color: #404040;\n}\nhtml[data-theme=\"light\"] .livereload-circle[data-variant=\"off\"] {\n fill: #757575;\n}\nhtml[data-theme=\"light\"] .livereload-circle[data-variant=\"connecting\"] {\n fill: #717171;\n}\nhtml[data-theme=\"light\"] .livereload-ring {\n stroke: rgba(138, 136, 136, 0.46);\n}\n\n/* settings */\nhtml[data-theme=\"light\"] #settings-box,\nhtml[data-theme=\"light\"] #settings[data-active] button {\n background: #87acd3;\n}\nhtml[data-theme=\"light\"] .settings-box-item {\n background: #97b9da;\n}\nhtml[data-theme=\"light\"] #settings-box-header .settings-icon {\n stroke: #076570;\n}\nhtml[data-theme=\"light\"] #button-close-settings {\n fill: #076570;\n}\nhtml[data-theme=\"light\"] #settings-box h3,\nhtml[data-theme=\"light\"] #settings-box .category-title {\n color: #076570;\n}\nhtml[data-theme=\"light\"] #settings-box .category-title svg {\n fill: #076570;\n}\nhtml[data-theme=\"light\"] #settings-box .category-subtitle {\n color: #5d5d5d;\n}\nhtml[data-theme=\"light\"] label {\n color: #002e33;\n}\nhtml[data-theme=\"light\"] .switch input + * .slider,\nhtml[data-theme=\"light\"] .switch input + * .square {\n background-color: grey;\n}\nhtml[data-theme=\"light\"] .switch input:checked + * .slider,\nhtml[data-theme=\"light\"] .switch input:checked + * .square {\n background-color: #076570;\n}\n\n/* file input */\nhtml[data-theme=\"light\"] #file[data-active] {\n background: rgba(129, 177, 214, 0.34);\n}\nhtml[data-theme=\"light\"] #file-input {\n color: #076570;\n}\n\n/* tooltips */\nhtml[data-theme=\"light\"] .tooltip {\n background-color: rgb(138, 145, 154);\n color: #fff;\n}\nhtml[data-theme=\"light\"] .tooltipAction {\n border-color: #fff;\n}\nhtml[data-theme=\"light\"] .tooltip::after {\n border-color: rgb(138, 145, 154) transparent transparent transparent;\n}\n\n/* overflow menu */\nhtml[data-theme=\"light\"] #overflow-menu-button {\n background: #e8eff3;\n}\nhtml[data-theme=\"light\"]\n #toolbar[data-overflow-menu-visible]\n #overflow-menu-button {\n background: #a5a9ad;\n}\nhtml[data-theme=\"light\"] #overflow-menu {\n background: #dfe4e7;\n}\n\n/* page file list */\nhtml[data-theme=\"light\"] h2,\nhtml[data-theme=\"light\"] h4 {\n color: #076570;\n}\nhtml[data-theme=\"light\"] #fileIconSvgConfig {\n fill: #076570;\n}\nhtml[data-theme=\"light\"] #explorables h2 span {\n color: #ff8d00;\n}\nhtml[data-theme=\"light\"] article[data-page=\"file-list\"],\nhtml[data-theme=\"light\"] #file-list-link[data-active] a {\n background: #bbd5ea;\n}\nhtml[data-theme=\"light\"] #explorables fieldset input:checked + * {\n color: #ff8d00;\n background: #bbd5ea;\n}\nhtml[data-theme=\"light\"] #explorables #explorables-header,\nhtml[data-theme=\"light\"] #explorables fieldset label input + * {\n background: #ddf0ff;\n}\nhtml[data-theme=\"light\"] .execution-link {\n background: #ddf0ff;\n color: #076570;\n}\n"
11
11
  ]
@@ -5,7 +5,7 @@
5
5
  ],
6
6
  "names": [],
7
7
  "mappings": "AAAA;EACE,aAAa;EACb,kBAAkB;EAClB,MAAM;EACN,QAAQ;EACR,WAAW;EACX,mBAAmB;AACrB;;AAEA;EACE,WAAW;AACb;;AAEA;EACE,kBAAkB,EAAE,gCAAgC;EACpD,aAAa;EACb,kBAAkB;EAClB,UAAU;EACV,MAAM;EACN,SAAS;EACT,WAAW;EACX,YAAY;EACZ,mBAAmB;EACnB,UAAU;AACZ;;AAEA;EACE,kCAAkC;EAClC,yBAAyB;AAC3B;;AAEA;EACE,mBAAmB;EACnB,sBAAsB;EACtB,kBAAkB;AACpB;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,mBAAmB;AACrB;;AAEA;;EAEE,kBAAkB,EAAE,gCAAgC;AACtD;;AAEA;EACE,mBAAmB,EAAE,gCAAgC;EACrD,cAAc;EACd,UAAU;EACV,OAAO;EACP,kBAAkB;AACpB;;AAEA;EACE,YAAY;AACd",
8
- "file": "overflow-menu-35eb1889.css",
8
+ "file": "overflow-menu_35eb1889.css",
9
9
  "sourcesContent": [
10
10
  "#overflow-menu-button {\n display: none;\n position: absolute;\n top: 0;\n right: 0;\n width: 40px;\n background: #404040;\n}\n\n#dotsIconSvg {\n width: 25px;\n}\n\n#overflow-menu {\n visibility: hidden; /* disable keyboard navigation */\n display: none;\n position: absolute;\n left: 100%;\n top: 0;\n bottom: 0;\n width: 100%;\n height: 100%;\n background: #404040;\n opacity: 0;\n}\n\n#overflow-menu[data-animate] {\n transition-property: left, opacity;\n transition-duration: 0.3s;\n}\n\n#overflow-menu > * {\n display: table-cell;\n vertical-align: middle;\n text-align: center;\n}\n\n#toolbar[data-overflow-menu-enabled] #overflow-menu-button {\n display: block;\n}\n\n#toolbar[data-overflow-menu-visible] #overflow-menu-button {\n background: #030713;\n}\n\n#toolbar[data-overflow-menu-enabled][data-overflow-menu-visible]\n #toolbar-wrapper {\n visibility: hidden; /* disable keyboard navigation */\n}\n\n#toolbar[data-overflow-menu-visible] #overflow-menu {\n visibility: visible; /* restore keyboard navigation */\n display: block;\n opacity: 1;\n left: 0;\n margin-left: -40px;\n}\n\n#toolbar[data-overflow-menu-enabled] #settings-box {\n right: -40px;\n}\n"
11
11
  ]
@@ -5,7 +5,7 @@
5
5
  ],
6
6
  "names": [],
7
7
  "mappings": "AAAA;EACE,kBAAkB;AACpB;;AAEA;EACE,YAAY;EACZ,kBAAkB;AACpB;;AAEA;EACE,2BAA2B;AAC7B;;AAEA;EACE,aAAa;EACb,kBAAkB;EAClB,YAAY;EACZ,QAAQ;EACR,kBAAkB;EAClB,aAAa;EACb,eAAe;EACf,WAAW;EACX,yBAAyB;EACzB,0BAA0B;EAC1B,gBAAgB;EAChB,iBAAiB;EACjB,WAAW;AACb;;AAEA;EACE,cAAc;EACd,2BAA2B;AAC7B;;AAEA;EACE;IACE,UAAU;IACV,6BAA6B;EAC/B;EACA;IACE,UAAU;IACV,0BAA0B;EAC5B;AACF;;AAEA;EACE,gBAAgB;EAChB,eAAe;EACf,gBAAgB;EAChB,cAAc;EACd,YAAY;EACZ,aAAa;EACb,uBAAuB;AACzB;;AAEA;EACE,gBAAgB;EAChB,aAAa;EACb,eAAe;EACf,uBAAuB;AACzB;;AAEA;EACE,aAAa;EACb,mBAAmB;EACnB,YAAY;EACZ,gBAAgB;AAClB;;AAEA;EACE,UAAU;EACV,eAAe;EACf,eAAe;EACf,kBAAkB;EAClB,WAAW;EACX,YAAY;EACZ,kBAAkB;EAClB,QAAQ;AACV;;AAEA;EACE,qBAAqB;EACrB,eAAe;EACf,cAAc;EACd,cAAc;AAChB;;AAEA;EACE,YAAY;EACZ,aAAa;AACf;;AAEA;EACE,YAAY;AACd;;AAEA;EACE,cAAc;EACd,eAAe;EACf,mBAAmB;EACnB,cAAc;AAChB;;AAEA;EACE,cAAc;EACd,eAAe;EACf,qBAAqB;EACrB,mBAAmB;EACnB,eAAe;AACjB;;AAEA;EACE,kBAAkB;EAClB,mBAAmB;EACnB,iBAAiB;EACjB,WAAW;EACX,YAAY;AACd;;AAEA;EACE,cAAc;EACd,eAAe;EACf,gBAAgB;AAClB;;AAEA,oBAAoB;;AACpB;EACE,kBAAkB;EAClB,YAAY;EACZ,YAAY;EACZ,WAAW;EACX,UAAU;EACV,eAAe;AACjB;;AACA;EACE,kBAAkB;EAClB,UAAU;EACV,QAAQ;EACR,SAAS;AACX;;AACA;EACE,kBAAkB;EAClB,sBAAsB;EACtB,aAAa;EACb,WAAW;EACX,YAAY;EACZ,QAAQ;EACR,mBAAmB;EACnB,yBAAyB;EACzB,gBAAgB;EAChB,qBAAqB;AACvB;;AACA;EACE,kBAAkB;EAClB,WAAW;EACX,WAAW;EACX,UAAU;EACV,WAAW;EACX,QAAQ;EACR,kBAAkB;EAClB,yBAAyB;EACzB,cAAc;EACd,gBAAgB;EAChB,qBAAqB;AACvB;;AACA;EACE,kBAAkB;EAClB,WAAW;EACX,YAAY;;EAEZ;qDACmD;EACnD,iBAAiB;EACjB,yBAAyB;EACzB,mBAAmB;AACrB;;AACA;EACE,yBAAyB;AAC3B;;AACA;EACE,4BAA4B;EAC5B,yBAAyB;AAC3B;;AAEA;EACE,uCAAuC;EACvC,eAAe;AACjB;;AACA;;;EAGE,YAAY;AACd;;AACA;EACE,6BAA6B;AAC/B;;AACA;EACE,6BAA6B;AAC/B;;AACA;EACE,eAAe;AACjB",
8
- "file": "settings-b414e53b.css",
8
+ "file": "settings_b414e53b.css",
9
9
  "sourcesContent": [
10
10
  "#settings-button {\n position: relative;\n}\n\n#settings-button[data-warning] svg {\n fill: orange;\n stroke: darkorange;\n}\n\n#settings-button[data-warning] svg:hover {\n fill: darkorange !important;\n}\n\n#settings-box {\n display: none;\n position: absolute;\n bottom: 40px;\n right: 0;\n text-align: center;\n padding: 17px;\n font-size: 14px;\n color: #fff;\n background-color: #030713;\n border-radius: 5px 5px 0 0;\n min-width: 250px;\n min-height: 150px;\n z-index: -1;\n}\n\n[data-active] #settings-box {\n display: block;\n animation: comeUp ease 0.3s;\n}\n\n@keyframes comeUp {\n 0% {\n opacity: 0;\n transform: translate(0, 90px);\n }\n 100% {\n opacity: 1;\n transform: translate(0, 0);\n }\n}\n\n#settings-box-body {\n text-align: left;\n padding: 18px 0;\n max-height: 80vh;\n overflow: auto;\n width: 100vw;\n display: flex;\n justify-content: center;\n}\n\n.settings-box-items-wrapper {\n max-width: 700px;\n display: flex;\n flex-wrap: wrap;\n justify-content: center;\n}\n\n.settings-box-item {\n padding: 15px;\n background: #0c111b;\n width: 250px;\n margin: 9px 18px;\n}\n\n#settings-box-header .settings-icon {\n fill: none;\n stroke: #24b1b0;\n stroke-width: 2;\n margin-right: 10px;\n width: 22px;\n height: 22px;\n position: relative;\n top: 4px;\n}\n\n#settings-box h3 {\n display: inline-block;\n font-size: 20px;\n margin: 10px 0;\n color: #24b1b0;\n}\n\n#button-close-settings {\n float: right;\n fill: #24b1b0;\n}\n\n#button-close-settings:hover {\n opacity: 0.6;\n}\n\nlabel {\n color: #a9a8a8;\n font-size: 14px;\n padding-bottom: 3px;\n display: block;\n}\n\n#settings-box .category-title {\n color: #24b1b0;\n font-size: 16px;\n display: inline-block;\n margin-bottom: 15px;\n margin-top: 4px;\n}\n\n#settings-box .category-title svg {\n fill: currentColor;\n vertical-align: top;\n margin-right: 5px;\n width: 18px;\n height: 18px;\n}\n\n#settings-box .category-subtitle {\n color: #a9a8a8;\n font-size: 14px;\n max-width: 220px;\n}\n\n/* checkbox switch */\n.switch {\n position: relative;\n float: right;\n width: 3.5em;\n height: 2em;\n padding: 0;\n cursor: pointer;\n}\n.switch input {\n position: absolute;\n opacity: 0;\n width: 0;\n height: 0;\n}\n.switch .slider {\n position: absolute;\n vertical-align: middle;\n height: 0.3em;\n left: 0.5em;\n right: 0.5em;\n top: 50%;\n margin-top: -0.15em;\n background-color: #4c4c4c;\n transition: 0.4s;\n border-radius: 0.15em;\n}\n.switch .square {\n position: absolute;\n content: \"\";\n height: 1em;\n width: 1em;\n left: 0.5em;\n top: 50%;\n margin-top: -0.5em;\n background-color: #4c4c4c;\n color: #030713;\n transition: 0.4s;\n border-radius: 0.15em;\n}\n.switch input + * {\n position: relative;\n width: 100%;\n height: 100%;\n\n /* It's important to have a border (event transparent)\nTo be able to apply an outline to this element later*/\n border-width: 1px;\n border-color: transparent;\n border-style: solid;\n}\n.switch input:checked + * .slider {\n background-color: #24b1b0;\n}\n.switch input:checked + * .square {\n transform: translateX(1.6em);\n background-color: #24b1b0;\n}\n\n.settings-box-item[data-disabled] {\n background-color: rgba(12, 17, 27, 0.4);\n cursor: default;\n}\n.settings-box-item[data-disabled] .category-title,\n.settings-box-item[data-disabled] .switch,\n.settings-box-item[data-disabled] .category-subtitle {\n opacity: 0.4;\n}\n.settings-box-item[data-disabled] .category-title span {\n text-decoration: line-through;\n}\n.settings-box-item[data-disabled] .category-subtitle {\n text-decoration: line-through;\n}\n.settings-box-item[data-disabled] .switch {\n cursor: default;\n}\n"
11
11
  ]
@@ -13,16 +13,16 @@
13
13
  ],
14
14
  "names": [],
15
15
  "mappings": "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EACE,4BAA4B;EAC5B,yBAAyB;AAC3B;AAEA;EACE,uCAAuC;EACvC,eAAe;AACjB;AAEA;;;EAGE,YAAY;AACd;AAEA;EACE,6BAA6B;AAC/B;AAEA;EACE,6BAA6B;AAC/B;AAEA;EACE,eAAe;AACjB;ACpNA,YAAY;AACZ;EACE,mBAAmB;AACrB;AACA,UAAU;AACV;EACE,aAAa;AACf;AACA;EACE,wBAAwB;AAC1B;AACA,YAAY;AACZ;EACE,cAAc;AAChB;AACA;EACE,aAAa;AACf;AACA;EACE,aAAa;AACf;AACA;EACE,iCAAiC;AACnC;AACA,aAAa;AACb;;EAEE,mBAAmB;AACrB;AACA;EACE,mBAAmB;AACrB;AACA;EACE,eAAe;AACjB;AACA;EACE,aAAa;AACf;AACA;;EAEE,cAAc;AAChB;AACA;EACE,aAAa;AACf;AACA;EACE,cAAc;AAChB;AACA;EACE,cAAc;AAChB;AACA;;EAEE,sBAAsB;AACxB;AACA;;EAEE,yBAAyB;AAC3B;AACA,eAAe;AACf;EACE,qCAAqC;AACvC;AACA;EACE,cAAc;AAChB;AACA,aAAa;AACb;EACE,oCAAoC;EACpC,WAAW;AACb;AACA;EACE,kBAAkB;AACpB;AACA;EACE,oEAAoE;AACtE;AACA,kBAAkB;AAClB;EACE,mBAAmB;AACrB;AACA;;;EAGE,mBAAmB;AACrB;AACA;EACE,mBAAmB;AACrB;AACA,oBAAoB;AACpB;;EAEE,cAAc;AAChB;AACA;EACE,aAAa;AACf;AACA;EACE,cAAc;AAChB;AACA;;EAEE,mBAAmB;AACrB;AACA;EACE,cAAc;EACd,mBAAmB;AACrB;AACA;;EAEE,mBAAmB;AACrB;AACA;EACE,mBAAmB;EACnB,cAAc;AAChB;ACnHA;EACE,aAAa;EACb,iCAAiC;EACjC,WAAW;EACX,kBAAkB;EAClB,kBAAkB;EAClB,kBAAkB;EAClB,YAAY;EACZ,aAAa;EACb,eAAe;EACf,kBAAkB;EAClB,gBAAgB;EAChB,eAAe;AACjB;AAEA;EACE,WAAW;EACX,kBAAkB;EAClB,SAAS;EACT,UAAU;EACV,iBAAiB;EACjB,iBAAiB;EACjB,mBAAmB;EACnB,iEAAiE;AACnE;AAEA;;EAEE,cAAc;EACd,2BAA2B;AAC7B;AAEA;EACE;IACE,UAAU;EACZ;EACA;IACE,UAAU;EACZ;AACF;AAEA;EACE,qBAAqB;EACrB,yBAAyB;EACzB,kBAAkB;EAClB,gBAAgB;EAChB,eAAe;AACjB;AAEA;EACE,sBAAsB;EACtB,YAAY;EACZ,qBAAqB;AACvB;AAEA;EACE,WAAW;EACX,WAAW;EACX,YAAY;EACZ,sBAAsB;AACxB;ACnDA;EACE,2BAA2B;EAC3B,iCAAiC;EACjC,8BAA8B;AAChC;AAEA;EACE,wBAAwB;AAC1B;AAEA;EACE,sBAAsB;AACxB;AAEA;;EAEE,SAAS;EACT,UAAU;AACZ;AAEA;EACE,wBAAwB;AAC1B;AAEA,iBAAiB;AACjB;EACE,wBAAwB;AAC1B;AAEA;EACE,eAAe;EACf,OAAO;EACP,MAAM;EACN,WAAW;EACX,YAAY;EACZ,yBAAyB;EACzB,oCAAoC;AACtC;AAEA;EACE,eAAe;EACf,SAAS;EACT,YAAY;EACZ,WAAW;EACX,mBAAmB;AACrB;AAEA;EACE,cAAc;EACd,WAAW;EACX,YAAY;AACd;AAEA;EACE,mBAAmB;EACnB,sBAAsB;AACxB;AAEA;EACE,gBAAgB;EAChB,YAAY;EACZ,YAAY;EACZ,UAAU;AACZ;AAEA;EACE,eAAe;AACjB;AAEA;EACE,eAAe;AACjB;AAEA,iCAAiC;AACjC;EACE,cAAc;EACd,gBAAgB;AAClB;AAEA;EACE,WAAW;EACX,YAAY;EACZ,sBAAsB;EACtB,eAAe;EACf,cAAc;EACd,uBAAuB;EACvB,mBAAmB;EACnB,qBAAqB;EACrB,gBAAgB;EAChB,uBAAuB;AACzB;AAEA;EACE,6BAA6B;AAC/B;AAEA,4BAA4B;AAC5B;;EAEE,WAAW;AACb;AAEA;EACE,YAAY;EACZ,aAAa;EACb,cAAc;AAChB;AAEA;EACE,wBAAwB;AAC1B;AAEA;EACE,YAAY;EACZ,kBAAkB;EAClB,WAAW;EACX,qBAAqB;AACvB;AAEA;EACE,mBAAmB;AACrB;AAEA;EACE,kCAAkC;AACpC;AAEA;EACE,mBAAmB;AACrB;AAEA,eAAe;AACf;EACE,WAAW;AACb;AAEA,4BAA4B;AAC5B;EACE,cAAc;EACd,gBAAgB;EAChB,kBAAkB;EAClB,aAAa;EACb,WAAW;EACX,YAAY;EACZ,WAAW;EACX,UAAU;EACV,0BAA0B;EAC1B,qCAAqC;EACrC,mBAAmB;EACnB,+CAA+C;EAC/C,uBAAuB;AACzB;AAEA;EACE,iBAAiB;AACnB;AAEA;EACE,WAAW;EACX,YAAY;EACZ,UAAU;EACV,iBAAiB;AACnB;AAEA;EACE,aAAa;AACf;AAEA;EACE,eAAe;AACjB;AAEA;EACE,SAAS;AACX;AAEA;EACE,UAAU;AACZ;AAEA;;GAEG;AAEH;EACE,cAAc;AAChB",
16
- "file": "toolbar.main-be90ae92.css",
16
+ "file": "toolbar.main_be90ae92.css",
17
17
  "sourcesContent": [
18
- "/* Loader icon */\n#loader-icon {\n width: 20px;\n height: 20px;\n margin: 10px;\n transform: scaleX(-1);\n color: #cecece;\n}\n#loader-icon[data-animate] {\n opacity: 0;\n transform-origin: center;\n animation: rotateLoader 1s linear infinite !important;\n}\n@keyframes rotateLoader {\n 0% {\n transform: scaleX(-1) rotate(360deg);\n opacity: 1;\n }\n 50% {\n opacity: 0;\n }\n 100% {\n transform: scaleX(-1) rotate(0deg);\n opacity: 1;\n }\n}\n/* Check icon */\n#check-icon {\n width: 25px;\n height: 25px;\n margin: 7px;\n opacity: 0;\n stroke-width: 5;\n}\n#check-icon[data-animate] {\n opacity: 1;\n}\n#check-icon[data-animate] path {\n transform-origin: 50% 50%;\n stroke-dasharray: 48;\n stroke-dashoffset: 48;\n animation: stroke 0.5s cubic-bezier(0.65, 0, 0.45, 1) forwards;\n stroke: green;\n}\n@keyframes stroke {\n 100% {\n stroke-dashoffset: 0;\n }\n}\n/* Cross icon */\n#cross-icon {\n width: 20px;\n height: 20px;\n margin: 10px;\n opacity: 0;\n stroke-width: 5;\n}\n#cross-icon rect {\n width: 33px;\n height: 0;\n fill: #d74640;\n}\n#cross-icon[data-animate] {\n opacity: 1;\n}\n#cross-icon[data-animate] #cross_p1 {\n animation: draw 0.5s cubic-bezier(0.65, 0, 0.45, 1) forwards;\n}\n#cross-icon[data-animate] #cross_p2 {\n animation: draw 0.5s cubic-bezier(0.65, 0, 0.45, 1) forwards 0.2s;\n}\n@keyframes draw {\n 100% {\n height: 376.964px;\n width: 45px;\n }\n}\n\n/*# sourceMappingURL=execution.css-0ebe522f.map */",
19
- "#file_info_svg {\n width: 20px;\n height: 20px;\n margin: 10px;\n color: #cecece;\n}\n\n#file_info ul {\n margin: 0;\n margin-bottom: 0.7em;\n padding-left: 1em;\n}\n\n#file_info ul li {\n text-align: left;\n}\n\n.browser_support_text[data-warning],\n.files_compilation_text[data-warning] {\n background: orange;\n color: black;\n}\n\n/*# sourceMappingURL=compilation.css-209d68b4.map */",
20
- "button:focus,\na:focus,\ninput:focus,\n*[data-contains-hidden-input] input:focus + * {\n outline-style: none;\n outline-offset: -2px;\n}\n\n*[data-contains-hidden-input] input:focus + * {\n outline-width: 4px;\n outline-offset: -2px;\n}\n\nhtml[data-last-interaction=\"keyboard\"] button:focus,\nhtml[data-last-interaction=\"keyboard\"] a:focus,\nhtml[data-last-interaction=\"keyboard\"] input:focus,\nhtml[data-last-interaction=\"keyboard\"]\n *[data-contains-hidden-input]\n input:focus\n + * {\n outline-style: auto;\n}\n\nhtml[data-last-interaction=\"keyboard\"]\n *[data-contains-hidden-input]\n input:focus\n + * {\n outline-color: rgb(0, 150, 255);\n}\n\n/*\nDon't try to replace @-moz-document url-prefix() this by\n\n-moz-outline or -moz-outline-color\nBecause firefox would take into account outline instead of -moz-outline\n\n:moz-focus-ring\nBecause for some element we set the focus outline on a div which would not match :focusring\n*/\n\n@-moz-document url-prefix() {\n html[data-last-interaction=\"keyboard\"] button:focus,\n html[data-last-interaction=\"keyboard\"] a:focus,\n html[data-last-interaction=\"keyboard\"] input:focus,\n html[data-last-interaction=\"keyboard\"]\n *[data-input-customized]\n input:focus\n + * {\n outline-width: 2px;\n outline-offset: 0;\n outline-style: solid;\n /*\n force a blue color for firefox otherwise\n it uses outline-color: inherit\n making it unpredictible and sometimes hard to see\n */\n outline-color: rgb(0, 150, 255);\n }\n}\n\n::-moz-focus-inner {\n border: 0;\n}\n\n/*# sourceMappingURL=focus.css-3f9c156d.map */",
21
- "#eventsource-indicator button {\n position: relative;\n}\n\n#eventsource-indicator button svg {\n width: 40px;\n height: 40px;\n}\n\n#eventsource-indicator .event-source-livereload {\n position: absolute;\n width: 32px;\n height: 32px;\n margin: 4px;\n left: 0;\n top: 0;\n}\n\n.event-source-livereload[data-variant=\"enabled\"] {\n color: green;\n}\n\n#eventsource-indicator .event-source-icon {\n width: 40px;\n height: 40px;\n}\n\n.eventsource-circle {\n stroke: black;\n stroke-width: 0;\n}\n\n.eventsource-circle[data-variant=\"off\"] {\n fill: #cecece;\n}\n\n.eventsource-circle[data-variant=\"connecting\"] {\n fill: #cecece;\n animation: wink 1.2s ease-out infinite;\n transform-origin: center;\n}\n\n@keyframes wink {\n 0% {\n opacity: 0;\n }\n 80% {\n opacity: 1;\n }\n 100% {\n opacity: 0;\n }\n}\n\n.eventsource-ring {\n stroke: rgba(206, 206, 206, 0.46);\n stroke-width: 4;\n fill: transparent;\n animation: pulse 1.2s ease-out infinite;\n transform-origin: center;\n}\n\n@keyframes pulse {\n 0% {\n transform: scale(0);\n opacity: 0;\n }\n 50% {\n opacity: 1;\n }\n 100% {\n transform: scale(1);\n opacity: 0;\n }\n}\n\n.eventsource-circle[data-variant=\"connected\"] {\n fill: green;\n}\n\n.eventsource-circle[data-variant=\"failed\"] {\n fill: #cc0000;\n}\n\n/*# sourceMappingURL=eventsource.css-38cd0a36.map */",
22
- "#overflow-menu-button {\n display: none;\n position: absolute;\n top: 0;\n right: 0;\n width: 40px;\n background: #404040;\n}\n\n#dotsIconSvg {\n width: 25px;\n}\n\n#overflow-menu {\n visibility: hidden; /* disable keyboard navigation */\n display: none;\n position: absolute;\n left: 100%;\n top: 0;\n bottom: 0;\n width: 100%;\n height: 100%;\n background: #404040;\n opacity: 0;\n}\n\n#overflow-menu[data-animate] {\n transition-property: left, opacity;\n transition-duration: 0.3s;\n}\n\n#overflow-menu > * {\n display: table-cell;\n vertical-align: middle;\n text-align: center;\n}\n\n#toolbar[data-overflow-menu-enabled] #overflow-menu-button {\n display: block;\n}\n\n#toolbar[data-overflow-menu-visible] #overflow-menu-button {\n background: #030713;\n}\n\n#toolbar[data-overflow-menu-enabled][data-overflow-menu-visible]\n #toolbar-wrapper {\n visibility: hidden; /* disable keyboard navigation */\n}\n\n#toolbar[data-overflow-menu-visible] #overflow-menu {\n visibility: visible; /* restore keyboard navigation */\n display: block;\n opacity: 1;\n left: 0;\n margin-left: -40px;\n}\n\n#toolbar[data-overflow-menu-enabled] #settings-box {\n right: -40px;\n}\n\n/*# sourceMappingURL=overflow-menu.css-d9688a1c.map */",
23
- "#settings-button {\n position: relative;\n}\n\n#settings-button[data-warning] svg {\n fill: orange;\n stroke: darkorange;\n}\n\n#settings-button[data-warning] svg:hover {\n fill: darkorange !important;\n}\n\n#settings-box {\n display: none;\n position: absolute;\n bottom: 40px;\n right: 0;\n text-align: center;\n padding: 17px;\n font-size: 14px;\n color: #fff;\n background-color: #030713;\n border-radius: 5px 5px 0 0;\n min-width: 250px;\n min-height: 150px;\n z-index: -1;\n}\n\n[data-active] #settings-box {\n display: block;\n animation: comeUp ease 0.3s;\n}\n\n@keyframes comeUp {\n 0% {\n opacity: 0;\n transform: translate(0, 90px);\n }\n 100% {\n opacity: 1;\n transform: translate(0, 0);\n }\n}\n\n#settings-box-body {\n text-align: left;\n padding: 18px 0;\n max-height: 80vh;\n overflow: auto;\n width: 100vw;\n display: flex;\n justify-content: center;\n}\n\n.settings-box-items-wrapper {\n max-width: 700px;\n display: flex;\n flex-wrap: wrap;\n justify-content: center;\n}\n\n.settings-box-item {\n padding: 15px;\n background: #0c111b;\n width: 250px;\n margin: 9px 18px;\n}\n\n#settings-box-header .settings-icon {\n fill: none;\n stroke: #24b1b0;\n stroke-width: 2;\n margin-right: 10px;\n width: 22px;\n height: 22px;\n position: relative;\n top: 4px;\n}\n\n#settings-box h3 {\n display: inline-block;\n font-size: 20px;\n margin: 10px 0;\n color: #24b1b0;\n}\n\n#button-close-settings {\n float: right;\n fill: #24b1b0;\n}\n\n#button-close-settings:hover {\n opacity: 0.6;\n}\n\nlabel {\n color: #a9a8a8;\n font-size: 14px;\n padding-bottom: 3px;\n display: block;\n}\n\n#settings-box .category-title {\n color: #24b1b0;\n font-size: 16px;\n display: inline-block;\n margin-bottom: 15px;\n margin-top: 4px;\n}\n\n#settings-box .category-title svg {\n fill: currentColor;\n vertical-align: top;\n margin-right: 5px;\n width: 18px;\n height: 18px;\n}\n\n#settings-box .category-subtitle {\n color: #a9a8a8;\n font-size: 14px;\n max-width: 220px;\n}\n\n/* checkbox switch */\n\n.switch {\n position: relative;\n float: right;\n width: 3.5em;\n height: 2em;\n padding: 0;\n cursor: pointer;\n}\n\n.switch input {\n position: absolute;\n opacity: 0;\n width: 0;\n height: 0;\n}\n\n.switch .slider {\n position: absolute;\n vertical-align: middle;\n height: 0.3em;\n left: 0.5em;\n right: 0.5em;\n top: 50%;\n margin-top: -0.15em;\n background-color: #4c4c4c;\n transition: 0.4s;\n border-radius: 0.15em;\n}\n\n.switch .square {\n position: absolute;\n content: \"\";\n height: 1em;\n width: 1em;\n left: 0.5em;\n top: 50%;\n margin-top: -0.5em;\n background-color: #4c4c4c;\n color: #030713;\n transition: 0.4s;\n border-radius: 0.15em;\n}\n\n.switch input + * {\n position: relative;\n width: 100%;\n height: 100%;\n\n /* It's important to have a border (event transparent)\nTo be able to apply an outline to this element later*/\n border-width: 1px;\n border-color: transparent;\n border-style: solid;\n}\n\n.switch input:checked + * .slider {\n background-color: #24b1b0;\n}\n\n.switch input:checked + * .square {\n transform: translateX(1.6em);\n background-color: #24b1b0;\n}\n\n.settings-box-item[data-disabled] {\n background-color: rgba(12, 17, 27, 0.4);\n cursor: default;\n}\n\n.settings-box-item[data-disabled] .category-title,\n.settings-box-item[data-disabled] .switch,\n.settings-box-item[data-disabled] .category-subtitle {\n opacity: 0.4;\n}\n\n.settings-box-item[data-disabled] .category-title span {\n text-decoration: line-through;\n}\n\n.settings-box-item[data-disabled] .category-subtitle {\n text-decoration: line-through;\n}\n\n.settings-box-item[data-disabled] .switch {\n cursor: default;\n}\n\n/*# sourceMappingURL=settings.css-2b81b245.map */",
24
- "/* general */\nhtml[data-theme=\"light\"] #toolbar {\n background: #e8eff3;\n}\n/* icons */\nhtml[data-theme=\"light\"] .iconToolbar {\n fill: #404040;\n}\nhtml[data-theme=\"light\"] .iconToolbar:hover {\n fill: #757575 !important;\n}\n/* loaders */\nhtml[data-theme=\"light\"] #loader-icon {\n color: #404040;\n}\nhtml[data-theme=\"light\"] .livereload-circle[data-variant=\"off\"] {\n fill: #757575;\n}\nhtml[data-theme=\"light\"] .livereload-circle[data-variant=\"connecting\"] {\n fill: #717171;\n}\nhtml[data-theme=\"light\"] .livereload-ring {\n stroke: rgba(138, 136, 136, 0.46);\n}\n/* settings */\nhtml[data-theme=\"light\"] #settings-box,\nhtml[data-theme=\"light\"] #settings[data-active] button {\n background: #87acd3;\n}\nhtml[data-theme=\"light\"] .settings-box-item {\n background: #97b9da;\n}\nhtml[data-theme=\"light\"] #settings-box-header .settings-icon {\n stroke: #076570;\n}\nhtml[data-theme=\"light\"] #button-close-settings {\n fill: #076570;\n}\nhtml[data-theme=\"light\"] #settings-box h3,\nhtml[data-theme=\"light\"] #settings-box .category-title {\n color: #076570;\n}\nhtml[data-theme=\"light\"] #settings-box .category-title svg {\n fill: #076570;\n}\nhtml[data-theme=\"light\"] #settings-box .category-subtitle {\n color: #5d5d5d;\n}\nhtml[data-theme=\"light\"] label {\n color: #002e33;\n}\nhtml[data-theme=\"light\"] .switch input + * .slider,\nhtml[data-theme=\"light\"] .switch input + * .square {\n background-color: grey;\n}\nhtml[data-theme=\"light\"] .switch input:checked + * .slider,\nhtml[data-theme=\"light\"] .switch input:checked + * .square {\n background-color: #076570;\n}\n/* file input */\nhtml[data-theme=\"light\"] #file[data-active] {\n background: rgba(129, 177, 214, 0.34);\n}\nhtml[data-theme=\"light\"] #file-input {\n color: #076570;\n}\n/* tooltips */\nhtml[data-theme=\"light\"] .tooltip {\n background-color: rgb(138, 145, 154);\n color: #fff;\n}\nhtml[data-theme=\"light\"] .tooltipAction {\n border-color: #fff;\n}\nhtml[data-theme=\"light\"] .tooltip::after {\n border-color: rgb(138, 145, 154) transparent transparent transparent;\n}\n/* overflow menu */\nhtml[data-theme=\"light\"] #overflow-menu-button {\n background: #e8eff3;\n}\nhtml[data-theme=\"light\"]\n #toolbar[data-overflow-menu-visible]\n #overflow-menu-button {\n background: #a5a9ad;\n}\nhtml[data-theme=\"light\"] #overflow-menu {\n background: #dfe4e7;\n}\n/* page file list */\nhtml[data-theme=\"light\"] h2,\nhtml[data-theme=\"light\"] h4 {\n color: #076570;\n}\nhtml[data-theme=\"light\"] #fileIconSvgConfig {\n fill: #076570;\n}\nhtml[data-theme=\"light\"] #explorables h2 span {\n color: #ff8d00;\n}\nhtml[data-theme=\"light\"] article[data-page=\"file-list\"],\nhtml[data-theme=\"light\"] #file-list-link[data-active] a {\n background: #bbd5ea;\n}\nhtml[data-theme=\"light\"] #explorables fieldset input:checked + * {\n color: #ff8d00;\n background: #bbd5ea;\n}\nhtml[data-theme=\"light\"] #explorables #explorables-header,\nhtml[data-theme=\"light\"] #explorables fieldset label input + * {\n background: #ddf0ff;\n}\nhtml[data-theme=\"light\"] .execution-link {\n background: #ddf0ff;\n color: #076570;\n}\n\n/*# sourceMappingURL=light-theme.css-78b19a80.map */",
25
- ".tooltip {\n display: none;\n background-color: rgb(94, 94, 94);\n color: #fff;\n text-align: center;\n border-radius: 6px;\n position: absolute;\n bottom: 120%;\n padding: 10px;\n font-size: 14px;\n margin-left: -40px;\n max-width: 160px;\n cursor: default;\n}\n\n.tooltip::after {\n content: \"\";\n position: absolute;\n top: 100%;\n left: 60px;\n margin-left: -5px;\n border-width: 5px;\n border-style: solid;\n border-color: rgb(94, 94, 94) transparent transparent transparent;\n}\n\n[data-tooltip-visible] .tooltip,\n[data-tooltip-auto-visible] .tooltip {\n display: block;\n animation: fadeIn ease 0.4s;\n}\n\n@keyframes fadeIn {\n 0% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n}\n\n.tooltipAction {\n display: inline-block;\n border: 1px solid #a0a0a0;\n border-radius: 3px;\n padding: 3px 7px;\n margin-top: 6px;\n}\n\n.tooltipAction a {\n vertical-align: middle;\n color: white;\n text-decoration: none;\n}\n\n.tooltipIcon {\n fill: white;\n width: 20px;\n height: 20px;\n vertical-align: middle;\n}\n\n/*# sourceMappingURL=tooltip.css-03395ee6.map */",
18
+ "/* Loader icon */\n#loader-icon {\n width: 20px;\n height: 20px;\n margin: 10px;\n transform: scaleX(-1);\n color: #cecece;\n}\n#loader-icon[data-animate] {\n opacity: 0;\n transform-origin: center;\n animation: rotateLoader 1s linear infinite !important;\n}\n@keyframes rotateLoader {\n 0% {\n transform: scaleX(-1) rotate(360deg);\n opacity: 1;\n }\n 50% {\n opacity: 0;\n }\n 100% {\n transform: scaleX(-1) rotate(0deg);\n opacity: 1;\n }\n}\n/* Check icon */\n#check-icon {\n width: 25px;\n height: 25px;\n margin: 7px;\n opacity: 0;\n stroke-width: 5;\n}\n#check-icon[data-animate] {\n opacity: 1;\n}\n#check-icon[data-animate] path {\n transform-origin: 50% 50%;\n stroke-dasharray: 48;\n stroke-dashoffset: 48;\n animation: stroke 0.5s cubic-bezier(0.65, 0, 0.45, 1) forwards;\n stroke: green;\n}\n@keyframes stroke {\n 100% {\n stroke-dashoffset: 0;\n }\n}\n/* Cross icon */\n#cross-icon {\n width: 20px;\n height: 20px;\n margin: 10px;\n opacity: 0;\n stroke-width: 5;\n}\n#cross-icon rect {\n width: 33px;\n height: 0;\n fill: #d74640;\n}\n#cross-icon[data-animate] {\n opacity: 1;\n}\n#cross-icon[data-animate] #cross_p1 {\n animation: draw 0.5s cubic-bezier(0.65, 0, 0.45, 1) forwards;\n}\n#cross-icon[data-animate] #cross_p2 {\n animation: draw 0.5s cubic-bezier(0.65, 0, 0.45, 1) forwards 0.2s;\n}\n@keyframes draw {\n 100% {\n height: 376.964px;\n width: 45px;\n }\n}\n\n/*# sourceMappingURL=execution.css_f3377c10.map */",
19
+ "#file_info_svg {\n width: 20px;\n height: 20px;\n margin: 10px;\n color: #cecece;\n}\n\n#file_info ul {\n margin: 0;\n margin-bottom: 0.7em;\n padding-left: 1em;\n}\n\n#file_info ul li {\n text-align: left;\n}\n\n.browser_support_text[data-warning],\n.files_compilation_text[data-warning] {\n background: orange;\n color: black;\n}\n\n/*# sourceMappingURL=compilation.css_e37c747b.map */",
20
+ "button:focus,\na:focus,\ninput:focus,\n*[data-contains-hidden-input] input:focus + * {\n outline-style: none;\n outline-offset: -2px;\n}\n\n*[data-contains-hidden-input] input:focus + * {\n outline-width: 4px;\n outline-offset: -2px;\n}\n\nhtml[data-last-interaction=\"keyboard\"] button:focus,\nhtml[data-last-interaction=\"keyboard\"] a:focus,\nhtml[data-last-interaction=\"keyboard\"] input:focus,\nhtml[data-last-interaction=\"keyboard\"]\n *[data-contains-hidden-input]\n input:focus\n + * {\n outline-style: auto;\n}\n\nhtml[data-last-interaction=\"keyboard\"]\n *[data-contains-hidden-input]\n input:focus\n + * {\n outline-color: rgb(0, 150, 255);\n}\n\n/*\nDon't try to replace @-moz-document url-prefix() this by\n\n-moz-outline or -moz-outline-color\nBecause firefox would take into account outline instead of -moz-outline\n\n:moz-focus-ring\nBecause for some element we set the focus outline on a div which would not match :focusring\n*/\n\n@-moz-document url-prefix() {\n html[data-last-interaction=\"keyboard\"] button:focus,\n html[data-last-interaction=\"keyboard\"] a:focus,\n html[data-last-interaction=\"keyboard\"] input:focus,\n html[data-last-interaction=\"keyboard\"]\n *[data-input-customized]\n input:focus\n + * {\n outline-width: 2px;\n outline-offset: 0;\n outline-style: solid;\n /*\n force a blue color for firefox otherwise\n it uses outline-color: inherit\n making it unpredictible and sometimes hard to see\n */\n outline-color: rgb(0, 150, 255);\n }\n}\n\n::-moz-focus-inner {\n border: 0;\n}\n\n/*# sourceMappingURL=focus.css_896f3e45.map */",
21
+ "#eventsource-indicator button {\n position: relative;\n}\n\n#eventsource-indicator button svg {\n width: 40px;\n height: 40px;\n}\n\n#eventsource-indicator .event-source-livereload {\n position: absolute;\n width: 32px;\n height: 32px;\n margin: 4px;\n left: 0;\n top: 0;\n}\n\n.event-source-livereload[data-variant=\"enabled\"] {\n color: green;\n}\n\n#eventsource-indicator .event-source-icon {\n width: 40px;\n height: 40px;\n}\n\n.eventsource-circle {\n stroke: black;\n stroke-width: 0;\n}\n\n.eventsource-circle[data-variant=\"off\"] {\n fill: #cecece;\n}\n\n.eventsource-circle[data-variant=\"connecting\"] {\n fill: #cecece;\n animation: wink 1.2s ease-out infinite;\n transform-origin: center;\n}\n\n@keyframes wink {\n 0% {\n opacity: 0;\n }\n 80% {\n opacity: 1;\n }\n 100% {\n opacity: 0;\n }\n}\n\n.eventsource-ring {\n stroke: rgba(206, 206, 206, 0.46);\n stroke-width: 4;\n fill: transparent;\n animation: pulse 1.2s ease-out infinite;\n transform-origin: center;\n}\n\n@keyframes pulse {\n 0% {\n transform: scale(0);\n opacity: 0;\n }\n 50% {\n opacity: 1;\n }\n 100% {\n transform: scale(1);\n opacity: 0;\n }\n}\n\n.eventsource-circle[data-variant=\"connected\"] {\n fill: green;\n}\n\n.eventsource-circle[data-variant=\"failed\"] {\n fill: #cc0000;\n}\n\n/*# sourceMappingURL=eventsource.css_c0c71e7b.map */",
22
+ "#overflow-menu-button {\n display: none;\n position: absolute;\n top: 0;\n right: 0;\n width: 40px;\n background: #404040;\n}\n\n#dotsIconSvg {\n width: 25px;\n}\n\n#overflow-menu {\n visibility: hidden; /* disable keyboard navigation */\n display: none;\n position: absolute;\n left: 100%;\n top: 0;\n bottom: 0;\n width: 100%;\n height: 100%;\n background: #404040;\n opacity: 0;\n}\n\n#overflow-menu[data-animate] {\n transition-property: left, opacity;\n transition-duration: 0.3s;\n}\n\n#overflow-menu > * {\n display: table-cell;\n vertical-align: middle;\n text-align: center;\n}\n\n#toolbar[data-overflow-menu-enabled] #overflow-menu-button {\n display: block;\n}\n\n#toolbar[data-overflow-menu-visible] #overflow-menu-button {\n background: #030713;\n}\n\n#toolbar[data-overflow-menu-enabled][data-overflow-menu-visible]\n #toolbar-wrapper {\n visibility: hidden; /* disable keyboard navigation */\n}\n\n#toolbar[data-overflow-menu-visible] #overflow-menu {\n visibility: visible; /* restore keyboard navigation */\n display: block;\n opacity: 1;\n left: 0;\n margin-left: -40px;\n}\n\n#toolbar[data-overflow-menu-enabled] #settings-box {\n right: -40px;\n}\n\n/*# sourceMappingURL=overflow-menu.css_2859d519.map */",
23
+ "#settings-button {\n position: relative;\n}\n\n#settings-button[data-warning] svg {\n fill: orange;\n stroke: darkorange;\n}\n\n#settings-button[data-warning] svg:hover {\n fill: darkorange !important;\n}\n\n#settings-box {\n display: none;\n position: absolute;\n bottom: 40px;\n right: 0;\n text-align: center;\n padding: 17px;\n font-size: 14px;\n color: #fff;\n background-color: #030713;\n border-radius: 5px 5px 0 0;\n min-width: 250px;\n min-height: 150px;\n z-index: -1;\n}\n\n[data-active] #settings-box {\n display: block;\n animation: comeUp ease 0.3s;\n}\n\n@keyframes comeUp {\n 0% {\n opacity: 0;\n transform: translate(0, 90px);\n }\n 100% {\n opacity: 1;\n transform: translate(0, 0);\n }\n}\n\n#settings-box-body {\n text-align: left;\n padding: 18px 0;\n max-height: 80vh;\n overflow: auto;\n width: 100vw;\n display: flex;\n justify-content: center;\n}\n\n.settings-box-items-wrapper {\n max-width: 700px;\n display: flex;\n flex-wrap: wrap;\n justify-content: center;\n}\n\n.settings-box-item {\n padding: 15px;\n background: #0c111b;\n width: 250px;\n margin: 9px 18px;\n}\n\n#settings-box-header .settings-icon {\n fill: none;\n stroke: #24b1b0;\n stroke-width: 2;\n margin-right: 10px;\n width: 22px;\n height: 22px;\n position: relative;\n top: 4px;\n}\n\n#settings-box h3 {\n display: inline-block;\n font-size: 20px;\n margin: 10px 0;\n color: #24b1b0;\n}\n\n#button-close-settings {\n float: right;\n fill: #24b1b0;\n}\n\n#button-close-settings:hover {\n opacity: 0.6;\n}\n\nlabel {\n color: #a9a8a8;\n font-size: 14px;\n padding-bottom: 3px;\n display: block;\n}\n\n#settings-box .category-title {\n color: #24b1b0;\n font-size: 16px;\n display: inline-block;\n margin-bottom: 15px;\n margin-top: 4px;\n}\n\n#settings-box .category-title svg {\n fill: currentColor;\n vertical-align: top;\n margin-right: 5px;\n width: 18px;\n height: 18px;\n}\n\n#settings-box .category-subtitle {\n color: #a9a8a8;\n font-size: 14px;\n max-width: 220px;\n}\n\n/* checkbox switch */\n\n.switch {\n position: relative;\n float: right;\n width: 3.5em;\n height: 2em;\n padding: 0;\n cursor: pointer;\n}\n\n.switch input {\n position: absolute;\n opacity: 0;\n width: 0;\n height: 0;\n}\n\n.switch .slider {\n position: absolute;\n vertical-align: middle;\n height: 0.3em;\n left: 0.5em;\n right: 0.5em;\n top: 50%;\n margin-top: -0.15em;\n background-color: #4c4c4c;\n transition: 0.4s;\n border-radius: 0.15em;\n}\n\n.switch .square {\n position: absolute;\n content: \"\";\n height: 1em;\n width: 1em;\n left: 0.5em;\n top: 50%;\n margin-top: -0.5em;\n background-color: #4c4c4c;\n color: #030713;\n transition: 0.4s;\n border-radius: 0.15em;\n}\n\n.switch input + * {\n position: relative;\n width: 100%;\n height: 100%;\n\n /* It's important to have a border (event transparent)\nTo be able to apply an outline to this element later*/\n border-width: 1px;\n border-color: transparent;\n border-style: solid;\n}\n\n.switch input:checked + * .slider {\n background-color: #24b1b0;\n}\n\n.switch input:checked + * .square {\n transform: translateX(1.6em);\n background-color: #24b1b0;\n}\n\n.settings-box-item[data-disabled] {\n background-color: rgba(12, 17, 27, 0.4);\n cursor: default;\n}\n\n.settings-box-item[data-disabled] .category-title,\n.settings-box-item[data-disabled] .switch,\n.settings-box-item[data-disabled] .category-subtitle {\n opacity: 0.4;\n}\n\n.settings-box-item[data-disabled] .category-title span {\n text-decoration: line-through;\n}\n\n.settings-box-item[data-disabled] .category-subtitle {\n text-decoration: line-through;\n}\n\n.settings-box-item[data-disabled] .switch {\n cursor: default;\n}\n\n/*# sourceMappingURL=settings.css_61548139.map */",
24
+ "/* general */\nhtml[data-theme=\"light\"] #toolbar {\n background: #e8eff3;\n}\n/* icons */\nhtml[data-theme=\"light\"] .iconToolbar {\n fill: #404040;\n}\nhtml[data-theme=\"light\"] .iconToolbar:hover {\n fill: #757575 !important;\n}\n/* loaders */\nhtml[data-theme=\"light\"] #loader-icon {\n color: #404040;\n}\nhtml[data-theme=\"light\"] .livereload-circle[data-variant=\"off\"] {\n fill: #757575;\n}\nhtml[data-theme=\"light\"] .livereload-circle[data-variant=\"connecting\"] {\n fill: #717171;\n}\nhtml[data-theme=\"light\"] .livereload-ring {\n stroke: rgba(138, 136, 136, 0.46);\n}\n/* settings */\nhtml[data-theme=\"light\"] #settings-box,\nhtml[data-theme=\"light\"] #settings[data-active] button {\n background: #87acd3;\n}\nhtml[data-theme=\"light\"] .settings-box-item {\n background: #97b9da;\n}\nhtml[data-theme=\"light\"] #settings-box-header .settings-icon {\n stroke: #076570;\n}\nhtml[data-theme=\"light\"] #button-close-settings {\n fill: #076570;\n}\nhtml[data-theme=\"light\"] #settings-box h3,\nhtml[data-theme=\"light\"] #settings-box .category-title {\n color: #076570;\n}\nhtml[data-theme=\"light\"] #settings-box .category-title svg {\n fill: #076570;\n}\nhtml[data-theme=\"light\"] #settings-box .category-subtitle {\n color: #5d5d5d;\n}\nhtml[data-theme=\"light\"] label {\n color: #002e33;\n}\nhtml[data-theme=\"light\"] .switch input + * .slider,\nhtml[data-theme=\"light\"] .switch input + * .square {\n background-color: grey;\n}\nhtml[data-theme=\"light\"] .switch input:checked + * .slider,\nhtml[data-theme=\"light\"] .switch input:checked + * .square {\n background-color: #076570;\n}\n/* file input */\nhtml[data-theme=\"light\"] #file[data-active] {\n background: rgba(129, 177, 214, 0.34);\n}\nhtml[data-theme=\"light\"] #file-input {\n color: #076570;\n}\n/* tooltips */\nhtml[data-theme=\"light\"] .tooltip {\n background-color: rgb(138, 145, 154);\n color: #fff;\n}\nhtml[data-theme=\"light\"] .tooltipAction {\n border-color: #fff;\n}\nhtml[data-theme=\"light\"] .tooltip::after {\n border-color: rgb(138, 145, 154) transparent transparent transparent;\n}\n/* overflow menu */\nhtml[data-theme=\"light\"] #overflow-menu-button {\n background: #e8eff3;\n}\nhtml[data-theme=\"light\"]\n #toolbar[data-overflow-menu-visible]\n #overflow-menu-button {\n background: #a5a9ad;\n}\nhtml[data-theme=\"light\"] #overflow-menu {\n background: #dfe4e7;\n}\n/* page file list */\nhtml[data-theme=\"light\"] h2,\nhtml[data-theme=\"light\"] h4 {\n color: #076570;\n}\nhtml[data-theme=\"light\"] #fileIconSvgConfig {\n fill: #076570;\n}\nhtml[data-theme=\"light\"] #explorables h2 span {\n color: #ff8d00;\n}\nhtml[data-theme=\"light\"] article[data-page=\"file-list\"],\nhtml[data-theme=\"light\"] #file-list-link[data-active] a {\n background: #bbd5ea;\n}\nhtml[data-theme=\"light\"] #explorables fieldset input:checked + * {\n color: #ff8d00;\n background: #bbd5ea;\n}\nhtml[data-theme=\"light\"] #explorables #explorables-header,\nhtml[data-theme=\"light\"] #explorables fieldset label input + * {\n background: #ddf0ff;\n}\nhtml[data-theme=\"light\"] .execution-link {\n background: #ddf0ff;\n color: #076570;\n}\n\n/*# sourceMappingURL=light-theme.css_72a60fa3.map */",
25
+ ".tooltip {\n display: none;\n background-color: rgb(94, 94, 94);\n color: #fff;\n text-align: center;\n border-radius: 6px;\n position: absolute;\n bottom: 120%;\n padding: 10px;\n font-size: 14px;\n margin-left: -40px;\n max-width: 160px;\n cursor: default;\n}\n\n.tooltip::after {\n content: \"\";\n position: absolute;\n top: 100%;\n left: 60px;\n margin-left: -5px;\n border-width: 5px;\n border-style: solid;\n border-color: rgb(94, 94, 94) transparent transparent transparent;\n}\n\n[data-tooltip-visible] .tooltip,\n[data-tooltip-auto-visible] .tooltip {\n display: block;\n animation: fadeIn ease 0.4s;\n}\n\n@keyframes fadeIn {\n 0% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n}\n\n.tooltipAction {\n display: inline-block;\n border: 1px solid #a0a0a0;\n border-radius: 3px;\n padding: 3px 7px;\n margin-top: 6px;\n}\n\n.tooltipAction a {\n vertical-align: middle;\n color: white;\n text-decoration: none;\n}\n\n.tooltipIcon {\n fill: white;\n width: 20px;\n height: 20px;\n vertical-align: middle;\n}\n\n/*# sourceMappingURL=tooltip.css_a94a8bdd.map */",
26
26
  "@import \"./execution/execution.css\";\n@import \"./compilation/compilation.css\";\n@import \"./focus/focus.css\";\n@import \"./eventsource/eventsource.css\";\n@import \"./responsive/overflow-menu.css\";\n@import \"./settings/settings.css\";\n@import \"./theme/light-theme.css\";\n@import \"./tooltip/tooltip.css\";\n\nhtml[data-animation-disabled] * {\n transition: none !important;\n animation-duration: 0s !important;\n animation-delay: 0s !important;\n}\n\n[data-when] {\n display: none !important;\n}\n\n* {\n box-sizing: border-box;\n}\n\nhtml,\nbody {\n margin: 0;\n padding: 0;\n}\n\nhtml {\n font-family: arial, sans;\n}\n\n/* global utils */\n[data-force-hide] {\n display: none !important;\n}\n\n#toolbar-overlay {\n position: fixed;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n filter: url(#better-blur);\n background-color: rgba(0, 0, 0, 0.2);\n}\n\n#toolbar {\n position: fixed;\n bottom: 0;\n height: 40px;\n width: 100%;\n background: #404040;\n}\n\n#toolbar-wrapper {\n display: table;\n width: 100%;\n height: 100%;\n}\n\n#toolbar-wrapper > * {\n display: table-cell;\n vertical-align: middle;\n}\n\n#toolbar button {\n background: none;\n border: none;\n height: 100%;\n padding: 0;\n}\n\n#toolbar button:hover {\n cursor: pointer;\n}\n\n#toolbar a:hover {\n cursor: pointer;\n}\n\n/* file name input & indicators */\n#file {\n max-width: 40%;\n padding: 0 1.2em;\n}\n\n#file-input {\n width: 100%;\n padding: 0px;\n font-family: monospace;\n font-size: 15px;\n color: #cecece;\n background: transparent;\n border: transparent;\n display: inline-block;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n#file-input:focus {\n border-bottom: 1px solid grey;\n}\n\n/* file and settings icons */\n#fileIconSvg,\n.settings-icon {\n width: 20px;\n}\n\n.iconToolbar {\n height: 40px;\n fill: #cecece;\n color: #cecece;\n}\n\n.iconToolbar:hover {\n fill: #909090 !important;\n}\n\n.toolbar-icon-wrapper {\n height: 100%;\n text-align: center;\n width: 40px;\n display: inline-block;\n}\n\n#file-list-link[data-active] a {\n background: #1f262c;\n}\n\n#file[data-active] {\n background: rgba(31, 38, 44, 0.72);\n}\n\n#settings[data-active] button {\n background: #030713;\n}\n\n/* close icon */\n#crossIconSvg {\n width: 18px;\n}\n\n/* re-open toolbar-trigger */\n#toolbar-trigger {\n display: block;\n overflow: hidden;\n position: absolute;\n bottom: -32px;\n right: 20px;\n height: 40px;\n width: 40px;\n padding: 0;\n border-radius: 5px 5px 0 0;\n border: 1px solid rgba(0, 0, 0, 0.33);\n border-bottom: none;\n box-shadow: 0px 0px 6px 2px rgba(0, 0, 0, 0.46);\n background: transparent;\n}\n\n#toolbar-trigger[data-animate] {\n transition: 600ms;\n}\n\n#toolbar-trigger #jsenvLogoSvg {\n width: 35px;\n height: 35px;\n opacity: 0;\n transition: 600ms;\n}\n\nhtml[data-toolbar-visible] #toolbar-trigger {\n display: none;\n}\n\n#toolbar-trigger:hover {\n cursor: pointer;\n}\n\n#toolbar-trigger[data-expanded] {\n bottom: 0;\n}\n\n#toolbar-trigger[data-expanded] #jsenvLogoSvg {\n opacity: 1;\n}\n\n/* #jsenvLogo {\n transition: 600ms;\n} */\n\n#toolbar a {\n color: inherit;\n}\n"
27
27
  ]
28
28
  }
@@ -5,7 +5,7 @@
5
5
  ],
6
6
  "names": [],
7
7
  "mappings": "AAAA;EACE,aAAa;EACb,iCAAiC;EACjC,WAAW;EACX,kBAAkB;EAClB,kBAAkB;EAClB,kBAAkB;EAClB,YAAY;EACZ,aAAa;EACb,eAAe;EACf,kBAAkB;EAClB,gBAAgB;EAChB,eAAe;AACjB;;AAEA;EACE,WAAW;EACX,kBAAkB;EAClB,SAAS;EACT,UAAU;EACV,iBAAiB;EACjB,iBAAiB;EACjB,mBAAmB;EACnB,iEAAiE;AACnE;;AAEA;;EAEE,cAAc;EACd,2BAA2B;AAC7B;;AAEA;EACE;IACE,UAAU;EACZ;EACA;IACE,UAAU;EACZ;AACF;;AAEA;EACE,qBAAqB;EACrB,yBAAyB;EACzB,kBAAkB;EAClB,gBAAgB;EAChB,eAAe;AACjB;;AAEA;EACE,sBAAsB;EACtB,YAAY;EACZ,qBAAqB;AACvB;;AAEA;EACE,WAAW;EACX,WAAW;EACX,YAAY;EACZ,sBAAsB;AACxB",
8
- "file": "tooltip-b99a4b4d.css",
8
+ "file": "tooltip_b99a4b4d.css",
9
9
  "sourcesContent": [
10
10
  ".tooltip {\n display: none;\n background-color: rgb(94, 94, 94);\n color: #fff;\n text-align: center;\n border-radius: 6px;\n position: absolute;\n bottom: 120%;\n padding: 10px;\n font-size: 14px;\n margin-left: -40px;\n max-width: 160px;\n cursor: default;\n}\n\n.tooltip::after {\n content: \"\";\n position: absolute;\n top: 100%;\n left: 60px;\n margin-left: -5px;\n border-width: 5px;\n border-style: solid;\n border-color: rgb(94, 94, 94) transparent transparent transparent;\n}\n\n[data-tooltip-visible] .tooltip,\n[data-tooltip-auto-visible] .tooltip {\n display: block;\n animation: fadeIn ease 0.4s;\n}\n\n@keyframes fadeIn {\n 0% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n}\n\n.tooltipAction {\n display: inline-block;\n border: 1px solid #a0a0a0;\n border-radius: 3px;\n padding: 3px 7px;\n margin-top: 6px;\n}\n\n.tooltipAction a {\n vertical-align: middle;\n color: white;\n text-decoration: none;\n}\n\n.tooltipIcon {\n fill: white;\n width: 20px;\n height: 20px;\n vertical-align: middle;\n}\n"
11
11
  ]
@@ -790,7 +790,7 @@ html[data-toolbar-visible] #toolbar-trigger {
790
790
  color: inherit;
791
791
  }
792
792
 
793
- /*# sourceMappingURL=assets/toolbar.main.css-846920e9.map */</style>
793
+ /*# sourceMappingURL=assets/toolbar.main.css_269d7ce2.map */</style>
794
794
  <script id="jsenv_inject_systemjs">/*
795
795
  * SJS 6.11.0
796
796
  * Minimal SystemJS Build
@@ -1906,9 +1906,7 @@ html[data-toolbar-visible] #toolbar-trigger {
1906
1906
  -->
1907
1907
  <script type="systemjs-importmap">
1908
1908
  {
1909
- "imports": {
1910
- "./toolbar.main.js": "./toolbar.main-a5ef2c60.js"
1911
- }
1909
+ "imports": {}
1912
1910
  }</script>
1913
1911
  <script>
1914
1912
  // here we should create something like window.toolbar = {}
@@ -4917,7 +4915,7 @@ html[data-toolbar-visible] #toolbar-trigger {
4917
4915
  };
4918
4916
  });
4919
4917
 
4920
- //# sourceMappingURL=toolbar.main-a5ef2c60.js.map</script>
4918
+ //# sourceMappingURL=toolbar.main_a5ef2c60.js.map</script>
4921
4919
 
4922
4920
 
4923
4921
  </body></html>
@@ -1,4 +1,5 @@
1
1
  {
2
- "assets/jsenv-logo.svg": "assets/jsenv-logo-188b9ca6.svg",
3
- "toolbar_injector.js": "toolbar_injector-997dbaa0.js"
2
+ ".jsenv/build/best/src/internal/dev_server/toolbar/jsenv-logo.svg": "assets/jsenv-logo_188b9ca6.svg",
3
+ "toolbar_injector.js": "toolbar_injector_4f9c19e5.js",
4
+ "toolbar_injector.js.map": "toolbar_injector_4f9c19e5.js.map"
4
5
  }
@@ -746,7 +746,7 @@
746
746
  return then ? value.then(then) : value;
747
747
  }
748
748
 
749
- var TOOLBAR_BUILD_RELATIVE_URL = "dist/toolbar/toolbar-1fbf8dcb.html";
749
+ var TOOLBAR_BUILD_RELATIVE_URL = "dist/toolbar/toolbar_412abb83.html";
750
750
 
751
751
  function _call(body, then, direct) {
752
752
  if (direct) {
@@ -761,7 +761,7 @@
761
761
  }
762
762
  }
763
763
 
764
- var jsenvLogoSvgUrl = new URL("assets/jsenv-logo-188b9ca6.svg", document.currentScript && document.currentScript.src || document.baseURI);
764
+ var jsenvLogoSvgUrl = new URL("assets/jsenv-logo_188b9ca6.svg", document.currentScript && document.currentScript.src || document.baseURI);
765
765
 
766
766
  function _async(f) {
767
767
  return function () {
@@ -970,4 +970,4 @@
970
970
 
971
971
  })();
972
972
 
973
- //# sourceMappingURL=toolbar_injector-997dbaa0.js.map
973
+ //# sourceMappingURL=toolbar_injector_4f9c19e5.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "file": "toolbar_injector-997dbaa0.js",
3
+ "file": "toolbar_injector_4f9c19e5.js",
4
4
  "sources": [
5
5
  "../../helpers/babel/typeof/typeof.js",
6
6
  "../../helpers/babel/defineProperty/defineProperty.js",
@@ -25,7 +25,7 @@
25
25
  "import { fetchUrl } from \"./fetch-browser.js\"\n\nexport const fetchJson = async (url, options = {}) => {\n const response = await fetchUrl(url, options)\n const object = await response.json()\n return object\n}\n",
26
26
  "import { fetchJson } from \"../../browser_utils/fetchJson.js\"\n\nexport const fetchExploringJson = async ({ signal } = {}) => {\n try {\n const exploringInfo = await fetchJson(\"/.jsenv/exploring.json\", {\n signal,\n })\n return exploringInfo\n } catch (e) {\n if (signal && signal.aborted && e.name === \"AbortError\") {\n throw e\n }\n throw new Error(\n `Cannot communicate with exploring server due to a network error\n--- error stack ---\n${e.stack}`,\n )\n }\n}\n",
27
27
  "export const updateIframeOverflowOnParentWindow = () => {\n if (!window.parent) {\n // can happen while parent iframe reloads\n return\n }\n\n const aTooltipIsOpened =\n document.querySelector(\"[data-tooltip-visible]\") ||\n document.querySelector(\"[data-tooltip-auto-visible]\")\n const settingsAreOpened = document.querySelector(\"#settings[data-active]\")\n\n if (aTooltipIsOpened || settingsAreOpened) {\n enableIframeOverflowOnParentWindow()\n } else {\n disableIframeOverflowOnParentWindow()\n }\n}\n\nlet iframeOverflowEnabled = false\nconst enableIframeOverflowOnParentWindow = () => {\n if (iframeOverflowEnabled) return\n iframeOverflowEnabled = true\n\n const iframe = getToolbarIframe()\n const transitionDuration = iframe.style.transitionDuration\n setStyles(iframe, { \"height\": \"100%\", \"transition-duration\": \"0ms\" })\n if (transitionDuration) {\n setTimeout(() => {\n setStyles(iframe, { \"transition-duration\": transitionDuration })\n })\n }\n}\n\nconst disableIframeOverflowOnParentWindow = () => {\n if (!iframeOverflowEnabled) return\n iframeOverflowEnabled = false\n\n const iframe = getToolbarIframe()\n const transitionDuration = iframe.style.transitionDuration\n setStyles(iframe, { \"height\": \"40px\", \"transition-duration\": \"0ms\" })\n if (transitionDuration) {\n setTimeout(() => {\n setStyles(iframe, { \"transition-duration\": transitionDuration })\n })\n }\n}\n\nexport const getToolbarIframe = () => {\n const iframes = Array.from(window.parent.document.querySelectorAll(\"iframe\"))\n return iframes.find((iframe) => iframe.contentWindow === window)\n}\n\nexport const forceHideElement = (element) => {\n element.setAttribute(\"data-force-hide\", \"\")\n}\n\nexport const removeForceHideElement = (element) => {\n element.removeAttribute(\"data-force-hide\")\n}\n\nexport const setStyles = (element, styles) => {\n const elementStyle = element.style\n const restoreStyles = Object.keys(styles).map((styleName) => {\n let restore\n if (styleName in elementStyle) {\n const currentStyle = elementStyle[styleName]\n restore = () => {\n elementStyle[styleName] = currentStyle\n }\n } else {\n restore = () => {\n delete elementStyle[styleName]\n }\n }\n\n elementStyle[styleName] = styles[styleName]\n\n return restore\n })\n return () => {\n restoreStyles.forEach((restore) => restore())\n }\n}\n\nexport const setAttributes = (element, attributes) => {\n Object.keys(attributes).forEach((name) => {\n element.setAttribute(name, attributes[name])\n })\n}\n\nexport const getDocumentScroll = () => {\n return {\n x: document.documentElement.scrollLeft,\n y: document.documentElement.scrollTop,\n }\n}\n\nexport const toolbarSectionIsActive = (element) => {\n return element.hasAttribute(\"data-active\")\n}\n\nexport const activateToolbarSection = (element) => {\n element.setAttribute(\"data-active\", \"\")\n}\n\nexport const deactivateToolbarSection = (element) => {\n element.removeAttribute(\"data-active\")\n}\n",
28
- "import { fetchExploringJson } from \"@jsenv/core/src/internal/dev_server/exploring/fetchExploringJson.js\"\nimport { setAttributes, setStyles } from \"./util/dom.js\"\n\n// eslint-disable-next-line no-undef\nconst TOOLBAR_BUILD_RELATIVE_URL = \"dist/toolbar/toolbar-1fbf8dcb.html\"\nconst jsenvLogoSvgUrl = new URL(\"./jsenv-logo.svg\", import.meta.url)\n\nconst injectToolbar = async () => {\n await new Promise((resolve) => {\n if (window.requestIdleCallback) {\n window.requestIdleCallback(resolve)\n } else {\n window.requestAnimationFrame(resolve)\n }\n })\n\n const { jsenvDirectoryRelativeUrl } = await fetchExploringJson()\n const jsenvDirectoryServerUrl = resolveUrl(\n jsenvDirectoryRelativeUrl,\n document.location.origin,\n )\n\n const placeholder = getToolbarPlaceholder()\n\n const iframe = document.createElement(\"iframe\")\n setAttributes(iframe, {\n tabindex: -1,\n // sandbox: \"allow-forms allow-modals allow-pointer-lock allow-popups allow-presentation allow-same-origin allow-scripts allow-top-navigation-by-user-activation\",\n // allow: \"accelerometer; ambient-light-sensor; camera; encrypted-media; geolocation; gyroscope; microphone; midi; payment; vr\",\n allowtransparency: true,\n })\n setStyles(iframe, {\n \"position\": \"fixed\",\n \"zIndex\": 1000,\n \"bottom\": 0,\n \"left\": 0,\n \"width\": \"100%\",\n \"height\": 0,\n /* ensure toolbar children are not focusable when hidden */\n \"visibility\": \"hidden\",\n \"transition-duration\": \"300ms\",\n \"transition-property\": \"height, visibility\",\n \"border\": \"none\",\n })\n const iframeLoadedPromise = iframeToLoadedPromise(iframe)\n const jsenvToolbarHtmlServerUrl = resolveUrl(\n TOOLBAR_BUILD_RELATIVE_URL,\n jsenvDirectoryServerUrl,\n )\n // set iframe src BEFORE putting it into the DOM (prevent firefox adding an history entry)\n iframe.setAttribute(\"src\", jsenvToolbarHtmlServerUrl)\n placeholder.parentNode.replaceChild(iframe, placeholder)\n\n await iframeLoadedPromise\n iframe.removeAttribute(\"tabindex\")\n\n const div = document.createElement(\"div\")\n div.innerHTML = `\n<div id=\"jsenv-toolbar-trigger\">\n <svg id=\"jsenv-toolbar-trigger-icon\">\n <use xlink:href=\"${jsenvLogoSvgUrl}#jsenv-logo\"></use>\n </svg>\n <style>\n #jsenv-toolbar-trigger {\n display: block;\n overflow: hidden;\n position: fixed;\n z-index: 1000;\n bottom: -32px;\n right: 20px;\n height: 40px;\n width: 40px;\n padding: 0;\n margin: 0;\n border-radius: 5px 5px 0 0;\n border: 1px solid rgba(0, 0, 0, 0.33);\n border-bottom: none;\n box-shadow: 0px 0px 6px 2px rgba(0, 0, 0, 0.46);\n background: transparent;\n text-align: center;\n transition: 600ms;\n }\n\n #jsenv-toolbar-trigger:hover {\n cursor: pointer;\n }\n\n #jsenv-toolbar-trigger[data-expanded] {\n bottom: 0;\n }\n\n #jsenv-toolbar-trigger-icon {\n width: 35px;\n height: 35px;\n opacity: 0;\n transition: 600ms;\n }\n\n #jsenv-toolbar-trigger[data-expanded] #jsenv-toolbar-trigger-icon {\n opacity: 1;\n }\n </style>\n</div>`\n const toolbarTrigger = div.firstElementChild\n iframe.parentNode.appendChild(toolbarTrigger)\n\n let timer\n toolbarTrigger.onmouseenter = () => {\n toolbarTrigger.setAttribute(\"data-animate\", \"\")\n timer = setTimeout(expandToolbarTrigger, 500)\n }\n toolbarTrigger.onmouseleave = () => {\n clearTimeout(timer)\n collapseToolbarTrigger()\n }\n toolbarTrigger.onfocus = () => {\n toolbarTrigger.removeAttribute(\"data-animate\")\n expandToolbarTrigger()\n }\n toolbarTrigger.onblur = () => {\n toolbarTrigger.removeAttribute(\"data-animate\")\n clearTimeout(timer)\n collapseToolbarTrigger()\n }\n toolbarTrigger.onclick = () => {\n sendCommandToToolbar(iframe, \"showToolbar\")\n }\n\n const showToolbarTrigger = () => {\n toolbarTrigger.style.display = \"block\"\n }\n\n const hideToolbarTrigger = () => {\n toolbarTrigger.style.display = \"none\"\n }\n\n const expandToolbarTrigger = () => {\n toolbarTrigger.setAttribute(\"data-expanded\", \"\")\n }\n\n const collapseToolbarTrigger = () => {\n toolbarTrigger.removeAttribute(\"data-expanded\", \"\")\n }\n\n hideToolbarTrigger()\n addToolbarEventCallback(iframe, \"toolbar-visibility-change\", (visible) => {\n if (visible) {\n hideToolbarTrigger()\n } else {\n showToolbarTrigger()\n }\n })\n addToolbarEventCallback(iframe, \"toolbar_ready\", () => {\n sendCommandToToolbar(iframe, \"renderToolbar\")\n })\n\n return iframe\n}\n\nconst addToolbarEventCallback = (iframe, eventName, callback) => {\n const messageEventCallback = (messageEvent) => {\n const { data } = messageEvent\n if (typeof data !== \"object\") {\n return\n }\n const { __jsenv__ } = data\n if (!__jsenv__) {\n return\n }\n if (__jsenv__.event !== eventName) {\n return\n }\n callback(__jsenv__.data)\n }\n\n window.addEventListener(\"message\", messageEventCallback, false)\n return () => {\n window.removeEventListener(\"message\", messageEventCallback, false)\n }\n}\n\nconst sendCommandToToolbar = (iframe, command, ...args) => {\n iframe.contentWindow.postMessage(\n {\n __jsenv__: {\n command,\n args,\n },\n },\n window.origin,\n )\n}\n\nconst getToolbarPlaceholder = () => {\n const placeholder = queryPlaceholder()\n if (placeholder) {\n if (document.body.contains(placeholder)) {\n return placeholder\n }\n // otherwise iframe would not be visible because in <head>\n console.warn(\n \"element with [data-jsenv-toolbar-placeholder] must be inside document.body\",\n )\n return createTooolbarPlaceholder()\n }\n return createTooolbarPlaceholder()\n}\n\nconst queryPlaceholder = () => {\n return document.querySelector(\"[data-jsenv-toolbar-placeholder]\")\n}\n\nconst createTooolbarPlaceholder = () => {\n const placeholder = document.createElement(\"span\")\n document.body.appendChild(placeholder)\n return placeholder\n}\n\nconst iframeToLoadedPromise = (iframe) => {\n return new Promise((resolve) => {\n const onload = () => {\n iframe.removeEventListener(\"load\", onload, true)\n resolve()\n }\n iframe.addEventListener(\"load\", onload, true)\n })\n}\n\nconst resolveUrl = (url, baseUrl) => String(new URL(url, baseUrl))\n\nif (document.readyState === \"complete\") {\n injectToolbar()\n} else {\n window.addEventListener(\"load\", injectToolbar)\n}\n"
28
+ "import { fetchExploringJson } from \"@jsenv/core/src/internal/dev_server/exploring/fetchExploringJson.js\"\nimport { setAttributes, setStyles } from \"./util/dom.js\"\n\n// eslint-disable-next-line no-undef\nconst TOOLBAR_BUILD_RELATIVE_URL = \"dist/toolbar/toolbar_412abb83.html\"\nconst jsenvLogoSvgUrl = new URL(\"./jsenv-logo.svg\", import.meta.url)\n\nconst injectToolbar = async () => {\n await new Promise((resolve) => {\n if (window.requestIdleCallback) {\n window.requestIdleCallback(resolve)\n } else {\n window.requestAnimationFrame(resolve)\n }\n })\n\n const { jsenvDirectoryRelativeUrl } = await fetchExploringJson()\n const jsenvDirectoryServerUrl = resolveUrl(\n jsenvDirectoryRelativeUrl,\n document.location.origin,\n )\n\n const placeholder = getToolbarPlaceholder()\n\n const iframe = document.createElement(\"iframe\")\n setAttributes(iframe, {\n tabindex: -1,\n // sandbox: \"allow-forms allow-modals allow-pointer-lock allow-popups allow-presentation allow-same-origin allow-scripts allow-top-navigation-by-user-activation\",\n // allow: \"accelerometer; ambient-light-sensor; camera; encrypted-media; geolocation; gyroscope; microphone; midi; payment; vr\",\n allowtransparency: true,\n })\n setStyles(iframe, {\n \"position\": \"fixed\",\n \"zIndex\": 1000,\n \"bottom\": 0,\n \"left\": 0,\n \"width\": \"100%\",\n \"height\": 0,\n /* ensure toolbar children are not focusable when hidden */\n \"visibility\": \"hidden\",\n \"transition-duration\": \"300ms\",\n \"transition-property\": \"height, visibility\",\n \"border\": \"none\",\n })\n const iframeLoadedPromise = iframeToLoadedPromise(iframe)\n const jsenvToolbarHtmlServerUrl = resolveUrl(\n TOOLBAR_BUILD_RELATIVE_URL,\n jsenvDirectoryServerUrl,\n )\n // set iframe src BEFORE putting it into the DOM (prevent firefox adding an history entry)\n iframe.setAttribute(\"src\", jsenvToolbarHtmlServerUrl)\n placeholder.parentNode.replaceChild(iframe, placeholder)\n\n await iframeLoadedPromise\n iframe.removeAttribute(\"tabindex\")\n\n const div = document.createElement(\"div\")\n div.innerHTML = `\n<div id=\"jsenv-toolbar-trigger\">\n <svg id=\"jsenv-toolbar-trigger-icon\">\n <use xlink:href=\"${jsenvLogoSvgUrl}#jsenv-logo\"></use>\n </svg>\n <style>\n #jsenv-toolbar-trigger {\n display: block;\n overflow: hidden;\n position: fixed;\n z-index: 1000;\n bottom: -32px;\n right: 20px;\n height: 40px;\n width: 40px;\n padding: 0;\n margin: 0;\n border-radius: 5px 5px 0 0;\n border: 1px solid rgba(0, 0, 0, 0.33);\n border-bottom: none;\n box-shadow: 0px 0px 6px 2px rgba(0, 0, 0, 0.46);\n background: transparent;\n text-align: center;\n transition: 600ms;\n }\n\n #jsenv-toolbar-trigger:hover {\n cursor: pointer;\n }\n\n #jsenv-toolbar-trigger[data-expanded] {\n bottom: 0;\n }\n\n #jsenv-toolbar-trigger-icon {\n width: 35px;\n height: 35px;\n opacity: 0;\n transition: 600ms;\n }\n\n #jsenv-toolbar-trigger[data-expanded] #jsenv-toolbar-trigger-icon {\n opacity: 1;\n }\n </style>\n</div>`\n const toolbarTrigger = div.firstElementChild\n iframe.parentNode.appendChild(toolbarTrigger)\n\n let timer\n toolbarTrigger.onmouseenter = () => {\n toolbarTrigger.setAttribute(\"data-animate\", \"\")\n timer = setTimeout(expandToolbarTrigger, 500)\n }\n toolbarTrigger.onmouseleave = () => {\n clearTimeout(timer)\n collapseToolbarTrigger()\n }\n toolbarTrigger.onfocus = () => {\n toolbarTrigger.removeAttribute(\"data-animate\")\n expandToolbarTrigger()\n }\n toolbarTrigger.onblur = () => {\n toolbarTrigger.removeAttribute(\"data-animate\")\n clearTimeout(timer)\n collapseToolbarTrigger()\n }\n toolbarTrigger.onclick = () => {\n sendCommandToToolbar(iframe, \"showToolbar\")\n }\n\n const showToolbarTrigger = () => {\n toolbarTrigger.style.display = \"block\"\n }\n\n const hideToolbarTrigger = () => {\n toolbarTrigger.style.display = \"none\"\n }\n\n const expandToolbarTrigger = () => {\n toolbarTrigger.setAttribute(\"data-expanded\", \"\")\n }\n\n const collapseToolbarTrigger = () => {\n toolbarTrigger.removeAttribute(\"data-expanded\", \"\")\n }\n\n hideToolbarTrigger()\n addToolbarEventCallback(iframe, \"toolbar-visibility-change\", (visible) => {\n if (visible) {\n hideToolbarTrigger()\n } else {\n showToolbarTrigger()\n }\n })\n addToolbarEventCallback(iframe, \"toolbar_ready\", () => {\n sendCommandToToolbar(iframe, \"renderToolbar\")\n })\n\n return iframe\n}\n\nconst addToolbarEventCallback = (iframe, eventName, callback) => {\n const messageEventCallback = (messageEvent) => {\n const { data } = messageEvent\n if (typeof data !== \"object\") {\n return\n }\n const { __jsenv__ } = data\n if (!__jsenv__) {\n return\n }\n if (__jsenv__.event !== eventName) {\n return\n }\n callback(__jsenv__.data)\n }\n\n window.addEventListener(\"message\", messageEventCallback, false)\n return () => {\n window.removeEventListener(\"message\", messageEventCallback, false)\n }\n}\n\nconst sendCommandToToolbar = (iframe, command, ...args) => {\n iframe.contentWindow.postMessage(\n {\n __jsenv__: {\n command,\n args,\n },\n },\n window.origin,\n )\n}\n\nconst getToolbarPlaceholder = () => {\n const placeholder = queryPlaceholder()\n if (placeholder) {\n if (document.body.contains(placeholder)) {\n return placeholder\n }\n // otherwise iframe would not be visible because in <head>\n console.warn(\n \"element with [data-jsenv-toolbar-placeholder] must be inside document.body\",\n )\n return createTooolbarPlaceholder()\n }\n return createTooolbarPlaceholder()\n}\n\nconst queryPlaceholder = () => {\n return document.querySelector(\"[data-jsenv-toolbar-placeholder]\")\n}\n\nconst createTooolbarPlaceholder = () => {\n const placeholder = document.createElement(\"span\")\n document.body.appendChild(placeholder)\n return placeholder\n}\n\nconst iframeToLoadedPromise = (iframe) => {\n return new Promise((resolve) => {\n const onload = () => {\n iframe.removeEventListener(\"load\", onload, true)\n resolve()\n }\n iframe.addEventListener(\"load\", onload, true)\n })\n}\n\nconst resolveUrl = (url, baseUrl) => String(new URL(url, baseUrl))\n\nif (document.readyState === \"complete\") {\n injectToolbar()\n} else {\n window.addEventListener(\"load\", injectToolbar)\n}\n"
29
29
  ],
30
30
  "names": [
31
31
  "nativeTypeOf",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jsenv/core",
3
- "version": "24.6.5",
3
+ "version": "25.0.0-alpha.0",
4
4
  "description": "Tool to develop, test and build js projects",
5
5
  "license": "MIT",
6
6
  "repository": {
package/readme.md CHANGED
@@ -196,8 +196,8 @@ import { buildProject } from "@jsenv/core"
196
196
  await buildProject({
197
197
  projectDirectoryUrl: new URL("./", import.meta.url),
198
198
  buildDirectoryRelativeUrl: "dist",
199
- entryPointMap: {
200
- "./main.html": "./main.prod.html",
199
+ entryPoints: {
200
+ "./main.html": "main.prod.html",
201
201
  },
202
202
  format: "esmodule",
203
203
  minify: true,