diff --git a/packages/web/src/dbkeyvalue/DbKeyItemDetail.svelte b/packages/web/src/dbkeyvalue/DbKeyItemDetail.svelte
index 4eedff2db..9f1d224b8 100644
--- a/packages/web/src/dbkeyvalue/DbKeyItemDetail.svelte
+++ b/packages/web/src/dbkeyvalue/DbKeyItemDetail.svelte
@@ -28,6 +28,9 @@
.props {
flex: 1;
display: flex;
- flex-direction: column;
+ flex-direction: row;
+ gap: 10px;
+ padding: 10px;
+ overflow: hidden;
}
diff --git a/packages/web/src/dbkeyvalue/DbKeyValueListEdit.svelte b/packages/web/src/dbkeyvalue/DbKeyValueListEdit.svelte
new file mode 100644
index 000000000..1c7977dc6
--- /dev/null
+++ b/packages/web/src/dbkeyvalue/DbKeyValueListEdit.svelte
@@ -0,0 +1,97 @@
+
+
+
+ {#each records as record, index}
+
+
+
+ handleFieldChange(index, 'value', e.target.value)}
+ disabled={keyColumn === 'value'}
+ />
+
+
+
+ {/each}
+
+
+
+
+
+
+
diff --git a/packages/web/src/dbkeyvalue/DbKeyValueSetEdit.svelte b/packages/web/src/dbkeyvalue/DbKeyValueSetEdit.svelte
new file mode 100644
index 000000000..259b6fc57
--- /dev/null
+++ b/packages/web/src/dbkeyvalue/DbKeyValueSetEdit.svelte
@@ -0,0 +1,97 @@
+
+
+
+ {#each records as record, index}
+
+
+
+ handleFieldChange(index, 'value', e.target.value)}
+ disabled={keyColumn === 'value'}
+ />
+
+
+
+ {/each}
+
+
+
+
+
+
+
diff --git a/packages/web/src/dbkeyvalue/DbKeyValueStreamEdit.svelte b/packages/web/src/dbkeyvalue/DbKeyValueStreamEdit.svelte
new file mode 100644
index 000000000..2cf328fb6
--- /dev/null
+++ b/packages/web/src/dbkeyvalue/DbKeyValueStreamEdit.svelte
@@ -0,0 +1,112 @@
+
+
+
+ {#each records as record, index}
+
+
+
+ handleFieldChange(index, 'id', e.target.value)}
+ disabled={keyColumn === 'id'}
+ placeholder="* for auto"
+ />
+
+
+
+
+ handleFieldChange(index, 'value', e.target.value)}
+ disabled={keyColumn === 'value'}
+ />
+
+
+
+ {/each}
+
+
+
+
+
+
+
diff --git a/packages/web/src/dbkeyvalue/DbKeyValueZSetEdit.svelte b/packages/web/src/dbkeyvalue/DbKeyValueZSetEdit.svelte
new file mode 100644
index 000000000..0dbe03f0f
--- /dev/null
+++ b/packages/web/src/dbkeyvalue/DbKeyValueZSetEdit.svelte
@@ -0,0 +1,111 @@
+
+
+
+ {#each records as record, index}
+
+
+
+ handleFieldChange(index, 'member', e.target.value)}
+ disabled={keyColumn === 'member'}
+ />
+
+
+
+
+ handleFieldChange(index, 'score', e.target.value)}
+ disabled={keyColumn === 'score'}
+ />
+
+
+
+ {/each}
+
+
+
+
+
+
+
diff --git a/packages/web/src/tabs/DbKeyTab.svelte b/packages/web/src/tabs/DbKeyTab.svelte
index 3b9b1d661..8aaaa8fe3 100644
--- a/packages/web/src/tabs/DbKeyTab.svelte
+++ b/packages/web/src/tabs/DbKeyTab.svelte
@@ -1,6 +1,10 @@