@editframe/elements 0.47.1 → 0.48.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 (406) hide show
  1. package/LICENSE.md +58 -0
  2. package/dist/DelayedLoadingState.js +1 -1
  3. package/dist/DelayedLoadingState.js.map +1 -1
  4. package/dist/EF_FRAMEGEN.js +1 -2
  5. package/dist/EF_FRAMEGEN.js.map +1 -1
  6. package/dist/EF_RENDERING.js +1 -1
  7. package/dist/EF_RENDERING.js.map +1 -1
  8. package/dist/_virtual/{_@oxc-project_runtime@0.95.0 → _@oxc-project_runtime@0.122.0}/helpers/decorate.js +2 -3
  9. package/dist/attachContextRoot.js +1 -2
  10. package/dist/attachContextRoot.js.map +1 -1
  11. package/dist/canvas/EFCanvas.d.ts +4 -7
  12. package/dist/canvas/EFCanvas.js +20 -21
  13. package/dist/canvas/EFCanvas.js.map +1 -1
  14. package/dist/canvas/EFCanvasItem.d.ts +4 -5
  15. package/dist/canvas/EFCanvasItem.js +3 -4
  16. package/dist/canvas/EFCanvasItem.js.map +1 -1
  17. package/dist/canvas/api/CanvasAPI.d.ts +0 -1
  18. package/dist/canvas/api/CanvasAPI.js +1 -1
  19. package/dist/canvas/api/CanvasAPI.js.map +1 -1
  20. package/dist/canvas/coordinateTransform.js +1 -1
  21. package/dist/canvas/coordinateTransform.js.map +1 -1
  22. package/dist/canvas/getElementBounds.js +1 -1
  23. package/dist/canvas/getElementBounds.js.map +1 -1
  24. package/dist/canvas/overlays/SelectionOverlay.d.ts +4 -4
  25. package/dist/canvas/overlays/SelectionOverlay.js +6 -7
  26. package/dist/canvas/overlays/SelectionOverlay.js.map +1 -1
  27. package/dist/canvas/overlays/overlayState.js +1 -2
  28. package/dist/canvas/overlays/overlayState.js.map +1 -1
  29. package/dist/canvas/selection/SelectionController.js +1 -2
  30. package/dist/canvas/selection/SelectionController.js.map +1 -1
  31. package/dist/canvas/selection/SelectionModel.d.ts +0 -1
  32. package/dist/canvas/selection/SelectionModel.js +1 -1
  33. package/dist/canvas/selection/SelectionModel.js.map +1 -1
  34. package/dist/canvas/selection/selectionContext.d.ts +0 -1
  35. package/dist/canvas/selection/selectionContext.js +1 -2
  36. package/dist/canvas/selection/selectionContext.js.map +1 -1
  37. package/dist/elements/ContainerInfo.js +1 -1
  38. package/dist/elements/ContainerInfo.js.map +1 -1
  39. package/dist/elements/CrossUpdateController.js +1 -1
  40. package/dist/elements/CrossUpdateController.js.map +1 -1
  41. package/dist/elements/EFAudio.d.ts +4 -4
  42. package/dist/elements/EFAudio.js +4 -6
  43. package/dist/elements/EFAudio.js.map +1 -1
  44. package/dist/elements/EFCaptions.d.ts +4 -4
  45. package/dist/elements/EFCaptions.js +8 -10
  46. package/dist/elements/EFCaptions.js.map +1 -1
  47. package/dist/elements/EFImage.d.ts +7 -7
  48. package/dist/elements/EFImage.js +4 -6
  49. package/dist/elements/EFImage.js.map +1 -1
  50. package/dist/elements/EFMedia/BufferedSeekingInput.d.ts +2 -2
  51. package/dist/elements/EFMedia/BufferedSeekingInput.js +14 -11
  52. package/dist/elements/EFMedia/BufferedSeekingInput.js.map +1 -1
  53. package/dist/elements/EFMedia/CachedFetcher.js +1 -2
  54. package/dist/elements/EFMedia/CachedFetcher.js.map +1 -1
  55. package/dist/elements/EFMedia/MediaEngine.d.ts +0 -2
  56. package/dist/elements/EFMedia/MediaEngine.js +1 -2
  57. package/dist/elements/EFMedia/MediaEngine.js.map +1 -1
  58. package/dist/elements/EFMedia/SegmentIndex.d.ts +2 -3
  59. package/dist/elements/EFMedia/SegmentIndex.js +10 -3
  60. package/dist/elements/EFMedia/SegmentIndex.js.map +1 -1
  61. package/dist/elements/EFMedia/SegmentTransport.d.ts +0 -2
  62. package/dist/elements/EFMedia/SegmentTransport.js +1 -1
  63. package/dist/elements/EFMedia/SegmentTransport.js.map +1 -1
  64. package/dist/elements/EFMedia/TimingModel.d.ts +0 -2
  65. package/dist/elements/EFMedia/TimingModel.js +1 -1
  66. package/dist/elements/EFMedia/TimingModel.js.map +1 -1
  67. package/dist/elements/EFMedia/shared/AudioSpanUtils.js +1 -1
  68. package/dist/elements/EFMedia/shared/AudioSpanUtils.js.map +1 -1
  69. package/dist/elements/EFMedia/shared/GlobalInputCache.js +1 -2
  70. package/dist/elements/EFMedia/shared/GlobalInputCache.js.map +1 -1
  71. package/dist/elements/EFMedia/shared/PrecisionUtils.js +1 -1
  72. package/dist/elements/EFMedia/shared/PrecisionUtils.js.map +1 -1
  73. package/dist/elements/EFMedia/shared/ThumbnailExtractor.js +1 -2
  74. package/dist/elements/EFMedia/shared/ThumbnailExtractor.js.map +1 -1
  75. package/dist/elements/EFMedia/shared/timeoutUtils.js +1 -2
  76. package/dist/elements/EFMedia/shared/timeoutUtils.js.map +1 -1
  77. package/dist/elements/EFMedia/videoTasks/MainVideoInputCache.js +1 -1
  78. package/dist/elements/EFMedia/videoTasks/MainVideoInputCache.js.map +1 -1
  79. package/dist/elements/EFMedia/videoTasks/ScrubInputCache.d.ts +0 -1
  80. package/dist/elements/EFMedia/videoTasks/ScrubInputCache.js +12 -12
  81. package/dist/elements/EFMedia/videoTasks/ScrubInputCache.js.map +1 -1
  82. package/dist/elements/EFMedia.d.ts +3 -3
  83. package/dist/elements/EFMedia.js +3 -4
  84. package/dist/elements/EFMedia.js.map +1 -1
  85. package/dist/elements/EFMotionBlur.d.ts +0 -1
  86. package/dist/elements/EFMotionBlur.js +8 -15
  87. package/dist/elements/EFMotionBlur.js.map +1 -1
  88. package/dist/elements/EFPanZoom.d.ts +4 -4
  89. package/dist/elements/EFPanZoom.js +3 -4
  90. package/dist/elements/EFPanZoom.js.map +1 -1
  91. package/dist/elements/EFSourceMixin.js +2 -3
  92. package/dist/elements/EFSourceMixin.js.map +1 -1
  93. package/dist/elements/EFSurface.d.ts +6 -6
  94. package/dist/elements/EFSurface.js +3 -4
  95. package/dist/elements/EFSurface.js.map +1 -1
  96. package/dist/elements/EFTemporal.d.ts +0 -1
  97. package/dist/elements/EFTemporal.js +6 -7
  98. package/dist/elements/EFTemporal.js.map +1 -1
  99. package/dist/elements/EFText.d.ts +4 -4
  100. package/dist/elements/EFText.js +6 -7
  101. package/dist/elements/EFText.js.map +1 -1
  102. package/dist/elements/EFTextSegment.d.ts +4 -4
  103. package/dist/elements/EFTextSegment.js +3 -4
  104. package/dist/elements/EFTextSegment.js.map +1 -1
  105. package/dist/elements/EFTimegroup.d.ts +4 -10
  106. package/dist/elements/EFTimegroup.js +11 -12
  107. package/dist/elements/EFTimegroup.js.map +1 -1
  108. package/dist/elements/EFVideo.d.ts +35 -8
  109. package/dist/elements/EFVideo.js +57 -12
  110. package/dist/elements/EFVideo.js.map +1 -1
  111. package/dist/elements/EFWaveform.d.ts +4 -4
  112. package/dist/elements/EFWaveform.js +4 -6
  113. package/dist/elements/EFWaveform.js.map +1 -1
  114. package/dist/elements/ElementPositionInfo.js +1 -1
  115. package/dist/elements/ElementPositionInfo.js.map +1 -1
  116. package/dist/elements/FetchMixin.js +1 -1
  117. package/dist/elements/FetchMixin.js.map +1 -1
  118. package/dist/elements/SampleBuffer.js +1 -2
  119. package/dist/elements/SampleBuffer.js.map +1 -1
  120. package/dist/elements/TargetController.d.ts +0 -1
  121. package/dist/elements/TargetController.js +1 -1
  122. package/dist/elements/TargetController.js.map +1 -1
  123. package/dist/elements/TimegroupController.js +1 -1
  124. package/dist/elements/TimegroupController.js.map +1 -1
  125. package/dist/elements/cloneFactoryRegistry.js +1 -1
  126. package/dist/elements/cloneFactoryRegistry.js.map +1 -1
  127. package/dist/elements/durationConverter.js +4 -5
  128. package/dist/elements/durationConverter.js.map +1 -1
  129. package/dist/elements/easingUtils.js +1 -1
  130. package/dist/elements/easingUtils.js.map +1 -1
  131. package/dist/elements/findRootTemporal.js +1 -2
  132. package/dist/elements/findRootTemporal.js.map +1 -1
  133. package/dist/elements/parseTimeToMs.js +1 -1
  134. package/dist/elements/parseTimeToMs.js.map +1 -1
  135. package/dist/elements/renderTemporalAudio.js +1 -2
  136. package/dist/elements/renderTemporalAudio.js.map +1 -1
  137. package/dist/elements/setupTemporalHierarchy.js +1 -1
  138. package/dist/elements/setupTemporalHierarchy.js.map +1 -1
  139. package/dist/elements/updateAnimations.js +1 -2
  140. package/dist/elements/updateAnimations.js.map +1 -1
  141. package/dist/getRenderInfo.d.ts +0 -1
  142. package/dist/getRenderInfo.js +1 -2
  143. package/dist/getRenderInfo.js.map +1 -1
  144. package/dist/gui/ContextMixin.d.ts +0 -1
  145. package/dist/gui/ContextMixin.js +2 -3
  146. package/dist/gui/ContextMixin.js.map +1 -1
  147. package/dist/gui/Controllable.d.ts +0 -2
  148. package/dist/gui/Controllable.js +1 -2
  149. package/dist/gui/Controllable.js.map +1 -1
  150. package/dist/gui/EFActiveRootTemporal.d.ts +4 -5
  151. package/dist/gui/EFActiveRootTemporal.js +3 -4
  152. package/dist/gui/EFActiveRootTemporal.js.map +1 -1
  153. package/dist/gui/EFConfiguration.d.ts +4 -4
  154. package/dist/gui/EFConfiguration.js +3 -4
  155. package/dist/gui/EFConfiguration.js.map +1 -1
  156. package/dist/gui/EFControls.d.ts +2 -3
  157. package/dist/gui/EFControls.js +4 -5
  158. package/dist/gui/EFControls.js.map +1 -1
  159. package/dist/gui/EFDial.d.ts +4 -4
  160. package/dist/gui/EFDial.js +3 -4
  161. package/dist/gui/EFDial.js.map +1 -1
  162. package/dist/gui/EFFilmstrip.d.ts +6 -7
  163. package/dist/gui/EFFilmstrip.js +3 -4
  164. package/dist/gui/EFFilmstrip.js.map +1 -1
  165. package/dist/gui/EFFitScale.d.ts +3 -3
  166. package/dist/gui/EFFitScale.js +6 -7
  167. package/dist/gui/EFFitScale.js.map +1 -1
  168. package/dist/gui/EFFocusOverlay.d.ts +6 -6
  169. package/dist/gui/EFFocusOverlay.js +3 -4
  170. package/dist/gui/EFFocusOverlay.js.map +1 -1
  171. package/dist/gui/EFOverlayItem.d.ts +4 -4
  172. package/dist/gui/EFOverlayItem.js +3 -4
  173. package/dist/gui/EFOverlayItem.js.map +1 -1
  174. package/dist/gui/EFOverlayLayer.d.ts +4 -5
  175. package/dist/gui/EFOverlayLayer.js +3 -4
  176. package/dist/gui/EFOverlayLayer.js.map +1 -1
  177. package/dist/gui/EFPause.d.ts +4 -4
  178. package/dist/gui/EFPause.js +3 -4
  179. package/dist/gui/EFPause.js.map +1 -1
  180. package/dist/gui/EFPlay.d.ts +4 -4
  181. package/dist/gui/EFPlay.js +3 -4
  182. package/dist/gui/EFPlay.js.map +1 -1
  183. package/dist/gui/EFPreview.d.ts +4 -4
  184. package/dist/gui/EFPreview.js +3 -4
  185. package/dist/gui/EFPreview.js.map +1 -1
  186. package/dist/gui/EFResizableBox.d.ts +4 -4
  187. package/dist/gui/EFResizableBox.js +3 -4
  188. package/dist/gui/EFResizableBox.js.map +1 -1
  189. package/dist/gui/EFScrubber.d.ts +4 -4
  190. package/dist/gui/EFScrubber.js +3 -4
  191. package/dist/gui/EFScrubber.js.map +1 -1
  192. package/dist/gui/EFTimeDisplay.d.ts +4 -4
  193. package/dist/gui/EFTimeDisplay.js +3 -4
  194. package/dist/gui/EFTimeDisplay.js.map +1 -1
  195. package/dist/gui/EFTimelineRuler.d.ts +4 -4
  196. package/dist/gui/EFTimelineRuler.js +5 -6
  197. package/dist/gui/EFTimelineRuler.js.map +1 -1
  198. package/dist/gui/EFToggleLoop.d.ts +4 -4
  199. package/dist/gui/EFToggleLoop.js +3 -4
  200. package/dist/gui/EFToggleLoop.js.map +1 -1
  201. package/dist/gui/EFTogglePlay.d.ts +4 -4
  202. package/dist/gui/EFTogglePlay.js +3 -4
  203. package/dist/gui/EFTogglePlay.js.map +1 -1
  204. package/dist/gui/EFTransformHandles.d.ts +4 -4
  205. package/dist/gui/EFTransformHandles.js +3 -4
  206. package/dist/gui/EFTransformHandles.js.map +1 -1
  207. package/dist/gui/EFWorkbench.d.ts +6 -7
  208. package/dist/gui/EFWorkbench.js +13 -15
  209. package/dist/gui/EFWorkbench.js.map +1 -1
  210. package/dist/gui/EFWorkbench.spacebar.js +1 -1
  211. package/dist/gui/EFWorkbench.spacebar.js.map +1 -1
  212. package/dist/gui/FitScaleHelpers.js +1 -2
  213. package/dist/gui/FitScaleHelpers.js.map +1 -1
  214. package/dist/gui/PlaybackController.js +38 -18
  215. package/dist/gui/PlaybackController.js.map +1 -1
  216. package/dist/gui/TWMixin.js +1 -1
  217. package/dist/gui/TWMixin.js.map +1 -1
  218. package/dist/gui/TWMixin2.js +1 -2
  219. package/dist/gui/TWMixin2.js.map +1 -1
  220. package/dist/gui/TargetOrContextMixin.js +2 -3
  221. package/dist/gui/TargetOrContextMixin.js.map +1 -1
  222. package/dist/gui/currentTimeContext.js +1 -2
  223. package/dist/gui/currentTimeContext.js.map +1 -1
  224. package/dist/gui/durationContext.js +1 -2
  225. package/dist/gui/durationContext.js.map +1 -1
  226. package/dist/gui/efContext.js +1 -2
  227. package/dist/gui/efContext.js.map +1 -1
  228. package/dist/gui/fetchContext.js +1 -2
  229. package/dist/gui/fetchContext.js.map +1 -1
  230. package/dist/gui/focusContext.js +1 -2
  231. package/dist/gui/focusContext.js.map +1 -1
  232. package/dist/gui/focusedElementContext.js +1 -2
  233. package/dist/gui/focusedElementContext.js.map +1 -1
  234. package/dist/gui/hierarchy/EFHierarchy.d.ts +4 -4
  235. package/dist/gui/hierarchy/EFHierarchy.js +3 -4
  236. package/dist/gui/hierarchy/EFHierarchy.js.map +1 -1
  237. package/dist/gui/hierarchy/EFHierarchyItem.d.ts +2 -2
  238. package/dist/gui/hierarchy/EFHierarchyItem.js +13 -14
  239. package/dist/gui/hierarchy/EFHierarchyItem.js.map +1 -1
  240. package/dist/gui/hierarchy/hierarchyContext.js +1 -2
  241. package/dist/gui/hierarchy/hierarchyContext.js.map +1 -1
  242. package/dist/gui/icons.js +1 -2
  243. package/dist/gui/icons.js.map +1 -1
  244. package/dist/gui/panZoomTransformContext.js +1 -2
  245. package/dist/gui/panZoomTransformContext.js.map +1 -1
  246. package/dist/gui/playingContext.js +1 -2
  247. package/dist/gui/playingContext.js.map +1 -1
  248. package/dist/gui/previewSettingsContext.d.ts +0 -1
  249. package/dist/gui/previewSettingsContext.js +1 -2
  250. package/dist/gui/previewSettingsContext.js.map +1 -1
  251. package/dist/gui/shouldSignUrl.js +1 -1
  252. package/dist/gui/shouldSignUrl.js.map +1 -1
  253. package/dist/gui/theme.js +1 -1
  254. package/dist/gui/theme.js.map +1 -1
  255. package/dist/gui/timeline/EFTimeline.d.ts +2 -5
  256. package/dist/gui/timeline/EFTimeline.js +19 -20
  257. package/dist/gui/timeline/EFTimeline.js.map +1 -1
  258. package/dist/gui/timeline/EFTimelineRow.d.ts +2 -2
  259. package/dist/gui/timeline/EFTimelineRow.js +3 -4
  260. package/dist/gui/timeline/EFTimelineRow.js.map +1 -1
  261. package/dist/gui/timeline/TrimHandles.d.ts +4 -4
  262. package/dist/gui/timeline/TrimHandles.js +3 -4
  263. package/dist/gui/timeline/TrimHandles.js.map +1 -1
  264. package/dist/gui/timeline/flattenHierarchy.js +1 -2
  265. package/dist/gui/timeline/flattenHierarchy.js.map +1 -1
  266. package/dist/gui/timeline/timelineEditingContext.js +1 -2
  267. package/dist/gui/timeline/timelineEditingContext.js.map +1 -1
  268. package/dist/gui/timeline/timelineStateContext.js +1 -14
  269. package/dist/gui/timeline/timelineStateContext.js.map +1 -1
  270. package/dist/gui/timeline/tracks/AudioTrack.d.ts +0 -1
  271. package/dist/gui/timeline/tracks/AudioTrack.js +3 -4
  272. package/dist/gui/timeline/tracks/AudioTrack.js.map +1 -1
  273. package/dist/gui/timeline/tracks/CaptionsTrack.d.ts +2 -2
  274. package/dist/gui/timeline/tracks/CaptionsTrack.js +9 -9
  275. package/dist/gui/timeline/tracks/CaptionsTrack.js.map +1 -1
  276. package/dist/gui/timeline/tracks/EFThumbnailStrip.d.ts +4 -4
  277. package/dist/gui/timeline/tracks/EFThumbnailStrip.js +3 -4
  278. package/dist/gui/timeline/tracks/EFThumbnailStrip.js.map +1 -1
  279. package/dist/gui/timeline/tracks/HTMLTrack.d.ts +2 -2
  280. package/dist/gui/timeline/tracks/HTMLTrack.js +3 -4
  281. package/dist/gui/timeline/tracks/HTMLTrack.js.map +1 -1
  282. package/dist/gui/timeline/tracks/ImageTrack.d.ts +2 -2
  283. package/dist/gui/timeline/tracks/ImageTrack.js +3 -4
  284. package/dist/gui/timeline/tracks/ImageTrack.js.map +1 -1
  285. package/dist/gui/timeline/tracks/TextTrack.d.ts +2 -2
  286. package/dist/gui/timeline/tracks/TextTrack.js +4 -5
  287. package/dist/gui/timeline/tracks/TextTrack.js.map +1 -1
  288. package/dist/gui/timeline/tracks/TimegroupTrack.d.ts +5 -6
  289. package/dist/gui/timeline/tracks/TimegroupTrack.js +3 -4
  290. package/dist/gui/timeline/tracks/TimegroupTrack.js.map +1 -1
  291. package/dist/gui/timeline/tracks/TrackItem.d.ts +2 -2
  292. package/dist/gui/timeline/tracks/TrackItem.js +3 -4
  293. package/dist/gui/timeline/tracks/TrackItem.js.map +1 -1
  294. package/dist/gui/timeline/tracks/VideoTrack.d.ts +6 -7
  295. package/dist/gui/timeline/tracks/VideoTrack.js +3 -4
  296. package/dist/gui/timeline/tracks/VideoTrack.js.map +1 -1
  297. package/dist/gui/timeline/tracks/WaveformTrack.js +3 -4
  298. package/dist/gui/timeline/tracks/WaveformTrack.js.map +1 -1
  299. package/dist/gui/timeline/tracks/ensureTrackItemInit.js +1 -1
  300. package/dist/gui/timeline/tracks/preloadTracks.d.ts +1 -9
  301. package/dist/gui/timeline/tracks/renderTrackChildren.js +1 -2
  302. package/dist/gui/timeline/tracks/renderTrackChildren.js.map +1 -1
  303. package/dist/gui/timeline/tracks/waveformUtils.js +3 -6
  304. package/dist/gui/timeline/tracks/waveformUtils.js.map +1 -1
  305. package/dist/gui/transformCalculations.js +1 -2
  306. package/dist/gui/transformCalculations.js.map +1 -1
  307. package/dist/gui/transformUtils.js +1 -1
  308. package/dist/gui/transformUtils.js.map +1 -1
  309. package/dist/gui/tree/EFTree.d.ts +4 -6
  310. package/dist/gui/tree/EFTree.js +3 -4
  311. package/dist/gui/tree/EFTree.js.map +1 -1
  312. package/dist/gui/tree/EFTreeItem.d.ts +4 -5
  313. package/dist/gui/tree/EFTreeItem.js +3 -4
  314. package/dist/gui/tree/EFTreeItem.js.map +1 -1
  315. package/dist/gui/tree/treeContext.d.ts +0 -1
  316. package/dist/gui/tree/treeContext.js +1 -2
  317. package/dist/gui/tree/treeContext.js.map +1 -1
  318. package/dist/index.d.ts +0 -2
  319. package/dist/index.js +1 -2
  320. package/dist/index.js.map +1 -1
  321. package/dist/node.js +1 -2
  322. package/dist/node_modules/lit-html/development/directives/ref.d.ts +14 -0
  323. package/dist/node_modules/lit-html/development/lit-html.d.ts +46 -0
  324. package/dist/otel/BridgeSpanExporter.js +1 -2
  325. package/dist/otel/BridgeSpanExporter.js.map +1 -1
  326. package/dist/otel/setupBrowserTracing.js +1 -2
  327. package/dist/otel/setupBrowserTracing.js.map +1 -1
  328. package/dist/otel/tracingHelpers.d.ts +0 -2
  329. package/dist/otel/tracingHelpers.js +1 -2
  330. package/dist/otel/tracingHelpers.js.map +1 -1
  331. package/dist/preview/AdaptiveResolutionTracker.js +11 -2
  332. package/dist/preview/AdaptiveResolutionTracker.js.map +1 -1
  333. package/dist/preview/FrameController.d.ts +0 -1
  334. package/dist/preview/FrameController.js +2 -32
  335. package/dist/preview/FrameController.js.map +1 -1
  336. package/dist/preview/QualityUpgradeScheduler.js +1 -1
  337. package/dist/preview/QualityUpgradeScheduler.js.map +1 -1
  338. package/dist/preview/RenderContext.d.ts +0 -1
  339. package/dist/preview/RenderContext.js +11 -2
  340. package/dist/preview/RenderContext.js.map +1 -1
  341. package/dist/preview/RenderProfiler.js +1 -1
  342. package/dist/preview/RenderProfiler.js.map +1 -1
  343. package/dist/preview/RenderStats.js +1 -1
  344. package/dist/preview/RenderStats.js.map +1 -1
  345. package/dist/preview/encoding/canvasEncoder.js +7 -2
  346. package/dist/preview/encoding/canvasEncoder.js.map +1 -1
  347. package/dist/preview/encoding/mainThreadEncoder.js +1 -1
  348. package/dist/preview/encoding/mainThreadEncoder.js.map +1 -1
  349. package/dist/preview/encoding/workerEncoder.js +1 -1
  350. package/dist/preview/encoding/workerEncoder.js.map +1 -1
  351. package/dist/preview/logger.js +1 -1
  352. package/dist/preview/logger.js.map +1 -1
  353. package/dist/preview/previewSettings.js +1 -1
  354. package/dist/preview/previewSettings.js.map +1 -1
  355. package/dist/preview/previewTypes.js +1 -1
  356. package/dist/preview/previewTypes.js.map +1 -1
  357. package/dist/preview/renderElementToCanvas.d.ts +0 -1
  358. package/dist/preview/renderElementToCanvas.js +12 -5
  359. package/dist/preview/renderElementToCanvas.js.map +1 -1
  360. package/dist/preview/renderTimegroupToCanvas.d.ts +0 -1
  361. package/dist/preview/renderTimegroupToCanvas.js +6 -7
  362. package/dist/preview/renderTimegroupToCanvas.js.map +1 -1
  363. package/dist/preview/renderTimegroupToVideo.d.ts +0 -1
  364. package/dist/preview/renderTimegroupToVideo.js +20 -8
  365. package/dist/preview/renderTimegroupToVideo.js.map +1 -1
  366. package/dist/preview/renderVideoToVideo.js +11 -2
  367. package/dist/preview/renderVideoToVideo.js.map +1 -1
  368. package/dist/preview/renderers.d.ts +0 -1
  369. package/dist/preview/renderers.js +5 -2
  370. package/dist/preview/renderers.js.map +1 -1
  371. package/dist/preview/rendering/ScaleConfig.js +2 -3
  372. package/dist/preview/rendering/ScaleConfig.js.map +1 -1
  373. package/dist/preview/rendering/inlineImages.d.ts +0 -1
  374. package/dist/preview/rendering/inlineImages.js +1 -1
  375. package/dist/preview/rendering/inlineImages.js.map +1 -1
  376. package/dist/preview/rendering/loadImage.js +1 -2
  377. package/dist/preview/rendering/loadImage.js.map +1 -1
  378. package/dist/preview/rendering/renderToImageNative.js +4 -5
  379. package/dist/preview/rendering/renderToImageNative.js.map +1 -1
  380. package/dist/preview/rendering/serializeTimelineDirect.js +18 -4
  381. package/dist/preview/rendering/serializeTimelineDirect.js.map +1 -1
  382. package/dist/preview/statsTrackingStrategy.js +1 -1
  383. package/dist/preview/statsTrackingStrategy.js.map +1 -1
  384. package/dist/preview/workers/WorkerPool.js +5 -2
  385. package/dist/preview/workers/WorkerPool.js.map +1 -1
  386. package/dist/preview/workers/encoderWorkerInline.js +1 -1
  387. package/dist/preview/workers/encoderWorkerInline.js.map +1 -1
  388. package/dist/render/EFRenderAPI.d.ts +0 -1
  389. package/dist/render/EFRenderAPI.js +1 -2
  390. package/dist/render/EFRenderAPI.js.map +1 -1
  391. package/dist/render/getRenderData.js +1 -1
  392. package/dist/render/getRenderData.js.map +1 -1
  393. package/dist/transcoding/cache/RequestDeduplicator.js +1 -1
  394. package/dist/transcoding/cache/RequestDeduplicator.js.map +1 -1
  395. package/dist/transcoding/cache/URLTokenDeduplicator.js +1 -1
  396. package/dist/transcoding/cache/URLTokenDeduplicator.js.map +1 -1
  397. package/dist/transcoding/types/index.d.ts +0 -1
  398. package/dist/transcoding/utils/UrlGenerator.js +1 -1
  399. package/dist/transcoding/utils/UrlGenerator.js.map +1 -1
  400. package/dist/utils/LRUCache.js +1 -1
  401. package/dist/utils/LRUCache.js.map +1 -1
  402. package/dist/utils/frameTime.js +2 -9
  403. package/dist/utils/frameTime.js.map +1 -1
  404. package/dist/version.js +2 -2
  405. package/dist/version.js.map +1 -1
  406. package/package.json +5 -4
