@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,135 @@
1
+ <script lang="ts">
2
+ import IconButton from '../../atoms/IconButton/IconButton.svelte';
3
+ import VolumeControl from '../VolumeControl/VolumeControl.svelte';
4
+ import Toolbar from '../Toolbar/Toolbar.svelte';
5
+ import { formatTimecode } from '../../../utils/mediaTime.js';
6
+ import Play from '@lucide/svelte/icons/play';
7
+ import Pause from '@lucide/svelte/icons/pause';
8
+ import Square from '@lucide/svelte/icons/square';
9
+ import SkipBack from '@lucide/svelte/icons/skip-back';
10
+ import SkipForward from '@lucide/svelte/icons/skip-forward';
11
+ import ArrowLeftToLine from '@lucide/svelte/icons/arrow-left-to-line';
12
+ import ArrowRightToLine from '@lucide/svelte/icons/arrow-right-to-line';
13
+
14
+ const RATE_OPTIONS = [0.5, 1, 1.5, 2] as const;
15
+
16
+ interface TransportControlsProps {
17
+ playing?: boolean;
18
+ currentTimeMs?: number;
19
+ durationMs?: number;
20
+ playbackRate?: number;
21
+ muted?: boolean;
22
+ volume?: number;
23
+ /** Skip step in ms (default 5s) */
24
+ skipMs?: number;
25
+ class?: string;
26
+ onplay?: () => void;
27
+ onpause?: () => void;
28
+ onstop?: () => void;
29
+ onseekstart?: () => void;
30
+ onseekend?: () => void;
31
+ onseekback?: () => void;
32
+ onseekforward?: () => void;
33
+ onratechange?: (rate: number) => void;
34
+ onmutechange?: (muted: boolean) => void;
35
+ onvolumechange?: (volume: number) => void;
36
+ }
37
+
38
+ let {
39
+ playing = false,
40
+ currentTimeMs = 0,
41
+ durationMs = 0,
42
+ playbackRate = $bindable(1),
43
+ muted = $bindable(false),
44
+ volume = $bindable(1),
45
+ skipMs = 5000,
46
+ class: className = '',
47
+ onplay,
48
+ onpause,
49
+ onstop,
50
+ onseekstart,
51
+ onseekend,
52
+ onseekback,
53
+ onseekforward,
54
+ onratechange,
55
+ onmutechange,
56
+ onvolumechange
57
+ }: TransportControlsProps = $props();
58
+
59
+ function cycleRate() {
60
+ const idx = RATE_OPTIONS.indexOf(playbackRate as (typeof RATE_OPTIONS)[number]);
61
+ const next = RATE_OPTIONS[(idx + 1) % RATE_OPTIONS.length] ?? 1;
62
+ playbackRate = next;
63
+ onratechange?.(next);
64
+ }
65
+
66
+ const rateLabel = $derived(`${playbackRate}×`);
67
+ </script>
68
+
69
+ <Toolbar label="Transport" dense class={className}>
70
+ {#snippet center()}
71
+ <IconButton label="Go to start" size="sm" variant="ghost" onclick={() => onseekstart?.()}>
72
+ <ArrowLeftToLine class="h-4 w-4" />
73
+ </IconButton>
74
+ <IconButton
75
+ label={`Skip back ${skipMs / 1000}s`}
76
+ size="sm"
77
+ variant="ghost"
78
+ onclick={() => onseekback?.()}
79
+ >
80
+ <SkipBack class="h-4 w-4" />
81
+ </IconButton>
82
+ <IconButton
83
+ label={playing ? 'Pause' : 'Play'}
84
+ size="sm"
85
+ variant="secondary"
86
+ onclick={() => (playing ? onpause?.() : onplay?.())}
87
+ >
88
+ {#if playing}
89
+ <Pause class="h-4 w-4" />
90
+ {:else}
91
+ <Play class="h-4 w-4" />
92
+ {/if}
93
+ </IconButton>
94
+ <IconButton
95
+ label={`Skip forward ${skipMs / 1000}s`}
96
+ size="sm"
97
+ variant="ghost"
98
+ onclick={() => onseekforward?.()}
99
+ >
100
+ <SkipForward class="h-4 w-4" />
101
+ </IconButton>
102
+ <IconButton label="Go to end" size="sm" variant="ghost" onclick={() => onseekend?.()}>
103
+ <ArrowRightToLine class="h-4 w-4" />
104
+ </IconButton>
105
+ <IconButton label="Stop" size="sm" variant="ghost" onclick={() => onstop?.()}>
106
+ <Square class="h-3.5 w-3.5" />
107
+ </IconButton>
108
+
109
+ <button
110
+ type="button"
111
+ class="ml-1 inline-flex h-7 min-w-9 items-center justify-center rounded-md px-1.5 font-mono text-[11px] font-semibold tabular-nums text-secondary transition-colors hover:bg-surface-overlay hover:text-primary"
112
+ aria-label={`Playback speed ${rateLabel}`}
113
+ title="Playback speed"
114
+ onclick={cycleRate}
115
+ >
116
+ {rateLabel}
117
+ </button>
118
+
119
+ <span class="ml-2 font-mono text-xs text-secondary tabular-nums">
120
+ {formatTimecode(currentTimeMs)}
121
+ <span class="text-muted"> / </span>
122
+ {formatTimecode(durationMs)}
123
+ </span>
124
+ {/snippet}
125
+
126
+ {#snippet end()}
127
+ <VolumeControl
128
+ bind:value={volume}
129
+ bind:muted
130
+ variant="compact"
131
+ onchange={(v) => onvolumechange?.(v)}
132
+ onmutechange={(m) => onmutechange?.(m)}
133
+ />
134
+ {/snippet}
135
+ </Toolbar>
@@ -0,0 +1,24 @@
1
+ interface TransportControlsProps {
2
+ playing?: boolean;
3
+ currentTimeMs?: number;
4
+ durationMs?: number;
5
+ playbackRate?: number;
6
+ muted?: boolean;
7
+ volume?: number;
8
+ /** Skip step in ms (default 5s) */
9
+ skipMs?: number;
10
+ class?: string;
11
+ onplay?: () => void;
12
+ onpause?: () => void;
13
+ onstop?: () => void;
14
+ onseekstart?: () => void;
15
+ onseekend?: () => void;
16
+ onseekback?: () => void;
17
+ onseekforward?: () => void;
18
+ onratechange?: (rate: number) => void;
19
+ onmutechange?: (muted: boolean) => void;
20
+ onvolumechange?: (volume: number) => void;
21
+ }
22
+ declare const TransportControls: import("svelte").Component<TransportControlsProps, {}, "muted" | "volume" | "playbackRate">;
23
+ type TransportControls = ReturnType<typeof TransportControls>;
24
+ export default TransportControls;
@@ -0,0 +1,40 @@
1
+ <script lang="ts">
2
+ import TransportControls from './TransportControls.svelte';
3
+
4
+ let playing = $state(false);
5
+ let t = $state(1250);
6
+ let playbackRate = $state(1);
7
+ let muted = $state(false);
8
+ let volume = $state(1);
9
+ const durationMs = 30000;
10
+ const SKIP_MS = 5000;
11
+
12
+ function seekBy(delta: number) {
13
+ t = Math.max(0, Math.min(durationMs, t + delta));
14
+ }
15
+ </script>
16
+
17
+ <div class="space-y-3 p-4">
18
+ <TransportControls
19
+ {playing}
20
+ currentTimeMs={t}
21
+ {durationMs}
22
+ bind:playbackRate
23
+ bind:muted
24
+ bind:volume
25
+ skipMs={SKIP_MS}
26
+ onplay={() => (playing = true)}
27
+ onpause={() => (playing = false)}
28
+ onstop={() => {
29
+ playing = false;
30
+ t = 0;
31
+ }}
32
+ onseekstart={() => (t = 0)}
33
+ onseekend={() => (t = durationMs)}
34
+ onseekback={() => seekBy(-SKIP_MS)}
35
+ onseekforward={() => seekBy(SKIP_MS)}
36
+ />
37
+ <p class="text-xs text-muted">
38
+ Rate {playbackRate}× · {muted ? 'Muted' : `Vol ${Math.round(volume * 100)}%`}
39
+ </p>
40
+ </div>
@@ -0,0 +1,3 @@
1
+ declare const TransportControlsStory: import("svelte").Component<Record<string, never>, {}, "">;
2
+ type TransportControlsStory = ReturnType<typeof TransportControlsStory>;
3
+ export default TransportControlsStory;
@@ -0,0 +1,8 @@
1
+ import VersionHistoryPanelStory from './VersionHistoryPanelStory.svelte';
2
+ const meta = {
3
+ title: 'Molecules/VersionHistoryPanel',
4
+ component: VersionHistoryPanelStory,
5
+ tags: ['autodocs']
6
+ };
7
+ export default meta;
8
+ export const Default = {};
@@ -0,0 +1,117 @@
1
+ <script lang="ts">
2
+ import Button from '../../atoms/Button/Button.svelte';
3
+ import VersionTag from '../../atoms/VersionTag/VersionTag.svelte';
4
+ import DiffViewer from '../DiffViewer/DiffViewer.svelte';
5
+ import TimeAgo from '../TimeAgo/TimeAgo.svelte';
6
+
7
+ export interface VersionRevision {
8
+ id: string;
9
+ label: string;
10
+ author?: string;
11
+ createdAt?: string | Date | number;
12
+ summary?: string;
13
+ content?: string;
14
+ previousContent?: string;
15
+ }
16
+
17
+ interface VersionHistoryPanelProps {
18
+ revisions?: VersionRevision[];
19
+ selectedId?: string;
20
+ currentContent?: string;
21
+ class?: string;
22
+ onselect?: (revision: VersionRevision) => void;
23
+ onrestore?: (revision: VersionRevision) => void;
24
+ }
25
+
26
+ let {
27
+ revisions = [],
28
+ selectedId = $bindable(''),
29
+ currentContent = '',
30
+ class: className = '',
31
+ onselect,
32
+ onrestore
33
+ }: VersionHistoryPanelProps = $props();
34
+
35
+ const selected = $derived(
36
+ revisions.find((r) => r.id === selectedId) ?? revisions[0] ?? null
37
+ );
38
+
39
+ $effect(() => {
40
+ if (!selectedId && revisions[0]) selectedId = revisions[0].id;
41
+ });
42
+
43
+ function pick(rev: VersionRevision) {
44
+ selectedId = rev.id;
45
+ onselect?.(rev);
46
+ }
47
+ </script>
48
+
49
+ <div
50
+ class={[
51
+ 'grid overflow-hidden rounded-xl border border-border bg-surface-elevated md:grid-cols-[240px_1fr]',
52
+ className
53
+ ]}
54
+ data-version-history
55
+ >
56
+ <aside class="max-h-[420px] overflow-auto border-b border-border md:border-b-0 md:border-r">
57
+ <ul class="p-2">
58
+ {#each revisions as rev (rev.id)}
59
+ <li>
60
+ <button
61
+ type="button"
62
+ class={[
63
+ 'flex w-full flex-col gap-0.5 rounded-lg px-2.5 py-2 text-left transition-colors',
64
+ selected?.id === rev.id
65
+ ? 'bg-brand-50 dark:bg-brand-950/40'
66
+ : 'hover:bg-surface-overlay'
67
+ ]}
68
+ onclick={() => pick(rev)}
69
+ >
70
+ <div class="flex items-center justify-between gap-2">
71
+ <span class="truncate text-sm font-medium text-primary">{rev.label}</span>
72
+ <VersionTag version={rev.label} prefix="" />
73
+ </div>
74
+ {#if rev.author || rev.createdAt}
75
+ <p class="text-[11px] text-muted">
76
+ {#if rev.author}{rev.author} · {/if}
77
+ {#if rev.createdAt}
78
+ <TimeAgo date={rev.createdAt} />
79
+ {/if}
80
+ </p>
81
+ {/if}
82
+ {#if rev.summary}
83
+ <p class="truncate text-[11px] text-secondary">{rev.summary}</p>
84
+ {/if}
85
+ </button>
86
+ </li>
87
+ {/each}
88
+ {#if !revisions.length}
89
+ <li class="px-2 py-6 text-center text-xs text-muted">No revisions</li>
90
+ {/if}
91
+ </ul>
92
+ </aside>
93
+
94
+ <section class="flex min-h-0 flex-col gap-2 p-3">
95
+ {#if selected}
96
+ <div class="flex items-center justify-between gap-2">
97
+ <div>
98
+ <p class="text-sm font-semibold text-primary">{selected.label}</p>
99
+ {#if selected.summary}
100
+ <p class="text-xs text-muted">{selected.summary}</p>
101
+ {/if}
102
+ </div>
103
+ <Button size="sm" variant="secondary" onclick={() => onrestore?.(selected)}>
104
+ Restore
105
+ </Button>
106
+ </div>
107
+ <DiffViewer
108
+ before={selected.previousContent ?? selected.content ?? ''}
109
+ after={currentContent || selected.content || ''}
110
+ mode="split"
111
+ class="min-h-[280px] flex-1"
112
+ />
113
+ {:else}
114
+ <p class="py-12 text-center text-sm text-muted">Select a revision</p>
115
+ {/if}
116
+ </section>
117
+ </div>
@@ -0,0 +1,20 @@
1
+ export interface VersionRevision {
2
+ id: string;
3
+ label: string;
4
+ author?: string;
5
+ createdAt?: string | Date | number;
6
+ summary?: string;
7
+ content?: string;
8
+ previousContent?: string;
9
+ }
10
+ interface VersionHistoryPanelProps {
11
+ revisions?: VersionRevision[];
12
+ selectedId?: string;
13
+ currentContent?: string;
14
+ class?: string;
15
+ onselect?: (revision: VersionRevision) => void;
16
+ onrestore?: (revision: VersionRevision) => void;
17
+ }
18
+ declare const VersionHistoryPanel: import("svelte").Component<VersionHistoryPanelProps, {}, "selectedId">;
19
+ type VersionHistoryPanel = ReturnType<typeof VersionHistoryPanel>;
20
+ export default VersionHistoryPanel;
@@ -0,0 +1,36 @@
1
+ <script lang="ts">
2
+ import VersionHistoryPanel from './VersionHistoryPanel.svelte';
3
+
4
+ const revisions = [
5
+ {
6
+ id: 'v3',
7
+ label: '3.0.0',
8
+ author: 'Rafa',
9
+ createdAt: Date.now() - 3600_000,
10
+ summary: 'Tweaked intro copy',
11
+ previousContent: 'Hello world\nLine two',
12
+ content: 'Hello world\nLine two\nLine three'
13
+ },
14
+ {
15
+ id: 'v2',
16
+ label: '2.1.0',
17
+ author: 'Alex',
18
+ createdAt: Date.now() - 86400_000,
19
+ summary: 'Added section',
20
+ previousContent: 'Hello world',
21
+ content: 'Hello world\nLine two'
22
+ },
23
+ {
24
+ id: 'v1',
25
+ label: '1.0.0',
26
+ author: 'Alex',
27
+ createdAt: Date.now() - 7 * 86400_000,
28
+ summary: 'Initial',
29
+ content: 'Hello world'
30
+ }
31
+ ];
32
+ </script>
33
+
34
+ <div class="p-4">
35
+ <VersionHistoryPanel {revisions} currentContent="Hello world\nLine two\nLine three\nFinal" />
36
+ </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 VersionHistoryPanelStory: $$__sveltets_2_IsomorphicComponent<Record<string, never>, {
15
+ [evt: string]: CustomEvent<any>;
16
+ }, {}, {}, string>;
17
+ type VersionHistoryPanelStory = InstanceType<typeof VersionHistoryPanelStory>;
18
+ export default VersionHistoryPanelStory;
@@ -0,0 +1,8 @@
1
+ import VideoAnimationsPanelStory from './VideoAnimationsPanelStory.svelte';
2
+ const meta = {
3
+ title: 'Molecules/VideoAnimationsPanel',
4
+ component: VideoAnimationsPanelStory,
5
+ tags: ['autodocs']
6
+ };
7
+ export default meta;
8
+ export const Default = {};
@@ -0,0 +1,213 @@
1
+ <script lang="ts" module>
2
+ export interface VideoAnimationDef {
3
+ id: string;
4
+ label: string;
5
+ group: string;
6
+ /** CapCut-style: In / Out / Combo (sets both) */
7
+ slot: 'in' | 'out' | 'combo';
8
+ type: string;
9
+ /** Used when slot is combo */
10
+ outType?: string;
11
+ durationMs: number;
12
+ glyph?: string;
13
+ }
14
+
15
+ export const VIDEO_ANIMATION_MIME = 'application/x-r2-video-animation';
16
+ </script>
17
+
18
+ <script lang="ts">
19
+ interface VideoAnimationsPanelProps {
20
+ class?: string;
21
+ disabled?: boolean;
22
+ hint?: string;
23
+ onapply?: (def: VideoAnimationDef) => void;
24
+ }
25
+
26
+ let {
27
+ class: className = '',
28
+ disabled = false,
29
+ hint = 'Select a clip, or drag onto one',
30
+ onapply
31
+ }: VideoAnimationsPanelProps = $props();
32
+
33
+ const animations: VideoAnimationDef[] = [
34
+ /* —— In —— */
35
+ { id: 'fade-in', label: 'Fade in', group: 'In', slot: 'in', type: 'fade', durationMs: 500, glyph: '↗' },
36
+ { id: 'slide-up-in', label: 'Slide up', group: 'In', slot: 'in', type: 'slide-up', durationMs: 500, glyph: '↑' },
37
+ { id: 'slide-down-in', label: 'Slide down', group: 'In', slot: 'in', type: 'slide-down', durationMs: 500, glyph: '↓' },
38
+ { id: 'slide-left-in', label: 'Slide left', group: 'In', slot: 'in', type: 'slide-left', durationMs: 500, glyph: '←' },
39
+ { id: 'slide-right-in', label: 'Slide right', group: 'In', slot: 'in', type: 'slide-right', durationMs: 500, glyph: '→' },
40
+ { id: 'scale-in', label: 'Zoom in', group: 'In', slot: 'in', type: 'scale', durationMs: 400, glyph: '⊕' },
41
+ { id: 'grow-in', label: 'Grow', group: 'In', slot: 'in', type: 'grow', durationMs: 450, glyph: '▣' },
42
+ { id: 'shrink-in', label: 'Shrink in', group: 'In', slot: 'in', type: 'shrink', durationMs: 450, glyph: '▢' },
43
+ { id: 'pop-in', label: 'Pop', group: 'In', slot: 'in', type: 'pop', durationMs: 450, glyph: '✦' },
44
+ { id: 'rotate-in', label: 'Rotate in', group: 'In', slot: 'in', type: 'rotate', durationMs: 550, glyph: '↻' },
45
+ { id: 'spin-in', label: 'Spin', group: 'In', slot: 'in', type: 'spin', durationMs: 600, glyph: '⟳' },
46
+ { id: 'bounce-in', label: 'Bounce', group: 'In', slot: 'in', type: 'bounce', durationMs: 600, glyph: '↕' },
47
+ { id: 'drop-in', label: 'Drop', group: 'In', slot: 'in', type: 'drop', durationMs: 550, glyph: '⬇' },
48
+ { id: 'swing-in', label: 'Swing', group: 'In', slot: 'in', type: 'swing', durationMs: 600, glyph: '∿' },
49
+ { id: 'flip-x-in', label: 'Flip H', group: 'In', slot: 'in', type: 'flip-x', durationMs: 550, glyph: '↔' },
50
+ { id: 'flip-y-in', label: 'Flip V', group: 'In', slot: 'in', type: 'flip-y', durationMs: 550, glyph: '↕' },
51
+ { id: 'skew-in', label: 'Skew', group: 'In', slot: 'in', type: 'skew', durationMs: 500, glyph: '▱' },
52
+ { id: 'expand-h-in', label: 'Expand H', group: 'In', slot: 'in', type: 'expand-h', durationMs: 500, glyph: '⟷' },
53
+ { id: 'expand-v-in', label: 'Expand V', group: 'In', slot: 'in', type: 'expand-v', durationMs: 500, glyph: '↕︎' },
54
+ { id: 'blur-in', label: 'Blur in', group: 'In', slot: 'in', type: 'blur', durationMs: 550, glyph: '◈' },
55
+ { id: 'glow-in', label: 'Glow', group: 'In', slot: 'in', type: 'glow', durationMs: 500, glyph: '✧' },
56
+ /* —— Out —— */
57
+ { id: 'fade-out', label: 'Fade out', group: 'Out', slot: 'out', type: 'fade', durationMs: 500, glyph: '↘' },
58
+ { id: 'slide-up-out', label: 'Slide up', group: 'Out', slot: 'out', type: 'slide-up', durationMs: 500, glyph: '↑' },
59
+ { id: 'slide-down-out', label: 'Slide down', group: 'Out', slot: 'out', type: 'slide-down', durationMs: 500, glyph: '↓' },
60
+ { id: 'slide-left-out', label: 'Slide left', group: 'Out', slot: 'out', type: 'slide-left', durationMs: 500, glyph: '←' },
61
+ { id: 'slide-right-out', label: 'Slide right', group: 'Out', slot: 'out', type: 'slide-right', durationMs: 500, glyph: '→' },
62
+ { id: 'scale-out', label: 'Zoom out', group: 'Out', slot: 'out', type: 'scale', durationMs: 400, glyph: '⊖' },
63
+ { id: 'grow-out', label: 'Grow out', group: 'Out', slot: 'out', type: 'grow', durationMs: 450, glyph: '▣' },
64
+ { id: 'shrink-out', label: 'Shrink', group: 'Out', slot: 'out', type: 'shrink', durationMs: 450, glyph: '▢' },
65
+ { id: 'pop-out', label: 'Pop out', group: 'Out', slot: 'out', type: 'pop', durationMs: 450, glyph: '✧' },
66
+ { id: 'rotate-out', label: 'Rotate out', group: 'Out', slot: 'out', type: 'rotate', durationMs: 550, glyph: '↺' },
67
+ { id: 'spin-out', label: 'Spin out', group: 'Out', slot: 'out', type: 'spin', durationMs: 600, glyph: '⟲' },
68
+ { id: 'bounce-out', label: 'Bounce', group: 'Out', slot: 'out', type: 'bounce', durationMs: 600, glyph: '↕' },
69
+ { id: 'drop-out', label: 'Drop', group: 'Out', slot: 'out', type: 'drop', durationMs: 550, glyph: '⬇' },
70
+ { id: 'swing-out', label: 'Swing', group: 'Out', slot: 'out', type: 'swing', durationMs: 600, glyph: '∿' },
71
+ { id: 'flip-x-out', label: 'Flip H', group: 'Out', slot: 'out', type: 'flip-x', durationMs: 550, glyph: '↔' },
72
+ { id: 'flip-y-out', label: 'Flip V', group: 'Out', slot: 'out', type: 'flip-y', durationMs: 550, glyph: '↕' },
73
+ { id: 'skew-out', label: 'Skew', group: 'Out', slot: 'out', type: 'skew', durationMs: 500, glyph: '▱' },
74
+ { id: 'expand-h-out', label: 'Collapse H', group: 'Out', slot: 'out', type: 'expand-h', durationMs: 500, glyph: '⟷' },
75
+ { id: 'expand-v-out', label: 'Collapse V', group: 'Out', slot: 'out', type: 'expand-v', durationMs: 500, glyph: '↕︎' },
76
+ { id: 'blur-out', label: 'Blur out', group: 'Out', slot: 'out', type: 'blur', durationMs: 550, glyph: '◈' },
77
+ { id: 'glow-out', label: 'Glow out', group: 'Out', slot: 'out', type: 'glow', durationMs: 500, glyph: '✧' },
78
+ /* —— Combo —— */
79
+ {
80
+ id: 'fade-io',
81
+ label: 'Fade I/O',
82
+ group: 'Combo',
83
+ slot: 'combo',
84
+ type: 'fade',
85
+ outType: 'fade',
86
+ durationMs: 500,
87
+ glyph: '↕'
88
+ },
89
+ {
90
+ id: 'slide-io',
91
+ label: 'Slide I/O',
92
+ group: 'Combo',
93
+ slot: 'combo',
94
+ type: 'slide-up',
95
+ outType: 'slide-down',
96
+ durationMs: 500,
97
+ glyph: '⇅'
98
+ },
99
+ {
100
+ id: 'zoom-io',
101
+ label: 'Zoom I/O',
102
+ group: 'Combo',
103
+ slot: 'combo',
104
+ type: 'scale',
105
+ outType: 'scale',
106
+ durationMs: 400,
107
+ glyph: '⊙'
108
+ },
109
+ {
110
+ id: 'pop-io',
111
+ label: 'Pop I/O',
112
+ group: 'Combo',
113
+ slot: 'combo',
114
+ type: 'pop',
115
+ outType: 'pop',
116
+ durationMs: 450,
117
+ glyph: '✦'
118
+ },
119
+ {
120
+ id: 'spin-io',
121
+ label: 'Spin I/O',
122
+ group: 'Combo',
123
+ slot: 'combo',
124
+ type: 'spin',
125
+ outType: 'spin',
126
+ durationMs: 550,
127
+ glyph: '↻'
128
+ },
129
+ {
130
+ id: 'flip-io',
131
+ label: 'Flip I/O',
132
+ group: 'Combo',
133
+ slot: 'combo',
134
+ type: 'flip-x',
135
+ outType: 'flip-y',
136
+ durationMs: 550,
137
+ glyph: '⧉'
138
+ },
139
+ {
140
+ id: 'blur-io',
141
+ label: 'Blur I/O',
142
+ group: 'Combo',
143
+ slot: 'combo',
144
+ type: 'blur',
145
+ outType: 'blur',
146
+ durationMs: 550,
147
+ glyph: '◈'
148
+ },
149
+ {
150
+ id: 'drop-io',
151
+ label: 'Drop I/O',
152
+ group: 'Combo',
153
+ slot: 'combo',
154
+ type: 'drop',
155
+ outType: 'drop',
156
+ durationMs: 550,
157
+ glyph: '⬇'
158
+ }
159
+ ];
160
+
161
+ const groups = $derived(
162
+ [...new Set(animations.map((a) => a.group))].map((group) => ({
163
+ group,
164
+ items: animations.filter((a) => a.group === group)
165
+ }))
166
+ );
167
+
168
+ function onDragStart(e: DragEvent, item: VideoAnimationDef) {
169
+ if (disabled) {
170
+ e.preventDefault();
171
+ return;
172
+ }
173
+ e.dataTransfer?.setData(VIDEO_ANIMATION_MIME, JSON.stringify(item));
174
+ e.dataTransfer?.setData('text/plain', item.label);
175
+ if (e.dataTransfer) e.dataTransfer.effectAllowed = 'copy';
176
+ }
177
+ </script>
178
+
179
+ <div class={['flex flex-col gap-4 p-2', className]}>
180
+ {#if disabled}
181
+ <p class="px-1 py-4 text-center text-xs text-muted">{hint}</p>
182
+ {:else}
183
+ <p class="px-1 text-[10px] leading-relaxed text-muted">
184
+ CapCut-style: pick <strong class="font-medium text-secondary">In</strong> and/or
185
+ <strong class="font-medium text-secondary"> Out</strong> (one each). Drag onto a clip or click
186
+ with a clip selected.
187
+ </p>
188
+ {/if}
189
+ {#each groups as { group, items } (group)}
190
+ <section class="flex flex-col gap-2">
191
+ <h3 class="px-1 text-[10px] font-semibold uppercase tracking-wide text-muted">{group}</h3>
192
+ <div class="grid grid-cols-3 gap-1.5">
193
+ {#each items as item (item.id)}
194
+ <button
195
+ type="button"
196
+ disabled={disabled}
197
+ draggable={!disabled}
198
+ ondragstart={(e) => onDragStart(e, item)}
199
+ 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"
200
+ onclick={() => onapply?.(item)}
201
+ >
202
+ <span
203
+ class="flex h-9 w-full items-center justify-center rounded-md bg-surface text-sm font-semibold text-secondary"
204
+ >
205
+ {item.glyph ?? item.label.slice(0, 2)}
206
+ </span>
207
+ <span class="text-[10px] font-medium text-secondary">{item.label}</span>
208
+ </button>
209
+ {/each}
210
+ </div>
211
+ </section>
212
+ {/each}
213
+ </div>
@@ -0,0 +1,22 @@
1
+ export interface VideoAnimationDef {
2
+ id: string;
3
+ label: string;
4
+ group: string;
5
+ /** CapCut-style: In / Out / Combo (sets both) */
6
+ slot: 'in' | 'out' | 'combo';
7
+ type: string;
8
+ /** Used when slot is combo */
9
+ outType?: string;
10
+ durationMs: number;
11
+ glyph?: string;
12
+ }
13
+ export declare const VIDEO_ANIMATION_MIME = "application/x-r2-video-animation";
14
+ interface VideoAnimationsPanelProps {
15
+ class?: string;
16
+ disabled?: boolean;
17
+ hint?: string;
18
+ onapply?: (def: VideoAnimationDef) => void;
19
+ }
20
+ declare const VideoAnimationsPanel: import("svelte").Component<VideoAnimationsPanelProps, {}, "">;
21
+ type VideoAnimationsPanel = ReturnType<typeof VideoAnimationsPanel>;
22
+ export default VideoAnimationsPanel;
@@ -0,0 +1,7 @@
1
+ <script lang="ts">
2
+ import VideoAnimationsPanel from './VideoAnimationsPanel.svelte';
3
+ </script>
4
+
5
+ <div class="h-96 w-72 rounded-lg border border-border bg-surface">
6
+ <VideoAnimationsPanel onapply={(d) => console.log('anim', d)} />
7
+ </div>