@editframe/elements 0.47.2 → 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 (405) hide show
  1. package/dist/DelayedLoadingState.js +1 -1
  2. package/dist/DelayedLoadingState.js.map +1 -1
  3. package/dist/EF_FRAMEGEN.js +1 -2
  4. package/dist/EF_FRAMEGEN.js.map +1 -1
  5. package/dist/EF_RENDERING.js +1 -1
  6. package/dist/EF_RENDERING.js.map +1 -1
  7. package/dist/_virtual/{_@oxc-project_runtime@0.95.0 → _@oxc-project_runtime@0.122.0}/helpers/decorate.js +2 -3
  8. package/dist/attachContextRoot.js +1 -2
  9. package/dist/attachContextRoot.js.map +1 -1
  10. package/dist/canvas/EFCanvas.d.ts +4 -7
  11. package/dist/canvas/EFCanvas.js +20 -21
  12. package/dist/canvas/EFCanvas.js.map +1 -1
  13. package/dist/canvas/EFCanvasItem.d.ts +4 -5
  14. package/dist/canvas/EFCanvasItem.js +3 -4
  15. package/dist/canvas/EFCanvasItem.js.map +1 -1
  16. package/dist/canvas/api/CanvasAPI.d.ts +0 -1
  17. package/dist/canvas/api/CanvasAPI.js +1 -1
  18. package/dist/canvas/api/CanvasAPI.js.map +1 -1
  19. package/dist/canvas/coordinateTransform.js +1 -1
  20. package/dist/canvas/coordinateTransform.js.map +1 -1
  21. package/dist/canvas/getElementBounds.js +1 -1
  22. package/dist/canvas/getElementBounds.js.map +1 -1
  23. package/dist/canvas/overlays/SelectionOverlay.d.ts +4 -4
  24. package/dist/canvas/overlays/SelectionOverlay.js +6 -7
  25. package/dist/canvas/overlays/SelectionOverlay.js.map +1 -1
  26. package/dist/canvas/overlays/overlayState.js +1 -2
  27. package/dist/canvas/overlays/overlayState.js.map +1 -1
  28. package/dist/canvas/selection/SelectionController.js +1 -2
  29. package/dist/canvas/selection/SelectionController.js.map +1 -1
  30. package/dist/canvas/selection/SelectionModel.d.ts +0 -1
  31. package/dist/canvas/selection/SelectionModel.js +1 -1
  32. package/dist/canvas/selection/SelectionModel.js.map +1 -1
  33. package/dist/canvas/selection/selectionContext.d.ts +0 -1
  34. package/dist/canvas/selection/selectionContext.js +1 -2
  35. package/dist/canvas/selection/selectionContext.js.map +1 -1
  36. package/dist/elements/ContainerInfo.js +1 -1
  37. package/dist/elements/ContainerInfo.js.map +1 -1
  38. package/dist/elements/CrossUpdateController.js +1 -1
  39. package/dist/elements/CrossUpdateController.js.map +1 -1
  40. package/dist/elements/EFAudio.d.ts +4 -4
  41. package/dist/elements/EFAudio.js +4 -6
  42. package/dist/elements/EFAudio.js.map +1 -1
  43. package/dist/elements/EFCaptions.d.ts +4 -4
  44. package/dist/elements/EFCaptions.js +8 -10
  45. package/dist/elements/EFCaptions.js.map +1 -1
  46. package/dist/elements/EFImage.d.ts +7 -7
  47. package/dist/elements/EFImage.js +4 -6
  48. package/dist/elements/EFImage.js.map +1 -1
  49. package/dist/elements/EFMedia/BufferedSeekingInput.d.ts +2 -2
  50. package/dist/elements/EFMedia/BufferedSeekingInput.js +8 -9
  51. package/dist/elements/EFMedia/BufferedSeekingInput.js.map +1 -1
  52. package/dist/elements/EFMedia/CachedFetcher.js +1 -2
  53. package/dist/elements/EFMedia/CachedFetcher.js.map +1 -1
  54. package/dist/elements/EFMedia/MediaEngine.d.ts +0 -2
  55. package/dist/elements/EFMedia/MediaEngine.js +1 -2
  56. package/dist/elements/EFMedia/MediaEngine.js.map +1 -1
  57. package/dist/elements/EFMedia/SegmentIndex.d.ts +0 -3
  58. package/dist/elements/EFMedia/SegmentIndex.js +1 -2
  59. package/dist/elements/EFMedia/SegmentIndex.js.map +1 -1
  60. package/dist/elements/EFMedia/SegmentTransport.d.ts +0 -2
  61. package/dist/elements/EFMedia/SegmentTransport.js +1 -1
  62. package/dist/elements/EFMedia/SegmentTransport.js.map +1 -1
  63. package/dist/elements/EFMedia/TimingModel.d.ts +0 -2
  64. package/dist/elements/EFMedia/TimingModel.js +1 -1
  65. package/dist/elements/EFMedia/TimingModel.js.map +1 -1
  66. package/dist/elements/EFMedia/shared/AudioSpanUtils.js +1 -1
  67. package/dist/elements/EFMedia/shared/AudioSpanUtils.js.map +1 -1
  68. package/dist/elements/EFMedia/shared/GlobalInputCache.js +1 -2
  69. package/dist/elements/EFMedia/shared/GlobalInputCache.js.map +1 -1
  70. package/dist/elements/EFMedia/shared/PrecisionUtils.js +1 -1
  71. package/dist/elements/EFMedia/shared/PrecisionUtils.js.map +1 -1
  72. package/dist/elements/EFMedia/shared/ThumbnailExtractor.js +1 -2
  73. package/dist/elements/EFMedia/shared/ThumbnailExtractor.js.map +1 -1
  74. package/dist/elements/EFMedia/shared/timeoutUtils.js +1 -2
  75. package/dist/elements/EFMedia/shared/timeoutUtils.js.map +1 -1
  76. package/dist/elements/EFMedia/videoTasks/MainVideoInputCache.js +1 -1
  77. package/dist/elements/EFMedia/videoTasks/MainVideoInputCache.js.map +1 -1
  78. package/dist/elements/EFMedia/videoTasks/ScrubInputCache.d.ts +0 -1
  79. package/dist/elements/EFMedia/videoTasks/ScrubInputCache.js +12 -12
  80. package/dist/elements/EFMedia/videoTasks/ScrubInputCache.js.map +1 -1
  81. package/dist/elements/EFMedia.d.ts +2 -2
  82. package/dist/elements/EFMedia.js +2 -3
  83. package/dist/elements/EFMedia.js.map +1 -1
  84. package/dist/elements/EFMotionBlur.d.ts +0 -1
  85. package/dist/elements/EFMotionBlur.js +8 -15
  86. package/dist/elements/EFMotionBlur.js.map +1 -1
  87. package/dist/elements/EFPanZoom.d.ts +4 -4
  88. package/dist/elements/EFPanZoom.js +3 -4
  89. package/dist/elements/EFPanZoom.js.map +1 -1
  90. package/dist/elements/EFSourceMixin.js +2 -3
  91. package/dist/elements/EFSourceMixin.js.map +1 -1
  92. package/dist/elements/EFSurface.d.ts +6 -6
  93. package/dist/elements/EFSurface.js +3 -4
  94. package/dist/elements/EFSurface.js.map +1 -1
  95. package/dist/elements/EFTemporal.d.ts +0 -1
  96. package/dist/elements/EFTemporal.js +6 -7
  97. package/dist/elements/EFTemporal.js.map +1 -1
  98. package/dist/elements/EFText.d.ts +4 -4
  99. package/dist/elements/EFText.js +6 -7
  100. package/dist/elements/EFText.js.map +1 -1
  101. package/dist/elements/EFTextSegment.d.ts +4 -4
  102. package/dist/elements/EFTextSegment.js +3 -4
  103. package/dist/elements/EFTextSegment.js.map +1 -1
  104. package/dist/elements/EFTimegroup.d.ts +4 -10
  105. package/dist/elements/EFTimegroup.js +11 -12
  106. package/dist/elements/EFTimegroup.js.map +1 -1
  107. package/dist/elements/EFVideo.d.ts +6 -7
  108. package/dist/elements/EFVideo.js +7 -9
  109. package/dist/elements/EFVideo.js.map +1 -1
  110. package/dist/elements/EFWaveform.d.ts +4 -4
  111. package/dist/elements/EFWaveform.js +4 -6
  112. package/dist/elements/EFWaveform.js.map +1 -1
  113. package/dist/elements/ElementPositionInfo.js +1 -1
  114. package/dist/elements/ElementPositionInfo.js.map +1 -1
  115. package/dist/elements/FetchMixin.js +1 -1
  116. package/dist/elements/FetchMixin.js.map +1 -1
  117. package/dist/elements/SampleBuffer.js +1 -2
  118. package/dist/elements/SampleBuffer.js.map +1 -1
  119. package/dist/elements/TargetController.d.ts +0 -1
  120. package/dist/elements/TargetController.js +1 -1
  121. package/dist/elements/TargetController.js.map +1 -1
  122. package/dist/elements/TimegroupController.js +1 -1
  123. package/dist/elements/TimegroupController.js.map +1 -1
  124. package/dist/elements/cloneFactoryRegistry.js +1 -1
  125. package/dist/elements/cloneFactoryRegistry.js.map +1 -1
  126. package/dist/elements/durationConverter.js +4 -5
  127. package/dist/elements/durationConverter.js.map +1 -1
  128. package/dist/elements/easingUtils.js +1 -1
  129. package/dist/elements/easingUtils.js.map +1 -1
  130. package/dist/elements/findRootTemporal.js +1 -2
  131. package/dist/elements/findRootTemporal.js.map +1 -1
  132. package/dist/elements/parseTimeToMs.js +1 -1
  133. package/dist/elements/parseTimeToMs.js.map +1 -1
  134. package/dist/elements/renderTemporalAudio.js +1 -2
  135. package/dist/elements/renderTemporalAudio.js.map +1 -1
  136. package/dist/elements/setupTemporalHierarchy.js +1 -1
  137. package/dist/elements/setupTemporalHierarchy.js.map +1 -1
  138. package/dist/elements/updateAnimations.js +1 -2
  139. package/dist/elements/updateAnimations.js.map +1 -1
  140. package/dist/getRenderInfo.d.ts +0 -1
  141. package/dist/getRenderInfo.js +1 -2
  142. package/dist/getRenderInfo.js.map +1 -1
  143. package/dist/gui/ContextMixin.d.ts +0 -1
  144. package/dist/gui/ContextMixin.js +2 -3
  145. package/dist/gui/ContextMixin.js.map +1 -1
  146. package/dist/gui/Controllable.d.ts +0 -2
  147. package/dist/gui/Controllable.js +1 -2
  148. package/dist/gui/Controllable.js.map +1 -1
  149. package/dist/gui/EFActiveRootTemporal.d.ts +4 -5
  150. package/dist/gui/EFActiveRootTemporal.js +3 -4
  151. package/dist/gui/EFActiveRootTemporal.js.map +1 -1
  152. package/dist/gui/EFConfiguration.d.ts +4 -4
  153. package/dist/gui/EFConfiguration.js +3 -4
  154. package/dist/gui/EFConfiguration.js.map +1 -1
  155. package/dist/gui/EFControls.d.ts +2 -3
  156. package/dist/gui/EFControls.js +4 -5
  157. package/dist/gui/EFControls.js.map +1 -1
  158. package/dist/gui/EFDial.d.ts +4 -4
  159. package/dist/gui/EFDial.js +3 -4
  160. package/dist/gui/EFDial.js.map +1 -1
  161. package/dist/gui/EFFilmstrip.d.ts +6 -7
  162. package/dist/gui/EFFilmstrip.js +3 -4
  163. package/dist/gui/EFFilmstrip.js.map +1 -1
  164. package/dist/gui/EFFitScale.d.ts +3 -3
  165. package/dist/gui/EFFitScale.js +6 -7
  166. package/dist/gui/EFFitScale.js.map +1 -1
  167. package/dist/gui/EFFocusOverlay.d.ts +6 -6
  168. package/dist/gui/EFFocusOverlay.js +3 -4
  169. package/dist/gui/EFFocusOverlay.js.map +1 -1
  170. package/dist/gui/EFOverlayItem.d.ts +4 -4
  171. package/dist/gui/EFOverlayItem.js +3 -4
  172. package/dist/gui/EFOverlayItem.js.map +1 -1
  173. package/dist/gui/EFOverlayLayer.d.ts +4 -5
  174. package/dist/gui/EFOverlayLayer.js +3 -4
  175. package/dist/gui/EFOverlayLayer.js.map +1 -1
  176. package/dist/gui/EFPause.d.ts +4 -4
  177. package/dist/gui/EFPause.js +3 -4
  178. package/dist/gui/EFPause.js.map +1 -1
  179. package/dist/gui/EFPlay.d.ts +4 -4
  180. package/dist/gui/EFPlay.js +3 -4
  181. package/dist/gui/EFPlay.js.map +1 -1
  182. package/dist/gui/EFPreview.d.ts +4 -4
  183. package/dist/gui/EFPreview.js +3 -4
  184. package/dist/gui/EFPreview.js.map +1 -1
  185. package/dist/gui/EFResizableBox.d.ts +4 -4
  186. package/dist/gui/EFResizableBox.js +3 -4
  187. package/dist/gui/EFResizableBox.js.map +1 -1
  188. package/dist/gui/EFScrubber.d.ts +4 -4
  189. package/dist/gui/EFScrubber.js +3 -4
  190. package/dist/gui/EFScrubber.js.map +1 -1
  191. package/dist/gui/EFTimeDisplay.d.ts +4 -4
  192. package/dist/gui/EFTimeDisplay.js +3 -4
  193. package/dist/gui/EFTimeDisplay.js.map +1 -1
  194. package/dist/gui/EFTimelineRuler.d.ts +4 -4
  195. package/dist/gui/EFTimelineRuler.js +5 -6
  196. package/dist/gui/EFTimelineRuler.js.map +1 -1
  197. package/dist/gui/EFToggleLoop.d.ts +4 -4
  198. package/dist/gui/EFToggleLoop.js +3 -4
  199. package/dist/gui/EFToggleLoop.js.map +1 -1
  200. package/dist/gui/EFTogglePlay.d.ts +4 -4
  201. package/dist/gui/EFTogglePlay.js +3 -4
  202. package/dist/gui/EFTogglePlay.js.map +1 -1
  203. package/dist/gui/EFTransformHandles.d.ts +4 -4
  204. package/dist/gui/EFTransformHandles.js +3 -4
  205. package/dist/gui/EFTransformHandles.js.map +1 -1
  206. package/dist/gui/EFWorkbench.d.ts +6 -7
  207. package/dist/gui/EFWorkbench.js +13 -15
  208. package/dist/gui/EFWorkbench.js.map +1 -1
  209. package/dist/gui/EFWorkbench.spacebar.js +1 -1
  210. package/dist/gui/EFWorkbench.spacebar.js.map +1 -1
  211. package/dist/gui/FitScaleHelpers.js +1 -2
  212. package/dist/gui/FitScaleHelpers.js.map +1 -1
  213. package/dist/gui/PlaybackController.js +3 -4
  214. package/dist/gui/PlaybackController.js.map +1 -1
  215. package/dist/gui/TWMixin.js +1 -1
  216. package/dist/gui/TWMixin.js.map +1 -1
  217. package/dist/gui/TWMixin2.js +1 -2
  218. package/dist/gui/TWMixin2.js.map +1 -1
  219. package/dist/gui/TargetOrContextMixin.js +2 -3
  220. package/dist/gui/TargetOrContextMixin.js.map +1 -1
  221. package/dist/gui/currentTimeContext.js +1 -2
  222. package/dist/gui/currentTimeContext.js.map +1 -1
  223. package/dist/gui/durationContext.js +1 -2
  224. package/dist/gui/durationContext.js.map +1 -1
  225. package/dist/gui/efContext.js +1 -2
  226. package/dist/gui/efContext.js.map +1 -1
  227. package/dist/gui/fetchContext.js +1 -2
  228. package/dist/gui/fetchContext.js.map +1 -1
  229. package/dist/gui/focusContext.js +1 -2
  230. package/dist/gui/focusContext.js.map +1 -1
  231. package/dist/gui/focusedElementContext.js +1 -2
  232. package/dist/gui/focusedElementContext.js.map +1 -1
  233. package/dist/gui/hierarchy/EFHierarchy.d.ts +4 -4
  234. package/dist/gui/hierarchy/EFHierarchy.js +3 -4
  235. package/dist/gui/hierarchy/EFHierarchy.js.map +1 -1
  236. package/dist/gui/hierarchy/EFHierarchyItem.d.ts +2 -2
  237. package/dist/gui/hierarchy/EFHierarchyItem.js +13 -14
  238. package/dist/gui/hierarchy/EFHierarchyItem.js.map +1 -1
  239. package/dist/gui/hierarchy/hierarchyContext.js +1 -2
  240. package/dist/gui/hierarchy/hierarchyContext.js.map +1 -1
  241. package/dist/gui/icons.js +1 -2
  242. package/dist/gui/icons.js.map +1 -1
  243. package/dist/gui/panZoomTransformContext.js +1 -2
  244. package/dist/gui/panZoomTransformContext.js.map +1 -1
  245. package/dist/gui/playingContext.js +1 -2
  246. package/dist/gui/playingContext.js.map +1 -1
  247. package/dist/gui/previewSettingsContext.d.ts +0 -1
  248. package/dist/gui/previewSettingsContext.js +1 -2
  249. package/dist/gui/previewSettingsContext.js.map +1 -1
  250. package/dist/gui/shouldSignUrl.js +1 -1
  251. package/dist/gui/shouldSignUrl.js.map +1 -1
  252. package/dist/gui/theme.js +1 -1
  253. package/dist/gui/theme.js.map +1 -1
  254. package/dist/gui/timeline/EFTimeline.d.ts +2 -5
  255. package/dist/gui/timeline/EFTimeline.js +19 -20
  256. package/dist/gui/timeline/EFTimeline.js.map +1 -1
  257. package/dist/gui/timeline/EFTimelineRow.d.ts +2 -2
  258. package/dist/gui/timeline/EFTimelineRow.js +3 -4
  259. package/dist/gui/timeline/EFTimelineRow.js.map +1 -1
  260. package/dist/gui/timeline/TrimHandles.d.ts +4 -4
  261. package/dist/gui/timeline/TrimHandles.js +3 -4
  262. package/dist/gui/timeline/TrimHandles.js.map +1 -1
  263. package/dist/gui/timeline/flattenHierarchy.js +1 -2
  264. package/dist/gui/timeline/flattenHierarchy.js.map +1 -1
  265. package/dist/gui/timeline/timelineEditingContext.js +1 -2
  266. package/dist/gui/timeline/timelineEditingContext.js.map +1 -1
  267. package/dist/gui/timeline/timelineStateContext.js +1 -14
  268. package/dist/gui/timeline/timelineStateContext.js.map +1 -1
  269. package/dist/gui/timeline/tracks/AudioTrack.d.ts +0 -1
  270. package/dist/gui/timeline/tracks/AudioTrack.js +3 -4
  271. package/dist/gui/timeline/tracks/AudioTrack.js.map +1 -1
  272. package/dist/gui/timeline/tracks/CaptionsTrack.d.ts +2 -2
  273. package/dist/gui/timeline/tracks/CaptionsTrack.js +9 -9
  274. package/dist/gui/timeline/tracks/CaptionsTrack.js.map +1 -1
  275. package/dist/gui/timeline/tracks/EFThumbnailStrip.d.ts +4 -4
  276. package/dist/gui/timeline/tracks/EFThumbnailStrip.js +3 -4
  277. package/dist/gui/timeline/tracks/EFThumbnailStrip.js.map +1 -1
  278. package/dist/gui/timeline/tracks/HTMLTrack.d.ts +2 -2
  279. package/dist/gui/timeline/tracks/HTMLTrack.js +3 -4
  280. package/dist/gui/timeline/tracks/HTMLTrack.js.map +1 -1
  281. package/dist/gui/timeline/tracks/ImageTrack.d.ts +2 -2
  282. package/dist/gui/timeline/tracks/ImageTrack.js +3 -4
  283. package/dist/gui/timeline/tracks/ImageTrack.js.map +1 -1
  284. package/dist/gui/timeline/tracks/TextTrack.d.ts +2 -2
  285. package/dist/gui/timeline/tracks/TextTrack.js +4 -5
  286. package/dist/gui/timeline/tracks/TextTrack.js.map +1 -1
  287. package/dist/gui/timeline/tracks/TimegroupTrack.d.ts +5 -6
  288. package/dist/gui/timeline/tracks/TimegroupTrack.js +3 -4
  289. package/dist/gui/timeline/tracks/TimegroupTrack.js.map +1 -1
  290. package/dist/gui/timeline/tracks/TrackItem.d.ts +2 -2
  291. package/dist/gui/timeline/tracks/TrackItem.js +3 -4
  292. package/dist/gui/timeline/tracks/TrackItem.js.map +1 -1
  293. package/dist/gui/timeline/tracks/VideoTrack.d.ts +6 -7
  294. package/dist/gui/timeline/tracks/VideoTrack.js +3 -4
  295. package/dist/gui/timeline/tracks/VideoTrack.js.map +1 -1
  296. package/dist/gui/timeline/tracks/WaveformTrack.js +3 -4
  297. package/dist/gui/timeline/tracks/WaveformTrack.js.map +1 -1
  298. package/dist/gui/timeline/tracks/ensureTrackItemInit.js +1 -1
  299. package/dist/gui/timeline/tracks/preloadTracks.d.ts +1 -9
  300. package/dist/gui/timeline/tracks/renderTrackChildren.js +1 -2
  301. package/dist/gui/timeline/tracks/renderTrackChildren.js.map +1 -1
  302. package/dist/gui/timeline/tracks/waveformUtils.js +3 -6
  303. package/dist/gui/timeline/tracks/waveformUtils.js.map +1 -1
  304. package/dist/gui/transformCalculations.js +1 -2
  305. package/dist/gui/transformCalculations.js.map +1 -1
  306. package/dist/gui/transformUtils.js +1 -1
  307. package/dist/gui/transformUtils.js.map +1 -1
  308. package/dist/gui/tree/EFTree.d.ts +4 -6
  309. package/dist/gui/tree/EFTree.js +3 -4
  310. package/dist/gui/tree/EFTree.js.map +1 -1
  311. package/dist/gui/tree/EFTreeItem.d.ts +4 -5
  312. package/dist/gui/tree/EFTreeItem.js +3 -4
  313. package/dist/gui/tree/EFTreeItem.js.map +1 -1
  314. package/dist/gui/tree/treeContext.d.ts +0 -1
  315. package/dist/gui/tree/treeContext.js +1 -2
  316. package/dist/gui/tree/treeContext.js.map +1 -1
  317. package/dist/index.d.ts +0 -2
  318. package/dist/index.js +1 -2
  319. package/dist/index.js.map +1 -1
  320. package/dist/node.js +1 -2
  321. package/dist/node_modules/lit-html/development/directives/ref.d.ts +14 -0
  322. package/dist/node_modules/lit-html/development/lit-html.d.ts +46 -0
  323. package/dist/otel/BridgeSpanExporter.js +1 -2
  324. package/dist/otel/BridgeSpanExporter.js.map +1 -1
  325. package/dist/otel/setupBrowserTracing.js +1 -2
  326. package/dist/otel/setupBrowserTracing.js.map +1 -1
  327. package/dist/otel/tracingHelpers.d.ts +0 -2
  328. package/dist/otel/tracingHelpers.js +1 -2
  329. package/dist/otel/tracingHelpers.js.map +1 -1
  330. package/dist/preview/AdaptiveResolutionTracker.js +11 -2
  331. package/dist/preview/AdaptiveResolutionTracker.js.map +1 -1
  332. package/dist/preview/FrameController.d.ts +0 -1
  333. package/dist/preview/FrameController.js +2 -32
  334. package/dist/preview/FrameController.js.map +1 -1
  335. package/dist/preview/QualityUpgradeScheduler.js +1 -1
  336. package/dist/preview/QualityUpgradeScheduler.js.map +1 -1
  337. package/dist/preview/RenderContext.d.ts +0 -1
  338. package/dist/preview/RenderContext.js +11 -2
  339. package/dist/preview/RenderContext.js.map +1 -1
  340. package/dist/preview/RenderProfiler.js +1 -1
  341. package/dist/preview/RenderProfiler.js.map +1 -1
  342. package/dist/preview/RenderStats.js +1 -1
  343. package/dist/preview/RenderStats.js.map +1 -1
  344. package/dist/preview/encoding/canvasEncoder.js +7 -2
  345. package/dist/preview/encoding/canvasEncoder.js.map +1 -1
  346. package/dist/preview/encoding/mainThreadEncoder.js +1 -1
  347. package/dist/preview/encoding/mainThreadEncoder.js.map +1 -1
  348. package/dist/preview/encoding/workerEncoder.js +1 -1
  349. package/dist/preview/encoding/workerEncoder.js.map +1 -1
  350. package/dist/preview/logger.js +1 -1
  351. package/dist/preview/logger.js.map +1 -1
  352. package/dist/preview/previewSettings.js +1 -1
  353. package/dist/preview/previewSettings.js.map +1 -1
  354. package/dist/preview/previewTypes.js +1 -1
  355. package/dist/preview/previewTypes.js.map +1 -1
  356. package/dist/preview/renderElementToCanvas.d.ts +0 -1
  357. package/dist/preview/renderElementToCanvas.js +12 -5
  358. package/dist/preview/renderElementToCanvas.js.map +1 -1
  359. package/dist/preview/renderTimegroupToCanvas.d.ts +0 -1
  360. package/dist/preview/renderTimegroupToCanvas.js +6 -7
  361. package/dist/preview/renderTimegroupToCanvas.js.map +1 -1
  362. package/dist/preview/renderTimegroupToVideo.d.ts +0 -1
  363. package/dist/preview/renderTimegroupToVideo.js +20 -8
  364. package/dist/preview/renderTimegroupToVideo.js.map +1 -1
  365. package/dist/preview/renderVideoToVideo.js +11 -2
  366. package/dist/preview/renderVideoToVideo.js.map +1 -1
  367. package/dist/preview/renderers.d.ts +0 -1
  368. package/dist/preview/renderers.js +5 -2
  369. package/dist/preview/renderers.js.map +1 -1
  370. package/dist/preview/rendering/ScaleConfig.js +2 -3
  371. package/dist/preview/rendering/ScaleConfig.js.map +1 -1
  372. package/dist/preview/rendering/inlineImages.d.ts +0 -1
  373. package/dist/preview/rendering/inlineImages.js +1 -1
  374. package/dist/preview/rendering/inlineImages.js.map +1 -1
  375. package/dist/preview/rendering/loadImage.js +1 -2
  376. package/dist/preview/rendering/loadImage.js.map +1 -1
  377. package/dist/preview/rendering/renderToImageNative.js +4 -5
  378. package/dist/preview/rendering/renderToImageNative.js.map +1 -1
  379. package/dist/preview/rendering/serializeTimelineDirect.js +16 -4
  380. package/dist/preview/rendering/serializeTimelineDirect.js.map +1 -1
  381. package/dist/preview/statsTrackingStrategy.js +1 -1
  382. package/dist/preview/statsTrackingStrategy.js.map +1 -1
  383. package/dist/preview/workers/WorkerPool.js +5 -2
  384. package/dist/preview/workers/WorkerPool.js.map +1 -1
  385. package/dist/preview/workers/encoderWorkerInline.js +1 -1
  386. package/dist/preview/workers/encoderWorkerInline.js.map +1 -1
  387. package/dist/render/EFRenderAPI.d.ts +0 -1
  388. package/dist/render/EFRenderAPI.js +1 -2
  389. package/dist/render/EFRenderAPI.js.map +1 -1
  390. package/dist/render/getRenderData.js +1 -1
  391. package/dist/render/getRenderData.js.map +1 -1
  392. package/dist/transcoding/cache/RequestDeduplicator.js +1 -1
  393. package/dist/transcoding/cache/RequestDeduplicator.js.map +1 -1
  394. package/dist/transcoding/cache/URLTokenDeduplicator.js +1 -1
  395. package/dist/transcoding/cache/URLTokenDeduplicator.js.map +1 -1
  396. package/dist/transcoding/types/index.d.ts +0 -1
  397. package/dist/transcoding/utils/UrlGenerator.js +1 -1
  398. package/dist/transcoding/utils/UrlGenerator.js.map +1 -1
  399. package/dist/utils/LRUCache.js +1 -1
  400. package/dist/utils/LRUCache.js.map +1 -1
  401. package/dist/utils/frameTime.js +2 -9
  402. package/dist/utils/frameTime.js.map +1 -1
  403. package/dist/version.js +2 -2
  404. package/dist/version.js.map +1 -1
  405. package/package.json +5 -4
