@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
@@ -2,6 +2,7 @@
2
2
  import type { Component, Snippet } from 'svelte';
3
3
  import Button from '../../atoms/Button/Button.svelte';
4
4
  import CloseButton from '../../atoms/CloseButton/CloseButton.svelte';
5
+ import Tooltip from '../../atoms/Tooltip/Tooltip.svelte';
5
6
  import DropdownMenu from '../DropdownMenu/DropdownMenu.svelte';
6
7
  import type { DropdownItem } from '../DropdownMenu/DropdownMenu.svelte';
7
8
  import Divider from '../../atoms/Divider/Divider.svelte';
@@ -45,6 +46,8 @@
45
46
  sticky?: boolean;
46
47
  /** Cap visible primary actions; rest go to More */
47
48
  maxPrimary?: number;
49
+ /** Tight icon toolbar — badge + icon actions, no selection copy */
50
+ compact?: boolean;
48
51
  showSelectAll?: boolean;
49
52
  showClear?: boolean;
50
53
  showHint?: boolean;
@@ -77,6 +80,7 @@
77
80
  tone = 'brand',
78
81
  sticky = true,
79
82
  maxPrimary = 3,
83
+ compact = false,
80
84
  showSelectAll = true,
81
85
  showClear = true,
82
86
  showHint = true,
@@ -95,9 +99,11 @@
95
99
 
96
100
  let pendingConfirm = $state<string | null>(null);
97
101
 
98
- const btnSize = $derived(size);
99
- const closeSize = $derived(size === 'xs' ? 'sm' : 'sm');
100
- const iconPx = $derived(size === 'xs' ? 'h-3.5 w-3.5' : 'h-3.5 w-3.5');
102
+ const btnSize = $derived(compact ? 'xs' : size);
103
+ const closeSize = $derived(btnSize === 'xs' ? 'sm' : 'sm');
104
+ const iconPx = $derived(btnSize === 'xs' ? 'h-3.5 w-3.5' : 'h-3.5 w-3.5');
105
+ const showCopy = $derived(!compact);
106
+ const hintEnabled = $derived(showHint && !compact);
101
107
 
102
108
  /** Split by overflow flag, then by maxPrimary */
103
109
  const split = $derived.by(() => {
@@ -129,11 +135,13 @@
129
135
  });
130
136
 
131
137
  const allSelected = $derived(total != null && total > 0 && count >= total);
132
- const canSelectAll = $derived(showSelectAll && !!onselectall && total != null && count > 0 && !allSelected);
133
- const canSelectNone = $derived(!!onselectnone && allSelected);
138
+ const canSelectAll = $derived(
139
+ showCopy && showSelectAll && !!onselectall && total != null && count > 0 && !allSelected
140
+ );
141
+ const canSelectNone = $derived(showCopy && !!onselectnone && allSelected);
134
142
 
135
143
  const resolvedHint = $derived.by(() => {
136
- if (!showHint) return '';
144
+ if (!hintEnabled) return '';
137
145
  if (pendingConfirm) {
138
146
  return `Confirm ${actions.find((a) => a.id === pendingConfirm)?.label ?? 'action'}?`;
139
147
  }
@@ -169,15 +177,29 @@
169
177
  onclear?.();
170
178
  }
171
179
  }
180
+
181
+ /** Dock sticks to the viewport bottom; portal avoids parent transform/overflow traps. */
182
+ function portalDock(node: HTMLElement) {
183
+ if (!(placement === 'dock' && sticky)) return {};
184
+ document.body.appendChild(node);
185
+ return {
186
+ destroy() {
187
+ node.remove();
188
+ }
189
+ };
190
+ }
191
+
192
+ const dockFixed = $derived(placement === 'dock' && sticky);
172
193
  </script>
173
194
 
174
195
  <svelte:window onkeydown={onKeydown} />
175
196
 
