@r2digisolutions/components 0.1.7 → 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 (324) 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 +59 -0
  15. package/dist/components/atoms/Playhead/Playhead.svelte.d.ts +13 -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 +58 -0
  20. package/dist/components/atoms/TimeRuler/TimeRuler.svelte.d.ts +10 -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/Tooltip/Tooltip.svelte +1 -1
  24. package/dist/components/atoms/TrimHandle/TrimHandle.stories.js +8 -0
  25. package/dist/components/atoms/TrimHandle/TrimHandle.svelte +63 -0
  26. package/dist/components/atoms/TrimHandle/TrimHandle.svelte.d.ts +12 -0
  27. package/dist/components/atoms/TrimHandle/TrimHandleStory.svelte +11 -0
  28. package/dist/components/atoms/TrimHandle/TrimHandleStory.svelte.d.ts +18 -0
  29. package/dist/components/molecules/AiAssistPanel/AiAssistPanel.stories.d.ts +9 -0
  30. package/dist/components/molecules/AiAssistPanel/AiAssistPanel.stories.js +8 -0
  31. package/dist/components/molecules/AiAssistPanel/AiAssistPanel.svelte +102 -0
  32. package/dist/components/molecules/AiAssistPanel/AiAssistPanel.svelte.d.ts +20 -0
  33. package/dist/components/molecules/AiAssistPanel/AiAssistPanelStory.svelte +34 -0
  34. package/dist/components/molecules/AiAssistPanel/AiAssistPanelStory.svelte.d.ts +3 -0
  35. package/dist/components/molecules/BulkActionBar/BulkActionBar.svelte +97 -61
  36. package/dist/components/molecules/BulkActionBar/BulkActionBar.svelte.d.ts +2 -0
  37. package/dist/components/molecules/BulkEditPanel/BulkEditPanel.stories.js +8 -0
  38. package/dist/components/molecules/BulkEditPanel/BulkEditPanel.svelte +117 -0
  39. package/dist/components/molecules/BulkEditPanel/BulkEditPanel.svelte.d.ts +23 -0
  40. package/dist/components/molecules/BulkEditPanel/BulkEditPanelStory.svelte +18 -0
  41. package/dist/components/molecules/BulkEditPanel/BulkEditPanelStory.svelte.d.ts +18 -0
  42. package/dist/components/molecules/CanvasElementsPanel/CanvasElementsPanel.stories.js +8 -0
  43. package/dist/components/molecules/CanvasElementsPanel/CanvasElementsPanel.svelte +858 -0
  44. package/dist/components/molecules/CanvasElementsPanel/CanvasElementsPanel.svelte.d.ts +43 -0
  45. package/dist/components/molecules/CanvasElementsPanel/CanvasElementsPanelStory.svelte +7 -0
  46. package/dist/components/molecules/CanvasElementsPanel/CanvasElementsPanelStory.svelte.d.ts +18 -0
  47. package/dist/components/molecules/CanvasInspector/CanvasInspector.stories.d.ts +9 -0
  48. package/dist/components/molecules/CanvasInspector/CanvasInspector.stories.js +8 -0
  49. package/dist/components/molecules/CanvasInspector/CanvasInspector.svelte +1140 -0
  50. package/dist/components/molecules/CanvasInspector/CanvasInspector.svelte.d.ts +28 -0
  51. package/dist/components/molecules/CanvasInspector/CanvasInspectorStory.svelte +20 -0
  52. package/dist/components/molecules/CanvasInspector/CanvasInspectorStory.svelte.d.ts +3 -0
  53. package/dist/components/molecules/ColorPicker/ColorPicker.svelte +1 -1
  54. package/dist/components/molecules/ColumnVisibilityMenu/ColumnVisibilityMenu.stories.d.ts +9 -0
  55. package/dist/components/molecules/ColumnVisibilityMenu/ColumnVisibilityMenu.stories.js +8 -0
  56. package/dist/components/molecules/ColumnVisibilityMenu/ColumnVisibilityMenu.svelte +108 -0
  57. package/dist/components/molecules/ColumnVisibilityMenu/ColumnVisibilityMenu.svelte.d.ts +18 -0
  58. package/dist/components/molecules/ColumnVisibilityMenu/ColumnVisibilityMenuStory.svelte +15 -0
  59. package/dist/components/molecules/ColumnVisibilityMenu/ColumnVisibilityMenuStory.svelte.d.ts +3 -0
  60. package/dist/components/molecules/ConflictResolver/ConflictResolver.stories.js +8 -0
  61. package/dist/components/molecules/ConflictResolver/ConflictResolver.svelte +73 -0
  62. package/dist/components/molecules/ConflictResolver/ConflictResolver.svelte.d.ts +16 -0
  63. package/dist/components/molecules/ConflictResolver/ConflictResolverStory.svelte +11 -0
  64. package/dist/components/molecules/ConflictResolver/ConflictResolverStory.svelte.d.ts +18 -0
  65. package/dist/components/molecules/ContextMenu/ContextMenu.svelte +204 -60
  66. package/dist/components/molecules/ContextMenu/ContextMenu.svelte.d.ts +9 -0
  67. package/dist/components/molecules/ExpressionEditor/ExpressionEditor.stories.d.ts +9 -0
  68. package/dist/components/molecules/ExpressionEditor/ExpressionEditor.stories.js +8 -0
  69. package/dist/components/molecules/ExpressionEditor/ExpressionEditor.svelte +56 -0
  70. package/dist/components/molecules/ExpressionEditor/ExpressionEditor.svelte.d.ts +12 -0
  71. package/dist/components/molecules/ExpressionEditor/ExpressionEditorStory.svelte +12 -0
  72. package/dist/components/molecules/ExpressionEditor/ExpressionEditorStory.svelte.d.ts +3 -0
  73. package/dist/components/molecules/FilterList/FilterList.stories.d.ts +9 -0
  74. package/dist/components/molecules/FilterList/FilterList.stories.js +8 -0
  75. package/dist/components/molecules/FilterList/FilterList.svelte +101 -0
  76. package/dist/components/molecules/FilterList/FilterList.svelte.d.ts +18 -0
  77. package/dist/components/molecules/FilterList/FilterListStory.svelte +31 -0
  78. package/dist/components/molecules/FilterList/FilterListStory.svelte.d.ts +3 -0
  79. package/dist/components/molecules/MediaAssetBrowser/MediaAssetBrowser.stories.d.ts +9 -0
  80. package/dist/components/molecules/MediaAssetBrowser/MediaAssetBrowser.stories.js +8 -0
  81. package/dist/components/molecules/MediaAssetBrowser/MediaAssetBrowser.svelte +94 -0
  82. package/dist/components/molecules/MediaAssetBrowser/MediaAssetBrowser.svelte.d.ts +15 -0
  83. package/dist/components/molecules/MediaAssetBrowser/MediaAssetBrowserStory.svelte +18 -0
  84. package/dist/components/molecules/MediaAssetBrowser/MediaAssetBrowserStory.svelte.d.ts +3 -0
  85. package/dist/components/molecules/MediaAssetCard/MediaAssetCard.stories.js +8 -0
  86. package/dist/components/molecules/MediaAssetCard/MediaAssetCard.svelte +50 -0
  87. package/dist/components/molecules/MediaAssetCard/MediaAssetCard.svelte.d.ts +11 -0
  88. package/dist/components/molecules/MediaAssetCard/MediaAssetCardStory.svelte +13 -0
  89. package/dist/components/molecules/MediaAssetCard/MediaAssetCardStory.svelte.d.ts +18 -0
  90. package/dist/components/molecules/MediaLayerItem/MediaLayerItem.stories.js +8 -0
  91. package/dist/components/molecules/MediaLayerItem/MediaLayerItem.svelte +380 -0
  92. package/dist/components/molecules/MediaLayerItem/MediaLayerItem.svelte.d.ts +33 -0
  93. package/dist/components/molecules/MediaLayerItem/MediaLayerItemStory.svelte +14 -0
  94. package/dist/components/molecules/MediaLayerItem/MediaLayerItemStory.svelte.d.ts +18 -0
  95. package/dist/components/molecules/MediaLayerList/MediaLayerList.stories.d.ts +9 -0
  96. package/dist/components/molecules/MediaLayerList/MediaLayerList.stories.js +8 -0
  97. package/dist/components/molecules/MediaLayerList/MediaLayerList.svelte +399 -0
  98. package/dist/components/molecules/MediaLayerList/MediaLayerList.svelte.d.ts +37 -0
  99. package/dist/components/molecules/MediaLayerList/MediaLayerListStory.svelte +24 -0
  100. package/dist/components/molecules/MediaLayerList/MediaLayerListStory.svelte.d.ts +3 -0
  101. package/dist/components/molecules/MediaStage/MediaStage.stories.d.ts +9 -0
  102. package/dist/components/molecules/MediaStage/MediaStage.stories.js +8 -0
  103. package/dist/components/molecules/MediaStage/MediaStage.svelte +1498 -0
  104. package/dist/components/molecules/MediaStage/MediaStage.svelte.d.ts +45 -0
  105. package/dist/components/molecules/MediaStage/MediaStageStory.svelte +35 -0
  106. package/dist/components/molecules/MediaStage/MediaStageStory.svelte.d.ts +3 -0
  107. package/dist/components/molecules/MediaTimeline/MediaTimeline.stories.d.ts +9 -0
  108. package/dist/components/molecules/MediaTimeline/MediaTimeline.stories.js +8 -0
  109. package/dist/components/molecules/MediaTimeline/MediaTimeline.svelte +131 -0
  110. package/dist/components/molecules/MediaTimeline/MediaTimeline.svelte.d.ts +19 -0
  111. package/dist/components/molecules/MediaTimeline/MediaTimelineStory.svelte +20 -0
  112. package/dist/components/molecules/MediaTimeline/MediaTimelineStory.svelte.d.ts +3 -0
  113. package/dist/components/molecules/MixerChannel/MixerChannel.stories.d.ts +9 -0
  114. package/dist/components/molecules/MixerChannel/MixerChannel.stories.js +8 -0
  115. package/dist/components/molecules/MixerChannel/MixerChannel.svelte +92 -0
  116. package/dist/components/molecules/MixerChannel/MixerChannel.svelte.d.ts +11 -0
  117. package/dist/components/molecules/MixerChannel/MixerChannelStory.svelte +13 -0
  118. package/dist/components/molecules/MixerChannel/MixerChannelStory.svelte.d.ts +3 -0
  119. package/dist/components/molecules/NodeGraph/GraphBlueprintNode.svelte +454 -0
  120. package/dist/components/molecules/NodeGraph/GraphBlueprintNode.svelte.d.ts +8 -0
  121. package/dist/components/molecules/NodeGraph/GraphFlowBridge.svelte +26 -0
  122. package/dist/components/molecules/NodeGraph/GraphFlowBridge.svelte.d.ts +22 -0
  123. package/dist/components/molecules/NodeGraph/NodeGraph.stories.d.ts +12 -0
  124. package/dist/components/molecules/NodeGraph/NodeGraph.stories.js +9 -0
  125. package/dist/components/molecules/NodeGraph/NodeGraph.svelte +1409 -0
  126. package/dist/components/molecules/NodeGraph/NodeGraph.svelte.d.ts +33 -0
  127. package/dist/components/molecules/NodeGraph/NodeGraphStory.svelte +90 -0
  128. package/dist/components/molecules/NodeGraph/NodeGraphStory.svelte.d.ts +3 -0
  129. package/dist/components/molecules/NodePalette/NodePalette.stories.js +8 -0
  130. package/dist/components/molecules/NodePalette/NodePalette.svelte +86 -0
  131. package/dist/components/molecules/NodePalette/NodePalette.svelte.d.ts +11 -0
  132. package/dist/components/molecules/NodePalette/NodePaletteStory.svelte +11 -0
  133. package/dist/components/molecules/NodePalette/NodePaletteStory.svelte.d.ts +18 -0
  134. package/dist/components/molecules/Poll/Poll.stories.d.ts +1 -1
  135. package/dist/components/molecules/ProgramMonitor/ProgramMonitor.stories.js +8 -0
  136. package/dist/components/molecules/ProgramMonitor/ProgramMonitor.svelte +72 -0
  137. package/dist/components/molecules/ProgramMonitor/ProgramMonitor.svelte.d.ts +12 -0
  138. package/dist/components/molecules/ProgramMonitor/ProgramMonitorStory.svelte +16 -0
  139. package/dist/components/molecules/ProgramMonitor/ProgramMonitorStory.svelte.d.ts +18 -0
  140. package/dist/components/molecules/PropertyField/PropertyField.svelte +57 -3
  141. package/dist/components/molecules/PropertyField/PropertyField.svelte.d.ts +10 -0
  142. package/dist/components/molecules/PropertyField/PropertyFieldStory.svelte +21 -0
  143. package/dist/components/molecules/PropertyGroup/PropertyGroup.svelte +1 -1
  144. package/dist/components/molecules/QueryBuilder/QueryBuilder.stories.d.ts +9 -0
  145. package/dist/components/molecules/QueryBuilder/QueryBuilder.stories.js +8 -0
  146. package/dist/components/molecules/QueryBuilder/QueryBuilder.svelte +52 -0
  147. package/dist/components/molecules/QueryBuilder/QueryBuilder.svelte.d.ts +18 -0
  148. package/dist/components/molecules/QueryBuilder/QueryBuilderStory.svelte +62 -0
  149. package/dist/components/molecules/QueryBuilder/QueryBuilderStory.svelte.d.ts +3 -0
  150. package/dist/components/molecules/RelationPicker/RelationPicker.stories.d.ts +9 -0
  151. package/dist/components/molecules/RelationPicker/RelationPicker.stories.js +8 -0
  152. package/dist/components/molecules/RelationPicker/RelationPicker.svelte +180 -0
  153. package/dist/components/molecules/RelationPicker/RelationPicker.svelte.d.ts +24 -0
  154. package/dist/components/molecules/RelationPicker/RelationPickerStory.svelte +16 -0
  155. package/dist/components/molecules/RelationPicker/RelationPickerStory.svelte.d.ts +3 -0
  156. package/dist/components/molecules/SchemaFieldBuilder/SchemaFieldBuilder.stories.d.ts +9 -0
  157. package/dist/components/molecules/SchemaFieldBuilder/SchemaFieldBuilder.stories.js +8 -0
  158. package/dist/components/molecules/SchemaFieldBuilder/SchemaFieldBuilder.svelte +154 -0
  159. package/dist/components/molecules/SchemaFieldBuilder/SchemaFieldBuilder.svelte.d.ts +12 -0
  160. package/dist/components/molecules/SchemaFieldBuilder/SchemaFieldBuilderStory.svelte +16 -0
  161. package/dist/components/molecules/SchemaFieldBuilder/SchemaFieldBuilderStory.svelte.d.ts +3 -0
  162. package/dist/components/molecules/SecretField/SecretField.stories.d.ts +9 -0
  163. package/dist/components/molecules/SecretField/SecretField.stories.js +8 -0
  164. package/dist/components/molecules/SecretField/SecretField.svelte +58 -0
  165. package/dist/components/molecules/SecretField/SecretField.svelte.d.ts +15 -0
  166. package/dist/components/molecules/SecretField/SecretFieldStory.svelte +8 -0
  167. package/dist/components/molecules/SecretField/SecretFieldStory.svelte.d.ts +3 -0
  168. package/dist/components/molecules/SplitPane/SplitPane.svelte +96 -37
  169. package/dist/components/molecules/SplitPane/SplitPane.svelte.d.ts +10 -2
  170. package/dist/components/molecules/TableToolbar/TableToolbar.svelte.d.ts +1 -1
  171. package/dist/components/molecules/Terminal/Terminal.stories.js +20 -0
  172. package/dist/components/molecules/Terminal/Terminal.svelte +238 -0
  173. package/dist/components/molecules/Terminal/Terminal.svelte.d.ts +19 -0
  174. package/dist/components/molecules/Terminal/TerminalStory.svelte +47 -0
  175. package/dist/components/molecules/Terminal/TerminalStory.svelte.d.ts +6 -0
  176. package/dist/components/molecules/TimelineClip/TimelineClip.stories.js +8 -0
  177. package/dist/components/molecules/TimelineClip/TimelineClip.svelte +116 -0
  178. package/dist/components/molecules/TimelineClip/TimelineClip.svelte.d.ts +15 -0
  179. package/dist/components/molecules/TimelineClip/TimelineClipStory.svelte +18 -0
  180. package/dist/components/molecules/TimelineClip/TimelineClipStory.svelte.d.ts +18 -0
  181. package/dist/components/molecules/TimelineTrack/TimelineTrack.stories.js +8 -0
  182. package/dist/components/molecules/TimelineTrack/TimelineTrack.svelte +56 -0
  183. package/dist/components/molecules/TimelineTrack/TimelineTrack.svelte.d.ts +16 -0
  184. package/dist/components/molecules/TimelineTrack/TimelineTrackStory.svelte +35 -0
  185. package/dist/components/molecules/TimelineTrack/TimelineTrackStory.svelte.d.ts +18 -0
  186. package/dist/components/molecules/TraceWaterfall/TraceWaterfall.stories.js +8 -0
  187. package/dist/components/molecules/TraceWaterfall/TraceWaterfall.svelte +158 -0
  188. package/dist/components/molecules/TraceWaterfall/TraceWaterfall.svelte.d.ts +18 -0
  189. package/dist/components/molecules/TraceWaterfall/TraceWaterfallStory.svelte +55 -0
  190. package/dist/components/molecules/TraceWaterfall/TraceWaterfallStory.svelte.d.ts +18 -0
  191. package/dist/components/molecules/TrackHeader/TrackHeader.stories.d.ts +9 -0
  192. package/dist/components/molecules/TrackHeader/TrackHeader.stories.js +8 -0
  193. package/dist/components/molecules/TrackHeader/TrackHeader.svelte +54 -0
  194. package/dist/components/molecules/TrackHeader/TrackHeader.svelte.d.ts +9 -0
  195. package/dist/components/molecules/TrackHeader/TrackHeaderStory.svelte +10 -0
  196. package/dist/components/molecules/TrackHeader/TrackHeaderStory.svelte.d.ts +3 -0
  197. package/dist/components/molecules/TransportControls/TransportControls.stories.d.ts +9 -0
  198. package/dist/components/molecules/TransportControls/TransportControls.stories.js +8 -0
  199. package/dist/components/molecules/TransportControls/TransportControls.svelte +53 -0
  200. package/dist/components/molecules/TransportControls/TransportControls.svelte.d.ts +12 -0
  201. package/dist/components/molecules/TransportControls/TransportControlsStory.svelte +18 -0
  202. package/dist/components/molecules/TransportControls/TransportControlsStory.svelte.d.ts +3 -0
  203. package/dist/components/molecules/VersionHistoryPanel/VersionHistoryPanel.stories.js +8 -0
  204. package/dist/components/molecules/VersionHistoryPanel/VersionHistoryPanel.svelte +117 -0
  205. package/dist/components/molecules/VersionHistoryPanel/VersionHistoryPanel.svelte.d.ts +20 -0
  206. package/dist/components/molecules/VersionHistoryPanel/VersionHistoryPanelStory.svelte +36 -0
  207. package/dist/components/molecules/VersionHistoryPanel/VersionHistoryPanelStory.svelte.d.ts +18 -0
  208. package/dist/components/molecules/VideoPlayer/VideoPlayer.stories.d.ts +1 -1
  209. package/dist/components/molecules/VideoTrackHeader/VideoTrackHeader.stories.d.ts +9 -0
  210. package/dist/components/molecules/VideoTrackHeader/VideoTrackHeader.stories.js +8 -0
  211. package/dist/components/molecules/VideoTrackHeader/VideoTrackHeader.svelte +59 -0
  212. package/dist/components/molecules/VideoTrackHeader/VideoTrackHeader.svelte.d.ts +9 -0
  213. package/dist/components/molecules/VideoTrackHeader/VideoTrackHeaderStory.svelte +10 -0
  214. package/dist/components/molecules/VideoTrackHeader/VideoTrackHeaderStory.svelte.d.ts +3 -0
  215. package/dist/components/molecules/WaveformRegion/WaveformRegion.stories.js +8 -0
  216. package/dist/components/molecules/WaveformRegion/WaveformRegion.svelte +82 -0
  217. package/dist/components/molecules/WaveformRegion/WaveformRegion.svelte.d.ts +13 -0
  218. package/dist/components/molecules/WaveformRegion/WaveformRegionStory.svelte +17 -0
  219. package/dist/components/molecules/WaveformRegion/WaveformRegionStory.svelte.d.ts +18 -0
  220. package/dist/components/molecules/WidgetCanvas/WidgetCanvas.svelte +13 -4
  221. package/dist/components/molecules/WidgetCanvas/WidgetCanvas.svelte.d.ts +3 -1
  222. package/dist/components/molecules/WidgetCanvas/widgetCanvasContext.d.ts +2 -0
  223. package/dist/components/molecules/WidgetFrame/WidgetFrame.svelte +206 -37
  224. package/dist/components/molecules/WidgetFrame/WidgetFrame.svelte.d.ts +31 -0
  225. package/dist/components/organisms/AudioEditor/AudioEditor.stories.d.ts +12 -0
  226. package/dist/components/organisms/AudioEditor/AudioEditor.stories.js +9 -0
  227. package/dist/components/organisms/AudioEditor/AudioEditor.svelte +273 -0
  228. package/dist/components/organisms/AudioEditor/AudioEditor.svelte.d.ts +13 -0
  229. package/dist/components/organisms/AudioEditor/AudioEditorStory.svelte +10 -0
  230. package/dist/components/organisms/AudioEditor/AudioEditorStory.svelte.d.ts +3 -0
  231. package/dist/components/organisms/BlogEditor/BlogEditor.stories.d.ts +12 -0
  232. package/dist/components/organisms/BlogEditor/BlogEditor.stories.js +9 -0
  233. package/dist/components/organisms/BlogEditor/BlogEditor.svelte +1208 -0
  234. package/dist/components/organisms/BlogEditor/BlogEditor.svelte.d.ts +16 -0
  235. package/dist/components/organisms/BlogEditor/BlogEditorStory.svelte +144 -0
  236. package/dist/components/organisms/BlogEditor/BlogEditorStory.svelte.d.ts +3 -0
  237. package/dist/components/organisms/BlogEditor/DemoBlogCard.svelte +28 -0
  238. package/dist/components/organisms/BlogEditor/DemoBlogCard.svelte.d.ts +10 -0
  239. package/dist/components/organisms/BlogEditor/DemoBlogStats.svelte +34 -0
  240. package/dist/components/organisms/BlogEditor/DemoBlogStats.svelte.d.ts +11 -0
  241. package/dist/components/organisms/BlogEditor/DemoBlogWidget.svelte +13 -0
  242. package/dist/components/organisms/BlogEditor/DemoBlogWidget.svelte.d.ts +8 -0
  243. package/dist/components/organisms/BlogRenderer/BlogRenderer.stories.js +8 -0
  244. package/dist/components/organisms/BlogRenderer/BlogRenderer.svelte +469 -0
  245. package/dist/components/organisms/BlogRenderer/BlogRenderer.svelte.d.ts +14 -0
  246. package/dist/components/organisms/BlogRenderer/BlogRendererStory.svelte +20 -0
  247. package/dist/components/organisms/BlogRenderer/BlogRendererStory.svelte.d.ts +18 -0
  248. package/dist/components/organisms/BlueprintEditor/BlueprintEditor.stories.d.ts +12 -0
  249. package/dist/components/organisms/BlueprintEditor/BlueprintEditor.stories.js +9 -0
  250. package/dist/components/organisms/BlueprintEditor/BlueprintEditor.svelte +1012 -0
  251. package/dist/components/organisms/BlueprintEditor/BlueprintEditor.svelte.d.ts +16 -0
  252. package/dist/components/organisms/BlueprintEditor/BlueprintEditorStory.svelte +76 -0
  253. package/dist/components/organisms/BlueprintEditor/BlueprintEditorStory.svelte.d.ts +3 -0
  254. package/dist/components/organisms/CanvasEditor/CanvasEditor.stories.d.ts +12 -0
  255. package/dist/components/organisms/CanvasEditor/CanvasEditor.stories.js +9 -0
  256. package/dist/components/organisms/CanvasEditor/CanvasEditor.svelte +1680 -0
  257. package/dist/components/organisms/CanvasEditor/CanvasEditor.svelte.d.ts +18 -0
  258. package/dist/components/organisms/CanvasEditor/CanvasEditorStory.svelte +329 -0
  259. package/dist/components/organisms/CanvasEditor/CanvasEditorStory.svelte.d.ts +3 -0
  260. package/dist/components/organisms/DashboardBuilderPage/DashboardBuilderPage.svelte.d.ts +1 -1
  261. package/dist/components/organisms/DesktopShell/DesktopShell.svelte.d.ts +1 -1
  262. package/dist/components/organisms/EditorShell/EditorShell.svelte +123 -28
  263. package/dist/components/organisms/EditorShell/EditorShell.svelte.d.ts +21 -1
  264. package/dist/components/organisms/FileUploader/FileUploader.svelte +77 -15
  265. package/dist/components/organisms/FileUploader/FileUploader.svelte.d.ts +11 -0
  266. package/dist/components/organisms/ImportWizard/ImportWizard.stories.js +8 -0
  267. package/dist/components/organisms/ImportWizard/ImportWizard.svelte +209 -0
  268. package/dist/components/organisms/ImportWizard/ImportWizard.svelte.d.ts +22 -0
  269. package/dist/components/organisms/ImportWizard/ImportWizardStory.svelte +16 -0
  270. package/dist/components/organisms/ImportWizard/ImportWizardStory.svelte.d.ts +18 -0
  271. package/dist/components/organisms/VideoEditor/VideoEditor.stories.d.ts +12 -0
  272. package/dist/components/organisms/VideoEditor/VideoEditor.stories.js +9 -0
  273. package/dist/components/organisms/VideoEditor/VideoEditor.svelte +308 -0
  274. package/dist/components/organisms/VideoEditor/VideoEditor.svelte.d.ts +13 -0
  275. package/dist/components/organisms/VideoEditor/VideoEditorStory.svelte +10 -0
  276. package/dist/components/organisms/VideoEditor/VideoEditorStory.svelte.d.ts +3 -0
  277. package/dist/components/templates/AudioEditorTemplate/AudioEditorTemplate.stories.d.ts +12 -0
  278. package/dist/components/templates/AudioEditorTemplate/AudioEditorTemplate.stories.js +9 -0
  279. package/dist/components/templates/AudioEditorTemplate/AudioEditorTemplate.svelte +22 -0
  280. package/dist/components/templates/AudioEditorTemplate/AudioEditorTemplate.svelte.d.ts +13 -0
  281. package/dist/components/templates/AudioEditorTemplate/AudioEditorTemplateStory.svelte +8 -0
  282. package/dist/components/templates/AudioEditorTemplate/AudioEditorTemplateStory.svelte.d.ts +3 -0
  283. package/dist/components/templates/CanvasEditorTemplate/CanvasEditorTemplate.stories.d.ts +12 -0
  284. package/dist/components/templates/CanvasEditorTemplate/CanvasEditorTemplate.stories.js +9 -0
  285. package/dist/components/templates/CanvasEditorTemplate/CanvasEditorTemplate.svelte +32 -0
  286. package/dist/components/templates/CanvasEditorTemplate/CanvasEditorTemplate.svelte.d.ts +17 -0
  287. package/dist/components/templates/CanvasEditorTemplate/CanvasEditorTemplateStory.svelte +21 -0
  288. package/dist/components/templates/CanvasEditorTemplate/CanvasEditorTemplateStory.svelte.d.ts +3 -0
  289. package/dist/components/templates/VideoEditorTemplate/VideoEditorTemplate.stories.d.ts +12 -0
  290. package/dist/components/templates/VideoEditorTemplate/VideoEditorTemplate.stories.js +9 -0
  291. package/dist/components/templates/VideoEditorTemplate/VideoEditorTemplate.svelte +22 -0
  292. package/dist/components/templates/VideoEditorTemplate/VideoEditorTemplate.svelte.d.ts +13 -0
  293. package/dist/components/templates/VideoEditorTemplate/VideoEditorTemplateStory.svelte +8 -0
  294. package/dist/components/templates/VideoEditorTemplate/VideoEditorTemplateStory.svelte.d.ts +3 -0
  295. package/dist/index.d.ts +83 -1
  296. package/dist/index.js +60 -0
  297. package/dist/types/xyflow-svelte.d.ts +62 -0
  298. package/dist/utils/audioProject.d.ts +19 -0
  299. package/dist/utils/audioProject.js +70 -0
  300. package/dist/utils/blogDocument.d.ts +175 -0
  301. package/dist/utils/blogDocument.js +220 -0
  302. package/dist/utils/blueprintRuntime.d.ts +34 -0
  303. package/dist/utils/blueprintRuntime.js +289 -0
  304. package/dist/utils/canvasDocument.d.ts +239 -0
  305. package/dist/utils/canvasDocument.js +443 -0
  306. package/dist/utils/canvasExport.d.ts +10 -0
  307. package/dist/utils/canvasExport.js +469 -0
  308. package/dist/utils/canvasHierarchy.d.ts +189 -0
  309. package/dist/utils/canvasHierarchy.js +674 -0
  310. package/dist/utils/canvasHistory.d.ts +19 -0
  311. package/dist/utils/canvasHistory.js +48 -0
  312. package/dist/utils/canvasWidget.d.ts +81 -0
  313. package/dist/utils/canvasWidget.js +597 -0
  314. package/dist/utils/mediaTime.d.ts +16 -0
  315. package/dist/utils/mediaTime.js +57 -0
  316. package/dist/utils/mediaTracks.d.ts +61 -0
  317. package/dist/utils/mediaTracks.js +102 -0
  318. package/dist/utils/nodeGraph.d.ts +354 -0
  319. package/dist/utils/nodeGraph.js +1453 -0
  320. package/dist/utils/queryBridge.d.ts +18 -0
  321. package/dist/utils/queryBridge.js +118 -0
  322. package/dist/utils/videoSequence.d.ts +13 -0
  323. package/dist/utils/videoSequence.js +63 -0
  324. package/package.json +5 -2
