@r2digisolutions/components 0.1.7 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (350) hide show
  1. package/dist/components/atoms/IconButton/IconButton.svelte +1 -1
  2. package/dist/components/atoms/MediaKindIcon/MediaKindIcon.stories.js +8 -0
  3. package/dist/components/atoms/MediaKindIcon/MediaKindIcon.svelte +122 -0
  4. package/dist/components/atoms/MediaKindIcon/MediaKindIcon.svelte.d.ts +11 -0
  5. package/dist/components/atoms/MediaKindIcon/MediaKindIconStory.svelte +12 -0
  6. package/dist/components/atoms/MediaKindIcon/MediaKindIconStory.svelte.d.ts +18 -0
  7. package/dist/components/atoms/PanKnob/PanKnob.stories.d.ts +9 -0
  8. package/dist/components/atoms/PanKnob/PanKnob.stories.js +8 -0
  9. package/dist/components/atoms/PanKnob/PanKnob.svelte +218 -0
  10. package/dist/components/atoms/PanKnob/PanKnob.svelte.d.ts +19 -0
  11. package/dist/components/atoms/PanKnob/PanKnobStory.svelte +15 -0
  12. package/dist/components/atoms/PanKnob/PanKnobStory.svelte.d.ts +3 -0
  13. package/dist/components/atoms/Playhead/Playhead.stories.js +8 -0
  14. package/dist/components/atoms/Playhead/Playhead.svelte +98 -0
  15. package/dist/components/atoms/Playhead/Playhead.svelte.d.ts +21 -0
  16. package/dist/components/atoms/Playhead/PlayheadStory.svelte +9 -0
  17. package/dist/components/atoms/Playhead/PlayheadStory.svelte.d.ts +18 -0
  18. package/dist/components/atoms/TimeRuler/TimeRuler.stories.js +8 -0
  19. package/dist/components/atoms/TimeRuler/TimeRuler.svelte +117 -0
  20. package/dist/components/atoms/TimeRuler/TimeRuler.svelte.d.ts +17 -0
  21. package/dist/components/atoms/TimeRuler/TimeRulerStory.svelte +7 -0
  22. package/dist/components/atoms/TimeRuler/TimeRulerStory.svelte.d.ts +18 -0
  23. package/dist/components/atoms/TimelineGrid/TimelineGrid.stories.js +8 -0
  24. package/dist/components/atoms/TimelineGrid/TimelineGrid.svelte +39 -0
  25. package/dist/components/atoms/TimelineGrid/TimelineGrid.svelte.d.ts +11 -0
  26. package/dist/components/atoms/TimelineGrid/TimelineGridStory.svelte +7 -0
  27. package/dist/components/atoms/TimelineGrid/TimelineGridStory.svelte.d.ts +18 -0
  28. package/dist/components/atoms/Tooltip/Tooltip.svelte +1 -1
  29. package/dist/components/atoms/TrimHandle/TrimHandle.stories.js +8 -0
  30. package/dist/components/atoms/TrimHandle/TrimHandle.svelte +63 -0
  31. package/dist/components/atoms/TrimHandle/TrimHandle.svelte.d.ts +12 -0
  32. package/dist/components/atoms/TrimHandle/TrimHandleStory.svelte +11 -0
  33. package/dist/components/atoms/TrimHandle/TrimHandleStory.svelte.d.ts +18 -0
  34. package/dist/components/molecules/AiAssistPanel/AiAssistPanel.stories.d.ts +9 -0
  35. package/dist/components/molecules/AiAssistPanel/AiAssistPanel.stories.js +8 -0
  36. package/dist/components/molecules/AiAssistPanel/AiAssistPanel.svelte +102 -0
  37. package/dist/components/molecules/AiAssistPanel/AiAssistPanel.svelte.d.ts +20 -0
  38. package/dist/components/molecules/AiAssistPanel/AiAssistPanelStory.svelte +34 -0
  39. package/dist/components/molecules/AiAssistPanel/AiAssistPanelStory.svelte.d.ts +3 -0
  40. package/dist/components/molecules/BulkActionBar/BulkActionBar.svelte +97 -61
  41. package/dist/components/molecules/BulkActionBar/BulkActionBar.svelte.d.ts +2 -0
  42. package/dist/components/molecules/BulkEditPanel/BulkEditPanel.stories.js +8 -0
  43. package/dist/components/molecules/BulkEditPanel/BulkEditPanel.svelte +117 -0
  44. package/dist/components/molecules/BulkEditPanel/BulkEditPanel.svelte.d.ts +23 -0
  45. package/dist/components/molecules/BulkEditPanel/BulkEditPanelStory.svelte +18 -0
  46. package/dist/components/molecules/BulkEditPanel/BulkEditPanelStory.svelte.d.ts +18 -0
  47. package/dist/components/molecules/CanvasElementsPanel/CanvasElementsPanel.stories.js +8 -0
  48. package/dist/components/molecules/CanvasElementsPanel/CanvasElementsPanel.svelte +858 -0
  49. package/dist/components/molecules/CanvasElementsPanel/CanvasElementsPanel.svelte.d.ts +43 -0
  50. package/dist/components/molecules/CanvasElementsPanel/CanvasElementsPanelStory.svelte +7 -0
  51. package/dist/components/molecules/CanvasElementsPanel/CanvasElementsPanelStory.svelte.d.ts +18 -0
  52. package/dist/components/molecules/CanvasInspector/CanvasInspector.stories.d.ts +9 -0
  53. package/dist/components/molecules/CanvasInspector/CanvasInspector.stories.js +8 -0
  54. package/dist/components/molecules/CanvasInspector/CanvasInspector.svelte +1140 -0
  55. package/dist/components/molecules/CanvasInspector/CanvasInspector.svelte.d.ts +28 -0
  56. package/dist/components/molecules/CanvasInspector/CanvasInspectorStory.svelte +20 -0
  57. package/dist/components/molecules/CanvasInspector/CanvasInspectorStory.svelte.d.ts +3 -0
  58. package/dist/components/molecules/ColorPicker/ColorPicker.svelte +46 -5
  59. package/dist/components/molecules/ColorPicker/ColorPicker.svelte.d.ts +2 -0
  60. package/dist/components/molecules/ColumnVisibilityMenu/ColumnVisibilityMenu.stories.d.ts +9 -0
  61. package/dist/components/molecules/ColumnVisibilityMenu/ColumnVisibilityMenu.stories.js +8 -0
  62. package/dist/components/molecules/ColumnVisibilityMenu/ColumnVisibilityMenu.svelte +108 -0
  63. package/dist/components/molecules/ColumnVisibilityMenu/ColumnVisibilityMenu.svelte.d.ts +18 -0
  64. package/dist/components/molecules/ColumnVisibilityMenu/ColumnVisibilityMenuStory.svelte +15 -0
  65. package/dist/components/molecules/ColumnVisibilityMenu/ColumnVisibilityMenuStory.svelte.d.ts +3 -0
  66. package/dist/components/molecules/ConflictResolver/ConflictResolver.stories.js +8 -0
  67. package/dist/components/molecules/ConflictResolver/ConflictResolver.svelte +73 -0
  68. package/dist/components/molecules/ConflictResolver/ConflictResolver.svelte.d.ts +16 -0
  69. package/dist/components/molecules/ConflictResolver/ConflictResolverStory.svelte +11 -0
  70. package/dist/components/molecules/ConflictResolver/ConflictResolverStory.svelte.d.ts +18 -0
  71. package/dist/components/molecules/ContextMenu/ContextMenu.svelte +237 -66
  72. package/dist/components/molecules/ContextMenu/ContextMenu.svelte.d.ts +9 -0
  73. package/dist/components/molecules/ExpressionEditor/ExpressionEditor.stories.d.ts +9 -0
  74. package/dist/components/molecules/ExpressionEditor/ExpressionEditor.stories.js +8 -0
  75. package/dist/components/molecules/ExpressionEditor/ExpressionEditor.svelte +56 -0
  76. package/dist/components/molecules/ExpressionEditor/ExpressionEditor.svelte.d.ts +12 -0
  77. package/dist/components/molecules/ExpressionEditor/ExpressionEditorStory.svelte +12 -0
  78. package/dist/components/molecules/ExpressionEditor/ExpressionEditorStory.svelte.d.ts +3 -0
  79. package/dist/components/molecules/FilterList/FilterList.stories.d.ts +9 -0
  80. package/dist/components/molecules/FilterList/FilterList.stories.js +8 -0
  81. package/dist/components/molecules/FilterList/FilterList.svelte +101 -0
  82. package/dist/components/molecules/FilterList/FilterList.svelte.d.ts +18 -0
  83. package/dist/components/molecules/FilterList/FilterListStory.svelte +31 -0
  84. package/dist/components/molecules/FilterList/FilterListStory.svelte.d.ts +3 -0
  85. package/dist/components/molecules/MediaAssetBrowser/MediaAssetBrowser.stories.d.ts +9 -0
  86. package/dist/components/molecules/MediaAssetBrowser/MediaAssetBrowser.stories.js +8 -0
  87. package/dist/components/molecules/MediaAssetBrowser/MediaAssetBrowser.svelte +109 -0
  88. package/dist/components/molecules/MediaAssetBrowser/MediaAssetBrowser.svelte.d.ts +20 -0
  89. package/dist/components/molecules/MediaAssetBrowser/MediaAssetBrowserStory.svelte +18 -0
  90. package/dist/components/molecules/MediaAssetBrowser/MediaAssetBrowserStory.svelte.d.ts +3 -0
  91. package/dist/components/molecules/MediaAssetCard/MediaAssetCard.stories.js +8 -0
  92. package/dist/components/molecules/MediaAssetCard/MediaAssetCard.svelte +50 -0
  93. package/dist/components/molecules/MediaAssetCard/MediaAssetCard.svelte.d.ts +11 -0
  94. package/dist/components/molecules/MediaAssetCard/MediaAssetCardStory.svelte +13 -0
  95. package/dist/components/molecules/MediaAssetCard/MediaAssetCardStory.svelte.d.ts +18 -0
  96. package/dist/components/molecules/MediaLayerItem/MediaLayerItem.stories.js +8 -0
  97. package/dist/components/molecules/MediaLayerItem/MediaLayerItem.svelte +380 -0
  98. package/dist/components/molecules/MediaLayerItem/MediaLayerItem.svelte.d.ts +33 -0
  99. package/dist/components/molecules/MediaLayerItem/MediaLayerItemStory.svelte +14 -0
  100. package/dist/components/molecules/MediaLayerItem/MediaLayerItemStory.svelte.d.ts +18 -0
  101. package/dist/components/molecules/MediaLayerList/MediaLayerList.stories.d.ts +9 -0
  102. package/dist/components/molecules/MediaLayerList/MediaLayerList.stories.js +8 -0
  103. package/dist/components/molecules/MediaLayerList/MediaLayerList.svelte +399 -0
  104. package/dist/components/molecules/MediaLayerList/MediaLayerList.svelte.d.ts +37 -0
  105. package/dist/components/molecules/MediaLayerList/MediaLayerListStory.svelte +24 -0
  106. package/dist/components/molecules/MediaLayerList/MediaLayerListStory.svelte.d.ts +3 -0
  107. package/dist/components/molecules/MediaStage/MediaStage.stories.d.ts +9 -0
  108. package/dist/components/molecules/MediaStage/MediaStage.stories.js +8 -0
  109. package/dist/components/molecules/MediaStage/MediaStage.svelte +1498 -0
  110. package/dist/components/molecules/MediaStage/MediaStage.svelte.d.ts +45 -0
  111. package/dist/components/molecules/MediaStage/MediaStageStory.svelte +35 -0
  112. package/dist/components/molecules/MediaStage/MediaStageStory.svelte.d.ts +3 -0
  113. package/dist/components/molecules/MediaTimeline/MediaTimeline.stories.d.ts +9 -0
  114. package/dist/components/molecules/MediaTimeline/MediaTimeline.stories.js +8 -0
  115. package/dist/components/molecules/MediaTimeline/MediaTimeline.svelte +441 -0
  116. package/dist/components/molecules/MediaTimeline/MediaTimeline.svelte.d.ts +39 -0
  117. package/dist/components/molecules/MediaTimeline/MediaTimelineStory.svelte +20 -0
  118. package/dist/components/molecules/MediaTimeline/MediaTimelineStory.svelte.d.ts +3 -0
  119. package/dist/components/molecules/MixerChannel/MixerChannel.stories.d.ts +9 -0
  120. package/dist/components/molecules/MixerChannel/MixerChannel.stories.js +8 -0
  121. package/dist/components/molecules/MixerChannel/MixerChannel.svelte +92 -0
  122. package/dist/components/molecules/MixerChannel/MixerChannel.svelte.d.ts +11 -0
  123. package/dist/components/molecules/MixerChannel/MixerChannelStory.svelte +13 -0
  124. package/dist/components/molecules/MixerChannel/MixerChannelStory.svelte.d.ts +3 -0
  125. package/dist/components/molecules/NodeGraph/GraphBlueprintNode.svelte +454 -0
  126. package/dist/components/molecules/NodeGraph/GraphBlueprintNode.svelte.d.ts +8 -0
  127. package/dist/components/molecules/NodeGraph/GraphFlowBridge.svelte +26 -0
  128. package/dist/components/molecules/NodeGraph/GraphFlowBridge.svelte.d.ts +22 -0
  129. package/dist/components/molecules/NodeGraph/NodeGraph.stories.d.ts +12 -0
  130. package/dist/components/molecules/NodeGraph/NodeGraph.stories.js +9 -0
  131. package/dist/components/molecules/NodeGraph/NodeGraph.svelte +1409 -0
  132. package/dist/components/molecules/NodeGraph/NodeGraph.svelte.d.ts +33 -0
  133. package/dist/components/molecules/NodeGraph/NodeGraphStory.svelte +90 -0
  134. package/dist/components/molecules/NodeGraph/NodeGraphStory.svelte.d.ts +3 -0
  135. package/dist/components/molecules/NodePalette/NodePalette.stories.js +8 -0
  136. package/dist/components/molecules/NodePalette/NodePalette.svelte +86 -0
  137. package/dist/components/molecules/NodePalette/NodePalette.svelte.d.ts +11 -0
  138. package/dist/components/molecules/NodePalette/NodePaletteStory.svelte +11 -0
  139. package/dist/components/molecules/NodePalette/NodePaletteStory.svelte.d.ts +18 -0
  140. package/dist/components/molecules/PdfViewer/PdfViewer.svelte.d.ts +1 -1
  141. package/dist/components/molecules/Poll/Poll.stories.d.ts +1 -1
  142. package/dist/components/molecules/ProgramMonitor/ProgramMonitor.stories.js +8 -0
  143. package/dist/components/molecules/ProgramMonitor/ProgramMonitor.svelte +794 -0
  144. package/dist/components/molecules/ProgramMonitor/ProgramMonitor.svelte.d.ts +25 -0
  145. package/dist/components/molecules/ProgramMonitor/ProgramMonitorStory.svelte +16 -0
  146. package/dist/components/molecules/ProgramMonitor/ProgramMonitorStory.svelte.d.ts +18 -0
  147. package/dist/components/molecules/PropertyField/PropertyField.svelte +57 -3
  148. package/dist/components/molecules/PropertyField/PropertyField.svelte.d.ts +10 -0
  149. package/dist/components/molecules/PropertyField/PropertyFieldStory.svelte +21 -0
  150. package/dist/components/molecules/PropertyGroup/PropertyGroup.svelte +1 -1
  151. package/dist/components/molecules/QueryBuilder/QueryBuilder.stories.d.ts +9 -0
  152. package/dist/components/molecules/QueryBuilder/QueryBuilder.stories.js +8 -0
  153. package/dist/components/molecules/QueryBuilder/QueryBuilder.svelte +52 -0
  154. package/dist/components/molecules/QueryBuilder/QueryBuilder.svelte.d.ts +18 -0
  155. package/dist/components/molecules/QueryBuilder/QueryBuilderStory.svelte +62 -0
  156. package/dist/components/molecules/QueryBuilder/QueryBuilderStory.svelte.d.ts +3 -0
  157. package/dist/components/molecules/RelationPicker/RelationPicker.stories.d.ts +9 -0
  158. package/dist/components/molecules/RelationPicker/RelationPicker.stories.js +8 -0
  159. package/dist/components/molecules/RelationPicker/RelationPicker.svelte +180 -0
  160. package/dist/components/molecules/RelationPicker/RelationPicker.svelte.d.ts +24 -0
  161. package/dist/components/molecules/RelationPicker/RelationPickerStory.svelte +16 -0
  162. package/dist/components/molecules/RelationPicker/RelationPickerStory.svelte.d.ts +3 -0
  163. package/dist/components/molecules/SchemaFieldBuilder/SchemaFieldBuilder.stories.d.ts +9 -0
  164. package/dist/components/molecules/SchemaFieldBuilder/SchemaFieldBuilder.stories.js +8 -0
  165. package/dist/components/molecules/SchemaFieldBuilder/SchemaFieldBuilder.svelte +154 -0
  166. package/dist/components/molecules/SchemaFieldBuilder/SchemaFieldBuilder.svelte.d.ts +12 -0
  167. package/dist/components/molecules/SchemaFieldBuilder/SchemaFieldBuilderStory.svelte +16 -0
  168. package/dist/components/molecules/SchemaFieldBuilder/SchemaFieldBuilderStory.svelte.d.ts +3 -0
  169. package/dist/components/molecules/SecretField/SecretField.stories.d.ts +9 -0
  170. package/dist/components/molecules/SecretField/SecretField.stories.js +8 -0
  171. package/dist/components/molecules/SecretField/SecretField.svelte +58 -0
  172. package/dist/components/molecules/SecretField/SecretField.svelte.d.ts +15 -0
  173. package/dist/components/molecules/SecretField/SecretFieldStory.svelte +8 -0
  174. package/dist/components/molecules/SecretField/SecretFieldStory.svelte.d.ts +3 -0
  175. package/dist/components/molecules/SplitPane/SplitPane.svelte +99 -40
  176. package/dist/components/molecules/SplitPane/SplitPane.svelte.d.ts +10 -2
  177. package/dist/components/molecules/TableToolbar/TableToolbar.svelte.d.ts +1 -1
  178. package/dist/components/molecules/Terminal/Terminal.stories.js +20 -0
  179. package/dist/components/molecules/Terminal/Terminal.svelte +238 -0
  180. package/dist/components/molecules/Terminal/Terminal.svelte.d.ts +19 -0
  181. package/dist/components/molecules/Terminal/TerminalStory.svelte +47 -0
  182. package/dist/components/molecules/Terminal/TerminalStory.svelte.d.ts +6 -0
  183. package/dist/components/molecules/TimelineClip/TimelineClip.stories.js +8 -0
  184. package/dist/components/molecules/TimelineClip/TimelineClip.svelte +193 -0
  185. package/dist/components/molecules/TimelineClip/TimelineClip.svelte.d.ts +18 -0
  186. package/dist/components/molecules/TimelineClip/TimelineClipStory.svelte +18 -0
  187. package/dist/components/molecules/TimelineClip/TimelineClipStory.svelte.d.ts +18 -0
  188. package/dist/components/molecules/TimelineTrack/TimelineTrack.stories.js +8 -0
  189. package/dist/components/molecules/TimelineTrack/TimelineTrack.svelte +126 -0
  190. package/dist/components/molecules/TimelineTrack/TimelineTrack.svelte.d.ts +27 -0
  191. package/dist/components/molecules/TimelineTrack/TimelineTrackStory.svelte +35 -0
  192. package/dist/components/molecules/TimelineTrack/TimelineTrackStory.svelte.d.ts +18 -0
  193. package/dist/components/molecules/TraceWaterfall/TraceWaterfall.stories.js +8 -0
  194. package/dist/components/molecules/TraceWaterfall/TraceWaterfall.svelte +158 -0
  195. package/dist/components/molecules/TraceWaterfall/TraceWaterfall.svelte.d.ts +18 -0
  196. package/dist/components/molecules/TraceWaterfall/TraceWaterfallStory.svelte +55 -0
  197. package/dist/components/molecules/TraceWaterfall/TraceWaterfallStory.svelte.d.ts +18 -0
  198. package/dist/components/molecules/TrackHeader/TrackHeader.stories.d.ts +9 -0
  199. package/dist/components/molecules/TrackHeader/TrackHeader.stories.js +8 -0
  200. package/dist/components/molecules/TrackHeader/TrackHeader.svelte +54 -0
  201. package/dist/components/molecules/TrackHeader/TrackHeader.svelte.d.ts +9 -0
  202. package/dist/components/molecules/TrackHeader/TrackHeaderStory.svelte +10 -0
  203. package/dist/components/molecules/TrackHeader/TrackHeaderStory.svelte.d.ts +3 -0
  204. package/dist/components/molecules/TransportControls/TransportControls.stories.d.ts +9 -0
  205. package/dist/components/molecules/TransportControls/TransportControls.stories.js +8 -0
  206. package/dist/components/molecules/TransportControls/TransportControls.svelte +135 -0
  207. package/dist/components/molecules/TransportControls/TransportControls.svelte.d.ts +24 -0
  208. package/dist/components/molecules/TransportControls/TransportControlsStory.svelte +40 -0
  209. package/dist/components/molecules/TransportControls/TransportControlsStory.svelte.d.ts +3 -0
  210. package/dist/components/molecules/VersionHistoryPanel/VersionHistoryPanel.stories.js +8 -0
  211. package/dist/components/molecules/VersionHistoryPanel/VersionHistoryPanel.svelte +117 -0
  212. package/dist/components/molecules/VersionHistoryPanel/VersionHistoryPanel.svelte.d.ts +20 -0
  213. package/dist/components/molecules/VersionHistoryPanel/VersionHistoryPanelStory.svelte +36 -0
  214. package/dist/components/molecules/VersionHistoryPanel/VersionHistoryPanelStory.svelte.d.ts +18 -0
  215. package/dist/components/molecules/VideoAnimationsPanel/VideoAnimationsPanel.stories.js +8 -0
  216. package/dist/components/molecules/VideoAnimationsPanel/VideoAnimationsPanel.svelte +213 -0
  217. package/dist/components/molecules/VideoAnimationsPanel/VideoAnimationsPanel.svelte.d.ts +22 -0
  218. package/dist/components/molecules/VideoAnimationsPanel/VideoAnimationsPanelStory.svelte +7 -0
  219. package/dist/components/molecules/VideoAnimationsPanel/VideoAnimationsPanelStory.svelte.d.ts +18 -0
  220. package/dist/components/molecules/VideoComponentsPanel/VideoComponentsPanel.stories.js +8 -0
  221. package/dist/components/molecules/VideoComponentsPanel/VideoComponentsPanel.svelte +524 -0
  222. package/dist/components/molecules/VideoComponentsPanel/VideoComponentsPanel.svelte.d.ts +32 -0
  223. package/dist/components/molecules/VideoComponentsPanel/VideoComponentsPanelStory.svelte +7 -0
  224. package/dist/components/molecules/VideoComponentsPanel/VideoComponentsPanelStory.svelte.d.ts +18 -0
  225. package/dist/components/molecules/VideoPlayer/VideoPlayer.stories.d.ts +1 -1
  226. package/dist/components/molecules/VideoTrackHeader/VideoTrackHeader.stories.d.ts +9 -0
  227. package/dist/components/molecules/VideoTrackHeader/VideoTrackHeader.stories.js +8 -0
  228. package/dist/components/molecules/VideoTrackHeader/VideoTrackHeader.svelte +112 -0
  229. package/dist/components/molecules/VideoTrackHeader/VideoTrackHeader.svelte.d.ts +15 -0
  230. package/dist/components/molecules/VideoTrackHeader/VideoTrackHeaderStory.svelte +10 -0
  231. package/dist/components/molecules/VideoTrackHeader/VideoTrackHeaderStory.svelte.d.ts +3 -0
  232. package/dist/components/molecules/VideoTransitionsPanel/VideoTransitionsPanel.stories.js +8 -0
  233. package/dist/components/molecules/VideoTransitionsPanel/VideoTransitionsPanel.svelte +113 -0
  234. package/dist/components/molecules/VideoTransitionsPanel/VideoTransitionsPanel.svelte.d.ts +18 -0
  235. package/dist/components/molecules/VideoTransitionsPanel/VideoTransitionsPanelStory.svelte +7 -0
  236. package/dist/components/molecules/VideoTransitionsPanel/VideoTransitionsPanelStory.svelte.d.ts +18 -0
  237. package/dist/components/molecules/WaveformRegion/WaveformRegion.stories.js +8 -0
  238. package/dist/components/molecules/WaveformRegion/WaveformRegion.svelte +82 -0
  239. package/dist/components/molecules/WaveformRegion/WaveformRegion.svelte.d.ts +13 -0
  240. package/dist/components/molecules/WaveformRegion/WaveformRegionStory.svelte +17 -0
  241. package/dist/components/molecules/WaveformRegion/WaveformRegionStory.svelte.d.ts +18 -0
  242. package/dist/components/molecules/WidgetCanvas/WidgetCanvas.svelte +13 -4
  243. package/dist/components/molecules/WidgetCanvas/WidgetCanvas.svelte.d.ts +3 -1
  244. package/dist/components/molecules/WidgetCanvas/widgetCanvasContext.d.ts +2 -0
  245. package/dist/components/molecules/WidgetFrame/WidgetFrame.svelte +206 -37
  246. package/dist/components/molecules/WidgetFrame/WidgetFrame.svelte.d.ts +31 -0
  247. package/dist/components/organisms/AudioEditor/AudioEditor.stories.d.ts +12 -0
  248. package/dist/components/organisms/AudioEditor/AudioEditor.stories.js +9 -0
  249. package/dist/components/organisms/AudioEditor/AudioEditor.svelte +324 -0
  250. package/dist/components/organisms/AudioEditor/AudioEditor.svelte.d.ts +13 -0
  251. package/dist/components/organisms/AudioEditor/AudioEditorStory.svelte +10 -0
  252. package/dist/components/organisms/AudioEditor/AudioEditorStory.svelte.d.ts +3 -0
  253. package/dist/components/organisms/BlogEditor/BlogEditor.stories.d.ts +12 -0
  254. package/dist/components/organisms/BlogEditor/BlogEditor.stories.js +9 -0
  255. package/dist/components/organisms/BlogEditor/BlogEditor.svelte +1208 -0
  256. package/dist/components/organisms/BlogEditor/BlogEditor.svelte.d.ts +16 -0
  257. package/dist/components/organisms/BlogEditor/BlogEditorStory.svelte +144 -0
  258. package/dist/components/organisms/BlogEditor/BlogEditorStory.svelte.d.ts +3 -0
  259. package/dist/components/organisms/BlogEditor/DemoBlogCard.svelte +28 -0
  260. package/dist/components/organisms/BlogEditor/DemoBlogCard.svelte.d.ts +10 -0
  261. package/dist/components/organisms/BlogEditor/DemoBlogStats.svelte +34 -0
  262. package/dist/components/organisms/BlogEditor/DemoBlogStats.svelte.d.ts +11 -0
  263. package/dist/components/organisms/BlogEditor/DemoBlogWidget.svelte +13 -0
  264. package/dist/components/organisms/BlogEditor/DemoBlogWidget.svelte.d.ts +8 -0
  265. package/dist/components/organisms/BlogRenderer/BlogRenderer.stories.js +8 -0
  266. package/dist/components/organisms/BlogRenderer/BlogRenderer.svelte +469 -0
  267. package/dist/components/organisms/BlogRenderer/BlogRenderer.svelte.d.ts +14 -0
  268. package/dist/components/organisms/BlogRenderer/BlogRendererStory.svelte +20 -0
  269. package/dist/components/organisms/BlogRenderer/BlogRendererStory.svelte.d.ts +18 -0
  270. package/dist/components/organisms/BlueprintEditor/BlueprintEditor.stories.d.ts +12 -0
  271. package/dist/components/organisms/BlueprintEditor/BlueprintEditor.stories.js +9 -0
  272. package/dist/components/organisms/BlueprintEditor/BlueprintEditor.svelte +1012 -0
  273. package/dist/components/organisms/BlueprintEditor/BlueprintEditor.svelte.d.ts +16 -0
  274. package/dist/components/organisms/BlueprintEditor/BlueprintEditorStory.svelte +76 -0
  275. package/dist/components/organisms/BlueprintEditor/BlueprintEditorStory.svelte.d.ts +3 -0
  276. package/dist/components/organisms/CanvasEditor/CanvasEditor.stories.d.ts +12 -0
  277. package/dist/components/organisms/CanvasEditor/CanvasEditor.stories.js +9 -0
  278. package/dist/components/organisms/CanvasEditor/CanvasEditor.svelte +1680 -0
  279. package/dist/components/organisms/CanvasEditor/CanvasEditor.svelte.d.ts +18 -0
  280. package/dist/components/organisms/CanvasEditor/CanvasEditorStory.svelte +329 -0
  281. package/dist/components/organisms/CanvasEditor/CanvasEditorStory.svelte.d.ts +3 -0
  282. package/dist/components/organisms/DashboardBuilderPage/DashboardBuilderPage.svelte.d.ts +1 -1
  283. package/dist/components/organisms/DesktopShell/DesktopShell.svelte.d.ts +1 -1
  284. package/dist/components/organisms/EditorShell/EditorShell.svelte +162 -57
  285. package/dist/components/organisms/EditorShell/EditorShell.svelte.d.ts +21 -1
  286. package/dist/components/organisms/FileUploader/FileUploader.stories.d.ts +10 -0
  287. package/dist/components/organisms/FileUploader/FileUploader.stories.js +21 -0
  288. package/dist/components/organisms/FileUploader/FileUploader.svelte +127 -25
  289. package/dist/components/organisms/FileUploader/FileUploader.svelte.d.ts +20 -0
  290. package/dist/components/organisms/FileUploader/FileUploaderStory.svelte +7 -1
  291. package/dist/components/organisms/FileUploader/FileUploaderStory.svelte.d.ts +3 -0
  292. package/dist/components/organisms/ImportWizard/ImportWizard.stories.js +8 -0
  293. package/dist/components/organisms/ImportWizard/ImportWizard.svelte +209 -0
  294. package/dist/components/organisms/ImportWizard/ImportWizard.svelte.d.ts +22 -0
  295. package/dist/components/organisms/ImportWizard/ImportWizardStory.svelte +16 -0
  296. package/dist/components/organisms/ImportWizard/ImportWizardStory.svelte.d.ts +18 -0
  297. package/dist/components/organisms/VideoEditor/VideoEditor.stories.d.ts +12 -0
  298. package/dist/components/organisms/VideoEditor/VideoEditor.stories.js +9 -0
  299. package/dist/components/organisms/VideoEditor/VideoEditor.svelte +1687 -0
  300. package/dist/components/organisms/VideoEditor/VideoEditor.svelte.d.ts +14 -0
  301. package/dist/components/organisms/VideoEditor/VideoEditorStory.svelte +11 -0
  302. package/dist/components/organisms/VideoEditor/VideoEditorStory.svelte.d.ts +3 -0
  303. package/dist/components/templates/AudioEditorTemplate/AudioEditorTemplate.stories.d.ts +12 -0
  304. package/dist/components/templates/AudioEditorTemplate/AudioEditorTemplate.stories.js +9 -0
  305. package/dist/components/templates/AudioEditorTemplate/AudioEditorTemplate.svelte +22 -0
  306. package/dist/components/templates/AudioEditorTemplate/AudioEditorTemplate.svelte.d.ts +13 -0
  307. package/dist/components/templates/AudioEditorTemplate/AudioEditorTemplateStory.svelte +8 -0
  308. package/dist/components/templates/AudioEditorTemplate/AudioEditorTemplateStory.svelte.d.ts +3 -0
  309. package/dist/components/templates/CanvasEditorTemplate/CanvasEditorTemplate.stories.d.ts +12 -0
  310. package/dist/components/templates/CanvasEditorTemplate/CanvasEditorTemplate.stories.js +9 -0
  311. package/dist/components/templates/CanvasEditorTemplate/CanvasEditorTemplate.svelte +32 -0
  312. package/dist/components/templates/CanvasEditorTemplate/CanvasEditorTemplate.svelte.d.ts +17 -0
  313. package/dist/components/templates/CanvasEditorTemplate/CanvasEditorTemplateStory.svelte +21 -0
  314. package/dist/components/templates/CanvasEditorTemplate/CanvasEditorTemplateStory.svelte.d.ts +3 -0
  315. package/dist/components/templates/VideoEditorTemplate/VideoEditorTemplate.stories.d.ts +12 -0
  316. package/dist/components/templates/VideoEditorTemplate/VideoEditorTemplate.stories.js +9 -0
  317. package/dist/components/templates/VideoEditorTemplate/VideoEditorTemplate.svelte +22 -0
  318. package/dist/components/templates/VideoEditorTemplate/VideoEditorTemplate.svelte.d.ts +13 -0
  319. package/dist/components/templates/VideoEditorTemplate/VideoEditorTemplateStory.svelte +8 -0
  320. package/dist/components/templates/VideoEditorTemplate/VideoEditorTemplateStory.svelte.d.ts +3 -0
  321. package/dist/index.d.ts +91 -1
  322. package/dist/index.js +64 -0
  323. package/dist/types/xyflow-svelte.d.ts +62 -0
  324. package/dist/utils/audioProject.d.ts +19 -0
  325. package/dist/utils/audioProject.js +70 -0
  326. package/dist/utils/blogDocument.d.ts +175 -0
  327. package/dist/utils/blogDocument.js +220 -0
  328. package/dist/utils/blueprintRuntime.d.ts +34 -0
  329. package/dist/utils/blueprintRuntime.js +289 -0
  330. package/dist/utils/canvasDocument.d.ts +239 -0
  331. package/dist/utils/canvasDocument.js +443 -0
  332. package/dist/utils/canvasExport.d.ts +10 -0
  333. package/dist/utils/canvasExport.js +469 -0
  334. package/dist/utils/canvasHierarchy.d.ts +189 -0
  335. package/dist/utils/canvasHierarchy.js +674 -0
  336. package/dist/utils/canvasHistory.d.ts +19 -0
  337. package/dist/utils/canvasHistory.js +48 -0
  338. package/dist/utils/canvasWidget.d.ts +81 -0
  339. package/dist/utils/canvasWidget.js +597 -0
  340. package/dist/utils/mediaTime.d.ts +26 -0
  341. package/dist/utils/mediaTime.js +76 -0
  342. package/dist/utils/mediaTracks.d.ts +215 -0
  343. package/dist/utils/mediaTracks.js +798 -0
  344. package/dist/utils/nodeGraph.d.ts +354 -0
  345. package/dist/utils/nodeGraph.js +1453 -0
  346. package/dist/utils/queryBridge.d.ts +18 -0
  347. package/dist/utils/queryBridge.js +118 -0
  348. package/dist/utils/videoSequence.d.ts +13 -0
  349. package/dist/utils/videoSequence.js +94 -0
  350. package/package.json +5 -2
