diff --git a/ComfyUI_vibe/src/components.d.ts b/ComfyUI_vibe/src/components.d.ts
index e87a907a1..22181b20c 100644
--- a/ComfyUI_vibe/src/components.d.ts
+++ b/ComfyUI_vibe/src/components.d.ts
@@ -7,25 +7,56 @@ export {}
/* prettier-ignore */
declare module 'vue' {
export interface GlobalComponents {
+ AssetsTab: typeof import('./components/v2/workspace/AssetsTab.vue')['default']
CanvasBottomBar: typeof import('./components/v2/canvas/CanvasBottomBar.vue')['default']
CanvasLeftSidebar: typeof import('./components/v2/canvas/CanvasLeftSidebar.vue')['default']
+ CanvasLogoMenu: typeof import('./components/v2/canvas/CanvasLogoMenu.vue')['default']
CanvasTabBar: typeof import('./components/v2/canvas/CanvasTabBar.vue')['default']
+ CanvasTabs: typeof import('./components/v2/canvas/CanvasTabs.vue')['default']
+ CreateProjectDialog: typeof import('./components/v2/workspace/CreateProjectDialog.vue')['default']
FlowNode: typeof import('./components/v2/nodes/FlowNode.vue')['default']
FlowNodeMinimized: typeof import('./components/v2/nodes/FlowNodeMinimized.vue')['default']
+ LibraryBrandKitSection: typeof import('./components/v1/sidebar/LibraryBrandKitSection.vue')['default']
+ LibraryModelsSection: typeof import('./components/v1/sidebar/LibraryModelsSection.vue')['default']
+ LibraryNodesSection: typeof import('./components/v1/sidebar/LibraryNodesSection.vue')['default']
+ LibrarySidebar: typeof import('./components/v2/canvas/LibrarySidebar.vue')['default']
+ LibraryWorkflowsSection: typeof import('./components/v1/sidebar/LibraryWorkflowsSection.vue')['default']
+ ModelsTab: typeof import('./components/v2/workspace/ModelsTab.vue')['default']
NodeHeader: typeof import('./components/v2/nodes/NodeHeader.vue')['default']
+ NodePropertiesPanel: typeof import('./components/v2/canvas/NodePropertiesPanel.vue')['default']
NodeSlots: typeof import('./components/v2/nodes/NodeSlots.vue')['default']
NodeWidgets: typeof import('./components/v2/nodes/NodeWidgets.vue')['default']
+ PackagesTab: typeof import('./components/v2/workspace/PackagesTab.vue')['default']
RouterLink: typeof import('vue-router')['RouterLink']
RouterView: typeof import('vue-router')['RouterView']
+ SidebarGridCard: typeof import('./components/common/sidebar/SidebarGridCard.vue')['default']
+ SidebarSearchBox: typeof import('./components/common/sidebar/SidebarSearchBox.vue')['default']
+ SidebarTreeCategory: typeof import('./components/common/sidebar/SidebarTreeCategory.vue')['default']
+ SidebarTreeItem: typeof import('./components/common/sidebar/SidebarTreeItem.vue')['default']
+ SidebarViewToggle: typeof import('./components/common/sidebar/SidebarViewToggle.vue')['default']
SlotDot: typeof import('./components/v2/nodes/SlotDot.vue')['default']
+ V1SidebarAssetsTab: typeof import('./components/v1/sidebar/V1SidebarAssetsTab.vue')['default']
+ V1SidebarIconBar: typeof import('./components/v1/sidebar/V1SidebarIconBar.vue')['default']
+ V1SidebarModelsTab: typeof import('./components/v1/sidebar/V1SidebarModelsTab.vue')['default']
+ V1SidebarNodesTab: typeof import('./components/v1/sidebar/V1SidebarNodesTab.vue')['default']
+ V1SidebarPanel: typeof import('./components/v1/sidebar/V1SidebarPanel.vue')['default']
+ V1SidebarTemplatesTab: typeof import('./components/v1/sidebar/V1SidebarTemplatesTab.vue')['default']
+ V1SidebarWorkflowsTab: typeof import('./components/v1/sidebar/V1SidebarWorkflowsTab.vue')['default']
+ V2NodePanel: typeof import('./components/v2/sidebar/V2NodePanel.vue')['default']
WidgetColor: typeof import('./components/v2/nodes/widgets/WidgetColor.vue')['default']
WidgetNumber: typeof import('./components/v2/nodes/widgets/WidgetNumber.vue')['default']
WidgetSelect: typeof import('./components/v2/nodes/widgets/WidgetSelect.vue')['default']
WidgetSlider: typeof import('./components/v2/nodes/widgets/WidgetSlider.vue')['default']
WidgetText: typeof import('./components/v2/nodes/widgets/WidgetText.vue')['default']
WidgetToggle: typeof import('./components/v2/nodes/widgets/WidgetToggle.vue')['default']
+ WorkflowsTab: typeof import('./components/v2/workspace/WorkflowsTab.vue')['default']
+ WorkspaceEmptyState: typeof import('./components/v2/workspace/WorkspaceEmptyState.vue')['default']
WorkspaceLayout: typeof import('./components/v2/layout/WorkspaceLayout.vue')['default']
+ WorkspaceSearchInput: typeof import('./components/v2/workspace/WorkspaceSearchInput.vue')['default']
WorkspaceSidebar: typeof import('./components/v2/layout/WorkspaceSidebar.vue')['default']
+ WorkspaceSortSelect: typeof import('./components/v2/workspace/WorkspaceSortSelect.vue')['default']
+ WorkspaceViewHeader: typeof import('./components/v2/workspace/WorkspaceViewHeader.vue')['default']
+ WorkspaceViewToggle: typeof import('./components/v2/workspace/WorkspaceViewToggle.vue')['default']
}
export interface ComponentCustomProperties {
Tooltip: typeof import('primevue/tooltip')['default']
diff --git a/ComfyUI_vibe/src/components/common/sidebar/SidebarGridCard.vue b/ComfyUI_vibe/src/components/common/sidebar/SidebarGridCard.vue
new file mode 100644
index 000000000..b5ca248e7
--- /dev/null
+++ b/ComfyUI_vibe/src/components/common/sidebar/SidebarGridCard.vue
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ props.title }}
+
+
+
+
+ {{ props.subtitle }}
+
+
+
+
+
+
diff --git a/ComfyUI_vibe/src/components/common/sidebar/SidebarSearchBox.vue b/ComfyUI_vibe/src/components/common/sidebar/SidebarSearchBox.vue
new file mode 100644
index 000000000..fb0339466
--- /dev/null
+++ b/ComfyUI_vibe/src/components/common/sidebar/SidebarSearchBox.vue
@@ -0,0 +1,43 @@
+
+
+
+
+
diff --git a/ComfyUI_vibe/src/components/common/sidebar/SidebarTreeCategory.vue b/ComfyUI_vibe/src/components/common/sidebar/SidebarTreeCategory.vue
new file mode 100644
index 000000000..9955153cf
--- /dev/null
+++ b/ComfyUI_vibe/src/components/common/sidebar/SidebarTreeCategory.vue
@@ -0,0 +1,40 @@
+
+
+
+
+
diff --git a/ComfyUI_vibe/src/components/common/sidebar/SidebarTreeItem.vue b/ComfyUI_vibe/src/components/common/sidebar/SidebarTreeItem.vue
new file mode 100644
index 000000000..994742949
--- /dev/null
+++ b/ComfyUI_vibe/src/components/common/sidebar/SidebarTreeItem.vue
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+
+
+
+
+
+ {{ props.label }}
+
+
+ {{ props.sublabel }}
+
+
+
+
+
+ {{ props.badge }}
+
+
+
+
+
+
diff --git a/ComfyUI_vibe/src/components/common/sidebar/SidebarViewToggle.vue b/ComfyUI_vibe/src/components/common/sidebar/SidebarViewToggle.vue
new file mode 100644
index 000000000..23167dd8c
--- /dev/null
+++ b/ComfyUI_vibe/src/components/common/sidebar/SidebarViewToggle.vue
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
diff --git a/ComfyUI_vibe/src/components/common/sidebar/index.ts b/ComfyUI_vibe/src/components/common/sidebar/index.ts
new file mode 100644
index 000000000..2a8ade635
--- /dev/null
+++ b/ComfyUI_vibe/src/components/common/sidebar/index.ts
@@ -0,0 +1,5 @@
+export { default as SidebarTreeCategory } from './SidebarTreeCategory.vue'
+export { default as SidebarTreeItem } from './SidebarTreeItem.vue'
+export { default as SidebarGridCard } from './SidebarGridCard.vue'
+export { default as SidebarViewToggle } from './SidebarViewToggle.vue'
+export { default as SidebarSearchBox } from './SidebarSearchBox.vue'
diff --git a/ComfyUI_vibe/src/components/v1/sidebar/LibraryBrandKitSection.vue b/ComfyUI_vibe/src/components/v1/sidebar/LibraryBrandKitSection.vue
new file mode 100644
index 000000000..bac8edce4
--- /dev/null
+++ b/ComfyUI_vibe/src/components/v1/sidebar/LibraryBrandKitSection.vue
@@ -0,0 +1,106 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ asset.name }}
+
+
+
+
+
+
+
+
+
+ Brand Kit
+
+
+
+
+
+
+
+
{{ asset.name }}
+
+
+
+
diff --git a/ComfyUI_vibe/src/components/v1/sidebar/LibraryModelsSection.vue b/ComfyUI_vibe/src/components/v1/sidebar/LibraryModelsSection.vue
new file mode 100644
index 000000000..e7ca9ab14
--- /dev/null
+++ b/ComfyUI_vibe/src/components/v1/sidebar/LibraryModelsSection.vue
@@ -0,0 +1,98 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ model.name }}
+
+ {{ getModelTypeLabel(model.type) }}
+
+
+
+ {{ model.size }}
+ {{ model.downloads }} downloads
+
+
+
+
+
+
+
+
+
+
+
+ Team Models
+
+
+
+
+
+ {{ getModelTypeLabel(model.type) }}
+
+ {{ model.size }}
+
+
+ {{ model.name }}
+
+
+ {{ model.downloads }} downloads
+
+
+
+
+
diff --git a/ComfyUI_vibe/src/components/v1/sidebar/LibraryNodesSection.vue b/ComfyUI_vibe/src/components/v1/sidebar/LibraryNodesSection.vue
new file mode 100644
index 000000000..804759d30
--- /dev/null
+++ b/ComfyUI_vibe/src/components/v1/sidebar/LibraryNodesSection.vue
@@ -0,0 +1,103 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ pack.name }}
+
+ v{{ pack.version }}
+
+
+
+ {{ pack.nodes }} nodes
+ {{ pack.author }}
+
+
+
+
+
+
+
+
+
+
+
+ Custom Nodes
+
+
+
+
+
+ v{{ pack.version }}
+
+
+ {{ pack.installed ? 'Installed' : pack.nodes + ' nodes' }}
+
+
+
+ {{ pack.name }}
+
+
+ {{ pack.author }}
+
+
+
+
+
diff --git a/ComfyUI_vibe/src/components/v1/sidebar/LibraryWorkflowsSection.vue b/ComfyUI_vibe/src/components/v1/sidebar/LibraryWorkflowsSection.vue
new file mode 100644
index 000000000..3d9eb1ee4
--- /dev/null
+++ b/ComfyUI_vibe/src/components/v1/sidebar/LibraryWorkflowsSection.vue
@@ -0,0 +1,87 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ workflow.name }}
+
+
+ {{ workflow.nodes }} nodes
+ {{ workflow.updatedAt }}
+
+
+
+
+
+
+
+
+
+
+
+ Shared Workflows
+
+
+
+
+
+
+
+ {{ workflow.nodes }}
+
+
+
+ {{ workflow.name }}
+
+
+ {{ workflow.updatedAt }}
+
+
+
+
+
diff --git a/ComfyUI_vibe/src/components/v1/sidebar/V1SidebarAssetsTab.vue b/ComfyUI_vibe/src/components/v1/sidebar/V1SidebarAssetsTab.vue
new file mode 100644
index 000000000..5427f2ef8
--- /dev/null
+++ b/ComfyUI_vibe/src/components/v1/sidebar/V1SidebarAssetsTab.vue
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+ {{ asset.name }}
+
+
+
diff --git a/ComfyUI_vibe/src/components/v1/sidebar/V1SidebarIconBar.vue b/ComfyUI_vibe/src/components/v1/sidebar/V1SidebarIconBar.vue
new file mode 100644
index 000000000..ff11f7a55
--- /dev/null
+++ b/ComfyUI_vibe/src/components/v1/sidebar/V1SidebarIconBar.vue
@@ -0,0 +1,55 @@
+
+
+
+
+
diff --git a/ComfyUI_vibe/src/components/v1/sidebar/V1SidebarModelsTab.vue b/ComfyUI_vibe/src/components/v1/sidebar/V1SidebarModelsTab.vue
new file mode 100644
index 000000000..134eee377
--- /dev/null
+++ b/ComfyUI_vibe/src/components/v1/sidebar/V1SidebarModelsTab.vue
@@ -0,0 +1,81 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ model.display }}
+
+
{{ model.size }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ model.size }}
+
+
+
+
+
+
diff --git a/ComfyUI_vibe/src/components/v1/sidebar/V1SidebarNodesTab.vue b/ComfyUI_vibe/src/components/v1/sidebar/V1SidebarNodesTab.vue
new file mode 100644
index 000000000..f0340ac04
--- /dev/null
+++ b/ComfyUI_vibe/src/components/v1/sidebar/V1SidebarNodesTab.vue
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ComfyUI_vibe/src/components/v1/sidebar/V1SidebarPanel.vue b/ComfyUI_vibe/src/components/v1/sidebar/V1SidebarPanel.vue
new file mode 100644
index 000000000..59c10d129
--- /dev/null
+++ b/ComfyUI_vibe/src/components/v1/sidebar/V1SidebarPanel.vue
@@ -0,0 +1,192 @@
+
+
+
+
+
diff --git a/ComfyUI_vibe/src/components/v1/sidebar/V1SidebarTemplatesTab.vue b/ComfyUI_vibe/src/components/v1/sidebar/V1SidebarTemplatesTab.vue
new file mode 100644
index 000000000..c00d231f9
--- /dev/null
+++ b/ComfyUI_vibe/src/components/v1/sidebar/V1SidebarTemplatesTab.vue
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ template.display }}
+
+
{{ template.description }}
+
+
+ {{ template.nodes }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ template.nodes }} nodes
+
+
+
+
+
+
diff --git a/ComfyUI_vibe/src/components/v1/sidebar/V1SidebarWorkflowsTab.vue b/ComfyUI_vibe/src/components/v1/sidebar/V1SidebarWorkflowsTab.vue
new file mode 100644
index 000000000..3124d3b04
--- /dev/null
+++ b/ComfyUI_vibe/src/components/v1/sidebar/V1SidebarWorkflowsTab.vue
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ workflow.nodes }} nodes
+
+
+
+
+
+
{{ workflow.name }}
+
{{ workflow.date }}
+
+
+
+
+
+
diff --git a/ComfyUI_vibe/src/components/v1/sidebar/index.ts b/ComfyUI_vibe/src/components/v1/sidebar/index.ts
new file mode 100644
index 000000000..3202451dc
--- /dev/null
+++ b/ComfyUI_vibe/src/components/v1/sidebar/index.ts
@@ -0,0 +1,7 @@
+export { default as V1SidebarPanel } from './V1SidebarPanel.vue'
+export { default as V1SidebarIconBar } from './V1SidebarIconBar.vue'
+export { default as V1SidebarNodesTab } from './V1SidebarNodesTab.vue'
+export { default as V1SidebarModelsTab } from './V1SidebarModelsTab.vue'
+export { default as V1SidebarWorkflowsTab } from './V1SidebarWorkflowsTab.vue'
+export { default as V1SidebarAssetsTab } from './V1SidebarAssetsTab.vue'
+export { default as V1SidebarTemplatesTab } from './V1SidebarTemplatesTab.vue'
diff --git a/ComfyUI_vibe/src/components/v2/canvas/CanvasBottomBar.vue b/ComfyUI_vibe/src/components/v2/canvas/CanvasBottomBar.vue
index a451a1909..1cadb4622 100644
--- a/ComfyUI_vibe/src/components/v2/canvas/CanvasBottomBar.vue
+++ b/ComfyUI_vibe/src/components/v2/canvas/CanvasBottomBar.vue
@@ -1,5 +1,5 @@
@@ -47,116 +146,298 @@ const mockTemplates = [
-
-
-
- {{ BOTTOM_BAR_TABS.find(t => t.id === activeBottomTab)?.label }}
-
-
-
-
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
-
{{ model.name }}
-
{{ model.type }}
+
+
+
+
+
+
+
+
+
+ {{ BOTTOM_BAR_TABS.find(t => t.id === activeBottomTab)?.label }}
+
+
+
+
+
-
-
-
-
{{ workflow.name }}
-
{{ workflow.date }}
+
+
+
+
+
+
+ ⌘K
+
+
+
+
+ Sort:
+
-
-
-
+
+
+
+
+
+
+
Recents
+
+
-
-
+
+
+
-
-
+
+
- {{ template.category }}
-
- {{ template.nodes }} nodes
-
- {{ template.name }}
-
-
-
-
-
+
+
+
+ {{ model.type }}
+
+
+
{{ model.name }}
+
{{ model.size }}
+
+
+
-
-
-
-
Bookmarked items will appear here
+
+
+
+
+
+
+ {{ workflow.nodes }} nodes
+
+
+
{{ workflow.name }}
+
{{ workflow.date }}
+
+
+
+
+
+
+
+
+
+
+
+
+
{{ asset.name }}
+
{{ asset.size }}
+
+
+
+
+
+
+
+
+
+
+
+ {{ template.category }}
+
+
+
+
{{ template.name }}
+
{{ template.nodes }} nodes
+
+
+
+
+
+
+
+
+
+
+
+ Installed
+
+
+
+
{{ pkg.name }}
+
{{ pkg.author }} · v{{ pkg.version }}
+
+
+
+
+
+
+
+
+ No bookmarks yet
+ Bookmarked items will appear here
+
-
+