@r2digisolutions/components 0.1.7 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (350) hide show
  1. package/dist/components/atoms/IconButton/IconButton.svelte +1 -1
  2. package/dist/components/atoms/MediaKindIcon/MediaKindIcon.stories.js +8 -0
  3. package/dist/components/atoms/MediaKindIcon/MediaKindIcon.svelte +122 -0
  4. package/dist/components/atoms/MediaKindIcon/MediaKindIcon.svelte.d.ts +11 -0
  5. package/dist/components/atoms/MediaKindIcon/MediaKindIconStory.svelte +12 -0
  6. package/dist/components/atoms/MediaKindIcon/MediaKindIconStory.svelte.d.ts +18 -0
  7. package/dist/components/atoms/PanKnob/PanKnob.stories.d.ts +9 -0
  8. package/dist/components/atoms/PanKnob/PanKnob.stories.js +8 -0
  9. package/dist/components/atoms/PanKnob/PanKnob.svelte +218 -0
  10. package/dist/components/atoms/PanKnob/PanKnob.svelte.d.ts +19 -0
  11. package/dist/components/atoms/PanKnob/PanKnobStory.svelte +15 -0
  12. package/dist/components/atoms/PanKnob/PanKnobStory.svelte.d.ts +3 -0
  13. package/dist/components/atoms/Playhead/Playhead.stories.js +8 -0
  14. package/dist/components/atoms/Playhead/Playhead.svelte +98 -0
  15. package/dist/components/atoms/Playhead/Playhead.svelte.d.ts +21 -0
  16. package/dist/components/atoms/Playhead/PlayheadStory.svelte +9 -0
  17. package/dist/components/atoms/Playhead/PlayheadStory.svelte.d.ts +18 -0
  18. package/dist/components/atoms/TimeRuler/TimeRuler.stories.js +8 -0
  19. package/dist/components/atoms/TimeRuler/TimeRuler.svelte +117 -0
  20. package/dist/components/atoms/TimeRuler/TimeRuler.svelte.d.ts +17 -0
  21. package/dist/components/atoms/TimeRuler/TimeRulerStory.svelte +7 -0
  22. package/dist/components/atoms/TimeRuler/TimeRulerStory.svelte.d.ts +18 -0
  23. package/dist/components/atoms/TimelineGrid/TimelineGrid.stories.js +8 -0
  24. package/dist/components/atoms/TimelineGrid/TimelineGrid.svelte +39 -0
  25. package/dist/components/atoms/TimelineGrid/TimelineGrid.svelte.d.ts +11 -0
  26. package/dist/components/atoms/TimelineGrid/TimelineGridStory.svelte +7 -0
  27. package/dist/components/atoms/TimelineGrid/TimelineGridStory.svelte.d.ts +18 -0
  28. package/dist/components/atoms/Tooltip/Tooltip.svelte +1 -1
  29. package/dist/components/atoms/TrimHandle/TrimHandle.stories.js +8 -0
  30. package/dist/components/atoms/TrimHandle/TrimHandle.svelte +63 -0
  31. package/dist/components/atoms/TrimHandle/TrimHandle.svelte.d.ts +12 -0
  32. package/dist/components/atoms/TrimHandle/TrimHandleStory.svelte +11 -0
  33. package/dist/components/atoms/TrimHandle/TrimHandleStory.svelte.d.ts +18 -0
  34. package/dist/components/molecules/AiAssistPanel/AiAssistPanel.stories.d.ts +9 -0
  35. package/dist/components/molecules/AiAssistPanel/AiAssistPanel.stories.js +8 -0
  36. package/dist/components/molecules/AiAssistPanel/AiAssistPanel.svelte +102 -0
  37. package/dist/components/molecules/AiAssistPanel/AiAssistPanel.svelte.d.ts +20 -0
  38. package/dist/components/molecules/AiAssistPanel/AiAssistPanelStory.svelte +34 -0
  39. package/dist/components/molecules/AiAssistPanel/AiAssistPanelStory.svelte.d.ts +3 -0
  40. package/dist/components/molecules/BulkActionBar/BulkActionBar.svelte +97 -61
  41. package/dist/components/molecules/BulkActionBar/BulkActionBar.svelte.d.ts +2 -0
  42. package/dist/components/molecules/BulkEditPanel/BulkEditPanel.stories.js +8 -0
  43. package/dist/components/molecules/BulkEditPanel/BulkEditPanel.svelte +117 -0
  44. package/dist/components/molecules/BulkEditPanel/BulkEditPanel.svelte.d.ts +23 -0
  45. package/dist/components/molecules/BulkEditPanel/BulkEditPanelStory.svelte +18 -0
  46. package/dist/components/molecules/BulkEditPanel/BulkEditPanelStory.svelte.d.ts +18 -0
  47. package/dist/components/molecules/CanvasElementsPanel/CanvasElementsPanel.stories.js +8 -0
  48. package/dist/components/molecules/CanvasElementsPanel/CanvasElementsPanel.svelte +858 -0
  49. package/dist/components/molecules/CanvasElementsPanel/CanvasElementsPanel.svelte.d.ts +43 -0
  50. package/dist/components/molecules/CanvasElementsPanel/CanvasElementsPanelStory.svelte +7 -0
  51. package/dist/components/molecules/CanvasElementsPanel/CanvasElementsPanelStory.svelte.d.ts +18 -0
  52. package/dist/components/molecules/CanvasInspector/CanvasInspector.stories.d.ts +9 -0
  53. package/dist/components/molecules/CanvasInspector/CanvasInspector.stories.js +8 -0
  54. package/dist/components/molecules/CanvasInspector/CanvasInspector.svelte +1140 -0
  55. package/dist/components/molecules/CanvasInspector/CanvasInspector.svelte.d.ts +28 -0
  56. package/dist/components/molecules/CanvasInspector/CanvasInspectorStory.svelte +20 -0
  57. package/dist/components/molecules/CanvasInspector/CanvasInspectorStory.svelte.d.ts +3 -0
  58. package/dist/components/molecules/ColorPicker/ColorPicker.svelte +46 -5
  59. package/dist/components/molecules/ColorPicker/ColorPicker.svelte.d.ts +2 -0
  60. package/dist/components/molecules/ColumnVisibilityMenu/ColumnVisibilityMenu.stories.d.ts +9 -0
  61. package/dist/components/molecules/ColumnVisibilityMenu/ColumnVisibilityMenu.stories.js +8 -0
  62. package/dist/components/molecules/ColumnVisibilityMenu/ColumnVisibilityMenu.svelte +108 -0
  63. package/dist/components/molecules/ColumnVisibilityMenu/ColumnVisibilityMenu.svelte.d.ts +18 -0
  64. package/dist/components/molecules/ColumnVisibilityMenu/ColumnVisibilityMenuStory.svelte +15 -0
  65. package/dist/components/molecules/ColumnVisibilityMenu/ColumnVisibilityMenuStory.svelte.d.ts +3 -0
  66. package/dist/components/molecules/ConflictResolver/ConflictResolver.stories.js +8 -0
  67. package/dist/components/molecules/ConflictResolver/ConflictResolver.svelte +73 -0
  68. package/dist/components/molecules/ConflictResolver/ConflictResolver.svelte.d.ts +16 -0
  69. package/dist/components/molecules/ConflictResolver/ConflictResolverStory.svelte +11 -0
  70. package/dist/components/molecules/ConflictResolver/ConflictResolverStory.svelte.d.ts +18 -0
  71. package/dist/components/molecules/ContextMenu/ContextMenu.svelte +237 -66
  72. package/dist/components/molecules/ContextMenu/ContextMenu.svelte.d.ts +9 -0
  73. package/dist/components/molecules/ExpressionEditor/ExpressionEditor.stories.d.ts +9 -0
  74. package/dist/components/molecules/ExpressionEditor/ExpressionEditor.stories.js +8 -0
  75. package/dist/components/molecules/ExpressionEditor/ExpressionEditor.svelte +56 -0
  76. package/dist/components/molecules/ExpressionEditor/ExpressionEditor.svelte.d.ts +12 -0
  77. package/dist/components/molecules/ExpressionEditor/ExpressionEditorStory.svelte +12 -0
  78. package/dist/components/molecules/ExpressionEditor/ExpressionEditorStory.svelte.d.ts +3 -0
  79. package/dist/components/molecules/FilterList/FilterList.stories.d.ts +9 -0
  80. package/dist/components/molecules/FilterList/FilterList.stories.js +8 -0
  81. package/dist/components/molecules/FilterList/FilterList.svelte +101 -0
  82. package/dist/components/molecules/FilterList/FilterList.svelte.d.ts +18 -0
  83. package/dist/components/molecules/FilterList/FilterListStory.svelte +31 -0
  84. package/dist/components/molecules/FilterList/FilterListStory.svelte.d.ts +3 -0
  85. package/dist/components/molecules/MediaAssetBrowser/MediaAssetBrowser.stories.d.ts +9 -0
  86. package/dist/components/molecules/MediaAssetBrowser/MediaAssetBrowser.stories.js +8 -0
  87. package/dist/components/molecules/MediaAssetBrowser/MediaAssetBrowser.svelte +109 -0
  88. package/dist/components/molecules/MediaAssetBrowser/MediaAssetBrowser.svelte.d.ts +20 -0
  89. package/dist/components/molecules/MediaAssetBrowser/MediaAssetBrowserStory.svelte +18 -0
  90. package/dist/components/molecules/MediaAssetBrowser/MediaAssetBrowserStory.svelte.d.ts +3 -0
  91. package/dist/components/molecules/MediaAssetCard/MediaAssetCard.stories.js +8 -0
  92. package/dist/components/molecules/MediaAssetCard/MediaAssetCard.svelte +50 -0
  93. package/dist/components/molecules/MediaAssetCard/MediaAssetCard.svelte.d.ts +11 -0
  94. package/dist/components/molecules/MediaAssetCard/MediaAssetCardStory.svelte +13 -0
  95. package/dist/components/molecules/MediaAssetCard/MediaAssetCardStory.svelte.d.ts +18 -0
  96. package/dist/components/molecules/MediaLayerItem/MediaLayerItem.stories.js +8 -0
  97. package/dist/components/molecules/MediaLayerItem/MediaLayerItem.svelte +380 -0
  98. package/dist/components/molecules/MediaLayerItem/MediaLayerItem.svelte.d.ts +33 -0
  99. package/dist/components/molecules/MediaLayerItem/MediaLayerItemStory.svelte +14 -0
  100. package/dist/components/molecules/MediaLayerItem/MediaLayerItemStory.svelte.d.ts +18 -0
  101. package/dist/components/molecules/MediaLayerList/MediaLayerList.stories.d.ts +9 -0
  102. package/dist/components/molecules/MediaLayerList/MediaLayerList.stories.js +8 -0
  103. package/dist/components/molecules/MediaLayerList/MediaLayerList.svelte +399 -0
  104. package/dist/components/molecules/MediaLayerList/MediaLayerList.svelte.d.ts +37 -0
  105. package/dist/components/molecules/MediaLayerList/MediaLayerListStory.svelte +24 -0
  106. package/dist/components/molecules/MediaLayerList/MediaLayerListStory.svelte.d.ts +3 -0
  107. package/dist/components/molecules/MediaStage/MediaStage.stories.d.ts +9 -0
  108. package/dist/components/molecules/MediaStage/MediaStage.stories.js +8 -0
  109. package/dist/components/molecules/MediaStage/MediaStage.svelte +1498 -0
  110. package/dist/components/molecules/MediaStage/MediaStage.svelte.d.ts +45 -0
  111. package/dist/components/molecules/MediaStage/MediaStageStory.svelte +35 -0
  112. package/dist/components/molecules/MediaStage/MediaStageStory.svelte.d.ts +3 -0
  113. package/dist/components/molecules/MediaTimeline/MediaTimeline.stories.d.ts +9 -0
  114. package/dist/components/molecules/MediaTimeline/MediaTimeline.stories.js +8 -0
  115. package/dist/components/molecules/MediaTimeline/MediaTimeline.svelte +441 -0
  116. package/dist/components/molecules/MediaTimeline/MediaTimeline.svelte.d.ts +39 -0
  117. package/dist/components/molecules/MediaTimeline/MediaTimelineStory.svelte +20 -0
  118. package/dist/components/molecules/MediaTimeline/MediaTimelineStory.svelte.d.ts +3 -0
  119. package/dist/components/molecules/MixerChannel/MixerChannel.stories.d.ts +9 -0
  120. package/dist/components/molecules/MixerChannel/MixerChannel.stories.js +8 -0
  121. package/dist/components/molecules/MixerChannel/MixerChannel.svelte +92 -0
  122. package/dist/components/molecules/MixerChannel/MixerChannel.svelte.d.ts +11 -0
  123. package/dist/components/molecules/MixerChannel/MixerChannelStory.svelte +13 -0
  124. package/dist/components/molecules/MixerChannel/MixerChannelStory.svelte.d.ts +3 -0
  125. package/dist/components/molecules/NodeGraph/GraphBlueprintNode.svelte +454 -0
  126. package/dist/components/molecules/NodeGraph/GraphBlueprintNode.svelte.d.ts +8 -0
  127. package/dist/components/molecules/NodeGraph/GraphFlowBridge.svelte +26 -0
  128. package/dist/components/molecules/NodeGraph/GraphFlowBridge.svelte.d.ts +22 -0
  129. package/dist/components/molecules/NodeGraph/NodeGraph.stories.d.ts +12 -0
  130. package/dist/components/molecules/NodeGraph/NodeGraph.stories.js +9 -0
  131. package/dist/components/molecules/NodeGraph/NodeGraph.svelte +1409 -0
  132. package/dist/components/molecules/NodeGraph/NodeGraph.svelte.d.ts +33 -0
  133. package/dist/components/molecules/NodeGraph/NodeGraphStory.svelte +90 -0
  134. package/dist/components/molecules/NodeGraph/NodeGraphStory.svelte.d.ts +3 -0
  135. package/dist/components/molecules/NodePalette/NodePalette.stories.js +8 -0
  136. package/dist/components/molecules/NodePalette/NodePalette.svelte +86 -0
  137. package/dist/components/molecules/NodePalette/NodePalette.svelte.d.ts +11 -0
  138. package/dist/components/molecules/NodePalette/NodePaletteStory.svelte +11 -0
  139. package/dist/components/molecules/NodePalette/NodePaletteStory.svelte.d.ts +18 -0
  140. package/dist/components/molecules/PdfViewer/PdfViewer.svelte.d.ts +1 -1
  141. package/dist/components/molecules/Poll/Poll.stories.d.ts +1 -1
  142. package/dist/components/molecules/ProgramMonitor/ProgramMonitor.stories.js +8 -0
  143. package/dist/components/molecules/ProgramMonitor/ProgramMonitor.svelte +794 -0
  144. package/dist/components/molecules/ProgramMonitor/ProgramMonitor.svelte.d.ts +25 -0
  145. package/dist/components/molecules/ProgramMonitor/ProgramMonitorStory.svelte +16 -0
  146. package/dist/components/molecules/ProgramMonitor/ProgramMonitorStory.svelte.d.ts +18 -0
  147. package/dist/components/molecules/PropertyField/PropertyField.svelte +57 -3
  148. package/dist/components/molecules/PropertyField/PropertyField.svelte.d.ts +10 -0
  149. package/dist/components/molecules/PropertyField/PropertyFieldStory.svelte +21 -0
  150. package/dist/components/molecules/PropertyGroup/PropertyGroup.svelte +1 -1
  151. package/dist/components/molecules/QueryBuilder/QueryBuilder.stories.d.ts +9 -0
  152. package/dist/components/molecules/QueryBuilder/QueryBuilder.stories.js +8 -0
  153. package/dist/components/molecules/QueryBuilder/QueryBuilder.svelte +52 -0
  154. package/dist/components/molecules/QueryBuilder/QueryBuilder.svelte.d.ts +18 -0
  155. package/dist/components/molecules/QueryBuilder/QueryBuilderStory.svelte +62 -0
  156. package/dist/components/molecules/QueryBuilder/QueryBuilderStory.svelte.d.ts +3 -0
  157. package/dist/components/molecules/RelationPicker/RelationPicker.stories.d.ts +9 -0
  158. package/dist/components/molecules/RelationPicker/RelationPicker.stories.js +8 -0
  159. package/dist/components/molecules/RelationPicker/RelationPicker.svelte +180 -0
  160. package/dist/components/molecules/RelationPicker/RelationPicker.svelte.d.ts +24 -0
  161. package/dist/components/molecules/RelationPicker/RelationPickerStory.svelte +16 -0
  162. package/dist/components/molecules/RelationPicker/RelationPickerStory.svelte.d.ts +3 -0
  163. package/dist/components/molecules/SchemaFieldBuilder/SchemaFieldBuilder.stories.d.ts +9 -0
  164. package/dist/components/molecules/SchemaFieldBuilder/SchemaFieldBuilder.stories.js +8 -0
  165. package/dist/components/molecules/SchemaFieldBuilder/SchemaFieldBuilder.svelte +154 -0
  166. package/dist/components/molecules/SchemaFieldBuilder/SchemaFieldBuilder.svelte.d.ts +12 -0
  167. package/dist/components/molecules/SchemaFieldBuilder/SchemaFieldBuilderStory.svelte +16 -0
  168. package/dist/components/molecules/SchemaFieldBuilder/SchemaFieldBuilderStory.svelte.d.ts +3 -0
  169. package/dist/components/molecules/SecretField/SecretField.stories.d.ts +9 -0
  170. package/dist/components/molecules/SecretField/SecretField.stories.js +8 -0
  171. package/dist/components/molecules/SecretField/SecretField.svelte +58 -0
  172. package/dist/components/molecules/SecretField/SecretField.svelte.d.ts +15 -0
  173. package/dist/components/molecules/SecretField/SecretFieldStory.svelte +8 -0
  174. package/dist/components/molecules/SecretField/SecretFieldStory.svelte.d.ts +3 -0
  175. package/dist/components/molecules/SplitPane/SplitPane.svelte +99 -40
  176. package/dist/components/molecules/SplitPane/SplitPane.svelte.d.ts +10 -2
  177. package/dist/components/molecules/TableToolbar/TableToolbar.svelte.d.ts +1 -1
  178. package/dist/components/molecules/Terminal/Terminal.stories.js +20 -0
  179. package/dist/components/molecules/Terminal/Terminal.svelte +238 -0
  180. package/dist/components/molecules/Terminal/Terminal.svelte.d.ts +19 -0
  181. package/dist/components/molecules/Terminal/TerminalStory.svelte +47 -0
  182. package/dist/components/molecules/Terminal/TerminalStory.svelte.d.ts +6 -0
  183. package/dist/components/molecules/TimelineClip/TimelineClip.stories.js +8 -0
  184. package/dist/components/molecules/TimelineClip/TimelineClip.svelte +193 -0
  185. package/dist/components/molecules/TimelineClip/TimelineClip.svelte.d.ts +18 -0
  186. package/dist/components/molecules/TimelineClip/TimelineClipStory.svelte +18 -0
  187. package/dist/components/molecules/TimelineClip/TimelineClipStory.svelte.d.ts +18 -0
  188. package/dist/components/molecules/TimelineTrack/TimelineTrack.stories.js +8 -0
  189. package/dist/components/molecules/TimelineTrack/TimelineTrack.svelte +126 -0
  190. package/dist/components/molecules/TimelineTrack/TimelineTrack.svelte.d.ts +27 -0
  191. package/dist/components/molecules/TimelineTrack/TimelineTrackStory.svelte +35 -0
  192. package/dist/components/molecules/TimelineTrack/TimelineTrackStory.svelte.d.ts +18 -0
  193. package/dist/components/molecules/TraceWaterfall/TraceWaterfall.stories.js +8 -0
  194. package/dist/components/molecules/TraceWaterfall/TraceWaterfall.svelte +158 -0
  195. package/dist/components/molecules/TraceWaterfall/TraceWaterfall.svelte.d.ts +18 -0
  196. package/dist/components/molecules/TraceWaterfall/TraceWaterfallStory.svelte +55 -0
  197. package/dist/components/molecules/TraceWaterfall/TraceWaterfallStory.svelte.d.ts +18 -0
  198. package/dist/components/molecules/TrackHeader/TrackHeader.stories.d.ts +9 -0
  199. package/dist/components/molecules/TrackHeader/TrackHeader.stories.js +8 -0
  200. package/dist/components/molecules/TrackHeader/TrackHeader.svelte +54 -0
  201. package/dist/components/molecules/TrackHeader/TrackHeader.svelte.d.ts +9 -0
  202. package/dist/components/molecules/TrackHeader/TrackHeaderStory.svelte +10 -0
  203. package/dist/components/molecules/TrackHeader/TrackHeaderStory.svelte.d.ts +3 -0
  204. package/dist/components/molecules/TransportControls/TransportControls.stories.d.ts +9 -0
  205. package/dist/components/molecules/TransportControls/TransportControls.stories.js +8 -0
  206. package/dist/components/molecules/TransportControls/TransportControls.svelte +135 -0
  207. package/dist/components/molecules/TransportControls/TransportControls.svelte.d.ts +24 -0
  208. package/dist/components/molecules/TransportControls/TransportControlsStory.svelte +40 -0
  209. package/dist/components/molecules/TransportControls/TransportControlsStory.svelte.d.ts +3 -0
  210. package/dist/components/molecules/VersionHistoryPanel/VersionHistoryPanel.stories.js +8 -0
  211. package/dist/components/molecules/VersionHistoryPanel/VersionHistoryPanel.svelte +117 -0
  212. package/dist/components/molecules/VersionHistoryPanel/VersionHistoryPanel.svelte.d.ts +20 -0
  213. package/dist/components/molecules/VersionHistoryPanel/VersionHistoryPanelStory.svelte +36 -0
  214. package/dist/components/molecules/VersionHistoryPanel/VersionHistoryPanelStory.svelte.d.ts +18 -0
  215. package/dist/components/molecules/VideoAnimationsPanel/VideoAnimationsPanel.stories.js +8 -0
  216. package/dist/components/molecules/VideoAnimationsPanel/VideoAnimationsPanel.svelte +213 -0
  217. package/dist/components/molecules/VideoAnimationsPanel/VideoAnimationsPanel.svelte.d.ts +22 -0
  218. package/dist/components/molecules/VideoAnimationsPanel/VideoAnimationsPanelStory.svelte +7 -0
  219. package/dist/components/molecules/VideoAnimationsPanel/VideoAnimationsPanelStory.svelte.d.ts +18 -0
  220. package/dist/components/molecules/VideoComponentsPanel/VideoComponentsPanel.stories.js +8 -0
  221. package/dist/components/molecules/VideoComponentsPanel/VideoComponentsPanel.svelte +524 -0
  222. package/dist/components/molecules/VideoComponentsPanel/VideoComponentsPanel.svelte.d.ts +32 -0
  223. package/dist/components/molecules/VideoComponentsPanel/VideoComponentsPanelStory.svelte +7 -0
  224. package/dist/components/molecules/VideoComponentsPanel/VideoComponentsPanelStory.svelte.d.ts +18 -0
  225. package/dist/components/molecules/VideoPlayer/VideoPlayer.stories.d.ts +1 -1
  226. package/dist/components/molecules/VideoTrackHeader/VideoTrackHeader.stories.d.ts +9 -0
  227. package/dist/components/molecules/VideoTrackHeader/VideoTrackHeader.stories.js +8 -0
  228. package/dist/components/molecules/VideoTrackHeader/VideoTrackHeader.svelte +112 -0
  229. package/dist/components/molecules/VideoTrackHeader/VideoTrackHeader.svelte.d.ts +15 -0
  230. package/dist/components/molecules/VideoTrackHeader/VideoTrackHeaderStory.svelte +10 -0
  231. package/dist/components/molecules/VideoTrackHeader/VideoTrackHeaderStory.svelte.d.ts +3 -0
  232. package/dist/components/molecules/VideoTransitionsPanel/VideoTransitionsPanel.stories.js +8 -0
  233. package/dist/components/molecules/VideoTransitionsPanel/VideoTransitionsPanel.svelte +113 -0
  234. package/dist/components/molecules/VideoTransitionsPanel/VideoTransitionsPanel.svelte.d.ts +18 -0
  235. package/dist/components/molecules/VideoTransitionsPanel/VideoTransitionsPanelStory.svelte +7 -0
  236. package/dist/components/molecules/VideoTransitionsPanel/VideoTransitionsPanelStory.svelte.d.ts +18 -0
  237. package/dist/components/molecules/WaveformRegion/WaveformRegion.stories.js +8 -0
  238. package/dist/components/molecules/WaveformRegion/WaveformRegion.svelte +82 -0
  239. package/dist/components/molecules/WaveformRegion/WaveformRegion.svelte.d.ts +13 -0
  240. package/dist/components/molecules/WaveformRegion/WaveformRegionStory.svelte +17 -0
  241. package/dist/components/molecules/WaveformRegion/WaveformRegionStory.svelte.d.ts +18 -0
  242. package/dist/components/molecules/WidgetCanvas/WidgetCanvas.svelte +13 -4
  243. package/dist/components/molecules/WidgetCanvas/WidgetCanvas.svelte.d.ts +3 -1
  244. package/dist/components/molecules/WidgetCanvas/widgetCanvasContext.d.ts +2 -0
  245. package/dist/components/molecules/WidgetFrame/WidgetFrame.svelte +206 -37
  246. package/dist/components/molecules/WidgetFrame/WidgetFrame.svelte.d.ts +31 -0
  247. package/dist/components/organisms/AudioEditor/AudioEditor.stories.d.ts +12 -0
  248. package/dist/components/organisms/AudioEditor/AudioEditor.stories.js +9 -0
  249. package/dist/components/organisms/AudioEditor/AudioEditor.svelte +324 -0
  250. package/dist/components/organisms/AudioEditor/AudioEditor.svelte.d.ts +13 -0
  251. package/dist/components/organisms/AudioEditor/AudioEditorStory.svelte +10 -0
  252. package/dist/components/organisms/AudioEditor/AudioEditorStory.svelte.d.ts +3 -0
  253. package/dist/components/organisms/BlogEditor/BlogEditor.stories.d.ts +12 -0
  254. package/dist/components/organisms/BlogEditor/BlogEditor.stories.js +9 -0
  255. package/dist/components/organisms/BlogEditor/BlogEditor.svelte +1208 -0
  256. package/dist/components/organisms/BlogEditor/BlogEditor.svelte.d.ts +16 -0
  257. package/dist/components/organisms/BlogEditor/BlogEditorStory.svelte +144 -0
  258. package/dist/components/organisms/BlogEditor/BlogEditorStory.svelte.d.ts +3 -0
  259. package/dist/components/organisms/BlogEditor/DemoBlogCard.svelte +28 -0
  260. package/dist/components/organisms/BlogEditor/DemoBlogCard.svelte.d.ts +10 -0
  261. package/dist/components/organisms/BlogEditor/DemoBlogStats.svelte +34 -0
  262. package/dist/components/organisms/BlogEditor/DemoBlogStats.svelte.d.ts +11 -0
  263. package/dist/components/organisms/BlogEditor/DemoBlogWidget.svelte +13 -0
  264. package/dist/components/organisms/BlogEditor/DemoBlogWidget.svelte.d.ts +8 -0
  265. package/dist/components/organisms/BlogRenderer/BlogRenderer.stories.js +8 -0
  266. package/dist/components/organisms/BlogRenderer/BlogRenderer.svelte +469 -0
  267. package/dist/components/organisms/BlogRenderer/BlogRenderer.svelte.d.ts +14 -0
  268. package/dist/components/organisms/BlogRenderer/BlogRendererStory.svelte +20 -0
  269. package/dist/components/organisms/BlogRenderer/BlogRendererStory.svelte.d.ts +18 -0
  270. package/dist/components/organisms/BlueprintEditor/BlueprintEditor.stories.d.ts +12 -0
  271. package/dist/components/organisms/BlueprintEditor/BlueprintEditor.stories.js +9 -0
  272. package/dist/components/organisms/BlueprintEditor/BlueprintEditor.svelte +1012 -0
  273. package/dist/components/organisms/BlueprintEditor/BlueprintEditor.svelte.d.ts +16 -0
  274. package/dist/components/organisms/BlueprintEditor/BlueprintEditorStory.svelte +76 -0
  275. package/dist/components/organisms/BlueprintEditor/BlueprintEditorStory.svelte.d.ts +3 -0
  276. package/dist/components/organisms/CanvasEditor/CanvasEditor.stories.d.ts +12 -0
  277. package/dist/components/organisms/CanvasEditor/CanvasEditor.stories.js +9 -0
  278. package/dist/components/organisms/CanvasEditor/CanvasEditor.svelte +1680 -0
  279. package/dist/components/organisms/CanvasEditor/CanvasEditor.svelte.d.ts +18 -0
  280. package/dist/components/organisms/CanvasEditor/CanvasEditorStory.svelte +329 -0
  281. package/dist/components/organisms/CanvasEditor/CanvasEditorStory.svelte.d.ts +3 -0
  282. package/dist/components/organisms/DashboardBuilderPage/DashboardBuilderPage.svelte.d.ts +1 -1
  283. package/dist/components/organisms/DesktopShell/DesktopShell.svelte.d.ts +1 -1
  284. package/dist/components/organisms/EditorShell/EditorShell.svelte +162 -57
  285. package/dist/components/organisms/EditorShell/EditorShell.svelte.d.ts +21 -1
  286. package/dist/components/organisms/FileUploader/FileUploader.stories.d.ts +10 -0
  287. package/dist/components/organisms/FileUploader/FileUploader.stories.js +21 -0
  288. package/dist/components/organisms/FileUploader/FileUploader.svelte +127 -25
  289. package/dist/components/organisms/FileUploader/FileUploader.svelte.d.ts +20 -0
  290. package/dist/components/organisms/FileUploader/FileUploaderStory.svelte +7 -1
  291. package/dist/components/organisms/FileUploader/FileUploaderStory.svelte.d.ts +3 -0
  292. package/dist/components/organisms/ImportWizard/ImportWizard.stories.js +8 -0
  293. package/dist/components/organisms/ImportWizard/ImportWizard.svelte +209 -0
  294. package/dist/components/organisms/ImportWizard/ImportWizard.svelte.d.ts +22 -0
  295. package/dist/components/organisms/ImportWizard/ImportWizardStory.svelte +16 -0
  296. package/dist/components/organisms/ImportWizard/ImportWizardStory.svelte.d.ts +18 -0
  297. package/dist/components/organisms/VideoEditor/VideoEditor.stories.d.ts +12 -0
  298. package/dist/components/organisms/VideoEditor/VideoEditor.stories.js +9 -0
  299. package/dist/components/organisms/VideoEditor/VideoEditor.svelte +1687 -0
  300. package/dist/components/organisms/VideoEditor/VideoEditor.svelte.d.ts +14 -0
  301. package/dist/components/organisms/VideoEditor/VideoEditorStory.svelte +11 -0
  302. package/dist/components/organisms/VideoEditor/VideoEditorStory.svelte.d.ts +3 -0
  303. package/dist/components/templates/AudioEditorTemplate/AudioEditorTemplate.stories.d.ts +12 -0
  304. package/dist/components/templates/AudioEditorTemplate/AudioEditorTemplate.stories.js +9 -0
  305. package/dist/components/templates/AudioEditorTemplate/AudioEditorTemplate.svelte +22 -0
  306. package/dist/components/templates/AudioEditorTemplate/AudioEditorTemplate.svelte.d.ts +13 -0
  307. package/dist/components/templates/AudioEditorTemplate/AudioEditorTemplateStory.svelte +8 -0
  308. package/dist/components/templates/AudioEditorTemplate/AudioEditorTemplateStory.svelte.d.ts +3 -0
  309. package/dist/components/templates/CanvasEditorTemplate/CanvasEditorTemplate.stories.d.ts +12 -0
  310. package/dist/components/templates/CanvasEditorTemplate/CanvasEditorTemplate.stories.js +9 -0
  311. package/dist/components/templates/CanvasEditorTemplate/CanvasEditorTemplate.svelte +32 -0
  312. package/dist/components/templates/CanvasEditorTemplate/CanvasEditorTemplate.svelte.d.ts +17 -0
  313. package/dist/components/templates/CanvasEditorTemplate/CanvasEditorTemplateStory.svelte +21 -0
  314. package/dist/components/templates/CanvasEditorTemplate/CanvasEditorTemplateStory.svelte.d.ts +3 -0
  315. package/dist/components/templates/VideoEditorTemplate/VideoEditorTemplate.stories.d.ts +12 -0
  316. package/dist/components/templates/VideoEditorTemplate/VideoEditorTemplate.stories.js +9 -0
  317. package/dist/components/templates/VideoEditorTemplate/VideoEditorTemplate.svelte +22 -0
  318. package/dist/components/templates/VideoEditorTemplate/VideoEditorTemplate.svelte.d.ts +13 -0
  319. package/dist/components/templates/VideoEditorTemplate/VideoEditorTemplateStory.svelte +8 -0
  320. package/dist/components/templates/VideoEditorTemplate/VideoEditorTemplateStory.svelte.d.ts +3 -0
  321. package/dist/index.d.ts +91 -1
  322. package/dist/index.js +64 -0
  323. package/dist/types/xyflow-svelte.d.ts +62 -0
  324. package/dist/utils/audioProject.d.ts +19 -0
  325. package/dist/utils/audioProject.js +70 -0
  326. package/dist/utils/blogDocument.d.ts +175 -0
  327. package/dist/utils/blogDocument.js +220 -0
  328. package/dist/utils/blueprintRuntime.d.ts +34 -0
  329. package/dist/utils/blueprintRuntime.js +289 -0
  330. package/dist/utils/canvasDocument.d.ts +239 -0
  331. package/dist/utils/canvasDocument.js +443 -0
  332. package/dist/utils/canvasExport.d.ts +10 -0
  333. package/dist/utils/canvasExport.js +469 -0
  334. package/dist/utils/canvasHierarchy.d.ts +189 -0
  335. package/dist/utils/canvasHierarchy.js +674 -0
  336. package/dist/utils/canvasHistory.d.ts +19 -0
  337. package/dist/utils/canvasHistory.js +48 -0
  338. package/dist/utils/canvasWidget.d.ts +81 -0
  339. package/dist/utils/canvasWidget.js +597 -0
  340. package/dist/utils/mediaTime.d.ts +26 -0
  341. package/dist/utils/mediaTime.js +76 -0
  342. package/dist/utils/mediaTracks.d.ts +215 -0
  343. package/dist/utils/mediaTracks.js +798 -0
  344. package/dist/utils/nodeGraph.d.ts +354 -0
  345. package/dist/utils/nodeGraph.js +1453 -0
  346. package/dist/utils/queryBridge.d.ts +18 -0
  347. package/dist/utils/queryBridge.js +118 -0
  348. package/dist/utils/videoSequence.d.ts +13 -0
  349. package/dist/utils/videoSequence.js +94 -0
  350. package/package.json +5 -2
