@r2digisolutions/components 0.1.7 → 0.3.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 (350) hide show
  1. package/dist/components/atoms/IconButton/IconButton.svelte +1 -1
  2. package/dist/components/atoms/MediaKindIcon/MediaKindIcon.stories.js +8 -0
  3. package/dist/components/atoms/MediaKindIcon/MediaKindIcon.svelte +122 -0
  4. package/dist/components/atoms/MediaKindIcon/MediaKindIcon.svelte.d.ts +11 -0
  5. package/dist/components/atoms/MediaKindIcon/MediaKindIconStory.svelte +12 -0
  6. package/dist/components/atoms/MediaKindIcon/MediaKindIconStory.svelte.d.ts +18 -0
  7. package/dist/components/atoms/PanKnob/PanKnob.stories.d.ts +9 -0
  8. package/dist/components/atoms/PanKnob/PanKnob.stories.js +8 -0
  9. package/dist/components/atoms/PanKnob/PanKnob.svelte +218 -0
  10. package/dist/components/atoms/PanKnob/PanKnob.svelte.d.ts +19 -0
  11. package/dist/components/atoms/PanKnob/PanKnobStory.svelte +15 -0
  12. package/dist/components/atoms/PanKnob/PanKnobStory.svelte.d.ts +3 -0
  13. package/dist/components/atoms/Playhead/Playhead.stories.js +8 -0
  14. package/dist/components/atoms/Playhead/Playhead.svelte +98 -0
  15. package/dist/components/atoms/Playhead/Playhead.svelte.d.ts +21 -0
  16. package/dist/components/atoms/Playhead/PlayheadStory.svelte +9 -0
  17. package/dist/components/atoms/Playhead/PlayheadStory.svelte.d.ts +18 -0
  18. package/dist/components/atoms/TimeRuler/TimeRuler.stories.js +8 -0
  19. package/dist/components/atoms/TimeRuler/TimeRuler.svelte +117 -0
  20. package/dist/components/atoms/TimeRuler/TimeRuler.svelte.d.ts +17 -0
  21. package/dist/components/atoms/TimeRuler/TimeRulerStory.svelte +7 -0
  22. package/dist/components/atoms/TimeRuler/TimeRulerStory.svelte.d.ts +18 -0
  23. package/dist/components/atoms/TimelineGrid/TimelineGrid.stories.js +8 -0
  24. package/dist/components/atoms/TimelineGrid/TimelineGrid.svelte +39 -0
  25. package/dist/components/atoms/TimelineGrid/TimelineGrid.svelte.d.ts +11 -0
  26. package/dist/components/atoms/TimelineGrid/TimelineGridStory.svelte +7 -0
  27. package/dist/components/atoms/TimelineGrid/TimelineGridStory.svelte.d.ts +18 -0
  28. package/dist/components/atoms/Tooltip/Tooltip.svelte +1 -1
  29. package/dist/components/atoms/TrimHandle/TrimHandle.stories.js +8 -0
  30. package/dist/components/atoms/TrimHandle/TrimHandle.svelte +63 -0
  31. package/dist/components/atoms/TrimHandle/TrimHandle.svelte.d.ts +12 -0
  32. package/dist/components/atoms/TrimHandle/TrimHandleStory.svelte +11 -0
  33. package/dist/components/atoms/TrimHandle/TrimHandleStory.svelte.d.ts +18 -0
  34. package/dist/components/molecules/AiAssistPanel/AiAssistPanel.stories.d.ts +9 -0
  35. package/dist/components/molecules/AiAssistPanel/AiAssistPanel.stories.js +8 -0
  36. package/dist/components/molecules/AiAssistPanel/AiAssistPanel.svelte +102 -0
  37. package/dist/components/molecules/AiAssistPanel/AiAssistPanel.svelte.d.ts +20 -0
  38. package/dist/components/molecules/AiAssistPanel/AiAssistPanelStory.svelte +34 -0
  39. package/dist/components/molecules/AiAssistPanel/AiAssistPanelStory.svelte.d.ts +3 -0
  40. package/dist/components/molecules/BulkActionBar/BulkActionBar.svelte +97 -61
  41. package/dist/components/molecules/BulkActionBar/BulkActionBar.svelte.d.ts +2 -0
  42. package/dist/components/molecules/BulkEditPanel/BulkEditPanel.stories.js +8 -0
  43. package/dist/components/molecules/BulkEditPanel/BulkEditPanel.svelte +117 -0
  44. package/dist/components/molecules/BulkEditPanel/BulkEditPanel.svelte.d.ts +23 -0
  45. package/dist/components/molecules/BulkEditPanel/BulkEditPanelStory.svelte +18 -0
  46. package/dist/components/molecules/BulkEditPanel/BulkEditPanelStory.svelte.d.ts +18 -0
  47. package/dist/components/molecules/CanvasElementsPanel/CanvasElementsPanel.stories.js +8 -0
  48. package/dist/components/molecules/CanvasElementsPanel/CanvasElementsPanel.svelte +858 -0
  49. package/dist/components/molecules/CanvasElementsPanel/CanvasElementsPanel.svelte.d.ts +43 -0
  50. package/dist/components/molecules/CanvasElementsPanel/CanvasElementsPanelStory.svelte +7 -0
  51. package/dist/components/molecules/CanvasElementsPanel/CanvasElementsPanelStory.svelte.d.ts +18 -0
  52. package/dist/components/molecules/CanvasInspector/CanvasInspector.stories.d.ts +9 -0
  53. package/dist/components/molecules/CanvasInspector/CanvasInspector.stories.js +8 -0
  54. package/dist/components/molecules/CanvasInspector/CanvasInspector.svelte +1140 -0
  55. package/dist/components/molecules/CanvasInspector/CanvasInspector.svelte.d.ts +28 -0
  56. package/dist/components/molecules/CanvasInspector/CanvasInspectorStory.svelte +20 -0
  57. package/dist/components/molecules/CanvasInspector/CanvasInspectorStory.svelte.d.ts +3 -0
  58. package/dist/components/molecules/ColorPicker/ColorPicker.svelte +46 -5
  59. package/dist/components/molecules/ColorPicker/ColorPicker.svelte.d.ts +2 -0
  60. package/dist/components/molecules/ColumnVisibilityMenu/ColumnVisibilityMenu.stories.d.ts +9 -0
  61. package/dist/components/molecules/ColumnVisibilityMenu/ColumnVisibilityMenu.stories.js +8 -0
  62. package/dist/components/molecules/ColumnVisibilityMenu/ColumnVisibilityMenu.svelte +108 -0
  63. package/dist/components/molecules/ColumnVisibilityMenu/ColumnVisibilityMenu.svelte.d.ts +18 -0
  64. package/dist/components/molecules/ColumnVisibilityMenu/ColumnVisibilityMenuStory.svelte +15 -0
  65. package/dist/components/molecules/ColumnVisibilityMenu/ColumnVisibilityMenuStory.svelte.d.ts +3 -0
  66. package/dist/components/molecules/ConflictResolver/ConflictResolver.stories.js +8 -0
  67. package/dist/components/molecules/ConflictResolver/ConflictResolver.svelte +73 -0
  68. package/dist/components/molecules/ConflictResolver/ConflictResolver.svelte.d.ts +16 -0
  69. package/dist/components/molecules/ConflictResolver/ConflictResolverStory.svelte +11 -0
  70. package/dist/components/molecules/ConflictResolver/ConflictResolverStory.svelte.d.ts +18 -0
  71. package/dist/components/molecules/ContextMenu/ContextMenu.svelte +237 -66
  72. package/dist/components/molecules/ContextMenu/ContextMenu.svelte.d.ts +9 -0
  73. package/dist/components/molecules/ExpressionEditor/ExpressionEditor.stories.d.ts +9 -0
  74. package/dist/components/molecules/ExpressionEditor/ExpressionEditor.stories.js +8 -0
  75. package/dist/components/molecules/ExpressionEditor/ExpressionEditor.svelte +56 -0
  76. package/dist/components/molecules/ExpressionEditor/ExpressionEditor.svelte.d.ts +12 -0
  77. package/dist/components/molecules/ExpressionEditor/ExpressionEditorStory.svelte +12 -0
  78. package/dist/components/molecules/ExpressionEditor/ExpressionEditorStory.svelte.d.ts +3 -0
  79. package/dist/components/molecules/FilterList/FilterList.stories.d.ts +9 -0
  80. package/dist/components/molecules/FilterList/FilterList.stories.js +8 -0
  81. package/dist/components/molecules/FilterList/FilterList.svelte +101 -0
  82. package/dist/components/molecules/FilterList/FilterList.svelte.d.ts +18 -0
  83. package/dist/components/molecules/FilterList/FilterListStory.svelte +31 -0
  84. package/dist/components/molecules/FilterList/FilterListStory.svelte.d.ts +3 -0
  85. package/dist/components/molecules/MediaAssetBrowser/MediaAssetBrowser.stories.d.ts +9 -0
  86. package/dist/components/molecules/MediaAssetBrowser/MediaAssetBrowser.stories.js +8 -0
  87. package/dist/components/molecules/MediaAssetBrowser/MediaAssetBrowser.svelte +109 -0
  88. package/dist/components/molecules/MediaAssetBrowser/MediaAssetBrowser.svelte.d.ts +20 -0
  89. package/dist/components/molecules/MediaAssetBrowser/MediaAssetBrowserStory.svelte +18 -0
  90. package/dist/components/molecules/MediaAssetBrowser/MediaAssetBrowserStory.svelte.d.ts +3 -0
  91. package/dist/components/molecules/MediaAssetCard/MediaAssetCard.stories.js +8 -0
  92. package/dist/components/molecules/MediaAssetCard/MediaAssetCard.svelte +50 -0
  93. package/dist/components/molecules/MediaAssetCard/MediaAssetCard.svelte.d.ts +11 -0
  94. package/dist/components/molecules/MediaAssetCard/MediaAssetCardStory.svelte +13 -0
  95. package/dist/components/molecules/MediaAssetCard/MediaAssetCardStory.svelte.d.ts +18 -0
  96. package/dist/components/molecules/MediaLayerItem/MediaLayerItem.stories.js +8 -0
  97. package/dist/components/molecules/MediaLayerItem/MediaLayerItem.svelte +380 -0
  98. package/dist/components/molecules/MediaLayerItem/MediaLayerItem.svelte.d.ts +33 -0
  99. package/dist/components/molecules/MediaLayerItem/MediaLayerItemStory.svelte +14 -0
  100. package/dist/components/molecules/MediaLayerItem/MediaLayerItemStory.svelte.d.ts +18 -0
  101. package/dist/components/molecules/MediaLayerList/MediaLayerList.stories.d.ts +9 -0
  102. package/dist/components/molecules/MediaLayerList/MediaLayerList.stories.js +8 -0
  103. package/dist/components/molecules/MediaLayerList/MediaLayerList.svelte +399 -0
  104. package/dist/components/molecules/MediaLayerList/MediaLayerList.svelte.d.ts +37 -0
  105. package/dist/components/molecules/MediaLayerList/MediaLayerListStory.svelte +24 -0
  106. package/dist/components/molecules/MediaLayerList/MediaLayerListStory.svelte.d.ts +3 -0
  107. package/dist/components/molecules/MediaStage/MediaStage.stories.d.ts +9 -0
  108. package/dist/components/molecules/MediaStage/MediaStage.stories.js +8 -0
  109. package/dist/components/molecules/MediaStage/MediaStage.svelte +1498 -0
  110. package/dist/components/molecules/MediaStage/MediaStage.svelte.d.ts +45 -0
  111. package/dist/components/molecules/MediaStage/MediaStageStory.svelte +35 -0
  112. package/dist/components/molecules/MediaStage/MediaStageStory.svelte.d.ts +3 -0
  113. package/dist/components/molecules/MediaTimeline/MediaTimeline.stories.d.ts +9 -0
  114. package/dist/components/molecules/MediaTimeline/MediaTimeline.stories.js +8 -0
  115. package/dist/components/molecules/MediaTimeline/MediaTimeline.svelte +441 -0
  116. package/dist/components/molecules/MediaTimeline/MediaTimeline.svelte.d.ts +39 -0
  117. package/dist/components/molecules/MediaTimeline/MediaTimelineStory.svelte +20 -0
  118. package/dist/components/molecules/MediaTimeline/MediaTimelineStory.svelte.d.ts +3 -0
  119. package/dist/components/molecules/MixerChannel/MixerChannel.stories.d.ts +9 -0
  120. package/dist/components/molecules/MixerChannel/MixerChannel.stories.js +8 -0
  121. package/dist/components/molecules/MixerChannel/MixerChannel.svelte +92 -0
  122. package/dist/components/molecules/MixerChannel/MixerChannel.svelte.d.ts +11 -0
  123. package/dist/components/molecules/MixerChannel/MixerChannelStory.svelte +13 -0
  124. package/dist/components/molecules/MixerChannel/MixerChannelStory.svelte.d.ts +3 -0
  125. package/dist/components/molecules/NodeGraph/GraphBlueprintNode.svelte +454 -0
  126. package/dist/components/molecules/NodeGraph/GraphBlueprintNode.svelte.d.ts +8 -0
  127. package/dist/components/molecules/NodeGraph/GraphFlowBridge.svelte +26 -0
  128. package/dist/components/molecules/NodeGraph/GraphFlowBridge.svelte.d.ts +22 -0
  129. package/dist/components/molecules/NodeGraph/NodeGraph.stories.d.ts +12 -0
  130. package/dist/components/molecules/NodeGraph/NodeGraph.stories.js +9 -0
  131. package/dist/components/molecules/NodeGraph/NodeGraph.svelte +1409 -0
  132. package/dist/components/molecules/NodeGraph/NodeGraph.svelte.d.ts +33 -0
  133. package/dist/components/molecules/NodeGraph/NodeGraphStory.svelte +90 -0
  134. package/dist/components/molecules/NodeGraph/NodeGraphStory.svelte.d.ts +3 -0
  135. package/dist/components/molecules/NodePalette/NodePalette.stories.js +8 -0
  136. package/dist/components/molecules/NodePalette/NodePalette.svelte +86 -0
  137. package/dist/components/molecules/NodePalette/NodePalette.svelte.d.ts +11 -0
  138. package/dist/components/molecules/NodePalette/NodePaletteStory.svelte +11 -0
  139. package/dist/components/molecules/NodePalette/NodePaletteStory.svelte.d.ts +18 -0
  140. package/dist/components/molecules/PdfViewer/PdfViewer.svelte.d.ts +1 -1
  141. package/dist/components/molecules/Poll/Poll.stories.d.ts +1 -1
  142. package/dist/components/molecules/ProgramMonitor/ProgramMonitor.stories.js +8 -0
  143. package/dist/components/molecules/ProgramMonitor/ProgramMonitor.svelte +794 -0
  144. package/dist/components/molecules/ProgramMonitor/ProgramMonitor.svelte.d.ts +25 -0
  145. package/dist/components/molecules/ProgramMonitor/ProgramMonitorStory.svelte +16 -0
  146. package/dist/components/molecules/ProgramMonitor/ProgramMonitorStory.svelte.d.ts +18 -0
  147. package/dist/components/molecules/PropertyField/PropertyField.svelte +57 -3
  148. package/dist/components/molecules/PropertyField/PropertyField.svelte.d.ts +10 -0
  149. package/dist/components/molecules/PropertyField/PropertyFieldStory.svelte +21 -0
  150. package/dist/components/molecules/PropertyGroup/PropertyGroup.svelte +1 -1
  151. package/dist/components/molecules/QueryBuilder/QueryBuilder.stories.d.ts +9 -0
  152. package/dist/components/molecules/QueryBuilder/QueryBuilder.stories.js +8 -0
  153. package/dist/components/molecules/QueryBuilder/QueryBuilder.svelte +52 -0
  154. package/dist/components/molecules/QueryBuilder/QueryBuilder.svelte.d.ts +18 -0
  155. package/dist/components/molecules/QueryBuilder/QueryBuilderStory.svelte +62 -0
  156. package/dist/components/molecules/QueryBuilder/QueryBuilderStory.svelte.d.ts +3 -0
  157. package/dist/components/molecules/RelationPicker/RelationPicker.stories.d.ts +9 -0
  158. package/dist/components/molecules/RelationPicker/RelationPicker.stories.js +8 -0
  159. package/dist/components/molecules/RelationPicker/RelationPicker.svelte +180 -0
  160. package/dist/components/molecules/RelationPicker/RelationPicker.svelte.d.ts +24 -0
  161. package/dist/components/molecules/RelationPicker/RelationPickerStory.svelte +16 -0
  162. package/dist/components/molecules/RelationPicker/RelationPickerStory.svelte.d.ts +3 -0
  163. package/dist/components/molecules/SchemaFieldBuilder/SchemaFieldBuilder.stories.d.ts +9 -0
  164. package/dist/components/molecules/SchemaFieldBuilder/SchemaFieldBuilder.stories.js +8 -0
  165. package/dist/components/molecules/SchemaFieldBuilder/SchemaFieldBuilder.svelte +154 -0
  166. package/dist/components/molecules/SchemaFieldBuilder/SchemaFieldBuilder.svelte.d.ts +12 -0
  167. package/dist/components/molecules/SchemaFieldBuilder/SchemaFieldBuilderStory.svelte +16 -0
  168. package/dist/components/molecules/SchemaFieldBuilder/SchemaFieldBuilderStory.svelte.d.ts +3 -0
  169. package/dist/components/molecules/SecretField/SecretField.stories.d.ts +9 -0
  170. package/dist/components/molecules/SecretField/SecretField.stories.js +8 -0
  171. package/dist/components/molecules/SecretField/SecretField.svelte +58 -0
  172. package/dist/components/molecules/SecretField/SecretField.svelte.d.ts +15 -0
  173. package/dist/components/molecules/SecretField/SecretFieldStory.svelte +8 -0
  174. package/dist/components/molecules/SecretField/SecretFieldStory.svelte.d.ts +3 -0
  175. package/dist/components/molecules/SplitPane/SplitPane.svelte +99 -40
  176. package/dist/components/molecules/SplitPane/SplitPane.svelte.d.ts +10 -2
  177. package/dist/components/molecules/TableToolbar/TableToolbar.svelte.d.ts +1 -1
  178. package/dist/components/molecules/Terminal/Terminal.stories.js +20 -0
  179. package/dist/components/molecules/Terminal/Terminal.svelte +238 -0
  180. package/dist/components/molecules/Terminal/Terminal.svelte.d.ts +19 -0
  181. package/dist/components/molecules/Terminal/TerminalStory.svelte +47 -0
  182. package/dist/components/molecules/Terminal/TerminalStory.svelte.d.ts +6 -0
  183. package/dist/components/molecules/TimelineClip/TimelineClip.stories.js +8 -0
  184. package/dist/components/molecules/TimelineClip/TimelineClip.svelte +193 -0
  185. package/dist/components/molecules/TimelineClip/TimelineClip.svelte.d.ts +18 -0
  186. package/dist/components/molecules/TimelineClip/TimelineClipStory.svelte +18 -0
  187. package/dist/components/molecules/TimelineClip/TimelineClipStory.svelte.d.ts +18 -0
  188. package/dist/components/molecules/TimelineTrack/TimelineTrack.stories.js +8 -0
  189. package/dist/components/molecules/TimelineTrack/TimelineTrack.svelte +126 -0
  190. package/dist/components/molecules/TimelineTrack/TimelineTrack.svelte.d.ts +27 -0
  191. package/dist/components/molecules/TimelineTrack/TimelineTrackStory.svelte +35 -0
  192. package/dist/components/molecules/TimelineTrack/TimelineTrackStory.svelte.d.ts +18 -0
  193. package/dist/components/molecules/TraceWaterfall/TraceWaterfall.stories.js +8 -0
  194. package/dist/components/molecules/TraceWaterfall/TraceWaterfall.svelte +158 -0
  195. package/dist/components/molecules/TraceWaterfall/TraceWaterfall.svelte.d.ts +18 -0
  196. package/dist/components/molecules/TraceWaterfall/TraceWaterfallStory.svelte +55 -0
  197. package/dist/components/molecules/TraceWaterfall/TraceWaterfallStory.svelte.d.ts +18 -0
  198. package/dist/components/molecules/TrackHeader/TrackHeader.stories.d.ts +9 -0
  199. package/dist/components/molecules/TrackHeader/TrackHeader.stories.js +8 -0
  200. package/dist/components/molecules/TrackHeader/TrackHeader.svelte +54 -0
  201. package/dist/components/molecules/TrackHeader/TrackHeader.svelte.d.ts +9 -0
  202. package/dist/components/molecules/TrackHeader/TrackHeaderStory.svelte +10 -0
  203. package/dist/components/molecules/TrackHeader/TrackHeaderStory.svelte.d.ts +3 -0
  204. package/dist/components/molecules/TransportControls/TransportControls.stories.d.ts +9 -0
  205. package/dist/components/molecules/TransportControls/TransportControls.stories.js +8 -0
  206. package/dist/components/molecules/TransportControls/TransportControls.svelte +135 -0
  207. package/dist/components/molecules/TransportControls/TransportControls.svelte.d.ts +24 -0
  208. package/dist/components/molecules/TransportControls/TransportControlsStory.svelte +40 -0
  209. package/dist/components/molecules/TransportControls/TransportControlsStory.svelte.d.ts +3 -0
  210. package/dist/components/molecules/VersionHistoryPanel/VersionHistoryPanel.stories.js +8 -0
  211. package/dist/components/molecules/VersionHistoryPanel/VersionHistoryPanel.svelte +117 -0
  212. package/dist/components/molecules/VersionHistoryPanel/VersionHistoryPanel.svelte.d.ts +20 -0
  213. package/dist/components/molecules/VersionHistoryPanel/VersionHistoryPanelStory.svelte +36 -0
  214. package/dist/components/molecules/VersionHistoryPanel/VersionHistoryPanelStory.svelte.d.ts +18 -0
  215. package/dist/components/molecules/VideoAnimationsPanel/VideoAnimationsPanel.stories.js +8 -0
  216. package/dist/components/molecules/VideoAnimationsPanel/VideoAnimationsPanel.svelte +213 -0
  217. package/dist/components/molecules/VideoAnimationsPanel/VideoAnimationsPanel.svelte.d.ts +22 -0
  218. package/dist/components/molecules/VideoAnimationsPanel/VideoAnimationsPanelStory.svelte +7 -0
  219. package/dist/components/molecules/VideoAnimationsPanel/VideoAnimationsPanelStory.svelte.d.ts +18 -0
  220. package/dist/components/molecules/VideoComponentsPanel/VideoComponentsPanel.stories.js +8 -0
  221. package/dist/components/molecules/VideoComponentsPanel/VideoComponentsPanel.svelte +524 -0
  222. package/dist/components/molecules/VideoComponentsPanel/VideoComponentsPanel.svelte.d.ts +32 -0
  223. package/dist/components/molecules/VideoComponentsPanel/VideoComponentsPanelStory.svelte +7 -0
  224. package/dist/components/molecules/VideoComponentsPanel/VideoComponentsPanelStory.svelte.d.ts +18 -0
  225. package/dist/components/molecules/VideoPlayer/VideoPlayer.stories.d.ts +1 -1
  226. package/dist/components/molecules/VideoTrackHeader/VideoTrackHeader.stories.d.ts +9 -0
  227. package/dist/components/molecules/VideoTrackHeader/VideoTrackHeader.stories.js +8 -0
  228. package/dist/components/molecules/VideoTrackHeader/VideoTrackHeader.svelte +112 -0
  229. package/dist/components/molecules/VideoTrackHeader/VideoTrackHeader.svelte.d.ts +15 -0
  230. package/dist/components/molecules/VideoTrackHeader/VideoTrackHeaderStory.svelte +10 -0
  231. package/dist/components/molecules/VideoTrackHeader/VideoTrackHeaderStory.svelte.d.ts +3 -0
  232. package/dist/components/molecules/VideoTransitionsPanel/VideoTransitionsPanel.stories.js +8 -0
  233. package/dist/components/molecules/VideoTransitionsPanel/VideoTransitionsPanel.svelte +113 -0
  234. package/dist/components/molecules/VideoTransitionsPanel/VideoTransitionsPanel.svelte.d.ts +18 -0
  235. package/dist/components/molecules/VideoTransitionsPanel/VideoTransitionsPanelStory.svelte +7 -0
  236. package/dist/components/molecules/VideoTransitionsPanel/VideoTransitionsPanelStory.svelte.d.ts +18 -0
  237. package/dist/components/molecules/WaveformRegion/WaveformRegion.stories.js +8 -0
  238. package/dist/components/molecules/WaveformRegion/WaveformRegion.svelte +82 -0
  239. package/dist/components/molecules/WaveformRegion/WaveformRegion.svelte.d.ts +13 -0
  240. package/dist/components/molecules/WaveformRegion/WaveformRegionStory.svelte +17 -0
  241. package/dist/components/molecules/WaveformRegion/WaveformRegionStory.svelte.d.ts +18 -0
  242. package/dist/components/molecules/WidgetCanvas/WidgetCanvas.svelte +13 -4
  243. package/dist/components/molecules/WidgetCanvas/WidgetCanvas.svelte.d.ts +3 -1
  244. package/dist/components/molecules/WidgetCanvas/widgetCanvasContext.d.ts +2 -0
  245. package/dist/components/molecules/WidgetFrame/WidgetFrame.svelte +206 -37
  246. package/dist/components/molecules/WidgetFrame/WidgetFrame.svelte.d.ts +31 -0
  247. package/dist/components/organisms/AudioEditor/AudioEditor.stories.d.ts +12 -0
  248. package/dist/components/organisms/AudioEditor/AudioEditor.stories.js +9 -0
  249. package/dist/components/organisms/AudioEditor/AudioEditor.svelte +324 -0
  250. package/dist/components/organisms/AudioEditor/AudioEditor.svelte.d.ts +13 -0
  251. package/dist/components/organisms/AudioEditor/AudioEditorStory.svelte +10 -0
  252. package/dist/components/organisms/AudioEditor/AudioEditorStory.svelte.d.ts +3 -0
  253. package/dist/components/organisms/BlogEditor/BlogEditor.stories.d.ts +12 -0
  254. package/dist/components/organisms/BlogEditor/BlogEditor.stories.js +9 -0
  255. package/dist/components/organisms/BlogEditor/BlogEditor.svelte +1208 -0
  256. package/dist/components/organisms/BlogEditor/BlogEditor.svelte.d.ts +16 -0
  257. package/dist/components/organisms/BlogEditor/BlogEditorStory.svelte +144 -0
  258. package/dist/components/organisms/BlogEditor/BlogEditorStory.svelte.d.ts +3 -0
  259. package/dist/components/organisms/BlogEditor/DemoBlogCard.svelte +28 -0
  260. package/dist/components/organisms/BlogEditor/DemoBlogCard.svelte.d.ts +10 -0
  261. package/dist/components/organisms/BlogEditor/DemoBlogStats.svelte +34 -0
  262. package/dist/components/organisms/BlogEditor/DemoBlogStats.svelte.d.ts +11 -0
  263. package/dist/components/organisms/BlogEditor/DemoBlogWidget.svelte +13 -0
  264. package/dist/components/organisms/BlogEditor/DemoBlogWidget.svelte.d.ts +8 -0
  265. package/dist/components/organisms/BlogRenderer/BlogRenderer.stories.js +8 -0
  266. package/dist/components/organisms/BlogRenderer/BlogRenderer.svelte +469 -0
  267. package/dist/components/organisms/BlogRenderer/BlogRenderer.svelte.d.ts +14 -0
  268. package/dist/components/organisms/BlogRenderer/BlogRendererStory.svelte +20 -0
  269. package/dist/components/organisms/BlogRenderer/BlogRendererStory.svelte.d.ts +18 -0
  270. package/dist/components/organisms/BlueprintEditor/BlueprintEditor.stories.d.ts +12 -0
  271. package/dist/components/organisms/BlueprintEditor/BlueprintEditor.stories.js +9 -0
  272. package/dist/components/organisms/BlueprintEditor/BlueprintEditor.svelte +1012 -0
  273. package/dist/components/organisms/BlueprintEditor/BlueprintEditor.svelte.d.ts +16 -0
  274. package/dist/components/organisms/BlueprintEditor/BlueprintEditorStory.svelte +76 -0
  275. package/dist/components/organisms/BlueprintEditor/BlueprintEditorStory.svelte.d.ts +3 -0
  276. package/dist/components/organisms/CanvasEditor/CanvasEditor.stories.d.ts +12 -0
  277. package/dist/components/organisms/CanvasEditor/CanvasEditor.stories.js +9 -0
  278. package/dist/components/organisms/CanvasEditor/CanvasEditor.svelte +1680 -0
  279. package/dist/components/organisms/CanvasEditor/CanvasEditor.svelte.d.ts +18 -0
  280. package/dist/components/organisms/CanvasEditor/CanvasEditorStory.svelte +329 -0
  281. package/dist/components/organisms/CanvasEditor/CanvasEditorStory.svelte.d.ts +3 -0
  282. package/dist/components/organisms/DashboardBuilderPage/DashboardBuilderPage.svelte.d.ts +1 -1
  283. package/dist/components/organisms/DesktopShell/DesktopShell.svelte.d.ts +1 -1
  284. package/dist/components/organisms/EditorShell/EditorShell.svelte +162 -57
  285. package/dist/components/organisms/EditorShell/EditorShell.svelte.d.ts +21 -1
  286. package/dist/components/organisms/FileUploader/FileUploader.stories.d.ts +10 -0
  287. package/dist/components/organisms/FileUploader/FileUploader.stories.js +21 -0
  288. package/dist/components/organisms/FileUploader/FileUploader.svelte +127 -25
  289. package/dist/components/organisms/FileUploader/FileUploader.svelte.d.ts +20 -0
  290. package/dist/components/organisms/FileUploader/FileUploaderStory.svelte +7 -1
  291. package/dist/components/organisms/FileUploader/FileUploaderStory.svelte.d.ts +3 -0
  292. package/dist/components/organisms/ImportWizard/ImportWizard.stories.js +8 -0
  293. package/dist/components/organisms/ImportWizard/ImportWizard.svelte +209 -0
  294. package/dist/components/organisms/ImportWizard/ImportWizard.svelte.d.ts +22 -0
  295. package/dist/components/organisms/ImportWizard/ImportWizardStory.svelte +16 -0
  296. package/dist/components/organisms/ImportWizard/ImportWizardStory.svelte.d.ts +18 -0
  297. package/dist/components/organisms/VideoEditor/VideoEditor.stories.d.ts +12 -0
  298. package/dist/components/organisms/VideoEditor/VideoEditor.stories.js +9 -0
  299. package/dist/components/organisms/VideoEditor/VideoEditor.svelte +1687 -0
  300. package/dist/components/organisms/VideoEditor/VideoEditor.svelte.d.ts +14 -0
  301. package/dist/components/organisms/VideoEditor/VideoEditorStory.svelte +11 -0
  302. package/dist/components/organisms/VideoEditor/VideoEditorStory.svelte.d.ts +3 -0
  303. package/dist/components/templates/AudioEditorTemplate/AudioEditorTemplate.stories.d.ts +12 -0
  304. package/dist/components/templates/AudioEditorTemplate/AudioEditorTemplate.stories.js +9 -0
  305. package/dist/components/templates/AudioEditorTemplate/AudioEditorTemplate.svelte +22 -0
  306. package/dist/components/templates/AudioEditorTemplate/AudioEditorTemplate.svelte.d.ts +13 -0
  307. package/dist/components/templates/AudioEditorTemplate/AudioEditorTemplateStory.svelte +8 -0
  308. package/dist/components/templates/AudioEditorTemplate/AudioEditorTemplateStory.svelte.d.ts +3 -0
  309. package/dist/components/templates/CanvasEditorTemplate/CanvasEditorTemplate.stories.d.ts +12 -0
  310. package/dist/components/templates/CanvasEditorTemplate/CanvasEditorTemplate.stories.js +9 -0
  311. package/dist/components/templates/CanvasEditorTemplate/CanvasEditorTemplate.svelte +32 -0
  312. package/dist/components/templates/CanvasEditorTemplate/CanvasEditorTemplate.svelte.d.ts +17 -0
  313. package/dist/components/templates/CanvasEditorTemplate/CanvasEditorTemplateStory.svelte +21 -0
  314. package/dist/components/templates/CanvasEditorTemplate/CanvasEditorTemplateStory.svelte.d.ts +3 -0
  315. package/dist/components/templates/VideoEditorTemplate/VideoEditorTemplate.stories.d.ts +12 -0
  316. package/dist/components/templates/VideoEditorTemplate/VideoEditorTemplate.stories.js +9 -0
  317. package/dist/components/templates/VideoEditorTemplate/VideoEditorTemplate.svelte +22 -0
  318. package/dist/components/templates/VideoEditorTemplate/VideoEditorTemplate.svelte.d.ts +13 -0
  319. package/dist/components/templates/VideoEditorTemplate/VideoEditorTemplateStory.svelte +8 -0
  320. package/dist/components/templates/VideoEditorTemplate/VideoEditorTemplateStory.svelte.d.ts +3 -0
  321. package/dist/index.d.ts +91 -1
  322. package/dist/index.js +64 -0
  323. package/dist/types/xyflow-svelte.d.ts +62 -0
  324. package/dist/utils/audioProject.d.ts +19 -0
  325. package/dist/utils/audioProject.js +70 -0
  326. package/dist/utils/blogDocument.d.ts +175 -0
  327. package/dist/utils/blogDocument.js +220 -0
  328. package/dist/utils/blueprintRuntime.d.ts +34 -0
  329. package/dist/utils/blueprintRuntime.js +289 -0
  330. package/dist/utils/canvasDocument.d.ts +239 -0
  331. package/dist/utils/canvasDocument.js +443 -0
  332. package/dist/utils/canvasExport.d.ts +10 -0
  333. package/dist/utils/canvasExport.js +469 -0
  334. package/dist/utils/canvasHierarchy.d.ts +189 -0
  335. package/dist/utils/canvasHierarchy.js +674 -0
  336. package/dist/utils/canvasHistory.d.ts +19 -0
  337. package/dist/utils/canvasHistory.js +48 -0
  338. package/dist/utils/canvasWidget.d.ts +81 -0
  339. package/dist/utils/canvasWidget.js +597 -0
  340. package/dist/utils/mediaTime.d.ts +26 -0
  341. package/dist/utils/mediaTime.js +76 -0
  342. package/dist/utils/mediaTracks.d.ts +215 -0
  343. package/dist/utils/mediaTracks.js +798 -0
  344. package/dist/utils/nodeGraph.d.ts +354 -0
  345. package/dist/utils/nodeGraph.js +1453 -0
  346. package/dist/utils/queryBridge.d.ts +18 -0
  347. package/dist/utils/queryBridge.js +118 -0
  348. package/dist/utils/videoSequence.d.ts +13 -0
  349. package/dist/utils/videoSequence.js +94 -0
  350. package/package.json +5 -2
