@editframe/elements 0.16.8-beta.0 → 0.18.3-beta.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 (267) hide show
  1. package/README.md +30 -0
  2. package/dist/DecoderResetFrequency.test.d.ts +1 -0
  3. package/dist/DecoderResetRecovery.test.d.ts +1 -0
  4. package/dist/DelayedLoadingState.d.ts +48 -0
  5. package/dist/DelayedLoadingState.integration.test.d.ts +1 -0
  6. package/dist/DelayedLoadingState.js +113 -0
  7. package/dist/DelayedLoadingState.test.d.ts +1 -0
  8. package/dist/EF_FRAMEGEN.d.ts +10 -1
  9. package/dist/EF_FRAMEGEN.js +199 -179
  10. package/dist/EF_INTERACTIVE.js +2 -6
  11. package/dist/EF_RENDERING.js +1 -3
  12. package/dist/LoadingDebounce.test.d.ts +1 -0
  13. package/dist/LoadingIndicator.browsertest.d.ts +0 -0
  14. package/dist/ManualScrubTest.test.d.ts +1 -0
  15. package/dist/ScrubResolvedFlashing.test.d.ts +1 -0
  16. package/dist/ScrubTrackManager.d.ts +96 -0
  17. package/dist/ScrubTrackManager.test.d.ts +1 -0
  18. package/dist/VideoSeekFlashing.browsertest.d.ts +0 -0
  19. package/dist/VideoStuckDiagnostic.test.d.ts +1 -0
  20. package/dist/elements/CrossUpdateController.js +13 -15
  21. package/dist/elements/EFAudio.browsertest.d.ts +0 -0
  22. package/dist/elements/EFAudio.d.ts +22 -3
  23. package/dist/elements/EFAudio.js +60 -43
  24. package/dist/elements/EFCaptions.js +337 -373
  25. package/dist/elements/EFImage.d.ts +1 -0
  26. package/dist/elements/EFImage.js +73 -91
  27. package/dist/elements/EFMedia/AssetIdMediaEngine.d.ts +18 -0
  28. package/dist/elements/EFMedia/AssetIdMediaEngine.js +41 -0
  29. package/dist/elements/EFMedia/AssetIdMediaEngine.test.d.ts +1 -0
  30. package/dist/elements/EFMedia/AssetMediaEngine.d.ts +47 -0
  31. package/dist/elements/EFMedia/AssetMediaEngine.js +116 -0
  32. package/dist/elements/EFMedia/BaseMediaEngine.d.ts +55 -0
  33. package/dist/elements/EFMedia/BaseMediaEngine.js +96 -0
  34. package/dist/elements/EFMedia/BaseMediaEngine.test.d.ts +1 -0
  35. package/dist/elements/EFMedia/BufferedSeekingInput.browsertest.d.ts +1 -0
  36. package/dist/elements/EFMedia/BufferedSeekingInput.d.ts +43 -0
  37. package/dist/elements/EFMedia/BufferedSeekingInput.js +159 -0
  38. package/dist/elements/EFMedia/JitMediaEngine.browsertest.d.ts +0 -0
  39. package/dist/elements/EFMedia/JitMediaEngine.d.ts +31 -0
  40. package/dist/elements/EFMedia/JitMediaEngine.js +62 -0
  41. package/dist/elements/EFMedia/audioTasks/makeAudioBufferTask.browsertest.d.ts +9 -0
  42. package/dist/elements/EFMedia/audioTasks/makeAudioBufferTask.d.ts +16 -0
  43. package/dist/elements/EFMedia/audioTasks/makeAudioBufferTask.js +48 -0
  44. package/dist/elements/EFMedia/audioTasks/makeAudioFrequencyAnalysisTask.d.ts +3 -0
  45. package/dist/elements/EFMedia/audioTasks/makeAudioFrequencyAnalysisTask.js +138 -0
  46. package/dist/elements/EFMedia/audioTasks/makeAudioInitSegmentFetchTask.browsertest.d.ts +9 -0
  47. package/dist/elements/EFMedia/audioTasks/makeAudioInitSegmentFetchTask.d.ts +4 -0
  48. package/dist/elements/EFMedia/audioTasks/makeAudioInitSegmentFetchTask.js +16 -0
  49. package/dist/elements/EFMedia/audioTasks/makeAudioInputTask.browsertest.d.ts +9 -0
  50. package/dist/elements/EFMedia/audioTasks/makeAudioInputTask.d.ts +3 -0
  51. package/dist/elements/EFMedia/audioTasks/makeAudioInputTask.js +22 -0
  52. package/dist/elements/EFMedia/audioTasks/makeAudioSeekTask.d.ts +7 -0
  53. package/dist/elements/EFMedia/audioTasks/makeAudioSeekTask.js +24 -0
  54. package/dist/elements/EFMedia/audioTasks/makeAudioSegmentFetchTask.d.ts +4 -0
  55. package/dist/elements/EFMedia/audioTasks/makeAudioSegmentFetchTask.js +18 -0
  56. package/dist/elements/EFMedia/audioTasks/makeAudioSegmentIdTask.d.ts +4 -0
  57. package/dist/elements/EFMedia/audioTasks/makeAudioSegmentIdTask.js +16 -0
  58. package/dist/elements/EFMedia/audioTasks/makeAudioTimeDomainAnalysisTask.d.ts +3 -0
  59. package/dist/elements/EFMedia/audioTasks/makeAudioTimeDomainAnalysisTask.js +104 -0
  60. package/dist/elements/EFMedia/services/AudioElementFactory.browsertest.d.ts +1 -0
  61. package/dist/elements/EFMedia/services/AudioElementFactory.d.ts +22 -0
  62. package/dist/elements/EFMedia/services/AudioElementFactory.js +72 -0
  63. package/dist/elements/EFMedia/services/MediaSourceService.browsertest.d.ts +1 -0
  64. package/dist/elements/EFMedia/services/MediaSourceService.d.ts +47 -0
  65. package/dist/elements/EFMedia/services/MediaSourceService.js +73 -0
  66. package/dist/elements/EFMedia/shared/AudioSpanUtils.d.ts +7 -0
  67. package/dist/elements/EFMedia/shared/AudioSpanUtils.js +54 -0
  68. package/dist/elements/EFMedia/shared/BufferUtils.d.ts +70 -0
  69. package/dist/elements/EFMedia/shared/BufferUtils.js +89 -0
  70. package/dist/elements/EFMedia/shared/MediaTaskUtils.d.ts +23 -0
  71. package/dist/elements/EFMedia/shared/RenditionHelpers.browsertest.d.ts +1 -0
  72. package/dist/elements/EFMedia/shared/RenditionHelpers.d.ts +19 -0
  73. package/dist/elements/EFMedia/tasks/makeMediaEngineTask.browsertest.d.ts +1 -0
  74. package/dist/elements/EFMedia/tasks/makeMediaEngineTask.d.ts +18 -0
  75. package/dist/elements/EFMedia/tasks/makeMediaEngineTask.js +60 -0
  76. package/dist/elements/EFMedia/tasks/makeMediaEngineTask.test.d.ts +1 -0
  77. package/dist/elements/EFMedia/videoTasks/makeVideoBufferTask.browsertest.d.ts +9 -0
  78. package/dist/elements/EFMedia/videoTasks/makeVideoBufferTask.d.ts +16 -0
  79. package/dist/elements/EFMedia/videoTasks/makeVideoBufferTask.js +46 -0
  80. package/dist/elements/EFMedia/videoTasks/makeVideoInitSegmentFetchTask.browsertest.d.ts +9 -0
  81. package/dist/elements/EFMedia/videoTasks/makeVideoInitSegmentFetchTask.d.ts +4 -0
  82. package/dist/elements/EFMedia/videoTasks/makeVideoInitSegmentFetchTask.js +16 -0
  83. package/dist/elements/EFMedia/videoTasks/makeVideoInputTask.browsertest.d.ts +9 -0
  84. package/dist/elements/EFMedia/videoTasks/makeVideoInputTask.d.ts +3 -0
  85. package/dist/elements/EFMedia/videoTasks/makeVideoInputTask.js +27 -0
  86. package/dist/elements/EFMedia/videoTasks/makeVideoSeekTask.d.ts +7 -0
  87. package/dist/elements/EFMedia/videoTasks/makeVideoSeekTask.js +25 -0
  88. package/dist/elements/EFMedia/videoTasks/makeVideoSegmentFetchTask.browsertest.d.ts +9 -0
  89. package/dist/elements/EFMedia/videoTasks/makeVideoSegmentFetchTask.d.ts +4 -0
  90. package/dist/elements/EFMedia/videoTasks/makeVideoSegmentFetchTask.js +18 -0
  91. package/dist/elements/EFMedia/videoTasks/makeVideoSegmentIdTask.browsertest.d.ts +9 -0
  92. package/dist/elements/EFMedia/videoTasks/makeVideoSegmentIdTask.d.ts +4 -0
  93. package/dist/elements/EFMedia/videoTasks/makeVideoSegmentIdTask.js +16 -0
  94. package/dist/elements/EFMedia.browsertest.d.ts +1 -0
  95. package/dist/elements/EFMedia.d.ts +95 -66
  96. package/dist/elements/EFMedia.js +204 -683
  97. package/dist/elements/EFSourceMixin.js +31 -48
  98. package/dist/elements/EFTemporal.d.ts +2 -1
  99. package/dist/elements/EFTemporal.js +266 -360
  100. package/dist/elements/EFTimegroup.d.ts +14 -1
  101. package/dist/elements/EFTimegroup.js +337 -323
  102. package/dist/elements/EFVideo.browsertest.d.ts +0 -0
  103. package/dist/elements/EFVideo.d.ts +123 -4
  104. package/dist/elements/EFVideo.js +308 -111
  105. package/dist/elements/EFWaveform.js +375 -411
  106. package/dist/elements/FetchMixin.js +14 -24
  107. package/dist/elements/MediaController.d.ts +30 -0
  108. package/dist/elements/SampleBuffer.d.ts +14 -0
  109. package/dist/elements/SampleBuffer.js +52 -0
  110. package/dist/elements/TargetController.js +130 -156
  111. package/dist/elements/TimegroupController.js +17 -19
  112. package/dist/elements/durationConverter.js +15 -4
  113. package/dist/elements/parseTimeToMs.js +4 -10
  114. package/dist/elements/printTaskStatus.d.ts +2 -0
  115. package/dist/elements/updateAnimations.js +39 -59
  116. package/dist/getRenderInfo.d.ts +2 -2
  117. package/dist/getRenderInfo.js +59 -67
  118. package/dist/gui/ContextMixin.js +150 -288
  119. package/dist/gui/EFConfiguration.js +27 -43
  120. package/dist/gui/EFFilmstrip.d.ts +3 -3
  121. package/dist/gui/EFFilmstrip.js +440 -620
  122. package/dist/gui/EFFitScale.d.ts +2 -2
  123. package/dist/gui/EFFitScale.js +112 -135
  124. package/dist/gui/EFFocusOverlay.js +45 -61
  125. package/dist/gui/EFPreview.js +30 -49
  126. package/dist/gui/EFScrubber.js +78 -99
  127. package/dist/gui/EFTimeDisplay.js +49 -70
  128. package/dist/gui/EFToggleLoop.js +17 -34
  129. package/dist/gui/EFTogglePlay.js +37 -58
  130. package/dist/gui/EFWorkbench.js +66 -88
  131. package/dist/gui/TWMixin.js +2 -48
  132. package/dist/gui/TWMixin2.js +31 -0
  133. package/dist/gui/efContext.js +2 -6
  134. package/dist/gui/fetchContext.js +1 -3
  135. package/dist/gui/focusContext.js +1 -3
  136. package/dist/gui/focusedElementContext.js +2 -6
  137. package/dist/gui/playingContext.js +1 -4
  138. package/dist/gui/services/ElementConnectionManager.browsertest.d.ts +1 -0
  139. package/dist/gui/services/ElementConnectionManager.d.ts +59 -0
  140. package/dist/gui/services/ElementConnectionManager.js +128 -0
  141. package/dist/gui/services/PlaybackController.browsertest.d.ts +1 -0
  142. package/dist/gui/services/PlaybackController.d.ts +103 -0
  143. package/dist/gui/services/PlaybackController.js +290 -0
  144. package/dist/index.js +5 -30
  145. package/dist/msToTimeCode.js +11 -13
  146. package/dist/services/MediaSourceManager.d.ts +62 -0
  147. package/dist/services/MediaSourceManager.js +211 -0
  148. package/dist/style.css +2 -1
  149. package/dist/transcoding/cache/CacheManager.d.ts +73 -0
  150. package/dist/transcoding/cache/RequestDeduplicator.d.ts +29 -0
  151. package/dist/transcoding/cache/RequestDeduplicator.js +53 -0
  152. package/dist/transcoding/cache/RequestDeduplicator.test.d.ts +1 -0
  153. package/dist/transcoding/types/index.d.ts +242 -0
  154. package/dist/transcoding/utils/MediaUtils.d.ts +9 -0
  155. package/dist/transcoding/utils/UrlGenerator.d.ts +26 -0
  156. package/dist/transcoding/utils/UrlGenerator.js +45 -0
  157. package/dist/transcoding/utils/constants.d.ts +27 -0
  158. package/dist/utils/LRUCache.d.ts +34 -0
  159. package/dist/utils/LRUCache.js +115 -0
  160. package/package.json +4 -3
  161. package/src/elements/EFAudio.browsertest.ts +709 -0
  162. package/src/elements/EFAudio.ts +59 -15
  163. package/src/elements/EFCaptions.browsertest.ts +0 -1
  164. package/src/elements/EFImage.browsertest.ts +42 -1
  165. package/src/elements/EFImage.ts +23 -3
  166. package/src/elements/EFMedia/AssetIdMediaEngine.test.ts +222 -0
  167. package/src/elements/EFMedia/AssetIdMediaEngine.ts +70 -0
  168. package/src/elements/EFMedia/AssetMediaEngine.ts +210 -0
  169. package/src/elements/EFMedia/BaseMediaEngine.test.ts +164 -0
  170. package/src/elements/EFMedia/BaseMediaEngine.ts +170 -0
  171. package/src/elements/EFMedia/BufferedSeekingInput.browsertest.ts +400 -0
  172. package/src/elements/EFMedia/BufferedSeekingInput.ts +267 -0
  173. package/src/elements/EFMedia/JitMediaEngine.browsertest.ts +165 -0
  174. package/src/elements/EFMedia/JitMediaEngine.ts +110 -0
  175. package/src/elements/EFMedia/audioTasks/makeAudioBufferTask.browsertest.ts +554 -0
  176. package/src/elements/EFMedia/audioTasks/makeAudioBufferTask.ts +81 -0
  177. package/src/elements/EFMedia/audioTasks/makeAudioFrequencyAnalysisTask.ts +241 -0
  178. package/src/elements/EFMedia/audioTasks/makeAudioInitSegmentFetchTask.browsertest.ts +59 -0
  179. package/src/elements/EFMedia/audioTasks/makeAudioInitSegmentFetchTask.ts +23 -0
  180. package/src/elements/EFMedia/audioTasks/makeAudioInputTask.browsertest.ts +55 -0
  181. package/src/elements/EFMedia/audioTasks/makeAudioInputTask.ts +35 -0
  182. package/src/elements/EFMedia/audioTasks/makeAudioSeekTask.ts +42 -0
  183. package/src/elements/EFMedia/audioTasks/makeAudioSegmentFetchTask.ts +34 -0
  184. package/src/elements/EFMedia/audioTasks/makeAudioSegmentIdTask.ts +23 -0
  185. package/src/elements/EFMedia/audioTasks/makeAudioTimeDomainAnalysisTask.ts +174 -0
  186. package/src/elements/EFMedia/services/AudioElementFactory.browsertest.ts +325 -0
  187. package/src/elements/EFMedia/services/AudioElementFactory.ts +119 -0
  188. package/src/elements/EFMedia/services/MediaSourceService.browsertest.ts +257 -0
  189. package/src/elements/EFMedia/services/MediaSourceService.ts +102 -0
  190. package/src/elements/EFMedia/shared/AudioSpanUtils.ts +128 -0
  191. package/src/elements/EFMedia/shared/BufferUtils.ts +310 -0
  192. package/src/elements/EFMedia/shared/MediaTaskUtils.ts +44 -0
  193. package/src/elements/EFMedia/shared/RenditionHelpers.browsertest.ts +247 -0
  194. package/src/elements/EFMedia/shared/RenditionHelpers.ts +79 -0
  195. package/src/elements/EFMedia/tasks/makeMediaEngineTask.browsertest.ts +128 -0
  196. package/src/elements/EFMedia/tasks/makeMediaEngineTask.test.ts +233 -0
  197. package/src/elements/EFMedia/tasks/makeMediaEngineTask.ts +89 -0
  198. package/src/elements/EFMedia/videoTasks/makeVideoBufferTask.browsertest.ts +555 -0
  199. package/src/elements/EFMedia/videoTasks/makeVideoBufferTask.ts +79 -0
  200. package/src/elements/EFMedia/videoTasks/makeVideoInitSegmentFetchTask.browsertest.ts +59 -0
  201. package/src/elements/EFMedia/videoTasks/makeVideoInitSegmentFetchTask.ts +23 -0
  202. package/src/elements/EFMedia/videoTasks/makeVideoInputTask.browsertest.ts +55 -0
  203. package/src/elements/EFMedia/videoTasks/makeVideoInputTask.ts +45 -0
  204. package/src/elements/EFMedia/videoTasks/makeVideoSeekTask.ts +44 -0
  205. package/src/elements/EFMedia/videoTasks/makeVideoSegmentFetchTask.browsertest.ts +57 -0
  206. package/src/elements/EFMedia/videoTasks/makeVideoSegmentFetchTask.ts +32 -0
  207. package/src/elements/EFMedia/videoTasks/makeVideoSegmentIdTask.browsertest.ts +56 -0
  208. package/src/elements/EFMedia/videoTasks/makeVideoSegmentIdTask.ts +23 -0
  209. package/src/elements/EFMedia.browsertest.ts +696 -271
  210. package/src/elements/EFMedia.ts +218 -776
  211. package/src/elements/EFTemporal.browsertest.ts +0 -1
  212. package/src/elements/EFTemporal.ts +13 -3
  213. package/src/elements/EFTimegroup.browsertest.ts +6 -3
  214. package/src/elements/EFTimegroup.ts +221 -27
  215. package/src/elements/EFVideo.browsertest.ts +758 -0
  216. package/src/elements/EFVideo.ts +418 -68
  217. package/src/elements/EFWaveform.ts +5 -5
  218. package/src/elements/MediaController.ts +98 -0
  219. package/src/elements/SampleBuffer.ts +97 -0
  220. package/src/elements/printTaskStatus.ts +16 -0
  221. package/src/elements/updateAnimations.ts +6 -0
  222. package/src/gui/ContextMixin.ts +23 -104
  223. package/src/gui/TWMixin.ts +10 -3
  224. package/src/gui/services/ElementConnectionManager.browsertest.ts +263 -0
  225. package/src/gui/services/ElementConnectionManager.ts +224 -0
  226. package/src/gui/services/PlaybackController.browsertest.ts +437 -0
  227. package/src/gui/services/PlaybackController.ts +521 -0
  228. package/src/services/MediaSourceManager.ts +333 -0
  229. package/src/transcoding/cache/CacheManager.ts +208 -0
  230. package/src/transcoding/cache/RequestDeduplicator.test.ts +170 -0
  231. package/src/transcoding/cache/RequestDeduplicator.ts +65 -0
  232. package/src/transcoding/types/index.ts +265 -0
  233. package/src/transcoding/utils/MediaUtils.ts +63 -0
  234. package/src/transcoding/utils/UrlGenerator.ts +68 -0
  235. package/src/transcoding/utils/constants.ts +36 -0
  236. package/src/utils/LRUCache.ts +153 -0
  237. package/test/EFVideo.framegen.browsertest.ts +127 -0
  238. package/test/__cache__/GET__api_v1_transcode_audio_1_m4s_url_http_3A_2F_2Fweb_3A3000_2Fhead_moov_480p_mp4__32da3954ba60c96ad732020c65a08ebc/data.bin +0 -0
  239. package/test/__cache__/GET__api_v1_transcode_audio_1_m4s_url_http_3A_2F_2Fweb_3A3000_2Fhead_moov_480p_mp4__32da3954ba60c96ad732020c65a08ebc/metadata.json +21 -0
  240. package/test/__cache__/GET__api_v1_transcode_audio_2_m4s_url_http_3A_2F_2Fweb_3A3000_2Fhead_moov_480p_mp4__b0b2b07efcf607de8ee0f650328c32f7/data.bin +0 -0
  241. package/test/__cache__/GET__api_v1_transcode_audio_2_m4s_url_http_3A_2F_2Fweb_3A3000_2Fhead_moov_480p_mp4__b0b2b07efcf607de8ee0f650328c32f7/metadata.json +21 -0
  242. package/test/__cache__/GET__api_v1_transcode_audio_3_m4s_url_http_3A_2F_2Fweb_3A3000_2Fhead_moov_480p_mp4__a75c2252b542e0c152c780e9a8d7b154/data.bin +0 -0
  243. package/test/__cache__/GET__api_v1_transcode_audio_3_m4s_url_http_3A_2F_2Fweb_3A3000_2Fhead_moov_480p_mp4__a75c2252b542e0c152c780e9a8d7b154/metadata.json +21 -0
  244. package/test/__cache__/GET__api_v1_transcode_audio_4_m4s_url_http_3A_2F_2Fweb_3A3000_2Fhead_moov_480p_mp4__a64ff1cfb1b52cae14df4b5dfa1e222b/data.bin +0 -0
  245. package/test/__cache__/GET__api_v1_transcode_audio_4_m4s_url_http_3A_2F_2Fweb_3A3000_2Fhead_moov_480p_mp4__a64ff1cfb1b52cae14df4b5dfa1e222b/metadata.json +21 -0
  246. package/test/__cache__/GET__api_v1_transcode_audio_5_m4s_url_http_3A_2F_2Fweb_3A3000_2Fhead_moov_480p_mp4__91e8a522f950809b9f09f4173113b4b0/data.bin +0 -0
  247. package/test/__cache__/GET__api_v1_transcode_audio_5_m4s_url_http_3A_2F_2Fweb_3A3000_2Fhead_moov_480p_mp4__91e8a522f950809b9f09f4173113b4b0/metadata.json +21 -0
  248. package/test/__cache__/GET__api_v1_transcode_audio_init_m4s_url_http_3A_2F_2Fweb_3A3000_2Fhead_moov_480p_mp4__e66d2c831d951e74ad0aeaa6489795d0/data.bin +0 -0
  249. package/test/__cache__/GET__api_v1_transcode_audio_init_m4s_url_http_3A_2F_2Fweb_3A3000_2Fhead_moov_480p_mp4__e66d2c831d951e74ad0aeaa6489795d0/metadata.json +21 -0
  250. package/test/__cache__/GET__api_v1_transcode_high_1_m4s_url_http_3A_2F_2Fweb_3A3000_2Fhead_moov_480p_mp4__26197f6f7c46cacb0a71134131c3f775/data.bin +0 -0
  251. package/test/__cache__/GET__api_v1_transcode_high_1_m4s_url_http_3A_2F_2Fweb_3A3000_2Fhead_moov_480p_mp4__26197f6f7c46cacb0a71134131c3f775/metadata.json +21 -0
  252. package/test/__cache__/GET__api_v1_transcode_high_2_m4s_url_http_3A_2F_2Fweb_3A3000_2Fhead_moov_480p_mp4__4cb6774cd3650ccf59c8f8dc6678c0b9/data.bin +0 -0
  253. package/test/__cache__/GET__api_v1_transcode_high_2_m4s_url_http_3A_2F_2Fweb_3A3000_2Fhead_moov_480p_mp4__4cb6774cd3650ccf59c8f8dc6678c0b9/metadata.json +21 -0
  254. package/test/__cache__/GET__api_v1_transcode_high_3_m4s_url_http_3A_2F_2Fweb_3A3000_2Fhead_moov_480p_mp4__0b3b2b1c8933f7fcf8a9ecaa88d58b41/data.bin +0 -0
  255. package/test/__cache__/GET__api_v1_transcode_high_3_m4s_url_http_3A_2F_2Fweb_3A3000_2Fhead_moov_480p_mp4__0b3b2b1c8933f7fcf8a9ecaa88d58b41/metadata.json +21 -0
  256. package/test/__cache__/GET__api_v1_transcode_high_init_m4s_url_http_3A_2F_2Fweb_3A3000_2Fhead_moov_480p_mp4__0798c479b44aaeef850609a430f6e613/data.bin +0 -0
  257. package/test/__cache__/GET__api_v1_transcode_high_init_m4s_url_http_3A_2F_2Fweb_3A3000_2Fhead_moov_480p_mp4__0798c479b44aaeef850609a430f6e613/metadata.json +21 -0
  258. package/test/__cache__/GET__api_v1_transcode_manifest_json_url_http_3A_2F_2Fweb_3A3000_2Fhead_moov_480p_mp4__3be92a0437de726b431ed5af2369158a/data.bin +1 -0
  259. package/test/__cache__/GET__api_v1_transcode_manifest_json_url_http_3A_2F_2Fweb_3A3000_2Fhead_moov_480p_mp4__3be92a0437de726b431ed5af2369158a/metadata.json +19 -0
  260. package/test/createJitTestClips.ts +425 -0
  261. package/test/recordReplayProxyPlugin.js +302 -0
  262. package/test/useAssetMSW.ts +49 -0
  263. package/test/useMSW.ts +44 -0
  264. package/types.json +1 -1
  265. package/dist/gui/TWMixin.css.js +0 -4
  266. /package/dist/elements/{TargetController.test.d.ts → TargetController.browsertest.d.ts} +0 -0
  267. /package/src/elements/{TargetController.test.ts → TargetController.browsertest.ts} +0 -0
