diff --git a/packages/compiler-dom/__tests__/transforms/__snapshots__/vModel.spec.ts.snap b/packages/compiler-dom/__tests__/transforms/__snapshots__/vModel.spec.ts.snap index b357ac15a1b..4cece4060cd 100644 --- a/packages/compiler-dom/__tests__/transforms/__snapshots__/vModel.spec.ts.snap +++ b/packages/compiler-dom/__tests__/transforms/__snapshots__/vModel.spec.ts.snap @@ -143,6 +143,22 @@ return function render(_ctx, _cache) { }" `; +exports[`compiler: transform v-model > simple expression for details 1`] = ` +"const _Vue = Vue + +return function render(_ctx, _cache) { + with (_ctx) { + const { vModelDetails: _vModelDetails, withDirectives: _withDirectives, openBlock: _openBlock, createElementBlock: _createElementBlock } = _Vue + + return _withDirectives((_openBlock(), _createElementBlock("details", { + "onUpdate:modelValue": $event => ((model) = $event) + }, null, 8 /* PROPS */, ["onUpdate:modelValue"])), [ + [_vModelDetails, model] + ]) + } +}" +`; + exports[`compiler: transform v-model > simple expression for input (checkbox) 1`] = ` "const _Vue = Vue diff --git a/packages/compiler-dom/__tests__/transforms/vModel.spec.ts b/packages/compiler-dom/__tests__/transforms/vModel.spec.ts index 6fe39900ca8..3a466e3f7f7 100644 --- a/packages/compiler-dom/__tests__/transforms/vModel.spec.ts +++ b/packages/compiler-dom/__tests__/transforms/vModel.spec.ts @@ -10,6 +10,7 @@ import { transformElement } from '../../../compiler-core/src/transforms/transfor import { DOMErrorCodes } from '../../src/errors' import { V_MODEL_CHECKBOX, + V_MODEL_DETAILS, V_MODEL_DYNAMIC, V_MODEL_RADIO, V_MODEL_SELECT, @@ -99,6 +100,12 @@ describe('compiler: transform v-model', () => { expect(generate(root).code).toMatchSnapshot() }) + test('simple expression for details', () => { + const root = transformWithModel('
') + expect(root.helpers).toContain(V_MODEL_DETAILS) + expect(generate(root).code).toMatchSnapshot() + }) + describe('errors', () => { test('plain elements with argument', () => { const onError = vi.fn() diff --git a/packages/compiler-dom/src/errors.ts b/packages/compiler-dom/src/errors.ts index 788de930699..99afd0756da 100644 --- a/packages/compiler-dom/src/errors.ts +++ b/packages/compiler-dom/src/errors.ts @@ -53,7 +53,7 @@ export const DOMErrorMessages: Record = { [DOMErrorCodes.X_V_HTML_WITH_CHILDREN]: `v-html will override element children.`, [DOMErrorCodes.X_V_TEXT_NO_EXPRESSION]: `v-text is missing expression.`, [DOMErrorCodes.X_V_TEXT_WITH_CHILDREN]: `v-text will override element children.`, - [DOMErrorCodes.X_V_MODEL_ON_INVALID_ELEMENT]: `v-model can only be used on ,