@@ -1 +1 @@
1
- {"version":3,"file":"TWMixin.js","names":[],"sources":["../../src/gui/TWMixin.css?inline"],"sourcesContent":["export default \"/* biome-ignore lint/suspicious/noUnknownAtRules: @tailwind is a valid Tailwind CSS directive */\\n*, ::before, ::after {\\n --tw-border-spacing-x: 0;\\n --tw-border-spacing-y: 0;\\n --tw-translate-x: 0;\\n --tw-translate-y: 0;\\n --tw-rotate: 0;\\n --tw-skew-x: 0;\\n --tw-skew-y: 0;\\n --tw-scale-x: 1;\\n --tw-scale-y: 1;\\n --tw-pan-x: ;\\n --tw-pan-y: ;\\n --tw-pinch-zoom: ;\\n --tw-scroll-snap-strictness: proximity;\\n --tw-gradient-from-position: ;\\n --tw-gradient-via-position: ;\\n --tw-gradient-to-position: ;\\n --tw-ordinal: ;\\n --tw-slashed-zero: ;\\n --tw-numeric-figure: ;\\n --tw-numeric-spacing: ;\\n --tw-numeric-fraction: ;\\n --tw-ring-inset: ;\\n --tw-ring-offset-width: 0px;\\n --tw-ring-offset-color: #fff;\\n --tw-ring-color: rgb(59 130 246 / 0.5);\\n --tw-ring-offset-shadow: 0 0 #0000;\\n --tw-ring-shadow: 0 0 #0000;\\n --tw-shadow: 0 0 #0000;\\n --tw-shadow-colored: 0 0 #0000;\\n --tw-blur: ;\\n --tw-brightness: ;\\n --tw-contrast: ;\\n --tw-grayscale: ;\\n --tw-hue-rotate: ;\\n --tw-invert: ;\\n --tw-saturate: ;\\n --tw-sepia: ;\\n --tw-drop-shadow: ;\\n --tw-backdrop-blur: ;\\n --tw-backdrop-brightness: ;\\n --tw-backdrop-contrast: ;\\n --tw-backdrop-grayscale: ;\\n --tw-backdrop-hue-rotate: ;\\n --tw-backdrop-invert: ;\\n --tw-backdrop-opacity: ;\\n --tw-backdrop-saturate: ;\\n --tw-backdrop-sepia: ;\\n --tw-contain-size: ;\\n --tw-contain-layout: ;\\n --tw-contain-paint: ;\\n --tw-contain-style: ;\\n}\\n::backdrop {\\n --tw-border-spacing-x: 0;\\n --tw-border-spacing-y: 0;\\n --tw-translate-x: 0;\\n --tw-translate-y: 0;\\n --tw-rotate: 0;\\n --tw-skew-x: 0;\\n --tw-skew-y: 0;\\n --tw-scale-x: 1;\\n --tw-scale-y: 1;\\n --tw-pan-x: ;\\n --tw-pan-y: ;\\n --tw-pinch-zoom: ;\\n --tw-scroll-snap-strictness: proximity;\\n --tw-gradient-from-position: ;\\n --tw-gradient-via-position: ;\\n --tw-gradient-to-position: ;\\n --tw-ordinal: ;\\n --tw-slashed-zero: ;\\n --tw-numeric-figure: ;\\n --tw-numeric-spacing: ;\\n --tw-numeric-fraction: ;\\n --tw-ring-inset: ;\\n --tw-ring-offset-width: 0px;\\n --tw-ring-offset-color: #fff;\\n --tw-ring-color: rgb(59 130 246 / 0.5);\\n --tw-ring-offset-shadow: 0 0 #0000;\\n --tw-ring-shadow: 0 0 #0000;\\n --tw-shadow: 0 0 #0000;\\n --tw-shadow-colored: 0 0 #0000;\\n --tw-blur: ;\\n --tw-brightness: ;\\n --tw-contrast: ;\\n --tw-grayscale: ;\\n --tw-hue-rotate: ;\\n --tw-invert: ;\\n --tw-saturate: ;\\n --tw-sepia: ;\\n --tw-drop-shadow: ;\\n --tw-backdrop-blur: ;\\n --tw-backdrop-brightness: ;\\n --tw-backdrop-contrast: ;\\n --tw-backdrop-grayscale: ;\\n --tw-backdrop-hue-rotate: ;\\n --tw-backdrop-invert: ;\\n --tw-backdrop-opacity: ;\\n --tw-backdrop-saturate: ;\\n --tw-backdrop-sepia: ;\\n --tw-contain-size: ;\\n --tw-contain-layout: ;\\n --tw-contain-paint: ;\\n --tw-contain-style: ;\\n}\\n/* ! tailwindcss v3.4.18 | MIT License | https://tailwindcss.com */\\n/*\\n1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)\\n2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)\\n*/\\n*,\\n::before,\\n::after {\\n box-sizing: border-box; /* 1 */\\n border-width: 0; /* 2 */\\n border-style: solid; /* 2 */\\n border-color: #e5e7eb; /* 2 */\\n}\\n::before,\\n::after {\\n --tw-content: '';\\n}\\n/*\\n1. Use a consistent sensible line-height in all browsers.\\n2. Prevent adjustments of font size after orientation changes in iOS.\\n3. Use a more readable tab size.\\n4. Use the user's configured `sans` font-family by default.\\n5. Use the user's configured `sans` font-feature-settings by default.\\n6. Use the user's configured `sans` font-variation-settings by default.\\n7. Disable tap highlights on iOS\\n*/\\nhtml,\\n:host {\\n line-height: 1.5; /* 1 */\\n -webkit-text-size-adjust: 100%; /* 2 */\\n -moz-tab-size: 4; /* 3 */\\n -o-tab-size: 4;\\n tab-size: 4; /* 3 */\\n font-family: ui-sans-serif, system-ui, sans-serif, \\\"Apple Color Emoji\\\", \\\"Segoe UI Emoji\\\", \\\"Segoe UI Symbol\\\", \\\"Noto Color Emoji\\\"; /* 4 */\\n font-feature-settings: normal; /* 5 */\\n font-variation-settings: normal; /* 6 */\\n -webkit-tap-highlight-color: transparent; /* 7 */\\n}\\n/*\\n1. Remove the margin in all browsers.\\n2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.\\n*/\\nbody {\\n margin: 0; /* 1 */\\n line-height: inherit; /* 2 */\\n}\\n/*\\n1. Add the correct height in Firefox.\\n2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)\\n3. Ensure horizontal rules are visible by default.\\n*/\\nhr {\\n height: 0; /* 1 */\\n color: inherit; /* 2 */\\n border-top-width: 1px; /* 3 */\\n}\\n/*\\nAdd the correct text decoration in Chrome, Edge, and Safari.\\n*/\\nabbr:where([title]) {\\n -webkit-text-decoration: underline dotted;\\n text-decoration: underline dotted;\\n}\\n/*\\nRemove the default font size and weight for headings.\\n*/\\nh1,\\nh2,\\nh3,\\nh4,\\nh5,\\nh6 {\\n font-size: inherit;\\n font-weight: inherit;\\n}\\n/*\\nReset links to optimize for opt-in styling instead of opt-out.\\n*/\\na {\\n color: inherit;\\n text-decoration: inherit;\\n}\\n/*\\nAdd the correct font weight in Edge and Safari.\\n*/\\nb,\\nstrong {\\n font-weight: bolder;\\n}\\n/*\\n1. Use the user's configured `mono` font-family by default.\\n2. Use the user's configured `mono` font-feature-settings by default.\\n3. Use the user's configured `mono` font-variation-settings by default.\\n4. Correct the odd `em` font sizing in all browsers.\\n*/\\ncode,\\nkbd,\\nsamp,\\npre {\\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \\\"Liberation Mono\\\", \\\"Courier New\\\", monospace; /* 1 */\\n font-feature-settings: normal; /* 2 */\\n font-variation-settings: normal; /* 3 */\\n font-size: 1em; /* 4 */\\n}\\n/*\\nAdd the correct font size in all browsers.\\n*/\\nsmall {\\n font-size: 80%;\\n}\\n/*\\nPrevent `sub` and `sup` elements from affecting the line height in all browsers.\\n*/\\nsub,\\nsup {\\n font-size: 75%;\\n line-height: 0;\\n position: relative;\\n vertical-align: baseline;\\n}\\nsub {\\n bottom: -0.25em;\\n}\\nsup {\\n top: -0.5em;\\n}\\n/*\\n1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)\\n2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)\\n3. Remove gaps between table borders by default.\\n*/\\ntable {\\n text-indent: 0; /* 1 */\\n border-color: inherit; /* 2 */\\n border-collapse: collapse; /* 3 */\\n}\\n/*\\n1. Change the font styles in all browsers.\\n2. Remove the margin in Firefox and Safari.\\n3. Remove default padding in all browsers.\\n*/\\nbutton,\\ninput,\\noptgroup,\\nselect,\\ntextarea {\\n font-family: inherit; /* 1 */\\n font-feature-settings: inherit; /* 1 */\\n font-variation-settings: inherit; /* 1 */\\n font-size: 100%; /* 1 */\\n font-weight: inherit; /* 1 */\\n line-height: inherit; /* 1 */\\n letter-spacing: inherit; /* 1 */\\n color: inherit; /* 1 */\\n margin: 0; /* 2 */\\n padding: 0; /* 3 */\\n}\\n/*\\nRemove the inheritance of text transform in Edge and Firefox.\\n*/\\nbutton,\\nselect {\\n text-transform: none;\\n}\\n/*\\n1. Correct the inability to style clickable types in iOS and Safari.\\n2. Remove default button styles.\\n*/\\nbutton,\\ninput:where([type='button']),\\ninput:where([type='reset']),\\ninput:where([type='submit']) {\\n -webkit-appearance: button; /* 1 */\\n background-color: transparent; /* 2 */\\n background-image: none; /* 2 */\\n}\\n/*\\nUse the modern Firefox focus style for all focusable elements.\\n*/\\n:-moz-focusring {\\n outline: auto;\\n}\\n/*\\nRemove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)\\n*/\\n:-moz-ui-invalid {\\n box-shadow: none;\\n}\\n/*\\nAdd the correct vertical alignment in Chrome and Firefox.\\n*/\\nprogress {\\n vertical-align: baseline;\\n}\\n/*\\nCorrect the cursor style of increment and decrement buttons in Safari.\\n*/\\n::-webkit-inner-spin-button,\\n::-webkit-outer-spin-button {\\n height: auto;\\n}\\n/*\\n1. Correct the odd appearance in Chrome and Safari.\\n2. Correct the outline style in Safari.\\n*/\\n[type='search'] {\\n -webkit-appearance: textfield; /* 1 */\\n outline-offset: -2px; /* 2 */\\n}\\n/*\\nRemove the inner padding in Chrome and Safari on macOS.\\n*/\\n::-webkit-search-decoration {\\n -webkit-appearance: none;\\n}\\n/*\\n1. Correct the inability to style clickable types in iOS and Safari.\\n2. Change font properties to `inherit` in Safari.\\n*/\\n::-webkit-file-upload-button {\\n -webkit-appearance: button; /* 1 */\\n font: inherit; /* 2 */\\n}\\n/*\\nAdd the correct display in Chrome and Safari.\\n*/\\nsummary {\\n display: list-item;\\n}\\n/*\\nRemoves the default spacing and border for appropriate elements.\\n*/\\nblockquote,\\ndl,\\ndd,\\nh1,\\nh2,\\nh3,\\nh4,\\nh5,\\nh6,\\nhr,\\nfigure,\\np,\\npre {\\n margin: 0;\\n}\\nfieldset {\\n margin: 0;\\n padding: 0;\\n}\\nlegend {\\n padding: 0;\\n}\\nol,\\nul,\\nmenu {\\n list-style: none;\\n margin: 0;\\n padding: 0;\\n}\\n/*\\nReset default styling for dialogs.\\n*/\\ndialog {\\n padding: 0;\\n}\\n/*\\nPrevent resizing textareas horizontally by default.\\n*/\\ntextarea {\\n resize: vertical;\\n}\\n/*\\n1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)\\n2. Set the default placeholder color to the user's configured gray 400 color.\\n*/\\ninput::-moz-placeholder, textarea::-moz-placeholder {\\n opacity: 1; /* 1 */\\n color: #9ca3af; /* 2 */\\n}\\ninput::placeholder,\\ntextarea::placeholder {\\n opacity: 1; /* 1 */\\n color: #9ca3af; /* 2 */\\n}\\n/*\\nSet the default cursor for buttons.\\n*/\\nbutton,\\n[role=\\\"button\\\"] {\\n cursor: pointer;\\n}\\n/*\\nMake sure disabled buttons don't get the pointer cursor.\\n*/\\n:disabled {\\n cursor: default;\\n}\\n/*\\n1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)\\n2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)\\n This can trigger a poorly considered lint error in some tools but is included by design.\\n*/\\nimg,\\nsvg,\\nvideo,\\ncanvas,\\naudio,\\niframe,\\nembed,\\nobject {\\n display: block; /* 1 */\\n vertical-align: middle; /* 2 */\\n}\\n/*\\nConstrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)\\n*/\\nimg,\\nvideo {\\n max-width: 100%;\\n height: auto;\\n}\\n/* Make elements with the HTML hidden attribute stay hidden by default */\\n[hidden]:where(:not([hidden=\\\"until-found\\\"])) {\\n display: none;\\n}\\n/* biome-ignore lint/suspicious/noUnknownAtRules: @tailwind is a valid Tailwind CSS directive */\\n.\\\\!container {\\n width: 100% !important;\\n}\\n.container {\\n width: 100%;\\n}\\n@media (min-width: 640px) {\\n .\\\\!container {\\n max-width: 640px !important;\\n }\\n .container {\\n max-width: 640px;\\n }\\n}\\n@media (min-width: 768px) {\\n .\\\\!container {\\n max-width: 768px !important;\\n }\\n .container {\\n max-width: 768px;\\n }\\n}\\n@media (min-width: 1024px) {\\n .\\\\!container {\\n max-width: 1024px !important;\\n }\\n .container {\\n max-width: 1024px;\\n }\\n}\\n@media (min-width: 1280px) {\\n .\\\\!container {\\n max-width: 1280px !important;\\n }\\n .container {\\n max-width: 1280px;\\n }\\n}\\n@media (min-width: 1536px) {\\n .\\\\!container {\\n max-width: 1536px !important;\\n }\\n .container {\\n max-width: 1536px;\\n }\\n}\\n/* biome-ignore lint/suspicious/noUnknownAtRules: @tailwind is a valid Tailwind CSS directive */\\n.visible {\\n visibility: visible;\\n}\\n.invisible {\\n visibility: hidden;\\n}\\n.collapse {\\n visibility: collapse;\\n}\\n.static {\\n position: static;\\n}\\n.fixed {\\n position: fixed;\\n}\\n.absolute {\\n position: absolute;\\n}\\n.relative {\\n position: relative;\\n}\\n.sticky {\\n position: sticky;\\n}\\n.inset-0 {\\n inset: 0px;\\n}\\n.left-0 {\\n left: 0px;\\n}\\n.right-0 {\\n right: 0px;\\n}\\n.top-0 {\\n top: 0px;\\n}\\n.top-8 {\\n top: 2rem;\\n}\\n.isolate {\\n isolation: isolate;\\n}\\n.z-\\\\[5\\\\] {\\n z-index: 5;\\n}\\n.mb-0 {\\n margin-bottom: 0px;\\n}\\n.mb-\\\\[1px\\\\] {\\n margin-bottom: 1px;\\n}\\n.block {\\n display: block;\\n}\\n.inline-block {\\n display: inline-block;\\n}\\n.inline {\\n display: inline;\\n}\\n.flex {\\n display: flex;\\n}\\n.inline-flex {\\n display: inline-flex;\\n}\\n.table {\\n display: table;\\n}\\n.grid {\\n display: grid;\\n}\\n.inline-grid {\\n display: inline-grid;\\n}\\n.contents {\\n display: contents;\\n}\\n.hidden {\\n display: none;\\n}\\n.size-full {\\n width: 100%;\\n height: 100%;\\n}\\n.h-\\\\[1\\\\.1rem\\\\] {\\n height: 1.1rem;\\n}\\n.h-\\\\[1080px\\\\] {\\n height: 1080px;\\n}\\n.h-\\\\[500px\\\\] {\\n height: 500px;\\n}\\n.h-\\\\[5px\\\\] {\\n height: 5px;\\n}\\n.h-\\\\[calc\\\\(50vh-4rem\\\\)\\\\] {\\n height: calc(50vh - 4rem);\\n}\\n.h-full {\\n height: 100%;\\n}\\n.w-1 {\\n width: 0.25rem;\\n}\\n.w-\\\\[1000px\\\\] {\\n width: 1000px;\\n}\\n.w-\\\\[1920px\\\\] {\\n width: 1920px;\\n}\\n.w-\\\\[420px\\\\] {\\n width: 420px;\\n}\\n.w-full {\\n width: 100%;\\n}\\n.flex-1 {\\n flex: 1 1 0%;\\n}\\n.flex-shrink {\\n flex-shrink: 1;\\n}\\n.shrink {\\n flex-shrink: 1;\\n}\\n.grow {\\n flex-grow: 1;\\n}\\n.\\\\!transform {\\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) !important;\\n}\\n.transform {\\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\\n}\\n.resize {\\n resize: both;\\n}\\n.flex-wrap {\\n flex-wrap: wrap;\\n}\\n.items-center {\\n align-items: center;\\n}\\n.overflow-hidden {\\n overflow: hidden;\\n}\\n.overflow-visible {\\n overflow: visible;\\n}\\n.whitespace-nowrap {\\n white-space: nowrap;\\n}\\n.text-nowrap {\\n text-wrap: nowrap;\\n}\\n.rounded {\\n border-radius: 0.25rem;\\n}\\n.border {\\n border-width: 1px;\\n}\\n.bg-slate-500 {\\n --tw-bg-opacity: 1;\\n background-color: rgb(100 116 139 / var(--tw-bg-opacity, 1));\\n}\\n.object-cover {\\n -o-object-fit: cover;\\n object-fit: cover;\\n}\\n.px-0\\\\.5 {\\n padding-left: 0.125rem;\\n padding-right: 0.125rem;\\n}\\n.text-center {\\n text-align: center;\\n}\\n.text-3xl {\\n font-size: 1.875rem;\\n line-height: 2.25rem;\\n}\\n.text-\\\\[8px\\\\] {\\n font-size: 8px;\\n}\\n.text-sm {\\n font-size: 0.875rem;\\n line-height: 1.25rem;\\n}\\n.text-xs {\\n font-size: 0.75rem;\\n line-height: 1rem;\\n}\\n.font-bold {\\n font-weight: 700;\\n}\\n.uppercase {\\n text-transform: uppercase;\\n}\\n.capitalize {\\n text-transform: capitalize;\\n}\\n.italic {\\n font-style: italic;\\n}\\n.text-white {\\n --tw-text-opacity: 1;\\n color: rgb(255 255 255 / var(--tw-text-opacity, 1));\\n}\\n.opacity-50 {\\n opacity: 0.5;\\n}\\n.shadow {\\n --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);\\n --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);\\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\\n}\\n.outline {\\n outline-style: solid;\\n}\\n.blur {\\n --tw-blur: blur(8px);\\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\\n}\\n.grayscale {\\n --tw-grayscale: grayscale(100%);\\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\\n}\\n.invert {\\n --tw-invert: invert(100%);\\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\\n}\\n.filter {\\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\\n}\\n.backdrop-filter {\\n backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);\\n}\\n.transition {\\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;\\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\\n transition-duration: 150ms;\\n}\\n.ease-in {\\n transition-timing-function: cubic-bezier(0.4, 0, 1, 1);\\n}\\n.ease-in-out {\\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\\n}\\n.ease-out {\\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\\n}\\n\""],"mappings":";AAAA,sBAAe"}
1
+ {"version":3,"file":"TWMixin.js","names":[],"sources":["../../src/gui/TWMixin.css?inline"],"mappings":";AAAA,IAAA,kBAAe"}
@@ -1,5 +1,4 @@
1
1
  import TWMixin_default from "./TWMixin.js";
