diff --git a/packages/devtools/app/components/ComponentProps.vue b/packages/devtools/app/components/ComponentProps.vue
index e253a5ac..39401861 100644
--- a/packages/devtools/app/components/ComponentProps.vue
+++ b/packages/devtools/app/components/ComponentProps.vue
@@ -30,7 +30,7 @@ function onResetState() {
if (isRotated.value) return
setTimeout(() => isRotated.value = false, 500)
isRotated.value = true
- modelValue.value = { ...props.defaultValue }
+ modelValue.value = structuredClone(props.defaultValue ?? {})
}
diff --git a/packages/devtools/app/components/inputs/ArrayInput.vue b/packages/devtools/app/components/inputs/ArrayInput.vue
index e8477b18..ff5b07d0 100644
--- a/packages/devtools/app/components/inputs/ArrayInput.vue
+++ b/packages/devtools/app/components/inputs/ArrayInput.vue
@@ -8,6 +8,7 @@ const modelValue = defineModel
>()
function removeArrayItem(index: number) {
if (!modelValue.value) return
modelValue.value.splice(index, 1)
+ modelValue.value = [...modelValue.value]
}
function addArrayItem() {
@@ -15,6 +16,7 @@ function addArrayItem() {
modelValue.value = [null]
} else {
modelValue.value.push(null)
+ modelValue.value = [...modelValue.value]
}
openedItem.value = modelValue.value?.length - 1
}
diff --git a/packages/devtools/app/pages/components.vue b/packages/devtools/app/pages/components.vue
index f1c3f999..bd3d15be 100644
--- a/packages/devtools/app/pages/components.vue
+++ b/packages/devtools/app/pages/components.vue
@@ -107,7 +107,7 @@ watch([componentMeta, exampleMeta], async ([newComponentMeta, newExampleMeta]) =
}
if (!touched.value) {
- props.value = { ...defaultProps.value, ...compodiumDefaultProps.value }
+ props.value = structuredClone({ ...defaultProps.value, ...compodiumDefaultProps.value })
combo.value = [...(
newExampleMeta?.compodium?.combo