@r2digisolutions/components 0.1.6 → 0.2.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 (389) hide show
  1. package/README.md +1 -1
  2. package/dist/components/atoms/Checkbox/Checkbox.svelte +10 -3
  3. package/dist/components/atoms/Checkbox/Checkbox.svelte.d.ts +3 -0
  4. package/dist/components/atoms/IconButton/IconButton.svelte +1 -1
  5. package/dist/components/atoms/Input/Input.svelte +17 -2
  6. package/dist/components/atoms/Input/Input.svelte.d.ts +6 -1
  7. package/dist/components/atoms/MarqueeRect/MarqueeRect.svelte +21 -0
  8. package/dist/components/atoms/MarqueeRect/MarqueeRect.svelte.d.ts +8 -0
  9. package/dist/components/atoms/MediaKindIcon/MediaKindIcon.stories.js +8 -0
  10. package/dist/components/atoms/MediaKindIcon/MediaKindIcon.svelte +122 -0
  11. package/dist/components/atoms/MediaKindIcon/MediaKindIcon.svelte.d.ts +11 -0
  12. package/dist/components/atoms/MediaKindIcon/MediaKindIconStory.svelte +12 -0
  13. package/dist/components/atoms/MediaKindIcon/MediaKindIconStory.svelte.d.ts +18 -0
  14. package/dist/components/atoms/PanKnob/PanKnob.stories.d.ts +9 -0
  15. package/dist/components/atoms/PanKnob/PanKnob.stories.js +8 -0
  16. package/dist/components/atoms/PanKnob/PanKnob.svelte +218 -0
  17. package/dist/components/atoms/PanKnob/PanKnob.svelte.d.ts +19 -0
  18. package/dist/components/atoms/PanKnob/PanKnobStory.svelte +15 -0
  19. package/dist/components/atoms/PanKnob/PanKnobStory.svelte.d.ts +3 -0
  20. package/dist/components/atoms/Playhead/Playhead.stories.js +8 -0
  21. package/dist/components/atoms/Playhead/Playhead.svelte +59 -0
  22. package/dist/components/atoms/Playhead/Playhead.svelte.d.ts +13 -0
  23. package/dist/components/atoms/Playhead/PlayheadStory.svelte +9 -0
  24. package/dist/components/atoms/Playhead/PlayheadStory.svelte.d.ts +18 -0
  25. package/dist/components/atoms/Textarea/Textarea.svelte +4 -1
  26. package/dist/components/atoms/Textarea/Textarea.svelte.d.ts +1 -0
  27. package/dist/components/atoms/TimeRuler/TimeRuler.stories.js +8 -0
  28. package/dist/components/atoms/TimeRuler/TimeRuler.svelte +58 -0
  29. package/dist/components/atoms/TimeRuler/TimeRuler.svelte.d.ts +10 -0
  30. package/dist/components/atoms/TimeRuler/TimeRulerStory.svelte +7 -0
  31. package/dist/components/atoms/TimeRuler/TimeRulerStory.svelte.d.ts +18 -0
  32. package/dist/components/atoms/Toggle/Toggle.svelte +1 -1
  33. package/dist/components/atoms/Tooltip/Tooltip.svelte +1 -1
  34. package/dist/components/atoms/TrimHandle/TrimHandle.stories.js +8 -0
  35. package/dist/components/atoms/TrimHandle/TrimHandle.svelte +63 -0
  36. package/dist/components/atoms/TrimHandle/TrimHandle.svelte.d.ts +12 -0
  37. package/dist/components/atoms/TrimHandle/TrimHandleStory.svelte +11 -0
  38. package/dist/components/atoms/TrimHandle/TrimHandleStory.svelte.d.ts +18 -0
  39. package/dist/components/molecules/AiAssistPanel/AiAssistPanel.stories.d.ts +9 -0
  40. package/dist/components/molecules/AiAssistPanel/AiAssistPanel.stories.js +8 -0
  41. package/dist/components/molecules/AiAssistPanel/AiAssistPanel.svelte +102 -0
  42. package/dist/components/molecules/AiAssistPanel/AiAssistPanel.svelte.d.ts +20 -0
  43. package/dist/components/molecules/AiAssistPanel/AiAssistPanelStory.svelte +34 -0
  44. package/dist/components/molecules/AiAssistPanel/AiAssistPanelStory.svelte.d.ts +3 -0
  45. package/dist/components/molecules/BulkActionBar/BulkActionBar.svelte +112 -62
  46. package/dist/components/molecules/BulkActionBar/BulkActionBar.svelte.d.ts +2 -0
  47. package/dist/components/molecules/BulkEditPanel/BulkEditPanel.stories.js +8 -0
  48. package/dist/components/molecules/BulkEditPanel/BulkEditPanel.svelte +117 -0
  49. package/dist/components/molecules/BulkEditPanel/BulkEditPanel.svelte.d.ts +23 -0
  50. package/dist/components/molecules/BulkEditPanel/BulkEditPanelStory.svelte +18 -0
  51. package/dist/components/molecules/BulkEditPanel/BulkEditPanelStory.svelte.d.ts +18 -0
  52. package/dist/components/molecules/CanvasElementsPanel/CanvasElementsPanel.stories.js +8 -0
  53. package/dist/components/molecules/CanvasElementsPanel/CanvasElementsPanel.svelte +858 -0
  54. package/dist/components/molecules/CanvasElementsPanel/CanvasElementsPanel.svelte.d.ts +43 -0
  55. package/dist/components/molecules/CanvasElementsPanel/CanvasElementsPanelStory.svelte +7 -0
  56. package/dist/components/molecules/CanvasElementsPanel/CanvasElementsPanelStory.svelte.d.ts +18 -0
  57. package/dist/components/molecules/CanvasInspector/CanvasInspector.stories.d.ts +9 -0
  58. package/dist/components/molecules/CanvasInspector/CanvasInspector.stories.js +8 -0
  59. package/dist/components/molecules/CanvasInspector/CanvasInspector.svelte +1140 -0
  60. package/dist/components/molecules/CanvasInspector/CanvasInspector.svelte.d.ts +28 -0
  61. package/dist/components/molecules/CanvasInspector/CanvasInspectorStory.svelte +20 -0
  62. package/dist/components/molecules/CanvasInspector/CanvasInspectorStory.svelte.d.ts +3 -0
  63. package/dist/components/molecules/CodeEditor/CodeEditor.svelte +13 -10
  64. package/dist/components/molecules/ColorPicker/ColorPicker.svelte +167 -97
  65. package/dist/components/molecules/ColumnVisibilityMenu/ColumnVisibilityMenu.stories.d.ts +9 -0
  66. package/dist/components/molecules/ColumnVisibilityMenu/ColumnVisibilityMenu.stories.js +8 -0
  67. package/dist/components/molecules/ColumnVisibilityMenu/ColumnVisibilityMenu.svelte +108 -0
  68. package/dist/components/molecules/ColumnVisibilityMenu/ColumnVisibilityMenu.svelte.d.ts +18 -0
  69. package/dist/components/molecules/ColumnVisibilityMenu/ColumnVisibilityMenuStory.svelte +15 -0
  70. package/dist/components/molecules/ColumnVisibilityMenu/ColumnVisibilityMenuStory.svelte.d.ts +3 -0
  71. package/dist/components/molecules/ConditionalFormatPanel/ConditionalFormatPanel.stories.d.ts +9 -0
  72. package/dist/components/molecules/ConditionalFormatPanel/ConditionalFormatPanel.stories.js +8 -0
  73. package/dist/components/molecules/ConditionalFormatPanel/ConditionalFormatPanel.svelte +412 -0
  74. package/dist/components/molecules/ConditionalFormatPanel/ConditionalFormatPanel.svelte.d.ts +14 -0
  75. package/dist/components/molecules/ConditionalFormatPanel/ConditionalFormatPanelStory.svelte +27 -0
  76. package/dist/components/molecules/ConditionalFormatPanel/ConditionalFormatPanelStory.svelte.d.ts +3 -0
  77. package/dist/components/molecules/ConflictResolver/ConflictResolver.stories.js +8 -0
  78. package/dist/components/molecules/ConflictResolver/ConflictResolver.svelte +73 -0
  79. package/dist/components/molecules/ConflictResolver/ConflictResolver.svelte.d.ts +16 -0
  80. package/dist/components/molecules/ConflictResolver/ConflictResolverStory.svelte +11 -0
  81. package/dist/components/molecules/ConflictResolver/ConflictResolverStory.svelte.d.ts +18 -0
  82. package/dist/components/molecules/ContextMenu/ContextMenu.svelte +237 -41
  83. package/dist/components/molecules/ContextMenu/ContextMenu.svelte.d.ts +17 -1
  84. package/dist/components/molecules/DateTimePicker/DateTimePicker.svelte.d.ts +1 -1
  85. package/dist/components/molecules/ExpressionEditor/ExpressionEditor.stories.d.ts +9 -0
  86. package/dist/components/molecules/ExpressionEditor/ExpressionEditor.stories.js +8 -0
  87. package/dist/components/molecules/ExpressionEditor/ExpressionEditor.svelte +56 -0
  88. package/dist/components/molecules/ExpressionEditor/ExpressionEditor.svelte.d.ts +12 -0
  89. package/dist/components/molecules/ExpressionEditor/ExpressionEditorStory.svelte +12 -0
  90. package/dist/components/molecules/ExpressionEditor/ExpressionEditorStory.svelte.d.ts +3 -0
  91. package/dist/components/molecules/FilterList/FilterList.stories.d.ts +9 -0
  92. package/dist/components/molecules/FilterList/FilterList.stories.js +8 -0
  93. package/dist/components/molecules/FilterList/FilterList.svelte +101 -0
  94. package/dist/components/molecules/FilterList/FilterList.svelte.d.ts +18 -0
  95. package/dist/components/molecules/FilterList/FilterListStory.svelte +31 -0
  96. package/dist/components/molecules/FilterList/FilterListStory.svelte.d.ts +3 -0
  97. package/dist/components/molecules/FormDateTimePicker/FormDateTimePicker.svelte.d.ts +1 -1
  98. package/dist/components/molecules/Gauge/Gauge.stories.d.ts +1 -1
  99. package/dist/components/molecules/InfiniteScroll/InfiniteScroll.stories.d.ts +1 -1
  100. package/dist/components/molecules/MediaAssetBrowser/MediaAssetBrowser.stories.d.ts +9 -0
  101. package/dist/components/molecules/MediaAssetBrowser/MediaAssetBrowser.stories.js +8 -0
  102. package/dist/components/molecules/MediaAssetBrowser/MediaAssetBrowser.svelte +94 -0
  103. package/dist/components/molecules/MediaAssetBrowser/MediaAssetBrowser.svelte.d.ts +15 -0
  104. package/dist/components/molecules/MediaAssetBrowser/MediaAssetBrowserStory.svelte +18 -0
  105. package/dist/components/molecules/MediaAssetBrowser/MediaAssetBrowserStory.svelte.d.ts +3 -0
  106. package/dist/components/molecules/MediaAssetCard/MediaAssetCard.stories.js +8 -0
  107. package/dist/components/molecules/MediaAssetCard/MediaAssetCard.svelte +50 -0
  108. package/dist/components/molecules/MediaAssetCard/MediaAssetCard.svelte.d.ts +11 -0
  109. package/dist/components/molecules/MediaAssetCard/MediaAssetCardStory.svelte +13 -0
  110. package/dist/components/molecules/MediaAssetCard/MediaAssetCardStory.svelte.d.ts +18 -0
  111. package/dist/components/molecules/MediaLayerItem/MediaLayerItem.stories.js +8 -0
  112. package/dist/components/molecules/MediaLayerItem/MediaLayerItem.svelte +380 -0
  113. package/dist/components/molecules/MediaLayerItem/MediaLayerItem.svelte.d.ts +33 -0
  114. package/dist/components/molecules/MediaLayerItem/MediaLayerItemStory.svelte +14 -0
  115. package/dist/components/molecules/MediaLayerItem/MediaLayerItemStory.svelte.d.ts +18 -0
  116. package/dist/components/molecules/MediaLayerList/MediaLayerList.stories.d.ts +9 -0
  117. package/dist/components/molecules/MediaLayerList/MediaLayerList.stories.js +8 -0
  118. package/dist/components/molecules/MediaLayerList/MediaLayerList.svelte +399 -0
  119. package/dist/components/molecules/MediaLayerList/MediaLayerList.svelte.d.ts +37 -0
  120. package/dist/components/molecules/MediaLayerList/MediaLayerListStory.svelte +24 -0
  121. package/dist/components/molecules/MediaLayerList/MediaLayerListStory.svelte.d.ts +3 -0
  122. package/dist/components/molecules/MediaStage/MediaStage.stories.d.ts +9 -0
  123. package/dist/components/molecules/MediaStage/MediaStage.stories.js +8 -0
  124. package/dist/components/molecules/MediaStage/MediaStage.svelte +1498 -0
  125. package/dist/components/molecules/MediaStage/MediaStage.svelte.d.ts +45 -0
  126. package/dist/components/molecules/MediaStage/MediaStageStory.svelte +35 -0
  127. package/dist/components/molecules/MediaStage/MediaStageStory.svelte.d.ts +3 -0
  128. package/dist/components/molecules/MediaTimeline/MediaTimeline.stories.d.ts +9 -0
  129. package/dist/components/molecules/MediaTimeline/MediaTimeline.stories.js +8 -0
  130. package/dist/components/molecules/MediaTimeline/MediaTimeline.svelte +131 -0
  131. package/dist/components/molecules/MediaTimeline/MediaTimeline.svelte.d.ts +19 -0
  132. package/dist/components/molecules/MediaTimeline/MediaTimelineStory.svelte +20 -0
  133. package/dist/components/molecules/MediaTimeline/MediaTimelineStory.svelte.d.ts +3 -0
  134. package/dist/components/molecules/MixerChannel/MixerChannel.stories.d.ts +9 -0
  135. package/dist/components/molecules/MixerChannel/MixerChannel.stories.js +8 -0
  136. package/dist/components/molecules/MixerChannel/MixerChannel.svelte +92 -0
  137. package/dist/components/molecules/MixerChannel/MixerChannel.svelte.d.ts +11 -0
  138. package/dist/components/molecules/MixerChannel/MixerChannelStory.svelte +13 -0
  139. package/dist/components/molecules/MixerChannel/MixerChannelStory.svelte.d.ts +3 -0
  140. package/dist/components/molecules/NodeGraph/GraphBlueprintNode.svelte +454 -0
  141. package/dist/components/molecules/NodeGraph/GraphBlueprintNode.svelte.d.ts +8 -0
  142. package/dist/components/molecules/NodeGraph/GraphFlowBridge.svelte +26 -0
  143. package/dist/components/molecules/NodeGraph/GraphFlowBridge.svelte.d.ts +22 -0
  144. package/dist/components/molecules/NodeGraph/NodeGraph.stories.d.ts +12 -0
  145. package/dist/components/molecules/NodeGraph/NodeGraph.stories.js +9 -0
  146. package/dist/components/molecules/NodeGraph/NodeGraph.svelte +1409 -0
  147. package/dist/components/molecules/NodeGraph/NodeGraph.svelte.d.ts +33 -0
  148. package/dist/components/molecules/NodeGraph/NodeGraphStory.svelte +90 -0
  149. package/dist/components/molecules/NodeGraph/NodeGraphStory.svelte.d.ts +3 -0
  150. package/dist/components/molecules/NodePalette/NodePalette.stories.js +8 -0
  151. package/dist/components/molecules/NodePalette/NodePalette.svelte +86 -0
  152. package/dist/components/molecules/NodePalette/NodePalette.svelte.d.ts +11 -0
  153. package/dist/components/molecules/NodePalette/NodePaletteStory.svelte +11 -0
  154. package/dist/components/molecules/NodePalette/NodePaletteStory.svelte.d.ts +18 -0
  155. package/dist/components/molecules/Poll/Poll.stories.d.ts +1 -1
  156. package/dist/components/molecules/ProgramMonitor/ProgramMonitor.stories.js +8 -0
  157. package/dist/components/molecules/ProgramMonitor/ProgramMonitor.svelte +72 -0
  158. package/dist/components/molecules/ProgramMonitor/ProgramMonitor.svelte.d.ts +12 -0
  159. package/dist/components/molecules/ProgramMonitor/ProgramMonitorStory.svelte +16 -0
  160. package/dist/components/molecules/ProgramMonitor/ProgramMonitorStory.svelte.d.ts +18 -0
  161. package/dist/components/molecules/PropertyField/PropertyField.svelte +57 -3
  162. package/dist/components/molecules/PropertyField/PropertyField.svelte.d.ts +10 -0
  163. package/dist/components/molecules/PropertyField/PropertyFieldStory.svelte +21 -0
  164. package/dist/components/molecules/PropertyGroup/PropertyGroup.svelte +1 -1
  165. package/dist/components/molecules/QueryBuilder/QueryBuilder.stories.d.ts +9 -0
  166. package/dist/components/molecules/QueryBuilder/QueryBuilder.stories.js +8 -0
  167. package/dist/components/molecules/QueryBuilder/QueryBuilder.svelte +52 -0
  168. package/dist/components/molecules/QueryBuilder/QueryBuilder.svelte.d.ts +18 -0
  169. package/dist/components/molecules/QueryBuilder/QueryBuilderStory.svelte +62 -0
  170. package/dist/components/molecules/QueryBuilder/QueryBuilderStory.svelte.d.ts +3 -0
  171. package/dist/components/molecules/RelationPicker/RelationPicker.stories.d.ts +9 -0
  172. package/dist/components/molecules/RelationPicker/RelationPicker.stories.js +8 -0
  173. package/dist/components/molecules/RelationPicker/RelationPicker.svelte +180 -0
  174. package/dist/components/molecules/RelationPicker/RelationPicker.svelte.d.ts +24 -0
  175. package/dist/components/molecules/RelationPicker/RelationPickerStory.svelte +16 -0
  176. package/dist/components/molecules/RelationPicker/RelationPickerStory.svelte.d.ts +3 -0
  177. package/dist/components/molecules/SchemaFieldBuilder/SchemaFieldBuilder.stories.d.ts +9 -0
  178. package/dist/components/molecules/SchemaFieldBuilder/SchemaFieldBuilder.stories.js +8 -0
  179. package/dist/components/molecules/SchemaFieldBuilder/SchemaFieldBuilder.svelte +154 -0
  180. package/dist/components/molecules/SchemaFieldBuilder/SchemaFieldBuilder.svelte.d.ts +12 -0
  181. package/dist/components/molecules/SchemaFieldBuilder/SchemaFieldBuilderStory.svelte +16 -0
  182. package/dist/components/molecules/SchemaFieldBuilder/SchemaFieldBuilderStory.svelte.d.ts +3 -0
  183. package/dist/components/molecules/SecretField/SecretField.stories.d.ts +9 -0
  184. package/dist/components/molecules/SecretField/SecretField.stories.js +8 -0
  185. package/dist/components/molecules/SecretField/SecretField.svelte +58 -0
  186. package/dist/components/molecules/SecretField/SecretField.svelte.d.ts +15 -0
  187. package/dist/components/molecules/SecretField/SecretFieldStory.svelte +8 -0
  188. package/dist/components/molecules/SecretField/SecretFieldStory.svelte.d.ts +3 -0
  189. package/dist/components/molecules/SplitPane/SplitPane.svelte +96 -37
  190. package/dist/components/molecules/SplitPane/SplitPane.svelte.d.ts +10 -2
  191. package/dist/components/molecules/TableToolbar/TableToolbar.svelte.d.ts +1 -1
  192. package/dist/components/molecules/Terminal/Terminal.stories.js +20 -0
  193. package/dist/components/molecules/Terminal/Terminal.svelte +238 -0
  194. package/dist/components/molecules/Terminal/Terminal.svelte.d.ts +19 -0
  195. package/dist/components/molecules/Terminal/TerminalStory.svelte +47 -0
  196. package/dist/components/molecules/Terminal/TerminalStory.svelte.d.ts +6 -0
  197. package/dist/components/molecules/TimelineClip/TimelineClip.stories.js +8 -0
  198. package/dist/components/molecules/TimelineClip/TimelineClip.svelte +116 -0
  199. package/dist/components/molecules/TimelineClip/TimelineClip.svelte.d.ts +15 -0
  200. package/dist/components/molecules/TimelineClip/TimelineClipStory.svelte +18 -0
  201. package/dist/components/molecules/TimelineClip/TimelineClipStory.svelte.d.ts +18 -0
  202. package/dist/components/molecules/TimelineTrack/TimelineTrack.stories.js +8 -0
  203. package/dist/components/molecules/TimelineTrack/TimelineTrack.svelte +56 -0
  204. package/dist/components/molecules/TimelineTrack/TimelineTrack.svelte.d.ts +16 -0
  205. package/dist/components/molecules/TimelineTrack/TimelineTrackStory.svelte +35 -0
  206. package/dist/components/molecules/TimelineTrack/TimelineTrackStory.svelte.d.ts +18 -0
  207. package/dist/components/molecules/TraceWaterfall/TraceWaterfall.stories.js +8 -0
  208. package/dist/components/molecules/TraceWaterfall/TraceWaterfall.svelte +158 -0
  209. package/dist/components/molecules/TraceWaterfall/TraceWaterfall.svelte.d.ts +18 -0
  210. package/dist/components/molecules/TraceWaterfall/TraceWaterfallStory.svelte +55 -0
  211. package/dist/components/molecules/TraceWaterfall/TraceWaterfallStory.svelte.d.ts +18 -0
  212. package/dist/components/molecules/TrackHeader/TrackHeader.stories.d.ts +9 -0
  213. package/dist/components/molecules/TrackHeader/TrackHeader.stories.js +8 -0
  214. package/dist/components/molecules/TrackHeader/TrackHeader.svelte +54 -0
  215. package/dist/components/molecules/TrackHeader/TrackHeader.svelte.d.ts +9 -0
  216. package/dist/components/molecules/TrackHeader/TrackHeaderStory.svelte +10 -0
  217. package/dist/components/molecules/TrackHeader/TrackHeaderStory.svelte.d.ts +3 -0
  218. package/dist/components/molecules/TransportControls/TransportControls.stories.d.ts +9 -0
  219. package/dist/components/molecules/TransportControls/TransportControls.stories.js +8 -0
  220. package/dist/components/molecules/TransportControls/TransportControls.svelte +53 -0
  221. package/dist/components/molecules/TransportControls/TransportControls.svelte.d.ts +12 -0
  222. package/dist/components/molecules/TransportControls/TransportControlsStory.svelte +18 -0
  223. package/dist/components/molecules/TransportControls/TransportControlsStory.svelte.d.ts +3 -0
  224. package/dist/components/molecules/VersionHistoryPanel/VersionHistoryPanel.stories.js +8 -0
  225. package/dist/components/molecules/VersionHistoryPanel/VersionHistoryPanel.svelte +117 -0
  226. package/dist/components/molecules/VersionHistoryPanel/VersionHistoryPanel.svelte.d.ts +20 -0
  227. package/dist/components/molecules/VersionHistoryPanel/VersionHistoryPanelStory.svelte +36 -0
  228. package/dist/components/molecules/VersionHistoryPanel/VersionHistoryPanelStory.svelte.d.ts +18 -0
  229. package/dist/components/molecules/VideoPlayer/VideoPlayer.stories.d.ts +1 -1
  230. package/dist/components/molecules/VideoTrackHeader/VideoTrackHeader.stories.d.ts +9 -0
  231. package/dist/components/molecules/VideoTrackHeader/VideoTrackHeader.stories.js +8 -0
  232. package/dist/components/molecules/VideoTrackHeader/VideoTrackHeader.svelte +59 -0
  233. package/dist/components/molecules/VideoTrackHeader/VideoTrackHeader.svelte.d.ts +9 -0
  234. package/dist/components/molecules/VideoTrackHeader/VideoTrackHeaderStory.svelte +10 -0
  235. package/dist/components/molecules/VideoTrackHeader/VideoTrackHeaderStory.svelte.d.ts +3 -0
  236. package/dist/components/molecules/WaveformRegion/WaveformRegion.stories.js +8 -0
  237. package/dist/components/molecules/WaveformRegion/WaveformRegion.svelte +82 -0
  238. package/dist/components/molecules/WaveformRegion/WaveformRegion.svelte.d.ts +13 -0
  239. package/dist/components/molecules/WaveformRegion/WaveformRegionStory.svelte +17 -0
  240. package/dist/components/molecules/WaveformRegion/WaveformRegionStory.svelte.d.ts +18 -0
  241. package/dist/components/molecules/WidgetCanvas/WidgetCanvas.svelte +13 -4
  242. package/dist/components/molecules/WidgetCanvas/WidgetCanvas.svelte.d.ts +3 -1
  243. package/dist/components/molecules/WidgetCanvas/widgetCanvasContext.d.ts +2 -0
  244. package/dist/components/molecules/WidgetFrame/WidgetFrame.svelte +206 -37
  245. package/dist/components/molecules/WidgetFrame/WidgetFrame.svelte.d.ts +31 -0
  246. package/dist/components/organisms/AssetPickerPage/AssetPickerPage.svelte.d.ts +1 -1
  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 +273 -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/BacklogPage/BacklogPage.svelte.d.ts +1 -1
  254. package/dist/components/organisms/BlogEditor/BlogEditor.stories.d.ts +12 -0
  255. package/dist/components/organisms/BlogEditor/BlogEditor.stories.js +9 -0
  256. package/dist/components/organisms/BlogEditor/BlogEditor.svelte +1208 -0
  257. package/dist/components/organisms/BlogEditor/BlogEditor.svelte.d.ts +16 -0
  258. package/dist/components/organisms/BlogEditor/BlogEditorStory.svelte +144 -0
  259. package/dist/components/organisms/BlogEditor/BlogEditorStory.svelte.d.ts +3 -0
  260. package/dist/components/organisms/BlogEditor/DemoBlogCard.svelte +28 -0
  261. package/dist/components/organisms/BlogEditor/DemoBlogCard.svelte.d.ts +10 -0
  262. package/dist/components/organisms/BlogEditor/DemoBlogStats.svelte +34 -0
  263. package/dist/components/organisms/BlogEditor/DemoBlogStats.svelte.d.ts +11 -0
  264. package/dist/components/organisms/BlogEditor/DemoBlogWidget.svelte +13 -0
  265. package/dist/components/organisms/BlogEditor/DemoBlogWidget.svelte.d.ts +8 -0
  266. package/dist/components/organisms/BlogRenderer/BlogRenderer.stories.js +8 -0
  267. package/dist/components/organisms/BlogRenderer/BlogRenderer.svelte +469 -0
  268. package/dist/components/organisms/BlogRenderer/BlogRenderer.svelte.d.ts +14 -0
  269. package/dist/components/organisms/BlogRenderer/BlogRendererStory.svelte +20 -0
  270. package/dist/components/organisms/BlogRenderer/BlogRendererStory.svelte.d.ts +18 -0
  271. package/dist/components/organisms/BlueprintEditor/BlueprintEditor.stories.d.ts +12 -0
  272. package/dist/components/organisms/BlueprintEditor/BlueprintEditor.stories.js +9 -0
  273. package/dist/components/organisms/BlueprintEditor/BlueprintEditor.svelte +1012 -0
  274. package/dist/components/organisms/BlueprintEditor/BlueprintEditor.svelte.d.ts +16 -0
  275. package/dist/components/organisms/BlueprintEditor/BlueprintEditorStory.svelte +76 -0
  276. package/dist/components/organisms/BlueprintEditor/BlueprintEditorStory.svelte.d.ts +3 -0
  277. package/dist/components/organisms/CalendarApp/CalendarApp.svelte.d.ts +1 -1
  278. package/dist/components/organisms/CanvasEditor/CanvasEditor.stories.d.ts +12 -0
  279. package/dist/components/organisms/CanvasEditor/CanvasEditor.stories.js +9 -0
  280. package/dist/components/organisms/CanvasEditor/CanvasEditor.svelte +1680 -0
  281. package/dist/components/organisms/CanvasEditor/CanvasEditor.svelte.d.ts +18 -0
  282. package/dist/components/organisms/CanvasEditor/CanvasEditorStory.svelte +329 -0
  283. package/dist/components/organisms/CanvasEditor/CanvasEditorStory.svelte.d.ts +3 -0
  284. package/dist/components/organisms/DashboardBuilderPage/DashboardBuilderPage.svelte.d.ts +1 -1
  285. package/dist/components/organisms/DataGrid/DataGrid.stories.d.ts +65 -0
  286. package/dist/components/organisms/DataGrid/DataGrid.stories.js +95 -0
  287. package/dist/components/organisms/DataGrid/DataGrid.svelte +2264 -0
  288. package/dist/components/organisms/DataGrid/DataGrid.svelte.d.ts +99 -0
  289. package/dist/components/organisms/DataGrid/DataGridStory.svelte +659 -0
  290. package/dist/components/organisms/DataGrid/DataGridStory.svelte.d.ts +11 -0
  291. package/dist/components/organisms/DataGrid/breakpoints.d.ts +10 -0
  292. package/dist/components/organisms/DataGrid/breakpoints.js +20 -0
  293. package/dist/components/organisms/DataGrid/cellEditors.d.ts +8 -0
  294. package/dist/components/organisms/DataGrid/cellEditors.js +59 -0
  295. package/dist/components/organisms/DataGrid/conditionalFormat.d.ts +11 -0
  296. package/dist/components/organisms/DataGrid/conditionalFormat.js +98 -0
  297. package/dist/components/organisms/DataGrid/filterRows.d.ts +5 -0
  298. package/dist/components/organisms/DataGrid/filterRows.js +60 -0
  299. package/dist/components/organisms/DataGrid/marks.d.ts +9 -0
  300. package/dist/components/organisms/DataGrid/marks.js +91 -0
  301. package/dist/components/organisms/DataGrid/types.d.ts +126 -0
  302. package/dist/components/organisms/DataGrid/types.js +21 -0
  303. package/dist/components/organisms/DesktopShell/DesktopShell.svelte.d.ts +1 -1
  304. package/dist/components/organisms/EditorShell/EditorShell.svelte +123 -28
  305. package/dist/components/organisms/EditorShell/EditorShell.svelte.d.ts +21 -1
  306. package/dist/components/organisms/FileUploader/FileUploader.svelte +77 -15
  307. package/dist/components/organisms/FileUploader/FileUploader.svelte.d.ts +11 -0
  308. package/dist/components/organisms/ImportWizard/ImportWizard.stories.js +8 -0
  309. package/dist/components/organisms/ImportWizard/ImportWizard.svelte +209 -0
  310. package/dist/components/organisms/ImportWizard/ImportWizard.svelte.d.ts +22 -0
  311. package/dist/components/organisms/ImportWizard/ImportWizardStory.svelte +16 -0
  312. package/dist/components/organisms/ImportWizard/ImportWizardStory.svelte.d.ts +18 -0
  313. package/dist/components/organisms/ResourceStudio/ResourceStudio.stories.d.ts +33 -0
  314. package/dist/components/organisms/ResourceStudio/ResourceStudio.stories.js +56 -0
  315. package/dist/components/organisms/ResourceStudio/ResourceStudio.svelte +830 -0
  316. package/dist/components/organisms/ResourceStudio/ResourceStudio.svelte.d.ts +68 -0
  317. package/dist/components/organisms/ResourceStudio/ResourceStudioStory.svelte +600 -0
  318. package/dist/components/organisms/ResourceStudio/ResourceStudioStory.svelte.d.ts +7 -0
  319. package/dist/components/organisms/ResourceStudio/fieldsToColumns.d.ts +4 -0
  320. package/dist/components/organisms/ResourceStudio/fieldsToColumns.js +20 -0
  321. package/dist/components/organisms/ResourceStudio/fieldsToSchema.d.ts +6 -0
  322. package/dist/components/organisms/ResourceStudio/fieldsToSchema.js +53 -0
  323. package/dist/components/organisms/ResourceStudio/types.d.ts +69 -0
  324. package/dist/components/organisms/ResourceStudio/types.js +15 -0
  325. package/dist/components/organisms/Scheduler/Scheduler.svelte.d.ts +1 -1
  326. package/dist/components/organisms/SchemaForm/SchemaForm.svelte +10 -3
  327. package/dist/components/organisms/SchemaForm/SchemaForm.svelte.d.ts +1 -0
  328. package/dist/components/organisms/VideoEditor/VideoEditor.stories.d.ts +12 -0
  329. package/dist/components/organisms/VideoEditor/VideoEditor.stories.js +9 -0
  330. package/dist/components/organisms/VideoEditor/VideoEditor.svelte +308 -0
  331. package/dist/components/organisms/VideoEditor/VideoEditor.svelte.d.ts +13 -0
  332. package/dist/components/organisms/VideoEditor/VideoEditorStory.svelte +10 -0
  333. package/dist/components/organisms/VideoEditor/VideoEditorStory.svelte.d.ts +3 -0
  334. package/dist/components/templates/AudioEditorTemplate/AudioEditorTemplate.stories.d.ts +12 -0
  335. package/dist/components/templates/AudioEditorTemplate/AudioEditorTemplate.stories.js +9 -0
  336. package/dist/components/templates/AudioEditorTemplate/AudioEditorTemplate.svelte +22 -0
  337. package/dist/components/templates/AudioEditorTemplate/AudioEditorTemplate.svelte.d.ts +13 -0
  338. package/dist/components/templates/AudioEditorTemplate/AudioEditorTemplateStory.svelte +8 -0
  339. package/dist/components/templates/AudioEditorTemplate/AudioEditorTemplateStory.svelte.d.ts +3 -0
  340. package/dist/components/templates/CanvasEditorTemplate/CanvasEditorTemplate.stories.d.ts +12 -0
  341. package/dist/components/templates/CanvasEditorTemplate/CanvasEditorTemplate.stories.js +9 -0
  342. package/dist/components/templates/CanvasEditorTemplate/CanvasEditorTemplate.svelte +32 -0
  343. package/dist/components/templates/CanvasEditorTemplate/CanvasEditorTemplate.svelte.d.ts +17 -0
  344. package/dist/components/templates/CanvasEditorTemplate/CanvasEditorTemplateStory.svelte +21 -0
  345. package/dist/components/templates/CanvasEditorTemplate/CanvasEditorTemplateStory.svelte.d.ts +3 -0
  346. package/dist/components/templates/ResourceStudioTemplate/ResourceStudioTemplate.stories.d.ts +25 -0
  347. package/dist/components/templates/ResourceStudioTemplate/ResourceStudioTemplate.stories.js +18 -0
  348. package/dist/components/templates/ResourceStudioTemplate/ResourceStudioTemplate.svelte +192 -0
  349. package/dist/components/templates/ResourceStudioTemplate/ResourceStudioTemplate.svelte.d.ts +62 -0
  350. package/dist/components/templates/ResourceStudioTemplate/ResourceStudioTemplateStory.svelte +129 -0
  351. package/dist/components/templates/ResourceStudioTemplate/ResourceStudioTemplateStory.svelte.d.ts +7 -0
  352. package/dist/components/templates/VideoEditorTemplate/VideoEditorTemplate.stories.d.ts +12 -0
  353. package/dist/components/templates/VideoEditorTemplate/VideoEditorTemplate.stories.js +9 -0
  354. package/dist/components/templates/VideoEditorTemplate/VideoEditorTemplate.svelte +22 -0
  355. package/dist/components/templates/VideoEditorTemplate/VideoEditorTemplate.svelte.d.ts +13 -0
  356. package/dist/components/templates/VideoEditorTemplate/VideoEditorTemplateStory.svelte +8 -0
  357. package/dist/components/templates/VideoEditorTemplate/VideoEditorTemplateStory.svelte.d.ts +3 -0
  358. package/dist/index.d.ts +94 -1
  359. package/dist/index.js +68 -0
  360. package/dist/types/xyflow-svelte.d.ts +62 -0
  361. package/dist/utils/audioProject.d.ts +19 -0
  362. package/dist/utils/audioProject.js +70 -0
  363. package/dist/utils/blogDocument.d.ts +175 -0
  364. package/dist/utils/blogDocument.js +220 -0
  365. package/dist/utils/blueprintRuntime.d.ts +34 -0
  366. package/dist/utils/blueprintRuntime.js +289 -0
  367. package/dist/utils/canvasDocument.d.ts +239 -0
  368. package/dist/utils/canvasDocument.js +443 -0
  369. package/dist/utils/canvasExport.d.ts +10 -0
  370. package/dist/utils/canvasExport.js +469 -0
  371. package/dist/utils/canvasHierarchy.d.ts +189 -0
  372. package/dist/utils/canvasHierarchy.js +674 -0
  373. package/dist/utils/canvasHistory.d.ts +19 -0
  374. package/dist/utils/canvasHistory.js +48 -0
  375. package/dist/utils/canvasWidget.d.ts +81 -0
  376. package/dist/utils/canvasWidget.js +597 -0
  377. package/dist/utils/marqueeSelect.d.ts +48 -0
  378. package/dist/utils/marqueeSelect.js +189 -0
  379. package/dist/utils/mediaTime.d.ts +16 -0
  380. package/dist/utils/mediaTime.js +57 -0
  381. package/dist/utils/mediaTracks.d.ts +61 -0
  382. package/dist/utils/mediaTracks.js +102 -0
  383. package/dist/utils/nodeGraph.d.ts +354 -0
  384. package/dist/utils/nodeGraph.js +1453 -0
  385. package/dist/utils/queryBridge.d.ts +18 -0
  386. package/dist/utils/queryBridge.js +118 -0
  387. package/dist/utils/videoSequence.d.ts +13 -0
  388. package/dist/utils/videoSequence.js +63 -0
  389. package/package.json +5 -2