176
197
  {#if count > 0}
177
198
  <div
199
+ use:portalDock
178
200
  class={[
179
201
  placement === 'dock' && 'pointer-events-none z-30 flex justify-center',
180
- placement === 'dock' && sticky && 'sticky bottom-3 px-3',
202
+ dockFixed && 'fixed inset-x-0 bottom-3 z-50 px-3',
181
203
  placement === 'inline' && sticky && 'sticky bottom-0 z-20',
182
204
  className
183
205
  ]}
@@ -186,22 +208,28 @@
186
208
  >
187
209
  <div
188
210
  class={[
189
- 'pointer-events-auto flex w-full flex-col gap-2 border shadow-lg backdrop-blur-md',
211
+ 'pointer-events-auto flex border shadow-lg backdrop-blur-md',
190
212
  'ring-1 ring-black/5 dark:ring-white/10',
191
- placement === 'dock' &&
213
+ compact
214
+ ? 'w-auto max-w-[min(100%,36rem)] flex-row items-center gap-1.5 rounded-full border-border bg-surface-elevated/95 px-2 py-1.5'
215
+ : 'w-full flex-col gap-2',
216
+ !compact &&
217
+ placement === 'dock' &&
192
218
  'max-w-2xl rounded-xl border-border bg-surface-elevated/95 px-3 py-2 sm:flex-row sm:items-center sm:gap-3 sm:px-3.5',
193
- placement === 'inline' &&
219
+ !compact &&
220
+ placement === 'inline' &&
194
221
  'rounded-none border-x-0 border-b-0 border-border bg-surface-elevated/95 px-3 py-2 sm:flex-row sm:items-center'
195
222
  ]}
196
223
  >
197
- <div class="flex min-w-0 flex-1 items-center gap-2.5">
224
+ <div class={['flex min-w-0 items-center gap-2.5', compact ? 'shrink-0' : 'flex-1']}>
198
225
  {#if leading}
199
226
  {@render leading()}
200
227
  {:else}
201
228
  <span
202
229
  class={[
203
230
  'inline-flex shrink-0 items-center justify-center rounded-lg font-bold tabular-nums shadow-sm',
204
- size === 'xs' ? 'h-7 min-w-7 px-1.5 text-xs' : 'h-8 min-w-8 px-2 text-xs',
231
+ btnSize === 'xs' ? 'h-7 min-w-7 px-1.5 text-xs' : 'h-8 min-w-8 px-2 text-xs',
232
+ compact && 'rounded-full',
205
233
  countBadgeClass
206
234
  ]}
207
235
  aria-hidden="true"
@@ -210,46 +238,48 @@
210
238
  </span>
211
239
  {/if}
212
240
 
213
- <div class="min-w-0 flex-1">
214
- <p class="truncate text-xs font-semibold text-primary sm:text-sm">{selectionText}</p>
215
- {#if description}
216
- <p class="truncate text-[11px] text-muted">{description}</p>
217
- {:else if canSelectAll}
218
- <button
219
- type="button"
220
- class="mt-0.5 text-[11px] font-medium text-brand-600 hover:underline dark:text-brand-400"
221
- onclick={() => onselectall?.()}
222
- >
223
- Select all {total}
224
- </button>
225
- {:else if canSelectNone}
226
- <button
227
- type="button"
228
- class="mt-0.5 text-[11px] font-medium text-secondary hover:underline"
229
- onclick={() => onselectnone?.()}
230
- >
231
- Clear selection
232
- </button>
233
- {:else if resolvedHint}
234
- <p
235
- class={[
236
- 'mt-0.5 text-[11px]',
237
- pendingConfirm ? 'text-amber-700 dark:text-amber-300' : 'text-muted'
238
- ]}
239
- >
240
- {resolvedHint}
241
- </p>
242
- {/if}
243
- </div>
241
+ {#if showCopy}
242
+ <div class="flex min-w-0 flex-1 flex-col leading-tight">
243
+ <p class="truncate text-xs font-semibold text-primary sm:text-sm">{selectionText}</p>
244
+ {#if description}
245
+ <p class="truncate text-[11px] text-muted">{description}</p>
246
+ {:else if canSelectAll}
247
+ <button
248
+ type="button"
249
+ class="w-fit text-left text-[11px] font-medium text-brand-600 hover:underline dark:text-brand-400"
250
+ onclick={() => onselectall?.()}
251
+ >
252
+ Select all {total}
253
+ </button>
254
+ {:else if canSelectNone}
255
+ <button
256
+ type="button"
257
+ class="w-fit text-left text-[11px] font-medium text-secondary hover:underline"
258
+ onclick={() => onselectnone?.()}
259
+ >
260
+ Clear selection
261
+ </button>
262
+ {:else if resolvedHint}
263
+ <p
264
+ class={[
265
+ 'text-[11px]',
266
+ pendingConfirm ? 'text-amber-700 dark:text-amber-300' : 'text-muted'
267
+ ]}
268
+ >
269
+ {resolvedHint}
270
+ </p>
271
+ {/if}
272
+ </div>
273
+ {/if}
244
274
 
245
275
  {#if extra}
246
- <div class="hidden items-center gap-1.5 sm:flex">
276
+ <div class={['items-center gap-1.5', compact ? 'flex' : 'hidden sm:flex']}>
247
277
  {@render extra()}
248
278
  </div>
249
279
  {/if}
250
280
  </div>
251
281
 
252
- <div class="flex flex-wrap items-center gap-1.5 sm:justify-end">
282
+ <div class={['flex items-center gap-1', compact ? 'shrink-0' : 'flex-wrap gap-1.5 sm:justify-end']}>
253
283
  {#if pendingConfirm}
254
284
  <Button size={btnSize} variant="ghost" {disabled} onclick={() => (pendingConfirm = null)}>
255
285
  Cancel
@@ -265,22 +295,42 @@
265
295
  {:else}
266
296
  {#each split.primary as action (action.id)}
267
297
  {@const Icon = action.icon}
268
- <Button
269
- size={btnSize}
270
- variant={action.variant ?? 'secondary'}
271
- disabled={disabled || action.disabled}
272
- loading={action.loading}
273
- aria-label={action.iconOnly ? action.label : undefined}
274
- title={action.tooltip ?? (action.iconOnly ? action.label : undefined)}
275
- onclick={() => run(action.id)}
276
- >
277
- {#if Icon}
278
- <Icon class={iconPx} strokeWidth={2} />
279
- {/if}
280
- {#if !action.iconOnly}
281
- {action.label}
282
- {/if}
283
- </Button>
298
+ {@const onlyIcon = compact ? !!Icon : !!action.iconOnly}
299
+ {@const tip = action.tooltip ?? (onlyIcon ? action.label : '')}
300
+ {#if tip}
301
+ <Tooltip content={tip} side="top">
302
+ <Button
303
+ size={btnSize}
304
+ variant={action.variant ?? 'secondary'}
305
+ disabled={disabled || action.disabled}
306
+ loading={action.loading}
307
+ aria-label={onlyIcon ? action.label : undefined}
308
+ onclick={() => run(action.id)}
309
+ >
310
+ {#if Icon}
311
+ <Icon class={iconPx} strokeWidth={2} />
312
+ {/if}
313
+ {#if !onlyIcon}
314
+ {action.label}
315
+ {/if}
316
+ </Button>
317
+ </Tooltip>
318
+ {:else}
319
+ <Button
320
+ size={btnSize}
321
+ variant={action.variant ?? 'secondary'}
322
+ disabled={disabled || action.disabled}
323
+ loading={action.loading}
324
+ onclick={() => run(action.id)}
325
+ >
326
+ {#if Icon}
327
+ <Icon class={iconPx} strokeWidth={2} />
328
+ {/if}
329
+ {#if !onlyIcon}
330
+ {action.label}
331
+ {/if}
332
+ </Button>
333
+ {/if}
284
334
  {/each}
285
335
 
286
336
  {#if overflowItems.length > 0}
@@ -297,7 +347,7 @@
297
347
  <span
298
348
  class={[
299
349
  'inline-flex items-center justify-center rounded-lg text-secondary hover:bg-surface-overlay hover:text-primary',
300
- size === 'xs' ? 'h-7 w-7' : 'h-8 w-8'
350
+ size === 'xs' || btnSize === 'xs' ? 'h-7 w-7' : 'h-8 w-8'
301
351
  ]}
302
352
  aria-hidden="true"
303
353
  >
@@ -40,6 +40,8 @@ interface BulkActionBarProps {
40
40
  sticky?: boolean;
41
41
  /** Cap visible primary actions; rest go to More */
42
42
  maxPrimary?: number;
43
+ /** Tight icon toolbar — badge + icon actions, no selection copy */
44
+ compact?: boolean;
43
45
  showSelectAll?: boolean;
44
46
  showClear?: boolean;
45
47
  showHint?: boolean;
@@ -0,0 +1,8 @@
1
+ import BulkEditPanelStory from './BulkEditPanelStory.svelte';
2
+ const meta = {
3
+ title: 'Molecules/BulkEditPanel',
4
+ component: BulkEditPanelStory,
5
+ tags: ['autodocs']
6
+ };
7
+ export default meta;
8
+ export const Default = {};
@@ -0,0 +1,117 @@
1
+ <script lang="ts">
2
+ import Button from '../../atoms/Button/Button.svelte';
3
+ import Input from '../../atoms/Input/Input.svelte';
4
+ import Select from '../Select/Select.svelte';
5
+ import Toggle from '../../atoms/Toggle/Toggle.svelte';
6
+
7
+ export type BulkEditFieldType = 'text' | 'number' | 'select' | 'boolean';
8
+
9
+ export interface BulkEditField {
10
+ id: string;
11
+ label: string;
12
+ type: BulkEditFieldType;
13
+ options?: { value: string; label: string }[];
14
+ }
15
+
16
+ interface BulkEditPanelProps {
17
+ fields?: BulkEditField[];
18
+ selectedCount?: number;
19
+ values?: Record<string, unknown>;
20
+ enabled?: Record<string, boolean>;
21
+ applyLabel?: string;
22
+ class?: string;
23
+ onchange?: (values: Record<string, unknown>) => void;
24
+ onapply?: (values: Record<string, unknown>) => void;
25
+ }
26
+
27
+ let {
28
+ fields = [],
29
+ selectedCount = 0,
30
+ values = $bindable<Record<string, unknown>>({}),
31
+ enabled = $bindable<Record<string, boolean>>({}),
32
+ applyLabel = 'Apply to selection',
33
+ class: className = '',
34
+ onchange,
35
+ onapply
36
+ }: BulkEditPanelProps = $props();
37
+
38
+ function setEnabled(id: string, on: boolean) {
39
+ enabled = { ...enabled, [id]: on };
40
+ }
41
+
42
+ function setValue(id: string, v: unknown) {
43
+ values = { ...values, [id]: v };
44
+ onchange?.(activeValues());
45
+ }
46
+
47
+ function activeValues(): Record<string, unknown> {
48
+ const out: Record<string, unknown> = {};
49
+ for (const f of fields) {
50
+ if (enabled[f.id]) out[f.id] = values[f.id];
51
+ }
52
+ return out;
53
+ }
54
+
55
+ function apply() {
56
+ onapply?.(activeValues());
57
+ }
58
+ </script>
59
+
60
+ <div
61
+ class={['flex flex-col gap-3 rounded-xl border border-border bg-surface-elevated p-4', className]}
62
+ data-bulk-edit-panel
63
+ >
64
+ <div class="flex items-center justify-between gap-2">
65
+ <div>
66
+ <p class="text-sm font-semibold text-primary">Bulk edit</p>
67
+ <p class="text-xs text-muted">
68
+ {selectedCount} selected · enable fields to overwrite
69
+ </p>
70
+ </div>
71
+ <Button size="sm" disabled={!selectedCount || !Object.values(enabled).some(Boolean)} onclick={apply}>
72
+ {applyLabel}
73
+ </Button>
74
+ </div>
75
+
76
+ <ul class="flex flex-col gap-2">
77
+ {#each fields as field (field.id)}
78
+ <li class="flex flex-wrap items-center gap-3 rounded-lg border border-border px-3 py-2">
79
+ <label class="flex min-w-[8rem] items-center gap-2 text-sm text-primary">
80
+ <input
81
+ type="checkbox"
82
+ checked={!!enabled[field.id]}
83
+ onchange={(e) => setEnabled(field.id, (e.currentTarget as HTMLInputElement).checked)}
84
+ />
85
+ {field.label}
86
+ </label>
87
+ <div class="min-w-[12rem] flex-1" class:opacity-40={!enabled[field.id]}>
88
+ {#if field.type === 'boolean'}
89
+ <Toggle
90
+ checked={!!values[field.id]}
91
+ disabled={!enabled[field.id]}
92
+ onchange={(v) => setValue(field.id, v)}
93
+ />
94
+ {:else if field.type === 'select'}
95
+ <Select
96
+ value={String(values[field.id] ?? '')}
97
+ options={field.options ?? []}
98
+ disabled={!enabled[field.id]}
99
+ onchange={(v) => setValue(field.id, v)}
100
+ size="sm"
101
+ />
102
+ {:else}
103
+ <Input
104
+ type={field.type === 'number' ? 'number' : 'text'}
105
+ value={String(values[field.id] ?? '')}
106
+ disabled={!enabled[field.id]}
107
+ oninput={(e) => {
108
+ const raw = (e.currentTarget as HTMLInputElement).value;
109
+ setValue(field.id, field.type === 'number' ? Number(raw) : raw);
110
+ }}
111
+ />
112
+ {/if}
113
+ </div>
114
+ </li>
115
+ {/each}
116
+ </ul>
117
+ </div>
@@ -0,0 +1,23 @@
1
+ export type BulkEditFieldType = 'text' | 'number' | 'select' | 'boolean';
2
+ export interface BulkEditField {
3
+ id: string;
4
+ label: string;
5
+ type: BulkEditFieldType;
6
+ options?: {
7
+ value: string;
8
+ label: string;
9
+ }[];
10
+ }
11
+ interface BulkEditPanelProps {
12
+ fields?: BulkEditField[];
13
+ selectedCount?: number;
14
+ values?: Record<string, unknown>;
15
+ enabled?: Record<string, boolean>;
16
+ applyLabel?: string;
17
+ class?: string;
18
+ onchange?: (values: Record<string, unknown>) => void;
19
+ onapply?: (values: Record<string, unknown>) => void;
20
+ }
21
+ declare const BulkEditPanel: import("svelte").Component<BulkEditPanelProps, {}, "values" | "enabled">;
22
+ type BulkEditPanel = ReturnType<typeof BulkEditPanel>;
23
+ export default BulkEditPanel;
@@ -0,0 +1,18 @@
1
+ <script lang="ts">
2
+ import BulkEditPanel from './BulkEditPanel.svelte';
3
+ </script>
4
+
5
+ <div class="mx-auto max-w-lg p-4">
6
+ <BulkEditPanel
7
+ selectedCount={12}
8
+ fields={[
9
+ { id: 'status', label: 'Status', type: 'select', options: [
10
+ { value: 'active', label: 'Active' },
11
+ { value: 'draft', label: 'Draft' }
12
+ ]},
13
+ { id: 'priority', label: 'Priority', type: 'number' },
14
+ { id: 'featured', label: 'Featured', type: 'boolean' }
15
+ ]}
16
+ onapply={(v) => console.log(v)}
17
+ />
18
+ </div>
@@ -0,0 +1,18 @@
1
+ interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
2
+ new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
3
+ $$bindings?: Bindings;
4
+ } & Exports;
5
+ (internal: unknown, props: {
6
+ $$events?: Events;
7
+ $$slots?: Slots;
8
+ }): Exports & {
9
+ $set?: any;
10
+ $on?: any;
11
+ };
12
+ z_$$bindings?: Bindings;
13
+ }
14
+ declare const BulkEditPanelStory: $$__sveltets_2_IsomorphicComponent<Record<string, never>, {
15
+ [evt: string]: CustomEvent<any>;
16
+ }, {}, {}, string>;
17
+ type BulkEditPanelStory = InstanceType<typeof BulkEditPanelStory>;
18
+ export default BulkEditPanelStory;
@@ -0,0 +1,8 @@
1
+ import CanvasElementsPanelStory from './CanvasElementsPanelStory.svelte';
2
+ const meta = {
3
+ title: 'Molecules/CanvasElementsPanel',
4
+ component: CanvasElementsPanelStory,
5
+ tags: ['autodocs']
6
+ };
7
+ export default meta;
8
+ export const Default = {};