@r2digisolutions/components 0.1.6 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (389) hide show
  1. package/README.md +1 -1
  2. package/dist/components/atoms/Checkbox/Checkbox.svelte +10 -3
  3. package/dist/components/atoms/Checkbox/Checkbox.svelte.d.ts +3 -0
  4. package/dist/components/atoms/IconButton/IconButton.svelte +1 -1
  5. package/dist/components/atoms/Input/Input.svelte +17 -2
  6. package/dist/components/atoms/Input/Input.svelte.d.ts +6 -1
  7. package/dist/components/atoms/MarqueeRect/MarqueeRect.svelte +21 -0
  8. package/dist/components/atoms/MarqueeRect/MarqueeRect.svelte.d.ts +8 -0
  9. package/dist/components/atoms/MediaKindIcon/MediaKindIcon.stories.js +8 -0
  10. package/dist/components/atoms/MediaKindIcon/MediaKindIcon.svelte +122 -0
  11. package/dist/components/atoms/MediaKindIcon/MediaKindIcon.svelte.d.ts +11 -0
  12. package/dist/components/atoms/MediaKindIcon/MediaKindIconStory.svelte +12 -0
  13. package/dist/components/atoms/MediaKindIcon/MediaKindIconStory.svelte.d.ts +18 -0
  14. package/dist/components/atoms/PanKnob/PanKnob.stories.d.ts +9 -0
  15. package/dist/components/atoms/PanKnob/PanKnob.stories.js +8 -0
  16. package/dist/components/atoms/PanKnob/PanKnob.svelte +218 -0
  17. package/dist/components/atoms/PanKnob/PanKnob.svelte.d.ts +19 -0
  18. package/dist/components/atoms/PanKnob/PanKnobStory.svelte +15 -0
  19. package/dist/components/atoms/PanKnob/PanKnobStory.svelte.d.ts +3 -0
  20. package/dist/components/atoms/Playhead/Playhead.stories.js +8 -0
  21. package/dist/components/atoms/Playhead/Playhead.svelte +59 -0
  22. package/dist/components/atoms/Playhead/Playhead.svelte.d.ts +13 -0
  23. package/dist/components/atoms/Playhead/PlayheadStory.svelte +9 -0
  24. package/dist/components/atoms/Playhead/PlayheadStory.svelte.d.ts +18 -0
  25. package/dist/components/atoms/Textarea/Textarea.svelte +4 -1
  26. package/dist/components/atoms/Textarea/Textarea.svelte.d.ts +1 -0
  27. package/dist/components/atoms/TimeRuler/TimeRuler.stories.js +8 -0
  28. package/dist/components/atoms/TimeRuler/TimeRuler.svelte +58 -0
  29. package/dist/components/atoms/TimeRuler/TimeRuler.svelte.d.ts +10 -0
  30. package/dist/components/atoms/TimeRuler/TimeRulerStory.svelte +7 -0
  31. package/dist/components/atoms/TimeRuler/TimeRulerStory.svelte.d.ts +18 -0
  32. package/dist/components/atoms/Toggle/Toggle.svelte +1 -1
  33. package/dist/components/atoms/Tooltip/Tooltip.svelte +1 -1
  34. package/dist/components/atoms/TrimHandle/TrimHandle.stories.js +8 -0
  35. package/dist/components/atoms/TrimHandle/TrimHandle.svelte +63 -0
  36. package/dist/components/atoms/TrimHandle/TrimHandle.svelte.d.ts +12 -0
  37. package/dist/components/atoms/TrimHandle/TrimHandleStory.svelte +11 -0
  38. package/dist/components/atoms/TrimHandle/TrimHandleStory.svelte.d.ts +18 -0
  39. package/dist/components/molecules/AiAssistPanel/AiAssistPanel.stories.d.ts +9 -0
  40. package/dist/components/molecules/AiAssistPanel/AiAssistPanel.stories.js +8 -0
  41. package/dist/components/molecules/AiAssistPanel/AiAssistPanel.svelte +102 -0
  42. package/dist/components/molecules/AiAssistPanel/AiAssistPanel.svelte.d.ts +20 -0
  43. package/dist/components/molecules/AiAssistPanel/AiAssistPanelStory.svelte +34 -0
  44. package/dist/components/molecules/AiAssistPanel/AiAssistPanelStory.svelte.d.ts +3 -0
  45. package/dist/components/molecules/BulkActionBar/BulkActionBar.svelte +112 -62
  46. package/dist/components/molecules/BulkActionBar/BulkActionBar.svelte.d.ts +2 -0
  47. package/dist/components/molecules/BulkEditPanel/BulkEditPanel.stories.js +8 -0
  48. package/dist/components/molecules/BulkEditPanel/BulkEditPanel.svelte +117 -0
  49. package/dist/components/molecules/BulkEditPanel/BulkEditPanel.svelte.d.ts +23 -0
  50. package/dist/components/molecules/BulkEditPanel/BulkEditPanelStory.svelte +18 -0
  51. package/dist/components/molecules/BulkEditPanel/BulkEditPanelStory.svelte.d.ts +18 -0
  52. package/dist/components/molecules/CanvasElementsPanel/CanvasElementsPanel.stories.js +8 -0
  53. package/dist/components/molecules/CanvasElementsPanel/CanvasElementsPanel.svelte +858 -0
  54. package/dist/components/molecules/CanvasElementsPanel/CanvasElementsPanel.svelte.d.ts +43 -0
  55. package/dist/components/molecules/CanvasElementsPanel/CanvasElementsPanelStory.svelte +7 -0
  56. package/dist/components/molecules/CanvasElementsPanel/CanvasElementsPanelStory.svelte.d.ts +18 -0
  57. package/dist/components/molecules/CanvasInspector/CanvasInspector.stories.d.ts +9 -0
  58. package/dist/components/molecules/CanvasInspector/CanvasInspector.stories.js +8 -0
  59. package/dist/components/molecules/CanvasInspector/CanvasInspector.svelte +1140 -0
  60. package/dist/components/molecules/CanvasInspector/CanvasInspector.svelte.d.ts +28 -0
  61. package/dist/components/molecules/CanvasInspector/CanvasInspectorStory.svelte +20 -0
  62. package/dist/components/molecules/CanvasInspector/CanvasInspectorStory.svelte.d.ts +3 -0
  63. package/dist/components/molecules/CodeEditor/CodeEditor.svelte +13 -10
  64. package/dist/components/molecules/ColorPicker/ColorPicker.svelte +167 -97
  65. package/dist/components/molecules/ColumnVisibilityMenu/ColumnVisibilityMenu.stories.d.ts +9 -0
  66. package/dist/components/molecules/ColumnVisibilityMenu/ColumnVisibilityMenu.stories.js +8 -0
  67. package/dist/components/molecules/ColumnVisibilityMenu/ColumnVisibilityMenu.svelte +108 -0
  68. package/dist/components/molecules/ColumnVisibilityMenu/ColumnVisibilityMenu.svelte.d.ts +18 -0
  69. package/dist/components/molecules/ColumnVisibilityMenu/ColumnVisibilityMenuStory.svelte +15 -0
  70. package/dist/components/molecules/ColumnVisibilityMenu/ColumnVisibilityMenuStory.svelte.d.ts +3 -0
  71. package/dist/components/molecules/ConditionalFormatPanel/ConditionalFormatPanel.stories.d.ts +9 -0
  72. package/dist/components/molecules/ConditionalFormatPanel/ConditionalFormatPanel.stories.js +8 -0
  73. package/dist/components/molecules/ConditionalFormatPanel/ConditionalFormatPanel.svelte +412 -0
  74. package/dist/components/molecules/ConditionalFormatPanel/ConditionalFormatPanel.svelte.d.ts +14 -0
  75. package/dist/components/molecules/ConditionalFormatPanel/ConditionalFormatPanelStory.svelte +27 -0
  76. package/dist/components/molecules/ConditionalFormatPanel/ConditionalFormatPanelStory.svelte.d.ts +3 -0
  77. package/dist/components/molecules/ConflictResolver/ConflictResolver.stories.js +8 -0
  78. package/dist/components/molecules/ConflictResolver/ConflictResolver.svelte +73 -0
  79. package/dist/components/molecules/ConflictResolver/ConflictResolver.svelte.d.ts +16 -0
  80. package/dist/components/molecules/ConflictResolver/ConflictResolverStory.svelte +11 -0
  81. package/dist/components/molecules/ConflictResolver/ConflictResolverStory.svelte.d.ts +18 -0
  82. package/dist/components/molecules/ContextMenu/ContextMenu.svelte +237 -41
  83. package/dist/components/molecules/ContextMenu/ContextMenu.svelte.d.ts +17 -1
  84. package/dist/components/molecules/DateTimePicker/DateTimePicker.svelte.d.ts +1 -1
  85. package/dist/components/molecules/ExpressionEditor/ExpressionEditor.stories.d.ts +9 -0
  86. package/dist/components/molecules/ExpressionEditor/ExpressionEditor.stories.js +8 -0
  87. package/dist/components/molecules/ExpressionEditor/ExpressionEditor.svelte +56 -0
  88. package/dist/components/molecules/ExpressionEditor/ExpressionEditor.svelte.d.ts +12 -0
  89. package/dist/components/molecules/ExpressionEditor/ExpressionEditorStory.svelte +12 -0
  90. package/dist/components/molecules/ExpressionEditor/ExpressionEditorStory.svelte.d.ts +3 -0
  91. package/dist/components/molecules/FilterList/FilterList.stories.d.ts +9 -0
  92. package/dist/components/molecules/FilterList/FilterList.stories.js +8 -0
  93. package/dist/components/molecules/FilterList/FilterList.svelte +101 -0
  94. package/dist/components/molecules/FilterList/FilterList.svelte.d.ts +18 -0
  95. package/dist/components/molecules/FilterList/FilterListStory.svelte +31 -0
  96. package/dist/components/molecules/FilterList/FilterListStory.svelte.d.ts +3 -0
  97. package/dist/components/molecules/FormDateTimePicker/FormDateTimePicker.svelte.d.ts +1 -1
  98. package/dist/components/molecules/Gauge/Gauge.stories.d.ts +1 -1
  99. package/dist/components/molecules/InfiniteScroll/InfiniteScroll.stories.d.ts +1 -1
  100. package/dist/components/molecules/MediaAssetBrowser/MediaAssetBrowser.stories.d.ts +9 -0
  101. package/dist/components/molecules/MediaAssetBrowser/MediaAssetBrowser.stories.js +8 -0
  102. package/dist/components/molecules/MediaAssetBrowser/MediaAssetBrowser.svelte +94 -0
  103. package/dist/components/molecules/MediaAssetBrowser/MediaAssetBrowser.svelte.d.ts +15 -0
  104. package/dist/components/molecules/MediaAssetBrowser/MediaAssetBrowserStory.svelte +18 -0
  105. package/dist/components/molecules/MediaAssetBrowser/MediaAssetBrowserStory.svelte.d.ts +3 -0
  106. package/dist/components/molecules/MediaAssetCard/MediaAssetCard.stories.js +8 -0
  107. package/dist/components/molecules/MediaAssetCard/MediaAssetCard.svelte +50 -0
  108. package/dist/components/molecules/MediaAssetCard/MediaAssetCard.svelte.d.ts +11 -0
  109. package/dist/components/molecules/MediaAssetCard/MediaAssetCardStory.svelte +13 -0
  110. package/dist/components/molecules/MediaAssetCard/MediaAssetCardStory.svelte.d.ts +18 -0
  111. package/dist/components/molecules/MediaLayerItem/MediaLayerItem.stories.js +8 -0
  112. package/dist/components/molecules/MediaLayerItem/MediaLayerItem.svelte +380 -0
  113. package/dist/components/molecules/MediaLayerItem/MediaLayerItem.svelte.d.ts +33 -0
  114. package/dist/components/molecules/MediaLayerItem/MediaLayerItemStory.svelte +14 -0
  115. package/dist/components/molecules/MediaLayerItem/MediaLayerItemStory.svelte.d.ts +18 -0
  116. package/dist/components/molecules/MediaLayerList/MediaLayerList.stories.d.ts +9 -0
  117. package/dist/components/molecules/MediaLayerList/MediaLayerList.stories.js +8 -0
  118. package/dist/components/molecules/MediaLayerList/MediaLayerList.svelte +399 -0
  119. package/dist/components/molecules/MediaLayerList/MediaLayerList.svelte.d.ts +37 -0
  120. package/dist/components/molecules/MediaLayerList/MediaLayerListStory.svelte +24 -0
  121. package/dist/components/molecules/MediaLayerList/MediaLayerListStory.svelte.d.ts +3 -0
  122. package/dist/components/molecules/MediaStage/MediaStage.stories.d.ts +9 -0
  123. package/dist/components/molecules/MediaStage/MediaStage.stories.js +8 -0
  124. package/dist/components/molecules/MediaStage/MediaStage.svelte +1498 -0
  125. package/dist/components/molecules/MediaStage/MediaStage.svelte.d.ts +45 -0
  126. package/dist/components/molecules/MediaStage/MediaStageStory.svelte +35 -0
  127. package/dist/components/molecules/MediaStage/MediaStageStory.svelte.d.ts +3 -0
  128. package/dist/components/molecules/MediaTimeline/MediaTimeline.stories.d.ts +9 -0
  129. package/dist/components/molecules/MediaTimeline/MediaTimeline.stories.js +8 -0
  130. package/dist/components/molecules/MediaTimeline/MediaTimeline.svelte +131 -0
  131. package/dist/components/molecules/MediaTimeline/MediaTimeline.svelte.d.ts +19 -0
  132. package/dist/components/molecules/MediaTimeline/MediaTimelineStory.svelte +20 -0
  133. package/dist/components/molecules/MediaTimeline/MediaTimelineStory.svelte.d.ts +3 -0
  134. package/dist/components/molecules/MixerChannel/MixerChannel.stories.d.ts +9 -0
  135. package/dist/components/molecules/MixerChannel/MixerChannel.stories.js +8 -0
  136. package/dist/components/molecules/MixerChannel/MixerChannel.svelte +92 -0
  137. package/dist/components/molecules/MixerChannel/MixerChannel.svelte.d.ts +11 -0
  138. package/dist/components/molecules/MixerChannel/MixerChannelStory.svelte +13 -0
  139. package/dist/components/molecules/MixerChannel/MixerChannelStory.svelte.d.ts +3 -0
  140. package/dist/components/molecules/NodeGraph/GraphBlueprintNode.svelte +454 -0
  141. package/dist/components/molecules/NodeGraph/GraphBlueprintNode.svelte.d.ts +8 -0
  142. package/dist/components/molecules/NodeGraph/GraphFlowBridge.svelte +26 -0
  143. package/dist/components/molecules/NodeGraph/GraphFlowBridge.svelte.d.ts +22 -0
  144. package/dist/components/molecules/NodeGraph/NodeGraph.stories.d.ts +12 -0
  145. package/dist/components/molecules/NodeGraph/NodeGraph.stories.js +9 -0
  146. package/dist/components/molecules/NodeGraph/NodeGraph.svelte +1409 -0
  147. package/dist/components/molecules/NodeGraph/NodeGraph.svelte.d.ts +33 -0
  148. package/dist/components/molecules/NodeGraph/NodeGraphStory.svelte +90 -0
  149. package/dist/components/molecules/NodeGraph/NodeGraphStory.svelte.d.ts +3 -0
  150. package/dist/components/molecules/NodePalette/NodePalette.stories.js +8 -0
  151. package/dist/components/molecules/NodePalette/NodePalette.svelte +86 -0
  152. package/dist/components/molecules/NodePalette/NodePalette.svelte.d.ts +11 -0
  153. package/dist/components/molecules/NodePalette/NodePaletteStory.svelte +11 -0
  154. package/dist/components/molecules/NodePalette/NodePaletteStory.svelte.d.ts +18 -0
  155. package/dist/components/molecules/Poll/Poll.stories.d.ts +1 -1
  156. package/dist/components/molecules/ProgramMonitor/ProgramMonitor.stories.js +8 -0
  157. package/dist/components/molecules/ProgramMonitor/ProgramMonitor.svelte +72 -0
  158. package/dist/components/molecules/ProgramMonitor/ProgramMonitor.svelte.d.ts +12 -0
  159. package/dist/components/molecules/ProgramMonitor/ProgramMonitorStory.svelte +16 -0
  160. package/dist/components/molecules/ProgramMonitor/ProgramMonitorStory.svelte.d.ts +18 -0
  161. package/dist/components/molecules/PropertyField/PropertyField.svelte +57 -3
  162. package/dist/components/molecules/PropertyField/PropertyField.svelte.d.ts +10 -0
  163. package/dist/components/molecules/PropertyField/PropertyFieldStory.svelte +21 -0
  164. package/dist/components/molecules/PropertyGroup/PropertyGroup.svelte +1 -1
  165. package/dist/components/molecules/QueryBuilder/QueryBuilder.stories.d.ts +9 -0
  166. package/dist/components/molecules/QueryBuilder/QueryBuilder.stories.js +8 -0
  167. package/dist/components/molecules/QueryBuilder/QueryBuilder.svelte +52 -0
  168. package/dist/components/molecules/QueryBuilder/QueryBuilder.svelte.d.ts +18 -0
  169. package/dist/components/molecules/QueryBuilder/QueryBuilderStory.svelte +62 -0
  170. package/dist/components/molecules/QueryBuilder/QueryBuilderStory.svelte.d.ts +3 -0
  171. package/dist/components/molecules/RelationPicker/RelationPicker.stories.d.ts +9 -0
  172. package/dist/components/molecules/RelationPicker/RelationPicker.stories.js +8 -0
  173. package/dist/components/molecules/RelationPicker/RelationPicker.svelte +180 -0
  174. package/dist/components/molecules/RelationPicker/RelationPicker.svelte.d.ts +24 -0
  175. package/dist/components/molecules/RelationPicker/RelationPickerStory.svelte +16 -0
  176. package/dist/components/molecules/RelationPicker/RelationPickerStory.svelte.d.ts +3 -0
  177. package/dist/components/molecules/SchemaFieldBuilder/SchemaFieldBuilder.stories.d.ts +9 -0
  178. package/dist/components/molecules/SchemaFieldBuilder/SchemaFieldBuilder.stories.js +8 -0
  179. package/dist/components/molecules/SchemaFieldBuilder/SchemaFieldBuilder.svelte +154 -0
  180. package/dist/components/molecules/SchemaFieldBuilder/SchemaFieldBuilder.svelte.d.ts +12 -0
  181. package/dist/components/molecules/SchemaFieldBuilder/SchemaFieldBuilderStory.svelte +16 -0
  182. package/dist/components/molecules/SchemaFieldBuilder/SchemaFieldBuilderStory.svelte.d.ts +3 -0
  183. package/dist/components/molecules/SecretField/SecretField.stories.d.ts +9 -0
  184. package/dist/components/molecules/SecretField/SecretField.stories.js +8 -0
  185. package/dist/components/molecules/SecretField/SecretField.svelte +58 -0
  186. package/dist/components/molecules/SecretField/SecretField.svelte.d.ts +15 -0
  187. package/dist/components/molecules/SecretField/SecretFieldStory.svelte +8 -0
  188. package/dist/components/molecules/SecretField/SecretFieldStory.svelte.d.ts +3 -0
  189. package/dist/components/molecules/SplitPane/SplitPane.svelte +96 -37
  190. package/dist/components/molecules/SplitPane/SplitPane.svelte.d.ts +10 -2
  191. package/dist/components/molecules/TableToolbar/TableToolbar.svelte.d.ts +1 -1
  192. package/dist/components/molecules/Terminal/Terminal.stories.js +20 -0
  193. package/dist/components/molecules/Terminal/Terminal.svelte +238 -0
  194. package/dist/components/molecules/Terminal/Terminal.svelte.d.ts +19 -0
  195. package/dist/components/molecules/Terminal/TerminalStory.svelte +47 -0
  196. package/dist/components/molecules/Terminal/TerminalStory.svelte.d.ts +6 -0
  197. package/dist/components/molecules/TimelineClip/TimelineClip.stories.js +8 -0
  198. package/dist/components/molecules/TimelineClip/TimelineClip.svelte +116 -0
  199. package/dist/components/molecules/TimelineClip/TimelineClip.svelte.d.ts +15 -0
  200. package/dist/components/molecules/TimelineClip/TimelineClipStory.svelte +18 -0
  201. package/dist/components/molecules/TimelineClip/TimelineClipStory.svelte.d.ts +18 -0
  202. package/dist/components/molecules/TimelineTrack/TimelineTrack.stories.js +8 -0
  203. package/dist/components/molecules/TimelineTrack/TimelineTrack.svelte +56 -0
  204. package/dist/components/molecules/TimelineTrack/TimelineTrack.svelte.d.ts +16 -0
  205. package/dist/components/molecules/TimelineTrack/TimelineTrackStory.svelte +35 -0
  206. package/dist/components/molecules/TimelineTrack/TimelineTrackStory.svelte.d.ts +18 -0
  207. package/dist/components/molecules/TraceWaterfall/TraceWaterfall.stories.js +8 -0
  208. package/dist/components/molecules/TraceWaterfall/TraceWaterfall.svelte +158 -0
  209. package/dist/components/molecules/TraceWaterfall/TraceWaterfall.svelte.d.ts +18 -0
  210. package/dist/components/molecules/TraceWaterfall/TraceWaterfallStory.svelte +55 -0
  211. package/dist/components/molecules/TraceWaterfall/TraceWaterfallStory.svelte.d.ts +18 -0
  212. package/dist/components/molecules/TrackHeader/TrackHeader.stories.d.ts +9 -0
  213. package/dist/components/molecules/TrackHeader/TrackHeader.stories.js +8 -0
  214. package/dist/components/molecules/TrackHeader/TrackHeader.svelte +54 -0
  215. package/dist/components/molecules/TrackHeader/TrackHeader.svelte.d.ts +9 -0
  216. package/dist/components/molecules/TrackHeader/TrackHeaderStory.svelte +10 -0
  217. package/dist/components/molecules/TrackHeader/TrackHeaderStory.svelte.d.ts +3 -0
  218. package/dist/components/molecules/TransportControls/TransportControls.stories.d.ts +9 -0
  219. package/dist/components/molecules/TransportControls/TransportControls.stories.js +8 -0
  220. package/dist/components/molecules/TransportControls/TransportControls.svelte +53 -0
  221. package/dist/components/molecules/TransportControls/TransportControls.svelte.d.ts +12 -0
  222. package/dist/components/molecules/TransportControls/TransportControlsStory.svelte +18 -0
  223. package/dist/components/molecules/TransportControls/TransportControlsStory.svelte.d.ts +3 -0
  224. package/dist/components/molecules/VersionHistoryPanel/VersionHistoryPanel.stories.js +8 -0
  225. package/dist/components/molecules/VersionHistoryPanel/VersionHistoryPanel.svelte +117 -0
  226. package/dist/components/molecules/VersionHistoryPanel/VersionHistoryPanel.svelte.d.ts +20 -0
  227. package/dist/components/molecules/VersionHistoryPanel/VersionHistoryPanelStory.svelte +36 -0
  228. package/dist/components/molecules/VersionHistoryPanel/VersionHistoryPanelStory.svelte.d.ts +18 -0
  229. package/dist/components/molecules/VideoPlayer/VideoPlayer.stories.d.ts +1 -1
  230. package/dist/components/molecules/VideoTrackHeader/VideoTrackHeader.stories.d.ts +9 -0
  231. package/dist/components/molecules/VideoTrackHeader/VideoTrackHeader.stories.js +8 -0
  232. package/dist/components/molecules/VideoTrackHeader/VideoTrackHeader.svelte +59 -0
  233. package/dist/components/molecules/VideoTrackHeader/VideoTrackHeader.svelte.d.ts +9 -0
  234. package/dist/components/molecules/VideoTrackHeader/VideoTrackHeaderStory.svelte +10 -0
  235. package/dist/components/molecules/VideoTrackHeader/VideoTrackHeaderStory.svelte.d.ts +3 -0
  236. package/dist/components/molecules/WaveformRegion/WaveformRegion.stories.js +8 -0
  237. package/dist/components/molecules/WaveformRegion/WaveformRegion.svelte +82 -0
  238. package/dist/components/molecules/WaveformRegion/WaveformRegion.svelte.d.ts +13 -0
  239. package/dist/components/molecules/WaveformRegion/WaveformRegionStory.svelte +17 -0
  240. package/dist/components/molecules/WaveformRegion/WaveformRegionStory.svelte.d.ts +18 -0
  241. package/dist/components/molecules/WidgetCanvas/WidgetCanvas.svelte +13 -4
  242. package/dist/components/molecules/WidgetCanvas/WidgetCanvas.svelte.d.ts +3 -1
  243. package/dist/components/molecules/WidgetCanvas/widgetCanvasContext.d.ts +2 -0
  244. package/dist/components/molecules/WidgetFrame/WidgetFrame.svelte +206 -37
  245. package/dist/components/molecules/WidgetFrame/WidgetFrame.svelte.d.ts +31 -0
  246. package/dist/components/organisms/AssetPickerPage/AssetPickerPage.svelte.d.ts +1 -1
  247. package/dist/components/organisms/AudioEditor/AudioEditor.stories.d.ts +12 -0
  248. package/dist/components/organisms/AudioEditor/AudioEditor.stories.js +9 -0
  249. package/dist/components/organisms/AudioEditor/AudioEditor.svelte +273 -0
  250. package/dist/components/organisms/AudioEditor/AudioEditor.svelte.d.ts +13 -0
  251. package/dist/components/organisms/AudioEditor/AudioEditorStory.svelte +10 -0
  252. package/dist/components/organisms/AudioEditor/AudioEditorStory.svelte.d.ts +3 -0
  253. package/dist/components/organisms/BacklogPage/BacklogPage.svelte.d.ts +1 -1
  254. package/dist/components/organisms/BlogEditor/BlogEditor.stories.d.ts +12 -0
  255. package/dist/components/organisms/BlogEditor/BlogEditor.stories.js +9 -0
  256. package/dist/components/organisms/BlogEditor/BlogEditor.svelte +1208 -0
  257. package/dist/components/organisms/BlogEditor/BlogEditor.svelte.d.ts +16 -0
  258. package/dist/components/organisms/BlogEditor/BlogEditorStory.svelte +144 -0
  259. package/dist/components/organisms/BlogEditor/BlogEditorStory.svelte.d.ts +3 -0
  260. package/dist/components/organisms/BlogEditor/DemoBlogCard.svelte +28 -0
  261. package/dist/components/organisms/BlogEditor/DemoBlogCard.svelte.d.ts +10 -0
  262. package/dist/components/organisms/BlogEditor/DemoBlogStats.svelte +34 -0
  263. package/dist/components/organisms/BlogEditor/DemoBlogStats.svelte.d.ts +11 -0
  264. package/dist/components/organisms/BlogEditor/DemoBlogWidget.svelte +13 -0
  265. package/dist/components/organisms/BlogEditor/DemoBlogWidget.svelte.d.ts +8 -0
  266. package/dist/components/organisms/BlogRenderer/BlogRenderer.stories.js +8 -0
  267. package/dist/components/organisms/BlogRenderer/BlogRenderer.svelte +469 -0
  268. package/dist/components/organisms/BlogRenderer/BlogRenderer.svelte.d.ts +14 -0
  269. package/dist/components/organisms/BlogRenderer/BlogRendererStory.svelte +20 -0
  270. package/dist/components/organisms/BlogRenderer/BlogRendererStory.svelte.d.ts +18 -0
  271. package/dist/components/organisms/BlueprintEditor/BlueprintEditor.stories.d.ts +12 -0
  272. package/dist/components/organisms/BlueprintEditor/BlueprintEditor.stories.js +9 -0
  273. package/dist/components/organisms/BlueprintEditor/BlueprintEditor.svelte +1012 -0
  274. package/dist/components/organisms/BlueprintEditor/BlueprintEditor.svelte.d.ts +16 -0
  275. package/dist/components/organisms/BlueprintEditor/BlueprintEditorStory.svelte +76 -0
  276. package/dist/components/organisms/BlueprintEditor/BlueprintEditorStory.svelte.d.ts +3 -0
  277. package/dist/components/organisms/CalendarApp/CalendarApp.svelte.d.ts +1 -1
  278. package/dist/components/organisms/CanvasEditor/CanvasEditor.stories.d.ts +12 -0
  279. package/dist/components/organisms/CanvasEditor/CanvasEditor.stories.js +9 -0
  280. package/dist/components/organisms/CanvasEditor/CanvasEditor.svelte +1680 -0
  281. package/dist/components/organisms/CanvasEditor/CanvasEditor.svelte.d.ts +18 -0
  282. package/dist/components/organisms/CanvasEditor/CanvasEditorStory.svelte +329 -0
  283. package/dist/components/organisms/CanvasEditor/CanvasEditorStory.svelte.d.ts +3 -0
  284. package/dist/components/organisms/DashboardBuilderPage/DashboardBuilderPage.svelte.d.ts +1 -1
  285. package/dist/components/organisms/DataGrid/DataGrid.stories.d.ts +65 -0
  286. package/dist/components/organisms/DataGrid/DataGrid.stories.js +95 -0
  287. package/dist/components/organisms/DataGrid/DataGrid.svelte +2264 -0
  288. package/dist/components/organisms/DataGrid/DataGrid.svelte.d.ts +99 -0
  289. package/dist/components/organisms/DataGrid/DataGridStory.svelte +659 -0
  290. package/dist/components/organisms/DataGrid/DataGridStory.svelte.d.ts +11 -0
  291. package/dist/components/organisms/DataGrid/breakpoints.d.ts +10 -0
  292. package/dist/components/organisms/DataGrid/breakpoints.js +20 -0
  293. package/dist/components/organisms/DataGrid/cellEditors.d.ts +8 -0
  294. package/dist/components/organisms/DataGrid/cellEditors.js +59 -0
  295. package/dist/components/organisms/DataGrid/conditionalFormat.d.ts +11 -0
  296. package/dist/components/organisms/DataGrid/conditionalFormat.js +98 -0
  297. package/dist/components/organisms/DataGrid/filterRows.d.ts +5 -0
  298. package/dist/components/organisms/DataGrid/filterRows.js +60 -0
  299. package/dist/components/organisms/DataGrid/marks.d.ts +9 -0
  300. package/dist/components/organisms/DataGrid/marks.js +91 -0
  301. package/dist/components/organisms/DataGrid/types.d.ts +126 -0
  302. package/dist/components/organisms/DataGrid/types.js +21 -0
  303. package/dist/components/organisms/DesktopShell/DesktopShell.svelte.d.ts +1 -1
  304. package/dist/components/organisms/EditorShell/EditorShell.svelte +123 -28
  305. package/dist/components/organisms/EditorShell/EditorShell.svelte.d.ts +21 -1
  306. package/dist/components/organisms/FileUploader/FileUploader.svelte +77 -15
  307. package/dist/components/organisms/FileUploader/FileUploader.svelte.d.ts +11 -0
  308. package/dist/components/organisms/ImportWizard/ImportWizard.stories.js +8 -0
  309. package/dist/components/organisms/ImportWizard/ImportWizard.svelte +209 -0
  310. package/dist/components/organisms/ImportWizard/ImportWizard.svelte.d.ts +22 -0
  311. package/dist/components/organisms/ImportWizard/ImportWizardStory.svelte +16 -0
  312. package/dist/components/organisms/ImportWizard/ImportWizardStory.svelte.d.ts +18 -0
  313. package/dist/components/organisms/ResourceStudio/ResourceStudio.stories.d.ts +33 -0
  314. package/dist/components/organisms/ResourceStudio/ResourceStudio.stories.js +56 -0
  315. package/dist/components/organisms/ResourceStudio/ResourceStudio.svelte +830 -0
  316. package/dist/components/organisms/ResourceStudio/ResourceStudio.svelte.d.ts +68 -0
  317. package/dist/components/organisms/ResourceStudio/ResourceStudioStory.svelte +600 -0
  318. package/dist/components/organisms/ResourceStudio/ResourceStudioStory.svelte.d.ts +7 -0
  319. package/dist/components/organisms/ResourceStudio/fieldsToColumns.d.ts +4 -0
  320. package/dist/components/organisms/ResourceStudio/fieldsToColumns.js +20 -0
  321. package/dist/components/organisms/ResourceStudio/fieldsToSchema.d.ts +6 -0
  322. package/dist/components/organisms/ResourceStudio/fieldsToSchema.js +53 -0
  323. package/dist/components/organisms/ResourceStudio/types.d.ts +69 -0
  324. package/dist/components/organisms/ResourceStudio/types.js +15 -0
  325. package/dist/components/organisms/Scheduler/Scheduler.svelte.d.ts +1 -1
  326. package/dist/components/organisms/SchemaForm/SchemaForm.svelte +10 -3
  327. package/dist/components/organisms/SchemaForm/SchemaForm.svelte.d.ts +1 -0
  328. package/dist/components/organisms/VideoEditor/VideoEditor.stories.d.ts +12 -0
  329. package/dist/components/organisms/VideoEditor/VideoEditor.stories.js +9 -0
  330. package/dist/components/organisms/VideoEditor/VideoEditor.svelte +308 -0
  331. package/dist/components/organisms/VideoEditor/VideoEditor.svelte.d.ts +13 -0
  332. package/dist/components/organisms/VideoEditor/VideoEditorStory.svelte +10 -0
  333. package/dist/components/organisms/VideoEditor/VideoEditorStory.svelte.d.ts +3 -0
  334. package/dist/components/templates/AudioEditorTemplate/AudioEditorTemplate.stories.d.ts +12 -0
  335. package/dist/components/templates/AudioEditorTemplate/AudioEditorTemplate.stories.js +9 -0
  336. package/dist/components/templates/AudioEditorTemplate/AudioEditorTemplate.svelte +22 -0
  337. package/dist/components/templates/AudioEditorTemplate/AudioEditorTemplate.svelte.d.ts +13 -0
  338. package/dist/components/templates/AudioEditorTemplate/AudioEditorTemplateStory.svelte +8 -0
  339. package/dist/components/templates/AudioEditorTemplate/AudioEditorTemplateStory.svelte.d.ts +3 -0
  340. package/dist/components/templates/CanvasEditorTemplate/CanvasEditorTemplate.stories.d.ts +12 -0
  341. package/dist/components/templates/CanvasEditorTemplate/CanvasEditorTemplate.stories.js +9 -0
  342. package/dist/components/templates/CanvasEditorTemplate/CanvasEditorTemplate.svelte +32 -0
  343. package/dist/components/templates/CanvasEditorTemplate/CanvasEditorTemplate.svelte.d.ts +17 -0
  344. package/dist/components/templates/CanvasEditorTemplate/CanvasEditorTemplateStory.svelte +21 -0
  345. package/dist/components/templates/CanvasEditorTemplate/CanvasEditorTemplateStory.svelte.d.ts +3 -0
  346. package/dist/components/templates/ResourceStudioTemplate/ResourceStudioTemplate.stories.d.ts +25 -0
  347. package/dist/components/templates/ResourceStudioTemplate/ResourceStudioTemplate.stories.js +18 -0
  348. package/dist/components/templates/ResourceStudioTemplate/ResourceStudioTemplate.svelte +192 -0
  349. package/dist/components/templates/ResourceStudioTemplate/ResourceStudioTemplate.svelte.d.ts +62 -0
  350. package/dist/components/templates/ResourceStudioTemplate/ResourceStudioTemplateStory.svelte +129 -0
  351. package/dist/components/templates/ResourceStudioTemplate/ResourceStudioTemplateStory.svelte.d.ts +7 -0
  352. package/dist/components/templates/VideoEditorTemplate/VideoEditorTemplate.stories.d.ts +12 -0
  353. package/dist/components/templates/VideoEditorTemplate/VideoEditorTemplate.stories.js +9 -0
  354. package/dist/components/templates/VideoEditorTemplate/VideoEditorTemplate.svelte +22 -0
  355. package/dist/components/templates/VideoEditorTemplate/VideoEditorTemplate.svelte.d.ts +13 -0
  356. package/dist/components/templates/VideoEditorTemplate/VideoEditorTemplateStory.svelte +8 -0
  357. package/dist/components/templates/VideoEditorTemplate/VideoEditorTemplateStory.svelte.d.ts +3 -0
  358. package/dist/index.d.ts +94 -1
  359. package/dist/index.js +68 -0
  360. package/dist/types/xyflow-svelte.d.ts +62 -0
  361. package/dist/utils/audioProject.d.ts +19 -0
  362. package/dist/utils/audioProject.js +70 -0
  363. package/dist/utils/blogDocument.d.ts +175 -0
  364. package/dist/utils/blogDocument.js +220 -0
  365. package/dist/utils/blueprintRuntime.d.ts +34 -0
  366. package/dist/utils/blueprintRuntime.js +289 -0
  367. package/dist/utils/canvasDocument.d.ts +239 -0
  368. package/dist/utils/canvasDocument.js +443 -0
  369. package/dist/utils/canvasExport.d.ts +10 -0
  370. package/dist/utils/canvasExport.js +469 -0
  371. package/dist/utils/canvasHierarchy.d.ts +189 -0
  372. package/dist/utils/canvasHierarchy.js +674 -0
  373. package/dist/utils/canvasHistory.d.ts +19 -0
  374. package/dist/utils/canvasHistory.js +48 -0
  375. package/dist/utils/canvasWidget.d.ts +81 -0
  376. package/dist/utils/canvasWidget.js +597 -0
  377. package/dist/utils/marqueeSelect.d.ts +48 -0
  378. package/dist/utils/marqueeSelect.js +189 -0
  379. package/dist/utils/mediaTime.d.ts +16 -0
  380. package/dist/utils/mediaTime.js +57 -0
  381. package/dist/utils/mediaTracks.d.ts +61 -0
  382. package/dist/utils/mediaTracks.js +102 -0
  383. package/dist/utils/nodeGraph.d.ts +354 -0
  384. package/dist/utils/nodeGraph.js +1453 -0
  385. package/dist/utils/queryBridge.d.ts +18 -0
  386. package/dist/utils/queryBridge.js +118 -0
  387. package/dist/utils/videoSequence.d.ts +13 -0
  388. package/dist/utils/videoSequence.js +63 -0
  389. package/package.json +5 -2
