@r2digisolutions/components 0.1.7 → 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/dist/components/atoms/IconButton/IconButton.svelte +1 -1
- 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/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/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 +97 -61
- 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/ColorPicker/ColorPicker.svelte +1 -1
- 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/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 +204 -60
- package/dist/components/molecules/ContextMenu/ContextMenu.svelte.d.ts +9 -0
- 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/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/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/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/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/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/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/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 +83 -1
- package/dist/index.js +60 -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/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
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
<script lang="ts" module>
|
|
2
2
|
export type { WidgetRect } from '../WidgetCanvas/widgetCanvasContext.js';
|
|
3
3
|
export type WidgetResizeEdge = 'se' | 'e' | 's' | 'sw' | 'w' | 'ne' | 'n' | 'nw';
|
|
4
|
+
export type WidgetHandleStyle = 'default' | 'canva';
|
|
4
5
|
</script>
|
|
5
6
|
|
|
6
7
|
<script lang="ts">
|
|
@@ -37,6 +38,34 @@
|
|
|
37
38
|
* recomiendo 'release'.
|
|
38
39
|
*/
|
|
39
40
|
snapMode?: 'live' | 'release';
|
|
41
|
+
/**
|
|
42
|
+
* Resize handle look. `canva` = blue border + circular corner/edge handles.
|
|
43
|
+
*/
|
|
44
|
+
handleStyle?: WidgetHandleStyle;
|
|
45
|
+
/**
|
|
46
|
+
* When false, no header chrome; freeform drag starts from the body.
|
|
47
|
+
* Use with canvas/artboard layers (Canva-like).
|
|
48
|
+
*/
|
|
49
|
+
showChrome?: boolean;
|
|
50
|
+
/** Remove body padding so media/text fill the frame. */
|
|
51
|
+
flush?: boolean;
|
|
52
|
+
/**
|
|
53
|
+
* Selection chrome for canva: true = selected (border on; handles on hover),
|
|
54
|
+
* false = hide handles. Default: handles on hover.
|
|
55
|
+
*/
|
|
56
|
+
handlesVisible?: boolean;
|
|
57
|
+
/**
|
|
58
|
+
* Raise z-index while selected (`handlesVisible`). Canvas layers should
|
|
59
|
+
* set `false` so stacking order stays truthful; drag still raises via `mode`.
|
|
60
|
+
*/
|
|
61
|
+
raiseOnSelect?: boolean;
|
|
62
|
+
/**
|
|
63
|
+
* Document stacking order (e.g. layer.zIndex). When set, freeform z-index
|
|
64
|
+
* follows this and only boosts temporarily while selected/dragging.
|
|
65
|
+
*/
|
|
66
|
+
stackIndex?: number;
|
|
67
|
+
/** CSS transform on the freeform root (e.g. rotate/flip) so chrome rotates too. */
|
|
68
|
+
transform?: string;
|
|
40
69
|
collapsible?: boolean;
|
|
41
70
|
collapsed?: boolean;
|
|
42
71
|
loading?: boolean;
|
|
@@ -57,6 +86,8 @@
|
|
|
57
86
|
onreload?: () => void | Promise<void>;
|
|
58
87
|
oncollapse?: (collapsed: boolean) => void;
|
|
59
88
|
onchange?: (rect: WidgetRect) => void;
|
|
89
|
+
/** Fired when freeform drag/resize starts (after move threshold) or ends. */
|
|
90
|
+
oninteract?: (active: boolean) => void;
|
|
60
91
|
}
|
|
61
92
|
|
|
62
93
|
let {
|
|
@@ -71,6 +102,13 @@
|
|
|
71
102
|
minH = 120,
|
|
72
103
|
snap,
|
|
73
104
|
snapMode = 'release',
|
|
105
|
+
handleStyle = 'default',
|
|
106
|
+
showChrome = true,
|
|
107
|
+
flush = false,
|
|
108
|
+
handlesVisible,
|
|
109
|
+
raiseOnSelect = true,
|
|
110
|
+
stackIndex,
|
|
111
|
+
transform: frameTransform,
|
|
74
112
|
collapsible = false,
|
|
75
113
|
collapsed = $bindable(false),
|
|
76
114
|
loading = false,
|
|
@@ -89,7 +127,8 @@
|
|
|
89
127
|
onremove,
|
|
90
128
|
onreload,
|
|
91
129
|
oncollapse,
|
|
92
|
-
onchange
|
|
130
|
+
onchange,
|
|
131
|
+
oninteract
|
|
93
132
|
}: WidgetFrameProps = $props();
|
|
94
133
|
|
|
95
134
|
const canvas = getContext<WidgetCanvasContext | undefined>(WIDGET_CANVAS_CONTEXT);
|
|
@@ -97,14 +136,24 @@
|
|
|
97
136
|
let mode = $state<'move' | 'resize' | null>(null);
|
|
98
137
|
let edge = $state<WidgetResizeEdge>('se');
|
|
99
138
|
let start = $state({ px: 0, py: 0, x: 0, y: 0, w: 0, h: 0 });
|
|
139
|
+
/** Pointer down awaiting movement threshold before starting freeform drag (preserves dblclick). */
|
|
140
|
+
let pendingMove = $state<{
|
|
141
|
+
pointerId: number;
|
|
142
|
+
px: number;
|
|
143
|
+
py: number;
|
|
144
|
+
x: number;
|
|
145
|
+
y: number;
|
|
146
|
+
w: number;
|
|
147
|
+
h: number;
|
|
148
|
+
} | null>(null);
|
|
100
149
|
let localBusy = $state(false);
|
|
101
|
-
let
|
|
150
|
+
let localZ = $state(1);
|
|
102
151
|
/** Tamaño local cuando resizable sin freeform (EditableChrome, etc.) */
|
|
103
152
|
let localW = $state<number | null>(null);
|
|
104
153
|
let localH = $state<number | null>(null);
|
|
105
154
|
let rootEl = $state<HTMLDivElement | null>(null);
|
|
106
155
|
|
|
107
|
-
const showDragHandle = $derived((editable || freeform) && draggable);
|
|
156
|
+
const showDragHandle = $derived(showChrome && (editable || freeform) && draggable);
|
|
108
157
|
const showResizeHandle = $derived((editable || freeform) && resizable && !collapsed);
|
|
109
158
|
const showReload = $derived(!!onreload);
|
|
110
159
|
const busy = $derived(loading || reloading || localBusy);
|
|
@@ -114,17 +163,25 @@
|
|
|
114
163
|
const delegateResize = $derived(!freeform && !!onresizestart);
|
|
115
164
|
const builtinResize = $derived(freeform || (resizable && !delegateResize));
|
|
116
165
|
const showHeader = $derived(
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
166
|
+
showChrome &&
|
|
167
|
+
(!!title ||
|
|
168
|
+
showDragHandle ||
|
|
169
|
+
!!actions ||
|
|
170
|
+
(editable && !!onremove) ||
|
|
171
|
+
collapsible ||
|
|
172
|
+
showReload)
|
|
173
|
+
);
|
|
174
|
+
const isCanva = $derived(handleStyle === 'canva');
|
|
175
|
+
const baseStack = $derived(stackIndex ?? localZ);
|
|
176
|
+
const paintZ = $derived(
|
|
177
|
+
mode || (raiseOnSelect && handlesVisible) ? 1_000_000 + baseStack : baseStack
|
|
123
178
|
);
|
|
124
179
|
|
|
125
180
|
function bringToFront() {
|
|
126
181
|
if (!freeform) return;
|
|
127
|
-
|
|
182
|
+
// Controlled stack: temporary raise comes from `paintZ` via handlesVisible/mode.
|
|
183
|
+
if (stackIndex != null) return;
|
|
184
|
+
localZ = Date.now();
|
|
128
185
|
}
|
|
129
186
|
|
|
130
187
|
function finalizeRect(next: WidgetRect): WidgetRect {
|
|
@@ -155,9 +212,8 @@
|
|
|
155
212
|
bringToFront();
|
|
156
213
|
ondragstart?.(e);
|
|
157
214
|
if (!freeform) return;
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
start = { px: e.clientX, py: e.clientY, ...rect };
|
|
215
|
+
// Defer actual drag until the pointer moves — keeps double-click working.
|
|
216
|
+
pendingMove = { pointerId: e.pointerId, px: e.clientX, py: e.clientY, ...rect };
|
|
161
217
|
(e.currentTarget as HTMLElement).setPointerCapture(e.pointerId);
|
|
162
218
|
}
|
|
163
219
|
|
|
@@ -166,11 +222,13 @@
|
|
|
166
222
|
e.preventDefault();
|
|
167
223
|
e.stopPropagation();
|
|
168
224
|
bringToFront();
|
|
225
|
+
pendingMove = null;
|
|
169
226
|
onresizestart?.(e, nextEdge);
|
|
170
227
|
if (delegateResize || !builtinResize) return;
|
|
171
228
|
|
|
172
229
|
mode = 'resize';
|
|
173
230
|
edge = nextEdge;
|
|
231
|
+
oninteract?.(true);
|
|
174
232
|
if (freeform) {
|
|
175
233
|
start = { px: e.clientX, py: e.clientY, ...rect };
|
|
176
234
|
} else {
|
|
@@ -188,9 +246,28 @@
|
|
|
188
246
|
}
|
|
189
247
|
|
|
190
248
|
function onPointerMove(e: PointerEvent) {
|
|
249
|
+
if (pendingMove && !mode) {
|
|
250
|
+
const dxScreen = e.clientX - pendingMove.px;
|
|
251
|
+
const dyScreen = e.clientY - pendingMove.py;
|
|
252
|
+
if (Math.hypot(dxScreen, dyScreen) < 4) return;
|
|
253
|
+
e.preventDefault();
|
|
254
|
+
mode = 'move';
|
|
255
|
+
start = {
|
|
256
|
+
px: pendingMove.px,
|
|
257
|
+
py: pendingMove.py,
|
|
258
|
+
x: pendingMove.x,
|
|
259
|
+
y: pendingMove.y,
|
|
260
|
+
w: pendingMove.w,
|
|
261
|
+
h: pendingMove.h
|
|
262
|
+
};
|
|
263
|
+
pendingMove = null;
|
|
264
|
+
oninteract?.(true);
|
|
265
|
+
}
|
|
266
|
+
|
|
191
267
|
if (!mode || !builtinResize) return;
|
|
192
|
-
const
|
|
193
|
-
const
|
|
268
|
+
const s = canvas?.scale || 1;
|
|
269
|
+
const dx = (e.clientX - start.px) / s;
|
|
270
|
+
const dy = (e.clientY - start.py) / s;
|
|
194
271
|
|
|
195
272
|
if (mode === 'move') {
|
|
196
273
|
if (!freeform) return;
|
|
@@ -218,6 +295,35 @@
|
|
|
218
295
|
if (edge.includes('w')) x = start.x + (start.w - w);
|
|
219
296
|
if (edge.includes('n')) y = start.y + (start.h - h);
|
|
220
297
|
|
|
298
|
+
// Shift: lock aspect ratio to the size at resize start
|
|
299
|
+
if (e.shiftKey && start.w > 0 && start.h > 0) {
|
|
300
|
+
const ratio = start.w / start.h;
|
|
301
|
+
const isCorner = edge === 'ne' || edge === 'nw' || edge === 'se' || edge === 'sw';
|
|
302
|
+
if (isCorner) {
|
|
303
|
+
const dw = Math.abs(w - start.w);
|
|
304
|
+
const dh = Math.abs(h - start.h);
|
|
305
|
+
if (dw * start.h >= dh * start.w) {
|
|
306
|
+
h = Math.max(minH, w / ratio);
|
|
307
|
+
w = h * ratio;
|
|
308
|
+
} else {
|
|
309
|
+
w = Math.max(minW, h * ratio);
|
|
310
|
+
h = w / ratio;
|
|
311
|
+
}
|
|
312
|
+
w = Math.max(minW, w);
|
|
313
|
+
h = Math.max(minH, h);
|
|
314
|
+
if (edge.includes('w')) x = start.x + (start.w - w);
|
|
315
|
+
if (edge.includes('n')) y = start.y + (start.h - h);
|
|
316
|
+
} else if (edge === 'e' || edge === 'w') {
|
|
317
|
+
h = Math.max(minH, w / ratio);
|
|
318
|
+
y = start.y + (start.h - h) / 2;
|
|
319
|
+
if (edge === 'w') x = start.x + (start.w - w);
|
|
320
|
+
} else if (edge === 'n' || edge === 's') {
|
|
321
|
+
w = Math.max(minW, h * ratio);
|
|
322
|
+
x = start.x + (start.w - w) / 2;
|
|
323
|
+
if (edge === 'n') y = start.y + (start.h - h);
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
|
|
221
327
|
if (freeform) {
|
|
222
328
|
emitRect({ x, y, w, h });
|
|
223
329
|
} else {
|
|
@@ -228,12 +334,22 @@
|
|
|
228
334
|
}
|
|
229
335
|
|
|
230
336
|
function onPointerUp() {
|
|
337
|
+
const wasInteracting = mode === 'move' || mode === 'resize' || !!pendingMove;
|
|
338
|
+
pendingMove = null;
|
|
231
339
|
if (mode === 'resize' && freeform) {
|
|
232
340
|
mode = null;
|
|
233
341
|
emitRect({ ...rect });
|
|
342
|
+
if (wasInteracting) oninteract?.(false);
|
|
343
|
+
return;
|
|
344
|
+
}
|
|
345
|
+
if (mode === 'move' && freeform) {
|
|
346
|
+
mode = null;
|
|
347
|
+
emitRect({ ...rect });
|
|
348
|
+
oninteract?.(false);
|
|
234
349
|
return;
|
|
235
350
|
}
|
|
236
351
|
mode = null;
|
|
352
|
+
if (wasInteracting) oninteract?.(false);
|
|
237
353
|
}
|
|
238
354
|
|
|
239
355
|
function toggleCollapse() {
|
|
@@ -251,7 +367,7 @@
|
|
|
251
367
|
}
|
|
252
368
|
}
|
|
253
369
|
|
|
254
|
-
const
|
|
370
|
+
const freeformEdgesDefault: { edge: WidgetResizeEdge; class: string }[] = [
|
|
255
371
|
{ edge: 'e', class: 'top-2 bottom-2 -right-px w-1.5 cursor-e-resize' },
|
|
256
372
|
{ edge: 's', class: 'left-2 right-2 -bottom-px h-1.5 cursor-s-resize' },
|
|
257
373
|
{ edge: 'w', class: 'top-2 bottom-2 -left-px w-1.5 cursor-w-resize' },
|
|
@@ -262,9 +378,25 @@
|
|
|
262
378
|
{ edge: 'nw', class: '-left-px -top-px h-3 w-3 cursor-nw-resize' }
|
|
263
379
|
];
|
|
264
380
|
|
|
381
|
+
const freeformEdgesCanva: { edge: WidgetResizeEdge; class: string }[] = [
|
|
382
|
+
{ edge: 'n', class: 'left-1/2 top-0 h-3 w-3 -translate-x-1/2 -translate-y-1/2 cursor-n-resize' },
|
|
383
|
+
{ edge: 's', class: 'left-1/2 bottom-0 h-3 w-3 -translate-x-1/2 translate-y-1/2 cursor-s-resize' },
|
|
384
|
+
{ edge: 'e', class: 'top-1/2 right-0 h-3 w-3 translate-x-1/2 -translate-y-1/2 cursor-e-resize' },
|
|
385
|
+
{ edge: 'w', class: 'top-1/2 left-0 h-3 w-3 -translate-x-1/2 -translate-y-1/2 cursor-w-resize' },
|
|
386
|
+
{ edge: 'nw', class: 'left-0 top-0 h-3 w-3 -translate-x-1/2 -translate-y-1/2 cursor-nw-resize' },
|
|
387
|
+
{ edge: 'ne', class: 'right-0 top-0 h-3 w-3 translate-x-1/2 -translate-y-1/2 cursor-ne-resize' },
|
|
388
|
+
{ edge: 'sw', class: 'bottom-0 left-0 h-3 w-3 -translate-x-1/2 translate-y-1/2 cursor-sw-resize' },
|
|
389
|
+
{ edge: 'se', class: 'bottom-0 right-0 h-3 w-3 translate-x-1/2 translate-y-1/2 cursor-se-resize' }
|
|
390
|
+
];
|
|
391
|
+
|
|
392
|
+
const freeformEdges = $derived(isCanva ? freeformEdgesCanva : freeformEdgesDefault);
|
|
393
|
+
|
|
265
394
|
const rootStyle = $derived.by(() => {
|
|
266
395
|
if (freeform) {
|
|
267
|
-
|
|
396
|
+
const xf = frameTransform
|
|
397
|
+
? `transform:${frameTransform};transform-origin:0 0;`
|
|
398
|
+
: '';
|
|
399
|
+
return `left:${rect.x}px;top:${rect.y}px;width:${rect.w}px;height:${collapsed ? 'auto' : `${rect.h}px`};z-index:${paintZ};${xf}`;
|
|
268
400
|
}
|
|
269
401
|
if (localW != null) {
|
|
270
402
|
const h =
|
|
@@ -277,15 +409,32 @@
|
|
|
277
409
|
const btnClass =
|
|
278
410
|
'inline-flex h-7 w-7 items-center justify-center rounded-md text-muted transition-colors hover:bg-surface-overlay hover:text-secondary focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand-500/40 disabled:opacity-50';
|
|
279
411
|
|
|
280
|
-
/** Handles only intercept pointers while
|
|
281
|
-
const edgeAccent = $derived(
|
|
282
|
-
|
|
412
|
+
/** Handles only intercept pointers while hovered (or resizing), so neighbors can sit flush */
|
|
413
|
+
const edgeAccent = $derived.by(() => {
|
|
414
|
+
if (isCanva) {
|
|
415
|
+
const visible =
|
|
416
|
+
mode === 'resize'
|
|
417
|
+
? 'pointer-events-auto opacity-100'
|
|
418
|
+
: handlesVisible === false
|
|
419
|
+
? 'pointer-events-none opacity-0'
|
|
420
|
+
: 'pointer-events-none opacity-0 group-hover/widget:pointer-events-auto group-hover/widget:opacity-100';
|
|
421
|
+
return [
|
|
422
|
+
'absolute z-20 touch-none rounded-full border-2 border-[#3b82f6] bg-white shadow-sm',
|
|
423
|
+
'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[#3b82f6]/40',
|
|
424
|
+
visible
|
|
425
|
+
].join(' ');
|
|
426
|
+
}
|
|
427
|
+
return [
|
|
283
428
|
'absolute z-10 touch-none rounded-sm bg-transparent transition-colors',
|
|
284
429
|
'hover:bg-brand-500/70 focus-visible:bg-brand-500/70 focus-visible:outline-none',
|
|
285
430
|
mode === 'resize'
|
|
286
431
|
? 'pointer-events-auto bg-brand-500/40'
|
|
287
432
|
: 'pointer-events-none group-hover/widget:pointer-events-auto group-hover/widget:bg-brand-500/35'
|
|
288
|
-
].join(' ')
|
|
433
|
+
].join(' ');
|
|
434
|
+
});
|
|
435
|
+
|
|
436
|
+
const canvaBorder = $derived(
|
|
437
|
+
isCanva && (handlesVisible === true || mode === 'resize' || mode === 'move')
|
|
289
438
|
);
|
|
290
439
|
</script>
|
|
291
440
|
|
|
@@ -293,15 +442,27 @@
|
|
|
293
442
|
<div
|
|
294
443
|
bind:this={rootEl}
|
|
295
444
|
class={[
|
|
296
|
-
'group/widget flex min-h-0 min-w-0 flex-col overflow-
|
|
445
|
+
'group/widget flex min-h-0 min-w-0 flex-col overflow-visible',
|
|
446
|
+
!isCanva && 'overflow-hidden rounded-xl border border-border bg-surface-elevated',
|
|
447
|
+
isCanva && 'bg-transparent',
|
|
448
|
+
canvaBorder && 'outline outline-2 outline-[#3b82f6]',
|
|
297
449
|
freeform ? 'absolute shadow-md' : 'relative',
|
|
450
|
+
isCanva && 'shadow-none',
|
|
298
451
|
collapsed && 'h-auto self-start',
|
|
299
452
|
mode === 'move' && 'cursor-grabbing opacity-95',
|
|
300
|
-
mode === 'resize' && 'ring-1 ring-brand-500/40',
|
|
453
|
+
mode === 'resize' && !isCanva && 'ring-1 ring-brand-500/40',
|
|
454
|
+
!showChrome && freeform && draggable && 'cursor-move',
|
|
301
455
|
className
|
|
302
456
|
]}
|
|
303
457
|
style={rootStyle}
|
|
304
|
-
onpointerdown={
|
|
458
|
+
onpointerdown={(e) => {
|
|
459
|
+
bringToFront();
|
|
460
|
+
if (!showChrome && freeform && draggable && e.button === 0) {
|
|
461
|
+
const t = e.target as HTMLElement;
|
|
462
|
+
if (t?.closest('[data-resize-handle]')) return;
|
|
463
|
+
beginMove(e);
|
|
464
|
+
}
|
|
465
|
+
}}
|
|
305
466
|
onpointermove={onPointerMove}
|
|
306
467
|
onpointerup={onPointerUp}
|
|
307
468
|
onpointercancel={onPointerUp}
|
|
@@ -401,7 +562,12 @@
|
|
|
401
562
|
{/if}
|
|
402
563
|
|
|
403
564
|
{#if !collapsed}
|
|
404
|
-
<div
|
|
565
|
+
<div
|
|
566
|
+
class={[
|
|
567
|
+
'relative min-h-0 flex-1',
|
|
568
|
+
flush ? 'overflow-hidden p-0' : 'overflow-auto p-3'
|
|
569
|
+
]}
|
|
570
|
+
>
|
|
405
571
|
{#if busy}
|
|
406
572
|
{#if loadingMode === 'spinner'}
|
|
407
573
|
<div
|
|
@@ -451,6 +617,7 @@
|
|
|
451
617
|
{#each freeformEdges as h (h.edge)}
|
|
452
618
|
<!-- svelte-ignore a11y_no_static_element_interactions -->
|
|
453
619
|
<div
|
|
620
|
+
data-resize-handle
|
|
454
621
|
class={[edgeAccent, h.class]}
|
|
455
622
|
role="separator"
|
|
456
623
|
aria-orientation={h.edge === 'e' || h.edge === 'w' ? 'vertical' : 'horizontal'}
|
|
@@ -459,17 +626,19 @@
|
|
|
459
626
|
></div>
|
|
460
627
|
{/each}
|
|
461
628
|
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
<
|
|
472
|
-
|
|
473
|
-
|
|
629
|
+
{#if !isCanva}
|
|
630
|
+
<!-- SE grip (visual only, small) -->
|
|
631
|
+
<div
|
|
632
|
+
class={[
|
|
633
|
+
'pointer-events-none absolute bottom-0.5 right-0.5 z-20 flex h-2.5 w-2.5 items-center justify-center',
|
|
634
|
+
'text-muted/60 transition-colors group-hover/widget:text-brand-500'
|
|
635
|
+
]}
|
|
636
|
+
aria-hidden="true"
|
|
637
|
+
>
|
|
638
|
+
<svg viewBox="0 0 12 12" fill="none" stroke="currentColor" stroke-width="1.75" class="h-2.5 w-2.5">
|
|
639
|
+
<path stroke-linecap="round" d="M7 11L11 7M4 11L11 4" />
|
|
640
|
+
</svg>
|
|
641
|
+
</div>
|
|
642
|
+
{/if}
|
|
474
643
|
{/if}
|
|
475
644
|
</div>
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export type { WidgetRect } from '../WidgetCanvas/widgetCanvasContext.js';
|
|
2
2
|
export type WidgetResizeEdge = 'se' | 'e' | 's' | 'sw' | 'w' | 'ne' | 'n' | 'nw';
|
|
3
|
+
export type WidgetHandleStyle = 'default' | 'canva';
|
|
3
4
|
import type { Snippet } from 'svelte';
|
|
4
5
|
import { type WidgetRect } from '../WidgetCanvas/widgetCanvasContext.js';
|
|
5
6
|
interface WidgetFrameProps {
|
|
@@ -21,6 +22,34 @@ interface WidgetFrameProps {
|
|
|
21
22
|
* recomiendo 'release'.
|
|
22
23
|
*/
|
|
23
24
|
snapMode?: 'live' | 'release';
|
|
25
|
+
/**
|
|
26
|
+
* Resize handle look. `canva` = blue border + circular corner/edge handles.
|
|
27
|
+
*/
|
|
28
|
+
handleStyle?: WidgetHandleStyle;
|
|
29
|
+
/**
|
|
30
|
+
* When false, no header chrome; freeform drag starts from the body.
|
|
31
|
+
* Use with canvas/artboard layers (Canva-like).
|
|
32
|
+
*/
|
|
33
|
+
showChrome?: boolean;
|
|
34
|
+
/** Remove body padding so media/text fill the frame. */
|
|
35
|
+
flush?: boolean;
|
|
36
|
+
/**
|
|
37
|
+
* Selection chrome for canva: true = selected (border on; handles on hover),
|
|
38
|
+
* false = hide handles. Default: handles on hover.
|
|
39
|
+
*/
|
|
40
|
+
handlesVisible?: boolean;
|
|
41
|
+
/**
|
|
42
|
+
* Raise z-index while selected (`handlesVisible`). Canvas layers should
|
|
43
|
+
* set `false` so stacking order stays truthful; drag still raises via `mode`.
|
|
44
|
+
*/
|
|
45
|
+
raiseOnSelect?: boolean;
|
|
46
|
+
/**
|
|
47
|
+
* Document stacking order (e.g. layer.zIndex). When set, freeform z-index
|
|
48
|
+
* follows this and only boosts temporarily while selected/dragging.
|
|
49
|
+
*/
|
|
50
|
+
stackIndex?: number;
|
|
51
|
+
/** CSS transform on the freeform root (e.g. rotate/flip) so chrome rotates too. */
|
|
52
|
+
transform?: string;
|
|
24
53
|
collapsible?: boolean;
|
|
25
54
|
collapsed?: boolean;
|
|
26
55
|
loading?: boolean;
|
|
@@ -41,6 +70,8 @@ interface WidgetFrameProps {
|
|
|
41
70
|
onreload?: () => void | Promise<void>;
|
|
42
71
|
oncollapse?: (collapsed: boolean) => void;
|
|
43
72
|
onchange?: (rect: WidgetRect) => void;
|
|
73
|
+
/** Fired when freeform drag/resize starts (after move threshold) or ends. */
|
|
74
|
+
oninteract?: (active: boolean) => void;
|
|
44
75
|
}
|
|
45
76
|
declare const WidgetFrame: import("svelte").Component<WidgetFrameProps, {}, "rect" | "collapsed">;
|
|
46
77
|
type WidgetFrame = ReturnType<typeof WidgetFrame>;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { StoryObj } from '@storybook/svelte';
|
|
2
|
+
declare const meta: {
|
|
3
|
+
title: string;
|
|
4
|
+
component: import("svelte").Component<Record<string, never>, {}, "">;
|
|
5
|
+
tags: string[];
|
|
6
|
+
parameters: {
|
|
7
|
+
layout: string;
|
|
8
|
+
};
|
|
9
|
+
};
|
|
10
|
+
export default meta;
|
|
11
|
+
type Story = StoryObj<typeof meta>;
|
|
12
|
+
export declare const Default: Story;
|