@@ -0,0 +1,238 @@
1
+ <script lang="ts">
2
+ import Button from '../../atoms/Button/Button.svelte';
3
+
4
+ export type TerminalLineKind = 'input' | 'stdout' | 'stderr' | 'system';
5
+
6
+ export interface TerminalLine {
7
+ id: string;
8
+ kind: TerminalLineKind;
9
+ text: string;
10
+ }
11
+
12
+ interface TerminalProps {
13
+ lines?: TerminalLine[];
14
+ prompt?: string;
15
+ disabled?: boolean;
16
+ /** `adaptive` follows light/dark; `contrast` is always a dark console. */
17
+ tone?: 'adaptive' | 'contrast';
18
+ class?: string;
19
+ oncommand?: (command: string) => void;
20
+ onclear?: () => void;
21
+ }
22
+
23
+ let {
24
+ lines = $bindable<TerminalLine[]>([]),
25
+ prompt = '$',
26
+ disabled = false,
27
+ tone = 'adaptive',
28
+ class: className = '',
29
+ oncommand,
30
+ onclear
31
+ }: TerminalProps = $props();
32
+
33
+ let draft = $state('');
34
+ let scroller = $state<HTMLDivElement | null>(null);
35
+ let hovered = $state(false);
36
+
37
+ function uid() {
38
+ return `t-${Date.now().toString(36)}-${Math.random().toString(36).slice(2, 6)}`;
39
+ }
40
+
41
+ function scrollToBottom() {
42
+ if (!scroller || hovered) return;
43
+ scroller.scrollTop = scroller.scrollHeight;
44
+ }
45
+
46
+ $effect(() => {
47
+ lines;
48
+ queueMicrotask(scrollToBottom);
49
+ });
50
+
51
+ function submit() {
52
+ const cmd = draft.trim();
53
+ if (!cmd || disabled) return;
54
+ lines = [...lines, { id: uid(), kind: 'input', text: cmd }];
55
+ draft = '';
56
+ oncommand?.(cmd);
57
+ }
58
+
59
+ function clear() {
60
+ lines = [];
61
+ onclear?.();
62
+ }
63
+ </script>
64
+
65
+ <div
66
+ class={[
67
+ 'terminal flex flex-col overflow-hidden rounded-xl border shadow-sm',
68
+ tone === 'contrast' ? 'terminal--contrast' : 'terminal--adaptive',
69
+ className
70
+ ]}
71
+ data-terminal
72
+ >
73
+ <div class="terminal-header flex items-center justify-between border-b px-3 py-1.5">
74
+ <div class="flex items-center gap-2">
75
+ <div class="flex items-center gap-1.5" aria-hidden="true">
76
+ <span class="terminal-dot h-2.5 w-2.5 rounded-full"></span>
77
+ <span class="terminal-dot h-2.5 w-2.5 rounded-full opacity-80"></span>
78
+ <span class="terminal-dot h-2.5 w-2.5 rounded-full opacity-60"></span>
79
+ </div>
80
+ <span class="terminal-title text-[11px] font-semibold uppercase tracking-wide">Terminal</span>
81
+ </div>
82
+ <Button size="sm" variant="ghost" class="terminal-clear" onclick={clear}>Clear</Button>
83
+ </div>
84
+
85
+ <div
86
+ bind:this={scroller}
87
+ class="max-h-72 min-h-[180px] flex-1 overflow-auto px-3 py-2 font-mono text-xs leading-relaxed"
88
+ onmouseenter={() => (hovered = true)}
89
+ onmouseleave={() => {
90
+ hovered = false;
91
+ queueMicrotask(scrollToBottom);
92
+ }}
93
+ >
94
+ {#each lines as line (line.id)}
95
+ <div class={['terminal-line whitespace-pre-wrap break-all', `terminal-line--${line.kind}`]}>
96
+ {#if line.kind === 'input'}
97
+ <span class="terminal-prompt">{prompt}</span>
98
+ {' '}{line.text}
99
+ {:else}
100
+ {line.text}
101
+ {/if}
102
+ </div>
103
+ {/each}
104
+ </div>
105
+
106
+ <form
107
+ class="terminal-footer flex items-center gap-2 border-t px-3 py-2 font-mono text-xs"
108
+ onsubmit={(e) => {
109
+ e.preventDefault();
110
+ submit();
111
+ }}
112
+ >
113
+ <span class="terminal-prompt">{prompt}</span>
114
+ <input
115
+ class="terminal-input min-w-0 flex-1 bg-transparent outline-none"
116
+ bind:value={draft}
117
+ {disabled}
118
+ placeholder="Type a command…"
119
+ autocomplete="off"
120
+ spellcheck={false}
121
+ />
122
+ </form>
123
+ </div>
124
+
125
+ <style>
126
+ .terminal--adaptive {
127
+ border-color: var(--border);
128
+ background: var(--surface-elevated);
129
+ color: var(--text-primary);
130
+ }
131
+
132
+ .terminal--adaptive .terminal-header,
133
+ .terminal--adaptive .terminal-footer {
134
+ border-color: var(--border);
135
+ background: var(--surface-overlay);
136
+ }
137
+
138
+ .terminal--adaptive .terminal-title,
139
+ .terminal--adaptive .terminal-prompt {
140
+ color: var(--text-muted);
141
+ }
142
+
143
+ .terminal--adaptive :global(.terminal-clear) {
144
+ color: var(--text-muted);
145
+ }
146
+ .terminal--adaptive :global(.terminal-clear:hover) {
147
+ color: var(--text-primary);
148
+ }
149
+
150
+ .terminal--adaptive .terminal-dot:nth-child(1) {
151
+ background: #ff5f57;
152
+ }
153
+ .terminal--adaptive .terminal-dot:nth-child(2) {
154
+ background: #febc2e;
155
+ }
156
+ .terminal--adaptive .terminal-dot:nth-child(3) {
157
+ background: #28c840;
158
+ }
159
+
160
+ .terminal--adaptive .terminal-line--input {
161
+ color: #059669;
162
+ }
163
+ .terminal--adaptive .terminal-line--stdout {
164
+ color: var(--text-primary);
165
+ }
166
+ .terminal--adaptive .terminal-line--stderr {
167
+ color: #dc2626;
168
+ }
169
+ .terminal--adaptive .terminal-line--system {
170
+ color: var(--text-muted);
171
+ }
172
+
173
+ .terminal--adaptive .terminal-input {
174
+ color: var(--text-primary);
175
+ }
176
+ .terminal--adaptive .terminal-input::placeholder {
177
+ color: var(--text-muted);
178
+ }
179
+
180
+ :global(.dark) .terminal--adaptive .terminal-line--input {
181
+ color: #6ee7b7;
182
+ }
183
+ :global(.dark) .terminal--adaptive .terminal-line--stderr {
184
+ color: #f87171;
185
+ }
186
+
187
+ .terminal--contrast {
188
+ border-color: oklch(30% 0.03 265);
189
+ background: oklch(18% 0.03 265);
190
+ color: oklch(93% 0.01 265);
191
+ }
192
+
193
+ .terminal--contrast .terminal-header,
194
+ .terminal--contrast .terminal-footer {
195
+ border-color: oklch(30% 0.03 265);
196
+ background: oklch(15% 0.025 265);
197
+ }
198
+
199
+ .terminal--contrast .terminal-title,
200
+ .terminal--contrast .terminal-prompt,
201
+ .terminal--contrast .terminal-line--system {
202
+ color: oklch(62% 0.02 265);
203
+ }
204
+
205
+ .terminal--contrast :global(.terminal-clear) {
206
+ color: oklch(70% 0.02 265);
207
+ }
208
+ .terminal--contrast :global(.terminal-clear:hover) {
209
+ color: oklch(93% 0.01 265);
210
+ }
211
+
212
+ .terminal--contrast .terminal-dot:nth-child(1) {
213
+ background: #ff5f57;
214
+ }
215
+ .terminal--contrast .terminal-dot:nth-child(2) {
216
+ background: #febc2e;
217
+ }
218
+ .terminal--contrast .terminal-dot:nth-child(3) {
219
+ background: #28c840;
220
+ }
221
+
222
+ .terminal--contrast .terminal-line--input {
223
+ color: #6ee7b7;
224
+ }
225
+ .terminal--contrast .terminal-line--stdout {
226
+ color: oklch(93% 0.01 265);
227
+ }
228
+ .terminal--contrast .terminal-line--stderr {
229
+ color: #f87171;
230
+ }
231
+
232
+ .terminal--contrast .terminal-input {
233
+ color: oklch(93% 0.01 265);
234
+ }
235
+ .terminal--contrast .terminal-input::placeholder {
236
+ color: oklch(50% 0.02 265);
237
+ }
238
+ </style>
@@ -0,0 +1,19 @@
1
+ export type TerminalLineKind = 'input' | 'stdout' | 'stderr' | 'system';
2
+ export interface TerminalLine {
3
+ id: string;
4
+ kind: TerminalLineKind;
5
+ text: string;
6
+ }
7
+ interface TerminalProps {
8
+ lines?: TerminalLine[];
9
+ prompt?: string;
10
+ disabled?: boolean;
11
+ /** `adaptive` follows light/dark; `contrast` is always a dark console. */
12
+ tone?: 'adaptive' | 'contrast';
13
+ class?: string;
14
+ oncommand?: (command: string) => void;
15
+ onclear?: () => void;
16
+ }
17
+ declare const Terminal: import("svelte").Component<TerminalProps, {}, "lines">;
18
+ type Terminal = ReturnType<typeof Terminal>;
19
+ export default Terminal;
@@ -0,0 +1,47 @@
1
+ <script lang="ts">
2
+ import Terminal from './Terminal.svelte';
3
+ import type { TerminalLine } from './Terminal.svelte';
4
+
5
+ interface Props {
6
+ tone?: 'adaptive' | 'contrast';
7
+ }
8
+
9
+ let { tone = 'adaptive' }: Props = $props();
10
+
11
+ let lines = $state<TerminalLine[]>([
12
+ { id: '1', kind: 'system', text: 'Connected to sandbox.' },
13
+ { id: '2', kind: 'input', text: 'ls' },
14
+ { id: '3', kind: 'stdout', text: 'README.md\nsrc\npackage.json' }
15
+ ]);
16
+
17
+ function reply(kind: TerminalLine['kind'], text: string) {
18
+ lines = [...lines, { id: `out-${Date.now()}-${Math.random().toString(36).slice(2, 6)}`, kind, text }];
19
+ }
20
+
21
+ function oncommand(cmd: string) {
22
+ const [name, ...rest] = cmd.split(/\s+/);
23
+ const args = rest.join(' ');
24
+
25
+ if (name === 'help') {
26
+ reply('stdout', 'Commands: help, ls, echo, clear');
27
+ return;
28
+ }
29
+ if (name === 'ls') {
30
+ reply('stdout', 'README.md\nsrc\npackage.json');
31
+ return;
32
+ }
33
+ if (name === 'echo') {
34
+ reply('stdout', args);
35
+ return;
36
+ }
37
+ if (name === 'clear') {
38
+ lines = [];
39
+ return;
40
+ }
41
+ reply('stderr', `command not found: ${name}`);
42
+ }
43
+ </script>
44
+
45
+ <div class="mx-auto max-w-xl p-4">
46
+ <Terminal bind:lines {tone} {oncommand} />
47
+ </div>
@@ -0,0 +1,6 @@
1
+ interface Props {
2
+ tone?: 'adaptive' | 'contrast';
3
+ }
4
+ declare const TerminalStory: import("svelte").Component<Props, {}, "">;
5
+ type TerminalStory = ReturnType<typeof TerminalStory>;
6
+ export default TerminalStory;
@@ -0,0 +1,8 @@
1
+ import TimelineClipStory from './TimelineClipStory.svelte';
2
+ const meta = {
3
+ title: 'Molecules/TimelineClip',
4
+ component: TimelineClipStory,
5
+ tags: ['autodocs']
6
+ };
7
+ export default meta;
8
+ export const Default = {};
@@ -0,0 +1,193 @@
1
+ <script lang="ts">
2
+ import TrimHandle from '../../atoms/TrimHandle/TrimHandle.svelte';
3
+ import MediaKindIcon from '../../atoms/MediaKindIcon/MediaKindIcon.svelte';
4
+ import type { MediaClip } from '../../../utils/mediaTracks.js';
5
+ import { msToPx } from '../../../utils/mediaTime.js';
6
+
7
+ interface TimelineClipProps {
8
+ clip: MediaClip;
9
+ pxPerMs?: number;
10
+ selected?: boolean;
11
+ locked?: boolean;
12
+ class?: string;
13
+ onclick?: (e: MouseEvent) => void;
14
+ oncontextmenu?: (e: MouseEvent) => void;
15
+ onmove?: (startMs: number) => void;
16
+ ontrimstart?: (startMs: number) => void;
17
+ ontrimend?: (endMs: number) => void;
18
+ ondragoverclip?: (e: DragEvent) => void;
19
+ ondropclip?: (e: DragEvent) => void;
20
+ }
21
+
22
+ let {
23
+ clip,
24
+ pxPerMs = 0.05,
25
+ selected = false,
26
+ locked = false,
27
+ class: className = '',
28
+ onclick,
29
+ oncontextmenu,
30
+ onmove,
31
+ ontrimstart,
32
+ ontrimend,
33
+ ondragoverclip,
34
+ ondropclip
35
+ }: TimelineClipProps = $props();
36
+
37
+ const left = $derived(msToPx(clip.startMs, pxPerMs));
38
+ const width = $derived(Math.max(8, msToPx(clip.endMs - clip.startMs, pxPerMs)));
39
+ const bg = $derived(clip.color ?? '#3b82f6');
40
+ const inW = $derived(
41
+ clip.animationIn ? Math.min(width * 0.45, msToPx(clip.animationIn.durationMs, pxPerMs)) : 0
42
+ );
43
+ const outW = $derived(
44
+ clip.animationOut ? Math.min(width * 0.45, msToPx(clip.animationOut.durationMs, pxPerMs)) : 0
45
+ );
46
+ const transW = $derived(
47
+ clip.transitionOut
48
+ ? Math.min(width * 0.5, Math.max(10, msToPx(clip.transitionOut.durationMs, pxPerMs)))
49
+ : 0
50
+ );
51
+
52
+ let dragMode = $state<'move' | null>(null);
53
+ let originX = $state(0);
54
+ let originStart = $state(0);
55
+
56
+ function beginMove(e: PointerEvent) {
57
+ if (locked || e.button !== 0) return;
58
+ e.stopPropagation();
59
+ e.preventDefault();
60
+ (e.currentTarget as HTMLElement).setPointerCapture(e.pointerId);
61
+ dragMode = 'move';
62
+ originX = e.clientX;
63
+ originStart = clip.startMs;
64
+ }
65
+
66
+ function onPointerMove(e: PointerEvent) {
67
+ if (locked) return;
68
+ if (!(e.currentTarget as HTMLElement).hasPointerCapture(e.pointerId)) return;
69
+ if (dragMode !== 'move') return;
70
+ const deltaMs = (e.clientX - originX) / pxPerMs;
71
+ onmove?.(Math.max(0, originStart + deltaMs));
72
+ }
73
+
74
+ function onPointerUp(e: PointerEvent) {
75
+ const el = e.currentTarget as HTMLElement;
76
+ if (el.hasPointerCapture(e.pointerId)) el.releasePointerCapture(e.pointerId);
77
+ dragMode = null;
78
+ }
79
+ </script>
80
+
81
+ <!-- svelte-ignore a11y_no_static_element_interactions -->
82
+ <div
83
+ role="button"
84
+ tabindex="0"
85
+ aria-label={clip.name}
86
+ aria-pressed={selected}
87
+ class={[
88
+ 'absolute top-1 bottom-1 z-1 touch-none overflow-hidden rounded-md border text-left text-xs text-white shadow-sm',
89
+ selected
90
+ ? 'z-10 border-2 border-white shadow-md ring-2 ring-brand-500 ring-offset-1 ring-offset-surface'
91
+ : 'border-black/25',
92
+ locked ? 'cursor-not-allowed' : 'cursor-grab active:cursor-grabbing',
93
+ className
94
+ ]}
95
+ style:left={`${left}px`}
96
+ style:width={`${width}px`}
97
+ style:background={bg}
98
+ style:opacity={locked ? Math.min(0.7, clip.opacity ?? 1) : (clip.opacity ?? 1)}
99
+ style:filter={selected ? 'brightness(1.12)' : undefined}
100
+ data-marquee-id={clip.id}
101
+ onclick={(e) => {
102
+ e.stopPropagation();
103
+ onclick?.(e);
104
+ }}
105
+ oncontextmenu={(e) => {
106
+ e.preventDefault();
107
+ e.stopPropagation();
108
+ oncontextmenu?.(e);
109
+ }}
110
+ onpointerdown={beginMove}
111
+ onpointermove={onPointerMove}
112
+ onpointerup={onPointerUp}
113
+ ondragover={(e) => {
114
+ e.preventDefault();
115
+ e.stopPropagation();
116
+ ondragoverclip?.(e);
117
+ }}
118
+ ondrop={(e) => {
119
+ e.preventDefault();
120
+ e.stopPropagation();
121
+ ondropclip?.(e);
122
+ }}
123
+ >
124
+ <!-- CapCut-style: In wedge -->
125
+ {#if clip.animationIn && inW > 2}
126
+ <div
127
+ class="pointer-events-none absolute inset-y-0 left-0 z-0 bg-gradient-to-r from-emerald-400/70 to-transparent"
128
+ style:width={`${inW}px`}
129
+ title={`In: ${clip.animationIn.type}`}
130
+ ></div>
131
+ {/if}
132
+ <!-- CapCut-style: Out wedge -->
133
+ {#if clip.animationOut && outW > 2}
134
+ <div
135
+ class="pointer-events-none absolute inset-y-0 right-0 z-0 bg-gradient-to-l from-amber-400/70 to-transparent"
136
+ style:width={`${outW}px`}
137
+ title={`Out: ${clip.animationOut.type}`}
138
+ ></div>
139
+ {/if}
140
+ <!-- Transition window at clip end -->
141
+ {#if clip.transitionOut && transW > 2}
142
+ <div
143
+ class="pointer-events-none absolute inset-y-0 right-0 z-[1] bg-gradient-to-l from-fuchsia-500/55 to-transparent"
144
+ style:width={`${transW}px`}
145
+ title={`Transition: ${clip.transitionOut.type} · ${(clip.transitionOut.durationMs / 1000).toFixed(1)}s`}
146
+ ></div>
147
+ {/if}
148
+ <!-- CapCut-style: transition diamond at clip end -->
149
+ {#if clip.transitionOut}
150
+ <div
151
+ class="pointer-events-none absolute top-1/2 right-0 z-20 flex h-4 w-4 -translate-y-1/2 translate-x-1/2 items-center justify-center"
152
+ title={`Transition: ${clip.transitionOut.type}`}
153
+ >
154
+ <span
155
+ class="block h-2.5 w-2.5 rotate-45 border border-white/80 bg-fuchsia-400 shadow-sm"
156
+ ></span>
157
+ </div>
158
+ {/if}
159
+
160
+ <TrimHandle
161
+ side="start"
162
+ disabled={locked}
163
+ ondragstart={(e) => {
164
+ originX = e.clientX;
165
+ originStart = clip.startMs;
166
+ }}
167
+ ondrag={(e) => {
168
+ const deltaMs = (e.clientX - originX) / pxPerMs;
169
+ ontrimstart?.(originStart + deltaMs);
170
+ }}
171
+ />
172
+ <div class="pointer-events-none relative z-10 flex h-full items-center gap-1.5 overflow-hidden px-2">
173
+ <MediaKindIcon kind={clip.kind} size="sm" class="shrink-0 opacity-90" />
174
+ <span class="truncate font-medium">{clip.name}</span>
175
+ {#if clip.animationIn || clip.animationOut}
176
+ <span class="ml-auto shrink-0 rounded bg-black/25 px-1 text-[9px] uppercase tracking-wide">
177
+ {clip.animationIn && clip.animationOut ? 'I/O' : clip.animationIn ? 'In' : 'Out'}
178
+ </span>
179
+ {/if}
180
+ </div>
181
+ <TrimHandle
182
+ side="end"
183
+ disabled={locked}
184
+ ondragstart={(e) => {
185
+ originX = e.clientX;
186
+ originStart = clip.endMs;
187
+ }}
188
+ ondrag={(e) => {
189
+ const deltaMs = (e.clientX - originX) / pxPerMs;
190
+ ontrimend?.(originStart + deltaMs);
191
+ }}
192
+ />
193
+ </div>
@@ -0,0 +1,18 @@
1
+ import type { MediaClip } from '../../../utils/mediaTracks.js';
2
+ interface TimelineClipProps {
3
+ clip: MediaClip;
4
+ pxPerMs?: number;
5
+ selected?: boolean;
6
+ locked?: boolean;
7
+ class?: string;
8
+ onclick?: (e: MouseEvent) => void;
9
+ oncontextmenu?: (e: MouseEvent) => void;
10
+ onmove?: (startMs: number) => void;
11
+ ontrimstart?: (startMs: number) => void;
12
+ ontrimend?: (endMs: number) => void;
13
+ ondragoverclip?: (e: DragEvent) => void;
14
+ ondropclip?: (e: DragEvent) => void;
15
+ }
16
+ declare const TimelineClip: import("svelte").Component<TimelineClipProps, {}, "">;
17
+ type TimelineClip = ReturnType<typeof TimelineClip>;
18
+ export default TimelineClip;
@@ -0,0 +1,18 @@
1
+ <script lang="ts">
2
+ import TimelineClip from './TimelineClip.svelte';
3
+ import type { MediaClip } from '../../../utils/mediaTracks.js';
4
+
5
+ const clip: MediaClip = {
6
+ id: 'c1',
7
+ trackId: 't1',
8
+ name: 'Intro',
9
+ kind: 'video',
10
+ startMs: 1000,
11
+ endMs: 8000,
12
+ color: '#8b5cf6'
13
+ };
14
+ </script>
15
+
16
+ <div class="relative h-12 w-full rounded-lg border border-border bg-surface">
17
+ <TimelineClip {clip} pxPerMs={0.08} selected />
18
+ </div>
@@ -0,0 +1,18 @@
1
+ interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
2
+ new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
3
+ $$bindings?: Bindings;
4
+ } & Exports;
5
+ (internal: unknown, props: {
6
+ $$events?: Events;
7
+ $$slots?: Slots;
8
+ }): Exports & {
9
+ $set?: any;
10
+ $on?: any;
11
+ };
12
+ z_$$bindings?: Bindings;
13
+ }
14
+ declare const TimelineClipStory: $$__sveltets_2_IsomorphicComponent<Record<string, never>, {
15
+ [evt: string]: CustomEvent<any>;
16
+ }, {}, {}, string>;
17
+ type TimelineClipStory = InstanceType<typeof TimelineClipStory>;
18
+ export default TimelineClipStory;
@@ -0,0 +1,8 @@
1
+ import TimelineTrackStory from './TimelineTrackStory.svelte';
2
+ const meta = {
3
+ title: 'Molecules/TimelineTrack',
4
+ component: TimelineTrackStory,
5
+ tags: ['autodocs']
6
+ };
7
+ export default meta;
8
+ export const Default = {};