@jsenv/plugin-toolbar 0.0.1 → 0.1.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 (165) hide show
  1. package/dist/css/{toolbar_main.css → toolbar.css} +285 -319
  2. package/dist/html/toolbar.html +91 -80
  3. package/dist/js/toolbar_core.js +1792 -0
  4. package/dist/js/toolbar_injector.js +60 -121
  5. package/dist/jsenv_plugin_toolbar.js +18 -12
  6. package/package.json +10 -3
  7. package/src/client/core/animation_actions.js +8 -0
  8. package/src/client/core/animation_effects.js +12 -0
  9. package/src/client/core/animation_signals.js +12 -0
  10. package/src/client/core/changes_actions.js +9 -0
  11. package/src/client/core/changes_signals.js +3 -0
  12. package/src/client/core/execution_actions.js +50 -0
  13. package/src/client/core/execution_effects.js +22 -0
  14. package/src/client/core/execution_signals.js +19 -0
  15. package/src/client/core/notification_actions.js +71 -0
  16. package/src/client/core/notification_context.js +1 -0
  17. package/src/client/core/notification_effects.js +11 -0
  18. package/src/client/core/notification_signals.js +13 -0
  19. package/src/client/{communication/parent_window_communication.js → core/parent_window_actions.js} +10 -0
  20. package/src/client/core/parent_window_context.js +7 -0
  21. package/src/client/core/parent_window_effects.js +20 -0
  22. package/src/client/core/parent_window_signals.js +34 -0
  23. package/src/client/core/server_actions.js +9 -0
  24. package/src/client/core/server_effects.js +11 -0
  25. package/src/client/core/server_signals.js +12 -0
  26. package/src/client/core/settings_actions.js +9 -0
  27. package/src/client/core/settings_signals.js +3 -0
  28. package/src/client/core/theme_actions.js +9 -0
  29. package/src/client/core/theme_effects.js +8 -0
  30. package/src/client/core/theme_signals.js +12 -0
  31. package/src/client/core/toolbar_logger.js +29 -0
  32. package/src/client/core/toolbar_open_actions.js +9 -0
  33. package/src/client/core/toolbar_open_effects.js +5 -0
  34. package/src/client/core/toolbar_open_signals.js +12 -0
  35. package/src/client/core/toolbar_state_context.js +5 -0
  36. package/src/client/core/toolbar_state_effects.js +10 -0
  37. package/src/client/core/toolbar_state_signals.js +20 -0
  38. package/src/client/core/tooltip_actions.js +7 -0
  39. package/src/client/toolbar.html +116 -89
  40. package/src/client/toolbar_core.js +8 -0
  41. package/src/client/toolbar_injector.js +64 -39
  42. package/src/client/ui/changes_indicator/changes_indicator.js +66 -0
  43. package/src/client/{execution/execution.css → ui/document_execution_indicator/document_execution_indicator.css} +10 -14
  44. package/src/client/ui/document_execution_indicator/document_execution_indicator.js +66 -0
  45. package/src/client/ui/document_index_link/document_index_link.js +8 -0
  46. package/src/client/ui/globals.css +103 -0
  47. package/src/client/{jsenv_logo.svg → ui/jsenv_logo.svg} +0 -0
  48. package/src/client/{eventsource/eventsource.css → ui/server_indicator/server_indicator.css} +14 -24
  49. package/src/client/ui/server_indicator/server_indicator.js +62 -0
  50. package/src/client/ui/toolbar.css +76 -0
  51. package/src/client/ui/toolbar_close_button/toolbar_close_button.js +15 -0
  52. package/src/client/{responsive/overflow_menu.css → ui/toolbar_menu_overflow/toolbar_menu_overflow.css} +10 -11
  53. package/src/client/{responsive/toolbar_responsive.js → ui/toolbar_menu_overflow/toolbar_menu_overflow.js} +25 -31
  54. package/src/client/ui/toolbar_opening/toolbar_opening.js +73 -0
  55. package/src/client/ui/toolbar_overlay/toolbar_overlay.js +76 -0
  56. package/src/client/{theme → ui/toolbar_settings}/jsenv_theme.css +6 -6
  57. package/src/client/{theme/light_theme.css → ui/toolbar_settings/theme_light.css} +9 -10
  58. package/src/client/ui/toolbar_settings/toolbar_animation_setting.js +27 -0
  59. package/src/client/ui/toolbar_settings/toolbar_autoreload_setting.js +79 -0
  60. package/src/client/ui/toolbar_settings/toolbar_notification_setting.js +88 -0
  61. package/src/client/{settings/settings.css → ui/toolbar_settings/toolbar_settings.css} +24 -23
  62. package/src/client/ui/toolbar_settings/toolbar_settings.js +54 -0
  63. package/src/client/ui/toolbar_settings/toolbar_theme_setting.js +17 -0
  64. package/src/client/ui/toolbar_ui.js +21 -0
  65. package/src/client/{tooltip/tooltip.css → ui/tooltips/tooltips.css} +13 -7
  66. package/src/client/{util → ui/util}/animation.js +0 -0
  67. package/src/client/ui/util/dom.js +57 -0
  68. package/src/client/{util → ui/util}/fetch_using_xhr.js +0 -0
  69. package/src/client/{util → ui/util}/fetching.js +0 -0
  70. package/src/client/{util → ui/util}/iframe_to_parent_href.js +0 -0
  71. package/src/client/{util → ui/util}/responsive.js +0 -0
  72. package/src/client/{util → ui/util}/util.js +0 -0
  73. package/src/client/{variant → ui}/variant.js +0 -0
  74. package/src/jsenv_plugin_toolbar.js +19 -7
  75. package/dist/js/toolbar_main.js +0 -900
  76. package/scripts/build.mjs +0 -20
  77. package/src/client/animation/toolbar_animation_core.js +0 -30
  78. package/src/client/animation/toolbar_animation_ui.js +0 -21
  79. package/src/client/eventsource/toolbar_eventsource.js +0 -57
  80. package/src/client/execution/toolbar_execution.js +0 -88
  81. package/src/client/focus/focus.css +0 -61
  82. package/src/client/focus/toolbar_focus.js +0 -19
  83. package/src/client/notification/toolbar_notification.js +0 -181
  84. package/src/client/settings/toolbar_settings.js +0 -47
  85. package/src/client/theme/toolbar_theme.js +0 -34
  86. package/src/client/toolbar_main.css +0 -173
  87. package/src/client/toolbar_main.js +0 -174
  88. package/src/client/toolbar_state.js +0 -16
  89. package/src/client/tooltip/tooltip.js +0 -39
  90. package/src/client/util/dom.js +0 -108
  91. package/src/client/util/jsenv_logger.js +0 -28
  92. package/src/client/util/preferences.js +0 -10
  93. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/ast/src/html/html_src_set.js +0 -18
  94. 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 +0 -45
  95. 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 +0 -12
  96. 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 +0 -32
  97. 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 +0 -12
  98. 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 +0 -23
  99. 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 +0 -12
  100. 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 +0 -33
  101. 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 +0 -87
  102. 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 +0 -59
  103. 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 +0 -12
  104. 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 +0 -88
  105. 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 +0 -90
  106. 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 +0 -12
  107. 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 +0 -28
  108. 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 +0 -19
  109. 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 +0 -140
  110. 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 +0 -183
  111. 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 +0 -12
  112. 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 +0 -60
  113. 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 +0 -105
  114. 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 +0 -12
  115. 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 +0 -200
  116. 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 +0 -49
  117. 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 +0 -12
  118. 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 +0 -110
  119. 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 +0 -36
  120. 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 +0 -12
  121. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/packages/jsenv-plugin-toolbar/src/client/toolbar.html +0 -319
  122. 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 +0 -232
  123. 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 +0 -12
  124. 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 +0 -161
  125. 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 +0 -12
  126. 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 +0 -176
  127. 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 +0 -12
  128. 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 +0 -18
  129. 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 +0 -12
  130. 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 +0 -60
  131. 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 +0 -41
  132. 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 +0 -12
  133. 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 +0 -307
  134. 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 +0 -12
  135. 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 +0 -108
  136. 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 +0 -10
  137. 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 +0 -10
  138. 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 +0 -112
  139. 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 +0 -74
  140. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/src/plugins/autoreload/client/autoreload.js +0 -201
  141. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/src/plugins/autoreload/client/autoreload.js.map +0 -12
  142. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/src/plugins/autoreload/client/autoreload_preference.js +0 -11
  143. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/src/plugins/autoreload/client/reload.js +0 -138
  144. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/src/plugins/autoreload/client/reload.js.map +0 -12
  145. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/src/plugins/autoreload/client/url_helpers.js +0 -20
  146. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/src/plugins/explorer/client/explorer.html +0 -590
  147. 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 +0 -7
  148. 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 +0 -12
  149. 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 +0 -114
  150. 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 +0 -124
  151. 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 +0 -227
  152. 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 +0 -28
  153. 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 +0 -82
  154. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/src/plugins/ribbon/client/ribbon.js +0 -51
  155. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/src/plugins/server_events/client/connection_manager.js +0 -165
  156. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/src/plugins/server_events/client/events_manager.js +0 -75
  157. 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 +0 -20
  158. 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 +0 -12
  159. 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 +0 -83
  160. 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 +0 -12
  161. 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 +0 -98
  162. package/tests/toolbar_basic/.jsenv/chrome@107.00/@fs/Users/d.maillard/dev/jsenv/jsenv-core/src/plugins/supervisor/client/supervisor.js +0 -966
  163. package/tests/toolbar_basic/main.html +0 -18
  164. package/tests/toolbar_basic/start_dev_server.mjs +0 -7
  165. package/todo.txt +0 -0
