@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,399 @@
1
+ <script lang="ts">
2
+ import MediaKindIcon from '../../atoms/MediaKindIcon/MediaKindIcon.svelte';
3
+ import IconButton from '../../atoms/IconButton/IconButton.svelte';
4
+ import Tooltip from '../../atoms/Tooltip/Tooltip.svelte';
5
+ import {
6
+ CANVAS_ELEMENT_MIME,
7
+ type CanvasElementDef
8
+ } from '../CanvasElementsPanel/CanvasElementsPanel.svelte';
9
+ import type { CanvasLayerKind } from '../../../utils/canvasDocument.js';
10
+ import { isContainerKind } from '../../../utils/canvasHierarchy.js';
11
+ import Eye from '@lucide/svelte/icons/eye';
12
+ import EyeOff from '@lucide/svelte/icons/eye-off';
13
+ import Lock from '@lucide/svelte/icons/lock';
14
+ import LockOpen from '@lucide/svelte/icons/lock-open';
15
+ import GripVertical from '@lucide/svelte/icons/grip-vertical';
16
+ import ChevronRight from '@lucide/svelte/icons/chevron-right';
17
+ import Pencil from '@lucide/svelte/icons/pencil';
18
+
19
+ export interface MediaLayerListItem {
20
+ id: string;
21
+ name: string;
22
+ kind: CanvasLayerKind;
23
+ visible?: boolean;
24
+ locked?: boolean;
25
+ parentId?: string | null;
26
+ zIndex?: number;
27
+ /** Named slots available on a widget definition (for badge). */
28
+ namedSlotCount?: number;
29
+ }
30
+
31
+ interface MediaLayerListProps {
32
+ layers?: MediaLayerListItem[];
33
+ selectedIds?: string[];
34
+ /** @deprecated use selectedIds */
35
+ selectedId?: string | null;
36
+ class?: string;
37
+ onselect?: (id: string, event?: MouseEvent) => void;
38
+ ontogglevisible?: (id: string) => void;
39
+ ontogglelocked?: (id: string) => void;
40
+ /** Sibling reorder within a parent (bottom-first / document z order). */
41
+ onreorder?: (orderedIds: string[], parentId: string | null) => void;
42
+ /** Drop onto a container to reparent. */
43
+ onreparent?: (layerId: string, newParentId: string | null) => void;
44
+ /** Drop a catalog element onto a layer (nested if container). */
45
+ ondropelement?: (payload: { def: CanvasElementDef; parentId: string | null }) => void;
46
+ /** Edit a User Widget blueprint (layer id of the instance). */
47
+ oneditwidget?: (layerId: string) => void;
48
+ }
49
+
50
+ let {
51
+ layers = [],
52
+ selectedIds,
53
+ selectedId = null,
54
+ class: className = '',
55
+ onselect,
56
+ ontogglevisible,
57
+ ontogglelocked,
58
+ onreorder,
59
+ onreparent,
60
+ ondropelement,
61
+ oneditwidget
62
+ }: MediaLayerListProps = $props();
63
+
64
+ const activeIds = $derived(selectedIds ?? (selectedId ? [selectedId] : []));
65
+ const activeSet = $derived(new Set(activeIds));
66
+
67
+ let dragId = $state<string | null>(null);
68
+ let dropTargetId = $state<string | null>(null);
69
+ let dropAsChild = $state(false);
70
+ let dropElement = $state(false);
71
+ let collapsed = $state<Set<string>>(new Set());
72
+
73
+ function hasElementDrag(dt: DataTransfer | null) {
74
+ return !!dt && [...dt.types].includes(CANVAS_ELEMENT_MIME);
75
+ }
76
+
77
+ type TreeNode = MediaLayerListItem & { depth: number };
78
+
79
+ const tree = $derived.by(() => {
80
+ const byParent = new Map<string | null, MediaLayerListItem[]>();
81
+ for (const l of layers) {
82
+ const pid = l.parentId ?? null;
83
+ const list = byParent.get(pid) ?? [];
84
+ list.push(l);
85
+ byParent.set(pid, list);
86
+ }
87
+ for (const [, list] of byParent) {
88
+ list.sort((a, b) => (b.zIndex ?? 0) - (a.zIndex ?? 0));
89
+ }
90
+ const out: TreeNode[] = [];
91
+ const walk = (parentId: string | null, depth: number) => {
92
+ const kids = byParent.get(parentId) ?? [];
93
+ for (const k of kids) {
94
+ out.push({ ...k, depth });
95
+ const childCount = byParent.get(k.id)?.length ?? 0;
96
+ if (!collapsed.has(k.id) && childCount > 0) {
97
+ walk(k.id, depth + 1);
98
+ }
99
+ }
100
+ };
101
+ walk(null, 0);
102
+ return out;
103
+ });
104
+
105
+ function toggleCollapse(id: string, e: MouseEvent) {
106
+ e.stopPropagation();
107
+ const next = new Set(collapsed);
108
+ if (next.has(id)) next.delete(id);
109
+ else next.add(id);
110
+ collapsed = next;
111
+ }
112
+
113
+ /** Expand ancestors so the current selection is visible in the tree. */
114
+ $effect(() => {
115
+ const ids = activeIds;
116
+ if (!ids.length) return;
117
+ const map = new Map(layers.map((l) => [l.id, l]));
118
+ const next = new Set(collapsed);
119
+ let changed = false;
120
+ for (const id of ids) {
121
+ let cur = map.get(id);
122
+ while (cur?.parentId) {
123
+ if (next.has(cur.parentId)) {
124
+ next.delete(cur.parentId);
125
+ changed = true;
126
+ }
127
+ cur = map.get(cur.parentId);
128
+ }
129
+ }
130
+ if (changed) collapsed = next;
131
+ });
132
+
133
+ /** Scroll the primary selection into view after expand. */
134
+ $effect(() => {
135
+ const id = activeIds[0];
136
+ if (!id) return;
137
+ const frame = requestAnimationFrame(() => {
138
+ const el = document.querySelector(`[data-layer-row="${CSS.escape(id)}"]`);
139
+ el?.scrollIntoView({ block: 'nearest', behavior: 'smooth' });
140
+ });
141
+ return () => cancelAnimationFrame(frame);
142
+ });
143
+
144
+ function onDragStart(id: string, e: DragEvent) {
145
+ dragId = id;
146
+ e.dataTransfer?.setData('text/plain', id);
147
+ if (e.dataTransfer) e.dataTransfer.effectAllowed = 'move';
148
+ }
149
+
150
+ function onDragOver(targetId: string, e: DragEvent) {
151
+ const target = layers.find((l) => l.id === targetId);
152
+ if (!target) return;
153
+ if (hasElementDrag(e.dataTransfer)) {
154
+ e.preventDefault();
155
+ if (e.dataTransfer) e.dataTransfer.dropEffect = 'copy';
156
+ dropTargetId = targetId;
157
+ dropElement = true;
158
+ dropAsChild = isContainerKind(target.kind);
159
+ return;
160
+ }
161
+ e.preventDefault();
162
+ dropTargetId = targetId;
163
+ dropElement = false;
164
+ // Drop on container nests; Shift keeps sibling reorder
165
+ dropAsChild = isContainerKind(target.kind) && !e.shiftKey;
166
+ }
167
+
168
+ function onDrop(targetId: string, e: DragEvent, forceChild?: boolean) {
169
+ e.preventDefault();
170
+ e.stopPropagation();
171
+ const asChild = forceChild ?? dropAsChild;
172
+ const wasElement = dropElement;
173
+ const sourceId = dragId ?? e.dataTransfer?.getData('text/plain');
174
+ dragId = null;
175
+ dropTargetId = null;
176
+ dropAsChild = false;
177
+ dropElement = false;
178
+
179
+ if (wasElement || hasElementDrag(e.dataTransfer)) {
180
+ const raw = e.dataTransfer?.getData(CANVAS_ELEMENT_MIME);
181
+ if (!raw || !ondropelement) return;
182
+ try {
183
+ const def = JSON.parse(raw) as CanvasElementDef;
184
+ const target = layers.find((l) => l.id === targetId);
185
+ if (!target) return;
186
+ const parentId =
187
+ asChild && isContainerKind(target.kind) ? targetId : (target.parentId ?? null);
188
+ ondropelement({ def, parentId });
189
+ } catch {
190
+ /* ignore bad payload */
191
+ }
192
+ return;
193
+ }
194
+
195
+ if (!sourceId || sourceId === targetId) return;
196
+
197
+ const target = layers.find((l) => l.id === targetId);
198
+ const source = layers.find((l) => l.id === sourceId);
199
+ if (!target || !source) return;
200
+
201
+ if (asChild && isContainerKind(target.kind)) {
202
+ onreparent?.(sourceId, targetId);
203
+ return;
204
+ }
205
+
206
+ const parentId = target.parentId ?? null;
207
+ const siblings = layers
208
+ .filter((l) => (l.parentId ?? null) === parentId)
209
+ .sort((a, b) => (b.zIndex ?? 0) - (a.zIndex ?? 0));
210
+ const idsTopFirst = siblings.map((l) => l.id);
211
+ const from = idsTopFirst.indexOf(sourceId);
212
+ const to = idsTopFirst.indexOf(targetId);
213
+ if (from >= 0 && to >= 0 && (source.parentId ?? null) === parentId) {
214
+ const next = [...idsTopFirst];
215
+ next.splice(from, 1);
216
+ next.splice(to, 0, sourceId);
217
+ onreorder?.([...next].reverse(), parentId);
218
+ return;
219
+ }
220
+
221
+ // Drop beside → same parent as target
222
+ onreparent?.(sourceId, parentId);
223
+ }
224
+ </script>
225
+
226
+ <ul
227
+ class={['flex flex-col gap-0.5 p-1', className]}
228
+ role="listbox"
229
+ aria-label="Layers"
230
+ aria-multiselectable="true"
231
+ >
232
+ {#each tree as layer (layer.id)}
233
+ {@const hasKids = layers.some((l) => (l.parentId ?? null) === layer.id)}
234
+ {@const nesting = dropTargetId === layer.id && dropAsChild}
235
+ <li
236
+ ondragover={(e) => onDragOver(layer.id, e)}
237
+ ondragleave={() => {
238
+ if (dropTargetId === layer.id) {
239
+ dropTargetId = null;
240
+ dropAsChild = false;
241
+ dropElement = false;
242
+ }
243
+ }}
244
+ ondrop={(e) => onDrop(layer.id, e)}
245
+ >
246
+ <div
247
+ role="option"
248
+ aria-selected={activeSet.has(layer.id)}
249
+ tabindex="0"
250
+ data-layer-row={layer.id}
251
+ draggable="true"
252
+ ondragstart={(e) => onDragStart(layer.id, e)}
253
+ ondragend={() => {
254
+ dragId = null;
255
+ dropTargetId = null;
256
+ dropAsChild = false;
257
+ dropElement = false;
258
+ }}
259
+ class={[
260
+ 'flex w-full items-center gap-0.5 rounded-md px-1 py-1 text-left text-xs transition-colors',
261
+ activeSet.has(layer.id)
262
+ ? 'bg-brand-500/15 text-primary'
263
+ : 'text-secondary hover:bg-surface-overlay hover:text-primary',
264
+ dragId === layer.id && 'opacity-50',
265
+ nesting && 'ring-1 ring-brand-500 bg-brand-500/10'
266
+ ]}
267
+ style:padding-left={`${4 + layer.depth * 12}px`}
268
+ title={isContainerKind(layer.kind)
269
+ ? 'Drop to nest inside · Shift+drop to reorder'
270
+ : undefined}
271
+ onclick={(e) => onselect?.(layer.id, e)}
272
+ onkeydown={(e) => {
273
+ if (e.key === 'Enter' || e.key === ' ') {
274
+ e.preventDefault();
275
+ onselect?.(layer.id);
276
+ }
277
+ }}
278
+ >
279
+ {#if hasKids}
280
+ <button
281
+ type="button"
282
+ class="shrink-0 rounded p-0.5 text-muted hover:bg-surface-overlay hover:text-primary"
283
+ aria-label={collapsed.has(layer.id) ? 'Expand' : 'Collapse'}
284
+ onclick={(e) => toggleCollapse(layer.id, e)}
285
+ >
286
+ <ChevronRight
287
+ class={['h-3 w-3 transition-transform', !collapsed.has(layer.id) && 'rotate-90']}
288
+ />
289
+ </button>
290
+ {:else}
291
+ <span class="inline-block w-4 shrink-0"></span>
292
+ {/if}
293
+ <span class="shrink-0 cursor-grab text-muted active:cursor-grabbing" aria-hidden="true">
294
+ <GripVertical class="h-3.5 w-3.5" />
295
+ </span>
296
+ <MediaKindIcon kind={layer.kind} size="sm" class="shrink-0 opacity-80" />
297
+ <span class="min-w-0 flex-1 truncate font-medium">{layer.name}</span>
298
+ {#if layer.kind === 'widget'}
299
+ <span
300
+ class="shrink-0 rounded bg-brand-500/20 px-1 text-[9px] font-bold uppercase text-brand-600"
301
+ title="User Widget"
302
+ >W</span>
303
+ {#if (layer.namedSlotCount ?? 0) > 0}
304
+ <span
305
+ class="shrink-0 rounded bg-sky-500/15 px-1 text-[9px] font-bold uppercase text-sky-600"
306
+ title="{layer.namedSlotCount} named slot(s) — nest a child and set Fill slot"
307
+ >
308
+ S{layer.namedSlotCount}
309
+ </span>
310
+ {/if}
311
+ {#if oneditwidget}
312
+ <IconButton
313
+ label="Edit widget"
314
+ size="xs"
315
+ onclick={(e) => {
316
+ e.stopPropagation();
317
+ oneditwidget(layer.id);
318
+ }}
319
+ >
320
+ <Pencil class="h-3.5 w-3.5" />
321
+ </IconButton>
322
+ {/if}
323
+ {/if}
324
+ {#if layer.parentId}
325
+ <Tooltip
326
+ content="Remove from parent — move this layer out of its group / wrapper"
327
+ side="top"
328
+ >
329
+ <button
330
+ type="button"
331
+ class="shrink-0 rounded px-1 text-[9px] font-semibold uppercase tracking-wide text-muted hover:bg-surface-overlay hover:text-primary"
332
+ aria-label="Remove from parent group"
333
+ onclick={(e) => {
334
+ e.stopPropagation();
335
+ onreparent?.(layer.id, (() => {
336
+ const parent = layers.find((l) => l.id === layer.parentId);
337
+ return parent?.parentId ?? null;
338
+ })());
339
+ }}
340
+ >
341
+ Out
342
+ </button>
343
+ </Tooltip>
344
+ {/if}
345
+ {#if isContainerKind(layer.kind)}
346
+ <Tooltip
347
+ content="Nest inside — drop a layer or element here to make it a child of this container"
348
+ side="top"
349
+ >
350
+ <button
351
+ type="button"
352
+ class="shrink-0 rounded px-1 text-[9px] font-semibold uppercase tracking-wide text-muted hover:bg-surface-overlay hover:text-primary"
353
+ aria-label="Drop target: nest inside this container"
354
+ ondragover={(e) => {
355
+ e.preventDefault();
356
+ e.stopPropagation();
357
+ dropTargetId = layer.id;
358
+ dropAsChild = true;
359
+ }}
360
+ ondrop={(e) => onDrop(layer.id, e, true)}
361
+ >
362
+ In
363
+ </button>
364
+ </Tooltip>
365
+ {/if}
366
+ <IconButton
367
+ label={layer.visible === false ? 'Show' : 'Hide'}
368
+ size="xs"
369
+ onclick={(e) => {
370
+ e.stopPropagation();
371
+ ontogglevisible?.(layer.id);
372
+ }}
373
+ >
374
+ {#if layer.visible === false}
375
+ <EyeOff class="h-3.5 w-3.5" />
376
+ {:else}
377
+ <Eye class="h-3.5 w-3.5" />
378
+ {/if}
379
+ </IconButton>
380
+ <IconButton
381
+ label={layer.locked ? 'Unlock' : 'Lock'}
382
+ size="xs"
383
+ onclick={(e) => {
384
+ e.stopPropagation();
385
+ ontogglelocked?.(layer.id);
386
+ }}
387
+ >
388
+ {#if layer.locked}
389
+ <Lock class="h-3.5 w-3.5" />
390
+ {:else}
391
+ <LockOpen class="h-3.5 w-3.5" />
392
+ {/if}
393
+ </IconButton>
394
+ </div>
395
+ </li>
396
+ {:else}
397
+ <li class="px-2 py-4 text-center text-xs text-muted">No layers</li>
398
+ {/each}
399
+ </ul>
@@ -0,0 +1,37 @@
1
+ import { type CanvasElementDef } from '../CanvasElementsPanel/CanvasElementsPanel.svelte';
2
+ import type { CanvasLayerKind } from '../../../utils/canvasDocument.js';
3
+ export interface MediaLayerListItem {
4
+ id: string;
5
+ name: string;
6
+ kind: CanvasLayerKind;
7
+ visible?: boolean;
8
+ locked?: boolean;
9
+ parentId?: string | null;
10
+ zIndex?: number;
11
+ /** Named slots available on a widget definition (for badge). */
12
+ namedSlotCount?: number;
13
+ }
14
+ interface MediaLayerListProps {
15
+ layers?: MediaLayerListItem[];
16
+ selectedIds?: string[];
17
+ /** @deprecated use selectedIds */
18
+ selectedId?: string | null;
19
+ class?: string;
20
+ onselect?: (id: string, event?: MouseEvent) => void;
21
+ ontogglevisible?: (id: string) => void;
22
+ ontogglelocked?: (id: string) => void;
23
+ /** Sibling reorder within a parent (bottom-first / document z order). */
24
+ onreorder?: (orderedIds: string[], parentId: string | null) => void;
25
+ /** Drop onto a container to reparent. */
26
+ onreparent?: (layerId: string, newParentId: string | null) => void;
27
+ /** Drop a catalog element onto a layer (nested if container). */
28
+ ondropelement?: (payload: {
29
+ def: CanvasElementDef;
30
+ parentId: string | null;
31
+ }) => void;
32
+ /** Edit a User Widget blueprint (layer id of the instance). */
33
+ oneditwidget?: (layerId: string) => void;
34
+ }
35
+ declare const MediaLayerList: import("svelte").Component<MediaLayerListProps, {}, "">;
36
+ type MediaLayerList = ReturnType<typeof MediaLayerList>;
37
+ export default MediaLayerList;
@@ -0,0 +1,24 @@
1
+ <script lang="ts">
2
+ import MediaLayerList from './MediaLayerList.svelte';
3
+
4
+ let selectedId = $state('2');
5
+ let layers = $state([
6
+ { id: '1', name: 'Background', kind: 'image' as const, visible: true, locked: true },
7
+ { id: '2', name: 'Hero video', kind: 'video' as const, visible: true, locked: false },
8
+ { id: '3', name: 'Caption', kind: 'text' as const, visible: false, locked: false }
9
+ ]);
10
+ </script>
11
+
12
+ <div class="w-64 rounded-lg border border-border bg-surface-elevated">
13
+ <MediaLayerList
14
+ {layers}
15
+ {selectedId}
16
+ onselect={(id) => (selectedId = id)}
17
+ ontogglevisible={(id) => {
18
+ layers = layers.map((l) => (l.id === id ? { ...l, visible: !l.visible } : l));
19
+ }}
20
+ ontogglelocked={(id) => {
21
+ layers = layers.map((l) => (l.id === id ? { ...l, locked: !l.locked } : l));
22
+ }}
23
+ />
24
+ </div>
@@ -0,0 +1,3 @@
1
+ declare const MediaLayerListStory: import("svelte").Component<Record<string, never>, {}, "">;
2
+ type MediaLayerListStory = ReturnType<typeof MediaLayerListStory>;
3
+ export default MediaLayerListStory;
@@ -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 MediaStageStory from './MediaStageStory.svelte';
2
+ const meta = {
3
+ title: 'Molecules/MediaStage',
4
+ component: MediaStageStory,
5
+ tags: ['autodocs']
6
+ };
7
+ export default meta;
8
+ export const Default = {};