2
-
3
2
  //#region src/gui/TWMixin.ts
4
3
  let twSheet = null;
5
4
  if (typeof window !== "undefined" && typeof CSSStyleSheet !== "undefined") try {
@@ -30,7 +29,7 @@ function TWMixin(Base) {
30
29
  }
31
30
  return TWElement;
32
31
  }
33
-
34
32
  //#endregion
35
33
  export { TWMixin };
34
+
36
35
  //# sourceMappingURL=TWMixin2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TWMixin2.js","names":["twSheet: CSSStyleSheet | null","twStyle","constructorStylesheets: CSSStyleSheet[]"],"sources":["../../src/gui/TWMixin.ts"],"sourcesContent":["import type { CSSResult, LitElement } from \"lit\";\n// @ts-expect-error cannot figure out how to declare this module as a string\nimport twStyle from \"./TWMixin.css?inline\";\n\nlet twSheet: CSSStyleSheet | null = null;\nif (typeof window !== \"undefined\" && typeof CSSStyleSheet !== \"undefined\") {\n try {\n twSheet = new CSSStyleSheet();\n if (typeof twSheet.replaceSync === \"function\") {\n twSheet.replaceSync(twStyle);\n }\n } catch (_error) {\n // CSSStyleSheet or replaceSync not supported in this environment\n twSheet = null;\n }\n}\nexport function TWMixin<T extends new (...args: any[]) => LitElement>(Base: T) {\n class TWElement extends Base {\n createRenderRoot() {\n const renderRoot = super.createRenderRoot();\n if (!(renderRoot instanceof ShadowRoot)) {\n throw new Error(\"TWMixin can only be applied to elements with shadow roots\");\n }\n if (!twSheet) {\n throw new Error(\n \"twSheet not found. Probable cause: CSSStyleSheet not supported in this environment\",\n );\n }\n\n const constructorStylesheets: CSSStyleSheet[] = [];\n const constructorStyles = ((\"styles\" in this.constructor && this.constructor.styles) || []) as\n | CSSResult\n | CSSResult[];\n\n if (Array.isArray(constructorStyles)) {\n for (const item of constructorStyles) {\n if (item.styleSheet) {\n constructorStylesheets.push(item.styleSheet);\n }\n }\n } else if (constructorStyles.styleSheet) {\n constructorStylesheets.push(constructorStyles.styleSheet);\n }\n\n if (renderRoot?.adoptedStyleSheets) {\n renderRoot.adoptedStyleSheets = [\n twSheet,\n ...renderRoot.adoptedStyleSheets,\n ...constructorStylesheets,\n ];\n } else {\n renderRoot.adoptedStyleSheets = [twSheet, ...constructorStylesheets];\n }\n return renderRoot;\n }\n }\n\n return TWElement as T;\n}\n"],"mappings":";;;AAIA,IAAIA,UAAgC;AACpC,IAAI,OAAO,WAAW,eAAe,OAAO,kBAAkB,YAC5D,KAAI;AACF,WAAU,IAAI,eAAe;AAC7B,KAAI,OAAO,QAAQ,gBAAgB,WACjC,SAAQ,YAAYC,gBAAQ;SAEvB,QAAQ;AAEf,WAAU;;AAGd,SAAgB,QAAsD,MAAS;CAC7E,MAAM,kBAAkB,KAAK;EAC3B,mBAAmB;GACjB,MAAM,aAAa,MAAM,kBAAkB;AAC3C,OAAI,EAAE,sBAAsB,YAC1B,OAAM,IAAI,MAAM,4DAA4D;AAE9E,OAAI,CAAC,QACH,OAAM,IAAI,MACR,qFACD;GAGH,MAAMC,yBAA0C,EAAE;GAClD,MAAM,oBAAsB,YAAY,KAAK,eAAe,KAAK,YAAY,UAAW,EAAE;AAI1F,OAAI,MAAM,QAAQ,kBAAkB,EAClC;SAAK,MAAM,QAAQ,kBACjB,KAAI,KAAK,WACP,wBAAuB,KAAK,KAAK,WAAW;cAGvC,kBAAkB,WAC3B,wBAAuB,KAAK,kBAAkB,WAAW;AAG3D,OAAI,YAAY,mBACd,YAAW,qBAAqB;IAC9B;IACA,GAAG,WAAW;IACd,GAAG;IACJ;OAED,YAAW,qBAAqB,CAAC,SAAS,GAAG,uBAAuB;AAEtE,UAAO;;;AAIX,QAAO"}