@@ -0,0 +1,189 @@
1
+ export function normalizeRect(x0, y0, x1, y1) {
2
+ const left = Math.min(x0, x1);
3
+ const top = Math.min(y0, y1);
4
+ return {
5
+ x: left,
6
+ y: top,
7
+ width: Math.abs(x1 - x0),
8
+ height: Math.abs(y1 - y0)
9
+ };
10
+ }
11
+ export function rectsIntersect(a, b) {
12
+ return (a.x < b.x + b.width &&
13
+ a.x + a.width > b.x &&
14
+ a.y < b.y + b.height &&
15
+ a.y + a.height > b.y);
16
+ }
17
+ export function hitTestIds(marquee, items) {
18
+ const ids = [];
19
+ for (const item of items) {
20
+ if (rectsIntersect(marquee, item))
21
+ ids.push(item.id);
22
+ }
23
+ return ids;
24
+ }
25
+ export function getMarqueeModifier(e) {
26
+ if (e.metaKey || e.ctrlKey)
27
+ return 'toggle';
28
+ if (e.shiftKey)
29
+ return 'add';
30
+ return 'replace';
31
+ }
32
+ export function resolveMarqueeSelection(hitIds, previousIds, modifier) {
33
+ if (modifier === 'replace')
34
+ return [...hitIds];
35
+ if (modifier === 'add')
36
+ return [...new Set([...previousIds, ...hitIds])];
37
+ const set = new Set(previousIds);
38
+ for (const id of hitIds) {
39
+ if (set.has(id))
40
+ set.delete(id);
41
+ else
42
+ set.add(id);
43
+ }
44
+ return [...set];
45
+ }
46
+ /** Collect `[data-marquee-id]` children in container-local (incl. scroll) coordinates. */
47
+ export function collectMarqueeItems(container, selector = '[data-marquee-id]') {
48
+ const cRect = container.getBoundingClientRect();
49
+ const nodes = container.querySelectorAll(selector);
50
+ const items = [];
51
+ for (const node of nodes) {
52
+ if (!(node instanceof HTMLElement))
53
+ continue;
54
+ const id = node.getAttribute('data-marquee-id');
55
+ if (!id)
56
+ continue;
57
+ const r = node.getBoundingClientRect();
58
+ items.push({
59
+ id,
60
+ x: r.left - cRect.left + container.scrollLeft,
61
+ y: r.top - cRect.top + container.scrollTop,
62
+ width: r.width,
63
+ height: r.height
64
+ });
65
+ }
66
+ return items;
67
+ }
68
+ export function defaultMarqueeIgnore(target) {
69
+ if (!(target instanceof Element))
70
+ return false;
71
+ return Boolean(target.closest('input, textarea, select, button, a, label, [data-marquee-ignore], [role="separator"], [contenteditable="true"]'));
72
+ }
73
+ function pointerInContainer(e, container) {
74
+ const r = container.getBoundingClientRect();
75
+ return {
76
+ x: e.clientX - r.left + container.scrollLeft,
77
+ y: e.clientY - r.top + container.scrollTop
78
+ };
79
+ }
80
+ /**
81
+ * Attach Windows-style rubber-band selection to a container.
82
+ * Returns a disposer.
83
+ */
84
+ export function attachMarqueeSelect(container, options) {
85
+ const threshold = options.threshold ?? 4;
86
+ const shouldIgnore = options.shouldIgnore ?? defaultMarqueeIgnore;
87
+ let originX = 0;
88
+ let originY = 0;
89
+ let active = false;
90
+ let dragging = false;
91
+ let pointerId = null;
92
+ function unbindWindow() {
93
+ window.removeEventListener('pointermove', onPointerMove);
94
+ window.removeEventListener('pointerup', onPointerUp);
95
+ window.removeEventListener('pointercancel', onPointerUp);
96
+ }
97
+ function finish(e) {
98
+ if (!active)
99
+ return;
100
+ active = false;
101
+ const wasDragging = dragging;
102
+ dragging = false;
103
+ unbindWindow();
104
+ if (pointerId != null) {
105
+ try {
106
+ container.releasePointerCapture(pointerId);
107
+ }
108
+ catch {
109
+ /* already released */
110
+ }
111
+ pointerId = null;
112
+ }
113
+ if (!wasDragging) {
114
+ options.onRect?.(null);
115
+ return;
116
+ }
117
+ const pt = pointerInContainer(e, container);
118
+ const rect = normalizeRect(originX, originY, pt.x, pt.y);
119
+ const ids = hitTestIds(rect, options.getItems());
120
+ const modifier = getMarqueeModifier(e);
121
+ options.onSelect({ rect, ids, modifier });
122
+ options.onRect?.(null);
123
+ window.getSelection()?.removeAllRanges();
124
+ }
125
+ function onPointerDown(e) {
126
+ if (e.button !== 0)
127
+ return;
128
+ if (shouldIgnore(e.target))
129
+ return;
130
+ const pt = pointerInContainer(e, container);
131
+ originX = pt.x;
132
+ originY = pt.y;
133
+ active = true;
134
+ dragging = false;
135
+ pointerId = e.pointerId;
136
+ // Defer capture until drag threshold so cell/row clicks still fire.
137
+ window.addEventListener('pointermove', onPointerMove);
138
+ window.addEventListener('pointerup', onPointerUp);
139
+ window.addEventListener('pointercancel', onPointerUp);
140
+ }
141
+ function onPointerMove(e) {
142
+ if (!active)
143
+ return;
144
+ if (pointerId != null && e.pointerId !== pointerId)
145
+ return;
146
+ const pt = pointerInContainer(e, container);
147
+ const dx = pt.x - originX;
148
+ const dy = pt.y - originY;
149
+ if (!dragging) {
150
+ if (Math.hypot(dx, dy) < threshold)
151
+ return;
152
+ dragging = true;
153
+ if (pointerId != null) {
154
+ try {
155
+ container.setPointerCapture(pointerId);
156
+ }
157
+ catch {
158
+ /* ignore */
159
+ }
160
+ }
161
+ e.preventDefault();
162
+ window.getSelection()?.removeAllRanges();
163
+ }
164
+ else {
165
+ e.preventDefault();
166
+ }
167
+ const rect = normalizeRect(originX, originY, pt.x, pt.y);
168
+ options.onRect?.(rect);
169
+ const ids = hitTestIds(rect, options.getItems());
170
+ const modifier = getMarqueeModifier(e);
171
+ options.onDrag?.({ rect, ids, modifier });
172
+ }
173
+ function onPointerUp(e) {
174
+ if (pointerId != null && e.pointerId !== pointerId)
175
+ return;
176
+ finish(e);
177
+ }
178
+ function onLostCapture(e) {
179
+ if (e.pointerId === pointerId)
180
+ finish(e);
181
+ }
182
+ container.addEventListener('pointerdown', onPointerDown);
183
+ container.addEventListener('lostpointercapture', onLostCapture);
184
+ return () => {
185
+ unbindWindow();
186
+ container.removeEventListener('pointerdown', onPointerDown);
187
+ container.removeEventListener('lostpointercapture', onLostCapture);
188
+ };
189
+ }
@@ -0,0 +1,16 @@
1
+ /** Milliseconds ↔ pixels and timecode helpers for media timelines. */
2
+ export declare function msToPx(ms: number, pxPerMs: number): number;
3
+ export declare function pxToMs(px: number, pxPerMs: number): number;
4
+ /** px per ms from a zoom level (1 = 0.05 px/ms ≈ 50px/s). */
5
+ export declare function pxPerMsFromZoom(zoom: number): number;
6
+ export declare function snapMs(ms: number, snapToMs: number): number;
7
+ export declare function clampMs(ms: number, min?: number, max?: number): number;
8
+ /** Format as HH:MM:SS or MM:SS.mmm when showMs. */
9
+ export declare function formatTimecode(ms: number, opts?: {
10
+ showMs?: boolean;
11
+ fps?: number;
12
+ }): string;
13
+ export declare function ticksForDuration(durationMs: number, pxPerMs: number, minTickPx?: number): {
14
+ ms: number;
15
+ major: boolean;
16
+ }[];
@@ -0,0 +1,57 @@
1
+ /** Milliseconds ↔ pixels and timecode helpers for media timelines. */
2
+ export function msToPx(ms, pxPerMs) {
3
+ return ms * pxPerMs;
4
+ }
5
+ export function pxToMs(px, pxPerMs) {
6
+ if (pxPerMs <= 0)
7
+ return 0;
8
+ return px / pxPerMs;
9
+ }
10
+ /** px per ms from a zoom level (1 = 0.05 px/ms ≈ 50px/s). */
11
+ export function pxPerMsFromZoom(zoom) {
12
+ return Math.max(0.001, zoom) * 0.05;
13
+ }
14
+ export function snapMs(ms, snapToMs) {
15
+ if (snapToMs <= 0)
16
+ return ms;
17
+ return Math.round(ms / snapToMs) * snapToMs;
18
+ }
19
+ export function clampMs(ms, min = 0, max = Number.POSITIVE_INFINITY) {
20
+ return Math.min(max, Math.max(min, ms));
21
+ }
22
+ /** Format as HH:MM:SS or MM:SS.mmm when showMs. */
23
+ export function formatTimecode(ms, opts) {
24
+ const showMs = opts?.showMs ?? false;
25
+ const fps = opts?.fps;
26
+ const total = Math.max(0, Math.floor(ms));
27
+ const hours = Math.floor(total / 3_600_000);
28
+ const minutes = Math.floor((total % 3_600_000) / 60_000);
29
+ const seconds = Math.floor((total % 60_000) / 1000);
30
+ const millis = total % 1000;
31
+ const hh = hours > 0 ? `${String(hours).padStart(2, '0')}:` : '';
32
+ const mm = String(minutes).padStart(2, '0');
33
+ const ss = String(seconds).padStart(2, '0');
34
+ if (fps && fps > 0) {
35
+ const frame = Math.floor((millis / 1000) * fps) % Math.round(fps);
36
+ return `${hh}${mm}:${ss}:${String(frame).padStart(2, '0')}`;
37
+ }
38
+ if (showMs) {
39
+ return `${hh}${mm}:${ss}.${String(millis).padStart(3, '0')}`;
40
+ }
41
+ return `${hh}${mm}:${ss}`;
42
+ }
43
+ export function ticksForDuration(durationMs, pxPerMs, minTickPx = 60) {
44
+ const candidates = [100, 250, 500, 1000, 2000, 5000, 10_000, 30_000, 60_000, 120_000, 300_000];
45
+ let step = candidates[candidates.length - 1];
46
+ for (const c of candidates) {
47
+ if (msToPx(c, pxPerMs) >= minTickPx) {
48
+ step = c;
49
+ break;
50
+ }
51
+ }
52
+ const ticks = [];
53
+ for (let t = 0; t <= durationMs + 0.5; t += step) {
54
+ ticks.push({ ms: t, major: t % (step * 2) === 0 || t === 0 });
55
+ }
56
+ return ticks;
57
+ }
@@ -0,0 +1,61 @@
1
+ /** Shared track/clip types and helpers for Video / Audio editors. */
2
+ export type MediaAssetKind = 'image' | 'video' | 'audio' | 'text';
3
+ export interface MediaAsset {
4
+ id: string;
5
+ kind: MediaAssetKind;
6
+ name: string;
7
+ /** Object URL or remote URL */
8
+ src?: string;
9
+ durationMs?: number;
10
+ width?: number;
11
+ height?: number;
12
+ }
13
+ export interface MediaClip {
14
+ id: string;
15
+ trackId: string;
16
+ assetId?: string;
17
+ name: string;
18
+ kind: MediaAssetKind;
19
+ src?: string;
20
+ /** Timeline start */
21
+ startMs: number;
22
+ /** Timeline end */
23
+ endMs: number;
24
+ /** Source trim in */
25
+ trimInMs?: number;
26
+ /** Source trim out (absolute in source) */
27
+ trimOutMs?: number;
28
+ color?: string;
29
+ }
30
+ export type MediaTrackKind = 'video' | 'audio' | 'image';
31
+ export interface MediaTrack {
32
+ id: string;
33
+ name: string;
34
+ kind: MediaTrackKind;
35
+ muted?: boolean;
36
+ solo?: boolean;
37
+ locked?: boolean;
38
+ armed?: boolean;
39
+ color?: string;
40
+ clips: MediaClip[];
41
+ }
42
+ export declare function uid(prefix?: string): string;
43
+ export declare function createMediaClip(partial: Omit<MediaClip, 'id'> & {
44
+ id?: string;
45
+ }): MediaClip;
46
+ export declare function createMediaTrack(partial: Omit<MediaTrack, 'id' | 'clips'> & {
47
+ id?: string;
48
+ clips?: MediaClip[];
49
+ }): MediaTrack;
50
+ export declare function clipDurationMs(clip: MediaClip): number;
51
+ export declare function moveClip(clip: MediaClip, newStartMs: number, durationMs?: number): MediaClip;
52
+ export declare function trimClipStart(clip: MediaClip, newStartMs: number, minDur?: number): MediaClip;
53
+ export declare function trimClipEnd(clip: MediaClip, newEndMs: number, minDur?: number): MediaClip;
54
+ export declare function isClipActiveAt(clip: MediaClip, timeMs: number): boolean;
55
+ export declare function findClipAt(tracks: MediaTrack[], timeMs: number, kind?: MediaTrackKind): MediaClip | null;
56
+ export declare function updateClipInTracks(tracks: MediaTrack[], clipId: string, updater: (c: MediaClip) => MediaClip): MediaTrack[];
57
+ export declare function removeClipFromTracks(tracks: MediaTrack[], clipId: string): MediaTrack[];
58
+ export declare function createMediaAsset(partial: Omit<MediaAsset, 'id'> & {
59
+ id?: string;
60
+ }): MediaAsset;
61
+ export declare function kindFromFile(file: File): MediaAssetKind;
@@ -0,0 +1,102 @@
1
+ /** Shared track/clip types and helpers for Video / Audio editors. */
2
+ export function uid(prefix = 'id') {
3
+ return `${prefix}_${Math.random().toString(36).slice(2, 10)}`;
4
+ }
5
+ export function createMediaClip(partial) {
6
+ return {
7
+ id: partial.id ?? uid('clip'),
8
+ trackId: partial.trackId,
9
+ assetId: partial.assetId,
10
+ name: partial.name,
11
+ kind: partial.kind,
12
+ src: partial.src,
13
+ startMs: partial.startMs,
14
+ endMs: Math.max(partial.startMs + 1, partial.endMs),
15
+ trimInMs: partial.trimInMs,
16
+ trimOutMs: partial.trimOutMs,
17
+ color: partial.color
18
+ };
19
+ }
20
+ export function createMediaTrack(partial) {
21
+ return {
22
+ id: partial.id ?? uid('track'),
23
+ name: partial.name,
24
+ kind: partial.kind,
25
+ muted: partial.muted ?? false,
26
+ solo: partial.solo ?? false,
27
+ locked: partial.locked ?? false,
28
+ armed: partial.armed ?? false,
29
+ color: partial.color,
30
+ clips: partial.clips ?? []
31
+ };
32
+ }
33
+ export function clipDurationMs(clip) {
34
+ return Math.max(0, clip.endMs - clip.startMs);
35
+ }
36
+ export function moveClip(clip, newStartMs, durationMs) {
37
+ const dur = durationMs ?? clipDurationMs(clip);
38
+ const startMs = Math.max(0, newStartMs);
39
+ return { ...clip, startMs, endMs: startMs + dur };
40
+ }
41
+ export function trimClipStart(clip, newStartMs, minDur = 50) {
42
+ const endMs = clip.endMs;
43
+ const startMs = Math.min(Math.max(0, newStartMs), endMs - minDur);
44
+ const delta = startMs - clip.startMs;
45
+ return {
46
+ ...clip,
47
+ startMs,
48
+ trimInMs: (clip.trimInMs ?? 0) + delta
49
+ };
50
+ }
51
+ export function trimClipEnd(clip, newEndMs, minDur = 50) {
52
+ const startMs = clip.startMs;
53
+ const endMs = Math.max(startMs + minDur, newEndMs);
54
+ return { ...clip, endMs };
55
+ }
56
+ export function isClipActiveAt(clip, timeMs) {
57
+ return timeMs >= clip.startMs && timeMs < clip.endMs;
58
+ }
59
+ export function findClipAt(tracks, timeMs, kind) {
60
+ const list = kind ? tracks.filter((t) => t.kind === kind) : tracks;
61
+ for (const track of [...list].reverse()) {
62
+ if (track.muted && !track.solo)
63
+ continue;
64
+ for (const clip of track.clips) {
65
+ if (isClipActiveAt(clip, timeMs))
66
+ return clip;
67
+ }
68
+ }
69
+ return null;
70
+ }
71
+ export function updateClipInTracks(tracks, clipId, updater) {
72
+ return tracks.map((t) => ({
73
+ ...t,
74
+ clips: t.clips.map((c) => (c.id === clipId ? updater(c) : c))
75
+ }));
76
+ }
77
+ export function removeClipFromTracks(tracks, clipId) {
78
+ return tracks.map((t) => ({
79
+ ...t,
80
+ clips: t.clips.filter((c) => c.id !== clipId)
81
+ }));
82
+ }
83
+ export function createMediaAsset(partial) {
84
+ return {
85
+ id: partial.id ?? uid('asset'),
86
+ kind: partial.kind,
87
+ name: partial.name,
88
+ src: partial.src,
89
+ durationMs: partial.durationMs,
90
+ width: partial.width,
91
+ height: partial.height
92
+ };
93
+ }
94
+ export function kindFromFile(file) {
95
+ if (file.type.startsWith('image/'))
96
+ return 'image';
97
+ if (file.type.startsWith('video/'))
98
+ return 'video';
99
+ if (file.type.startsWith('audio/'))
100
+ return 'audio';
101
+ return 'text';
102
+ }