@editframe/elements 0.30.2-beta.0 → 0.31.0-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 (324) hide show
  1. package/dist/EF_FRAMEGEN.d.ts +5 -0
  2. package/dist/EF_FRAMEGEN.js +20 -4
  3. package/dist/EF_FRAMEGEN.js.map +1 -1
  4. package/dist/EF_INTERACTIVE.js.map +1 -1
  5. package/dist/_virtual/rolldown_runtime.js +27 -0
  6. package/dist/canvas/EFCanvas.d.ts +311 -0
  7. package/dist/canvas/EFCanvas.js +1089 -0
  8. package/dist/canvas/EFCanvas.js.map +1 -0
  9. package/dist/canvas/EFCanvasItem.d.ts +55 -0
  10. package/dist/canvas/EFCanvasItem.js +72 -0
  11. package/dist/canvas/EFCanvasItem.js.map +1 -0
  12. package/dist/canvas/api/CanvasAPI.d.ts +115 -0
  13. package/dist/canvas/api/CanvasAPI.js +182 -0
  14. package/dist/canvas/api/CanvasAPI.js.map +1 -0
  15. package/dist/canvas/api/types.d.ts +42 -0
  16. package/dist/canvas/coordinateTransform.js +90 -0
  17. package/dist/canvas/coordinateTransform.js.map +1 -0
  18. package/dist/canvas/getElementBounds.js +40 -0
  19. package/dist/canvas/getElementBounds.js.map +1 -0
  20. package/dist/canvas/overlays/SelectionOverlay.js +265 -0
  21. package/dist/canvas/overlays/SelectionOverlay.js.map +1 -0
  22. package/dist/canvas/overlays/overlayState.js +153 -0
  23. package/dist/canvas/overlays/overlayState.js.map +1 -0
  24. package/dist/canvas/selection/SelectionController.js +105 -0
  25. package/dist/canvas/selection/SelectionController.js.map +1 -0
  26. package/dist/canvas/selection/SelectionModel.d.ts +98 -0
  27. package/dist/canvas/selection/SelectionModel.js +229 -0
  28. package/dist/canvas/selection/SelectionModel.js.map +1 -0
  29. package/dist/canvas/selection/selectionContext.d.ts +31 -0
  30. package/dist/canvas/selection/selectionContext.js +12 -0
  31. package/dist/canvas/selection/selectionContext.js.map +1 -0
  32. package/dist/elements/ContainerInfo.d.ts +29 -0
  33. package/dist/elements/ContainerInfo.js +30 -0
  34. package/dist/elements/ContainerInfo.js.map +1 -0
  35. package/dist/elements/EFAudio.d.ts +13 -3
  36. package/dist/elements/EFAudio.js +64 -10
  37. package/dist/elements/EFAudio.js.map +1 -1
  38. package/dist/elements/EFCaptions.d.ts +18 -16
  39. package/dist/elements/EFCaptions.js +110 -19
  40. package/dist/elements/EFCaptions.js.map +1 -1
  41. package/dist/elements/EFImage.d.ts +12 -2
  42. package/dist/elements/EFImage.js +79 -9
  43. package/dist/elements/EFImage.js.map +1 -1
  44. package/dist/elements/EFMedia/AssetIdMediaEngine.js +51 -4
  45. package/dist/elements/EFMedia/AssetIdMediaEngine.js.map +1 -1
  46. package/dist/elements/EFMedia/AssetMediaEngine.js +125 -52
  47. package/dist/elements/EFMedia/AssetMediaEngine.js.map +1 -1
  48. package/dist/elements/EFMedia/BaseMediaEngine.js +24 -6
  49. package/dist/elements/EFMedia/BaseMediaEngine.js.map +1 -1
  50. package/dist/elements/EFMedia/JitMediaEngine.js +12 -8
  51. package/dist/elements/EFMedia/JitMediaEngine.js.map +1 -1
  52. package/dist/elements/EFMedia/audioTasks/makeAudioBufferTask.js +46 -7
  53. package/dist/elements/EFMedia/audioTasks/makeAudioBufferTask.js.map +1 -1
  54. package/dist/elements/EFMedia/audioTasks/makeAudioFrequencyAnalysisTask.js +98 -73
  55. package/dist/elements/EFMedia/audioTasks/makeAudioFrequencyAnalysisTask.js.map +1 -1
  56. package/dist/elements/EFMedia/audioTasks/makeAudioInitSegmentFetchTask.js +28 -5
  57. package/dist/elements/EFMedia/audioTasks/makeAudioInitSegmentFetchTask.js.map +1 -1
  58. package/dist/elements/EFMedia/audioTasks/makeAudioInputTask.js +18 -6
  59. package/dist/elements/EFMedia/audioTasks/makeAudioInputTask.js.map +1 -1
  60. package/dist/elements/EFMedia/audioTasks/makeAudioSeekTask.js +8 -2
  61. package/dist/elements/EFMedia/audioTasks/makeAudioSeekTask.js.map +1 -1
  62. package/dist/elements/EFMedia/audioTasks/makeAudioSegmentFetchTask.js +31 -6
  63. package/dist/elements/EFMedia/audioTasks/makeAudioSegmentFetchTask.js.map +1 -1
  64. package/dist/elements/EFMedia/audioTasks/makeAudioSegmentIdTask.js +28 -5
  65. package/dist/elements/EFMedia/audioTasks/makeAudioSegmentIdTask.js.map +1 -1
  66. package/dist/elements/EFMedia/audioTasks/makeAudioTimeDomainAnalysisTask.js +97 -72
  67. package/dist/elements/EFMedia/audioTasks/makeAudioTimeDomainAnalysisTask.js.map +1 -1
  68. package/dist/elements/EFMedia/shared/AudioSpanUtils.js +3 -1
  69. package/dist/elements/EFMedia/shared/AudioSpanUtils.js.map +1 -1
  70. package/dist/elements/EFMedia/shared/BufferUtils.js +1 -1
  71. package/dist/elements/EFMedia/shared/BufferUtils.js.map +1 -1
  72. package/dist/elements/EFMedia/shared/ThumbnailExtractor.js +25 -14
  73. package/dist/elements/EFMedia/shared/ThumbnailExtractor.js.map +1 -1
  74. package/dist/elements/EFMedia/tasks/makeMediaEngineTask.js +47 -16
  75. package/dist/elements/EFMedia/tasks/makeMediaEngineTask.js.map +1 -1
  76. package/dist/elements/EFMedia/videoTasks/MainVideoInputCache.js +37 -19
  77. package/dist/elements/EFMedia/videoTasks/MainVideoInputCache.js.map +1 -1
  78. package/dist/elements/EFMedia/videoTasks/ScrubInputCache.js +65 -21
  79. package/dist/elements/EFMedia/videoTasks/ScrubInputCache.js.map +1 -1
  80. package/dist/elements/EFMedia/videoTasks/makeScrubVideoBufferTask.js +8 -3
  81. package/dist/elements/EFMedia/videoTasks/makeScrubVideoBufferTask.js.map +1 -1
  82. package/dist/elements/EFMedia/videoTasks/makeScrubVideoInitSegmentFetchTask.js +32 -9
  83. package/dist/elements/EFMedia/videoTasks/makeScrubVideoInitSegmentFetchTask.js.map +1 -1
  84. package/dist/elements/EFMedia/videoTasks/makeScrubVideoInputTask.js +33 -10
  85. package/dist/elements/EFMedia/videoTasks/makeScrubVideoInputTask.js.map +1 -1
  86. package/dist/elements/EFMedia/videoTasks/makeScrubVideoSeekTask.js +23 -8
  87. package/dist/elements/EFMedia/videoTasks/makeScrubVideoSeekTask.js.map +1 -1
  88. package/dist/elements/EFMedia/videoTasks/makeScrubVideoSegmentFetchTask.js +34 -10
  89. package/dist/elements/EFMedia/videoTasks/makeScrubVideoSegmentFetchTask.js.map +1 -1
  90. package/dist/elements/EFMedia/videoTasks/makeScrubVideoSegmentIdTask.js +31 -8
  91. package/dist/elements/EFMedia/videoTasks/makeScrubVideoSegmentIdTask.js.map +1 -1
  92. package/dist/elements/EFMedia/videoTasks/makeUnifiedVideoSeekTask.js +31 -114
  93. package/dist/elements/EFMedia/videoTasks/makeUnifiedVideoSeekTask.js.map +1 -1
  94. package/dist/elements/EFMedia/videoTasks/makeVideoBufferTask.js +44 -8
  95. package/dist/elements/EFMedia/videoTasks/makeVideoBufferTask.js.map +1 -1
  96. package/dist/elements/EFMedia.d.ts +18 -7
  97. package/dist/elements/EFMedia.js +23 -3
  98. package/dist/elements/EFMedia.js.map +1 -1
  99. package/dist/elements/EFPanZoom.d.ts +96 -0
  100. package/dist/elements/EFPanZoom.js +290 -0
  101. package/dist/elements/EFPanZoom.js.map +1 -0
  102. package/dist/elements/EFSourceMixin.js +7 -6
  103. package/dist/elements/EFSourceMixin.js.map +1 -1
  104. package/dist/elements/EFSurface.d.ts +6 -6
  105. package/dist/elements/EFSurface.js +7 -2
  106. package/dist/elements/EFSurface.js.map +1 -1
  107. package/dist/elements/EFTemporal.d.ts +2 -1
  108. package/dist/elements/EFTemporal.js +192 -71
  109. package/dist/elements/EFTemporal.js.map +1 -1
  110. package/dist/elements/EFText.d.ts +5 -4
  111. package/dist/elements/EFText.js +102 -13
  112. package/dist/elements/EFText.js.map +1 -1
  113. package/dist/elements/EFTextSegment.d.ts +32 -6
  114. package/dist/elements/EFTextSegment.js +53 -15
  115. package/dist/elements/EFTextSegment.js.map +1 -1
  116. package/dist/elements/EFThumbnailStrip.d.ts +118 -56
  117. package/dist/elements/EFThumbnailStrip.js +522 -358
  118. package/dist/elements/EFThumbnailStrip.js.map +1 -1
  119. package/dist/elements/EFTimegroup.d.ts +223 -27
  120. package/dist/elements/EFTimegroup.js +850 -147
  121. package/dist/elements/EFTimegroup.js.map +1 -1
  122. package/dist/elements/EFVideo.d.ts +42 -5
  123. package/dist/elements/EFVideo.js +165 -11
  124. package/dist/elements/EFVideo.js.map +1 -1
  125. package/dist/elements/EFWaveform.d.ts +6 -6
  126. package/dist/elements/EFWaveform.js +2 -1
  127. package/dist/elements/EFWaveform.js.map +1 -1
  128. package/dist/elements/ElementPositionInfo.d.ts +35 -0
  129. package/dist/elements/ElementPositionInfo.js +49 -0
  130. package/dist/elements/ElementPositionInfo.js.map +1 -0
  131. package/dist/elements/FetchMixin.js +16 -1
  132. package/dist/elements/FetchMixin.js.map +1 -1
  133. package/dist/elements/SessionThumbnailCache.js +152 -0
  134. package/dist/elements/SessionThumbnailCache.js.map +1 -0
  135. package/dist/elements/TargetController.js +3 -1
  136. package/dist/elements/TargetController.js.map +1 -1
  137. package/dist/elements/TimegroupController.js +9 -3
  138. package/dist/elements/TimegroupController.js.map +1 -1
  139. package/dist/elements/findRootTemporal.js +30 -0
  140. package/dist/elements/findRootTemporal.js.map +1 -0
  141. package/dist/elements/renderTemporalAudio.js +18 -5
  142. package/dist/elements/renderTemporalAudio.js.map +1 -1
  143. package/dist/elements/updateAnimations.js +171 -28
  144. package/dist/elements/updateAnimations.js.map +1 -1
  145. package/dist/getRenderInfo.d.ts +2 -2
  146. package/dist/gui/ContextMixin.js +4 -2
  147. package/dist/gui/ContextMixin.js.map +1 -1
  148. package/dist/gui/Controllable.js +74 -1
  149. package/dist/gui/Controllable.js.map +1 -1
  150. package/dist/gui/EFActiveRootTemporal.d.ts +50 -0
  151. package/dist/gui/EFActiveRootTemporal.js +94 -0
  152. package/dist/gui/EFActiveRootTemporal.js.map +1 -0
  153. package/dist/gui/EFConfiguration.d.ts +11 -5
  154. package/dist/gui/EFConfiguration.js.map +1 -1
  155. package/dist/gui/EFControls.d.ts +2 -2
  156. package/dist/gui/EFControls.js +109 -13
  157. package/dist/gui/EFControls.js.map +1 -1
  158. package/dist/gui/EFDial.d.ts +4 -4
  159. package/dist/gui/EFFilmstrip.d.ts +11 -214
  160. package/dist/gui/EFFilmstrip.js +53 -1152
  161. package/dist/gui/EFFilmstrip.js.map +1 -1
  162. package/dist/gui/EFFitScale.d.ts +3 -3
  163. package/dist/gui/EFFitScale.js +39 -12
  164. package/dist/gui/EFFitScale.js.map +1 -1
  165. package/dist/gui/EFFocusOverlay.d.ts +4 -4
  166. package/dist/gui/EFOverlayItem.d.ts +48 -0
  167. package/dist/gui/EFOverlayItem.js +97 -0
  168. package/dist/gui/EFOverlayItem.js.map +1 -0
  169. package/dist/gui/EFOverlayLayer.d.ts +70 -0
  170. package/dist/gui/EFOverlayLayer.js +104 -0
  171. package/dist/gui/EFOverlayLayer.js.map +1 -0
  172. package/dist/gui/EFPause.d.ts +4 -4
  173. package/dist/gui/EFPlay.d.ts +4 -4
  174. package/dist/gui/EFResizableBox.d.ts +12 -16
  175. package/dist/gui/EFResizableBox.js +109 -451
  176. package/dist/gui/EFResizableBox.js.map +1 -1
  177. package/dist/gui/EFScrubber.d.ts +30 -5
  178. package/dist/gui/EFScrubber.js +224 -31
  179. package/dist/gui/EFScrubber.js.map +1 -1
  180. package/dist/gui/EFTimeDisplay.d.ts +4 -4
  181. package/dist/gui/EFTimeDisplay.js +4 -1
  182. package/dist/gui/EFTimeDisplay.js.map +1 -1
  183. package/dist/gui/EFTimelineRuler.d.ts +71 -0
  184. package/dist/gui/EFTimelineRuler.js +320 -0
  185. package/dist/gui/EFTimelineRuler.js.map +1 -0
  186. package/dist/gui/EFToggleLoop.d.ts +4 -4
  187. package/dist/gui/EFTogglePlay.d.ts +4 -4
  188. package/dist/gui/EFTransformHandles.d.ts +91 -0
  189. package/dist/gui/EFTransformHandles.js +393 -0
  190. package/dist/gui/EFTransformHandles.js.map +1 -0
  191. package/dist/gui/EFWorkbench.d.ts +182 -4
  192. package/dist/gui/EFWorkbench.js +2067 -22
  193. package/dist/gui/EFWorkbench.js.map +1 -1
  194. package/dist/gui/FitScaleHelpers.d.ts +31 -0
  195. package/dist/gui/FitScaleHelpers.js +41 -0
  196. package/dist/gui/FitScaleHelpers.js.map +1 -0
  197. package/dist/gui/PlaybackController.d.ts +2 -1
  198. package/dist/gui/PlaybackController.js +46 -15
  199. package/dist/gui/PlaybackController.js.map +1 -1
  200. package/dist/gui/TWMixin.js +1 -1
  201. package/dist/gui/TWMixin.js.map +1 -1
  202. package/dist/gui/hierarchy/EFHierarchy.d.ts +65 -0
  203. package/dist/gui/hierarchy/EFHierarchy.js +338 -0
  204. package/dist/gui/hierarchy/EFHierarchy.js.map +1 -0
  205. package/dist/gui/hierarchy/EFHierarchyItem.d.ts +118 -0
  206. package/dist/gui/hierarchy/EFHierarchyItem.js +551 -0
  207. package/dist/gui/hierarchy/EFHierarchyItem.js.map +1 -0
  208. package/dist/gui/hierarchy/hierarchyContext.d.ts +38 -0
  209. package/dist/gui/hierarchy/hierarchyContext.js +8 -0
  210. package/dist/gui/hierarchy/hierarchyContext.js.map +1 -0
  211. package/dist/gui/icons.js +34 -0
  212. package/dist/gui/icons.js.map +1 -0
  213. package/dist/gui/panZoomTransformContext.js +12 -0
  214. package/dist/gui/panZoomTransformContext.js.map +1 -0
  215. package/dist/gui/previewSettingsContext.js +12 -0
  216. package/dist/gui/previewSettingsContext.js.map +1 -0
  217. package/dist/gui/timeline/EFTimeline.d.ts +270 -0
  218. package/dist/gui/timeline/EFTimeline.js +1369 -0
  219. package/dist/gui/timeline/EFTimeline.js.map +1 -0
  220. package/dist/gui/timeline/EFTimelineRow.js +374 -0
  221. package/dist/gui/timeline/EFTimelineRow.js.map +1 -0
  222. package/dist/gui/timeline/TrimHandles.d.ts +36 -0
  223. package/dist/gui/timeline/TrimHandles.js +204 -0
  224. package/dist/gui/timeline/TrimHandles.js.map +1 -0
  225. package/dist/gui/timeline/flattenHierarchy.js +31 -0
  226. package/dist/gui/timeline/flattenHierarchy.js.map +1 -0
  227. package/dist/gui/timeline/timelineStateContext.d.ts +26 -0
  228. package/dist/gui/timeline/timelineStateContext.js +42 -0
  229. package/dist/gui/timeline/timelineStateContext.js.map +1 -0
  230. package/dist/gui/timeline/tracks/AudioTrack.js +264 -0
  231. package/dist/gui/timeline/tracks/AudioTrack.js.map +1 -0
  232. package/dist/gui/timeline/tracks/CaptionsTrack.js +595 -0
  233. package/dist/gui/timeline/tracks/CaptionsTrack.js.map +1 -0
  234. package/dist/gui/timeline/tracks/HTMLTrack.js +19 -0
  235. package/dist/gui/timeline/tracks/HTMLTrack.js.map +1 -0
  236. package/dist/gui/timeline/tracks/ImageTrack.js +53 -0
  237. package/dist/gui/timeline/tracks/ImageTrack.js.map +1 -0
  238. package/dist/gui/timeline/tracks/TextTrack.js +250 -0
  239. package/dist/gui/timeline/tracks/TextTrack.js.map +1 -0
  240. package/dist/gui/timeline/tracks/TimegroupTrack.js +143 -0
  241. package/dist/gui/timeline/tracks/TimegroupTrack.js.map +1 -0
  242. package/dist/gui/timeline/tracks/TrackItem.js +269 -0
  243. package/dist/gui/timeline/tracks/TrackItem.js.map +1 -0
  244. package/dist/gui/timeline/tracks/VideoTrack.js +265 -0
  245. package/dist/gui/timeline/tracks/VideoTrack.js.map +1 -0
  246. package/dist/gui/timeline/tracks/WaveformTrack.js +19 -0
  247. package/dist/gui/timeline/tracks/WaveformTrack.js.map +1 -0
  248. package/dist/gui/timeline/tracks/ensureTrackItemInit.js +1 -0
  249. package/dist/gui/timeline/tracks/preloadTracks.js +9 -0
  250. package/dist/gui/timeline/tracks/renderTrackChildren.js +119 -0
  251. package/dist/gui/timeline/tracks/renderTrackChildren.js.map +1 -0
  252. package/dist/gui/timeline/tracks/waveformUtils.js +80 -0
  253. package/dist/gui/timeline/tracks/waveformUtils.js.map +1 -0
  254. package/dist/gui/transformCalculations.js +217 -0
  255. package/dist/gui/transformCalculations.js.map +1 -0
  256. package/dist/gui/transformUtils.d.ts +37 -0
  257. package/dist/gui/transformUtils.js +77 -0
  258. package/dist/gui/transformUtils.js.map +1 -0
  259. package/dist/gui/tree/EFTree.d.ts +59 -0
  260. package/dist/gui/tree/EFTree.js +174 -0
  261. package/dist/gui/tree/EFTree.js.map +1 -0
  262. package/dist/gui/tree/EFTreeItem.d.ts +38 -0
  263. package/dist/gui/tree/EFTreeItem.js +146 -0
  264. package/dist/gui/tree/EFTreeItem.js.map +1 -0
  265. package/dist/gui/tree/treeContext.d.ts +60 -0
  266. package/dist/gui/tree/treeContext.js +23 -0
  267. package/dist/gui/tree/treeContext.js.map +1 -0
  268. package/dist/index.d.ts +32 -8
  269. package/dist/index.js +30 -6
  270. package/dist/index.js.map +1 -1
  271. package/dist/node_modules/react/cjs/react-jsx-runtime.development.js +688 -0
  272. package/dist/node_modules/react/cjs/react-jsx-runtime.development.js.map +1 -0
  273. package/dist/node_modules/react/cjs/react.development.js +1521 -0
  274. package/dist/node_modules/react/cjs/react.development.js.map +1 -0
  275. package/dist/node_modules/react/index.js +13 -0
  276. package/dist/node_modules/react/index.js.map +1 -0
  277. package/dist/node_modules/react/jsx-runtime.js +13 -0
  278. package/dist/node_modules/react/jsx-runtime.js.map +1 -0
  279. package/dist/preview/AdaptiveResolutionTracker.js +228 -0
  280. package/dist/preview/AdaptiveResolutionTracker.js.map +1 -0
  281. package/dist/preview/RenderProfiler.js +135 -0
  282. package/dist/preview/RenderProfiler.js.map +1 -0
  283. package/dist/preview/previewSettings.js +131 -0
  284. package/dist/preview/previewSettings.js.map +1 -0
  285. package/dist/preview/previewTypes.js +64 -0
  286. package/dist/preview/previewTypes.js.map +1 -0
  287. package/dist/preview/renderTimegroupPreview.js +656 -0
  288. package/dist/preview/renderTimegroupPreview.js.map +1 -0
  289. package/dist/preview/renderTimegroupToCanvas.d.ts +37 -0
  290. package/dist/preview/renderTimegroupToCanvas.js +840 -0
  291. package/dist/preview/renderTimegroupToCanvas.js.map +1 -0
  292. package/dist/preview/renderTimegroupToVideo.d.ts +39 -0
  293. package/dist/preview/renderTimegroupToVideo.js +274 -0
  294. package/dist/preview/renderTimegroupToVideo.js.map +1 -0
  295. package/dist/preview/renderers.js +16 -0
  296. package/dist/preview/renderers.js.map +1 -0
  297. package/dist/preview/statsTrackingStrategy.js +201 -0
  298. package/dist/preview/statsTrackingStrategy.js.map +1 -0
  299. package/dist/preview/thumbnailCacheSettings.js +52 -0
  300. package/dist/preview/thumbnailCacheSettings.js.map +1 -0
  301. package/dist/preview/workers/WorkerPool.js +178 -0
  302. package/dist/preview/workers/WorkerPool.js.map +1 -0
  303. package/dist/sandbox/PlaybackControls.js +10 -0
  304. package/dist/sandbox/PlaybackControls.js.map +1 -0
  305. package/dist/sandbox/ScenarioRunner.js +1 -0
  306. package/dist/sandbox/index.js +2 -0
  307. package/dist/style.css +68 -67
  308. package/dist/transcoding/types/index.d.ts +2 -1
  309. package/dist/transcoding/utils/UrlGenerator.d.ts +6 -1
  310. package/dist/transcoding/utils/UrlGenerator.js +12 -3
  311. package/dist/transcoding/utils/UrlGenerator.js.map +1 -1
  312. package/dist/utils/LRUCache.js +1 -375
  313. package/dist/utils/LRUCache.js.map +1 -1
  314. package/dist/utils/frameTime.js +14 -0
  315. package/dist/utils/frameTime.js.map +1 -0
  316. package/package.json +3 -3
  317. package/test/profilingPlugin.ts +223 -0
  318. package/test/recordReplayProxyPlugin.js +22 -27
  319. package/test/thumbnail-performance-test.html +116 -0
  320. package/test/visualRegressionUtils.ts +286 -0
  321. package/types.json +1 -1
  322. package/dist/elements/TimegroupController.d.ts +0 -18
  323. package/dist/msToTimeCode.js +0 -17
  324. package/dist/msToTimeCode.js.map +0 -1