@@ -1,114 +0,0 @@
1
-
2
- // eslint-disable-next-line no-undef
3
- const { rootDirectoryUrl, groups, files } = SERVER_PARAMS
4
-
5
- const groupPreference = {
6
- has: () => localStorage.hasOwnProperty("explorer_active_group"),
7
- get: () =>
8
- localStorage.hasOwnProperty("explorer_active_group")
9
- ? JSON.parse(localStorage.getItem("explorer_active_group"))
10
- : undefined,
11
- set: (value) =>
12
- localStorage.setItem("explorer_active_group", JSON.stringify(value)),
13
- }
14
- const directoryNameFromUrl = (directoryUrl) => {
15
- const slashLastIndex = directoryUrl.lastIndexOf(
16
- "/",
17
- // ignore last slash
18
- directoryUrl.length - 2,
19
- )
20
- if (slashLastIndex === -1) return ""
21
- return directoryUrl.slice(slashLastIndex + 1)
22
- }
23
- const urlToVisitFromRelativeUrl = (relativeUrl) => {
24
- return `${window.origin}/${relativeUrl}`
25
- }
26
-
27
- const fileListElement = document
28
- .querySelector(`[data-page="file-list"]`)
29
- .cloneNode(true)
30
- const directoryName = directoryNameFromUrl(rootDirectoryUrl)
31
- const span = fileListElement.querySelector("#directory_relative_url")
32
- span.title = rootDirectoryUrl
33
- span.textContent = directoryName
34
-
35
- const h4 = fileListElement.querySelector("h4")
36
- const ul = fileListElement.querySelector("ul")
37
- ul.innerHTML = files
38
- .map(
39
- (file) =>
40
- `<li>
41
- <a
42
- class="execution-link"
43
- data-relative-url=${file.relativeUrl}
44
- href=${urlToVisitFromRelativeUrl(file.relativeUrl)}
45
- >
46
- ${file.relativeUrl}
47
- </a>
48
- </li>`,
49
- )
50
- .join("")
51
-
52
- const groupFieldset = fileListElement.querySelector("#filter-group-set")
53
- const groupNames = Object.keys(groups)
54
- groupFieldset.innerHTML = groupNames
55
- .map(
56
- (key) => `<label data-contains-hidden-input class="item">
57
- <input type="radio" name="filter-group" value="${key}"/>
58
- <span>${key}</span>
59
- </label>`,
60
- )
61
- .join("")
62
-
63
- const groupFromLocalStorage = groupPreference.get()
64
- const currentGroup =
65
- groupFromLocalStorage && groupNames.includes(groupFromLocalStorage)
66
- ? groupFromLocalStorage
67
- : groupNames[0]
68
- Array.from(groupFieldset.querySelectorAll("input")).forEach(
69
- (inputRadio) => {
70
- inputRadio.checked = inputRadio.value === currentGroup
71
- inputRadio.onchange = () => {
72
- if (inputRadio.checked) {
73
- groupPreference.set(inputRadio.value)
74
- enableGroup(inputRadio.value)
75
- }
76
- }
77
- },
78
- )
79
-
80
- const enableGroup = (groupName) => {
81
- const arrayOfElementToShow = []
82
- const arrayOfElementToHide = []
83
- files.forEach((file) => {
84
- const fileLink = fileListElement.querySelector(
85
- `a[data-relative-url="${file.relativeUrl}"]`,
86
- )
87
- const fileLi = fileLink.parentNode
88
- if (file.meta[groupName]) {
89
- arrayOfElementToShow.push(fileLi)
90
- } else {
91
- arrayOfElementToHide.push(fileLi)
92
- }
93
- })
94
- arrayOfElementToShow.forEach((element) => {
95
- element.removeAttribute("data-force-hide")
96
- })
97
- arrayOfElementToHide.forEach((element) => {
98
- element.setAttribute("data-force-hide", "")
99
- })
100
-
101
- h4.innerHTML =
102
- arrayOfElementToShow.length === 0
103
- ? `No file found.
104
- Config for this section: <pre>${JSON.stringify(
105
- groups[groupName],
106
- null,
107
- " ",
108
- )}</pre>`
109
- : `${arrayOfElementToShow.length} files found. Click on the one you want to execute`
110
- }
111
- enableGroup(currentGroup)
112
-
113
- document.querySelector("main").appendChild(fileListElement)
114
-
@@ -1,124 +0,0 @@
1
-
2
- // make menu scrollable
3
- const getMenuWrapperSize = () => {
4
- return document.querySelector(".menu-wrapper").getBoundingClientRect()
5
- .width
6
- }
7
- const getMenuSize = () => {
8
- return document.querySelector(".menu").getBoundingClientRect().width
9
- }
10
- const getMenuPosition = () => {
11
- return document.querySelector(".menu-wrapper").scrollLeft
12
- }
13
-
14
- let menuWrapperSize = getMenuWrapperSize()
15
- let menuSize = getMenuSize()
16
- const menuVisibleSize = menuWrapperSize
17
- let menuInvisibleSize = menuSize - menuVisibleSize
18
- const scrollDuration = 300
19
- const leftPaddle = document.querySelector(".left-paddle")
20
- const rightPaddle = document.querySelector(".right-paddle")
21
-
22
- const handleMenuScroll = () => {
23
- menuInvisibleSize = menuSize - menuWrapperSize
24
- const menuPosition = getMenuPosition()
25
- const menuEndOffset = menuInvisibleSize
26
- // show & hide the paddles, depending on scroll position
27
- if (menuPosition <= 0 && menuEndOffset <= 0) {
28
- // hide both paddles if the window is large enough to display all tabs
29
- leftPaddle.classList.add("hidden")
30
- rightPaddle.classList.add("hidden")
31
- } else if (menuPosition <= 0) {
32
- leftPaddle.classList.add("hidden")
33
- rightPaddle.classList.remove("hidden")
34
- } else if (menuPosition < Math.floor(menuEndOffset)) {
35
- // show both paddles in the middle
36
- leftPaddle.classList.remove("hidden")
37
- rightPaddle.classList.remove("hidden")
38
- } else if (menuPosition >= Math.floor(menuEndOffset)) {
39
- leftPaddle.classList.remove("hidden")
40
- rightPaddle.classList.add("hidden")
41
- }
42
- }
43
- handleMenuScroll()
44
-
45
- window.onresize = () => {
46
- menuWrapperSize = getMenuWrapperSize()
47
- menuSize = getMenuSize()
48
- handleMenuScroll()
49
- }
50
- // finally, what happens when we are actually scrolling the menu
51
- document.querySelector(".menu-wrapper").onscroll = () => {
52
- handleMenuScroll()
53
- }
54
-
55
- const startJavaScriptAnimation = ({
56
- duration = 300,
57
- timingFunction = (t) => t,
58
- onProgress = () => {},
59
- onCancel = () => {},
60
- onComplete = () => {},
61
- }) => {
62
- duration = parseInt(duration, 10)
63
- const startMs = performance.now()
64
- let currentRequestAnimationFrameId
65
- let done = false
66
- let rawProgress = 0
67
- let progress = 0
68
- const handler = () => {
69
- currentRequestAnimationFrameId = null
70
- const nowMs = performance.now()
71
- rawProgress = Math.min((nowMs - startMs) / duration, 1)
72
- progress = timingFunction(rawProgress)
73
- done = rawProgress === 1
74
- onProgress({
75
- done,
76
- rawProgress,
77
- progress,
78
- })
79
- if (done) {
80
- onComplete()
81
- } else {
82
- currentRequestAnimationFrameId =
83
- window.requestAnimationFrame(handler)
84
- }
85
- }
86
- handler()
87
- const stop = () => {
88
- if (currentRequestAnimationFrameId) {
89
- window.cancelAnimationFrame(currentRequestAnimationFrameId)
90
- currentRequestAnimationFrameId = null
91
- }
92
- if (!done) {
93
- done = true
94
- onCancel({
95
- rawProgress,
96
- progress,
97
- })
98
- }
99
- }
100
- return stop
101
- }
102
- rightPaddle.onclick = () => {
103
- const scrollStart = document.querySelector(".menu-wrapper").scrollLeft
104
- const scrollEnd = scrollStart + menuWrapperSize
105
- startJavaScriptAnimation({
106
- duration: scrollDuration,
107
- onProgress: ({ progress }) => {
108
- document.querySelector(".menu-wrapper").scrollLeft =
109
- scrollStart + (scrollEnd - scrollStart) * progress
110
- },
111
- })
112
- }
113
- leftPaddle.onclick = () => {
114
- const scrollStart = document.querySelector(".menu-wrapper").scrollLeft
115
- const scrollEnd = scrollStart - menuWrapperSize
116
- startJavaScriptAnimation({
117
- duration: scrollDuration,
118
- onProgress: ({ progress }) => {
119
- document.querySelector(".menu-wrapper").scrollLeft =
120
- scrollStart + (scrollEnd - scrollStart) * progress
121
- },
122
- })
123
- }
124
-
@@ -1,227 +0,0 @@
1
- * {
2
- box-sizing: border-box;
3
- }
4
-
5
- [data-force-hide] {
6
- display: none !important;
7
- }
8
-
9
- html, body {
10
- flex-direction: column;
11
- flex: 1;
12
- margin: 0;
13
- padding: 0;
14
- display: flex;
15
- }
16
-
17
- html {
18
- height: 100%;
19
- font-family: arial, sans;
20
- }
21
-
22
- main {
23
- flex-direction: column;
24
- flex: 1;
25
- display: flex;
26
- }
27
-
28
- main > * {
29
- min-width: 100%;
30
- flex: 1;
31
- }
32
-
33
- hr {
34
- color: #000;
35
- background-color: #000;
36
- border-color: #000;
37
- margin: 15px 0;
38
- }
39
-
40
- article[data-page="file-list"] {
41
- color: #97a0a0;
42
- background-color: #204143;
43
- }
44
-
45
- nav, #explorables-message {
46
- background: #1f262c;
47
- }
48
-
49
- #explorables nav {
50
- overflow: hidden;
51
- }
52
-
53
- #explorables-message {
54
- overflow: auto;
55
- }
56
-
57
- article h2 {
58
- margin: 0;
59
- display: flex;
60
- }
61
-
62
- article h2 svg {
63
- margin-right: 15px;
64
- }
65
-
66
- #main_html_file {
67
- padding: 25px 25px 0;
68
- }
69
-
70
- #main_file_link {
71
- color: #e7f2f3;
72
- }
73
-
74
- h2 {
75
- color: #24b1b0;
76
- margin: 20px 0;
77
- display: inline-block;
78
- }
79
-
80
- h4 {
81
- color: #97a0a0;
82
- padding: 0 25px;
83
- font-size: 15px;
84
- font-weight: normal;
85
- }
86
-
87
- #explorables {
88
- word-break: break-word;
89
- }
90
-
91
- #explorables-header {
92
- width: 100%;
93
- position: -webkit-sticky;
94
- position: sticky;
95
- top: 0;
96
- }
97
-
98
- #explorables_header_and_menu {
99
- background-color: #204143;
100
- padding-top: 25px;
101
- padding-left: 25px;
102
- padding-right: 25px;
103
- }
104
-
105
- #explorables_header_bottom_spacing {
106
- height: 20px;
107
- background: #1f262c;
108
- }
109
-
110
- #directory_relative_url {
111
- color: orange;
112
- }
113
-
114
- #explorables ul {
115
- margin: 0;
116
- padding: 0 25px 25px;
117
- }
118
-
119
- #explorables li {
120
- margin: 10px 0;
121
- list-style-type: none;
122
- }
123
-
124
- #explorables li:first-child {
125
- margin-top: 0;
126
- }
127
-
128
- #explorables li .execution-link {
129
- width: 100%;
130
- word-break: break-all;
131
- }
132
-
133
- .execution-link {
134
- color: #e7f2f3;
135
- -webkit-text-decoration: unset;
136
- text-decoration: unset;
137
- background: #204143;
138
- padding: 6px 12px;
139
- font-family: monospace;
140
- font-size: 14px;
141
- display: inline-block;
142
- }
143
-
144
- #main_file_icon {
145
- fill: #24b1b0;
146
- }
147
-
148
- #fileIconSvgConfig {
149
- width: 25px;
150
- height: 25px;
151
- stroke: none;
152
- fill: #24b1b0;
153
- }
154
-
155
- #explorables fieldset {
156
- border: none;
157
- margin: 0;
158
- padding: 0;
159
- }
160
-
161
- #explorables fieldset label {
162
- padding: 0;
163
- display: inline-block;
164
- }
165
-
166
- #explorables fieldset input {
167
- opacity: 0;
168
- position: absolute;
169
- }
170
-
171
- #explorables fieldset label input + * {
172
- min-width: 8em;
173
- text-align: center;
174
- background-color: #204143;
175
- border-radius: .1em;
176
- padding: .7em 1em;
177
- display: block;
178
- }
179
-
180
- #explorables fieldset input:checked + * {
181
- color: orange;
182
- background: #1f262c;
183
- }
184
-
185
- .menu-wrapper {
186
- max-width: 100%;
187
- margin-top: 25px;
188
- transition: all .3s;
189
- position: relative;
190
- overflow: hidden;
191
- }
192
-
193
- .menu {
194
- box-sizing: border-box;
195
- white-space: nowrap;
196
- -webkit-overflow-scrolling: touch;
197
- overflow-x: auto;
198
- overflow-y: hidden;
199
- }
200
-
201
- .menu .item {
202
- height: 100%;
203
- box-sizing: border-box;
204
- padding: 1em;
205
- display: inline-block;
206
- }
207
-
208
- .paddle {
209
- height: 36px;
210
- color: #1f262c;
211
- background: #24b1b0;
212
- border: none;
213
- position: absolute;
214
- bottom: 0;
215
- }
216
-
217
- .left-paddle {
218
- left: 0;
219
- }
220
-
221
- .right-paddle {
222
- right: 0;
223
- }
224
-
225
- .hidden {
226
- display: none;
227
- }
@@ -1,28 +0,0 @@
1
- button:focus, a:focus, input:focus, [data-contains-hidden-input] input:focus + * {
2
- outline-offset: -2px;
3
- outline-style: none;
4
- }
5
-
6
- [data-contains-hidden-input] input:focus + * {
7
- outline-offset: -2px;
8
- outline-width: 4px;
9
- }
10
-
11
- 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 + * {
12
- outline-style: auto;
13
- }
14
-
15
- html[data-last-interaction="keyboard"] [data-contains-hidden-input] input:focus + * {
16
- outline-color: #0096ff;
17
- }
18
-
19
- @-moz-document url-prefix() {
20
- 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 + * {
21
- outline-offset: 0;
22
- outline: 2px solid #0096ff;
23
- }
24
- }
25
-
26
- ::-moz-focus-inner {
27
- border: 0;
28
- }
@@ -1,82 +0,0 @@
1
- /*
2
- * https://vitejs.dev/guide/api-hmr.html#hot-accept-deps-cb
3
- * https://modern-web.dev/docs/dev-server/plugins/hmr/
4
- */
5
-
6
- export const urlHotMetas = {}
7
-
8
- export const createImportMetaHot = (importMetaUrl) => {
9
- const data = {}
10
- const url = asUrlWithoutHmrQuery(importMetaUrl)
11
-
12
- return {
13
- data,
14
- accept: (firstArg, secondArg) => {
15
- if (!firstArg) {
16
- addUrlMeta(url, {
17
- dependencies: [url],
18
- acceptCallback: () => {},
19
- })
20
- return
21
- }
22
- if (typeof firstArg === "function") {
23
- addUrlMeta(url, {
24
- dependencies: [url],
25
- acceptCallback: firstArg,
26
- })
27
- return
28
- }
29
- if (typeof firstArg === "string") {
30
- addUrlMeta(url, {
31
- dependencies: [firstArg],
32
- acceptCallback: secondArg,
33
- })
34
- return
35
- }
36
- if (Array.isArray(firstArg)) {
37
- addUrlMeta(url, {
38
- dependencies: firstArg,
39
- acceptCallback: secondArg,
40
- })
41
- return
42
- }
43
- throw new Error(
44
- `invalid call to import.meta.hot.accept(), received ${firstArg}`,
45
- )
46
- },
47
- dispose: (callback) => {
48
- addUrlMeta(url, {
49
- disposeCallback: () => {
50
- return callback(data)
51
- },
52
- })
53
- },
54
- decline: () => {
55
- addUrlMeta(url, {
56
- declined: true,
57
- })
58
- },
59
- invalidate: () => {
60
- addUrlMeta(url, {
61
- invalidated: true,
62
- })
63
- },
64
- }
65
- }
66
-
67
- const addUrlMeta = (url, meta) => {
68
- urlHotMetas[url] = {
69
- ...urlHotMetas[url],
70
- ...meta,
71
- }
72
- }
73
-
74
- const asUrlWithoutHmrQuery = (url) => {
75
- const urlObject = new URL(url)
76
- if (urlObject.searchParams.has("hmr")) {
77
- urlObject.searchParams.delete("hmr")
78
- urlObject.searchParams.delete("v")
79
- return urlObject.href
80
- }
81
- return url
82
- }
@@ -1,51 +0,0 @@
1
- export const injectRibbon = ({ text }) => {
2
- const css = /* css */ `
3
- #jsenv_ribbon_container {
4
- position: absolute;
5
- z-index: 1001;
6
- top: 0;
7
- right: 0;
8
- width: 100px;
9
- height: 100px;
10
- overflow: hidden;
11
- opacity: 0.5;
12
- pointer-events: none;
13
- }
14
- #jsenv_ribbon {
15
- position: absolute;
16
- top: -10px;
17
- right: -10px;
18
- width: 100%;
19
- height: 100%;
20
- }
21
- #jsenv_ribbon_text {
22
- position: absolute;
23
- left: 0px;
24
- top: 20px;
25
- transform: rotate(45deg);
26
- display: block;
27
- width: 125px;
28
- line-height: 36px;
29
- background-color: orange;
30
- color: rgb(55, 7, 7);
31
- box-shadow: 0 5px 10px rgba(0, 0, 0, 0.1);
32
- font-weight: 700;
33
- font-size: 16px;
34
- font-family: "Lato", sans-serif;
35
- text-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);
36
- text-align: center;
37
- user-select: none;
38
- }
39
- `
40
-
41
- const html = /* html */ `<div id="jsenv_ribbon_container">
42
- <style>${css}</style>
43
- <div id="jsenv_ribbon">
44
- <div id="jsenv_ribbon_text">${text}</div>
45
- </div>
46
- </div>`
47
-
48
- const node = document.createElement("div")
49
- node.innerHTML = html
50
- document.body.appendChild(node.firstChild)
51
- }