1
+ {"version":3,"file":"TWMixin2.js","names":["twStyle"],"sources":["../../src/gui/TWMixin.ts"],"mappings":";;AAIA,IAAI,UAAgC;AACpC,IAAI,OAAO,WAAW,eAAe,OAAO,kBAAkB,YAC5D,KAAI;AACF,WAAU,IAAI,eAAe;AAC7B,KAAI,OAAO,QAAQ,gBAAgB,WACjC,SAAQ,YAAYA,gBAAQ;SAEvB,QAAQ;AAEf,WAAU;;AAGd,SAAgB,QAAsD,MAAS;CAC7E,MAAM,kBAAkB,KAAK;EAC3B,mBAAmB;GACjB,MAAM,aAAa,MAAM,kBAAkB;AAC3C,OAAI,EAAE,sBAAsB,YAC1B,OAAM,IAAI,MAAM,4DAA4D;AAE9E,OAAI,CAAC,QACH,OAAM,IAAI,MACR,qFACD;GAGH,MAAM,yBAA0C,EAAE;GAClD,MAAM,oBAAsB,YAAY,KAAK,eAAe,KAAK,YAAY,UAAW,EAAE;AAI1F,OAAI,MAAM,QAAQ,kBAAkB;SAC7B,MAAM,QAAQ,kBACjB,KAAI,KAAK,WACP,wBAAuB,KAAK,KAAK,WAAW;cAGvC,kBAAkB,WAC3B,wBAAuB,KAAK,kBAAkB,WAAW;AAG3D,OAAI,YAAY,mBACd,YAAW,qBAAqB;IAC9B;IACA,GAAG,WAAW;IACd,GAAG;IACJ;OAED,YAAW,qBAAqB,CAAC,SAAS,GAAG,uBAAuB;AAEtE,UAAO;;;AAIX,QAAO"}
@@ -1,13 +1,12 @@
1
1
  import { currentTimeContext } from "./currentTimeContext.js";