@@ -0,0 +1,104 @@
1
+ import { __decorate } from "../_virtual/_@oxc-project_runtime@0.94.0/helpers/decorate.js";
2
+ import { panZoomTransformContext } from "./panZoomTransformContext.js";
3
+ import { consume } from "@lit/context";
4
+ import { LitElement, css, html } from "lit";
5
+ import { customElement, property } from "lit/decorators.js";
6
+
7
+ //#region src/gui/EFOverlayLayer.ts
8
+ let EFOverlayLayer = class EFOverlayLayer$1 extends LitElement {
9
+ constructor(..._args) {
10
+ super(..._args);
11
+ this.registeredItems = /* @__PURE__ */ new Set();
12
+ this.rafId = null;
13
+ }
14
+ static {
15
+ this.styles = [css`
16
+ :host {
17
+ display: block;
18
+ position: absolute;
19
+ inset: 0;
20
+ pointer-events: none;
21
+ transform-origin: 0 0;
22
+ }
23
+ `];
24
+ }
25
+ /**
26
+ * Register an overlay item for coordinated updates.
27
+ * Called by EFOverlayItem in connectedCallback.
28
+ */
29
+ registerOverlayItem(item) {
30
+ this.registeredItems.add(item);
31
+ }
32
+ /**
33
+ * Unregister an overlay item.
34
+ * Called by EFOverlayItem in disconnectedCallback.
35
+ */
36
+ unregisterOverlayItem(item) {
37
+ this.registeredItems.delete(item);
38
+ }
39
+ /**
40
+ * Single source of truth for reading the current transform.
41
+ * Priority: context > sibling DOM read > prop > default
42
+ */
43
+ readTransform() {
44
+ if (this.panZoomTransformFromContext) return this.panZoomTransformFromContext;
45
+ const panZoomElement = this.parentElement?.querySelector("ef-pan-zoom");
46
+ if (panZoomElement && typeof panZoomElement.x === "number") {
47
+ const contentWrapper = panZoomElement.shadowRoot?.querySelector(".content-wrapper");
48
+ const matrixMatch = (contentWrapper && window.getComputedStyle(contentWrapper).transform)?.match(/matrix\(([^)]+)\)/);
49
+ const scale = matrixMatch ? parseFloat(matrixMatch[1].split(",")[0].trim()) : panZoomElement.scale ?? 1;
50
+ return {
51
+ x: panZoomElement.x ?? 0,
52
+ y: panZoomElement.y ?? 0,
53
+ scale
54
+ };
55
+ }
56
+ if (this.panZoomTransform) return this.panZoomTransform;
57
+ return {
58
+ x: 0,
59
+ y: 0,
60
+ scale: 1
61
+ };
62
+ }
63
+ /**
64
+ * Simple RAF loop: Update everything on every frame.
65
+ */
66
+ startLoop() {
67
+ const update = () => {
68
+ const transform = this.readTransform();
69
+ if (this.panZoomTransformFromContext) this.style.transform = "none";
70
+ else this.style.transform = `translate(${transform.x}px, ${transform.y}px)`;
71
+ for (const item of this.registeredItems) item.updatePosition();
72
+ this.rafId = requestAnimationFrame(update);
73
+ };
74
+ this.rafId = requestAnimationFrame(update);
75
+ }
76
+ stopLoop() {
77
+ if (this.rafId !== null) {
78
+ cancelAnimationFrame(this.rafId);
79
+ this.rafId = null;
80
+ }
81
+ }
82
+ connectedCallback() {
83
+ super.connectedCallback();
84
+ this.startLoop();
85
+ }
86
+ disconnectedCallback() {
87
+ super.disconnectedCallback();
88
+ this.stopLoop();
89
+ }
90
+ updated() {}
91
+ render() {
92
+ return html`<slot></slot>`;
93
+ }
94
+ };
95
+ __decorate([consume({
96
+ context: panZoomTransformContext,
97
+ subscribe: true
98
+ })], EFOverlayLayer.prototype, "panZoomTransformFromContext", void 0);
99
+ __decorate([property({ type: Object })], EFOverlayLayer.prototype, "panZoomTransform", void 0);
100
+ EFOverlayLayer = __decorate([customElement("ef-overlay-layer")], EFOverlayLayer);
101
+
102
+ //#endregion
103
+ export { EFOverlayLayer };
104
+ //# sourceMappingURL=EFOverlayLayer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EFOverlayLayer.js","names":["EFOverlayLayer"],"sources":["../../src/gui/EFOverlayLayer.ts"],"sourcesContent":["import { consume } from \"@lit/context\";\nimport { css, html, LitElement } from \"lit\";\nimport { customElement, property } from \"lit/decorators.js\";\nimport { panZoomTransformContext } from \"./panZoomTransformContext.js\";\nimport type { PanZoomTransform } from \"../elements/EFPanZoom.js\";\nimport type { EFOverlayItem } from \"./EFOverlayItem.js\";\n\n/**\n * Overlay layer container component.\n *\n * SIMPLE ARCHITECTURE:\n * - Runs a SINGLE RAF loop that updates everything every frame\n * - No change detection, no optimization, no delays\n * - Just: read transform → apply it → update all items → next frame\n *\n * Core responsibilities:\n * - Consumes PanZoom transform from context (if PanZoom is ancestor)\n * - Accepts transform via props as fallback (for sibling PanZoom)\n * - Applies translate-only transform (no scale) directly to host element\n * - Manages registered child EFOverlayItem components\n * - Updates all overlays every animation frame\n *\n * The transform is applied directly to the host element so that:\n * 1. getBoundingClientRect() returns the transformed position\n * 2. EFOverlayItem can use this rect for coordinate calculations\n */\n@customElement(\"ef-overlay-layer\")\nexport class EFOverlayLayer extends LitElement {\n static styles = [\n css`\n :host {\n display: block;\n position: absolute;\n inset: 0;\n pointer-events: none;\n transform-origin: 0 0;\n }\n `,\n ];\n\n @consume({ context: panZoomTransformContext, subscribe: true })\n panZoomTransformFromContext?: PanZoomTransform;\n\n /**\n * Pan/zoom transform as fallback for when context or sibling PanZoom is not available.\n * Primarily used for testing and standalone usage.\n */\n @property({ type: Object })\n panZoomTransform?: PanZoomTransform;\n\n // Track registered overlay items for coordinated updates\n private registeredItems = new Set<EFOverlayItem>();\n private rafId: number | null = null;\n\n /**\n * Register an overlay item for coordinated updates.\n * Called by EFOverlayItem in connectedCallback.\n */\n registerOverlayItem(item: EFOverlayItem) {\n this.registeredItems.add(item);\n }\n\n /**\n * Unregister an overlay item.\n * Called by EFOverlayItem in disconnectedCallback.\n */\n unregisterOverlayItem(item: EFOverlayItem) {\n this.registeredItems.delete(item);\n }\n\n /**\n * Single source of truth for reading the current transform.\n * Priority: context > sibling DOM read > prop > default\n */\n private readTransform(): PanZoomTransform {\n // 1. Context (synchronous, preferred)\n if (this.panZoomTransformFromContext) {\n return this.panZoomTransformFromContext;\n }\n\n // 2. Read directly from sibling PanZoom element\n const panZoomElement = this.parentElement?.querySelector(\n \"ef-pan-zoom\",\n ) as any;\n if (panZoomElement && typeof panZoomElement.x === \"number\") {\n const contentWrapper =\n panZoomElement.shadowRoot?.querySelector(\".content-wrapper\");\n const computedTransform =\n contentWrapper && window.getComputedStyle(contentWrapper).transform;\n\n // Parse scale from matrix(scaleX, skewY, skewX, scaleY, tx, ty)\n const matrixMatch = computedTransform?.match(/matrix\\(([^)]+)\\)/);\n const scale = matrixMatch\n ? parseFloat(matrixMatch[1].split(\",\")[0].trim())\n : (panZoomElement.scale ?? 1);\n\n return { x: panZoomElement.x ?? 0, y: panZoomElement.y ?? 0, scale };\n }\n\n // 3. Prop (for testing)\n if (this.panZoomTransform) {\n return this.panZoomTransform;\n }\n\n // 4. Default\n return { x: 0, y: 0, scale: 1 };\n }\n\n /**\n * Simple RAF loop: Update everything on every frame.\n */\n private startLoop() {\n const update = () => {\n const transform = this.readTransform();\n\n // Apply transform\n // If we're a child of panzoom (receiving context), we're inside the scaled content-wrapper\n // which already applies translate(x, y) scale(s). We should NOT apply our own translate\n // because the parent transform already handles the pan. Our getBoundingClientRect() will\n // naturally include the parent's transform.\n // If we're a sibling of panzoom, we need to apply the translate ourselves to match the pan.\n if (this.panZoomTransformFromContext) {\n // Child of panzoom - don't apply any transform, parent handles it\n this.style.transform = \"none\";\n } else {\n // Sibling of panzoom - apply translate directly to match panzoom's pan\n this.style.transform = `translate(${transform.x}px, ${transform.y}px)`;\n }\n\n // Update all overlay items\n for (const item of this.registeredItems) {\n item.updatePosition();\n }\n\n // Schedule next frame\n this.rafId = requestAnimationFrame(update);\n };\n\n this.rafId = requestAnimationFrame(update);\n }\n\n private stopLoop() {\n if (this.rafId !== null) {\n cancelAnimationFrame(this.rafId);\n this.rafId = null;\n }\n }\n\n connectedCallback() {\n super.connectedCallback();\n this.startLoop();\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this.stopLoop();\n }\n\n updated() {\n // Transform changes are handled by RAF loop\n }\n\n render() {\n // Simple slot - transform is applied to host element, not a wrapper\n return html`<slot></slot>`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"ef-overlay-layer\": EFOverlayLayer;\n }\n}\n"],"mappings":";;;;;;;AA2BO,2BAAMA,yBAAuB,WAAW;;;yCAwBnB,IAAI,KAAoB;eACnB;;;gBAxBf,CACd,GAAG;;;;;;;;MASJ;;;;;;CAoBD,oBAAoB,MAAqB;AACvC,OAAK,gBAAgB,IAAI,KAAK;;;;;;CAOhC,sBAAsB,MAAqB;AACzC,OAAK,gBAAgB,OAAO,KAAK;;;;;;CAOnC,AAAQ,gBAAkC;AAExC,MAAI,KAAK,4BACP,QAAO,KAAK;EAId,MAAM,iBAAiB,KAAK,eAAe,cACzC,cACD;AACD,MAAI,kBAAkB,OAAO,eAAe,MAAM,UAAU;GAC1D,MAAM,iBACJ,eAAe,YAAY,cAAc,mBAAmB;GAK9D,MAAM,eAHJ,kBAAkB,OAAO,iBAAiB,eAAe,CAAC,YAGrB,MAAM,oBAAoB;GACjE,MAAM,QAAQ,cACV,WAAW,YAAY,GAAG,MAAM,IAAI,CAAC,GAAG,MAAM,CAAC,GAC9C,eAAe,SAAS;AAE7B,UAAO;IAAE,GAAG,eAAe,KAAK;IAAG,GAAG,eAAe,KAAK;IAAG;IAAO;;AAItE,MAAI,KAAK,iBACP,QAAO,KAAK;AAId,SAAO;GAAE,GAAG;GAAG,GAAG;GAAG,OAAO;GAAG;;;;;CAMjC,AAAQ,YAAY;EAClB,MAAM,eAAe;GACnB,MAAM,YAAY,KAAK,eAAe;AAQtC,OAAI,KAAK,4BAEP,MAAK,MAAM,YAAY;OAGvB,MAAK,MAAM,YAAY,aAAa,UAAU,EAAE,MAAM,UAAU,EAAE;AAIpE,QAAK,MAAM,QAAQ,KAAK,gBACtB,MAAK,gBAAgB;AAIvB,QAAK,QAAQ,sBAAsB,OAAO;;AAG5C,OAAK,QAAQ,sBAAsB,OAAO;;CAG5C,AAAQ,WAAW;AACjB,MAAI,KAAK,UAAU,MAAM;AACvB,wBAAqB,KAAK,MAAM;AAChC,QAAK,QAAQ;;;CAIjB,oBAAoB;AAClB,QAAM,mBAAmB;AACzB,OAAK,WAAW;;CAGlB,uBAAuB;AACrB,QAAM,sBAAsB;AAC5B,OAAK,UAAU;;CAGjB,UAAU;CAIV,SAAS;AAEP,SAAO,IAAI;;;YA5HZ,QAAQ;CAAE,SAAS;CAAyB,WAAW;CAAM,CAAC;YAO9D,SAAS,EAAE,MAAM,QAAQ,CAAC;6BArB5B,cAAc,mBAAmB"}
@@ -1,7 +1,7 @@
1
1
  import { ControllableInterface } from "./Controllable.js";
