diff --git a/src/lib/components/ComfyApp.svelte b/src/lib/components/ComfyApp.svelte
index 30896d3..a8df899 100644
--- a/src/lib/components/ComfyApp.svelte
+++ b/src/lib/components/ComfyApp.svelte
@@ -177,7 +177,6 @@
diff --git a/src/lib/components/ComfyUIPane.svelte b/src/lib/components/ComfyUIPane.svelte
index dd0cf7d..88f5bac 100644
--- a/src/lib/components/ComfyUIPane.svelte
+++ b/src/lib/components/ComfyUIPane.svelte
@@ -1,4 +1,5 @@
-
+
+{#if showMenu}
+
+{/if}
+
diff --git a/src/lib/components/WidgetContainer.svelte b/src/lib/components/WidgetContainer.svelte
index 37df5e9..3aa9c66 100644
--- a/src/lib/components/WidgetContainer.svelte
+++ b/src/lib/components/WidgetContainer.svelte
@@ -22,6 +22,7 @@
let widget: WidgetLayout | null = null;
let widgetState: WidgetUIState | null = null;
let children: IDragItem[] | null = null;
+ let showHandles: boolean = false;
const flipDurationMs = 100;
$: if (dragItem) {
@@ -38,6 +39,10 @@
}
}
+ $: showHandles = $uiState.uiEditMode === "widgets" // TODO
+ && zIndex > 1
+ && !$layoutState.isMenuOpen
+
function handleConsider(evt: any) {
children = layoutState.updateChildren(dragItem, evt.detail.items)
// console.log(dragItems);
@@ -49,6 +54,9 @@
};
const startDrag = (evt: MouseEvent) => {
+ if (evt.button === 2)
+ return;
+
const dragItemId: string = evt.target.dataset["dragItemId"];
const item = $layoutState.allItems[dragItemId].dragItem
if (evt.ctrlKey) {
@@ -79,12 +87,12 @@
- {#if $uiState.uiEditMode === "containers" && zIndex > 1}
+ {#if showHandles}
{/if}
@@ -131,7 +139,7 @@
>
- {#if $uiState.uiEditMode ==="widgets" && zIndex > 1}
+ {#if showHandles}
{/if}
{/if}
@@ -197,10 +205,12 @@
}
}
- .container, .widget {
- &.selected {
- background: var(--color-yellow-200);
- }
+ .widget.selected {
+ background: var(--color-yellow-200);
+ }
+
+ .container.selected > :global(.block) {
+ background: var(--color-yellow-300);
}
.is-executing {
@@ -286,7 +296,7 @@
border-width: 2px;
border-style: dashed !important;
margin: 0.2em;
- padding: 1.2em;
+ padding: 0.2em;
}
.widget-edit-outline {
diff --git a/src/lib/components/menu/ContextMenu.svelte b/src/lib/components/menu/ContextMenu.svelte
new file mode 100644
index 0000000..a4c963a
--- /dev/null
+++ b/src/lib/components/menu/ContextMenu.svelte
@@ -0,0 +1,47 @@
+
+
+{#if showMenu}
+
+{/if}
+
+
diff --git a/src/lib/components/menu/Icon.svelte b/src/lib/components/menu/Icon.svelte
new file mode 100644
index 0000000..0af8dc8
--- /dev/null
+++ b/src/lib/components/menu/Icon.svelte
@@ -0,0 +1,3 @@
+
diff --git a/src/lib/components/menu/Menu.svelte b/src/lib/components/menu/Menu.svelte
new file mode 100644
index 0000000..6322a94
--- /dev/null
+++ b/src/lib/components/menu/Menu.svelte
@@ -0,0 +1,45 @@
+
+
+
+
+
+
diff --git a/src/lib/components/menu/MenuDivider.svelte b/src/lib/components/menu/MenuDivider.svelte
new file mode 100644
index 0000000..13041d5
--- /dev/null
+++ b/src/lib/components/menu/MenuDivider.svelte
@@ -0,0 +1,9 @@
+
+
+
diff --git a/src/lib/components/menu/MenuOption.svelte b/src/lib/components/menu/MenuOption.svelte
new file mode 100644
index 0000000..bb7cca9
--- /dev/null
+++ b/src/lib/components/menu/MenuOption.svelte
@@ -0,0 +1,50 @@
+
+
+
+ {#if text}
+ {text}
+ {:else}
+
+ {/if}
+
+
+
diff --git a/src/lib/components/menu/menu.ts b/src/lib/components/menu/menu.ts
new file mode 100644
index 0000000..108b2fd
--- /dev/null
+++ b/src/lib/components/menu/menu.ts
@@ -0,0 +1,3 @@
+const key = {};
+
+export { key };
diff --git a/src/lib/stores/layoutState.ts b/src/lib/stores/layoutState.ts
index f351bf2..fbf5ce8 100644
--- a/src/lib/stores/layoutState.ts
+++ b/src/lib/stores/layoutState.ts
@@ -16,7 +16,8 @@ export type LayoutState = {
root: IDragItem | null,
allItems: Record
,
currentId: number,
- currentSelection: IDragItem[]
+ currentSelection: DragItemID[],
+ isMenuOpen: boolean
}
export type Attributes = {
@@ -62,7 +63,8 @@ const store: Writable = writable({
root: null,
allItems: [],
currentId: 0,
- currentSelection: []
+ currentSelection: [],
+ isMenuOpen: false
})
function findDefaultContainerForInsertion(): ContainerLayout | null {