2
2
  import { durationContext } from "./durationContext.js";
3
3
  import { loopContext, playingContext } from "./playingContext.js";
4
- import { __decorate } from "../_virtual/_@oxc-project_runtime@0.95.0/helpers/decorate.js";
4
+ import { __decorate } from "../_virtual/_@oxc-project_runtime@0.122.0/helpers/decorate.js";
5
5
  import { isEFTemporal } from "../elements/EFTemporal.js";
6
6
  import { TargetController } from "../elements/TargetController.js";
7
7
  import { createDirectTemporalSubscription, determineTargetType, isControllable } from "./Controllable.js";
8
8
  import { consume } from "@lit/context";
9
9
  import { property, state } from "lit/decorators.js";
10
-
11
10
  //#region src/gui/TargetOrContextMixin.ts
12
11
  var ContextRequestEvent = class extends Event {
13
12
  constructor(context, contextTarget, callback, subscribe) {
@@ -134,7 +133,7 @@ function TargetOrContextMixin(superClass, contextToProxy) {
134
133
  })], TargetOrContextClass.prototype, "contextFromParent", void 0);
135
134
  return TargetOrContextClass;
136
135
  }
137
-
138
136
  //#endregion
139
137
  export { TargetOrContextMixin };
138
+
140
139
  //# sourceMappingURL=TargetOrContextMixin.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TargetOrContextMixin.js","names":["#targetController","#contextRequestHandler","#contextUnsubscribe","#additionalContextUnsubscribes","#directTemporalSubscription","#unsubscribeAll","#tryDirectTemporalSubscription","additionalContexts: Array<[Context<any, any>, string]>","#subscribeToTargetContext"],"sources":["../../src/gui/TargetOrContextMixin.ts"],"sourcesContent":["import { type Context, consume } from \"@lit/context\";\nimport type { LitElement } from \"lit\";\nimport { property, state } from \"lit/decorators.js\";\nimport { isEFTemporal, type TemporalMixinInterface } from \"../elements/EFTemporal.js\";\nimport { TargetController } from \"../elements/TargetController.js\";\nimport {\n type ControllableInterface,\n type ControllableSubscription,\n isControllable,\n determineTargetType,\n createDirectTemporalSubscription,\n} from \"./Controllable.js\";\nimport { currentTimeContext } from \"./currentTimeContext.js\";\nimport { durationContext } from \"./durationContext.js\";\nimport { loopContext, playingContext } from \"./playingContext.js\";\n\ntype Constructor<T = {}> = new (...args: any[]) => T;\n\nclass ContextRequestEvent extends Event {\n context: Context<any, any>;\n contextTarget: Element;\n callback: (value: any, unsubscribe: () => void) => void;\n subscribe: boolean;\n\n constructor(\n context: Context<any, any>,\n contextTarget: Element,\n callback: (value: any, unsubscribe: () => void) => void,\n subscribe: boolean,\n ) {\n super(\"context-request\", { bubbles: true, composed: true });\n this.context = context;\n this.contextTarget = contextTarget;\n this.callback = callback;\n this.subscribe = subscribe ?? false;\n }\n}\n\nexport function TargetOrContextMixin<T extends Constructor<LitElement>>(\n superClass: T,\n contextToProxy: Context<any, any>,\n) {\n class TargetOrContextClass extends superClass {\n @property({ type: String })\n target = \"\";\n\n @state()\n targetElement: ControllableInterface | null = null;\n\n // @ts-expect-error contextToProxy is generic but provides ControllableInterface at runtime\n @consume({ context: contextToProxy, subscribe: true })\n contextFromParent: ControllableInterface | null = null;\n\n #targetController?: TargetController;\n #contextUnsubscribe?: () => void;\n #contextRequestHandler?: (event: Event) => void;\n #additionalContextUnsubscribes = new Map<Context<any, any>, () => void>();\n #directTemporalSubscription?: ControllableSubscription;\n\n get effectiveContext(): ControllableInterface | null {\n return this.targetElement ?? this.contextFromParent;\n }\n\n connectedCallback() {\n super.connectedCallback();\n if (this.target) {\n this.#targetController = new TargetController(\n this as any as LitElement & {\n targetElement: Element | null;\n target: string;\n },\n );\n }\n\n // Intercept context-request events and redirect them to targetElement\n this.#contextRequestHandler = (event: Event) => {\n if (this.targetElement && event.type === \"context-request\") {\n event.stopPropagation();\n this.targetElement.dispatchEvent(new (event.constructor as any)(event.type, event));\n }\n };\n this.addEventListener(\"context-request\", this.#contextRequestHandler, true);\n }\n\n #unsubscribeAll() {\n this.#contextUnsubscribe?.();\n this.#contextUnsubscribe = undefined;\n for (const unsubscribe of this.#additionalContextUnsubscribes.values()) {\n unsubscribe();\n }\n this.#additionalContextUnsubscribes.clear();\n this.#directTemporalSubscription?.unsubscribe();\n this.#directTemporalSubscription = undefined;\n }\n\n #tryDirectTemporalSubscription(): boolean {\n if (!this.targetElement) return false;\n\n const targetType = determineTargetType(this.targetElement);\n if (targetType !== \"direct-temporal\") return false;\n\n this.#directTemporalSubscription = createDirectTemporalSubscription(\n this.targetElement as unknown as TemporalMixinInterface & HTMLElement,\n {\n onPlayingChange: (value) => {\n (this as any).playing = value;\n },\n onLoopChange: (value) => {\n if (\"loop\" in this) (this as any).loop = value;\n },\n onCurrentTimeMsChange: (value) => {\n if (\"currentTimeMs\" in this) (this as any).currentTimeMs = value;\n },\n onDurationMsChange: (value) => {\n if (\"durationMs\" in this) (this as any).durationMs = value;\n },\n onTargetTemporalChange: () => {},\n },\n );\n return true;\n }\n\n #subscribeToTargetContext() {\n if (!this.targetElement) return;\n\n this.#unsubscribeAll();\n\n if (this.#tryDirectTemporalSubscription()) return;\n\n // Temporal target without PlaybackController yet — wait for initialization\n if (isEFTemporal(this.targetElement)) {\n const target = this.targetElement as unknown as TemporalMixinInterface & HTMLElement;\n target.updateComplete.then(() => {\n if ((this.targetElement as unknown) !== target) return;\n if (!this.#tryDirectTemporalSubscription()) {\n // Still not ready — one more cycle (PlaybackController created in updateComplete.then)\n target.updateComplete.then(() => {\n if ((this.targetElement as unknown) !== target) return;\n this.#tryDirectTemporalSubscription();\n });\n }\n });\n return;\n }\n\n // Context-provider path (EFPreview, etc.)\n const event = new ContextRequestEvent(\n contextToProxy,\n this,\n (value, unsubscribe) => {\n (this as any).contextFromParent = value;\n this.#contextUnsubscribe = unsubscribe;\n },\n true,\n );\n this.targetElement.dispatchEvent(event);\n\n const additionalContexts: Array<[Context<any, any>, string]> = [\n [playingContext, \"playing\"],\n [loopContext, \"loop\"],\n [currentTimeContext, \"currentTimeMs\"],\n [durationContext, \"durationMs\"],\n ];\n\n for (const [context, propertyName] of additionalContexts) {\n const contextEvent = new ContextRequestEvent(\n context,\n this,\n (value, unsubscribe) => {\n if (propertyName in this) {\n (this as any)[propertyName] = value;\n }\n this.#additionalContextUnsubscribes.set(context, unsubscribe);\n },\n true,\n );\n this.targetElement.dispatchEvent(contextEvent);\n }\n }\n\n updated(changedProperties: Map<string | number | symbol, unknown>): void {\n super.updated?.(changedProperties);\n\n if (changedProperties.has(\"targetElement\") && this.targetElement) {\n if (isEFTemporal(this.targetElement) && !isControllable(this.targetElement)) {\n console.warn(\n \"Control element is targeting a non-root temporal element without playbackController. \" +\n \"Controls can only target root temporal elements (not nested within a timegroup). \" +\n \"Target element:\",\n this.targetElement,\n );\n }\n this.#subscribeToTargetContext();\n }\n\n if (changedProperties.has(\"target\")) {\n if (this.target && !this.#targetController) {\n this.#targetController = new TargetController(\n this as any as LitElement & {\n targetElement: Element | null;\n target: string;\n },\n );\n }\n }\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this.#unsubscribeAll();\n if (this.#contextRequestHandler) {\n this.removeEventListener(\"context-request\", this.#contextRequestHandler, true);\n }\n }\n }\n\n return TargetOrContextClass as Constructor<{\n target: string;\n targetElement: ControllableInterface | null;\n effectiveContext: ControllableInterface | null;\n }> &\n T;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"TargetOrContextMixin.js","names":["#targetController","#contextRequestHandler","#contextUnsubscribe","#additionalContextUnsubscribes","#directTemporalSubscription","#unsubscribeAll","#tryDirectTemporalSubscription","#subscribeToTargetContext"],"sources":["../../src/gui/TargetOrContextMixin.ts"],"mappings":";;;;;;;;;;AAkBA,IAAM,sBAAN,cAAkC,MAAM;CAMtC,YACE,SACA,eACA,UACA,WACA;AACA,QAAM,mBAAmB;GAAE,SAAS;GAAM,UAAU;GAAM,CAAC;AAC3D,OAAK,UAAU;AACf,OAAK,gBAAgB;AACrB,OAAK,WAAW;AAChB,OAAK,YAAY,aAAa;;;AAIlC,SAAgB,qBACd,YACA,gBACA;CACA,MAAM,6BAA6B,WAAW;;;iBAEnC;wBAGqC;4BAII;;EAElD;EACA;EACA;EACA,iDAAiC,IAAI,KAAoC;EACzE;EAEA,IAAI,mBAAiD;AACnD,UAAO,KAAK,iBAAiB,KAAK;;EAGpC,oBAAoB;AAClB,SAAM,mBAAmB;AACzB,OAAI,KAAK,OACP,OAAA,mBAAyB,IAAI,iBAC3B,KAID;AAIH,SAAA,yBAA+B,UAAiB;AAC9C,QAAI,KAAK,iBAAiB,MAAM,SAAS,mBAAmB;AAC1D,WAAM,iBAAiB;AACvB,UAAK,cAAc,cAAc,IAAK,MAAM,YAAoB,MAAM,MAAM,MAAM,CAAC;;;AAGvF,QAAK,iBAAiB,mBAAmB,MAAA,uBAA6B,KAAK;;EAG7E,kBAAkB;AAChB,SAAA,sBAA4B;AAC5B,SAAA,qBAA2B,KAAA;AAC3B,QAAK,MAAM,eAAe,MAAA,8BAAoC,QAAQ,CACpE,cAAa;AAEf,SAAA,8BAAoC,OAAO;AAC3C,SAAA,4BAAkC,aAAa;AAC/C,SAAA,6BAAmC,KAAA;;EAGrC,iCAA0C;AACxC,OAAI,CAAC,KAAK,cAAe,QAAO;AAGhC,OADmB,oBAAoB,KAAK,cAAc,KACvC,kBAAmB,QAAO;AAE7C,SAAA,6BAAmC,iCACjC,KAAK,eACL;IACE,kBAAkB,UAAU;AACzB,UAAa,UAAU;;IAE1B,eAAe,UAAU;AACvB,SAAI,UAAU,KAAO,MAAa,OAAO;;IAE3C,wBAAwB,UAAU;AAChC,SAAI,mBAAmB,KAAO,MAAa,gBAAgB;;IAE7D,qBAAqB,UAAU;AAC7B,SAAI,gBAAgB,KAAO,MAAa,aAAa;;IAEvD,8BAA8B;IAC/B,CACF;AACD,UAAO;;EAGT,4BAA4B;AAC1B,OAAI,CAAC,KAAK,cAAe;AAEzB,SAAA,gBAAsB;AAEtB,OAAI,MAAA,+BAAqC,CAAE;AAG3C,OAAI,aAAa,KAAK,cAAc,EAAE;IACpC,MAAM,SAAS,KAAK;AACpB,WAAO,eAAe,WAAW;AAC/B,SAAK,KAAK,kBAA8B,OAAQ;AAChD,SAAI,CAAC,MAAA,+BAAqC,CAExC,QAAO,eAAe,WAAW;AAC/B,UAAK,KAAK,kBAA8B,OAAQ;AAChD,YAAA,+BAAqC;OACrC;MAEJ;AACF;;GAIF,MAAM,QAAQ,IAAI,oBAChB,gBACA,OACC,OAAO,gBAAgB;AACrB,SAAa,oBAAoB;AAClC,UAAA,qBAA2B;MAE7B,KACD;AACD,QAAK,cAAc,cAAc,MAAM;GAEvC,MAAM,qBAAyD;IAC7D,CAAC,gBAAgB,UAAU;IAC3B,CAAC,aAAa,OAAO;IACrB,CAAC,oBAAoB,gBAAgB;IACrC,CAAC,iBAAiB,aAAa;IAChC;AAED,QAAK,MAAM,CAAC,SAAS,iBAAiB,oBAAoB;IACxD,MAAM,eAAe,IAAI,oBACvB,SACA,OACC,OAAO,gBAAgB;AACtB,SAAI,gBAAgB,KACjB,MAAa,gBAAgB;AAEhC,WAAA,8BAAoC,IAAI,SAAS,YAAY;OAE/D,KACD;AACD,SAAK,cAAc,cAAc,aAAa;;;EAIlD,QAAQ,mBAAiE;AACvE,SAAM,UAAU,kBAAkB;AAElC,OAAI,kBAAkB,IAAI,gBAAgB,IAAI,KAAK,eAAe;AAChE,QAAI,aAAa,KAAK,cAAc,IAAI,CAAC,eAAe,KAAK,cAAc,CACzE,SAAQ,KACN,yLAGA,KAAK,cACN;AAEH,UAAA,0BAAgC;;AAGlC,OAAI,kBAAkB,IAAI,SAAS;QAC7B,KAAK,UAAU,CAAC,MAAA,iBAClB,OAAA,mBAAyB,IAAI,iBAC3B,KAID;;;EAKP,uBAAuB;AACrB,SAAM,sBAAsB;AAC5B,SAAA,gBAAsB;AACtB,OAAI,MAAA,sBACF,MAAK,oBAAoB,mBAAmB,MAAA,uBAA6B,KAAK;;;aAxKjF,SAAS,EAAE,MAAM,QAAQ,CAAC,CAAA,EAAA,qBAAA,WAAA,UAAA,KAAA,EAAA;aAG1B,OAAO,CAAA,EAAA,qBAAA,WAAA,iBAAA,KAAA,EAAA;aAIP,QAAQ;EAAE,SAAS;EAAgB,WAAW;EAAM,CAAC,CAAA,EAAA,qBAAA,WAAA,qBAAA,KAAA,EAAA;AAsKxD,QAAO"}