@@ -0,0 +1,15 @@
1
+ import type { MediaClip } from '../../../utils/mediaTracks.js';
2
+ interface TimelineClipProps {
3
+ clip: MediaClip;
4
+ pxPerMs?: number;
5
+ selected?: boolean;
6
+ locked?: boolean;
7
+ class?: string;
8
+ onclick?: (e: MouseEvent) => void;
9
+ onmove?: (startMs: number) => void;
10
+ ontrimstart?: (startMs: number) => void;
11
+ ontrimend?: (endMs: number) => void;
12
+ }
13
+ declare const TimelineClip: import("svelte").Component<TimelineClipProps, {}, "">;
14
+ type TimelineClip = ReturnType<typeof TimelineClip>;
15
+ export default TimelineClip;
@@ -0,0 +1,18 @@
1
+ <script lang="ts">
2
+ import TimelineClip from './TimelineClip.svelte';
3
+ import type { MediaClip } from '../../../utils/mediaTracks.js';
4
+
5
+ const clip: MediaClip = {
6
+ id: 'c1',
7
+ trackId: 't1',
8
+ name: 'Intro',
9
+ kind: 'video',
10
+ startMs: 1000,
11
+ endMs: 8000,
12
+ color: '#8b5cf6'
13
+ };
14
+ </script>
15
+
16
+ <div class="relative h-12 w-full rounded-lg border border-border bg-surface">
17
+ <TimelineClip {clip} pxPerMs={0.08} selected />
18
+ </div>
@@ -0,0 +1,18 @@
1
+ interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
2
+ new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
3
+ $$bindings?: Bindings;
4
+ } & Exports;
5
+ (internal: unknown, props: {
6
+ $$events?: Events;
7
+ $$slots?: Slots;
8
+ }): Exports & {
9
+ $set?: any;
10
+ $on?: any;
11
+ };
12
+ z_$$bindings?: Bindings;
13
+ }
14
+ declare const TimelineClipStory: $$__sveltets_2_IsomorphicComponent<Record<string, never>, {
15
+ [evt: string]: CustomEvent<any>;
16
+ }, {}, {}, string>;
17
+ type TimelineClipStory = InstanceType<typeof TimelineClipStory>;
18
+ export default TimelineClipStory;
@@ -0,0 +1,8 @@
1
+ import TimelineTrackStory from './TimelineTrackStory.svelte';
2
+ const meta = {
3
+ title: 'Molecules/TimelineTrack',
4
+ component: TimelineTrackStory,
5
+ tags: ['autodocs']
6
+ };
7
+ export default meta;
8
+ export const Default = {};
@@ -0,0 +1,56 @@
1
+ <script lang="ts">
2
+ import type { Snippet } from 'svelte';
3
+ import TimelineClip from '../TimelineClip/TimelineClip.svelte';
4
+ import type { MediaClip, MediaTrack } from '../../../utils/mediaTracks.js';
5
+ import { moveClip, trimClipEnd, trimClipStart } from '../../../utils/mediaTracks.js';
6
+
7
+ interface TimelineTrackProps {
8
+ track: MediaTrack;
9
+ pxPerMs?: number;
10
+ durationMs?: number;
11
+ selectedClipId?: string | null;
12
+ height?: number;
13
+ header?: Snippet;
14
+ class?: string;
15
+ onselectclip?: (clipId: string) => void;
16
+ onchangeclip?: (clip: MediaClip) => void;
17
+ }
18
+
19
+ let {
20
+ track,
21
+ pxPerMs = 0.05,
22
+ durationMs = 30_000,
23
+ selectedClipId = null,
24
+ height = 44,
25
+ header,
26
+ class: className = '',
27
+ onselectclip,
28
+ onchangeclip
29
+ }: TimelineTrackProps = $props();
30
+
31
+ const width = $derived(Math.max(1, durationMs * pxPerMs));
32
+ </script>
33
+
34
+ <div class={['flex min-w-0 border-b border-border', className]} style:height={`${height}px`}>
35
+ {#if header}
36
+ <div
37
+ class="sticky left-0 z-10 flex w-36 shrink-0 items-center gap-2 border-r border-border bg-surface-elevated px-2"
38
+ >
39
+ {@render header()}
40
+ </div>
41
+ {/if}
42
+ <div class="relative min-w-0 flex-1 overflow-hidden bg-surface/60" style:width={`${width}px`}>
43
+ {#each track.clips as clip (clip.id)}
44
+ <TimelineClip
45
+ {clip}
46
+ {pxPerMs}
47
+ selected={selectedClipId === clip.id}
48
+ locked={track.locked}
49
+ onclick={() => onselectclip?.(clip.id)}
50
+ onmove={(startMs) => onchangeclip?.(moveClip(clip, startMs))}
51
+ ontrimstart={(startMs) => onchangeclip?.(trimClipStart(clip, startMs))}
52
+ ontrimend={(endMs) => onchangeclip?.(trimClipEnd(clip, endMs))}
53
+ />
54
+ {/each}
55
+ </div>
56
+ </div>
@@ -0,0 +1,16 @@
1
+ import type { Snippet } from 'svelte';
2
+ import type { MediaClip, MediaTrack } from '../../../utils/mediaTracks.js';
3
+ interface TimelineTrackProps {
4
+ track: MediaTrack;
5
+ pxPerMs?: number;
6
+ durationMs?: number;
7
+ selectedClipId?: string | null;
8
+ height?: number;
9
+ header?: Snippet;
10
+ class?: string;
11
+ onselectclip?: (clipId: string) => void;
12
+ onchangeclip?: (clip: MediaClip) => void;
13
+ }
14
+ declare const TimelineTrack: import("svelte").Component<TimelineTrackProps, {}, "">;
15
+ type TimelineTrack = ReturnType<typeof TimelineTrack>;
16
+ export default TimelineTrack;
@@ -0,0 +1,35 @@
1
+ <script lang="ts">
2
+ import TimelineTrack from './TimelineTrack.svelte';
3
+ import { createMediaTrack, createMediaClip } from '../../../utils/mediaTracks.js';
4
+
5
+ const track = createMediaTrack({
6
+ name: 'V1',
7
+ kind: 'video',
8
+ clips: [
9
+ createMediaClip({
10
+ trackId: 't',
11
+ name: 'A',
12
+ kind: 'video',
13
+ startMs: 0,
14
+ endMs: 5000,
15
+ color: '#3b82f6'
16
+ }),
17
+ createMediaClip({
18
+ trackId: 't',
19
+ name: 'B',
20
+ kind: 'image',
21
+ startMs: 6000,
22
+ endMs: 12000,
23
+ color: '#8b5cf6'
24
+ })
25
+ ]
26
+ });
27
+ </script>
28
+
29
+ <div class="overflow-x-auto rounded-lg border border-border">
30
+ <TimelineTrack {track} durationMs={20000} pxPerMs={0.06} selectedClipId={track.clips[0]?.id}>
31
+ {#snippet header()}
32
+ <span class="truncate text-xs font-medium text-secondary">{track.name}</span>
33
+ {/snippet}
34
+ </TimelineTrack>
35
+ </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 TimelineTrackStory: $$__sveltets_2_IsomorphicComponent<Record<string, never>, {
15
+ [evt: string]: CustomEvent<any>;
16
+ }, {}, {}, string>;
17
+ type TimelineTrackStory = InstanceType<typeof TimelineTrackStory>;
18
+ export default TimelineTrackStory;
@@ -0,0 +1,8 @@
1
+ import TraceWaterfallStory from './TraceWaterfallStory.svelte';
2
+ const meta = {
3
+ title: 'Molecules/TraceWaterfall',
4
+ component: TraceWaterfallStory,
5
+ tags: ['autodocs']
6
+ };
7
+ export default meta;
8
+ export const Default = {};
@@ -0,0 +1,158 @@
1
+ <script lang="ts">
2
+ export interface TraceSpan {
3
+ id: string;
4
+ name: string;
5
+ startMs: number;
6
+ durationMs: number;
7
+ service?: string;
8
+ status?: 'ok' | 'error' | 'unset';
9
+ children?: TraceSpan[];
10
+ }
11
+
12
+ interface TraceWaterfallProps {
13
+ spans?: TraceSpan[];
14
+ selectedId?: string;
15
+ class?: string;
16
+ onselect?: (span: TraceSpan) => void;
17
+ }
18
+
19
+ let {
20
+ spans = [],
21
+ selectedId = $bindable(''),
22
+ class: className = '',
23
+ onselect
24
+ }: TraceWaterfallProps = $props();
25
+
26
+ function flatten(
27
+ list: TraceSpan[],
28
+ depth = 0
29
+ ): { span: TraceSpan; depth: number }[] {
30
+ const out: { span: TraceSpan; depth: number }[] = [];
31
+ for (const span of list) {
32
+ out.push({ span, depth });
33
+ if (span.children?.length) out.push(...flatten(span.children, depth + 1));
34
+ }
35
+ return out;
36
+ }
37
+
38
+ const flat = $derived(flatten(spans));
39
+
40
+ const totalMs = $derived.by(() => {
41
+ let max = 0;
42
+ for (const { span } of flat) {
43
+ max = Math.max(max, span.startMs + span.durationMs);
44
+ }
45
+ return Math.max(max, 1);
46
+ });
47
+
48
+ const ticks = $derived.by(() => {
49
+ const steps = 4;
50
+ return Array.from({ length: steps + 1 }, (_, i) => (totalMs * i) / steps);
51
+ });
52
+
53
+ const statusBar: Record<string, string> = {
54
+ ok: 'bg-emerald-500 dark:bg-emerald-400',
55
+ error: 'bg-red-500 dark:bg-red-400',
56
+ unset: 'bg-sky-500 dark:bg-sky-400'
57
+ };
58
+
59
+ const statusDot: Record<string, string> = {
60
+ ok: 'bg-emerald-500',
61
+ error: 'bg-red-500',
62
+ unset: 'bg-sky-500'
63
+ };
64
+
65
+ function pick(span: TraceSpan) {
66
+ selectedId = span.id;
67
+ onselect?.(span);
68
+ }
69
+
70
+ function formatMs(ms: number) {
71
+ return ms >= 100 ? `${Math.round(ms)}ms` : `${ms.toFixed(ms >= 10 ? 0 : 1)}ms`;
72
+ }
73
+ </script>
74
+
75
+ <div
76
+ class={['overflow-hidden rounded-xl border border-border bg-surface-elevated shadow-sm', className]}
77
+ data-trace-waterfall
78
+ >
79
+ <div class="flex items-center justify-between gap-3 border-b border-border px-3 py-2">
80
+ <span class="text-xs font-medium text-primary">
81
+ Trace · {formatMs(totalMs)} total · {flat.length} spans
82
+ </span>
83
+ <div class="flex items-center gap-3 text-[10px] text-muted">
84
+ <span class="inline-flex items-center gap-1"><span class="h-1.5 w-1.5 rounded-full bg-emerald-500"></span>ok</span>
85
+ <span class="inline-flex items-center gap-1"><span class="h-1.5 w-1.5 rounded-full bg-red-500"></span>error</span>
86
+ <span class="inline-flex items-center gap-1"><span class="h-1.5 w-1.5 rounded-full bg-sky-500"></span>unset</span>
87
+ </div>
88
+ </div>
89
+
90
+ <div class="sticky top-0 z-10 grid grid-cols-[minmax(140px,200px)_1fr_56px] gap-2 border-b border-border bg-surface-overlay/90 px-3 py-1.5 backdrop-blur">
91
+ <span class="text-[10px] font-semibold uppercase tracking-wide text-muted">Span</span>
92
+ <div class="relative h-4">
93
+ {#each ticks as tick, i (i)}
94
+ <span
95
+ class="absolute top-0 -translate-x-1/2 text-[10px] tabular-nums text-muted first:translate-x-0 last:-translate-x-full"
96
+ style={`left:${(tick / totalMs) * 100}%`}
97
+ >
98
+ {formatMs(tick)}
99
+ </span>
100
+ {/each}
101
+ </div>
102
+ <span class="text-right text-[10px] font-semibold uppercase tracking-wide text-muted">Dur</span>
103
+ </div>
104
+
105
+ <ul class="max-h-[420px] overflow-auto p-1.5">
106
+ {#each flat as row (row.span.id)}
107
+ <li>
108
+ <button
109
+ type="button"
110
+ class={[
111
+ 'grid w-full grid-cols-[minmax(140px,200px)_1fr_56px] items-center gap-2 rounded-lg px-1.5 py-1.5 text-left transition-colors',
112
+ 'hover:bg-surface-overlay',
113
+ selectedId === row.span.id ? 'bg-brand-50 ring-1 ring-brand-200/80 dark:bg-brand-950/30 dark:ring-brand-800/60' : ''
114
+ ]}
115
+ onclick={() => pick(row.span)}
116
+ >
117
+ <div class="flex min-w-0 items-start gap-1.5" style={`padding-left:${row.depth * 12}px`}>
118
+ <span
119
+ class={['mt-1.5 h-1.5 w-1.5 shrink-0 rounded-full', statusDot[row.span.status ?? 'unset']]}
120
+ aria-hidden="true"
121
+ ></span>
122
+ <div class="min-w-0">
123
+ <p class="truncate text-xs font-medium text-primary">{row.span.name}</p>
124
+ {#if row.span.service}
125
+ <p class="truncate text-[10px] text-muted">{row.span.service}</p>
126
+ {/if}
127
+ </div>
128
+ </div>
129
+
130
+ <div class="relative h-5 overflow-hidden rounded-md bg-surface-overlay ring-1 ring-border/60">
131
+ {#each ticks.slice(1, -1) as tick (tick)}
132
+ <span
133
+ class="absolute inset-y-0 w-px bg-border/70"
134
+ style={`left:${(tick / totalMs) * 100}%`}
135
+ aria-hidden="true"
136
+ ></span>
137
+ {/each}
138
+ <span
139
+ class={[
140
+ 'absolute top-1 h-3 rounded-[3px] shadow-sm',
141
+ statusBar[row.span.status ?? 'unset']
142
+ ]}
143
+ style={`left:${(row.span.startMs / totalMs) * 100}%;width:${Math.max((row.span.durationMs / totalMs) * 100, 0.8)}%`}
144
+ title={`${row.span.name} · ${formatMs(row.span.durationMs)}`}
145
+ ></span>
146
+ </div>
147
+
148
+ <span class="text-right font-mono text-[10px] tabular-nums text-muted">
149
+ {formatMs(row.span.durationMs)}
150
+ </span>
151
+ </button>
152
+ </li>
153
+ {/each}
154
+ {#if !flat.length}
155
+ <li class="px-3 py-8 text-center text-sm text-muted">No spans</li>
156
+ {/if}
157
+ </ul>
158
+ </div>
@@ -0,0 +1,18 @@
1
+ export interface TraceSpan {
2
+ id: string;
3
+ name: string;
4
+ startMs: number;
5
+ durationMs: number;
6
+ service?: string;
7
+ status?: 'ok' | 'error' | 'unset';
8
+ children?: TraceSpan[];
9
+ }
10
+ interface TraceWaterfallProps {
11
+ spans?: TraceSpan[];
12
+ selectedId?: string;
13
+ class?: string;
14
+ onselect?: (span: TraceSpan) => void;
15
+ }
16
+ declare const TraceWaterfall: import("svelte").Component<TraceWaterfallProps, {}, "selectedId">;
17
+ type TraceWaterfall = ReturnType<typeof TraceWaterfall>;
18
+ export default TraceWaterfall;
@@ -0,0 +1,55 @@
1
+ <script lang="ts">
2
+ import TraceWaterfall from './TraceWaterfall.svelte';
3
+ import type { TraceSpan } from './TraceWaterfall.svelte';
4
+
5
+ const spans: TraceSpan[] = [
6
+ {
7
+ id: '1',
8
+ name: 'HTTP GET /api/orders',
9
+ service: 'api-gateway',
10
+ startMs: 0,
11
+ durationMs: 240,
12
+ status: 'ok',
13
+ children: [
14
+ {
15
+ id: '2',
16
+ name: 'auth.verify',
17
+ service: 'auth',
18
+ startMs: 8,
19
+ durationMs: 32,
20
+ status: 'ok'
21
+ },
22
+ {
23
+ id: '3',
24
+ name: 'db.query orders',
25
+ service: 'postgres',
26
+ startMs: 48,
27
+ durationMs: 120,
28
+ status: 'ok',
29
+ children: [
30
+ {
31
+ id: '4',
32
+ name: 'cache.lookup',
33
+ service: 'redis',
34
+ startMs: 52,
35
+ durationMs: 12,
36
+ status: 'ok'
37
+ }
38
+ ]
39
+ },
40
+ {
41
+ id: '5',
42
+ name: 'billing.enrich',
43
+ service: 'billing',
44
+ startMs: 180,
45
+ durationMs: 45,
46
+ status: 'error'
47
+ }
48
+ ]
49
+ }
50
+ ];
51
+ </script>
52
+
53
+ <div class="p-4">
54
+ <TraceWaterfall {spans} />
55
+ </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 TraceWaterfallStory: $$__sveltets_2_IsomorphicComponent<Record<string, never>, {
15
+ [evt: string]: CustomEvent<any>;
16
+ }, {}, {}, string>;
17
+ type TraceWaterfallStory = InstanceType<typeof TraceWaterfallStory>;
18
+ export default TraceWaterfallStory;
@@ -0,0 +1,9 @@
1
+ import type { StoryObj } from '@storybook/svelte';
2
+ declare const meta: {
3
+ title: string;
4
+ component: import("svelte").Component<Record<string, never>, {}, "">;
5
+ tags: string[];
6
+ };
7
+ export default meta;
8
+ type Story = StoryObj<typeof meta>;
9
+ export declare const Default: Story;
@@ -0,0 +1,8 @@
1
+ import TrackHeaderStory from './TrackHeaderStory.svelte';
2
+ const meta = {
3
+ title: 'Molecules/TrackHeader',
4
+ component: TrackHeaderStory,
5
+ tags: ['autodocs']
6
+ };
7
+ export default meta;
8
+ export const Default = {};
@@ -0,0 +1,54 @@
1
+ <script lang="ts">
2
+ import IconButton from '../../atoms/IconButton/IconButton.svelte';
3
+ import type { MediaTrack } from '../../../utils/mediaTracks.js';
4
+ import Volume2 from '@lucide/svelte/icons/volume-2';
5
+ import VolumeX from '@lucide/svelte/icons/volume-x';
6
+ import Headphones from '@lucide/svelte/icons/headphones';
7
+ import Circle from '@lucide/svelte/icons/circle';
8
+
9
+ interface TrackHeaderProps {
10
+ track: MediaTrack;
11
+ class?: string;
12
+ onchange?: (track: MediaTrack) => void;
13
+ }
14
+
15
+ let { track, class: className = '', onchange }: TrackHeaderProps = $props();
16
+
17
+ function patch(partial: Partial<MediaTrack>) {
18
+ onchange?.({ ...track, ...partial });
19
+ }
20
+ </script>
21
+
22
+ <div class={['flex min-w-0 flex-1 items-center gap-1', className]}>
23
+ <span
24
+ class="h-2.5 w-2.5 shrink-0 rounded-full"
25
+ style:background={track.color ?? '#3b82f6'}
26
+ aria-hidden="true"
27
+ ></span>
28
+ <span class="min-w-0 flex-1 truncate text-xs font-semibold text-primary">{track.name}</span>
29
+ <IconButton
30
+ label={track.armed ? 'Disarm' : 'Arm'}
31
+ size="xs"
32
+ onclick={() => patch({ armed: !track.armed })}
33
+ >
34
+ <Circle class={['h-3 w-3', track.armed ? 'fill-red-500 text-red-500' : 'text-muted']} />
35
+ </IconButton>
36
+ <IconButton
37
+ label={track.muted ? 'Unmute' : 'Mute'}
38
+ size="xs"
39
+ onclick={() => patch({ muted: !track.muted })}
40
+ >
41
+ {#if track.muted}
42
+ <VolumeX class="h-3.5 w-3.5" />
43
+ {:else}
44
+ <Volume2 class="h-3.5 w-3.5" />
45
+ {/if}
46
+ </IconButton>
47
+ <IconButton
48
+ label={track.solo ? 'Unsolo' : 'Solo'}
49
+ size="xs"
50
+ onclick={() => patch({ solo: !track.solo })}
51
+ >
52
+ <Headphones class={['h-3.5 w-3.5', track.solo && 'text-brand-500']} />
53
+ </IconButton>
54
+ </div>
@@ -0,0 +1,9 @@
1
+ import type { MediaTrack } from '../../../utils/mediaTracks.js';
2
+ interface TrackHeaderProps {
3
+ track: MediaTrack;
4
+ class?: string;
5
+ onchange?: (track: MediaTrack) => void;
6
+ }
7
+ declare const TrackHeader: import("svelte").Component<TrackHeaderProps, {}, "">;
8
+ type TrackHeader = ReturnType<typeof TrackHeader>;
9
+ export default TrackHeader;
@@ -0,0 +1,10 @@
1
+ <script lang="ts">
2
+ import TrackHeader from './TrackHeader.svelte';
3
+ import { createMediaTrack } from '../../../utils/mediaTracks.js';
4
+
5
+ let track = $state(createMediaTrack({ name: 'Drums', kind: 'audio', color: '#3b82f6' }));
6
+ </script>
7
+
8
+ <div class="w-52 rounded-lg border border-border bg-surface-elevated p-2">
9
+ <TrackHeader {track} onchange={(t) => (track = t)} />
10
+ </div>
@@ -0,0 +1,3 @@
1
+ declare const TrackHeaderStory: import("svelte").Component<Record<string, never>, {}, "">;
2
+ type TrackHeaderStory = ReturnType<typeof TrackHeaderStory>;
3
+ export default TrackHeaderStory;
@@ -0,0 +1,9 @@
1
+ import type { StoryObj } from '@storybook/svelte';
2
+ declare const meta: {
3
+ title: string;
4
+ component: import("svelte").Component<Record<string, never>, {}, "">;
5
+ tags: string[];
6
+ };
7
+ export default meta;
8
+ type Story = StoryObj<typeof meta>;
9
+ export declare const Default: Story;
@@ -0,0 +1,8 @@
1
+ import TransportControlsStory from './TransportControlsStory.svelte';
2
+ const meta = {
3
+ title: 'Molecules/TransportControls',
4
+ component: TransportControlsStory,
5
+ tags: ['autodocs']
6
+ };
7
+ export default meta;
8
+ export const Default = {};
@@ -0,0 +1,53 @@
1
+ <script lang="ts">
2
+ import IconButton from '../../atoms/IconButton/IconButton.svelte';
3
+ import Toolbar from '../Toolbar/Toolbar.svelte';
4
+ import { formatTimecode } from '../../../utils/mediaTime.js';
5
+ import Play from '@lucide/svelte/icons/play';
6
+ import Pause from '@lucide/svelte/icons/pause';
7
+ import Square from '@lucide/svelte/icons/square';
8
+
9
+ interface TransportControlsProps {
10
+ playing?: boolean;
11
+ currentTimeMs?: number;
12
+ durationMs?: number;
13
+ class?: string;
14
+ onplay?: () => void;
15
+ onpause?: () => void;
16
+ onstop?: () => void;
17
+ }
18
+
19
+ let {
20
+ playing = false,
21
+ currentTimeMs = 0,
22
+ durationMs = 0,
23
+ class: className = '',
24
+ onplay,
25
+ onpause,
26
+ onstop
27
+ }: TransportControlsProps = $props();
28
+ </script>
29
+
30
+ <Toolbar label="Transport" dense class={className}>
31
+ {#snippet center()}
32
+ <IconButton
33
+ label={playing ? 'Pause' : 'Play'}
34
+ size="sm"
35
+ variant="secondary"
36
+ onclick={() => (playing ? onpause?.() : onplay?.())}
37
+ >
38
+ {#if playing}
39
+ <Pause class="h-4 w-4" />
40
+ {:else}
41
+ <Play class="h-4 w-4" />
42
+ {/if}
43
+ </IconButton>
44
+ <IconButton label="Stop" size="sm" variant="ghost" onclick={() => onstop?.()}>
45
+ <Square class="h-3.5 w-3.5" />
46
+ </IconButton>
47
+ <span class="ml-2 font-mono text-xs text-secondary tabular-nums">
48
+ {formatTimecode(currentTimeMs, { showMs: true })}
49
+ <span class="text-muted"> / </span>
50
+ {formatTimecode(durationMs)}
51
+ </span>
52
+ {/snippet}
53
+ </Toolbar>
@@ -0,0 +1,12 @@
1
+ interface TransportControlsProps {
2
+ playing?: boolean;
3
+ currentTimeMs?: number;
4
+ durationMs?: number;
5
+ class?: string;
6
+ onplay?: () => void;
7
+ onpause?: () => void;
8
+ onstop?: () => void;
9
+ }
10
+ declare const TransportControls: import("svelte").Component<TransportControlsProps, {}, "">;
11
+ type TransportControls = ReturnType<typeof TransportControls>;
12
+ export default TransportControls;
@@ -0,0 +1,18 @@
1
+ <script lang="ts">
2
+ import TransportControls from './TransportControls.svelte';
3
+
4
+ let playing = $state(false);
5
+ let t = $state(1250);
6
+ </script>
7
+
8
+ <TransportControls
9
+ {playing}
10
+ currentTimeMs={t}
11
+ durationMs={30000}
12
+ onplay={() => (playing = true)}
13
+ onpause={() => (playing = false)}
14
+ onstop={() => {
15
+ playing = false;
16
+ t = 0;
17
+ }}
18
+ />
@@ -0,0 +1,3 @@
1
+ declare const TransportControlsStory: import("svelte").Component<Record<string, never>, {}, "">;
2
+ type TransportControlsStory = ReturnType<typeof TransportControlsStory>;
3
+ export default TransportControlsStory;