@@ -8,13 +8,33 @@
8
8
  inspectorTitle?: string;
9
9
  workspaceTitle?: string;
10
10
  bottomTitle?: string;
11
+ /** Sized-pane value (%, or px when sizeUnit is `px`). */
11
12
  sidebarSize?: number;
12
13
  inspectorSize?: number;
13
- /** Height % of the bottom content pane */
14
+ /** Height of the bottom content pane */
14
15
  bottomSize?: number;
16
+ sizeUnit?: 'percent' | 'px';
17
+ sidebarMin?: number;
18
+ sidebarMax?: number;
19
+ inspectorMin?: number;
20
+ inspectorMax?: number;
21
+ bottomMin?: number;
22
+ bottomMax?: number;
15
23
  showBottom?: boolean;
16
24
  showInspector?: boolean;
17
25
  showSidebar?: boolean;
26
+ /**
27
+ * Wrap each slot in a Panel chrome. Set false when the slot already
28
+ * provides its own panels (e.g. Palette + Variables stacked).
29
+ */
30
+ wrapSidebar?: boolean;
31
+ wrapInspector?: boolean;
32
+ wrapWorkspace?: boolean;
33
+ wrapBottom?: boolean;
34
+ /** Collapse chrome on dock panels (when wrapped) */
35
+ collapsiblePanels?: boolean;
36
+ /** Hide resize grips until hover */
37
+ revealResizeOnHover?: boolean;
18
38
  fullHeight?: boolean;