@@ -0,0 +1,126 @@
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
+ import { snapMs } from '../../../utils/mediaTime.js';
7
+
8
+ interface TimelineTrackProps {
9
+ track: MediaTrack;
10
+ pxPerMs?: number;
11
+ durationMs?: number;
12
+ selectedClipIds?: string[];
13
+ height?: number;
14
+ snapToMs?: number;
15
+ headerWidth?: number;
16
+ header?: Snippet;
17
+ class?: string;
18
+ onselectclip?: (clipId: string, e: MouseEvent) => void;
19
+ oncontextmenuclip?: (clipId: string, e: MouseEvent) => void;
20
+ onchangeclip?: (clip: MediaClip) => void;
21
+ /** Move one or more clips by a shared delta (ms). Prefer over onchangeclip for moves. */
22
+ onmoveclips?: (clipIds: string[], deltaMs: number) => void;
23
+ ondropclip?: (clipId: string, e: DragEvent) => void;
24
+ oncontextmenutrack?: (trackId: string, e: MouseEvent) => void;
25
+ /** Empty lane click (deselect) */
26
+ onemptyclick?: (e: MouseEvent) => void;
27
+ /** Drop library item onto empty track area */
28
+ ondroptrack?: (trackId: string, e: DragEvent, timeMs: number) => void;
29
+ }
30
+
31
+ let {
32
+ track,
33
+ pxPerMs = 0.05,
34
+ durationMs = 30_000,
35
+ selectedClipIds = [],
36
+ height = 44,
37
+ snapToMs = 0,
38
+ headerWidth = 144,
39
+ header,
40
+ class: className = '',
41
+ onselectclip,
42
+ oncontextmenuclip,
43
+ onchangeclip,
44
+ onmoveclips,
45
+ ondropclip,
46
+ oncontextmenutrack,
47
+ onemptyclick,
48
+ ondroptrack
49
+ }: TimelineTrackProps = $props();
50
+
51
+ const width = $derived(Math.max(1, durationMs * pxPerMs));
52
+ const selectedSet = $derived(new Set(selectedClipIds));
53
+
54
+ function snap(ms: number) {
55
+ return snapToMs > 0 ? snapMs(ms, snapToMs) : ms;
56
+ }
57
+
58
+ function handleMove(clip: MediaClip, startMs: number) {
59
+ const nextStart = snap(startMs);
60
+ const delta = nextStart - clip.startMs;
61
+ if (delta === 0) return;
62
+ const ids =
63
+ selectedSet.has(clip.id) && selectedClipIds.length > 1 ? [...selectedClipIds] : [clip.id];
64
+ if (onmoveclips) {
65
+ onmoveclips(ids, delta);
66
+ return;
67
+ }
68
+ onchangeclip?.(moveClip(clip, nextStart));
69
+ }
70
+ </script>
71
+
72
+ <!-- svelte-ignore a11y_no_static_element_interactions -->
73
+ <div
74
+ class={['relative z-[1] flex min-w-0 border-b border-border', className]}
75
+ style:height={`${height}px`}
76
+ oncontextmenu={(e) => {
77
+ const t = e.target as HTMLElement;
78
+ if (t.closest('[aria-label]') && t.getAttribute('role') === 'button') return;
79
+ oncontextmenutrack?.(track.id, e);
80
+ }}
81
+ >
82
+ {#if header}
83
+ <div
84
+ class="sticky left-0 z-10 flex shrink-0 items-center border-r border-border bg-surface-elevated px-1"
85
+ style:width={`${headerWidth}px`}
86
+ >
87
+ {@render header()}
88
+ </div>
89
+ {/if}
90
+ <!-- svelte-ignore a11y_click_events_have_key_events -->
91
+ <div
92
+ class="relative min-w-0 flex-1 overflow-hidden bg-transparent"
93
+ style:width={`${width}px`}
94
+ role="presentation"
95
+ onclick={(e) => {
96
+ if (e.target === e.currentTarget) onemptyclick?.(e);
97
+ }}
98
+ ondragover={(e) => {
99
+ e.preventDefault();
100
+ if (e.dataTransfer) e.dataTransfer.dropEffect = 'copy';
101
+ }}
102
+ ondrop={(e) => {
103
+ if ((e.target as HTMLElement).closest('[data-marquee-id]')) return;
104
+ e.preventDefault();
105
+ const rect = (e.currentTarget as HTMLElement).getBoundingClientRect();
106
+ const x = e.clientX - rect.left;
107
+ const timeMs = snap(Math.max(0, x / pxPerMs));
108
+ ondroptrack?.(track.id, e, timeMs);
109
+ }}
110
+ >
111
+ {#each track.clips as clip (clip.id)}
112
+ <TimelineClip
113
+ {clip}
114
+ {pxPerMs}
115
+ selected={selectedSet.has(clip.id)}
116
+ locked={track.locked}
117
+ onclick={(e) => onselectclip?.(clip.id, e)}
118
+ oncontextmenu={(e) => oncontextmenuclip?.(clip.id, e)}
119
+ onmove={(startMs) => handleMove(clip, startMs)}
120
+ ontrimstart={(startMs) => onchangeclip?.(trimClipStart(clip, snap(startMs)))}
121
+ ontrimend={(endMs) => onchangeclip?.(trimClipEnd(clip, snap(endMs)))}
122
+ ondropclip={(e) => ondropclip?.(clip.id, e)}
123
+ />
124
+ {/each}
125
+ </div>
126
+ </div>
@@ -0,0 +1,27 @@
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
+ selectedClipIds?: string[];
8
+ height?: number;
9
+ snapToMs?: number;
10
+ headerWidth?: number;
11
+ header?: Snippet;
12
+ class?: string;
13
+ onselectclip?: (clipId: string, e: MouseEvent) => void;
14
+ oncontextmenuclip?: (clipId: string, e: MouseEvent) => void;
15
+ onchangeclip?: (clip: MediaClip) => void;
16
+ /** Move one or more clips by a shared delta (ms). Prefer over onchangeclip for moves. */
17
+ onmoveclips?: (clipIds: string[], deltaMs: number) => void;
18
+ ondropclip?: (clipId: string, e: DragEvent) => void;
19
+ oncontextmenutrack?: (trackId: string, e: MouseEvent) => void;
20
+ /** Empty lane click (deselect) */
21
+ onemptyclick?: (e: MouseEvent) => void;
22
+ /** Drop library item onto empty track area */
23
+ ondroptrack?: (trackId: string, e: DragEvent, timeMs: number) => void;
24
+ }
25
+ declare const TimelineTrack: import("svelte").Component<TimelineTrackProps, {}, "">;
26
+ type TimelineTrack = ReturnType<typeof TimelineTrack>;
27
+ 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 = {};