@@ -1,67 +1,17 @@
1
+ import { efContext } from "./efContext.js";
1
2
  import { consume } from "@lit/context";
2
- import { css, LitElement, html } from "lit";
3
+ import { LitElement, css, html } from "lit";
3
4
  import { customElement } from "lit/decorators.js";
4
- import { efContext } from "./efContext.js";
5
- var __defProp = Object.defineProperty;
6
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
7
- var __decorateClass = (decorators, target, key, kind) => {
8
- var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
9
- for (var i = decorators.length - 1, decorator; i >= 0; i--)
10
- if (decorator = decorators[i])
11
- result = (kind ? decorator(target, key, result) : decorator(result)) || result;
12
- if (kind && result) __defProp(target, key, result);
13
- return result;
14
- };
15
- let EFTimeDisplay = class extends LitElement {
16
- constructor() {
17
- super(...arguments);
18
- this._onTimeUpdate = () => {
19
- this.requestUpdate();
20
- };
21
- }
22
- connectedCallback() {
23
- super.connectedCallback();
24
- this.context?.addEventListener(
25
- "timeupdate",
26
- this._onTimeUpdate
27
- );
28
- }
29
- updated(changedProperties) {
30
- if (changedProperties.has("context")) {
31
- const oldContext = changedProperties.get(
32
- "context"
33
- );
34
- oldContext?.removeEventListener(
35
- "timeupdate",
36
- this._onTimeUpdate
37
- );
38
- this.context?.addEventListener(
39
- "timeupdate",
40
- this._onTimeUpdate
41
- );
42
- }
43
- }
44
- disconnectedCallback() {
45
- this.context?.removeEventListener("timeupdate", this._onTimeUpdate);
46
- super.disconnectedCallback();
47
- }
48
- formatTime(ms) {
49
- const totalSeconds = Math.floor(ms / 1e3);
50
- const minutes = Math.floor(totalSeconds / 60);
51
- const seconds = totalSeconds % 60;
52
- return `${minutes}:${seconds.toString().padStart(2, "0")}`;
53
- }
54
- render() {
55
- const currentTime = this.context?.currentTimeMs ?? 0;
56
- const totalTime = this.context?.targetTimegroup?.durationMs ?? 0;
57
- return html`
58
- <span part="time">
59
- ${this.formatTime(currentTime)} / ${this.formatTime(totalTime)}
60
- </span>
61
- `;
62
- }
63
- };
64
- EFTimeDisplay.styles = css`
5
+ import _decorate from "@oxc-project/runtime/helpers/decorate";
6
+ let EFTimeDisplay = class EFTimeDisplay$1 extends LitElement {
7
+ constructor(..._args) {
8
+ super(..._args);
9
+ this._onTimeUpdate = () => {
10
+ this.requestUpdate();
11
+ };
12
+ }
13
+ static {
14
+ this.styles = css`
65
15
  :host {
66
16
  display: inline-block;
67
17
  font-family: var(--ef-font-family, system-ui);
@@ -70,12 +20,41 @@ EFTimeDisplay.styles = css`
70
20
  white-space: nowrap;
71
21
  }
72
22
  `;
73
- __decorateClass([
74
- consume({ context: efContext, subscribe: true })
75
- ], EFTimeDisplay.prototype, "context", 2);
76
- EFTimeDisplay = __decorateClass([
77
- customElement("ef-time-display")
78
- ], EFTimeDisplay);
79
- export {
80
- EFTimeDisplay
23
+ }
24
+ connectedCallback() {
25
+ super.connectedCallback();
26
+ this.context?.addEventListener("timeupdate", this._onTimeUpdate);
27
+ }
28
+ updated(changedProperties) {
29
+ if (changedProperties.has("context")) {
30
+ const oldContext = changedProperties.get("context");
31
+ oldContext?.removeEventListener("timeupdate", this._onTimeUpdate);
32
+ this.context?.addEventListener("timeupdate", this._onTimeUpdate);
33
+ }
34
+ }
35
+ disconnectedCallback() {
36
+ this.context?.removeEventListener("timeupdate", this._onTimeUpdate);
37
+ super.disconnectedCallback();
38
+ }
39
+ formatTime(ms) {
40
+ const totalSeconds = Math.floor(ms / 1e3);
41
+ const minutes = Math.floor(totalSeconds / 60);
42
+ const seconds = totalSeconds % 60;
43
+ return `${minutes}:${seconds.toString().padStart(2, "0")}`;
44
+ }
45
+ render() {
46
+ const currentTime = this.context?.currentTimeMs ?? 0;
47
+ const totalTime = this.context?.targetTimegroup?.durationMs ?? 0;
48
+ return html`
49
+ <span part="time">
50
+ ${this.formatTime(currentTime)} / ${this.formatTime(totalTime)}
51
+ </span>
52
+ `;
53
+ }
81
54
  };