2
- import * as lit18 from "lit";
2
+ import * as lit20 from "lit";
3
3
  import { LitElement } from "lit";
4
- import * as lit_html16 from "lit-html";
4
+ import * as lit_html20 from "lit-html";
5
5
 
6
6
  //#region src/gui/EFPause.d.ts
7
7
  declare const EFPause_base: (new (...args: any[]) => {
@@ -10,13 +10,13 @@ declare const EFPause_base: (new (...args: any[]) => {
10
10
  effectiveContext: ControllableInterface | null;
11
11
  }) & typeof LitElement;
12
12
  declare class EFPause extends EFPause_base {
13
- static styles: lit18.CSSResult[];
13
+ static styles: lit20.CSSResult[];
14
14
  playing: boolean;
15
15
  get efContext(): ControllableInterface | null;
16
16
  connectedCallback(): void;
17
17
  disconnectedCallback(): void;
18
18
  updated(changedProperties: Map<string | number | symbol, unknown>): void;
19
- render(): lit_html16.TemplateResult<1>;
19
+ render(): lit_html20.TemplateResult<1>;
20
20
  handleClick: () => void;
21
21
  }
22
22
  declare global {
@@ -1,7 +1,7 @@
1
1
  import { ControllableInterface } from "./Controllable.js";
2
- import * as lit17 from "lit";
2
+ import * as lit19 from "lit";
3
3
  import { LitElement } from "lit";
4
- import * as lit_html15 from "lit-html";
4
+ import * as lit_html19 from "lit-html";
5
5
 
6
6
  //#region src/gui/EFPlay.d.ts
7
7
  declare const EFPlay_base: (new (...args: any[]) => {
@@ -10,13 +10,13 @@ declare const EFPlay_base: (new (...args: any[]) => {
10
10
  effectiveContext: ControllableInterface | null;
11
11
  }) & typeof LitElement;
12
12
  declare class EFPlay extends EFPlay_base {
13
- static styles: lit17.CSSResult[];
13
+ static styles: lit19.CSSResult[];
14
14
  playing: boolean;
15
15
  get efContext(): ControllableInterface | null;
16
16
  connectedCallback(): void;
17
17
  disconnectedCallback(): void;
18
18
  updated(changedProperties: Map<string | number | symbol, unknown>): void;
19
- render(): lit_html15.TemplateResult<1>;
19
+ render(): lit_html19.TemplateResult<1>;
20
20
  handleClick: () => void;
21
21
  }
22
22
  declare global {
@@ -1,6 +1,6 @@
1
- import * as lit25 from "lit";
1
+ import * as lit29 from "lit";
2
2
  import { LitElement } from "lit";
3
- import * as lit_html22 from "lit-html";
3
+ import * as lit_html28 from "lit-html";
4
4
 
5
5
  //#region src/gui/EFResizableBox.d.ts
6
6
  interface BoxBounds {
@@ -15,26 +15,22 @@ declare class EFResizableBox extends LitElement {
15
15
  private containerHeight;
16
16
  minSize: number;
17
17
  private isDragging;
18
- private dragMode;
19
- private interaction;
20
- private modifiers;
21
- static styles: lit25.CSSResult;
18
+ private isResizing;
19
+ private dragStart;
20
+ private dragStartPosition;
21
+ private resizeStartCorner;
22
+ private resizeStartSize;
23
+ private resizeStartPosition;
24
+ static styles: lit29.CSSResult;
22
25
  private resizeObserver?;
23
26
  connectedCallback(): void;
27
+ disconnectedCallback(): void;
24
28
  private handlePointerDown;
25
29
  private handlePointerMove;
26
30
  private handlePointerUp;
27
- private calculateBoundsWithModeAwareConstraints;
28
- private constrainBoundsForMode;
29
- private isValidBounds;
30
- private constrainWithAspectRatio;
31
- private constrainCenterResize;
32
- private constrainCenterResizeWithAspectRatio;
33
- private simpleConstrainBounds;
34
- private constrainResizeDeltas;
31
+ private cleanup;
35
32
  private dispatchBoundsChange;
36
- render(): lit_html22.TemplateResult<1>;
37
- private renderHandles;
33
+ render(): lit_html28.TemplateResult<1>;
38
34
  }
39
35
  //#endregion
40
36
  export { BoxBounds, EFResizableBox };