19
39
  class?: string;
20
40
  sidebar?: Snippet;
@@ -31,9 +51,22 @@
31
51
  sidebarSize = $bindable(22),
32
52
  inspectorSize = $bindable(28),
33
53
  bottomSize = $bindable(28),
54
+ sizeUnit = 'percent',
55
+ sidebarMin = 12,
56
+ sidebarMax = 40,
57
+ inspectorMin = 18,
58
+ inspectorMax = 45,
59
+ bottomMin = 15,
60
+ bottomMax = 55,
34
61
  showBottom = true,
35
62
  showInspector = true,
36
63
  showSidebar = true,
64
+ wrapSidebar = true,
65
+ wrapInspector = true,
66
+ wrapWorkspace = true,
67
+ wrapBottom = true,
68
+ collapsiblePanels = true,
69
+ revealResizeOnHover = true,
37
70
  fullHeight = true,
38
71
  class: className = '',
39
72
  sidebar,
@@ -41,6 +74,11 @@
41
74
  bottom,
42
75
  inspector
43
76
  }: EditorShellProps = $props();
77
+
78
+ let sidebarCollapsed = $state(false);
79
+ let inspectorCollapsed = $state(false);
80
+ let workspaceCollapsed = $state(false);
81
+ let bottomCollapsed = $state(false);
44
82
  </script>