55
+ _decorate([consume({
56
+ context: efContext,
57
+ subscribe: true
58
+ })], EFTimeDisplay.prototype, "context", void 0);
59
+ EFTimeDisplay = _decorate([customElement("ef-time-display")], EFTimeDisplay);
60
+ export { EFTimeDisplay };
@@ -1,39 +1,22 @@
1
+ import { efContext } from "./efContext.js";
1
2
  import { consume } from "@lit/context";
2
- import { css, LitElement, html } from "lit";
3
+ import { LitElement, css, html } from "lit";
3
4
  import { customElement } from "lit/decorators.js";
4
- import { efContext } from "./efContext.js";
5
- var __defProp = Object.defineProperty;
6
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
7
- var __decorateClass = (decorators, target, key, kind) => {
8
- var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
9
- for (var i = decorators.length - 1, decorator; i >= 0; i--)
10
- if (decorator = decorators[i])
11
- result = (kind ? decorator(target, key, result) : decorator(result)) || result;
12
- if (kind && result) __defProp(target, key, result);
13
- return result;
14
- };
15
- let EFToggleLoop = class extends LitElement {
16
- render() {
17
- return html`
5
+ import _decorate from "@oxc-project/runtime/helpers/decorate";
6
+ let EFToggleLoop = class EFToggleLoop$1 extends LitElement {
7
+ static {
8
+ this.styles = [css`
9
+ :host {}
10
+ `];
11
+ }
12
+ render() {
13
+ return html`
18
14
  <slot @click=${() => {
19
- if (this.context) {
20
- this.context.loop = !this.context.loop;
21
- }
22
- }}></slot>
15
+ if (this.context) this.context.loop = !this.context.loop;
16
+ }}></slot>
23
17
  `;
24
- }
25
- };
26
- EFToggleLoop.styles = [
27
- css`
28
- :host {}
29
- `
30
- ];
31
- __decorateClass([
32
- consume({ context: efContext })
33
- ], EFToggleLoop.prototype, "context", 2);
34
- EFToggleLoop = __decorateClass([
35
- customElement("ef-toggle-loop")
36
- ], EFToggleLoop);
37
- export {
38
- EFToggleLoop
18
+ }
39
19
  };
20
+ _decorate([consume({ context: efContext })], EFToggleLoop.prototype, "context", void 0);
21
+ EFToggleLoop = _decorate([customElement("ef-toggle-loop")], EFToggleLoop);
22
+ export { EFToggleLoop };
@@ -1,67 +1,46 @@
1
- import { consume } from "@lit/context";
2
- import { css, LitElement, html } from "lit";
3
- import { customElement } from "lit/decorators.js";
4
1
  import { efContext } from "./efContext.js";
5
2
  import { playingContext } from "./playingContext.js";
6
- var __defProp = Object.defineProperty;
7
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
8
- var __decorateClass = (decorators, target, key, kind) => {
9
- var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
10
- for (var i = decorators.length - 1, decorator; i >= 0; i--)
11
- if (decorator = decorators[i])
12
- result = (kind ? decorator(target, key, result) : decorator(result)) || result;
13
- if (kind && result) __defProp(target, key, result);
14
- return result;
15
- };
16
- let EFTogglePlay = class extends LitElement {
17
- constructor() {
18
- super(...arguments);
19
- this.playing = false;
20
- }
21
- render() {
22
- return html`
3
+ import { consume } from "@lit/context";
4
+ import { LitElement, css, html } from "lit";
5
+ import { customElement } from "lit/decorators.js";
6
+ import _decorate from "@oxc-project/runtime/helpers/decorate";
7
+ let EFTogglePlay = class EFTogglePlay$1 extends LitElement {
8
+ constructor(..._args) {
9
+ super(..._args);
10
+ this.playing = false;
11
+ }
12
+ static {
13
+ this.styles = [css`
14
+ :host {}
15
+ div {
16
+ all: inherit;
17
+ }
18
+ `];
19
+ }
20
+ render() {
21
+ return html`
23
22
  <div
24
23
  @click=${() => {
25
- if (this.context) {
26
- if (this.playing) {
27
- this.context.pause();
28
- } else {
29
- this.context.play();
30
- }
31
- }
32
- }}
24
+ if (this.context) if (this.playing) this.context.pause();
25
+ else this.context.play();
26
+ }}
33
27
  >
34
28
  ${this.playing ? html`<slot name="pause"></slot>` : html`<slot name="play"></slot>`}
35
29
  </div>
36
30
  `;
37
- }
38
- togglePlay() {
39
- if (this.context) {
40
- if (this.playing) {
41
- this.context.pause();
42
- } else {
43
- this.context.play();
44
- }
45
- }
46
- }
47
- };
48
- EFTogglePlay.styles = [
49
- css`
50
- :host {}
51
- div {
52
- all: inherit;
53
- }
54
- `
55
- ];
56
- __decorateClass([
57
- consume({ context: efContext, subscribe: true })
58
- ], EFTogglePlay.prototype, "context", 2);
59
- __decorateClass([
60
- consume({ context: playingContext, subscribe: true })
61
- ], EFTogglePlay.prototype, "playing", 2);
62
- EFTogglePlay = __decorateClass([
63
- customElement("ef-toggle-play")
64
- ], EFTogglePlay);
65
- export {
66
- EFTogglePlay
31
+ }
32
+ togglePlay() {
33
+ if (this.context) if (this.playing) this.context.pause();
34
+ else this.context.play();
35
+ }
67
36
  };
