@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.
- package/README.md +1 -1
- package/dist/components/atoms/Checkbox/Checkbox.svelte +10 -3
- package/dist/components/atoms/Checkbox/Checkbox.svelte.d.ts +3 -0
- package/dist/components/atoms/IconButton/IconButton.svelte +1 -1
- package/dist/components/atoms/Input/Input.svelte +17 -2
- package/dist/components/atoms/Input/Input.svelte.d.ts +6 -1
- package/dist/components/atoms/MarqueeRect/MarqueeRect.svelte +21 -0
- package/dist/components/atoms/MarqueeRect/MarqueeRect.svelte.d.ts +8 -0
- package/dist/components/atoms/MediaKindIcon/MediaKindIcon.stories.js +8 -0
- package/dist/components/atoms/MediaKindIcon/MediaKindIcon.svelte +122 -0
- package/dist/components/atoms/MediaKindIcon/MediaKindIcon.svelte.d.ts +11 -0
- package/dist/components/atoms/MediaKindIcon/MediaKindIconStory.svelte +12 -0
- package/dist/components/atoms/MediaKindIcon/MediaKindIconStory.svelte.d.ts +18 -0
- package/dist/components/atoms/PanKnob/PanKnob.stories.d.ts +9 -0
- package/dist/components/atoms/PanKnob/PanKnob.stories.js +8 -0
- package/dist/components/atoms/PanKnob/PanKnob.svelte +218 -0
- package/dist/components/atoms/PanKnob/PanKnob.svelte.d.ts +19 -0
- package/dist/components/atoms/PanKnob/PanKnobStory.svelte +15 -0
- package/dist/components/atoms/PanKnob/PanKnobStory.svelte.d.ts +3 -0
- package/dist/components/atoms/Playhead/Playhead.stories.js +8 -0
- package/dist/components/atoms/Playhead/Playhead.svelte +59 -0
- package/dist/components/atoms/Playhead/Playhead.svelte.d.ts +13 -0
- package/dist/components/atoms/Playhead/PlayheadStory.svelte +9 -0
- package/dist/components/atoms/Playhead/PlayheadStory.svelte.d.ts +18 -0
- package/dist/components/atoms/Textarea/Textarea.svelte +4 -1
- package/dist/components/atoms/Textarea/Textarea.svelte.d.ts +1 -0
- package/dist/components/atoms/TimeRuler/TimeRuler.stories.js +8 -0
- package/dist/components/atoms/TimeRuler/TimeRuler.svelte +58 -0
- package/dist/components/atoms/TimeRuler/TimeRuler.svelte.d.ts +10 -0
- package/dist/components/atoms/TimeRuler/TimeRulerStory.svelte +7 -0
- package/dist/components/atoms/TimeRuler/TimeRulerStory.svelte.d.ts +18 -0
- package/dist/components/atoms/Toggle/Toggle.svelte +1 -1
- package/dist/components/atoms/Tooltip/Tooltip.svelte +1 -1
- package/dist/components/atoms/TrimHandle/TrimHandle.stories.js +8 -0
- package/dist/components/atoms/TrimHandle/TrimHandle.svelte +63 -0
- package/dist/components/atoms/TrimHandle/TrimHandle.svelte.d.ts +12 -0
- package/dist/components/atoms/TrimHandle/TrimHandleStory.svelte +11 -0
- package/dist/components/atoms/TrimHandle/TrimHandleStory.svelte.d.ts +18 -0
- package/dist/components/molecules/AiAssistPanel/AiAssistPanel.stories.d.ts +9 -0
- package/dist/components/molecules/AiAssistPanel/AiAssistPanel.stories.js +8 -0
- package/dist/components/molecules/AiAssistPanel/AiAssistPanel.svelte +102 -0
- package/dist/components/molecules/AiAssistPanel/AiAssistPanel.svelte.d.ts +20 -0
- package/dist/components/molecules/AiAssistPanel/AiAssistPanelStory.svelte +34 -0
- package/dist/components/molecules/AiAssistPanel/AiAssistPanelStory.svelte.d.ts +3 -0
- package/dist/components/molecules/BulkActionBar/BulkActionBar.svelte +112 -62
- package/dist/components/molecules/BulkActionBar/BulkActionBar.svelte.d.ts +2 -0
- package/dist/components/molecules/BulkEditPanel/BulkEditPanel.stories.js +8 -0
- package/dist/components/molecules/BulkEditPanel/BulkEditPanel.svelte +117 -0
- package/dist/components/molecules/BulkEditPanel/BulkEditPanel.svelte.d.ts +23 -0
- package/dist/components/molecules/BulkEditPanel/BulkEditPanelStory.svelte +18 -0
- package/dist/components/molecules/BulkEditPanel/BulkEditPanelStory.svelte.d.ts +18 -0
- package/dist/components/molecules/CanvasElementsPanel/CanvasElementsPanel.stories.js +8 -0
- package/dist/components/molecules/CanvasElementsPanel/CanvasElementsPanel.svelte +858 -0
- package/dist/components/molecules/CanvasElementsPanel/CanvasElementsPanel.svelte.d.ts +43 -0
- package/dist/components/molecules/CanvasElementsPanel/CanvasElementsPanelStory.svelte +7 -0
- package/dist/components/molecules/CanvasElementsPanel/CanvasElementsPanelStory.svelte.d.ts +18 -0
- package/dist/components/molecules/CanvasInspector/CanvasInspector.stories.d.ts +9 -0
- package/dist/components/molecules/CanvasInspector/CanvasInspector.stories.js +8 -0
- package/dist/components/molecules/CanvasInspector/CanvasInspector.svelte +1140 -0
- package/dist/components/molecules/CanvasInspector/CanvasInspector.svelte.d.ts +28 -0
- package/dist/components/molecules/CanvasInspector/CanvasInspectorStory.svelte +20 -0
- package/dist/components/molecules/CanvasInspector/CanvasInspectorStory.svelte.d.ts +3 -0
- package/dist/components/molecules/CodeEditor/CodeEditor.svelte +13 -10
- package/dist/components/molecules/ColorPicker/ColorPicker.svelte +167 -97
- package/dist/components/molecules/ColumnVisibilityMenu/ColumnVisibilityMenu.stories.d.ts +9 -0
- package/dist/components/molecules/ColumnVisibilityMenu/ColumnVisibilityMenu.stories.js +8 -0
- package/dist/components/molecules/ColumnVisibilityMenu/ColumnVisibilityMenu.svelte +108 -0
- package/dist/components/molecules/ColumnVisibilityMenu/ColumnVisibilityMenu.svelte.d.ts +18 -0
- package/dist/components/molecules/ColumnVisibilityMenu/ColumnVisibilityMenuStory.svelte +15 -0
- package/dist/components/molecules/ColumnVisibilityMenu/ColumnVisibilityMenuStory.svelte.d.ts +3 -0
- package/dist/components/molecules/ConditionalFormatPanel/ConditionalFormatPanel.stories.d.ts +9 -0
- package/dist/components/molecules/ConditionalFormatPanel/ConditionalFormatPanel.stories.js +8 -0
- package/dist/components/molecules/ConditionalFormatPanel/ConditionalFormatPanel.svelte +412 -0
- package/dist/components/molecules/ConditionalFormatPanel/ConditionalFormatPanel.svelte.d.ts +14 -0
- package/dist/components/molecules/ConditionalFormatPanel/ConditionalFormatPanelStory.svelte +27 -0
- package/dist/components/molecules/ConditionalFormatPanel/ConditionalFormatPanelStory.svelte.d.ts +3 -0
- package/dist/components/molecules/ConflictResolver/ConflictResolver.stories.js +8 -0
- package/dist/components/molecules/ConflictResolver/ConflictResolver.svelte +73 -0
- package/dist/components/molecules/ConflictResolver/ConflictResolver.svelte.d.ts +16 -0
- package/dist/components/molecules/ConflictResolver/ConflictResolverStory.svelte +11 -0
- package/dist/components/molecules/ConflictResolver/ConflictResolverStory.svelte.d.ts +18 -0
- package/dist/components/molecules/ContextMenu/ContextMenu.svelte +237 -41
- package/dist/components/molecules/ContextMenu/ContextMenu.svelte.d.ts +17 -1
- package/dist/components/molecules/DateTimePicker/DateTimePicker.svelte.d.ts +1 -1
- package/dist/components/molecules/ExpressionEditor/ExpressionEditor.stories.d.ts +9 -0
- package/dist/components/molecules/ExpressionEditor/ExpressionEditor.stories.js +8 -0
- package/dist/components/molecules/ExpressionEditor/ExpressionEditor.svelte +56 -0
- package/dist/components/molecules/ExpressionEditor/ExpressionEditor.svelte.d.ts +12 -0
- package/dist/components/molecules/ExpressionEditor/ExpressionEditorStory.svelte +12 -0
- package/dist/components/molecules/ExpressionEditor/ExpressionEditorStory.svelte.d.ts +3 -0
- package/dist/components/molecules/FilterList/FilterList.stories.d.ts +9 -0
- package/dist/components/molecules/FilterList/FilterList.stories.js +8 -0
- package/dist/components/molecules/FilterList/FilterList.svelte +101 -0
- package/dist/components/molecules/FilterList/FilterList.svelte.d.ts +18 -0
- package/dist/components/molecules/FilterList/FilterListStory.svelte +31 -0
- package/dist/components/molecules/FilterList/FilterListStory.svelte.d.ts +3 -0
- package/dist/components/molecules/FormDateTimePicker/FormDateTimePicker.svelte.d.ts +1 -1
- package/dist/components/molecules/Gauge/Gauge.stories.d.ts +1 -1
- package/dist/components/molecules/InfiniteScroll/InfiniteScroll.stories.d.ts +1 -1
- package/dist/components/molecules/MediaAssetBrowser/MediaAssetBrowser.stories.d.ts +9 -0
- package/dist/components/molecules/MediaAssetBrowser/MediaAssetBrowser.stories.js +8 -0
- package/dist/components/molecules/MediaAssetBrowser/MediaAssetBrowser.svelte +94 -0
- package/dist/components/molecules/MediaAssetBrowser/MediaAssetBrowser.svelte.d.ts +15 -0
- package/dist/components/molecules/MediaAssetBrowser/MediaAssetBrowserStory.svelte +18 -0
- package/dist/components/molecules/MediaAssetBrowser/MediaAssetBrowserStory.svelte.d.ts +3 -0
- package/dist/components/molecules/MediaAssetCard/MediaAssetCard.stories.js +8 -0
- package/dist/components/molecules/MediaAssetCard/MediaAssetCard.svelte +50 -0
- package/dist/components/molecules/MediaAssetCard/MediaAssetCard.svelte.d.ts +11 -0
- package/dist/components/molecules/MediaAssetCard/MediaAssetCardStory.svelte +13 -0
- package/dist/components/molecules/MediaAssetCard/MediaAssetCardStory.svelte.d.ts +18 -0
- package/dist/components/molecules/MediaLayerItem/MediaLayerItem.stories.js +8 -0
- package/dist/components/molecules/MediaLayerItem/MediaLayerItem.svelte +380 -0
- package/dist/components/molecules/MediaLayerItem/MediaLayerItem.svelte.d.ts +33 -0
- package/dist/components/molecules/MediaLayerItem/MediaLayerItemStory.svelte +14 -0
- package/dist/components/molecules/MediaLayerItem/MediaLayerItemStory.svelte.d.ts +18 -0
- package/dist/components/molecules/MediaLayerList/MediaLayerList.stories.d.ts +9 -0
- package/dist/components/molecules/MediaLayerList/MediaLayerList.stories.js +8 -0
- package/dist/components/molecules/MediaLayerList/MediaLayerList.svelte +399 -0
- package/dist/components/molecules/MediaLayerList/MediaLayerList.svelte.d.ts +37 -0
- package/dist/components/molecules/MediaLayerList/MediaLayerListStory.svelte +24 -0
- package/dist/components/molecules/MediaLayerList/MediaLayerListStory.svelte.d.ts +3 -0
- package/dist/components/molecules/MediaStage/MediaStage.stories.d.ts +9 -0
- package/dist/components/molecules/MediaStage/MediaStage.stories.js +8 -0
- package/dist/components/molecules/MediaStage/MediaStage.svelte +1498 -0
- package/dist/components/molecules/MediaStage/MediaStage.svelte.d.ts +45 -0
- package/dist/components/molecules/MediaStage/MediaStageStory.svelte +35 -0
- package/dist/components/molecules/MediaStage/MediaStageStory.svelte.d.ts +3 -0
- package/dist/components/molecules/MediaTimeline/MediaTimeline.stories.d.ts +9 -0
- package/dist/components/molecules/MediaTimeline/MediaTimeline.stories.js +8 -0
- package/dist/components/molecules/MediaTimeline/MediaTimeline.svelte +131 -0
- package/dist/components/molecules/MediaTimeline/MediaTimeline.svelte.d.ts +19 -0
- package/dist/components/molecules/MediaTimeline/MediaTimelineStory.svelte +20 -0
- package/dist/components/molecules/MediaTimeline/MediaTimelineStory.svelte.d.ts +3 -0
- package/dist/components/molecules/MixerChannel/MixerChannel.stories.d.ts +9 -0
- package/dist/components/molecules/MixerChannel/MixerChannel.stories.js +8 -0
- package/dist/components/molecules/MixerChannel/MixerChannel.svelte +92 -0
- package/dist/components/molecules/MixerChannel/MixerChannel.svelte.d.ts +11 -0
- package/dist/components/molecules/MixerChannel/MixerChannelStory.svelte +13 -0
- package/dist/components/molecules/MixerChannel/MixerChannelStory.svelte.d.ts +3 -0
- package/dist/components/molecules/NodeGraph/GraphBlueprintNode.svelte +454 -0
- package/dist/components/molecules/NodeGraph/GraphBlueprintNode.svelte.d.ts +8 -0
- package/dist/components/molecules/NodeGraph/GraphFlowBridge.svelte +26 -0
- package/dist/components/molecules/NodeGraph/GraphFlowBridge.svelte.d.ts +22 -0
- package/dist/components/molecules/NodeGraph/NodeGraph.stories.d.ts +12 -0
- package/dist/components/molecules/NodeGraph/NodeGraph.stories.js +9 -0
- package/dist/components/molecules/NodeGraph/NodeGraph.svelte +1409 -0
- package/dist/components/molecules/NodeGraph/NodeGraph.svelte.d.ts +33 -0
- package/dist/components/molecules/NodeGraph/NodeGraphStory.svelte +90 -0
- package/dist/components/molecules/NodeGraph/NodeGraphStory.svelte.d.ts +3 -0
- package/dist/components/molecules/NodePalette/NodePalette.stories.js +8 -0
- package/dist/components/molecules/NodePalette/NodePalette.svelte +86 -0
- package/dist/components/molecules/NodePalette/NodePalette.svelte.d.ts +11 -0
- package/dist/components/molecules/NodePalette/NodePaletteStory.svelte +11 -0
- package/dist/components/molecules/NodePalette/NodePaletteStory.svelte.d.ts +18 -0
- package/dist/components/molecules/Poll/Poll.stories.d.ts +1 -1
- package/dist/components/molecules/ProgramMonitor/ProgramMonitor.stories.js +8 -0
- package/dist/components/molecules/ProgramMonitor/ProgramMonitor.svelte +72 -0
- package/dist/components/molecules/ProgramMonitor/ProgramMonitor.svelte.d.ts +12 -0
- package/dist/components/molecules/ProgramMonitor/ProgramMonitorStory.svelte +16 -0
- package/dist/components/molecules/ProgramMonitor/ProgramMonitorStory.svelte.d.ts +18 -0
- package/dist/components/molecules/PropertyField/PropertyField.svelte +57 -3
- package/dist/components/molecules/PropertyField/PropertyField.svelte.d.ts +10 -0
- package/dist/components/molecules/PropertyField/PropertyFieldStory.svelte +21 -0
- package/dist/components/molecules/PropertyGroup/PropertyGroup.svelte +1 -1
- package/dist/components/molecules/QueryBuilder/QueryBuilder.stories.d.ts +9 -0
- package/dist/components/molecules/QueryBuilder/QueryBuilder.stories.js +8 -0
- package/dist/components/molecules/QueryBuilder/QueryBuilder.svelte +52 -0
- package/dist/components/molecules/QueryBuilder/QueryBuilder.svelte.d.ts +18 -0
- package/dist/components/molecules/QueryBuilder/QueryBuilderStory.svelte +62 -0
- package/dist/components/molecules/QueryBuilder/QueryBuilderStory.svelte.d.ts +3 -0
- package/dist/components/molecules/RelationPicker/RelationPicker.stories.d.ts +9 -0
- package/dist/components/molecules/RelationPicker/RelationPicker.stories.js +8 -0
- package/dist/components/molecules/RelationPicker/RelationPicker.svelte +180 -0
- package/dist/components/molecules/RelationPicker/RelationPicker.svelte.d.ts +24 -0
- package/dist/components/molecules/RelationPicker/RelationPickerStory.svelte +16 -0
- package/dist/components/molecules/RelationPicker/RelationPickerStory.svelte.d.ts +3 -0
- package/dist/components/molecules/SchemaFieldBuilder/SchemaFieldBuilder.stories.d.ts +9 -0
- package/dist/components/molecules/SchemaFieldBuilder/SchemaFieldBuilder.stories.js +8 -0
- package/dist/components/molecules/SchemaFieldBuilder/SchemaFieldBuilder.svelte +154 -0
- package/dist/components/molecules/SchemaFieldBuilder/SchemaFieldBuilder.svelte.d.ts +12 -0
- package/dist/components/molecules/SchemaFieldBuilder/SchemaFieldBuilderStory.svelte +16 -0
- package/dist/components/molecules/SchemaFieldBuilder/SchemaFieldBuilderStory.svelte.d.ts +3 -0
- package/dist/components/molecules/SecretField/SecretField.stories.d.ts +9 -0
- package/dist/components/molecules/SecretField/SecretField.stories.js +8 -0
- package/dist/components/molecules/SecretField/SecretField.svelte +58 -0
- package/dist/components/molecules/SecretField/SecretField.svelte.d.ts +15 -0
- package/dist/components/molecules/SecretField/SecretFieldStory.svelte +8 -0
- package/dist/components/molecules/SecretField/SecretFieldStory.svelte.d.ts +3 -0
- package/dist/components/molecules/SplitPane/SplitPane.svelte +96 -37
- package/dist/components/molecules/SplitPane/SplitPane.svelte.d.ts +10 -2
- package/dist/components/molecules/TableToolbar/TableToolbar.svelte.d.ts +1 -1
- package/dist/components/molecules/Terminal/Terminal.stories.js +20 -0
- package/dist/components/molecules/Terminal/Terminal.svelte +238 -0
- package/dist/components/molecules/Terminal/Terminal.svelte.d.ts +19 -0
- package/dist/components/molecules/Terminal/TerminalStory.svelte +47 -0
- package/dist/components/molecules/Terminal/TerminalStory.svelte.d.ts +6 -0
- package/dist/components/molecules/TimelineClip/TimelineClip.stories.js +8 -0
- package/dist/components/molecules/TimelineClip/TimelineClip.svelte +116 -0
- package/dist/components/molecules/TimelineClip/TimelineClip.svelte.d.ts +15 -0
- package/dist/components/molecules/TimelineClip/TimelineClipStory.svelte +18 -0
- package/dist/components/molecules/TimelineClip/TimelineClipStory.svelte.d.ts +18 -0
- package/dist/components/molecules/TimelineTrack/TimelineTrack.stories.js +8 -0
- package/dist/components/molecules/TimelineTrack/TimelineTrack.svelte +56 -0
- package/dist/components/molecules/TimelineTrack/TimelineTrack.svelte.d.ts +16 -0
- package/dist/components/molecules/TimelineTrack/TimelineTrackStory.svelte +35 -0
- package/dist/components/molecules/TimelineTrack/TimelineTrackStory.svelte.d.ts +18 -0
- package/dist/components/molecules/TraceWaterfall/TraceWaterfall.stories.js +8 -0
- package/dist/components/molecules/TraceWaterfall/TraceWaterfall.svelte +158 -0
- package/dist/components/molecules/TraceWaterfall/TraceWaterfall.svelte.d.ts +18 -0
- package/dist/components/molecules/TraceWaterfall/TraceWaterfallStory.svelte +55 -0
- package/dist/components/molecules/TraceWaterfall/TraceWaterfallStory.svelte.d.ts +18 -0
- package/dist/components/molecules/TrackHeader/TrackHeader.stories.d.ts +9 -0
- package/dist/components/molecules/TrackHeader/TrackHeader.stories.js +8 -0
- package/dist/components/molecules/TrackHeader/TrackHeader.svelte +54 -0
- package/dist/components/molecules/TrackHeader/TrackHeader.svelte.d.ts +9 -0
- package/dist/components/molecules/TrackHeader/TrackHeaderStory.svelte +10 -0
- package/dist/components/molecules/TrackHeader/TrackHeaderStory.svelte.d.ts +3 -0
- package/dist/components/molecules/TransportControls/TransportControls.stories.d.ts +9 -0
- package/dist/components/molecules/TransportControls/TransportControls.stories.js +8 -0
- package/dist/components/molecules/TransportControls/TransportControls.svelte +53 -0
- package/dist/components/molecules/TransportControls/TransportControls.svelte.d.ts +12 -0
- package/dist/components/molecules/TransportControls/TransportControlsStory.svelte +18 -0
- package/dist/components/molecules/TransportControls/TransportControlsStory.svelte.d.ts +3 -0
- package/dist/components/molecules/VersionHistoryPanel/VersionHistoryPanel.stories.js +8 -0
- package/dist/components/molecules/VersionHistoryPanel/VersionHistoryPanel.svelte +117 -0
- package/dist/components/molecules/VersionHistoryPanel/VersionHistoryPanel.svelte.d.ts +20 -0
- package/dist/components/molecules/VersionHistoryPanel/VersionHistoryPanelStory.svelte +36 -0
- package/dist/components/molecules/VersionHistoryPanel/VersionHistoryPanelStory.svelte.d.ts +18 -0
- package/dist/components/molecules/VideoPlayer/VideoPlayer.stories.d.ts +1 -1
- package/dist/components/molecules/VideoTrackHeader/VideoTrackHeader.stories.d.ts +9 -0
- package/dist/components/molecules/VideoTrackHeader/VideoTrackHeader.stories.js +8 -0
- package/dist/components/molecules/VideoTrackHeader/VideoTrackHeader.svelte +59 -0
- package/dist/components/molecules/VideoTrackHeader/VideoTrackHeader.svelte.d.ts +9 -0
- package/dist/components/molecules/VideoTrackHeader/VideoTrackHeaderStory.svelte +10 -0
- package/dist/components/molecules/VideoTrackHeader/VideoTrackHeaderStory.svelte.d.ts +3 -0
- package/dist/components/molecules/WaveformRegion/WaveformRegion.stories.js +8 -0
- package/dist/components/molecules/WaveformRegion/WaveformRegion.svelte +82 -0
- package/dist/components/molecules/WaveformRegion/WaveformRegion.svelte.d.ts +13 -0
- package/dist/components/molecules/WaveformRegion/WaveformRegionStory.svelte +17 -0
- package/dist/components/molecules/WaveformRegion/WaveformRegionStory.svelte.d.ts +18 -0
- package/dist/components/molecules/WidgetCanvas/WidgetCanvas.svelte +13 -4
- package/dist/components/molecules/WidgetCanvas/WidgetCanvas.svelte.d.ts +3 -1
- package/dist/components/molecules/WidgetCanvas/widgetCanvasContext.d.ts +2 -0
- package/dist/components/molecules/WidgetFrame/WidgetFrame.svelte +206 -37
- package/dist/components/molecules/WidgetFrame/WidgetFrame.svelte.d.ts +31 -0
- package/dist/components/organisms/AssetPickerPage/AssetPickerPage.svelte.d.ts +1 -1
- package/dist/components/organisms/AudioEditor/AudioEditor.stories.d.ts +12 -0
- package/dist/components/organisms/AudioEditor/AudioEditor.stories.js +9 -0
- package/dist/components/organisms/AudioEditor/AudioEditor.svelte +273 -0
- package/dist/components/organisms/AudioEditor/AudioEditor.svelte.d.ts +13 -0
- package/dist/components/organisms/AudioEditor/AudioEditorStory.svelte +10 -0
- package/dist/components/organisms/AudioEditor/AudioEditorStory.svelte.d.ts +3 -0
- package/dist/components/organisms/BacklogPage/BacklogPage.svelte.d.ts +1 -1
- package/dist/components/organisms/BlogEditor/BlogEditor.stories.d.ts +12 -0
- package/dist/components/organisms/BlogEditor/BlogEditor.stories.js +9 -0
- package/dist/components/organisms/BlogEditor/BlogEditor.svelte +1208 -0
- package/dist/components/organisms/BlogEditor/BlogEditor.svelte.d.ts +16 -0
- package/dist/components/organisms/BlogEditor/BlogEditorStory.svelte +144 -0
- package/dist/components/organisms/BlogEditor/BlogEditorStory.svelte.d.ts +3 -0
- package/dist/components/organisms/BlogEditor/DemoBlogCard.svelte +28 -0
- package/dist/components/organisms/BlogEditor/DemoBlogCard.svelte.d.ts +10 -0
- package/dist/components/organisms/BlogEditor/DemoBlogStats.svelte +34 -0
- package/dist/components/organisms/BlogEditor/DemoBlogStats.svelte.d.ts +11 -0
- package/dist/components/organisms/BlogEditor/DemoBlogWidget.svelte +13 -0
- package/dist/components/organisms/BlogEditor/DemoBlogWidget.svelte.d.ts +8 -0
- package/dist/components/organisms/BlogRenderer/BlogRenderer.stories.js +8 -0
- package/dist/components/organisms/BlogRenderer/BlogRenderer.svelte +469 -0
- package/dist/components/organisms/BlogRenderer/BlogRenderer.svelte.d.ts +14 -0
- package/dist/components/organisms/BlogRenderer/BlogRendererStory.svelte +20 -0
- package/dist/components/organisms/BlogRenderer/BlogRendererStory.svelte.d.ts +18 -0
- package/dist/components/organisms/BlueprintEditor/BlueprintEditor.stories.d.ts +12 -0
- package/dist/components/organisms/BlueprintEditor/BlueprintEditor.stories.js +9 -0
- package/dist/components/organisms/BlueprintEditor/BlueprintEditor.svelte +1012 -0
- package/dist/components/organisms/BlueprintEditor/BlueprintEditor.svelte.d.ts +16 -0
- package/dist/components/organisms/BlueprintEditor/BlueprintEditorStory.svelte +76 -0
- package/dist/components/organisms/BlueprintEditor/BlueprintEditorStory.svelte.d.ts +3 -0
- package/dist/components/organisms/CalendarApp/CalendarApp.svelte.d.ts +1 -1
- package/dist/components/organisms/CanvasEditor/CanvasEditor.stories.d.ts +12 -0
- package/dist/components/organisms/CanvasEditor/CanvasEditor.stories.js +9 -0
- package/dist/components/organisms/CanvasEditor/CanvasEditor.svelte +1680 -0
- package/dist/components/organisms/CanvasEditor/CanvasEditor.svelte.d.ts +18 -0
- package/dist/components/organisms/CanvasEditor/CanvasEditorStory.svelte +329 -0
- package/dist/components/organisms/CanvasEditor/CanvasEditorStory.svelte.d.ts +3 -0
- package/dist/components/organisms/DashboardBuilderPage/DashboardBuilderPage.svelte.d.ts +1 -1
- package/dist/components/organisms/DataGrid/DataGrid.stories.d.ts +65 -0
- package/dist/components/organisms/DataGrid/DataGrid.stories.js +95 -0
- package/dist/components/organisms/DataGrid/DataGrid.svelte +2264 -0
- package/dist/components/organisms/DataGrid/DataGrid.svelte.d.ts +99 -0
- package/dist/components/organisms/DataGrid/DataGridStory.svelte +659 -0
- package/dist/components/organisms/DataGrid/DataGridStory.svelte.d.ts +11 -0
- package/dist/components/organisms/DataGrid/breakpoints.d.ts +10 -0
- package/dist/components/organisms/DataGrid/breakpoints.js +20 -0
- package/dist/components/organisms/DataGrid/cellEditors.d.ts +8 -0
- package/dist/components/organisms/DataGrid/cellEditors.js +59 -0
- package/dist/components/organisms/DataGrid/conditionalFormat.d.ts +11 -0
- package/dist/components/organisms/DataGrid/conditionalFormat.js +98 -0
- package/dist/components/organisms/DataGrid/filterRows.d.ts +5 -0
- package/dist/components/organisms/DataGrid/filterRows.js +60 -0
- package/dist/components/organisms/DataGrid/marks.d.ts +9 -0
- package/dist/components/organisms/DataGrid/marks.js +91 -0
- package/dist/components/organisms/DataGrid/types.d.ts +126 -0
- package/dist/components/organisms/DataGrid/types.js +21 -0
- package/dist/components/organisms/DesktopShell/DesktopShell.svelte.d.ts +1 -1
- package/dist/components/organisms/EditorShell/EditorShell.svelte +123 -28
- package/dist/components/organisms/EditorShell/EditorShell.svelte.d.ts +21 -1
- package/dist/components/organisms/FileUploader/FileUploader.svelte +77 -15
- package/dist/components/organisms/FileUploader/FileUploader.svelte.d.ts +11 -0
- package/dist/components/organisms/ImportWizard/ImportWizard.stories.js +8 -0
- package/dist/components/organisms/ImportWizard/ImportWizard.svelte +209 -0
- package/dist/components/organisms/ImportWizard/ImportWizard.svelte.d.ts +22 -0
- package/dist/components/organisms/ImportWizard/ImportWizardStory.svelte +16 -0
- package/dist/components/organisms/ImportWizard/ImportWizardStory.svelte.d.ts +18 -0
- package/dist/components/organisms/ResourceStudio/ResourceStudio.stories.d.ts +33 -0
- package/dist/components/organisms/ResourceStudio/ResourceStudio.stories.js +56 -0
- package/dist/components/organisms/ResourceStudio/ResourceStudio.svelte +830 -0
- package/dist/components/organisms/ResourceStudio/ResourceStudio.svelte.d.ts +68 -0
- package/dist/components/organisms/ResourceStudio/ResourceStudioStory.svelte +600 -0
- package/dist/components/organisms/ResourceStudio/ResourceStudioStory.svelte.d.ts +7 -0
- package/dist/components/organisms/ResourceStudio/fieldsToColumns.d.ts +4 -0
- package/dist/components/organisms/ResourceStudio/fieldsToColumns.js +20 -0
- package/dist/components/organisms/ResourceStudio/fieldsToSchema.d.ts +6 -0
- package/dist/components/organisms/ResourceStudio/fieldsToSchema.js +53 -0
- package/dist/components/organisms/ResourceStudio/types.d.ts +69 -0
- package/dist/components/organisms/ResourceStudio/types.js +15 -0
- package/dist/components/organisms/Scheduler/Scheduler.svelte.d.ts +1 -1
- package/dist/components/organisms/SchemaForm/SchemaForm.svelte +10 -3
- package/dist/components/organisms/SchemaForm/SchemaForm.svelte.d.ts +1 -0
- package/dist/components/organisms/VideoEditor/VideoEditor.stories.d.ts +12 -0
- package/dist/components/organisms/VideoEditor/VideoEditor.stories.js +9 -0
- package/dist/components/organisms/VideoEditor/VideoEditor.svelte +308 -0
- package/dist/components/organisms/VideoEditor/VideoEditor.svelte.d.ts +13 -0
- package/dist/components/organisms/VideoEditor/VideoEditorStory.svelte +10 -0
- package/dist/components/organisms/VideoEditor/VideoEditorStory.svelte.d.ts +3 -0
- package/dist/components/templates/AudioEditorTemplate/AudioEditorTemplate.stories.d.ts +12 -0
- package/dist/components/templates/AudioEditorTemplate/AudioEditorTemplate.stories.js +9 -0
- package/dist/components/templates/AudioEditorTemplate/AudioEditorTemplate.svelte +22 -0
- package/dist/components/templates/AudioEditorTemplate/AudioEditorTemplate.svelte.d.ts +13 -0
- package/dist/components/templates/AudioEditorTemplate/AudioEditorTemplateStory.svelte +8 -0
- package/dist/components/templates/AudioEditorTemplate/AudioEditorTemplateStory.svelte.d.ts +3 -0
- package/dist/components/templates/CanvasEditorTemplate/CanvasEditorTemplate.stories.d.ts +12 -0
- package/dist/components/templates/CanvasEditorTemplate/CanvasEditorTemplate.stories.js +9 -0
- package/dist/components/templates/CanvasEditorTemplate/CanvasEditorTemplate.svelte +32 -0
- package/dist/components/templates/CanvasEditorTemplate/CanvasEditorTemplate.svelte.d.ts +17 -0
- package/dist/components/templates/CanvasEditorTemplate/CanvasEditorTemplateStory.svelte +21 -0
- package/dist/components/templates/CanvasEditorTemplate/CanvasEditorTemplateStory.svelte.d.ts +3 -0
- package/dist/components/templates/ResourceStudioTemplate/ResourceStudioTemplate.stories.d.ts +25 -0
- package/dist/components/templates/ResourceStudioTemplate/ResourceStudioTemplate.stories.js +18 -0
- package/dist/components/templates/ResourceStudioTemplate/ResourceStudioTemplate.svelte +192 -0
- package/dist/components/templates/ResourceStudioTemplate/ResourceStudioTemplate.svelte.d.ts +62 -0
- package/dist/components/templates/ResourceStudioTemplate/ResourceStudioTemplateStory.svelte +129 -0
- package/dist/components/templates/ResourceStudioTemplate/ResourceStudioTemplateStory.svelte.d.ts +7 -0
- package/dist/components/templates/VideoEditorTemplate/VideoEditorTemplate.stories.d.ts +12 -0
- package/dist/components/templates/VideoEditorTemplate/VideoEditorTemplate.stories.js +9 -0
- package/dist/components/templates/VideoEditorTemplate/VideoEditorTemplate.svelte +22 -0
- package/dist/components/templates/VideoEditorTemplate/VideoEditorTemplate.svelte.d.ts +13 -0
- package/dist/components/templates/VideoEditorTemplate/VideoEditorTemplateStory.svelte +8 -0
- package/dist/components/templates/VideoEditorTemplate/VideoEditorTemplateStory.svelte.d.ts +3 -0
- package/dist/index.d.ts +94 -1
- package/dist/index.js +68 -0
- package/dist/types/xyflow-svelte.d.ts +62 -0
- package/dist/utils/audioProject.d.ts +19 -0
- package/dist/utils/audioProject.js +70 -0
- package/dist/utils/blogDocument.d.ts +175 -0
- package/dist/utils/blogDocument.js +220 -0
- package/dist/utils/blueprintRuntime.d.ts +34 -0
- package/dist/utils/blueprintRuntime.js +289 -0
- package/dist/utils/canvasDocument.d.ts +239 -0
- package/dist/utils/canvasDocument.js +443 -0
- package/dist/utils/canvasExport.d.ts +10 -0
- package/dist/utils/canvasExport.js +469 -0
- package/dist/utils/canvasHierarchy.d.ts +189 -0
- package/dist/utils/canvasHierarchy.js +674 -0
- package/dist/utils/canvasHistory.d.ts +19 -0
- package/dist/utils/canvasHistory.js +48 -0
- package/dist/utils/canvasWidget.d.ts +81 -0
- package/dist/utils/canvasWidget.js +597 -0
- package/dist/utils/marqueeSelect.d.ts +48 -0
- package/dist/utils/marqueeSelect.js +189 -0
- package/dist/utils/mediaTime.d.ts +16 -0
- package/dist/utils/mediaTime.js +57 -0
- package/dist/utils/mediaTracks.d.ts +61 -0
- package/dist/utils/mediaTracks.js +102 -0
- package/dist/utils/nodeGraph.d.ts +354 -0
- package/dist/utils/nodeGraph.js +1453 -0
- package/dist/utils/queryBridge.d.ts +18 -0
- package/dist/utils/queryBridge.js +118 -0
- package/dist/utils/videoSequence.d.ts +13 -0
- package/dist/utils/videoSequence.js +63 -0
- 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
|
+
}[];
|