@@ -1,8 +1,7 @@
1
1
  import { createContext } from "@lit/context";
2
-
3
2
  //#region src/gui/currentTimeContext.ts
4
3
  const currentTimeContext = createContext(Symbol("currentTimeMs"));
5
-
6
4
  //#endregion
7
5
  export { currentTimeContext };
6
+
8
7
  //# sourceMappingURL=currentTimeContext.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"currentTimeContext.js","names":[],"sources":["../../src/gui/currentTimeContext.ts"],"sourcesContent":["import { createContext } from \"@lit/context\";\n\nexport const currentTimeContext = createContext<number>(Symbol(\"currentTimeMs\"));\n"],"mappings":";;;AAEA,MAAa,qBAAqB,cAAsB,OAAO,gBAAgB,CAAC"}
1
+ {"version":3,"file":"currentTimeContext.js","names":[],"sources":["../../src/gui/currentTimeContext.ts"],"mappings":";;AAEA,MAAa,qBAAqB,cAAsB,OAAO,gBAAgB,CAAC"}
@@ -1,8 +1,7 @@
1
1
  import { createContext } from "@lit/context";
2
-
3
2
  //#region src/gui/durationContext.ts
4
3
  const durationContext = createContext(Symbol("durationMs"));
5
-
6
4
  //#endregion
7
5
  export { durationContext };
6
+
8
7
  //# sourceMappingURL=durationContext.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"durationContext.js","names":[],"sources":["../../src/gui/durationContext.ts"],"sourcesContent":["import { createContext } from \"@lit/context\";\n\nexport const durationContext = createContext<number>(Symbol(\"durationMs\"));\n"],"mappings":";;;AAEA,MAAa,kBAAkB,cAAsB,OAAO,aAAa,CAAC"}
1
+ {"version":3,"file":"durationContext.js","names":[],"sources":["../../src/gui/durationContext.ts"],"mappings":";;AAEA,MAAa,kBAAkB,cAAsB,OAAO,aAAa,CAAC"}
@@ -1,8 +1,7 @@
1
1
  import { createContext } from "@lit/context";
2
-
3
2
  //#region src/gui/efContext.ts
4
3
  const efContext = createContext(Symbol("efContext"));
5
-
6
4
  //#endregion
7
5
  export { efContext };
6
+
8
7
  //# sourceMappingURL=efContext.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"efContext.js","names":[],"sources":["../../src/gui/efContext.ts"],"sourcesContent":["import { createContext } from \"@lit/context\";\nimport type { ControllableInterface } from \"./Controllable.js\";\n\nexport const efContext = createContext<ControllableInterface | null>(Symbol(\"efContext\"));\n"],"mappings":";;;AAGA,MAAa,YAAY,cAA4C,OAAO,YAAY,CAAC"}
1
+ {"version":3,"file":"efContext.js","names":[],"sources":["../../src/gui/efContext.ts"],"mappings":";;AAGA,MAAa,YAAY,cAA4C,OAAO,YAAY,CAAC"}
@@ -1,8 +1,7 @@
1
1
  import { createContext } from "@lit/context";
2
-
3
2
  //#region src/gui/fetchContext.ts
4
3
  const fetchContext = createContext(Symbol("fetchContext"));
5
-
6
4
  //#endregion
7
5
  export { fetchContext };
6
+
8
7
  //# sourceMappingURL=fetchContext.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fetchContext.js","names":[],"sources":["../../src/gui/fetchContext.ts"],"sourcesContent":["import { createContext } from \"@lit/context\";\n\nexport const fetchContext = createContext<(url: string, init?: RequestInit) => Promise<Response>>(\n Symbol(\"fetchContext\"),\n);\n"],"mappings":";;;AAEA,MAAa,eAAe,cAC1B,OAAO,eAAe,CACvB"}
1
+ {"version":3,"file":"fetchContext.js","names":[],"sources":["../../src/gui/fetchContext.ts"],"mappings":";;AAEA,MAAa,eAAe,cAC1B,OAAO,eAAe,CACvB"}
@@ -1,8 +1,7 @@
1
1
  import { createContext } from "@lit/context";
2
-
3
2
  //#region src/gui/focusContext.ts
4
3
  const focusContext = createContext(Symbol("focusContext"));
5
-
6
4
  //#endregion
7
5
  export { focusContext };
6
+
8
7
  //# sourceMappingURL=focusContext.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"focusContext.js","names":[],"sources":["../../src/gui/focusContext.ts"],"sourcesContent":["import { createContext } from \"@lit/context\";\n\nexport interface FocusContext {\n focusedElement: HTMLElement | null;\n}\n\nexport const focusContext = createContext<FocusContext>(Symbol(\"focusContext\"));\n"],"mappings":";;;AAMA,MAAa,eAAe,cAA4B,OAAO,eAAe,CAAC"}
1
+ {"version":3,"file":"focusContext.js","names":[],"sources":["../../src/gui/focusContext.ts"],"mappings":";;AAMA,MAAa,eAAe,cAA4B,OAAO,eAAe,CAAC"}
@@ -1,8 +1,7 @@
1
1
  import { createContext } from "@lit/context";
2
-
3
2
  //#region src/gui/focusedElementContext.ts
4
3
  const focusedElementContext = createContext(Symbol("focusedElement"));
5
-
6
4
  //#endregion
7
5
  export { focusedElementContext };
6
+
8
7
  //# sourceMappingURL=focusedElementContext.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"focusedElementContext.js","names":[],"sources":["../../src/gui/focusedElementContext.ts"],"sourcesContent":["import { createContext } from \"@lit/context\";\n\nexport const focusedElementContext = createContext<HTMLElement | undefined>(\n Symbol(\"focusedElement\"),\n);\n"],"mappings":";;;AAEA,MAAa,wBAAwB,cACnC,OAAO,iBAAiB,CACzB"}
1
+ {"version":3,"file":"focusedElementContext.js","names":[],"sources":["../../src/gui/focusedElementContext.ts"],"mappings":";;AAEA,MAAa,wBAAwB,cACnC,OAAO,iBAAiB,CACzB"}
@@ -1,12 +1,12 @@
1
+ import { TemplateResult as TemplateResult$1 } from "../../node_modules/lit-html/development/lit-html.js";
1
2
  import { SelectionContext } from "../../canvas/selection/selectionContext.js";