37
+ _decorate([consume({
38
+ context: efContext,
39
+ subscribe: true
40
+ })], EFTogglePlay.prototype, "context", void 0);
41
+ _decorate([consume({
42
+ context: playingContext,
43
+ subscribe: true
44
+ })], EFTogglePlay.prototype, "playing", void 0);
45
+ EFTogglePlay = _decorate([customElement("ef-toggle-play")], EFTogglePlay);
46
+ export { EFTogglePlay };
@@ -1,73 +1,65 @@
1
- import { html, css, LitElement } from "lit";
2
- import { property, eventOptions, customElement } from "lit/decorators.js";
3
- import { createRef, ref } from "lit/directives/ref.js";
4
1
  import { ContextMixin } from "./ContextMixin.js";
5
- import { TWMixin } from "./TWMixin.js";
6
- var __defProp = Object.defineProperty;
7
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
8
- var __decorateClass = (decorators, target, key, kind) => {
9
- var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
10
- for (var i = decorators.length - 1, decorator; i >= 0; i--)
11
- if (decorator = decorators[i])
12
- result = (kind ? decorator(target, key, result) : decorator(result)) || result;
13
- if (kind && result) __defProp(target, key, result);
14
- return result;
15
- };
16
- let EFWorkbench = class extends ContextMixin(TWMixin(LitElement)) {
17
- constructor() {
18
- super(...arguments);
19
- this.rendering = false;
20
- this.focusOverlay = createRef();
21
- this.drawOverlays = () => {
22
- const focusOverlay = this.focusOverlay.value;
23
- if (focusOverlay) {
24
- if (this.focusedElement) {
25
- focusOverlay.style.display = "block";
26
- const rect = this.focusedElement.getBoundingClientRect();
27
- Object.assign(focusOverlay.style, {
28
- position: "fixed",
29
- top: `${rect.top}px`,
30
- left: `${rect.left}px`,
31
- width: `${rect.width}px`,
32
- height: `${rect.height}px`
33
- });
34
- requestAnimationFrame(this.drawOverlays);
35
- } else {
36
- focusOverlay.style.display = "none";
37
- }
2
+ import { TWMixin } from "./TWMixin2.js";
3
+ import { LitElement, css, html } from "lit";
4
+ import { customElement, eventOptions, property } from "lit/decorators.js";
5
+ import _decorate from "@oxc-project/runtime/helpers/decorate";
6
+ import { createRef, ref } from "lit/directives/ref.js";
7
+ let EFWorkbench = class EFWorkbench$1 extends ContextMixin(TWMixin(LitElement)) {
8
+ constructor(..._args) {
9
+ super(..._args);
10
+ this.rendering = false;
11
+ this.focusOverlay = createRef();
12
+ this.drawOverlays = () => {
13
+ const focusOverlay = this.focusOverlay.value;
14
+ if (focusOverlay) if (this.focusedElement) {
15
+ focusOverlay.style.display = "block";
16
+ const rect = this.focusedElement.getBoundingClientRect();
17
+ Object.assign(focusOverlay.style, {
18
+ position: "fixed",
19
+ top: `${rect.top}px`,
20
+ left: `${rect.left}px`,
21
+ width: `${rect.width}px`,
22
+ height: `${rect.height}px`
23
+ });
24
+ requestAnimationFrame(this.drawOverlays);
25
+ } else focusOverlay.style.display = "none";
26
+ };
27
+ }
28
+ static {
29
+ this.styles = [css`
30
+ :host {
31
+ display: block;
32
+ width: 100%;
33
+ height: 100%;
38
34
  }
39
- };
40
- }
41
- handleStageWheel(event) {
42
- event.preventDefault();
43
- }
44
- connectedCallback() {
45
- document.body.style.width = "100%";
46
- document.body.style.height = "100%";
47
- document.documentElement.style.width = "100%";
48
- document.documentElement.style.height = "100%";
49
- super.connectedCallback();
50
- }
51
- disconnectedCallback() {
52
- super.disconnectedCallback();
53
- document.body.style.width = "";
54
- document.body.style.height = "";
55
- document.documentElement.style.width = "";
56
- document.documentElement.style.height = "";
57
- }
58
- update(changedProperties) {
59
- super.update(changedProperties);
60
- if (changedProperties.has("focusedElement")) {
61
- this.drawOverlays();
62
- }
63
- }
64
- render() {
65
- if (this.rendering || typeof window !== "undefined" && window.EF_RENDERING?.() === true) {
66
- return html`
35
+ `];
36
+ }
37
+ handleStageWheel(event) {
38
+ event.preventDefault();
39
+ }
40
+ connectedCallback() {
41
+ document.body.style.width = "100%";
42
+ document.body.style.height = "100%";
43
+ document.documentElement.style.width = "100%";
44
+ document.documentElement.style.height = "100%";
45
+ super.connectedCallback();
46
+ }
47
+ disconnectedCallback() {
48
+ super.disconnectedCallback();
49
+ document.body.style.width = "";
50
+ document.body.style.height = "";
51
+ document.documentElement.style.width = "";
52
+ document.documentElement.style.height = "";
53
+ }
54
+ update(changedProperties) {
55
+ super.update(changedProperties);
56
+ if (changedProperties.has("focusedElement")) this.drawOverlays();
57
+ }
58
+ render() {
59
+ if (this.rendering || typeof window !== "undefined" && window.EF_RENDERING?.() === true) return html`
67
60
  <slot class="fixed inset-0 h-full w-full" name="canvas"></slot>
68
61
  `;
69
- }
70
- return html`
62
+ return html`
71
63
  <div
72
64
  class="grid h-full w-full bg-slate-800"
73
65
  style="grid-template-rows: 1fr 300px; grid-template-columns: 100%;"
@@ -88,26 +80,12 @@ let EFWorkbench = class extends ContextMixin(TWMixin(LitElement)) {
88
80
  <slot class="overflow inline-block" name="timeline"></slot>
89
81
  </div>
90
82
  `;
91
- }
92
- };
93
- EFWorkbench.styles = [
94
- css`
95
- :host {
96
- display: block;
97
- width: 100%;
98
- height: 100%;
99
- }
100
- `
101
- ];
102
- __decorateClass([
103
- property({ type: Boolean })
104
- ], EFWorkbench.prototype, "rendering", 2);
105
- __decorateClass([
106
- eventOptions({ passive: false, capture: true })
107
- ], EFWorkbench.prototype, "handleStageWheel", 1);
108
- EFWorkbench = __decorateClass([
109
- customElement("ef-workbench")
110
- ], EFWorkbench);
111
- export {
112
- EFWorkbench
83
+ }
113
84
  };
85
+ _decorate([property({ type: Boolean })], EFWorkbench.prototype, "rendering", void 0);
86
+ _decorate([eventOptions({
87
+ passive: false,
88
+ capture: true
89
+ })], EFWorkbench.prototype, "handleStageWheel", null);
90
+ EFWorkbench = _decorate([customElement("ef-workbench")], EFWorkbench);
91
+ export { EFWorkbench };
@@ -1,48 +1,2 @@
1
- import twStyle from "./TWMixin.css.js";
2
- let twSheet = null;
3
- if (typeof window !== "undefined") {
4
- twSheet = new CSSStyleSheet();
5
- twSheet.replaceSync(twStyle);
6
- }
7
- function TWMixin(Base) {
8
- class TWElement extends Base {
9
- createRenderRoot() {
10
- const renderRoot = super.createRenderRoot();
11
- if (!(renderRoot instanceof ShadowRoot)) {
12
- throw new Error(
13
- "TWMixin can only be applied to elements with shadow roots"
14
- );
15
- }
16
- if (!twSheet) {
17
- throw new Error(
18
- "twSheet not found. Probable cause: CSSStyleSheet not supported in this environment"
19
- );
20
- }
21
- const constructorStylesheets = [];
22
- const constructorStyles = "styles" in this.constructor && this.constructor.styles || [];
23
- if (Array.isArray(constructorStyles)) {
24
- for (const item of constructorStyles) {
25
- if (item.styleSheet) {
26
- constructorStylesheets.push(item.styleSheet);
27
- }
28
- }
29
- } else if (constructorStyles.styleSheet) {
30
- constructorStylesheets.push(constructorStyles.styleSheet);
31
- }
32
- if (renderRoot?.adoptedStyleSheets) {
33
- renderRoot.adoptedStyleSheets = [
34
- twSheet,
35
- ...renderRoot.adoptedStyleSheets,
36
- ...constructorStylesheets
37
- ];
38
- } else {
39
- renderRoot.adoptedStyleSheets = [twSheet, ...constructorStylesheets];
40
- }
41
- return renderRoot;
42
- }
43
- }
44
- return TWElement;
45
- }
46
- export {
47
- TWMixin
48
- };
1
+ var TWMixin_default = "*,:before,:after{box-sizing:border-box;border:0 solid #e5e7eb}:before,:after{--tw-content:\"\"}html,:host{-webkit-text-size-adjust:100%;tab-size:4;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}body{line-height:inherit;margin:0}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-feature-settings:normal;font-variation-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-feature-settings:inherit;font-variation-settings:inherit;font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:#0000;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{margin:0;padding:0;list-style:none}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder{opacity:1;color:#9ca3af}textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}[hidden]{display:none}*,:before,:after{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.top-0{top:0}.isolate{isolation:isolate}.z-10{z-index:10}.z-20{z-index:20}.col-span-2{grid-column:span 2/span 2}.mx-2{margin-left:.5rem;margin-right:.5rem}.mb-\\[1px\\]{margin-bottom:1px}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.grid{display:grid}.contents{display:contents}.hidden{display:none}.h-\\[1\\.1rem\\]{height:1.1rem}.h-\\[270px\\]{height:270px}.h-\\[5px\\]{height:5px}.h-full{height:100%}.w-1{width:.25rem}.w-\\[2px\\]{width:2px}.w-\\[480px\\]{width:480px}.w-full{width:100%}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}.cursor-crosshair{cursor:crosshair}.resize{resize:both}.flex-wrap{flex-wrap:wrap}.place-content-center{place-content:center}.items-center{align-items:center}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.text-nowrap{text-wrap:nowrap}.rounded{border-radius:.25rem}.border{border-width:1px}.border-r-2{border-right-width:2px}.border-blue-500{--tw-border-opacity:1;border-color:rgb(59 130 246/var(--tw-border-opacity))}.border-red-700{--tw-border-opacity:1;border-color:rgb(185 28 28/var(--tw-border-opacity))}.border-slate-500{--tw-border-opacity:1;border-color:rgb(100 116 139/var(--tw-border-opacity))}.border-b-slate-600{--tw-border-opacity:1;border-bottom-color:rgb(71 85 105/var(--tw-border-opacity))}.bg-blue-200{--tw-bg-opacity:1;background-color:rgb(191 219 254/var(--tw-bg-opacity))}.bg-blue-500{--tw-bg-opacity:1;background-color:rgb(59 130 246/var(--tw-bg-opacity))}.bg-red-500{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity))}.bg-slate-100{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity))}.bg-slate-200{--tw-bg-opacity:1;background-color:rgb(226 232 240/var(--tw-bg-opacity))}.bg-slate-300{--tw-bg-opacity:1;background-color:rgb(203 213 225/var(--tw-bg-opacity))}.bg-slate-800{--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity))}.bg-opacity-20{--tw-bg-opacity:.2}.p-\\[1px\\]{padding:1px}.pb-0{padding-bottom:0}.pl-1{padding-left:.25rem}.pl-2{padding-left:.5rem}.pr-0{padding-right:0}.pr-1{padding-right:.25rem}.pt-\\[8px\\]{padding-top:8px}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-5xl{font-size:3rem;line-height:1}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.line-through{text-decoration-line:line-through}.opacity-50{opacity:.5}.shadow{--tw-shadow:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a;--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-slate-300{--tw-shadow-color:#cbd5e1;--tw-shadow:var(--tw-shadow-colored)}.shadow-slate-600{--tw-shadow-color:#475569;--tw-shadow:var(--tw-shadow-colored)}.outline{outline-style:solid}.blur{--tw-blur:blur(8px);filter:var(--tw-blur)var(--tw-brightness)var(--tw-contrast)var(--tw-grayscale)var(--tw-hue-rotate)var(--tw-invert)var(--tw-saturate)var(--tw-sepia)var(--tw-drop-shadow)}.filter{filter:var(--tw-blur)var(--tw-brightness)var(--tw-contrast)var(--tw-grayscale)var(--tw-hue-rotate)var(--tw-invert)var(--tw-saturate)var(--tw-sepia)var(--tw-drop-shadow)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur)var(--tw-backdrop-brightness)var(--tw-backdrop-contrast)var(--tw-backdrop-grayscale)var(--tw-backdrop-hue-rotate)var(--tw-backdrop-invert)var(--tw-backdrop-opacity)var(--tw-backdrop-saturate)var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur)var(--tw-backdrop-brightness)var(--tw-backdrop-contrast)var(--tw-backdrop-grayscale)var(--tw-backdrop-hue-rotate)var(--tw-backdrop-invert)var(--tw-backdrop-opacity)var(--tw-backdrop-saturate)var(--tw-backdrop-sepia)}.hover\\:bg-slate-400:hover{--tw-bg-opacity:1;background-color:rgb(148 163 184/var(--tw-bg-opacity))}.peer:hover~.peer-hover\\:border-slate-400{--tw-border-opacity:1;border-color:rgb(148 163 184/var(--tw-border-opacity))}.peer:hover~.peer-hover\\:bg-slate-300{--tw-bg-opacity:1;background-color:rgb(203 213 225/var(--tw-bg-opacity))}.data-\\[focused\\]\\:bg-slate-400[data-focused]{--tw-bg-opacity:1;background-color:rgb(148 163 184/var(--tw-bg-opacity))}.peer[data-focused]~.peer-data-\\[focused\\]\\:border-slate-400{--tw-border-opacity:1;border-color:rgb(148 163 184/var(--tw-border-opacity))}.peer[data-focused]~.peer-data-\\[focused\\]\\:bg-slate-300{--tw-bg-opacity:1;background-color:rgb(203 213 225/var(--tw-bg-opacity))}";
2
+ export { TWMixin_default as default };
@@ -0,0 +1,31 @@
1
+ import TWMixin_default from "./TWMixin.js";
2
+ let twSheet = null;
3
+ if (typeof window !== "undefined" && typeof CSSStyleSheet !== "undefined") try {
4
+ twSheet = new CSSStyleSheet();
5
+ if (typeof twSheet.replaceSync === "function") twSheet.replaceSync(TWMixin_default);
6
+ } catch (_error) {
7
+ twSheet = null;
8
+ }
9
+ function TWMixin(Base) {
10
+ class TWElement extends Base {
11
+ createRenderRoot() {
12
+ const renderRoot = super.createRenderRoot();
13
+ if (!(renderRoot instanceof ShadowRoot)) throw new Error("TWMixin can only be applied to elements with shadow roots");
14
+ if (!twSheet) throw new Error("twSheet not found. Probable cause: CSSStyleSheet not supported in this environment");
15
+ const constructorStylesheets = [];
16
+ const constructorStyles = "styles" in this.constructor && this.constructor.styles || [];
17
+ if (Array.isArray(constructorStyles)) {
18
+ for (const item of constructorStyles) if (item.styleSheet) constructorStylesheets.push(item.styleSheet);
19
+ } else if (constructorStyles.styleSheet) constructorStylesheets.push(constructorStyles.styleSheet);
20
+ if (renderRoot?.adoptedStyleSheets) renderRoot.adoptedStyleSheets = [
21
+ twSheet,
22
+ ...renderRoot.adoptedStyleSheets,
23
+ ...constructorStylesheets
24
+ ];
25
+ else renderRoot.adoptedStyleSheets = [twSheet, ...constructorStylesheets];
26
+ return renderRoot;
27
+ }
28
+ }
29
+ return TWElement;
30
+ }
31
+ export { TWMixin };
@@ -1,7 +1,3 @@
1
1
  import { createContext } from "@lit/context";
2
- const efContext = createContext(
3
- Symbol("efContext")
4
- );
5
- export {
6
- efContext
7
- };
2
+ const efContext = createContext(Symbol("efContext"));
3
+ export { efContext };
@@ -1,5 +1,3 @@
1
1
  import { createContext } from "@lit/context";
2
2
  const fetchContext = createContext(Symbol("fetchContext"));
3
- export {
4
- fetchContext
5
- };
3
+ export { fetchContext };
@@ -1,5 +1,3 @@
1
1
  import { createContext } from "@lit/context";
2
2
  const focusContext = createContext(Symbol("focusContext"));
3
- export {
4
- focusContext
5
- };
3
+ export { focusContext };
@@ -1,7 +1,3 @@
1
1
  import { createContext } from "@lit/context";
2
- const focusedElementContext = createContext(
3
- Symbol("focusedElement")
4
- );
5
- export {
6
- focusedElementContext
7
- };
2
+ const focusedElementContext = createContext(Symbol("focusedElement"));
3
+ export { focusedElementContext };
@@ -1,7 +1,4 @@
1
1
  import { createContext } from "@lit/context";
2
2
  const playingContext = createContext(Symbol("playingContext"));
3
3
  const loopContext = createContext(Symbol("loopContext"));
4
- export {
5
- loopContext,
6
- playingContext
7
- };
4
+ export { loopContext, playingContext };