@@ -1 +1 @@
1
- {"version":3,"file":"EFHierarchyItem.js","names":["EFHierarchyItem","position: \"before\" | \"after\" | \"inside\"","EFTimegroupHierarchyItem","EFAudioHierarchyItem","EFVideoHierarchyItem","EFCaptionsHierarchyItem","EFCaptionsActiveWordHierarchyItem","EFTextHierarchyItem","EFTextSegmentHierarchyItem","EFWaveformHierarchyItem","EFImageHierarchyItem","EFHTMLHierarchyItem"],"sources":["../../../src/gui/hierarchy/EFHierarchyItem.ts"],"sourcesContent":["import { consume } from \"@lit/context\";\nimport { css, html, LitElement, nothing, type PropertyValues, type TemplateResult } from \"lit\";\nimport { customElement, property, state } from \"lit/decorators.js\";\nimport { styleMap } from \"lit/directives/style-map.js\";\n\nimport { EFAudio } from \"../../elements/EFAudio.js\";\nimport { EFCaptions, EFCaptionsActiveWord } from \"../../elements/EFCaptions.js\";\nimport { EFImage } from \"../../elements/EFImage.js\";\nimport { EFText } from \"../../elements/EFText.js\";\nimport { EFTextSegment } from \"../../elements/EFTextSegment.js\";\nimport { EFTimegroup } from \"../../elements/EFTimegroup.js\";\nimport { EFVideo } from \"../../elements/EFVideo.js\";\nimport { EFWaveform } from \"../../elements/EFWaveform.js\";\nimport { selectionContext } from \"../../canvas/selection/selectionContext.js\";\n\nimport { TWMixin } from \"../TWMixin.js\";\nimport { phosphorIcon, ICONS } from \"../icons.js\";\nimport { type HierarchyContext, hierarchyContext } from \"./hierarchyContext.js\";\nimport { getElementTypeColor } from \"../theme.js\";\n\nconst DEFAULT_HIDDEN_TAGS = new Set([\n \"SPAN\",\n \"STYLE\",\n \"SCRIPT\",\n \"LINK\",\n \"META\",\n \"SLOT\",\n \"TEMPLATE\",\n \"EF-WORKBENCH\",\n \"EF-FILMSTRIP\",\n \"EF-CONTROLS\",\n \"EF-SCRUBBER\",\n \"EF-TIMELINE-RULER\",\n \"EF-TRIM-HANDLES\",\n \"EF-TEXT-SEGMENT\",\n]);\n\nexport const shouldRenderElement = (\n element: Element,\n hideSelectors?: string[],\n showSelectors?: string[],\n): boolean => {\n if (element instanceof HTMLElement && element.dataset?.efHidden) {\n return false;\n }\n\n // Skip default hidden tags (but allow them if explicitly shown)\n if (DEFAULT_HIDDEN_TAGS.has(element.tagName)) {\n // Still check show selectors - if explicitly shown, allow it\n if (showSelectors && showSelectors.length > 0) {\n return showSelectors.some((selector) => {\n try {\n return element.matches(selector);\n } catch {\n return false;\n }\n });\n }\n return false;\n }\n\n if (showSelectors && showSelectors.length > 0) {\n return showSelectors.some((selector) => {\n try {\n return element.matches(selector);\n } catch {\n return false;\n }\n });\n }\n\n if (hideSelectors && hideSelectors.length > 0) {\n return !hideSelectors.some((selector) => {\n try {\n return element.matches(selector);\n } catch {\n return false;\n }\n });\n }\n\n return true;\n};\n\nexport function renderHierarchyChildren(\n children: Element[],\n hideSelectors?: string[],\n showSelectors?: string[],\n skipRootFiltering = false,\n temporalOnly = false,\n): Array<TemplateResult<1> | typeof nothing> {\n return children.flatMap((child) => {\n if (!skipRootFiltering && !shouldRenderElement(child, hideSelectors, showSelectors)) {\n return nothing;\n }\n\n if (child instanceof EFTimegroup) {\n return html`<ef-timegroup-hierarchy-item\n .element=${child}\n .hideSelectors=${hideSelectors}\n .showSelectors=${showSelectors}\n .temporalOnly=${temporalOnly}\n ></ef-timegroup-hierarchy-item>`;\n }\n if (child instanceof EFImage) {\n return html`<ef-image-hierarchy-item\n .element=${child}\n .hideSelectors=${hideSelectors}\n .showSelectors=${showSelectors}\n .temporalOnly=${temporalOnly}\n ></ef-image-hierarchy-item>`;\n }\n if (child instanceof EFAudio) {\n return html`<ef-audio-hierarchy-item\n .element=${child}\n .hideSelectors=${hideSelectors}\n .showSelectors=${showSelectors}\n .temporalOnly=${temporalOnly}\n ></ef-audio-hierarchy-item>`;\n }\n if (child instanceof EFVideo) {\n return html`<ef-video-hierarchy-item\n .element=${child}\n .hideSelectors=${hideSelectors}\n .showSelectors=${showSelectors}\n .temporalOnly=${temporalOnly}\n ></ef-video-hierarchy-item>`;\n }\n if (child instanceof EFCaptions) {\n return html`<ef-captions-hierarchy-item\n .element=${child}\n .hideSelectors=${hideSelectors}\n .showSelectors=${showSelectors}\n .temporalOnly=${temporalOnly}\n ></ef-captions-hierarchy-item>`;\n }\n if (child instanceof EFCaptionsActiveWord) {\n return html`<ef-captions-active-word-hierarchy-item\n .element=${child}\n .hideSelectors=${hideSelectors}\n .showSelectors=${showSelectors}\n .temporalOnly=${temporalOnly}\n ></ef-captions-active-word-hierarchy-item>`;\n }\n if (child instanceof EFText) {\n return html`<ef-text-hierarchy-item\n .element=${child}\n .hideSelectors=${hideSelectors}\n .showSelectors=${showSelectors}\n .temporalOnly=${temporalOnly}\n ></ef-text-hierarchy-item>`;\n }\n // Skip text segments - they're shown within the parent text element\n if (child instanceof EFTextSegment) {\n return nothing;\n }\n if (child instanceof EFWaveform) {\n return html`<ef-waveform-hierarchy-item\n .element=${child}\n .hideSelectors=${hideSelectors}\n .showSelectors=${showSelectors}\n .temporalOnly=${temporalOnly}\n ></ef-waveform-hierarchy-item>`;\n }\n\n // Skip non-temporal HTML elements when temporalOnly is true\n if (temporalOnly) {\n return nothing;\n }\n\n // Handle all other HTML elements (plain DOM nodes, custom elements, etc.)\n if (child instanceof HTMLElement) {\n return html`<ef-html-hierarchy-item\n .element=${child}\n .hideSelectors=${hideSelectors}\n .showSelectors=${showSelectors}\n ></ef-html-hierarchy-item>`;\n }\n\n // Skip non-HTML elements\n return nothing;\n });\n}\n\n@customElement(\"ef-hierarchy-item\")\nexport class EFHierarchyItem<ElementType extends HTMLElement = HTMLElement> extends TWMixin(\n LitElement,\n) {\n static styles = [\n css`\n :host {\n display: block;\n }\n .item-row {\n display: flex;\n align-items: center;\n height: var(--hierarchy-item-height, 1.5rem);\n padding-left: var(--hierarchy-item-padding-left, 0.5rem);\n padding-right: var(--hierarchy-item-padding-right, 0.5rem);\n padding-top: var(--hierarchy-item-padding-top, 0);\n padding-bottom: var(--hierarchy-item-padding-bottom, 0);\n font-size: var(--hierarchy-item-font-size, 0.75rem);\n font-family: system-ui, -apple-system, sans-serif;\n cursor: pointer;\n user-select: none;\n border-left: 3px solid transparent;\n transition: background-color 0.1s ease;\n }\n .item-row:hover {\n background: var(--ef-color-hover);\n }\n .item-row[data-selected] {\n background: var(--ef-color-selected);\n border-left-color: var(--ef-color-primary);\n }\n .item-row[data-ancestor-selected] {\n background: var(--ef-color-selected-subtle);\n }\n .item-row[data-focused] {\n background: var(--ef-color-focused);\n border-left-color: var(--ef-color-primary);\n }\n .item-row[data-dragging] {\n opacity: 0.5;\n }\n .expand-icon {\n width: var(--hierarchy-expand-icon-size, 1rem);\n height: var(--hierarchy-expand-icon-size, 1rem);\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n flex-shrink: 0;\n }\n .expand-icon svg {\n width: 0.75rem;\n height: 0.75rem;\n transition: transform 0.15s ease;\n }\n .expand-icon[data-expanded] svg {\n transform: rotate(90deg);\n }\n .icon {\n margin-right: var(--hierarchy-icon-gap, 0.25rem);\n flex-shrink: 0;\n }\n .label {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n flex: 1;\n }\n .children {\n padding-left: var(--hierarchy-indent, 0.75rem);\n }\n .children[data-collapsed] {\n display: none;\n }\n .drop-indicator {\n height: 2px;\n background: var(--hierarchy-drop-indicator, #3b82f6);\n margin-left: var(--hierarchy-indent, 0.75rem);\n }\n .drop-inside {\n outline: 2px solid var(--hierarchy-drop-indicator, #3b82f6);\n outline-offset: -2px;\n }\n `,\n ];\n\n @consume({ context: hierarchyContext, subscribe: true })\n hierarchyContext?: HierarchyContext;\n\n @consume({ context: selectionContext, subscribe: true })\n canvasSelectionContext?: import(\"../../canvas/selection/selectionContext.js\").SelectionContext;\n\n @property({ type: Object, attribute: false })\n element: ElementType = new EFTimegroup() as unknown as ElementType;\n\n @property({ type: Array, attribute: false })\n hideSelectors?: string[];\n\n @property({ type: Array, attribute: false })\n showSelectors?: string[];\n\n @property({ type: Boolean, attribute: false })\n temporalOnly = false;\n\n @state()\n private localExpanded = true;\n\n private selectionChangeHandler?: (event: CustomEvent) => void;\n\n get elementId(): string {\n return this.element?.id || \"\";\n }\n\n get icon(): TemplateResult<1> | string {\n return phosphorIcon(ICONS.code);\n }\n\n get typeColor(): string {\n return getElementTypeColor(\"timegroup\", this);\n }\n\n get isFocused(): boolean {\n const highlightedElement = this.hierarchyContext?.getHighlightedElement?.();\n return this.element && highlightedElement === this.element;\n }\n\n get isSelected(): boolean {\n // Try to get selection context from hierarchy parent (which can access canvas)\n const selectionCtx =\n this.canvasSelectionContext || this.hierarchyContext?.getCanvasSelectionContext?.();\n\n if (selectionCtx && this.elementId) {\n // Check if this element's ID is in the selected IDs\n return selectionCtx.selectedIds.has(this.elementId);\n }\n // Fall back to hierarchy's own selection state\n if (!this.hierarchyContext) return false;\n return this.hierarchyContext.state.selectedElementId === this.elementId;\n }\n\n get isAncestorSelected(): boolean {\n // Check if this element contains any selected element\n const selectionCtx =\n this.canvasSelectionContext || this.hierarchyContext?.getCanvasSelectionContext?.();\n\n if (selectionCtx && this.element) {\n for (const selectedId of selectionCtx.selectedIds) {\n const selectedElement = document.getElementById(selectedId);\n if (\n selectedElement &&\n this.element.contains(selectedElement) &&\n selectedElement !== this.element\n ) {\n return true;\n }\n }\n }\n return false;\n }\n\n get isExpanded(): boolean {\n if (!this.hierarchyContext || !this.elementId) return this.localExpanded;\n return this.hierarchyContext.state.expandedIds.has(this.elementId);\n }\n\n get isDragging(): boolean {\n if (!this.hierarchyContext) return false;\n return this.hierarchyContext.state.draggedElementId === this.elementId;\n }\n\n get isDropTarget(): boolean {\n if (!this.hierarchyContext) return false;\n return this.hierarchyContext.state.dropTargetId === this.elementId;\n }\n\n get dropPosition(): \"before\" | \"after\" | \"inside\" | null {\n if (!this.isDropTarget || !this.hierarchyContext) return null;\n return this.hierarchyContext.state.dropPosition;\n }\n\n get hasChildren(): boolean {\n return this.element.children.length > 0;\n }\n\n displayLabel(): TemplateResult<1> | string | typeof nothing {\n return this.elementId || \"(unnamed)\";\n }\n\n private handleClick(e: Event): void {\n e.stopPropagation();\n if (this.hierarchyContext && this.elementId) {\n this.hierarchyContext.actions.select(this.elementId);\n }\n // Also set highlight on click for visual feedback\n this.hierarchyContext?.setHighlightedElement?.(this.element);\n }\n\n private handleExpandClick(e: Event): void {\n e.stopPropagation();\n if (this.hierarchyContext && this.elementId) {\n this.hierarchyContext.actions.toggleExpanded(this.elementId);\n } else {\n this.localExpanded = !this.localExpanded;\n }\n }\n\n private handleDragStart(e: DragEvent): void {\n if (!this.hierarchyContext || !this.elementId) return;\n e.dataTransfer?.setData(\"text/plain\", this.elementId);\n this.hierarchyContext.actions.startDrag(this.elementId);\n }\n\n private handleDragEnd(): void {\n if (this.hierarchyContext) {\n this.hierarchyContext.actions.endDrag();\n }\n }\n\n private handleDragOver(e: DragEvent): void {\n e.preventDefault();\n if (!this.hierarchyContext || !this.elementId) return;\n\n const rect = (e.currentTarget as HTMLElement).getBoundingClientRect();\n const y = e.clientY - rect.top;\n const height = rect.height;\n\n let position: \"before\" | \"after\" | \"inside\";\n if (y < height * 0.25) {\n position = \"before\";\n } else if (y > height * 0.75) {\n position = \"after\";\n } else {\n position = \"inside\";\n }\n\n this.hierarchyContext.actions.updateDropTarget(this.elementId, position);\n }\n\n private handleDragLeave(): void {\n if (this.hierarchyContext && this.isDropTarget) {\n this.hierarchyContext.actions.updateDropTarget(null, null);\n }\n }\n\n private handleDrop(e: DragEvent): void {\n e.preventDefault();\n if (!this.hierarchyContext || !this.elementId) return;\n\n const sourceId = e.dataTransfer?.getData(\"text/plain\");\n if (sourceId && this.dropPosition) {\n this.hierarchyContext.actions.reorder(sourceId, this.elementId, this.dropPosition);\n }\n this.hierarchyContext.actions.endDrag();\n }\n\n private handleMouseEnter(): void {\n // Update canvas highlight (source of truth)\n this.hierarchyContext?.setHighlightedElement?.(this.element);\n }\n\n private handleMouseLeave(): void {\n // Clear canvas highlight (source of truth)\n const currentHighlight = this.hierarchyContext?.getHighlightedElement?.();\n if (currentHighlight === this.element) {\n this.hierarchyContext?.setHighlightedElement?.(null);\n }\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n this.setupSelectionListener();\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n this.removeSelectionListener();\n }\n\n protected willUpdate(changedProperties: PropertyValues): void {\n // Set up listener if context becomes available or context changed\n if (!this.selectionChangeHandler || changedProperties.has(\"hierarchyContext\")) {\n // Remove old listener if context changed\n if (changedProperties.has(\"hierarchyContext\") && this.selectionChangeHandler) {\n this.removeSelectionListener();\n this.selectionChangeHandler = undefined;\n }\n this.setupSelectionListener();\n }\n }\n\n private setupSelectionListener(): void {\n // Don't set up if already set up\n if (this.selectionChangeHandler) {\n return;\n }\n\n const selectionCtx =\n this.canvasSelectionContext || this.hierarchyContext?.getCanvasSelectionContext?.();\n if (selectionCtx && \"addEventListener\" in selectionCtx) {\n this.selectionChangeHandler = () => {\n this.requestUpdate(); // Trigger re-render to update selected state\n };\n (selectionCtx as any).addEventListener(\"selectionchange\", this.selectionChangeHandler);\n }\n }\n\n private removeSelectionListener(): void {\n const selectionCtx =\n this.canvasSelectionContext || this.hierarchyContext?.getCanvasSelectionContext?.();\n if (selectionCtx && \"removeEventListener\" in selectionCtx && this.selectionChangeHandler) {\n (selectionCtx as any).removeEventListener(\"selectionchange\", this.selectionChangeHandler);\n this.selectionChangeHandler = undefined;\n }\n }\n\n render() {\n const expanded = this.isExpanded;\n\n return html`\n ${this.dropPosition === \"before\" ? html`<div class=\"drop-indicator\"></div>` : nothing}\n <div\n class=\"item-row ${this.dropPosition === \"inside\" ? \"drop-inside\" : \"\"}\"\n part=\"row\"\n style=${styleMap({ borderLeftColor: this.typeColor })}\n ?data-focused=${this.isFocused}\n ?data-selected=${this.isSelected}\n ?data-ancestor-selected=${this.isAncestorSelected}\n ?data-dragging=${this.isDragging}\n draggable=\"true\"\n @click=${this.handleClick}\n @dragstart=${this.handleDragStart}\n @dragend=${this.handleDragEnd}\n @dragover=${this.handleDragOver}\n @dragleave=${this.handleDragLeave}\n @drop=${this.handleDrop}\n @mouseenter=${this.handleMouseEnter}\n @mouseleave=${this.handleMouseLeave}\n >\n ${\n this.hasChildren\n ? html`\n <span\n class=\"expand-icon\"\n ?data-expanded=${expanded}\n @click=${this.handleExpandClick}\n >\n <svg viewBox=\"0 0 24 24\" fill=\"currentColor\">\n <path d=\"M8 5v14l11-7z\" />\n </svg>\n </span>\n `\n : html`<span class=\"expand-icon\"></span>`\n }\n <span class=\"icon\" part=\"icon\">${this.icon}</span>\n <span class=\"label\" part=\"label\">${this.displayLabel()}</span>\n </div>\n ${\n this.hasChildren\n ? html`\n <div class=\"children\" ?data-collapsed=${!expanded}>\n ${this.renderChildren()}\n </div>\n `\n : nothing\n }\n ${this.dropPosition === \"after\" ? html`<div class=\"drop-indicator\"></div>` : nothing}\n `;\n }\n\n renderChildren(): Array<TemplateResult<1> | typeof nothing> | typeof nothing {\n return renderHierarchyChildren(\n Array.from(this.element.children),\n this.hideSelectors,\n this.showSelectors,\n false,\n this.temporalOnly,\n );\n }\n}\n\n/**\n * Generate a friendly label for an element based on its type and siblings\n */\nfunction getFriendlyLabel(element: HTMLElement, typeLabel: string): string {\n // If element has a meaningful ID (not auto-generated), use it\n const id = element.id || \"\";\n if (id && !id.includes(\"-\") && !id.match(/^\\d+$/)) {\n return id;\n }\n\n // Count siblings of same type to generate \"Video 1\", \"Video 2\", etc.\n const parent = element.parentElement;\n if (parent) {\n const tagName = element.tagName;\n const siblings = Array.from(parent.children).filter((child) => child.tagName === tagName);\n const index = siblings.indexOf(element) + 1;\n\n // If there's only one of this type, don't add number\n if (siblings.length === 1) {\n return typeLabel;\n }\n return `${typeLabel} ${index}`;\n }\n\n return typeLabel;\n}\n\n@customElement(\"ef-timegroup-hierarchy-item\")\nexport class EFTimegroupHierarchyItem extends EFHierarchyItem<EFTimegroup> {\n get icon() {\n return phosphorIcon(ICONS.filmSlate);\n }\n\n get typeColor(): string {\n return getElementTypeColor(\"timegroup\", this);\n }\n\n displayLabel(): string | TemplateResult<1> | typeof nothing {\n const label = getFriendlyLabel(this.element, \"Composition\");\n const mode = this.element.mode || \"fixed\";\n const modeLabels: Record<string, string> = {\n fixed: \"Fixed\",\n sequence: \"Sequence\",\n contain: \"Container\",\n fit: \"Fit\",\n };\n const modeLabel = modeLabels[mode] || mode;\n return html`${label} <span style=\"opacity: 0.5; font-size: 0.65rem;\">${modeLabel}</span>`;\n }\n}\n\n@customElement(\"ef-audio-hierarchy-item\")\nexport class EFAudioHierarchyItem extends EFHierarchyItem<EFAudio> {\n get icon() {\n return phosphorIcon(ICONS.speakerHigh);\n }\n\n get typeColor(): string {\n return \"rgb(34, 197, 94)\"; // Green for audio\n }\n\n displayLabel() {\n return getFriendlyLabel(this.element, \"Audio\");\n }\n}\n\n@customElement(\"ef-video-hierarchy-item\")\nexport class EFVideoHierarchyItem extends EFHierarchyItem<EFVideo> {\n get icon() {\n return phosphorIcon(ICONS.filmStrip);\n }\n\n get typeColor(): string {\n return \"rgb(59, 130, 246)\"; // Blue for video\n }\n\n displayLabel() {\n return getFriendlyLabel(this.element, \"Video\");\n }\n}\n\n@customElement(\"ef-captions-hierarchy-item\")\nexport class EFCaptionsHierarchyItem extends EFHierarchyItem {\n get icon() {\n return phosphorIcon(ICONS.subtitles);\n }\n\n get typeColor(): string {\n return \"rgb(34, 197, 94)\"; // Green\n }\n\n displayLabel() {\n return getFriendlyLabel(this.element as HTMLElement, \"Captions\");\n }\n}\n\n@customElement(\"ef-captions-active-word-hierarchy-item\")\nexport class EFCaptionsActiveWordHierarchyItem extends EFHierarchyItem {\n get icon() {\n return phosphorIcon(ICONS.microphone);\n }\n\n get typeColor(): string {\n return \"rgb(34, 197, 94)\"; // Green\n }\n\n displayLabel() {\n return \"Active Word\";\n }\n}\n\n@customElement(\"ef-text-hierarchy-item\")\nexport class EFTextHierarchyItem extends EFHierarchyItem {\n get icon() {\n return phosphorIcon(ICONS.textT);\n }\n\n get typeColor(): string {\n return \"rgb(249, 115, 22)\"; // Orange for text\n }\n\n get hasChildren(): boolean {\n return false; // Text segments are internal, not shown as children\n }\n\n displayLabel() {\n return getFriendlyLabel(this.element as HTMLElement, \"Text\");\n }\n\n renderChildren(): typeof nothing {\n return nothing;\n }\n}\n\n@customElement(\"ef-text-segment-hierarchy-item\")\nexport class EFTextSegmentHierarchyItem extends EFHierarchyItem {\n get icon() {\n return phosphorIcon(ICONS.textT);\n }\n\n get typeColor(): string {\n return \"rgb(249, 115, 22)\"; // Orange\n }\n\n displayLabel() {\n return \"Segment\";\n }\n}\n\n@customElement(\"ef-waveform-hierarchy-item\")\nexport class EFWaveformHierarchyItem extends EFHierarchyItem {\n get icon() {\n return phosphorIcon(ICONS.waveform);\n }\n\n get typeColor(): string {\n return \"rgb(34, 197, 94)\"; // Green\n }\n\n renderChildren(): typeof nothing {\n return nothing;\n }\n}\n\n@customElement(\"ef-image-hierarchy-item\")\nexport class EFImageHierarchyItem extends EFHierarchyItem<EFImage> {\n get icon() {\n return phosphorIcon(ICONS.image);\n }\n\n get typeColor(): string {\n return \"rgb(168, 85, 247)\"; // Purple for images\n }\n\n displayLabel() {\n return getFriendlyLabel(this.element, \"Image\");\n }\n}\n\n@customElement(\"ef-html-hierarchy-item\")\nexport class EFHTMLHierarchyItem extends EFHierarchyItem {\n get icon() {\n return html`<code>${`<${this.element.tagName.toLowerCase()}>`}</code>`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"ef-hierarchy-item\": EFHierarchyItem;\n \"ef-timegroup-hierarchy-item\": EFTimegroupHierarchyItem;\n \"ef-audio-hierarchy-item\": EFAudioHierarchyItem;\n \"ef-video-hierarchy-item\": EFVideoHierarchyItem;\n \"ef-captions-hierarchy-item\": EFCaptionsHierarchyItem;\n \"ef-captions-active-word-hierarchy-item\": EFCaptionsActiveWordHierarchyItem;\n \"ef-text-hierarchy-item\": EFTextHierarchyItem;\n \"ef-text-segment-hierarchy-item\": EFTextSegmentHierarchyItem;\n \"ef-waveform-hierarchy-item\": EFWaveformHierarchyItem;\n \"ef-image-hierarchy-item\": EFImageHierarchyItem;\n \"ef-html-hierarchy-item\": EFHTMLHierarchyItem;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"EFHierarchyItem.js","names":[],"sources":["../../../src/gui/hierarchy/EFHierarchyItem.ts"],"mappings":"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"}
@@ -1,8 +1,7 @@
1
1
  import { createContext } from "@lit/context";
2
-
3
2
  //#region src/gui/hierarchy/hierarchyContext.ts
4
3
  const hierarchyContext = createContext(Symbol("hierarchyContext"));
5
-
6
4
  //#endregion
7
5
  export { hierarchyContext };
6
+
8
7
  //# sourceMappingURL=hierarchyContext.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hierarchyContext.js","names":[],"sources":["../../../src/gui/hierarchy/hierarchyContext.ts"],"sourcesContent":["import { createContext } from \"@lit/context\";\n\nexport interface HierarchyState {\n selectedElementId: string | null;\n expandedIds: Set<string>;\n draggedElementId: string | null;\n dropTargetId: string | null;\n dropPosition: \"before\" | \"after\" | \"inside\" | null;\n}\n\nexport interface HierarchyActions {\n select(elementId: string | null): void;\n toggleExpanded(elementId: string): void;\n setExpanded(elementId: string, expanded: boolean): void;\n startDrag(elementId: string): void;\n updateDropTarget(targetId: string | null, position: \"before\" | \"after\" | \"inside\" | null): void;\n endDrag(): void;\n reorder(sourceId: string, targetId: string, position: \"before\" | \"after\" | \"inside\"): void;\n}\n\nexport interface HierarchyContext {\n state: HierarchyState;\n actions: HierarchyActions;\n getCanvasSelectionContext?: () =>\n | import(\"../../canvas/selection/selectionContext.js\").SelectionContext\n | undefined;\n /**\n * Get the currently highlighted element from the canvas.\n */\n getHighlightedElement?: () => HTMLElement | null;\n /**\n * Set the highlighted element on the canvas.\n */\n setHighlightedElement?: (element: HTMLElement | null) => void;\n}\n\nexport const hierarchyContext = createContext<HierarchyContext>(Symbol(\"hierarchyContext\"));\n"],"mappings":";;;AAoCA,MAAa,mBAAmB,cAAgC,OAAO,mBAAmB,CAAC"}
1
+ {"version":3,"file":"hierarchyContext.js","names":[],"sources":["../../../src/gui/hierarchy/hierarchyContext.ts"],"mappings":";;AAoCA,MAAa,mBAAmB,cAAgC,OAAO,mBAAmB,CAAC"}
package/dist/gui/icons.js CHANGED
@@ -1,5 +1,4 @@
1
1
  import { html } from "lit";
2
-
3
2
  //#region src/gui/icons.ts
4
3
  /**
5
4
  * Helper function to create Phosphor icon SVG templates
@@ -28,7 +27,7 @@ const ICONS = {
28
27
  arrowRight: "M64,128a8,8,0,0,1,2.34-5.66l56-56a8,8,0,0,1,11.32,11.32L83.31,128l50.35,50.34a8,8,0,0,1-11.32,11.32l-56-56A8,8,0,0,1,64,128Z",
29
28
  lightning: "M215.79,118.17a8,8,0,0,0-5-5.66L153.18,90.9l14.66-73.33a8,8,0,0,0-13.69-7l-112,120a8,8,0,0,0,3,13l57.63,21.61L88.16,238.43a8,8,0,0,0,13.69,7l112-120A8,8,0,0,0,215.79,118.17Z"
30
29
  };
31
-
32
30
  //#endregion
33
31
  export { ICONS, phosphorIcon };
32
+
34
33
  //# sourceMappingURL=icons.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"icons.js","names":[],"sources":["../../src/gui/icons.ts"],"sourcesContent":["import { html, type TemplateResult } from \"lit\";\n\n/**\n * Helper function to create Phosphor icon SVG templates\n * Icons are sized to match typical UI font sizes (12-14px)\n */\nexport function phosphorIcon(path: string, size = 14): TemplateResult<1> {\n return html`\n <svg width=\"${size}\" height=\"${size}\" viewBox=\"0 0 256 256\" fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"${path}\" />\n </svg>\n `;\n}\n\n// Phosphor icon paths (from @phosphor-icons/core)\nexport const ICONS = {\n gear: \"M128,80a48,48,0,1,0,48,48A48.05,48.05,0,0,0,128,80Zm0,80a32,32,0,1,1,32-32A32,32,0,0,1,128,160Zm88-29.84q.06-2.16,0-4.32l14.92-18.64a8,8,0,0,0,1.48-7.06,107.21,107.21,0,0,0-10.88-26.25,8,8,0,0,0-6-3.93l-23.72-2.64q-1.48-1.56-3-3L186,40.54a8,8,0,0,0-3.94-6,107.71,107.71,0,0,0-26.25-10.87,8,8,0,0,0-7.06,1.49L130.16,40Q128,40,125.84,40L107.2,25.11a8,8,0,0,0-7.06-1.48A107.6,107.6,0,0,0,73.89,34.51a8,8,0,0,0-3.93,6L67.32,64.27q-1.56,1.49-3,3L40.54,70a8,8,0,0,0-6,3.94,107.71,107.71,0,0,0-10.87,26.25,8,8,0,0,0,1.49,7.06L40,125.84Q40,128,40,130.16L25.11,148.8a8,8,0,0,0-1.48,7.06,107.21,107.21,0,0,0,10.88,26.25,8,8,0,0,0,6,3.93l23.72,2.64q1.49,1.56,3,3L70,215.46a8,8,0,0,0,3.94,6,107.71,107.71,0,0,0,26.25,10.87,8,8,0,0,0,7.06-1.49L125.84,216q2.16.06,4.32,0l18.64,14.92a8,8,0,0,0,7.06,1.48,107.21,107.21,0,0,0,26.25-10.88,8,8,0,0,0,3.93-6l2.64-23.72q1.56-1.48,3-3L215.46,186a8,8,0,0,0,6-3.94,107.71,107.71,0,0,0,10.87-26.25,8,8,0,0,0-1.49-7.06Zm-16.1-6.5a73.93,73.93,0,0,1,0,8.68,8,8,0,0,0,1.74,5.48l14.19,17.73a91.57,91.57,0,0,1-6.23,15L187,173.11a8,8,0,0,0-5.1,2.64,74.11,74.11,0,0,1-6.14,6.14,8,8,0,0,0-2.64,5.1l-2.51,22.58a91.32,91.32,0,0,1-15,6.23l-17.74-14.19a8,8,0,0,0-5-1.75h-.48a73.93,73.93,0,0,1-8.68,0,8,8,0,0,0-5.48,1.74L100.45,215.8a91.57,91.57,0,0,1-15-6.23L82.89,187a8,8,0,0,0-2.64-5.1,74.11,74.11,0,0,1-6.14-6.14,8,8,0,0,0-5.1-2.64L46.43,170.6a91.32,91.32,0,0,1-6.23-15l14.19-17.74a8,8,0,0,0,1.74-5.48,73.93,73.93,0,0,1,0-8.68,8,8,0,0,0-1.74-5.48L40.2,100.45a91.57,91.57,0,0,1,6.23-15L69,82.89a8,8,0,0,0,5.1-2.64,74.11,74.11,0,0,1,6.14-6.14A8,8,0,0,0,82.89,69L85.4,46.43a91.32,91.32,0,0,1,15-6.23l17.74,14.19a8,8,0,0,0,5.48,1.74,73.93,73.93,0,0,1,8.68,0,8,8,0,0,0,5.48-1.74L155.55,40.2a91.57,91.57,0,0,1,15,6.23L173.11,69a8,8,0,0,0,2.64,5.1,74.11,74.11,0,0,1,6.14,6.14,8,8,0,0,0,5.1,2.64l22.58,2.51a91.32,91.32,0,0,1,6.23,15l-14.19,17.74A8,8,0,0,0,199.87,123.66Z\",\n clock:\n \"M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm0,192a88,88,0,1,1,88-88A88.1,88.1,0,0,1,128,216Zm64-88a8,8,0,0,1-8,8H128a8,8,0,0,1-8-8V72a8,8,0,0,1,16,0v48h48A8,8,0,0,1,192,128Z\",\n filmStrip:\n \"M184,32H72A24,24,0,0,0,48,56V200a24,24,0,0,0,24,24H184a24,24,0,0,0,24-24V56A24,24,0,0,0,184,32Zm8,168a8,8,0,0,1-8,8H72a8,8,0,0,1-8-8V56a8,8,0,0,1,8-8H184a8,8,0,0,1,8,8ZM80,80a8,8,0,0,1,16,0v96a8,8,0,0,1-16,0Zm80,0a8,8,0,0,1,16,0v96a8,8,0,0,1-16,0Z\",\n filmSlate:\n \"M216,48H40a16,16,0,0,0-16,16V192a16,16,0,0,0,16,16H216a16,16,0,0,0,16-16V64A16,16,0,0,0,216,48ZM40,64H216V192H40ZM56,88a8,8,0,0,1,8-8H80a8,8,0,0,1,0,16H64A8,8,0,0,1,56,88Zm144,0a8,8,0,0,1,8-8h16a8,8,0,0,1,0,16H208A8,8,0,0,1,200,88ZM56,168a8,8,0,0,1,8-8H80a8,8,0,0,1,0,16H64A8,8,0,0,1,56,168Zm144,0a8,8,0,0,1,8-8h16a8,8,0,0,1,0,16H208A8,8,0,0,1,200,168ZM128,120a8,8,0,0,1-8-8V96a8,8,0,0,1,16,0v16A8,8,0,0,1,128,120Zm0,48a8,8,0,0,1-8-8V144a8,8,0,0,1,16,0v16A8,8,0,0,1,128,168Z\",\n speakerHigh:\n \"M155.51,24.81a8,8,0,0,0-8.42.88L77.25,80H32A16,16,0,0,0,16,96v64a16,16,0,0,0,16,16H77.25l69.84,54.31A8,8,0,0,0,160,224V32A8,8,0,0,0,155.51,24.81ZM32,96H72v64H32ZM144,207.64,88.91,160H32V96H88.91L144,48.36Zm53.66-90.37a8,8,0,0,1,0-11.32,40,40,0,0,1,0,56.58,8,8,0,0,1-11.32-11.32,24,24,0,0,0,0-33.94A8,8,0,0,1,197.66,117.27Zm-17-45.25a8,8,0,0,1,11.32,0,72,72,0,0,1,0,101.82,8,8,0,0,1-11.32-11.32,56,56,0,0,0,0-79.18A8,8,0,0,1,180.66,72Z\",\n textT:\n \"M212,56V88a8,8,0,0,1-16,0V64H140V192h20a8,8,0,0,1,0,16H96a8,8,0,0,1,0-16h20V64H60V88a8,8,0,0,1-16,0V56a8,8,0,0,1,8-8H204A8,8,0,0,1,212,56Z\",\n image:\n \"M216,40H40A16,16,0,0,0,24,56V200a16,16,0,0,0,16,16H216a16,16,0,0,0,16-16V56A16,16,0,0,0,216,40Zm0,160H40V56H216V200ZM56,96a12,12,0,1,1,12,12A12,12,0,0,1,56,96Zm152,84H96l48-48,24,24,16-16Z\",\n subtitles:\n \"M224,48H32a16,16,0,0,0-16,16V192a16,16,0,0,0,16,16H224a16,16,0,0,0,16-16V64A16,16,0,0,0,224,48Zm0,144H32V64H224V192ZM48,128a8,8,0,0,1,8-8H80a8,8,0,0,1,0,16H56A8,8,0,0,1,48,128Zm112,0a8,8,0,0,1,8-8h32a8,8,0,0,1,0,16H168A8,8,0,0,1,160,128Zm-64,32a8,8,0,0,1,8-8h96a8,8,0,0,1,0,16H104A8,8,0,0,1,96,160Z\",\n microphone:\n \"M128,24A48,48,0,0,0,80,72V128a48,48,0,0,0,96,0V72A48,48,0,0,0,128,24Zm32,104a32,32,0,0,1-64,0V72a32,32,0,0,1,64,0Zm48,0a8,8,0,0,1-16,0A96.11,96.11,0,0,0,128,32a8,8,0,0,1,0-16A112.12,112.12,0,0,1,240,128Zm-40,0a8,8,0,0,1-16,0A72.08,72.08,0,0,0,128,56a8,8,0,0,1,0-16A88.1,88.1,0,0,1,216,128Zm24,40a8,8,0,0,1-8,8H32a8,8,0,0,1,0-16H192A8,8,0,0,1,200,168Z\",\n waveform:\n \"M80,96a8,8,0,0,1,8-8h8a8,8,0,0,1,8,8v64a8,8,0,0,1-8,8H88a8,8,0,0,1-8-8Zm32-32a8,8,0,0,1,8-8h8a8,8,0,0,1,8,8v128a8,8,0,0,1-8,8h-8a8,8,0,0,1-8-8Zm32,16a8,8,0,0,1,8-8h8a8,8,0,0,1,8,8v96a8,8,0,0,1-8,8h-8a8,8,0,0,1-8-8Zm32-48a8,8,0,0,1,8-8h8a8,8,0,0,1,8,8v192a8,8,0,0,1-8,8h-8a8,8,0,0,1-8-8Z\",\n code: \"M69.12,94.15,28.5,128l40.62,33.85a8,8,0,1,1-10.24,12.3l-48-40a8,8,0,0,1,0-12.3l48-40a8,8,0,0,1,10.24,12.3Zm176,27.7-48-40a8,8,0,0,0-10.24,12.3L227.5,128l-40.62,33.85a8,8,0,1,0,10.24,12.3l48-40a8,8,0,0,0,0-12.3Zm-82.39-89.37a8,8,0,0,0-10.25,4.79l-64,176a8,8,0,0,0,4.79,10.26A8.14,8.14,0,0,0,96,224a8,8,0,0,0,7.52-5.27l64-176A8,8,0,0,0,162.73,32.48Z\",\n arrowLeft:\n \"M192,128a8,8,0,0,1-2.34,5.66l-56,56a8,8,0,0,1-11.32-11.32L172.69,128,122.34,77.66a8,8,0,0,1,11.32-11.32l56,56A8,8,0,0,1,192,128Z\",\n arrowRight:\n \"M64,128a8,8,0,0,1,2.34-5.66l56-56a8,8,0,0,1,11.32,11.32L83.31,128l50.35,50.34a8,8,0,0,1-11.32,11.32l-56-56A8,8,0,0,1,64,128Z\",\n lightning:\n \"M215.79,118.17a8,8,0,0,0-5-5.66L153.18,90.9l14.66-73.33a8,8,0,0,0-13.69-7l-112,120a8,8,0,0,0,3,13l57.63,21.61L88.16,238.43a8,8,0,0,0,13.69,7l112-120A8,8,0,0,0,215.79,118.17Z\",\n} as const;\n"],"mappings":";;;;;;;AAMA,SAAgB,aAAa,MAAc,OAAO,IAAuB;AACvE,QAAO,IAAI;kBACK,KAAK,YAAY,KAAK;iBACvB,KAAK;;;;AAMtB,MAAa,QAAQ;CACnB,MAAM;CACN,OACE;CACF,WACE;CACF,WACE;CACF,aACE;CACF,OACE;CACF,OACE;CACF,WACE;CACF,YACE;CACF,UACE;CACF,MAAM;CACN,WACE;CACF,YACE;CACF,WACE;CACH"}
1
+ {"version":3,"file":"icons.js","names":[],"sources":["../../src/gui/icons.ts"],"mappings":";;;;;;AAMA,SAAgB,aAAa,MAAc,OAAO,IAAuB;AACvE,QAAO,IAAI;kBACK,KAAK,YAAY,KAAK;iBACvB,KAAK;;;;AAMtB,MAAa,QAAQ;CACnB,MAAM;CACN,OACE;CACF,WACE;CACF,WACE;CACF,aACE;CACF,OACE;CACF,OACE;CACF,WACE;CACF,YACE;CACF,UACE;CACF,MAAM;CACN,WACE;CACF,YACE;CACF,WACE;CACH"}
@@ -1,12 +1,11 @@
1
1
  import { createContext } from "@lit/context";
2
-
3
2
  //#region src/gui/panZoomTransformContext.ts
4
3
  /**
5
4
  * Lit context for PanZoom transform.
6
5
  * Provided by EFPanZoom component, consumed by overlay components.
7
6
  */
8
7
  const panZoomTransformContext = createContext(Symbol("panZoomTransform"));
9
-
10
8
  //#endregion
11
9
  export { panZoomTransformContext };
10
+
12
11
  //# sourceMappingURL=panZoomTransformContext.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"panZoomTransformContext.js","names":[],"sources":["../../src/gui/panZoomTransformContext.ts"],"sourcesContent":["import { createContext } from \"@lit/context\";\nimport type { PanZoomTransform } from \"../elements/EFPanZoom.js\";\n\n/**\n * Lit context for PanZoom transform.\n * Provided by EFPanZoom component, consumed by overlay components.\n */\nexport const panZoomTransformContext = createContext<PanZoomTransform | undefined>(\n Symbol(\"panZoomTransform\"),\n);\n"],"mappings":";;;;;;;AAOA,MAAa,0BAA0B,cACrC,OAAO,mBAAmB,CAC3B"}
1
+ {"version":3,"file":"panZoomTransformContext.js","names":[],"sources":["../../src/gui/panZoomTransformContext.ts"],"mappings":";;;;;;AAOA,MAAa,0BAA0B,cACrC,OAAO,mBAAmB,CAC3B"}
@@ -1,9 +1,8 @@
1
1
  import { createContext } from "@lit/context";
2
-
3
2
  //#region src/gui/playingContext.ts
4
3
  const playingContext = createContext(Symbol("playingContext"));
5
4
  const loopContext = createContext(Symbol("loopContext"));
6
-
7
5
  //#endregion
8
6
  export { loopContext, playingContext };
7
+
9
8
  //# sourceMappingURL=playingContext.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"playingContext.js","names":[],"sources":["../../src/gui/playingContext.ts"],"sourcesContent":["import { createContext } from \"@lit/context\";\n\nexport const playingContext = createContext<boolean>(Symbol(\"playingContext\"));\n\nexport const loopContext = createContext<boolean>(Symbol(\"loopContext\"));\n"],"mappings":";;;AAEA,MAAa,iBAAiB,cAAuB,OAAO,iBAAiB,CAAC;AAE9E,MAAa,cAAc,cAAuB,OAAO,cAAc,CAAC"}
1
+ {"version":3,"file":"playingContext.js","names":[],"sources":["../../src/gui/playingContext.ts"],"mappings":";;AAEA,MAAa,iBAAiB,cAAuB,OAAO,iBAAiB,CAAC;AAE9E,MAAa,cAAc,cAAuB,OAAO,cAAc,CAAC"}
@@ -1,7 +1,6 @@
1
1
  import { PreviewPresentationMode, PreviewResolutionScale, RenderMode } from "../preview/previewSettings.js";
2
2
 
3
3
  //#region src/gui/previewSettingsContext.d.ts
4
-
5
4
  /**
6
5
  * Settings for the preview workbench.
7
6
  * Provided by EFWorkbench via context, consumable by any descendant.
@@ -1,12 +1,11 @@
1
1
  import { createContext } from "@lit/context";
2
-
3
2
  //#region src/gui/previewSettingsContext.ts
4
3
  /**
5
4
  * Context for propagating preview settings through the component tree.
6
5
  * Provided by EFWorkbench, consumable by any descendant.
7
6
  */
8
7
  const previewSettingsContext = createContext(Symbol("preview-settings"));
9
-
10
8
  //#endregion
11
9
  export { previewSettingsContext };
10
+
12
11
  //# sourceMappingURL=previewSettingsContext.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"previewSettingsContext.js","names":[],"sources":["../../src/gui/previewSettingsContext.ts"],"sourcesContent":["import { createContext } from \"@lit/context\";\nimport type {\n PreviewPresentationMode,\n PreviewResolutionScale,\n RenderMode,\n} from \"../preview/previewSettings.js\";\n\n/**\n * Settings for the preview workbench.\n * Provided by EFWorkbench via context, consumable by any descendant.\n */\nexport interface PreviewSettings {\n presentationMode: PreviewPresentationMode;\n renderMode: RenderMode;\n resolutionScale: PreviewResolutionScale;\n showStats: boolean;\n showThumbnailTimestamps: boolean;\n}\n\n/**\n * Context for propagating preview settings through the component tree.\n * Provided by EFWorkbench, consumable by any descendant.\n */\nexport const previewSettingsContext = createContext<PreviewSettings>(Symbol(\"preview-settings\"));\n"],"mappings":";;;;;;;AAuBA,MAAa,yBAAyB,cAA+B,OAAO,mBAAmB,CAAC"}
1
+ {"version":3,"file":"previewSettingsContext.js","names":[],"sources":["../../src/gui/previewSettingsContext.ts"],"mappings":";;;;;;AAuBA,MAAa,yBAAyB,cAA+B,OAAO,mBAAmB,CAAC"}
@@ -17,7 +17,7 @@ function shouldSignUrl(url, currentOrigin) {
17
17
  return true;
18
18
  }
19
19
  }
20
-
21
20
  //#endregion
22
21
  export { shouldSignUrl };
22
+
23
23
  //# sourceMappingURL=shouldSignUrl.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"shouldSignUrl.js","names":[],"sources":["../../src/gui/shouldSignUrl.ts"],"sourcesContent":["/**\n * Determines whether a URL should be signed before fetching.\n *\n * Signing is skipped for:\n * - Local vite plugin endpoints (/@ef-*)\n * - Same-origin URLs (local dev server routes like /api/v1/transcode/*)\n *\n * @param url - The URL to evaluate\n * @param currentOrigin - The current page origin (window.location.origin)\n */\nexport function shouldSignUrl(url: string, currentOrigin: string): boolean {\n if (url.startsWith(\"/@ef-\")) return false;\n\n try {\n const targetUrl = new URL(url, currentOrigin);\n return targetUrl.origin !== currentOrigin;\n } catch {\n return true;\n }\n}\n"],"mappings":";;;;;;;;;;;AAUA,SAAgB,cAAc,KAAa,eAAgC;AACzE,KAAI,IAAI,WAAW,QAAQ,CAAE,QAAO;AAEpC,KAAI;AAEF,SADkB,IAAI,IAAI,KAAK,cAAc,CAC5B,WAAW;SACtB;AACN,SAAO"}
1
+ {"version":3,"file":"shouldSignUrl.js","names":[],"sources":["../../src/gui/shouldSignUrl.ts"],"mappings":";;;;;;;;;;;AAUA,SAAgB,cAAc,KAAa,eAAgC;AACzE,KAAI,IAAI,WAAW,QAAQ,CAAE,QAAO;AAEpC,KAAI;AAEF,SADkB,IAAI,IAAI,KAAK,cAAc,CAC5B,WAAW;SACtB;AACN,SAAO"}
package/dist/gui/theme.js CHANGED
@@ -28,7 +28,7 @@ function getElementTypeColor(type, element = document.documentElement) {
28
28
  const varName = `--ef-color-type-${type}`;
29
29
  return getComputedStyle(element).getPropertyValue(varName).trim() || fallbackTypeColors[type] || fallbackTypeColors.timegroup;
30
30
  }
31
-
32
31
  //#endregion
33
32
  export { getElementTypeColor };
33
+
34
34
  //# sourceMappingURL=theme.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"theme.js","names":["fallbackTypeColors: Record<string, string>"],"sources":["../../src/gui/theme.ts"],"sourcesContent":["/**\n * Editframe GUI Theme Utilities\n *\n * Shared utilities for working with theme tokens.\n */\n\n/**\n * Fallback colors for element types when CSS variables are not available.\n * These match the default values in ef-theme.css.\n */\nconst fallbackTypeColors: Record<string, string> = {\n video: \"rgb(59, 130, 246)\", // blue-500\n audio: \"rgb(34, 197, 94)\", // green-500\n image: \"rgb(168, 85, 247)\", // purple-500\n text: \"rgb(249, 115, 22)\", // orange-500\n captions: \"rgb(34, 197, 94)\", // green-500\n timegroup: \"rgb(148, 163, 184)\", // slate-400\n};\n\n/**\n * Get the color for a specific element type from CSS variables.\n * Falls back to hardcoded values if the CSS variable is not defined.\n *\n * @param type - The element type (video, audio, image, text, captions, timegroup)\n * @param element - Optional element to compute styles from (defaults to document.documentElement)\n * @returns The color string (rgb format)\n */\nexport function getElementTypeColor(\n type: string,\n element: Element = document.documentElement,\n): string {\n const varName = `--ef-color-type-${type}`;\n const computedValue = getComputedStyle(element).getPropertyValue(varName).trim();\n\n return computedValue || fallbackTypeColors[type] || fallbackTypeColors.timegroup!;\n}\n\n/**\n * Get a theme token value from CSS variables.\n *\n * @param tokenName - The CSS variable name (with or without -- prefix)\n * @param element - Optional element to compute styles from (defaults to document.documentElement)\n * @returns The token value, or empty string if not defined\n */\nexport function getThemeToken(\n tokenName: string,\n element: Element = document.documentElement,\n): string {\n const varName = tokenName.startsWith(\"--\") ? tokenName : `--${tokenName}`;\n return getComputedStyle(element).getPropertyValue(varName).trim();\n}\n\n/**\n * Check if light mode is active on the given element or any ancestor.\n *\n * @param element - The element to check\n * @returns true if light mode is active\n */\nexport function isLightMode(element: Element): boolean {\n let current: Element | null = element;\n while (current) {\n if (current.classList.contains(\"light\")) {\n return true;\n }\n current = current.parentElement;\n }\n return false;\n}\n"],"mappings":";;;;;;;;;;AAUA,MAAMA,qBAA6C;CACjD,OAAO;CACP,OAAO;CACP,OAAO;CACP,MAAM;CACN,UAAU;CACV,WAAW;CACZ;;;;;;;;;AAUD,SAAgB,oBACd,MACA,UAAmB,SAAS,iBACpB;CACR,MAAM,UAAU,mBAAmB;AAGnC,QAFsB,iBAAiB,QAAQ,CAAC,iBAAiB,QAAQ,CAAC,MAAM,IAExD,mBAAmB,SAAS,mBAAmB"}
1
+ {"version":3,"file":"theme.js","names":[],"sources":["../../src/gui/theme.ts"],"mappings":";;;;;;;;;;AAUA,MAAM,qBAA6C;CACjD,OAAO;CACP,OAAO;CACP,OAAO;CACP,MAAM;CACN,UAAU;CACV,WAAW;CACZ;;;;;;;;;AAUD,SAAgB,oBACd,MACA,UAAmB,SAAS,iBACpB;CACR,MAAM,UAAU,mBAAmB;AAGnC,QAFsB,iBAAiB,QAAQ,CAAC,iBAAiB,QAAQ,CAAC,MAAM,IAExD,mBAAmB,SAAS,mBAAmB"}
@@ -1,10 +1,7 @@
1
1
  import { TemporalMixinInterface } from "../../elements/EFTemporal.js";
2
2
  import { SelectionContext } from "../../canvas/selection/selectionContext.js";
3
3
  import { TimelineState } from "./timelineStateContext.js";
4
- import "./tracks/preloadTracks.js";
5
- import "./EFTimelineRow.js";
6
- import "../EFTimelineRuler.js";
7
- import * as lit34 from "lit";
4
+ import * as _$lit from "lit";
8
5
  import { LitElement, PropertyValues, TemplateResult } from "lit";
9
6
 
10
7
  //#region src/gui/timeline/EFTimeline.d.ts
@@ -17,7 +14,7 @@ declare const EFTimeline_base: typeof LitElement;
17
14
  */
18
15
  declare class EFTimeline extends EFTimeline_base {
19
16
  #private;
20
- static styles: lit34.CSSResult[];
17
+ static styles: _$lit.CSSResult[];
21
18
  /**
22
19
  * Target element ID or "selection" to derive from canvas selection.
23
20
  *
@@ -2,7 +2,7 @@ import { TWMixin } from "../TWMixin2.js";
2
2
  import { currentTimeContext } from "../currentTimeContext.js";
3
3
  import { durationContext } from "../durationContext.js";
4
4
  import { loopContext, playingContext } from "../playingContext.js";
5
- import { __decorate } from "../../_virtual/_@oxc-project_runtime@0.95.0/helpers/decorate.js";
5
+ import { __decorate } from "../../_virtual/_@oxc-project_runtime@0.122.0/helpers/decorate.js";
6
6
  import { isEFTemporal } from "../../elements/EFTemporal.js";
7
7
  import { targetTemporalContext } from "../ContextMixin.js";
8
8
  import { TargetController } from "../../elements/TargetController.js";
@@ -23,10 +23,9 @@ import { customElement, eventOptions, property, state } from "lit/decorators.js"
23
23
  import { styleMap } from "lit/directives/style-map.js";
24
24
  import { createRef, ref } from "lit/directives/ref.js";
25
25
  import { repeat } from "lit/directives/repeat.js";
26
-
27
26
  //#region src/gui/timeline/EFTimeline.ts
28
27
  var _EFTimeline;
29
- let EFTimeline = class EFTimeline$1 extends TWMixin(LitElement) {
28
+ let EFTimeline = class EFTimeline extends TWMixin(LitElement) {
30
29
  static {
31
30
  _EFTimeline = this;
32
31
  }
@@ -555,11 +554,11 @@ let EFTimeline = class EFTimeline$1 extends TWMixin(LitElement) {
555
554
  const storageKey = this.getTimelineStorageKey();
556
555
  if (!storageKey) return;
557
556
  try {
558
- const state$1 = {
557
+ const state = {
559
558
  pixelsPerMs: this.pixelsPerMs,
560
559
  viewportScrollLeft: this.viewportScrollLeft
561
560
  };
562
- localStorage.setItem(storageKey, JSON.stringify(state$1));
561
+ localStorage.setItem(storageKey, JSON.stringify(state));
563
562
  } catch (error) {
564
563
  console.warn("Failed to save timeline state to localStorage", error);
565
564
  }
@@ -576,10 +575,10 @@ let EFTimeline = class EFTimeline$1 extends TWMixin(LitElement) {
576
575
  this.pixelsPerMs = this.fitPixelsPerMs;
577
576
  return;
578
577
  }
579
- const state$1 = JSON.parse(stored);
580
- if (typeof state$1.pixelsPerMs === "number" && state$1.pixelsPerMs > 0) this.pixelsPerMs = Math.max(this.effectiveMinPixelsPerMs, Math.min(this.maxZoom * DEFAULT_PIXELS_PER_MS, state$1.pixelsPerMs));
581
- if (typeof state$1.viewportScrollLeft === "number" && state$1.viewportScrollLeft >= 0) {
582
- const scrollLeft = state$1.viewportScrollLeft;
578
+ const state = JSON.parse(stored);
579
+ if (typeof state.pixelsPerMs === "number" && state.pixelsPerMs > 0) this.pixelsPerMs = Math.max(this.effectiveMinPixelsPerMs, Math.min(this.maxZoom * DEFAULT_PIXELS_PER_MS, state.pixelsPerMs));
580
+ if (typeof state.viewportScrollLeft === "number" && state.viewportScrollLeft >= 0) {
581
+ const scrollLeft = state.viewportScrollLeft;
583
582
  this.updateComplete.then(() => {
584
583
  const tracksScroll = this.tracksScrollRef.value;
585
584
  if (tracksScroll) {
@@ -1151,19 +1150,19 @@ let EFTimeline = class EFTimeline$1 extends TWMixin(LitElement) {
1151
1150
  let lastClientX = e.clientX;
1152
1151
  let edgeScrollAnimationId = null;
1153
1152
  const updatePlayheadFromMouse = () => {
1154
- const tracksScroll$1 = this.tracksScrollRef.value;
1155
- if (!tracksScroll$1) return;
1156
- const rect = tracksScroll$1.getBoundingClientRect();
1157
- const scrollLeft = tracksScroll$1.scrollLeft;
1153
+ const tracksScroll = this.tracksScrollRef.value;
1154
+ if (!tracksScroll) return;
1155
+ const rect = tracksScroll.getBoundingClientRect();
1156
+ const scrollLeft = tracksScroll.scrollLeft;
1158
1157
  const x = lastClientX - rect.left + scrollLeft - hierarchyWidth;
1159
1158
  const timeMs = pxToTime(Math.max(0, x), this.pixelsPerMs);
1160
1159
  this.handleSeek(Math.min(timeMs, this.durationMs));
1161
1160
  };
1162
1161
  const edgeScrollLoop = () => {
1163
1162
  if (!this.isDraggingPlayhead) return;
1164
- const tracksScroll$1 = this.tracksScrollRef.value;
1165
- if (!tracksScroll$1) return;
1166
- const rect = tracksScroll$1.getBoundingClientRect();
1163
+ const tracksScroll = this.tracksScrollRef.value;
1164
+ if (!tracksScroll) return;
1165
+ const rect = tracksScroll.getBoundingClientRect();
1167
1166
  const trackAreaLeft = rect.left + hierarchyWidth;
1168
1167
  const trackAreaRight = rect.right;
1169
1168
  const distanceFromLeft = lastClientX - trackAreaLeft;
@@ -1178,9 +1177,9 @@ let EFTimeline = class EFTimeline$1 extends TWMixin(LitElement) {
1178
1177
  } else if (lastClientX < trackAreaLeft) scrollDelta = -_EFTimeline.EDGE_SCROLL_SPEED;
1179
1178
  else if (lastClientX > trackAreaRight) scrollDelta = _EFTimeline.EDGE_SCROLL_SPEED;
1180
1179
  if (scrollDelta !== 0) {
1181
- const maxScroll = tracksScroll$1.scrollWidth - tracksScroll$1.clientWidth;
1182
- const newScrollLeft = Math.max(0, Math.min(maxScroll, tracksScroll$1.scrollLeft + scrollDelta));
1183
- tracksScroll$1.scrollLeft = newScrollLeft;
1180
+ const maxScroll = tracksScroll.scrollWidth - tracksScroll.clientWidth;
1181
+ const newScrollLeft = Math.max(0, Math.min(maxScroll, tracksScroll.scrollLeft + scrollDelta));
1182
+ tracksScroll.scrollLeft = newScrollLeft;
1184
1183
  this.viewportScrollLeft = newScrollLeft;
1185
1184
  updatePlayheadFromMouse();
1186
1185
  }
@@ -1491,7 +1490,7 @@ __decorate([eventOptions({ passive: false })], EFTimeline.prototype, "handleRule
1491
1490
  __decorate([eventOptions({ passive: false })], EFTimeline.prototype, "handlePlayheadPointerDown", null);
1492
1491
  __decorate([eventOptions({ passive: false })], EFTimeline.prototype, "handleTracksPointerDown", null);
1493
1492
  EFTimeline = _EFTimeline = __decorate([customElement("ef-timeline")], EFTimeline);
1494
-
1495
1493
  //#endregion
1496
1494
  export { EFTimeline };
1495
+
1497
1496
  //# sourceMappingURL=EFTimeline.js.map