45
83
 
46
84
  <div
@@ -54,16 +92,30 @@
54
92
  <SplitPane
55
93
  orientation="horizontal"
56
94
  bind:size={sidebarSize}
57
- minSize={12}
58
- maxSize={40}
95
+ unit={sizeUnit}
96
+ minSize={sidebarMin}
97
+ maxSize={sidebarMax}
98
+ startCollapsed={wrapSidebar && sidebarCollapsed}
99
+ revealOnHover={revealResizeOnHover}
59
100
  class="h-full"
60
101
  >
61
102
  {#snippet start()}
62
- <Panel title={sidebarTitle}>
63
- {#if sidebar}
103
+ {#if wrapSidebar}
104
+ <Panel
105
+ title={sidebarTitle}
106
+ collapsible={collapsiblePanels}
107
+ bind:collapsed={sidebarCollapsed}
108
+ padding="none"
109
+ >
110
+ {#if sidebar}
111
+ {@render sidebar()}
112
+ {/if}
113
+ </Panel>
114
+ {:else if sidebar}
115
+ <div class="h-full min-h-0 min-w-0">
64
116
  {@render sidebar()}
65
- {/if}
66
- </Panel>
117
+ </div>
118
+ {/if}
67
119
  {/snippet}
68
120
  {#snippet end()}
69
121
  {@render mainAndInspector()}
@@ -80,19 +132,31 @@
80
132
  orientation="horizontal"
81
133
  bind:size={inspectorSize}
82
134
  sizePane="end"
83
- minSize={18}
84
- maxSize={45}
135
+ unit={sizeUnit}
136
+ minSize={inspectorMin}
137
+ maxSize={inspectorMax}
138
+ endCollapsed={wrapInspector && inspectorCollapsed}
139
+ revealOnHover={revealResizeOnHover}
85
140
  class="h-full"
86
141
  >
87
142
  {#snippet start()}
88
143
  {@render centerColumn()}
89
144
  {/snippet}
90
145
  {#snippet end()}
91
- <Panel title={inspectorTitle} padding="none">
92
- {#if inspector}
93
- {@render inspector()}
94
- {/if}
95
- </Panel>
146
+ {#if wrapInspector}
147
+ <Panel
148
+ title={inspectorTitle}
149
+ padding="none"
150
+ collapsible={collapsiblePanels}
151
+ bind:collapsed={inspectorCollapsed}
152
+ >
153
+ {#if inspector}
154
+ {@render inspector()}
155
+ {/if}
156
+ </Panel>
157
+ {:else if inspector}
158
+ {@render inspector()}
159
+ {/if}
96
160
  {/snippet}
97
161
  </SplitPane>
98
162
  {:else}
@@ -106,30 +170,61 @@
106
170
  orientation="vertical"
107
171
  bind:size={bottomSize}
108
172
  sizePane="end"
109
- minSize={15}
110
- maxSize={55}
173
+ unit={sizeUnit}
174
+ minSize={bottomMin}
175
+ maxSize={bottomMax}
176
+ startCollapsed={wrapWorkspace && workspaceCollapsed}
177
+ endCollapsed={wrapBottom && bottomCollapsed}
178
+ revealOnHover={revealResizeOnHover}
111
179
  class="h-full"
112
180
  >
113
181
  {#snippet start()}
114
- <Panel title={workspaceTitle}>
115
- {#if workspace}
116
- {@render workspace()}
117
- {/if}
118
- </Panel>
182
+ {#if wrapWorkspace}
183
+ <Panel
184
+ title={workspaceTitle}
185
+ padding="none"
186
+ collapsible={collapsiblePanels}
187
+ bind:collapsed={workspaceCollapsed}
188
+ >
189
+ {#if workspace}
190
+ {@render workspace()}
191
+ {/if}
192
+ </Panel>
193
+ {:else if workspace}
194
+ {@render workspace()}
195
+ {/if}
119
196
  {/snippet}
120
197
  {#snippet end()}
121
- <Panel title={bottomTitle}>
122
- {#if bottom}
123
- {@render bottom()}
124
- {/if}
125
- </Panel>
198
+ {#if wrapBottom}
199
+ <Panel
200
+ title={bottomTitle}
201
+ padding="none"
202
+ collapsible={collapsiblePanels}
203
+ bind:collapsed={bottomCollapsed}
204
+ >
205
+ {#if bottom}
206
+ {@render bottom()}
207
+ {/if}
208
+ </Panel>
209
+ {:else if bottom}
210
+ {@render bottom()}
211
+ {/if}
126
212
  {/snippet}
127
213
  </SplitPane>
128
- {:else}
129
- <Panel title={workspaceTitle}>
214
+ {:else if wrapWorkspace}
215
+ <Panel
216
+ title={workspaceTitle}
217
+ padding="none"
218
+ collapsible={collapsiblePanels}
219
+ bind:collapsed={workspaceCollapsed}
220
+ >
130
221
  {#if workspace}
131
222
  {@render workspace()}
132
223
  {/if}
133
224
  </Panel>
225
+ {:else if workspace}
226
+ <div class="h-full min-h-0 min-w-0">
227
+ {@render workspace()}
228
+ </div>
134
229
  {/if}
135
230
  {/snippet}
@@ -4,13 +4,33 @@ interface EditorShellProps {
4
4
  inspectorTitle?: string;
5
5
  workspaceTitle?: string;
6
6
  bottomTitle?: string;
7
+ /** Sized-pane value (%, or px when sizeUnit is `px`). */
7
8
  sidebarSize?: number;
8
9
  inspectorSize?: number;
9
- /** Height % of the bottom content pane */
10
+ /** Height of the bottom content pane */
10
11
  bottomSize?: number;
12
+ sizeUnit?: 'percent' | 'px';
13
+ sidebarMin?: number;
14
+ sidebarMax?: number;
15
+ inspectorMin?: number;
16
+ inspectorMax?: number;
17
+ bottomMin?: number;
18
+ bottomMax?: number;
11
19
  showBottom?: boolean;
12
20
  showInspector?: boolean;
13
21
  showSidebar?: boolean;
22
+ /**
23
+ * Wrap each slot in a Panel chrome. Set false when the slot already
24
+ * provides its own panels (e.g. Palette + Variables stacked).
25
+ */
26
+ wrapSidebar?: boolean;
27
+ wrapInspector?: boolean;
28
+ wrapWorkspace?: boolean;
29
+ wrapBottom?: boolean;
30
+ /** Collapse chrome on dock panels (when wrapped) */
31
+ collapsiblePanels?: boolean;
32
+ /** Hide resize grips until hover */
33
+ revealResizeOnHover?: boolean;
14
34
  fullHeight?: boolean;
15
35
  class?: string;
16
36
  sidebar?: Snippet;
@@ -1,7 +1,7 @@
1
1
  <script lang="ts">
2
2
  import { onDestroy } from 'svelte';
3
3
 
4
- type FileKind = 'image' | 'pdf' | 'doc' | 'other';
4
+ type FileKind = 'image' | 'video' | 'audio' | 'pdf' | 'doc' | 'other';
5
5
  type UploaderVariant = 'multiple' | 'single' | 'avatar';
6
6
  type UploaderView = 'list' | 'grid';
7
7
 
@@ -22,10 +22,21 @@
22
22
  variant?: UploaderVariant;
23
23
  view?: UploaderView;
24
24
  showViewToggle?: boolean;
25
+ /** When false, only the dropzone is shown (parent owns the file list). */
26
+ showFileList?: boolean;
25
27
  maxSizeMb?: number;
26
28
  disabled?: boolean;
29
+ /**
30
+ * External preview URL for `single` / `avatar` when no File is selected yet
31
+ * (e.g. existing remote image in an editor inspector).
32
+ */
33
+ src?: string;
34
+ /** Display name when using `src` without a File */
35
+ srcName?: string;
27
36
  class?: string;
28
37
  onchange?: (files: File[]) => void;
38
+ /** Fired when the user clears the current file / src preview */
39
+ onclear?: () => void;
29
40
  }
30
41
 
31
42
  let {
@@ -36,10 +47,14 @@
36
47
  variant = 'multiple',
37
48
  view = $bindable('list'),
38
49
  showViewToggle = true,
50
+ showFileList = true,
39
51
  maxSizeMb = 10,
40
52
  disabled = false,
53
+ src = '',
54
+ srcName = '',
41
55
  class: className = '',
42
- onchange
56
+ onchange,
57
+ onclear
43
58
  }: FileUploaderProps = $props();
44
59
 
45
60
  let isDragging = $state(false);
@@ -51,6 +66,13 @@
51
66
  const isMultiple = $derived(variant === 'multiple');
52
67
  const hasFile = $derived(fileList.length > 0);
53
68
  const primaryFile = $derived(fileList[0] as FileItem | undefined);
69
+ const externalSrc = $derived(src?.trim() || '');
70
+ const showSinglePreview = $derived(
71
+ variant === 'single' && (!!primaryFile || !!externalSrc)
72
+ );
73
+ const singlePreviewUrl = $derived(primaryFile?.previewUrl || externalSrc);
74
+ const singlePreviewName = $derived(primaryFile?.name || srcName || 'Media');
75
+ const singlePreviewMeta = $derived(primaryFile?.sizeFormatted || '');
54
76
 
55
77
  const labelId = $derived(`${id}-label`);
56
78
  const helperId = $derived(`${id}-helper`);
@@ -61,6 +83,13 @@
61
83
  variant === 'avatar' && (!accept || accept === '*') ? 'image/*' : accept
62
84
  );
63
85
 
86
+ const singleIsVideo = $derived(
87
+ primaryFile?.kind === 'video' ||
88
+ (!primaryFile &&
89
+ !!externalSrc &&
90
+ (resolvedAccept.includes('video') || /\.(mp4|webm|mov|m4v)(\?|$)/i.test(externalSrc)))
91
+ );
92
+
64
93
  function formatBytes(bytes: number): string {
65
94
  if (bytes === 0) return '0 B';
66
95
  const k = 1024;
@@ -71,6 +100,8 @@
71
100
 
72
101
  function getFileKind(file: File): FileKind {
73
102
  if (file.type.startsWith('image/')) return 'image';
103
+ if (file.type.startsWith('video/')) return 'video';
104
+ if (file.type.startsWith('audio/')) return 'audio';
74
105
  if (file.type === 'application/pdf' || file.name.toLowerCase().endsWith('.pdf')) return 'pdf';
75
106
  if (
76
107
  file.type.includes('document') ||
@@ -86,6 +117,8 @@
86
117
  if (kind === 'pdf') return 'PDF';
87
118
  if (kind === 'doc') return 'DOC';
88
119
  if (kind === 'image') return 'IMG';
120
+ if (kind === 'video') return 'VID';
121
+ if (kind === 'audio') return 'AUD';
89
122
  return 'FILE';
90
123
  }
91
124
 
@@ -93,6 +126,8 @@
93
126
  if (kind === 'pdf') return 'bg-red-50 text-red-600 dark:bg-red-950/50 dark:text-red-300';
94
127
  if (kind === 'doc') return 'bg-sky-50 text-sky-700 dark:bg-sky-950/50 dark:text-sky-300';
95
128
  if (kind === 'image') return 'bg-brand-50 text-brand-700 dark:bg-brand-950/50 dark:text-brand-300';
129
+ if (kind === 'video') return 'bg-violet-50 text-violet-700 dark:bg-violet-950/50 dark:text-violet-300';
130
+ if (kind === 'audio') return 'bg-emerald-50 text-emerald-700 dark:bg-emerald-950/50 dark:text-emerald-300';
96
131
  return 'bg-surface-overlay text-secondary';
97
132
  }
98
133
 
@@ -141,13 +176,14 @@
141
176
  }
142
177
 
143
178
  const kind = getFileKind(file);
179
+ const needsUrl = kind === 'image' || kind === 'video' || kind === 'audio';
144
180
  nextItems.push({
145
181
  file,
146
182
  id: `${file.name}-${file.size}-${file.lastModified}-${Math.random().toString(36).slice(2, 7)}`,
147
183
  name: file.name,
148
184
  sizeFormatted: formatBytes(file.size),
149
185
  kind,
150
- previewUrl: kind === 'image' ? URL.createObjectURL(file) : undefined
186
+ previewUrl: needsUrl ? URL.createObjectURL(file) : undefined
151
187
  });
152
188
  }
153
189
 
@@ -172,6 +208,10 @@
172
208
  }
173
209
 
174
210
  onchange?.(fileList.map((item) => item.file));
211
+ if (!showFileList && isMultiple) {
212
+ revokePreviews(fileList);
213
+ fileList = [];
214
+ }
175
215
  if (fileInputNode) fileInputNode.value = '';
176
216
  }
177
217
 
@@ -181,6 +221,17 @@
181
221
  fileList = fileList.filter((item) => item.id !== id);
182
222
  errorMessage = '';
183
223
  onchange?.(fileList.map((item) => item.file));
224
+ if (fileList.length === 0) onclear?.();
225
+ }
226
+
227
+ function clearSingle() {
228
+ if (primaryFile) {
229
+ removeFile(primaryFile.id);
230
+ return;
231
+ }
232
+ errorMessage = '';
233
+ onchange?.([]);
234
+ onclear?.();
184
235
  }
185
236
 
186
237
  function clearAll() {
@@ -516,7 +567,7 @@
516
567
  </div>
517
568
 
518
569
  <!-- Single variant: preview card with edit -->
519
- {:else if variant === 'single' && primaryFile}
570
+ {:else if showSinglePreview}
520
571
  <div
521
572
  class={[
522
573
  'overflow-hidden rounded-xl border border-border bg-surface-elevated shadow-sm',
@@ -530,11 +581,20 @@
530
581
  aria-labelledby={label ? labelId : undefined}
531
582
  >
532
583
  <div class="relative aspect-video bg-surface-overlay">
533
- {#if primaryFile.previewUrl}
534
- <img src={primaryFile.previewUrl} alt="" class="h-full w-full object-cover" />
584
+ {#if singlePreviewUrl}
585
+ {#if singleIsVideo}
586
+ <video
587
+ src={singlePreviewUrl}
588
+ class="h-full w-full object-cover"
589
+ muted
590
+ playsinline
591
+ ></video>
592
+ {:else}
593
+ <img src={singlePreviewUrl} alt="" class="h-full w-full object-cover" />
594
+ {/if}
535
595
  {:else}
536
596
  <div class="flex h-full w-full flex-col items-center justify-center gap-2">
537
- {@render fileBadge(primaryFile.kind, 'h-14 w-14 rounded-xl text-xs')}
597
+ {@render fileBadge(primaryFile?.kind ?? 'other', 'h-14 w-14 rounded-xl text-xs')}
538
598
  </div>
539
599
  {/if}
540
600
 
@@ -556,9 +616,9 @@
556
616
  </button>
557
617
  <button
558
618
  type="button"
559
- onclick={() => removeFile(primaryFile.id)}
619
+ onclick={clearSingle}
560
620
  class="inline-flex items-center justify-center rounded-lg bg-white/95 p-1.5 text-secondary shadow-sm backdrop-blur transition hover:bg-white hover:text-red-600 dark:bg-slate-900/95 dark:hover:bg-slate-900 dark:hover:text-red-400"
561
- aria-label={`Remove ${primaryFile.name}`}
621
+ aria-label={`Remove ${singlePreviewName}`}
562
622
  >
563
623
  <svg class="h-3.5 w-3.5" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2">
564
624
  <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12" />
@@ -570,8 +630,10 @@
570
630
 
571
631
  <div class="flex items-center justify-between gap-3 border-t border-border px-4 py-3">
572
632
  <div class="min-w-0">
573
- <p class="truncate text-sm font-medium text-primary">{primaryFile.name}</p>
574
- <p class="text-xs text-secondary">{primaryFile.sizeFormatted}</p>
633
+ <p class="truncate text-sm font-medium text-primary">{singlePreviewName}</p>
634
+ {#if singlePreviewMeta}
635
+ <p class="text-xs text-secondary">{singlePreviewMeta}</p>
636
+ {/if}
575
637
  </div>
576
638
  {#if helperText}
577
639
  <p id={helperId} class="shrink-0 text-xs text-secondary">{helperText}</p>
@@ -579,8 +641,8 @@
579
641
  </div>
580
642
  </div>
581
643
 
582
- <!-- Default / empty single: dropzone -->
583
- {:else}
644
+ <!-- Dropzone: hide the big one when multiple already has files (compact “add more” below) -->
645
+ {:else if !(isMultiple && hasFile && showFileList)}
584
646
  {@render dropzone()}
585
647
  {/if}
586
648
 
@@ -588,8 +650,8 @@
588
650
  <p id={errorId} class="text-xs text-red-600 dark:text-red-400" role="alert">{errorMessage}</p>
589
651
  {/if}
590
652
 
591
- <!-- Multiple file cards -->
592
- {#if isMultiple && hasFile}
653
+ <!-- Multiple file cards (optional — MediaAssetBrowser owns its own grid) -->
654
+ {#if isMultiple && hasFile && showFileList}
593
655
  {#if view === 'grid'}
594
656
  <ul class="grid grid-cols-2 gap-2.5 sm:grid-cols-3" aria-label="Selected files">
595
657
  {#each fileList as item (item.id)}
@@ -8,10 +8,21 @@ interface FileUploaderProps {
8
8
  variant?: UploaderVariant;
9
9
  view?: UploaderView;
10
10
  showViewToggle?: boolean;
11
+ /** When false, only the dropzone is shown (parent owns the file list). */
12
+ showFileList?: boolean;
11
13
  maxSizeMb?: number;
12
14
  disabled?: boolean;
15
+ /**
16
+ * External preview URL for `single` / `avatar` when no File is selected yet
17
+ * (e.g. existing remote image in an editor inspector).
18
+ */
19
+ src?: string;
20
+ /** Display name when using `src` without a File */
21
+ srcName?: string;
13
22
  class?: string;
14
23
  onchange?: (files: File[]) => void;
24
+ /** Fired when the user clears the current file / src preview */
25
+ onclear?: () => void;
15
26
  }
16
27
  declare const FileUploader: import("svelte").Component<FileUploaderProps, {}, "view">;
17
28
  type FileUploader = ReturnType<typeof FileUploader>;
@@ -0,0 +1,8 @@
1
+ import ImportWizardStory from './ImportWizardStory.svelte';
2
+ const meta = {
3
+ title: 'Organisms/ImportWizard',
4
+ component: ImportWizardStory,
5
+ tags: ['autodocs']
6
+ };
7
+ export default meta;
8
+ export const Default = {};