2
- import * as lit11 from "lit";
3
+ import * as _$lit from "lit";
3
4
  import { LitElement, PropertyValues } from "lit";
4
- import * as lit_html11 from "lit-html";
5
5
 
6
6
  //#region src/gui/hierarchy/EFHierarchy.d.ts
7
7
  declare const EFHierarchy_base: typeof LitElement;
8
8
  declare class EFHierarchy extends EFHierarchy_base {
9
- static styles: lit11.CSSResult[];
9
+ static styles: _$lit.CSSResult[];
10
10
  target: string;
11
11
  header: string;
12
12
  showHeader: boolean;
@@ -53,7 +53,7 @@ declare class EFHierarchy extends EFHierarchy_base {
53
53
  private autoSelectFirstRootTimegroup;
54
54
  private setupSelectionListener;
55
55
  private removeSelectionListener;
56
- render(): lit_html11.TemplateResult<1>;
56
+ render(): TemplateResult$1<1>;
57
57
  }
58
58
  declare global {
59
59
  interface HTMLElementTagNameMap {
@@ -1,5 +1,5 @@
1
1
  import { TWMixin } from "../TWMixin2.js";
2
- import { __decorate } from "../../_virtual/_@oxc-project_runtime@0.95.0/helpers/decorate.js";
2
+ import { __decorate } from "../../_virtual/_@oxc-project_runtime@0.122.0/helpers/decorate.js";
3
3
  import { isEFTemporal } from "../../elements/EFTemporal.js";
4
4
  import { TargetController } from "../../elements/TargetController.js";
5
5
  import { selectionContext } from "../../canvas/selection/selectionContext.js";
@@ -8,9 +8,8 @@ import { renderHierarchyChildren } from "./EFHierarchyItem.js";
8
8
  import { consume, provide } from "@lit/context";
9
9
  import { LitElement, css, html, nothing } from "lit";
10
10
  import { customElement, property, state } from "lit/decorators.js";
11
-
12
11
  //#region src/gui/hierarchy/EFHierarchy.ts
13
- let EFHierarchy = class EFHierarchy$1 extends TWMixin(LitElement) {
12
+ let EFHierarchy = class EFHierarchy extends TWMixin(LitElement) {
14
13
  constructor(..._args) {
15
14
  super(..._args);
16
15
  this.target = "";
@@ -322,7 +321,7 @@ __decorate([consume({
322
321
  __decorate([state()], EFHierarchy.prototype, "hierarchyState", void 0);
323
322
  __decorate([provide({ context: hierarchyContext }), state()], EFHierarchy.prototype, "providedContext", void 0);
324
323
  EFHierarchy = __decorate([customElement("ef-hierarchy")], EFHierarchy);
325
-
326
324
  //#endregion
327
325
  export { EFHierarchy };
326
+
328
327
  //# sourceMappingURL=EFHierarchy.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EFHierarchy.js","names":["EFHierarchy","selectedId: string | null"],"sources":["../../../src/gui/hierarchy/EFHierarchy.ts"],"sourcesContent":["import { consume, provide } from \"@lit/context\";\nimport { css, html, LitElement, nothing, type PropertyValues } from \"lit\";\nimport { customElement, property, state } from \"lit/decorators.js\";\n\nimport { isEFTemporal } from \"../../elements/EFTemporal.js\";\nimport { selectionContext } from \"../../canvas/selection/selectionContext.js\";\nimport { TargetController } from \"../../elements/TargetController.js\";\nimport { TWMixin } from \"../TWMixin.js\";\nimport {\n type HierarchyActions,\n type HierarchyContext,\n type HierarchyState,\n hierarchyContext,\n} from \"./hierarchyContext.js\";\nimport { renderHierarchyChildren } from \"./EFHierarchyItem.js\";\nimport type { EFCanvas } from \"../../canvas/EFCanvas.js\";\n\n@customElement(\"ef-hierarchy\")\nexport class EFHierarchy extends TWMixin(LitElement) {\n static styles = [\n css`\n :host {\n display: block;\n overflow: auto;\n height: 100%;\n font-size: 12px;\n \n /* Component tokens (reference globals from ef-theme.css) */\n --hierarchy-bg: var(--ef-color-bg);\n --hierarchy-border: var(--ef-color-border);\n --hierarchy-text: var(--ef-color-text);\n --hierarchy-hover-bg: var(--ef-color-hover);\n --hierarchy-selected-bg: var(--ef-color-selected);\n --hierarchy-ancestor-selected-bg: var(--ef-color-selected-subtle);\n --hierarchy-focused-bg: var(--ef-color-focused);\n --hierarchy-drop-indicator: var(--ef-color-primary);\n }\n \n .hierarchy-container {\n background: var(--hierarchy-bg);\n color: var(--hierarchy-text);\n padding: 4px 0;\n }\n \n .header {\n padding: 8px 12px;\n font-weight: 600;\n font-size: 11px;\n text-transform: uppercase;\n letter-spacing: 0.05em;\n color: var(--ef-color-text-muted);\n border-bottom: 1px solid var(--hierarchy-border);\n margin-bottom: 4px;\n }\n \n .empty {\n padding: 16px;\n text-align: center;\n color: var(--ef-color-text-subtle);\n font-style: italic;\n }\n `,\n ];\n\n @property({ type: String })\n target = \"\";\n\n @property({ type: String })\n header = \"\";\n\n @property({ type: Boolean, attribute: \"show-header\" })\n showHeader = false;\n\n @property({ type: Array, attribute: false })\n hideSelectors?: string[];\n\n @property({ type: Array, attribute: false })\n showSelectors?: string[];\n\n @state()\n targetElement: Element | null = null;\n\n private targetController?: TargetController;\n\n @consume({ context: selectionContext, subscribe: true })\n canvasSelectionContext?: import(\"../../canvas/selection/selectionContext.js\").SelectionContext;\n\n /**\n * Get the target canvas element.\n * The canvas is the source of truth for selection and highlight state.\n */\n private getCanvas(): EFCanvas | null {\n // First try TargetController (for registered elements like EFCanvas)\n if (this.targetElement && (this.targetElement as any).selectionContext) {\n return this.targetElement as EFCanvas;\n }\n // Fall back to direct lookup for any element with matching ID\n if (this.target) {\n const target = document.getElementById(this.target);\n if (target && (target as any).selectionContext) {\n return target as EFCanvas;\n }\n }\n return null;\n }\n\n /**\n * Get canvas selection context from the target canvas element.\n * Used when hierarchy is a sibling of canvas (can't access via Lit context).\n */\n private getCanvasSelectionContext():\n | import(\"../../canvas/selection/selectionContext.js\").SelectionContext\n | undefined {\n // First try Lit context (works when hierarchy is inside canvas)\n if (this.canvasSelectionContext) {\n return this.canvasSelectionContext;\n }\n // Use target canvas\n const canvas = this.getCanvas();\n return canvas?.selectionContext;\n }\n\n /**\n * Get the currently highlighted element from the canvas.\n */\n getHighlightedElement(): HTMLElement | null {\n const canvas = this.getCanvas();\n return canvas?.highlightedElement ?? null;\n }\n\n /**\n * Set the highlighted element on the canvas.\n * Called when user hovers an item in the hierarchy.\n */\n setHighlightedElement(element: HTMLElement | null): void {\n const canvas = this.getCanvas();\n canvas?.setHighlightedElement(element);\n }\n\n @state()\n private hierarchyState: HierarchyState = {\n selectedElementId: null,\n expandedIds: new Set(),\n draggedElementId: null,\n dropTargetId: null,\n dropPosition: null,\n };\n\n private selectionChangeHandler?: (event: CustomEvent) => void;\n\n private hierarchyActions: HierarchyActions = {\n select: (elementId: string | null) => {\n const selectionCtx = this.getCanvasSelectionContext();\n if (selectionCtx) {\n if (elementId) {\n // Ensure element is registered with canvas before selecting\n const element = document.getElementById(elementId);\n if (element) {\n // Find the canvas element\n const canvas = element.closest(\"ef-canvas\") as any;\n if (canvas && canvas.tryRegisterElement) {\n // Try to register if not already registered\n canvas.tryRegisterElement(element);\n }\n }\n\n // Select the element directly by its ID\n selectionCtx.select(elementId);\n } else {\n selectionCtx.clear();\n }\n } else {\n this.hierarchyState = {\n ...this.hierarchyState,\n selectedElementId: elementId,\n };\n }\n this.dispatchEvent(\n new CustomEvent(\"hierarchy-select\", {\n detail: { elementId },\n bubbles: true,\n composed: true,\n }),\n );\n },\n\n toggleExpanded: (elementId: string) => {\n const newExpanded = new Set(this.hierarchyState.expandedIds);\n if (newExpanded.has(elementId)) {\n newExpanded.delete(elementId);\n } else {\n newExpanded.add(elementId);\n }\n this.hierarchyState = {\n ...this.hierarchyState,\n expandedIds: newExpanded,\n };\n },\n\n setExpanded: (elementId: string, expanded: boolean) => {\n const newExpanded = new Set(this.hierarchyState.expandedIds);\n if (expanded) {\n newExpanded.add(elementId);\n } else {\n newExpanded.delete(elementId);\n }\n this.hierarchyState = {\n ...this.hierarchyState,\n expandedIds: newExpanded,\n };\n },\n\n startDrag: (elementId: string) => {\n this.hierarchyState = {\n ...this.hierarchyState,\n draggedElementId: elementId,\n };\n },\n\n updateDropTarget: (targetId: string | null, position: \"before\" | \"after\" | \"inside\" | null) => {\n if (targetId === this.hierarchyState.draggedElementId) {\n return;\n }\n this.hierarchyState = {\n ...this.hierarchyState,\n dropTargetId: targetId,\n dropPosition: position,\n };\n },\n\n endDrag: () => {\n this.hierarchyState = {\n ...this.hierarchyState,\n draggedElementId: null,\n dropTargetId: null,\n dropPosition: null,\n };\n },\n\n reorder: (sourceId: string, targetId: string, position: \"before\" | \"after\" | \"inside\") => {\n this.dispatchEvent(\n new CustomEvent(\"hierarchy-reorder\", {\n detail: { sourceId, targetId, position },\n bubbles: true,\n composed: true,\n }),\n );\n },\n };\n\n @provide({ context: hierarchyContext })\n @state()\n // @ts-ignore\n private providedContext: HierarchyContext = {\n state: this.hierarchyState,\n actions: this.hierarchyActions,\n getCanvasSelectionContext: () => this.getCanvasSelectionContext(),\n getHighlightedElement: () => this.getHighlightedElement(),\n setHighlightedElement: (el) => this.setHighlightedElement(el),\n };\n\n private getTargetElement(): Element | null {\n // First try TargetController (for registered elements like EFCanvas)\n if (this.targetElement) {\n return this.targetElement;\n }\n // Fall back to direct lookup for any element with matching ID\n if (this.target) {\n return document.getElementById(this.target);\n }\n return null;\n }\n\n private getRootElements(): Element[] {\n const target = this.getTargetElement();\n if (!target) {\n return [];\n }\n\n if (isEFTemporal(target)) {\n return [target];\n }\n\n return Array.from(target.children);\n }\n\n private initializeExpandedState(): void {\n const roots = this.getRootElements();\n const newExpanded = new Set<string>();\n\n const addExpandedIds = (element: Element) => {\n if (element.id) {\n newExpanded.add(element.id);\n }\n for (const child of Array.from(element.children)) {\n if (child.children.length > 0) {\n addExpandedIds(child);\n }\n }\n };\n\n for (const root of roots) {\n addExpandedIds(root);\n }\n\n this.hierarchyState = {\n ...this.hierarchyState,\n expandedIds: newExpanded,\n };\n }\n\n select(elementId: string | null): void {\n this.hierarchyActions.select(elementId);\n }\n\n getSelectedElementId(): string | null {\n const selectionCtx = this.getCanvasSelectionContext();\n if (selectionCtx) {\n const selectedIds = Array.from(selectionCtx.selectedIds);\n if (selectedIds.length === 0) {\n return null;\n }\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return selectedIds[0]!;\n }\n return this.hierarchyState.selectedElementId;\n }\n\n protected willUpdate(changedProperties: PropertyValues): void {\n // Set up TargetController if target changes\n if (changedProperties.has(\"target\") && !this.targetController) {\n this.targetController = new TargetController(this as any);\n }\n\n // Retry setting up selection listener if not yet connected\n this.setupSelectionListener();\n\n // Check for selection changes from canvas (via context or direct access)\n const selectionCtx = this.getCanvasSelectionContext();\n if (selectionCtx) {\n const selectedIds = Array.from(selectionCtx.selectedIds);\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const selectedId: string | null = selectedIds.length === 0 ? null : selectedIds[0]!;\n\n if (this.hierarchyState.selectedElementId !== selectedId) {\n this.hierarchyState = {\n ...this.hierarchyState,\n selectedElementId: selectedId,\n };\n }\n }\n\n // Always update provided context to ensure children have fresh getters\n this.providedContext = {\n state: this.hierarchyState,\n actions: this.hierarchyActions,\n getCanvasSelectionContext: () => this.getCanvasSelectionContext(),\n getHighlightedElement: () => this.getHighlightedElement(),\n setHighlightedElement: (el) => this.setHighlightedElement(el),\n };\n\n super.willUpdate(changedProperties);\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n this.initializeExpandedState();\n this.setupSelectionListener();\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n this.removeSelectionListener();\n }\n\n protected updated(changedProperties: PropertyValues): void {\n super.updated(changedProperties);\n\n // Re-initialize when target changes\n if (changedProperties.has(\"targetElement\") || changedProperties.has(\"target\")) {\n this.initializeExpandedState();\n this.removeSelectionListener();\n this.selectionChangeHandler = undefined;\n this.setupSelectionListener();\n\n // Auto-select first root timegroup if nothing is selected\n this.autoSelectFirstRootTimegroup();\n }\n }\n\n /**\n * Auto-select the first root timegroup if nothing is currently selected\n */\n private autoSelectFirstRootTimegroup(): void {\n // Only auto-select if nothing is currently selected\n const currentSelection = this.getSelectedElementId();\n if (currentSelection) return;\n\n const roots = this.getRootElements();\n for (const root of roots) {\n // Select the first root that is a timegroup (ef-timegroup)\n if (root.tagName.toLowerCase() === \"ef-timegroup\" && root.id) {\n this.hierarchyActions.select(root.id);\n return;\n }\n }\n\n // Fallback: select first root with an ID\n for (const root of roots) {\n if (root.id) {\n this.hierarchyActions.select(root.id);\n return;\n }\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 = this.getCanvasSelectionContext();\n if (selectionCtx && \"addEventListener\" in selectionCtx) {\n this.selectionChangeHandler = () => {\n this.requestUpdate(); // Trigger re-render to update hierarchy items\n };\n (selectionCtx as any).addEventListener(\"selectionchange\", this.selectionChangeHandler);\n }\n }\n\n private removeSelectionListener(): void {\n const selectionCtx = this.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 roots = this.getRootElements();\n\n return html`\n <div class=\"hierarchy-container\" part=\"list\">\n ${this.showHeader ? html`<div class=\"header\" part=\"header\">${this.header}</div>` : nothing}\n ${\n roots.length > 0\n ? renderHierarchyChildren(roots, this.hideSelectors, this.showSelectors, true)\n : html`<div class=\"empty\">No elements</div>`\n }\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"ef-hierarchy\": EFHierarchy;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"EFHierarchy.js","names":[],"sources":["../../../src/gui/hierarchy/EFHierarchy.ts"],"mappings":"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"}
@@ -4,13 +4,13 @@ import { EFVideo } from "../../elements/EFVideo.js";
4
4
  import { EFTimegroup } from "../../elements/EFTimegroup.js";
5
5
  import { EFImage } from "../../elements/EFImage.js";
6
6
  import { HierarchyContext } from "./hierarchyContext.js";
7
- import * as lit12 from "lit";
7
+ import * as _$lit from "lit";
8
8
  import { LitElement, PropertyValues, TemplateResult, nothing } from "lit";
9
9
 
10
10
  //#region src/gui/hierarchy/EFHierarchyItem.d.ts
11
11
  declare const EFHierarchyItem_base: typeof LitElement;
12
12
  declare class EFHierarchyItem<ElementType extends HTMLElement = HTMLElement> extends EFHierarchyItem_base {
13
- static styles: lit12.CSSResult[];
13
+ static styles: _$lit.CSSResult[];
14
14
  hierarchyContext?: HierarchyContext;
15
15
  canvasSelectionContext?: SelectionContext;
16
16
  element: ElementType;
@@ -1,5 +1,5 @@
1
1
  import { TWMixin } from "../TWMixin2.js";
2
- import { __decorate } from "../../_virtual/_@oxc-project_runtime@0.95.0/helpers/decorate.js";
2
+ import { __decorate } from "../../_virtual/_@oxc-project_runtime@0.122.0/helpers/decorate.js";
3
3
  import { selectionContext } from "../../canvas/selection/selectionContext.js";
4
4
  import { hierarchyContext } from "./hierarchyContext.js";
5
5
  import { EFAudio } from "../../elements/EFAudio.js";
@@ -16,7 +16,6 @@ import { consume } from "@lit/context";
16
16
  import { LitElement, css, html, nothing } from "lit";
17
17
  import { customElement, property, state } from "lit/decorators.js";
18
18
  import { styleMap } from "lit/directives/style-map.js";
19
-
20
19
  //#region src/gui/hierarchy/EFHierarchyItem.ts
21
20
  const DEFAULT_HIDDEN_TAGS = new Set([
22
21
  "SPAN",
@@ -123,7 +122,7 @@ function renderHierarchyChildren(children, hideSelectors, showSelectors, skipRoo
123
122
  return nothing;
124
123
  });
125
124
  }
126
- let EFHierarchyItem = class EFHierarchyItem$1 extends TWMixin(LitElement) {
125
+ let EFHierarchyItem = class EFHierarchyItem extends TWMixin(LitElement) {
127
126
  constructor(..._args) {
128
127
  super(..._args);
129
128
  this.element = new EFTimegroup();
@@ -430,7 +429,7 @@ function getFriendlyLabel(element, typeLabel) {
430
429
  }
431
430
  return typeLabel;
432
431
  }
433
- let EFTimegroupHierarchyItem = class EFTimegroupHierarchyItem$1 extends EFHierarchyItem {
432
+ let EFTimegroupHierarchyItem = class EFTimegroupHierarchyItem extends EFHierarchyItem {
434
433
  get icon() {
435
434
  return phosphorIcon(ICONS.filmSlate);
436
435
  }
@@ -449,7 +448,7 @@ let EFTimegroupHierarchyItem = class EFTimegroupHierarchyItem$1 extends EFHierar
449
448
  }
450
449
  };
451
450
  EFTimegroupHierarchyItem = __decorate([customElement("ef-timegroup-hierarchy-item")], EFTimegroupHierarchyItem);
452
- let EFAudioHierarchyItem = class EFAudioHierarchyItem$1 extends EFHierarchyItem {
451
+ let EFAudioHierarchyItem = class EFAudioHierarchyItem extends EFHierarchyItem {
453
452
  get icon() {
454
453
  return phosphorIcon(ICONS.speakerHigh);
455
454
  }
@@ -461,7 +460,7 @@ let EFAudioHierarchyItem = class EFAudioHierarchyItem$1 extends EFHierarchyItem
461
460
  }
462
461
  };
463
462
  EFAudioHierarchyItem = __decorate([customElement("ef-audio-hierarchy-item")], EFAudioHierarchyItem);
464
- let EFVideoHierarchyItem = class EFVideoHierarchyItem$1 extends EFHierarchyItem {
463
+ let EFVideoHierarchyItem = class EFVideoHierarchyItem extends EFHierarchyItem {
465
464
  get icon() {
466
465
  return phosphorIcon(ICONS.filmStrip);
467
466
  }
@@ -473,7 +472,7 @@ let EFVideoHierarchyItem = class EFVideoHierarchyItem$1 extends EFHierarchyItem
473
472
  }
474
473
  };
475
474
  EFVideoHierarchyItem = __decorate([customElement("ef-video-hierarchy-item")], EFVideoHierarchyItem);
476
- let EFCaptionsHierarchyItem = class EFCaptionsHierarchyItem$1 extends EFHierarchyItem {
475
+ let EFCaptionsHierarchyItem = class EFCaptionsHierarchyItem extends EFHierarchyItem {
477
476
  get icon() {
478
477
  return phosphorIcon(ICONS.subtitles);
479
478
  }
@@ -485,7 +484,7 @@ let EFCaptionsHierarchyItem = class EFCaptionsHierarchyItem$1 extends EFHierarch
485
484
  }
486
485
  };
487
486
  EFCaptionsHierarchyItem = __decorate([customElement("ef-captions-hierarchy-item")], EFCaptionsHierarchyItem);
488
- let EFCaptionsActiveWordHierarchyItem = class EFCaptionsActiveWordHierarchyItem$1 extends EFHierarchyItem {
487
+ let EFCaptionsActiveWordHierarchyItem = class EFCaptionsActiveWordHierarchyItem extends EFHierarchyItem {
489
488
  get icon() {
490
489
  return phosphorIcon(ICONS.microphone);
491
490
  }
@@ -497,7 +496,7 @@ let EFCaptionsActiveWordHierarchyItem = class EFCaptionsActiveWordHierarchyItem$
497
496
  }
498
497
  };
499
498
  EFCaptionsActiveWordHierarchyItem = __decorate([customElement("ef-captions-active-word-hierarchy-item")], EFCaptionsActiveWordHierarchyItem);
500
- let EFTextHierarchyItem = class EFTextHierarchyItem$1 extends EFHierarchyItem {
499
+ let EFTextHierarchyItem = class EFTextHierarchyItem extends EFHierarchyItem {
501
500
  get icon() {
502
501
  return phosphorIcon(ICONS.textT);
503
502
  }
@@ -515,7 +514,7 @@ let EFTextHierarchyItem = class EFTextHierarchyItem$1 extends EFHierarchyItem {
515
514
  }
516
515
  };
517
516
  EFTextHierarchyItem = __decorate([customElement("ef-text-hierarchy-item")], EFTextHierarchyItem);
518
- let EFTextSegmentHierarchyItem = class EFTextSegmentHierarchyItem$1 extends EFHierarchyItem {
517
+ let EFTextSegmentHierarchyItem = class EFTextSegmentHierarchyItem extends EFHierarchyItem {
519
518
  get icon() {
520
519
  return phosphorIcon(ICONS.textT);
521
520
  }
@@ -527,7 +526,7 @@ let EFTextSegmentHierarchyItem = class EFTextSegmentHierarchyItem$1 extends EFHi
527
526
  }
528
527
  };
529
528
  EFTextSegmentHierarchyItem = __decorate([customElement("ef-text-segment-hierarchy-item")], EFTextSegmentHierarchyItem);
530
- let EFWaveformHierarchyItem = class EFWaveformHierarchyItem$1 extends EFHierarchyItem {
529
+ let EFWaveformHierarchyItem = class EFWaveformHierarchyItem extends EFHierarchyItem {
531
530
  get icon() {
532
531
  return phosphorIcon(ICONS.waveform);
533
532
  }
@@ -539,7 +538,7 @@ let EFWaveformHierarchyItem = class EFWaveformHierarchyItem$1 extends EFHierarch
539
538
  }
540
539
  };
541
540
  EFWaveformHierarchyItem = __decorate([customElement("ef-waveform-hierarchy-item")], EFWaveformHierarchyItem);
542
- let EFImageHierarchyItem = class EFImageHierarchyItem$1 extends EFHierarchyItem {
541
+ let EFImageHierarchyItem = class EFImageHierarchyItem extends EFHierarchyItem {
543
542
  get icon() {
544
543
  return phosphorIcon(ICONS.image);
545
544
  }
@@ -551,13 +550,13 @@ let EFImageHierarchyItem = class EFImageHierarchyItem$1 extends EFHierarchyItem
551
550
  }
552
551
  };
553
552
  EFImageHierarchyItem = __decorate([customElement("ef-image-hierarchy-item")], EFImageHierarchyItem);
554
- let EFHTMLHierarchyItem = class EFHTMLHierarchyItem$1 extends EFHierarchyItem {
553
+ let EFHTMLHierarchyItem = class EFHTMLHierarchyItem extends EFHierarchyItem {
555
554
  get icon() {
556
555
  return html`<code>${`<${this.element.tagName.toLowerCase()}>`}</code>`;
557
556
  }
558
557
  };
559
558
  EFHTMLHierarchyItem = __decorate([customElement("ef-html-hierarchy-item")], EFHTMLHierarchyItem);
560
-
561
559
  //#endregion
562
560
  export { EFAudioHierarchyItem, EFCaptionsActiveWordHierarchyItem, EFCaptionsHierarchyItem, EFHTMLHierarchyItem, EFHierarchyItem, EFImageHierarchyItem, EFTextHierarchyItem, EFTextSegmentHierarchyItem, EFTimegroupHierarchyItem, EFVideoHierarchyItem, EFWaveformHierarchyItem, renderHierarchyChildren, shouldRenderElement };
561
+
563
562
  //# sourceMappingURL=EFHierarchyItem.js.map
@@ -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"}