@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,112 @@
1
+ <script lang="ts">
2
+ import IconButton from '../../atoms/IconButton/IconButton.svelte';
3
+ import type { MediaTrack } from '../../../utils/mediaTracks.js';
4
+ import Volume2 from '@lucide/svelte/icons/volume-2';
5
+ import VolumeX from '@lucide/svelte/icons/volume-x';
6
+ import Lock from '@lucide/svelte/icons/lock';
7
+ import LockOpen from '@lucide/svelte/icons/lock-open';
8
+ import Headphones from '@lucide/svelte/icons/headphones';
9
+ import GripVertical from '@lucide/svelte/icons/grip-vertical';
10
+ import Trash2 from '@lucide/svelte/icons/trash-2';
11
+
12
+ interface VideoTrackHeaderProps {
13
+ track: MediaTrack;
14
+ class?: string;
15
+ draggable?: boolean;
16
+ canRemove?: boolean;
17
+ dragging?: boolean;
18
+ onchange?: (track: MediaTrack) => void;
19
+ onremove?: (trackId: string) => void;
20
+ /** Pointer-based reorder (preferred over HTML5 drag) */
21
+ onreorderstart?: (trackId: string, e: PointerEvent) => void;
22
+ }
23
+
24
+ let {
25
+ track,
26
+ class: className = '',
27
+ draggable = false,
28
+ canRemove = false,
29
+ dragging = false,
30
+ onchange,
31
+ onremove,
32
+ onreorderstart
33
+ }: VideoTrackHeaderProps = $props();
34
+
35
+ function patch(partial: Partial<MediaTrack>) {
36
+ onchange?.({ ...track, ...partial });
37
+ }
38
+ </script>
39
+
40
+ <div class={['flex min-w-0 flex-1 items-center gap-1', className, dragging && 'pointer-events-none']}>
41
+ {#if draggable}
42
+ <button
43
+ type="button"
44
+ class="flex h-6 w-5 shrink-0 cursor-grab touch-none items-center justify-center rounded text-muted hover:bg-surface-overlay hover:text-secondary active:cursor-grabbing"
45
+ aria-label={`Reorder ${track.name}`}
46
+ title="Drag to reorder"
47
+ data-marquee-ignore
48
+ onpointerdown={(e) => {
49
+ if (e.button !== 0) return;
50
+ e.preventDefault();
51
+ e.stopPropagation();
52
+ onreorderstart?.(track.id, e);
53
+ }}
54
+ >
55
+ <GripVertical class="h-3.5 w-3.5" />
56
+ </button>
57
+ {/if}
58
+ <span
59
+ class="h-2 w-2 shrink-0 rounded-full"
60
+ style:background={track.color ?? (track.kind === 'audio' ? '#10b981' : '#3b82f6')}
61
+ aria-hidden="true"
62
+ ></span>
63
+ <span class="min-w-0 flex-1 truncate text-xs font-semibold text-primary" title={track.name}>
64
+ {track.name}
65
+ </span>
66
+ {#if !dragging}
67
+ <div class="flex shrink-0 items-center">
68
+ <IconButton
69
+ label={track.muted ? 'Unmute' : 'Mute'}
70
+ size="xs"
71
+ class="!h-5 !w-5"
72
+ onclick={() => patch({ muted: !track.muted })}
73
+ >
74
+ {#if track.muted}
75
+ <VolumeX class="h-3 w-3" />
76
+ {:else}
77
+ <Volume2 class="h-3 w-3" />
78
+ {/if}
79
+ </IconButton>
80
+ <IconButton
81
+ label={track.solo ? 'Unsolo' : 'Solo'}
82
+ size="xs"
83
+ class="!h-5 !w-5"
84
+ onclick={() => patch({ solo: !track.solo })}
85
+ >
86
+ <Headphones class={['h-3 w-3', track.solo && 'text-brand-500']} />
87
+ </IconButton>
88
+ <IconButton
89
+ label={track.locked ? 'Unlock' : 'Lock'}
90
+ size="xs"
91
+ class="!h-5 !w-5"
92
+ onclick={() => patch({ locked: !track.locked })}
93
+ >
94
+ {#if track.locked}
95
+ <Lock class="h-3 w-3" />
96
+ {:else}
97
+ <LockOpen class="h-3 w-3" />
98
+ {/if}
99
+ </IconButton>
100
+ {#if canRemove && onremove}
101
+ <IconButton
102
+ label="Delete track"
103
+ size="xs"
104
+ class="!h-5 !w-5"
105
+ onclick={() => onremove(track.id)}
106
+ >
107
+ <Trash2 class="h-3 w-3" />
108
+ </IconButton>
109
+ {/if}
110
+ </div>
111
+ {/if}
112
+ </div>
@@ -0,0 +1,15 @@
1
+ import type { MediaTrack } from '../../../utils/mediaTracks.js';
2
+ interface VideoTrackHeaderProps {
3
+ track: MediaTrack;
4
+ class?: string;
5
+ draggable?: boolean;
6
+ canRemove?: boolean;
7
+ dragging?: boolean;
8
+ onchange?: (track: MediaTrack) => void;
9
+ onremove?: (trackId: string) => void;
10
+ /** Pointer-based reorder (preferred over HTML5 drag) */
11
+ onreorderstart?: (trackId: string, e: PointerEvent) => void;
12
+ }
13
+ declare const VideoTrackHeader: import("svelte").Component<VideoTrackHeaderProps, {}, "">;
14
+ type VideoTrackHeader = ReturnType<typeof VideoTrackHeader>;
15
+ export default VideoTrackHeader;
@@ -0,0 +1,10 @@
1
+ <script lang="ts">
2
+ import VideoTrackHeader from './VideoTrackHeader.svelte';
3
+ import { createMediaTrack } from '../../../utils/mediaTracks.js';
4
+
5
+ let track = $state(createMediaTrack({ name: 'V1', kind: 'video', color: '#3b82f6' }));
6
+ </script>
7
+
8
+ <div class="w-48 rounded-lg border border-border bg-surface-elevated p-2">
9
+ <VideoTrackHeader {track} onchange={(t) => (track = t)} />
10
+ </div>
@@ -0,0 +1,3 @@
1
+ declare const VideoTrackHeaderStory: import("svelte").Component<Record<string, never>, {}, "">;
2
+ type VideoTrackHeaderStory = ReturnType<typeof VideoTrackHeaderStory>;
3
+ export default VideoTrackHeaderStory;
@@ -0,0 +1,8 @@
1
+ import VideoTransitionsPanelStory from './VideoTransitionsPanelStory.svelte';
2
+ const meta = {
3
+ title: 'Molecules/VideoTransitionsPanel',
4
+ component: VideoTransitionsPanelStory,
5
+ tags: ['autodocs']
6
+ };
7
+ export default meta;
8
+ export const Default = {};
@@ -0,0 +1,113 @@
1
+ <script lang="ts" module>
2
+ export interface VideoTransitionDef {
3
+ id: string;
4
+ label: string;
5
+ group: string;
6
+ type: string;
7
+ durationMs: number;
8
+ glyph?: string;
9
+ }
10
+
11
+ export const VIDEO_TRANSITION_MIME = 'application/x-r2-video-transition';
12
+ </script>
13
+
14
+ <script lang="ts">
15
+ interface VideoTransitionsPanelProps {
16
+ class?: string;
17
+ disabled?: boolean;
18
+ hint?: string;
19
+ onapply?: (def: VideoTransitionDef) => void;
20
+ }
21
+
22
+ let {
23
+ class: className = '',
24
+ disabled = false,
25
+ hint = 'Select a clip, or drag onto its end',
26
+ onapply
27
+ }: VideoTransitionsPanelProps = $props();
28
+
29
+ const transitions: VideoTransitionDef[] = [
30
+ /* Dissolve */
31
+ { id: 'crossfade', label: 'Crossfade', group: 'Dissolve', type: 'crossfade', durationMs: 900, glyph: '╳' },
32
+ { id: 'dip-black', label: 'Dip black', group: 'Dissolve', type: 'dip-black', durationMs: 1000, glyph: '■' },
33
+ { id: 'dip-white', label: 'Dip white', group: 'Dissolve', type: 'dip-white', durationMs: 1000, glyph: '□' },
34
+ { id: 'fade-soft', label: 'Soft fade', group: 'Dissolve', type: 'fade-soft', durationMs: 1200, glyph: '≈' },
35
+ { id: 'blur-dissolve', label: 'Blur', group: 'Dissolve', type: 'blur', durationMs: 1000, glyph: '◈' },
36
+ { id: 'flash', label: 'Flash', group: 'Dissolve', type: 'flash', durationMs: 500, glyph: '⚡' },
37
+ /* Wipe */
38
+ { id: 'wipe-left', label: 'Wipe left', group: 'Wipe', type: 'wipe-left', durationMs: 900, glyph: '◀' },
39
+ { id: 'wipe-right', label: 'Wipe right', group: 'Wipe', type: 'wipe-right', durationMs: 900, glyph: '▶' },
40
+ { id: 'wipe-up', label: 'Wipe up', group: 'Wipe', type: 'wipe-up', durationMs: 900, glyph: '▲' },
41
+ { id: 'wipe-down', label: 'Wipe down', group: 'Wipe', type: 'wipe-down', durationMs: 900, glyph: '▼' },
42
+ { id: 'wipe-diagonal', label: 'Diagonal', group: 'Wipe', type: 'wipe-diagonal', durationMs: 900, glyph: '╱' },
43
+ { id: 'iris', label: 'Iris', group: 'Wipe', type: 'iris', durationMs: 900, glyph: '◎' },
44
+ { id: 'barn-doors', label: 'Barn doors', group: 'Wipe', type: 'barn-doors', durationMs: 900, glyph: ' ⟺ ' },
45
+ /* Move */
46
+ { id: 'push-left', label: 'Push left', group: 'Move', type: 'push-left', durationMs: 900, glyph: '⇇' },
47
+ { id: 'push-right', label: 'Push right', group: 'Move', type: 'push-right', durationMs: 900, glyph: '⇉' },
48
+ { id: 'push-up', label: 'Push up', group: 'Move', type: 'push-up', durationMs: 900, glyph: '⇈' },
49
+ { id: 'push-down', label: 'Push down', group: 'Move', type: 'push-down', durationMs: 900, glyph: '⇊' },
50
+ { id: 'slide-left', label: 'Slide left', group: 'Move', type: 'slide-left', durationMs: 900, glyph: '◁' },
51
+ { id: 'slide-right', label: 'Slide right', group: 'Move', type: 'slide-right', durationMs: 900, glyph: '▷' },
52
+ /* Style */
53
+ { id: 'zoom-through', label: 'Zoom in', group: 'Style', type: 'zoom-in', durationMs: 900, glyph: '⊕' },
54
+ { id: 'zoom-out', label: 'Zoom out', group: 'Style', type: 'zoom-out', durationMs: 900, glyph: '⊖' },
55
+ { id: 'spin', label: 'Spin', group: 'Style', type: 'spin', durationMs: 900, glyph: '↻' },
56
+ { id: 'flip-x', label: 'Flip H', group: 'Style', type: 'flip-x', durationMs: 900, glyph: '↔' },
57
+ { id: 'flip-y', label: 'Flip V', group: 'Style', type: 'flip-y', durationMs: 900, glyph: '↕' },
58
+ { id: 'squeeze-h', label: 'Squeeze H', group: 'Style', type: 'squeeze-h', durationMs: 800, glyph: '↔︎' },
59
+ { id: 'squeeze-v', label: 'Squeeze V', group: 'Style', type: 'squeeze-v', durationMs: 800, glyph: '↕︎' }
60
+ ];
61
+
62
+ const groups = $derived(
63
+ [...new Set(transitions.map((t) => t.group))].map((group) => ({
64
+ group,
65
+ items: transitions.filter((t) => t.group === group)
66
+ }))
67
+ );
68
+
69
+ function onDragStart(e: DragEvent, item: VideoTransitionDef) {
70
+ if (disabled) {
71
+ e.preventDefault();
72
+ return;
73
+ }
74
+ e.dataTransfer?.setData(VIDEO_TRANSITION_MIME, JSON.stringify(item));
75
+ e.dataTransfer?.setData('text/plain', item.label);
76
+ if (e.dataTransfer) e.dataTransfer.effectAllowed = 'copy';
77
+ }
78
+ </script>
79
+
80
+ <div class={['flex flex-col gap-4 p-2', className]}>
81
+ {#if disabled}
82
+ <p class="px-1 py-4 text-center text-xs text-muted">{hint}</p>
83
+ {:else}
84
+ <p class="px-1 text-[10px] leading-relaxed text-muted">
85
+ CapCut-style: transition sits at the <strong class="font-medium text-secondary">end</strong> of
86
+ a clip (into the next). Drag onto a clip or click with one selected.
87
+ </p>
88
+ {/if}
89
+ {#each groups as { group, items } (group)}
90
+ <section class="flex flex-col gap-2">
91
+ <h3 class="px-1 text-[10px] font-semibold uppercase tracking-wide text-muted">{group}</h3>
92
+ <div class="grid grid-cols-3 gap-1.5">
93
+ {#each items as item (item.id)}
94
+ <button
95
+ type="button"
96
+ disabled={disabled}
97
+ draggable={!disabled}
98
+ ondragstart={(e) => onDragStart(e, item)}
99
+ class="flex cursor-grab flex-col items-center gap-1.5 rounded-lg border border-border bg-surface-elevated px-1.5 py-2 text-center transition-colors enabled:hover:border-brand-500/50 enabled:hover:bg-surface-overlay active:cursor-grabbing disabled:cursor-not-allowed disabled:opacity-50"
100
+ onclick={() => onapply?.(item)}
101
+ >
102
+ <span
103
+ class="flex h-9 w-full items-center justify-center rounded-md bg-surface text-sm font-semibold text-secondary"
104
+ >
105
+ {item.glyph ?? item.label.slice(0, 2)}
106
+ </span>
107
+ <span class="text-[10px] font-medium text-secondary">{item.label}</span>
108
+ </button>
109
+ {/each}
110
+ </div>
111
+ </section>
112
+ {/each}
113
+ </div>
@@ -0,0 +1,18 @@
1
+ export interface VideoTransitionDef {
2
+ id: string;
3
+ label: string;
4
+ group: string;
5
+ type: string;
6
+ durationMs: number;
7
+ glyph?: string;
8
+ }
9
+ export declare const VIDEO_TRANSITION_MIME = "application/x-r2-video-transition";
10
+ interface VideoTransitionsPanelProps {
11
+ class?: string;
12
+ disabled?: boolean;
13
+ hint?: string;
14
+ onapply?: (def: VideoTransitionDef) => void;
15
+ }
16
+ declare const VideoTransitionsPanel: import("svelte").Component<VideoTransitionsPanelProps, {}, "">;
17
+ type VideoTransitionsPanel = ReturnType<typeof VideoTransitionsPanel>;
18
+ export default VideoTransitionsPanel;
@@ -0,0 +1,7 @@
1
+ <script lang="ts">
2
+ import VideoTransitionsPanel from './VideoTransitionsPanel.svelte';
3
+ </script>
4
+
5
+ <div class="h-96 w-72 rounded-lg border border-border bg-surface">
6
+ <VideoTransitionsPanel onapply={(d) => console.log('trans', d)} />
7
+ </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 VideoTransitionsPanelStory: $$__sveltets_2_IsomorphicComponent<Record<string, never>, {
15
+ [evt: string]: CustomEvent<any>;
16
+ }, {}, {}, string>;
17
+ type VideoTransitionsPanelStory = InstanceType<typeof VideoTransitionsPanelStory>;
18
+ export default VideoTransitionsPanelStory;
@@ -0,0 +1,8 @@
1
+ import WaveformRegionStory from './WaveformRegionStory.svelte';
2
+ const meta = {
3
+ title: 'Molecules/WaveformRegion',
4
+ component: WaveformRegionStory,
5
+ tags: ['autodocs']
6
+ };
7
+ export default meta;
8
+ export const Default = {};
@@ -0,0 +1,82 @@
1
+ <script lang="ts">
2
+ import WaveBars from '../../atoms/WaveBars/WaveBars.svelte';
3
+ import type { MediaClip } from '../../../utils/mediaTracks.js';
4
+ import { msToPx } from '../../../utils/mediaTime.js';
5
+
6
+ interface WaveformRegionProps {
7
+ clip: MediaClip;
8
+ pxPerMs?: number;
9
+ selected?: boolean;
10
+ progress?: number;
11
+ class?: string;
12
+ onclick?: (e: MouseEvent) => void;
13
+ onmove?: (startMs: number) => void;
14
+ }
15
+
16
+ let {
17
+ clip,
18
+ pxPerMs = 0.05,
19
+ selected = false,
20
+ progress,
21
+ class: className = '',
22
+ onclick,
23
+ onmove
24
+ }: WaveformRegionProps = $props();
25
+
26
+ const left = $derived(msToPx(clip.startMs, pxPerMs));
27
+ const width = $derived(Math.max(24, msToPx(clip.endMs - clip.startMs, pxPerMs)));
28
+ const bg = $derived(clip.color ?? '#3b82f6');
29
+
30
+ let dragging = $state(false);
31
+ let originX = $state(0);
32
+ let originStart = $state(0);
33
+
34
+ function onPointerDown(e: PointerEvent) {
35
+ (e.currentTarget as HTMLElement).setPointerCapture(e.pointerId);
36
+ dragging = true;
37
+ originX = e.clientX;
38
+ originStart = clip.startMs;
39
+ }
40
+
41
+ function onPointerMove(e: PointerEvent) {
42
+ if (!dragging) return;
43
+ const deltaMs = (e.clientX - originX) / pxPerMs;
44
+ onmove?.(Math.max(0, originStart + deltaMs));
45
+ }
46
+
47
+ function onPointerUp(e: PointerEvent) {
48
+ (e.currentTarget as HTMLElement).releasePointerCapture(e.pointerId);
49
+ dragging = false;
50
+ }
51
+ </script>
52
+
53
+ <!-- svelte-ignore a11y_no_static_element_interactions -->
54
+ <div
55
+ role="button"
56
+ tabindex="0"
57
+ aria-label={clip.name}
58
+ aria-pressed={selected}
59
+ class={[
60
+ 'absolute top-1 bottom-1 overflow-hidden rounded-md border px-1',
61
+ selected ? 'ring-2 ring-white/70' : 'border-black/20',
62
+ dragging ? 'cursor-grabbing' : 'cursor-grab',
63
+ className
64
+ ]}
65
+ style:left={`${left}px`}
66
+ style:width={`${width}px`}
67
+ style:background={`${bg}cc`}
68
+ onclick={(e) => {
69
+ e.stopPropagation();
70
+ onclick?.(e);
71
+ }}
72
+ onpointerdown={onPointerDown}
73
+ onpointermove={onPointerMove}
74
+ onpointerup={onPointerUp}
75
+ >
76
+ <span class="pointer-events-none absolute left-1 top-0.5 z-10 truncate text-[10px] font-medium text-white">
77
+ {clip.name}
78
+ </span>
79
+ <div class="pointer-events-none mt-3 h-[calc(100%-0.75rem)]">
80
+ <WaveBars height={28} progress={progress} tone="neutral" class="opacity-90" />
81
+ </div>
82
+ </div>
@@ -0,0 +1,13 @@
1
+ import type { MediaClip } from '../../../utils/mediaTracks.js';
2
+ interface WaveformRegionProps {
3
+ clip: MediaClip;
4
+ pxPerMs?: number;
5
+ selected?: boolean;
6
+ progress?: number;
7
+ class?: string;
8
+ onclick?: (e: MouseEvent) => void;
9
+ onmove?: (startMs: number) => void;
10
+ }
11
+ declare const WaveformRegion: import("svelte").Component<WaveformRegionProps, {}, "">;
12
+ type WaveformRegion = ReturnType<typeof WaveformRegion>;
13
+ export default WaveformRegion;
@@ -0,0 +1,17 @@
1
+ <script lang="ts">
2
+ import WaveformRegion from './WaveformRegion.svelte';
3
+ import { createMediaClip } from '../../../utils/mediaTracks.js';
4
+
5
+ const clip = createMediaClip({
6
+ trackId: 't1',
7
+ name: 'Drums',
8
+ kind: 'audio',
9
+ startMs: 500,
10
+ endMs: 9000,
11
+ color: '#3b82f6'
12
+ });
13
+ </script>
14
+
15
+ <div class="relative h-16 w-full rounded-lg border border-border bg-surface">
16
+ <WaveformRegion {clip} pxPerMs={0.06} selected progress={0.35} />
17
+ </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 WaveformRegionStory: $$__sveltets_2_IsomorphicComponent<Record<string, never>, {
15
+ [evt: string]: CustomEvent<any>;
16
+ }, {}, {}, string>;
17
+ type WaveformRegionStory = InstanceType<typeof WaveformRegionStory>;
18
+ export default WaveformRegionStory;
@@ -19,8 +19,10 @@
19
19
  width?: number;
20
20
  /** Board height in px (modo scroll + fixed; en auto se redondea a celdas) */
21
21
  height?: number;
22
- /** Altura visible del viewport */
22
+ /** Altura visible del viewport (ignored when `fill` is true) */
23
23
  viewportHeight?: number;
24
+ /** Fill parent height instead of fixed viewportHeight */
25
+ fill?: boolean;
24
26
  /** scroll = tablero grande · fit/fullscreen = sin scroll */
25
27
  mode?: 'scroll' | 'fit' | 'fullscreen';
26
28
  showGrid?: boolean;
@@ -38,6 +40,7 @@
38
40
  width = 1600,
39
41
  height = 1000,
40
42
  viewportHeight = 520,
43
+ fill = false,
41
44
  mode = $bindable<'scroll' | 'fit' | 'fullscreen'>('scroll'),
42
45
  showGrid = $bindable(true),
43
46
  snap = $bindable(true),
@@ -135,7 +138,9 @@
135
138
  setContext(WIDGET_CANVAS_CONTEXT, api);
136
139
 
137
140
  const overflowClass = $derived(mode === 'scroll' ? 'overflow-auto' : 'overflow-hidden');
138
- const effectiveViewportHeight = $derived(mode === 'fullscreen' ? '100vh' : `${viewportHeight}px`);
141
+ const effectiveViewportHeight = $derived(
142
+ fill ? '100%' : mode === 'fullscreen' ? '100vh' : `${viewportHeight}px`
143
+ );
139
144
 
140
145
  const statusLabel = $derived.by(() => {
141
146
  const b = getBounds();
@@ -195,7 +200,7 @@
195
200
  });
196
201
  </script>
197
202
 
198
- <div class={['flex w-full flex-col gap-2', className]}>
203
+ <div class={['flex w-full flex-col gap-2', fill && 'h-full min-h-0', className]}>
199
204
  {#if controls}
200
205
  <div
201
206
  class="flex flex-wrap items-center gap-2 rounded-xl border border-border bg-surface-elevated px-3 py-2"
@@ -263,7 +268,11 @@
263
268
  {/if}
264
269
 
265
270
  <div
266
- class={['w-full rounded-2xl border border-border bg-surface', overflowClass].join(' ')}
271
+ class={[
272
+ 'w-full border border-border bg-surface',
273
+ fill ? 'min-h-0 flex-1 rounded-none' : 'rounded-2xl',
274
+ overflowClass
275
+ ].join(' ')}
267
276
  style={`height:${effectiveViewportHeight};`}
268
277
  bind:this={viewportEl}
269
278
  >
@@ -4,8 +4,10 @@ interface WidgetCanvasProps {
4
4
  width?: number;
5
5
  /** Board height in px (modo scroll + fixed; en auto se redondea a celdas) */
6
6
  height?: number;
7
- /** Altura visible del viewport */
7
+ /** Altura visible del viewport (ignored when `fill` is true) */
8
8
  viewportHeight?: number;
9
+ /** Fill parent height instead of fixed viewportHeight */
10
+ fill?: boolean;
9
11
  /** scroll = tablero grande · fit/fullscreen = sin scroll */
10
12
  mode?: 'scroll' | 'fit' | 'fullscreen';
11
13
  showGrid?: boolean;
@@ -15,6 +15,8 @@ export interface WidgetCanvasContext {
15
15
  readonly cellSize: number;
16
16
  readonly autoCells: number;
17
17
  readonly cellSizeMode: 'fixed' | 'auto';
18
+ /** Visual scale of the board (screen px / board px). Default 1. */
19
+ readonly scale?: number;
18
20
  getBounds: () => WidgetCanvasBounds;
19
21
  snapValue: (value: number) => number;
20
22
  snapRect: (rect: WidgetRect, minW: number, minH: number) => WidgetRect;