@@ -0,0 +1,289 @@
1
+ /**
2
+ * Lightweight Blueprint graph simulator — follows exec wires, resolves data pins
3
+ * (literals + pure nodes), and emits Print String lines. Not a full UE VM.
4
+ */
5
+ import { defaultValueForPinType, isExecPort } from './nodeGraph.js';
6
+ function logId() {
7
+ return `log-${Date.now().toString(36)}-${Math.random().toString(36).slice(2, 7)}`;
8
+ }
9
+ function pushLog(logs, onLog, level, text, nodeId) {
10
+ const entry = { id: logId(), level, text, nodeId, at: Date.now() };
11
+ logs.push(entry);
12
+ onLog?.(entry);
13
+ return entry;
14
+ }
15
+ function throwIfAborted(signal) {
16
+ if (signal?.aborted) {
17
+ const err = new Error('aborted');
18
+ err.name = 'AbortError';
19
+ throw err;
20
+ }
21
+ }
22
+ function sleep(ms, signal) {
23
+ return new Promise((resolve, reject) => {
24
+ if (signal?.aborted) {
25
+ reject(Object.assign(new Error('aborted'), { name: 'AbortError' }));
26
+ return;
27
+ }
28
+ const t = setTimeout(() => {
29
+ signal?.removeEventListener('abort', onAbort);
30
+ resolve();
31
+ }, ms);
32
+ const onAbort = () => {
33
+ clearTimeout(t);
34
+ reject(Object.assign(new Error('aborted'), { name: 'AbortError' }));
35
+ };
36
+ signal?.addEventListener('abort', onAbort, { once: true });
37
+ });
38
+ }
39
+ function findPort(node, handle, side) {
40
+ const list = side === 'input' ? (node.inputs ?? []) : (node.outputs ?? []);
41
+ if (!handle)
42
+ return list[0];
43
+ return list.find((p) => p.id === handle);
44
+ }
45
+ function outgoing(edges, nodeId, sourceHandle) {
46
+ return edges.find((e) => e.source === nodeId &&
47
+ (sourceHandle == null || e.sourceHandle === sourceHandle || (!e.sourceHandle && !sourceHandle)));
48
+ }
49
+ function incomingDataEdge(edges, nodeId, targetHandle) {
50
+ return edges.find((e) => e.target === nodeId && e.targetHandle === targetHandle);
51
+ }
52
+ function stripLiteralQuotes(raw) {
53
+ const t = raw.trim();
54
+ if ((t.startsWith('"') && t.endsWith('"')) ||
55
+ (t.startsWith("'") && t.endsWith("'"))) {
56
+ return t.slice(1, -1);
57
+ }
58
+ return t;
59
+ }
60
+ function coerceBool(v) {
61
+ if (typeof v === 'boolean')
62
+ return v;
63
+ if (typeof v === 'number')
64
+ return v !== 0;
65
+ if (typeof v === 'string') {
66
+ const s = v.trim().toLowerCase();
67
+ if (s === 'true' || s === '1' || s === 'yes')
68
+ return true;
69
+ if (s === 'false' || s === '0' || s === 'no' || s === '')
70
+ return false;
71
+ return Boolean(s);
72
+ }
73
+ return Boolean(v);
74
+ }
75
+ function coerceNumber(v, fallback = 0) {
76
+ if (typeof v === 'number' && Number.isFinite(v))
77
+ return v;
78
+ if (typeof v === 'string') {
79
+ const n = parseFloat(v);
80
+ return Number.isFinite(n) ? n : fallback;
81
+ }
82
+ return fallback;
83
+ }
84
+ function coerceString(v) {
85
+ if (v == null)
86
+ return '';
87
+ return String(v);
88
+ }
89
+ function initVars(variables) {
90
+ const map = new Map();
91
+ for (const v of variables ?? []) {
92
+ map.set(v.id, v.defaultValue !== undefined ? v.defaultValue : defaultValueForPinType(v.dataType));
93
+ }
94
+ return map;
95
+ }
96
+ function varsToArray(variables, state) {
97
+ return (variables ?? []).map((v) => ({
98
+ ...v,
99
+ defaultValue: state.has(v.id) ? state.get(v.id) : v.defaultValue
100
+ }));
101
+ }
102
+ /**
103
+ * Resolve a data output of a (usually pure) node.
104
+ */
105
+ function evaluateNodeOutput(doc, node, outputId, vars, stack) {
106
+ if (stack.has(node.id))
107
+ return undefined;
108
+ stack.add(node.id);
109
+ try {
110
+ switch (node.type) {
111
+ case 'var_get': {
112
+ const vid = String(node.data?.variableId ?? '');
113
+ return vars.has(vid) ? vars.get(vid) : undefined;
114
+ }
115
+ case 'make_string': {
116
+ const label = String(node.data?.label ?? '');
117
+ return stripLiteralQuotes(label);
118
+ }
119
+ case 'var_set': {
120
+ const vid = String(node.data?.variableId ?? '');
121
+ return vars.has(vid) ? vars.get(vid) : undefined;
122
+ }
123
+ case 'event_tick': {
124
+ if (outputId === 'delta')
125
+ return 0.016;
126
+ return undefined;
127
+ }
128
+ default: {
129
+ const out = findPort(node, outputId, 'output');
130
+ if (out && !isExecPort(out) && out.value !== undefined)
131
+ return out.value;
132
+ return undefined;
133
+ }
134
+ }
135
+ }
136
+ finally {
137
+ stack.delete(node.id);
138
+ }
139
+ }
140
+ function resolveInputValue(doc, node, port, vars, stack) {
141
+ const edge = incomingDataEdge(doc.edges, node.id, port.id);
142
+ if (edge) {
143
+ const src = doc.nodes.find((n) => n.id === edge.source);
144
+ if (!src)
145
+ return port.value ?? defaultForPort(port);
146
+ return evaluateNodeOutput(doc, src, edge.sourceHandle, vars, stack);
147
+ }
148
+ if (port.value !== undefined)
149
+ return port.value;
150
+ return defaultForPort(port);
151
+ }
152
+ function defaultForPort(port) {
153
+ const dt = (port.dataType ?? 'any');
154
+ return defaultValueForPinType(dt);
155
+ }
156
+ async function followExec(doc, fromNodeId, fromHandle, ctx) {
157
+ throwIfAborted(ctx.signal);
158
+ const edge = outgoing(doc.edges, fromNodeId, fromHandle);
159
+ if (!edge)
160
+ return;
161
+ const node = doc.nodes.find((n) => n.id === edge.target);
162
+ if (!node)
163
+ return;
164
+ await executeNode(doc, node, ctx);
165
+ }
166
+ async function executeNode(doc, node, ctx) {
167
+ throwIfAborted(ctx.signal);
168
+ const stack = new Set();
169
+ const label = String(node.data?.label ?? node.type);
170
+ switch (node.type) {
171
+ case 'event_begin':
172
+ case 'event_tick':
173
+ case 'trigger': {
174
+ pushLog(ctx.logs, ctx.onLog, 'system', `→ ${label}`, node.id);
175
+ await followExec(doc, node.id, 'exec', ctx);
176
+ return;
177
+ }
178
+ case 'branch': {
179
+ const condPort = findPort(node, 'condition', 'input');
180
+ const cond = condPort
181
+ ? coerceBool(resolveInputValue(doc, node, condPort, ctx.vars, stack))
182
+ : false;
183
+ pushLog(ctx.logs, ctx.onLog, 'system', `Branch → ${cond ? 'True' : 'False'}`, node.id);
184
+ await followExec(doc, node.id, cond ? 'true' : 'false', ctx);
185
+ return;
186
+ }
187
+ case 'print_string': {
188
+ const strPort = findPort(node, 'in_string', 'input');
189
+ const durPort = findPort(node, 'duration', 'input');
190
+ const text = strPort
191
+ ? coerceString(resolveInputValue(doc, node, strPort, ctx.vars, stack))
192
+ : '';
193
+ const duration = durPort
194
+ ? coerceNumber(resolveInputValue(doc, node, durPort, ctx.vars, stack), 2)
195
+ : 2;
196
+ pushLog(ctx.logs, ctx.onLog, 'print', text.length ? text : '(empty string)', node.id);
197
+ if (duration > 0) {
198
+ pushLog(ctx.logs, ctx.onLog, 'system', `Print duration ${duration}s (display only)`, node.id);
199
+ }
200
+ await followExec(doc, node.id, 'exec', ctx);
201
+ return;
202
+ }
203
+ case 'delay_bp':
204
+ case 'delay': {
205
+ const durPort = findPort(node, 'duration', 'input');
206
+ const seconds = durPort
207
+ ? coerceNumber(resolveInputValue(doc, node, durPort, ctx.vars, stack), 0)
208
+ : 0;
209
+ const ms = Math.min(ctx.maxDelayMs, Math.max(0, seconds * 1000 * ctx.timeScale));
210
+ pushLog(ctx.logs, ctx.onLog, 'system', `Delay ${seconds}s…`, node.id);
211
+ await sleep(ms, ctx.signal);
212
+ throwIfAborted(ctx.signal);
213
+ pushLog(ctx.logs, ctx.onLog, 'system', 'Delay completed', node.id);
214
+ await followExec(doc, node.id, 'completed', ctx);
215
+ return;
216
+ }
217
+ case 'var_set': {
218
+ const vid = String(node.data?.variableId ?? '');
219
+ const valuePort = findPort(node, 'value', 'input');
220
+ const next = valuePort
221
+ ? resolveInputValue(doc, node, valuePort, ctx.vars, stack)
222
+ : undefined;
223
+ if (vid)
224
+ ctx.vars.set(vid, next);
225
+ const name = String(node.data?.variableName ?? vid);
226
+ pushLog(ctx.logs, ctx.onLog, 'system', `Set ${name} = ${String(next)}`, node.id);
227
+ await followExec(doc, node.id, 'exec', ctx);
228
+ return;
229
+ }
230
+ case 'return_node': {
231
+ pushLog(ctx.logs, ctx.onLog, 'system', 'Return', node.id);
232
+ return;
233
+ }
234
+ case 'action':
235
+ case 'construction_add': {
236
+ pushLog(ctx.logs, ctx.onLog, 'system', `Run ${label}`, node.id);
237
+ await followExec(doc, node.id, 'exec', ctx);
238
+ return;
239
+ }
240
+ default: {
241
+ // Generic: if it has an exec out named exec / Then, follow it.
242
+ const execOut = (node.outputs ?? []).find((p) => isExecPort(p) && p.id === 'exec') ??
243
+ (node.outputs ?? []).find((p) => isExecPort(p));
244
+ pushLog(ctx.logs, ctx.onLog, 'warn', `Unhandled node type "${node.type}"`, node.id);
245
+ if (execOut)
246
+ await followExec(doc, node.id, execOut.id, ctx);
247
+ }
248
+ }
249
+ }
250
+ /**
251
+ * Run the graph from Event BeginPlay (or `entryType`).
252
+ * Print String lines use level `print`; flow uses `system`.
253
+ */
254
+ export async function simulateBlueprint(doc, opts = {}) {
255
+ const logs = [];
256
+ const vars = initVars(doc.variables);
257
+ const entryType = opts.entryType ?? 'event_begin';
258
+ const timeScale = opts.timeScale ?? 1;
259
+ const maxDelayMs = opts.maxDelayMs ?? 10_000;
260
+ const entry = doc.graph.nodes.find((n) => n.type === entryType);
261
+ if (!entry) {
262
+ pushLog(logs, opts.onLog, 'error', `No entry node of type "${entryType}"`);
263
+ return { logs, variables: varsToArray(doc.variables, vars), aborted: false };
264
+ }
265
+ pushLog(logs, opts.onLog, 'system', '—— Simulate BeginPlay ——');
266
+ try {
267
+ await executeNode(doc.graph, entry, {
268
+ vars,
269
+ logs,
270
+ onLog: opts.onLog,
271
+ signal: opts.signal,
272
+ timeScale,
273
+ maxDelayMs,
274
+ variables: doc.variables
275
+ });
276
+ pushLog(logs, opts.onLog, 'system', '—— Finished ——');
277
+ return { logs, variables: varsToArray(doc.variables, vars), aborted: false };
278
+ }
279
+ catch (e) {
280
+ const aborted = e instanceof Error && e.name === 'AbortError';
281
+ if (aborted) {
282
+ pushLog(logs, opts.onLog, 'warn', '—— Stopped ——');
283
+ }
284
+ else {
285
+ pushLog(logs, opts.onLog, 'error', e instanceof Error ? e.message : 'Simulation failed');
286
+ }
287
+ return { logs, variables: varsToArray(doc.variables, vars), aborted };
288
+ }
289
+ }
@@ -0,0 +1,239 @@
1
+ export type CanvasLayerKind = 'image' | 'video' | 'audio' | 'text' | 'rect' | 'roundRect' | 'ellipse' | 'triangle' | 'star' | 'hexagon' | 'pentagon' | 'diamond' | 'heart' | 'line' | 'arrow' | 'path' | 'sticky' | 'canvasPanel' | 'overlay' | 'border' | 'hBox' | 'vBox' | 'sizeBox' | 'scaleBox' | 'group' | 'widget' | 'namedSlot' | 'scrollBox' | 'wrapBox' | 'uniformGrid';
2
+ export type CanvasObjectFit = 'cover' | 'contain' | 'fill';
3
+ export type CanvasTextAlign = 'left' | 'center' | 'right';
4
+ export type CanvasFontStyle = 'normal' | 'italic';
5
+ export type CanvasTextDecoration = 'none' | 'underline' | 'line-through';
6
+ export type CanvasAlign = 'left' | 'center-h' | 'right' | 'top' | 'center-v' | 'bottom' | 'center' | 'full';
7
+ /** Normalized point inside a layer rect (0–1). */
8
+ export interface CanvasPoint {
9
+ x: number;
10
+ y: number;
11
+ }
12
+ export interface CanvasLayerRect {
13
+ x: number;
14
+ y: number;
15
+ w: number;
16
+ h: number;
17
+ }
18
+ /** UMG-style anchors (0–1 normalized against parent). */
19
+ export interface CanvasAnchors {
20
+ minX: number;
21
+ minY: number;
22
+ maxX: number;
23
+ maxY: number;
24
+ }
25
+ /** UMG slot: anchors + offsets in px relative to anchored edges. */
26
+ export interface CanvasSlot {
27
+ anchors: CanvasAnchors;
28
+ offsets: {
29
+ left: number;
30
+ top: number;
31
+ right: number;
32
+ bottom: number;
33
+ };
34
+ padding?: {
35
+ left: number;
36
+ top: number;
37
+ right: number;
38
+ bottom: number;
39
+ };
40
+ sizeRule?: 'auto' | 'fill' | 'fixed';
41
+ alignment?: {
42
+ x: number;
43
+ y: number;
44
+ };
45
+ order?: number;
46
+ }
47
+ export interface CanvasExposedProp {
48
+ id: string;
49
+ targetLayerId: string;
50
+ field: string;
51
+ label: string;
52
+ /** true = editable on instances (eye open) */
53
+ exposed: boolean;
54
+ }
55
+ export interface CanvasWidgetDefinition {
56
+ id: string;
57
+ name: string;
58
+ width: number;
59
+ height: number;
60
+ background?: string;
61
+ layers: CanvasLayer[];
62
+ exposed: CanvasExposedProp[];
63
+ }
64
+ export interface CanvasLayer {
65
+ id: string;
66
+ kind: CanvasLayerKind;
67
+ name: string;
68
+ src?: string;
69
+ text?: string;
70
+ fill?: string;
71
+ stroke?: string;
72
+ strokeWidth?: number;
73
+ fontSize?: number;
74
+ fontWeight?: number | string;
75
+ fontFamily?: string;
76
+ fontStyle?: CanvasFontStyle;
77
+ textDecoration?: CanvasTextDecoration;
78
+ letterSpacing?: number;
79
+ lineHeight?: number;
80
+ textAlign?: CanvasTextAlign;
81
+ color?: string;
82
+ /** Text box background */
83
+ textBackground?: string;
84
+ objectFit?: CanvasObjectFit;
85
+ borderRadius?: number;
86
+ rotation?: number;
87
+ flipX?: boolean;
88
+ flipY?: boolean;
89
+ shadowBlur?: number;
90
+ shadowColor?: string;
91
+ blur?: number;
92
+ /** For `path`: normalized points (0–1) relative to rect. */
93
+ points?: CanvasPoint[];
94
+ /** For `path`: close the shape into a filled polygon. */
95
+ closed?: boolean;
96
+ /** Parent layer id; null/undefined = artboard root. */
97
+ parentId?: string | null;
98
+ /** UMG slot (preferred). When missing, derived from rect + top-left anchors. */
99
+ slot?: CanvasSlot;
100
+ clipChildren?: boolean;
101
+ /** Gap for hBox / vBox / wrapBox / uniformGrid */
102
+ gap?: number;
103
+ /** namedSlot: public slot name exposed on the User Widget */
104
+ slotName?: string;
105
+ /** Child of a widget instance: which named slot to fill */
106
+ fillSlot?: string;
107
+ /** uniformGrid column count */
108
+ columns?: number;
109
+ /** kind === 'widget' */
110
+ definitionId?: string;
111
+ /** Exposed prop overrides on widget instances */
112
+ overrides?: Record<string, unknown>;
113
+ rect: CanvasLayerRect;
114
+ zIndex: number;
115
+ opacity: number;
116
+ visible: boolean;
117
+ locked: boolean;
118
+ }
119
+ export type CanvasGuideOrientation = 'horizontal' | 'vertical';
120
+ export interface CanvasGuide {
121
+ id: string;
122
+ orientation: CanvasGuideOrientation;
123
+ /** X for vertical, Y for horizontal (document px). */
124
+ position: number;
125
+ locked?: boolean;
126
+ }
127
+ export interface CanvasDocument {
128
+ version: 1 | 2;
129
+ width: number;
130
+ height: number;
131
+ background: string;
132
+ layers: CanvasLayer[];
133
+ guides?: CanvasGuide[];
134
+ /** When true, all guides are locked. */
135
+ guidesLocked?: boolean;
136
+ /** Local User Widget library (v2). */
137
+ widgets?: CanvasWidgetDefinition[];
138
+ }
139
+ /** Top-left point anchors; offsets encode x/y/w/h without needing parent size. */
140
+ export declare function defaultSlotFromRect(rect: CanvasLayerRect, anchors?: CanvasAnchors): CanvasSlot;
141
+ /** For top-left point anchors, offsets.left/top = x/y and right/bottom = -(x+w)/-(y+h) when parent size unknown.
142
+ * Prefer slotFromLocalRect from canvasHierarchy when parent size is known. */
143
+ export declare function rectFromSlot(slot: CanvasSlot, parentSize: {
144
+ width: number;
145
+ height: number;
146
+ }): CanvasLayerRect;
147
+ export declare function emptyCanvasDocument(partial?: Partial<Omit<CanvasDocument, 'version' | 'layers'>> & {
148
+ layers?: CanvasLayer[];
149
+ widgets?: CanvasWidgetDefinition[];
150
+ }): CanvasDocument;
151
+ /** Migrate v1 (flat absolute layers) → v2 (parentId + slot). */
152
+ export declare function migrateCanvasDocument(doc: CanvasDocument | (Omit<CanvasDocument, 'version'> & {
153
+ version?: number;
154
+ })): CanvasDocument;
155
+ export declare function ensureLayerSlot(layer: CanvasLayer): CanvasLayer;
156
+ export declare function createCanvasGuide(orientation: CanvasGuideOrientation, position: number, partial?: Partial<Omit<CanvasGuide, 'id' | 'orientation' | 'position'>>): CanvasGuide;
157
+ export declare function createCanvasLayer(kind: CanvasLayerKind, partial?: Partial<Omit<CanvasLayer, 'id' | 'kind'>>): CanvasLayer;
158
+ /** Scalar fields that can reset to createCanvasLayer defaults (UE-style details). */
159
+ export type CanvasResettableField = 'opacity' | 'rotation' | 'visible' | 'locked' | 'flipX' | 'flipY' | 'blur' | 'shadowBlur' | 'shadowColor' | 'fill' | 'stroke' | 'strokeWidth' | 'fontSize' | 'fontWeight' | 'fontFamily' | 'fontStyle' | 'textDecoration' | 'letterSpacing' | 'lineHeight' | 'textAlign' | 'color' | 'textBackground' | 'objectFit' | 'borderRadius' | 'gap' | 'columns' | 'clipChildren' | 'text' | 'name';
160
+ /** Default value for a layer field (same as createCanvasLayer would use). */
161
+ export declare function canvasLayerFieldDefault(kind: CanvasLayerKind, field: CanvasResettableField): unknown;
162
+ export declare function isCanvasFieldModified(layer: CanvasLayer, field: CanvasResettableField): boolean;
163
+ export declare function resetCanvasField(layer: CanvasLayer, field: CanvasResettableField): Partial<CanvasLayer>;
164
+ export declare function reorderCanvasLayers(layers: CanvasLayer[], orderedIds: string[]): CanvasLayer[];
165
+ export declare function updateCanvasLayer(doc: CanvasDocument, layerId: string, updater: (l: CanvasLayer) => CanvasLayer): CanvasDocument;
166
+ export declare function updateCanvasLayers(doc: CanvasDocument, ids: string[], updater: (l: CanvasLayer) => CanvasLayer): CanvasDocument;
167
+ export declare function snapLayerRect(rect: CanvasLayerRect, cellSize: number, enabled: boolean, bounds: {
168
+ width: number;
169
+ height: number;
170
+ }, minW?: number, minH?: number, guides?: Pick<CanvasGuide, 'orientation' | 'position'>[], guideThreshold?: number): CanvasLayerRect;
171
+ /** Snap left / center / right (or top / middle / bottom) edges to guides. */
172
+ export declare function snapRectToGuides(rect: CanvasLayerRect, guides: Pick<CanvasGuide, 'orientation' | 'position'>[], threshold?: number): CanvasLayerRect;
173
+ export declare function alignLayerRect(rect: CanvasLayerRect, bounds: {
174
+ width: number;
175
+ height: number;
176
+ }, align: CanvasAlign): CanvasLayerRect;
177
+ export declare const CANVAS_PRESETS: readonly [{
178
+ readonly id: "hd";
179
+ readonly label: "HD · 1280×720";
180
+ readonly width: 1280;
181
+ readonly height: 720;
182
+ }, {
183
+ readonly id: "fhd";
184
+ readonly label: "Full HD · 1920×1080";
185
+ readonly width: 1920;
186
+ readonly height: 1080;
187
+ }, {
188
+ readonly id: "square";
189
+ readonly label: "Instagram · 1080×1080";
190
+ readonly width: 1080;
191
+ readonly height: 1080;
192
+ }, {
193
+ readonly id: "story";
194
+ readonly label: "Story · 1080×1920";
195
+ readonly width: 1080;
196
+ readonly height: 1920;
197
+ }, {
198
+ readonly id: "landscape";
199
+ readonly label: "Landscape · 1600×900";
200
+ readonly width: 1600;
201
+ readonly height: 900;
202
+ }, {
203
+ readonly id: "presentation";
204
+ readonly label: "Presentation · 1920×1080";
205
+ readonly width: 1920;
206
+ readonly height: 1080;
207
+ }, {
208
+ readonly id: "a4";
209
+ readonly label: "A4 · 794×1123";
210
+ readonly width: 794;
211
+ readonly height: 1123;
212
+ }, {
213
+ readonly id: "twitter";
214
+ readonly label: "X Post · 1600×900";
215
+ readonly width: 1600;
216
+ readonly height: 900;
217
+ }];
218
+ export declare function presetIdForSize(width: number, height: number): string;
219
+ /** Build a path layer from absolute document points. */
220
+ export declare function createPathFromDocPoints(docPoints: {
221
+ x: number;
222
+ y: number;
223
+ }[], opts?: {
224
+ closed?: boolean;
225
+ fill?: string;
226
+ strokeWidth?: number;
227
+ name?: string;
228
+ zIndex?: number;
229
+ }): CanvasLayer;
230
+ /** Recompute rect + normalized points after editing absolute doc points. */
231
+ export declare function rebakePathLayer(layer: CanvasLayer, docPoints: {
232
+ x: number;
233
+ y: number;
234
+ }[]): CanvasLayer;
235
+ /** Map normalized path points → document space using an absolute (or local) rect. */
236
+ export declare function pathPointsToDoc(layer: CanvasLayer, absRect?: Pick<CanvasLayerRect, 'x' | 'y' | 'w' | 'h'>): {
237
+ x: number;
238
+ y: number;
239
+ }[];