@adyen/eslint-plugin-bento 2.6.4 → 2.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # Changelog
2
2
 
3
+ ## 2.7.1 (2026-03-04)
4
+
5
+ This was a version bump only for eslint to align it with other projects, there were no code changes.
6
+
7
+
8
+ ## 2.7.0 (2026-02-25)
9
+
10
+ ### Miscellaneous Chores
11
+
12
+ - added deprecation rules to migrate from `value` to `model-value` ([05241680e](https://github.com/Adyen/bento/commit/05241680e))
13
+
14
+ ### ❤️ Thank You
15
+
16
+ - mafalda
17
+
18
+
3
19
  ## 2.6.4 (2026-02-19)
4
20
 
5
21
  This was a version bump only for eslint to align it with other projects, there were no code changes.
@@ -11,6 +11,8 @@ module.exports = [
11
11
  },
12
12
  },
13
13
  rules: {
14
+ '@adyen/bento/deprecation-components-input-emit': 'warn',
15
+ '@adyen/bento/deprecation-components-value-prop': 'warn',
14
16
  '@adyen/bento/deprecation-currency-default-slot': 'warn',
15
17
  '@adyen/bento/deprecation-tag-default-slot': 'warn',
16
18
  '@adyen/bento/vue-old-spacer-tokens': 'warn',
@@ -11,6 +11,8 @@ module.exports = [
11
11
  },
12
12
  },
13
13
  rules: {
14
+ '@adyen/bento/deprecation-components-input-emit': 'error',
15
+ '@adyen/bento/deprecation-components-value-prop': 'error',
14
16
  '@adyen/bento/deprecation-currency-default-slot': 'error',
15
17
  '@adyen/bento/deprecation-tag-default-slot': 'error',
16
18
  '@adyen/bento/vue-old-spacer-tokens': 'error',
package/index.js CHANGED
@@ -11,6 +11,8 @@ const plugin = {
11
11
  'vue-strict': require('./configs/vue-strict'),
12
12
  },
13
13
  rules: {
14
+ 'deprecation-components-input-emit': require('./rules/deprecation-components-input-emit/deprecation-components-input-emit'),
15
+ 'deprecation-components-value-prop': require('./rules/deprecation-components-value-prop/deprecation-components-value-prop'),
14
16
  'deprecation-currency-default-slot': require('./rules/deprecation-currency-default-slot/deprecation-currency-default-slot'),
15
17
  'deprecation-tag-default-slot': require('./rules/deprecation-tag-default-slot/deprecation-tag-default-slot'),
16
18
  'vue-old-spacer-tokens': require('./rules/vue-old-spacer-tokens/vue-old-spacer-tokens'),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adyen/eslint-plugin-bento",
3
- "version": "2.6.4",
3
+ "version": "2.7.1",
4
4
  "description": "Adyen Bento ESLint rules",
5
5
  "main": "index.js",
6
6
  "files": [
@@ -0,0 +1,160 @@
1
+ # deprecation-components-input-emit
2
+
3
+ ## Description
4
+
5
+ The `input` emit in the following components is deprecated:
6
+
7
+ - `bento-date-picker`
8
+ - `bento-date-range-picker`
9
+ - `bento-dropdown`
10
+ - `bento-dropdown-avatar`
11
+ - `bento-dropdown-country`
12
+ - `bento-dropdown-currency`
13
+ - `bento-dropdown-payment-method`
14
+ - `bento-dropdown-tag`
15
+ - `bento-file-uploader`
16
+ - `bento-input-field`
17
+ - `bento-input-field-password`
18
+ - `bento-input-field-phone-number`
19
+ - `bento-checkbox-group`
20
+ - `bento-radio-group`
21
+ - `bento-selection-card-group`
22
+ - `bento-textarea`
23
+
24
+ Please use `update:model-value` instead.
25
+
26
+ ## Rule Details
27
+
28
+ This rule reports usages of the deprecated item.
29
+
30
+ ### ❌ Incorrect
31
+
32
+ ```html
33
+ <bento-date-picker @input="handler" />
34
+ ```
35
+
36
+ ```html
37
+ <bento-date-range-picker @input="handler" />
38
+ ```
39
+
40
+ ```html
41
+ <bento-dropdown @input="handler" />
42
+ ```
43
+
44
+ ```html
45
+ <bento-dropdown-avatar @input="handler" />
46
+ ```
47
+
48
+ ```html
49
+ <bento-dropdown-country @input="handler" />
50
+ ```
51
+
52
+ ```html
53
+ <bento-dropdown-currency @input="handler" />
54
+ ```
55
+
56
+ ```html
57
+ <bento-dropdown-payment-method @input="handler" />
58
+ ```
59
+
60
+ ```html
61
+ <bento-dropdown-tag @input="handler" />
62
+ ```
63
+
64
+ ```html
65
+ <bento-file-uploader @input="handler" />
66
+ ```
67
+
68
+ ```html
69
+ <bento-input-field @input="handler" />
70
+ ```
71
+
72
+ ```html
73
+ <bento-input-field-password @input="handler" />
74
+ ```
75
+
76
+ ```html
77
+ <bento-input-field-phone-number @input="handler" />
78
+ ```
79
+
80
+ ```html
81
+ <bento-checkbox-group @input="handler" />
82
+ ```
83
+
84
+ ```html
85
+ <bento-radio-group @input="handler" />
86
+ ```
87
+
88
+ ```html
89
+ <bento-selection-card-group @input="handler" />
90
+ ```
91
+
92
+ ```html
93
+ <bento-textarea @input="handler" />
94
+ ```
95
+
96
+ ### ✅ Correct
97
+
98
+ ```html
99
+ <bento-date-picker @update:model-value="handler" />
100
+ ```
101
+
102
+ ```html
103
+ <bento-date-range-picker @update:model-value="handler" />
104
+ ```
105
+
106
+ ```html
107
+ <bento-dropdown @update:model-value="handler" />
108
+ ```
109
+
110
+ ```html
111
+ <bento-dropdown-avatar @update:model-value="handler" />
112
+ ```
113
+
114
+ ```html
115
+ <bento-dropdown-country @update:model-value="handler" />
116
+ ```
117
+
118
+ ```html
119
+ <bento-dropdown-currency @update:model-value="handler" />
120
+ ```
121
+
122
+ ```html
123
+ <bento-dropdown-payment-method @update:model-value="handler" />
124
+ ```
125
+
126
+ ```html
127
+ <bento-dropdown-tag @update:model-value="handler" />
128
+ ```
129
+
130
+ ```html
131
+ <bento-file-uploader @update:model-value="handler" />
132
+ ```
133
+
134
+ ```html
135
+ <bento-input-field @update:model-value="handler" />
136
+ ```
137
+
138
+ ```html
139
+ <bento-input-field-password @update:model-value="handler" />
140
+ ```
141
+
142
+ ```html
143
+ <bento-input-field-phone-number @update:model-value="handler" />
144
+ ```
145
+
146
+ ```html
147
+ <bento-checkbox-group @update:model-value="handler" />
148
+ ```
149
+
150
+ ```html
151
+ <bento-radio-group @update:model-value="handler" />
152
+ ```
153
+
154
+ ```html
155
+ <bento-selection-card-group @update:model-value="handler" />
156
+ ```
157
+
158
+ ```html
159
+ <bento-textarea @update:model-value="handler" />
160
+ ```
@@ -0,0 +1,22 @@
1
+ <template>
2
+ <div>
3
+ <bento-date-picker @input="handler" />
4
+ <bento-date-range-picker @input="handler" />
5
+ <bento-dropdown @input="handler" />
6
+ <bento-dropdown-avatar @input="handler" />
7
+ <bento-dropdown-country @input="handler" />
8
+ <bento-dropdown-currency @input="handler" />
9
+ <bento-dropdown-payment-method @input="handler" />
10
+ <bento-dropdown-tag @input="handler" />
11
+ <bento-file-uploader @input="handler" />
12
+ <bento-input-field @input="handler" />
13
+ <bento-input-field-password @input="handler" />
14
+ <bento-input-field-phone-number @input="handler" />
15
+ <bento-checkbox-group @input="handler" />
16
+ <bento-radio-group @input="handler" />
17
+ <bento-selection-card-group @input="handler" />
18
+ <bento-textarea @input="handler" />
19
+ </div>
20
+ </template>
21
+
22
+ <script setup></script>
@@ -0,0 +1,25 @@
1
+ const { defineConfig } = require('eslint/config');
2
+ const vueParser = require('vue-eslint-parser');
3
+ const tsParser = require('@typescript-eslint/parser');
4
+ const adyenBento = require('@adyen/eslint-plugin-bento');
5
+
6
+ module.exports = defineConfig([
7
+ {
8
+ languageOptions: {
9
+ ecmaVersion: 'latest',
10
+ sourceType: 'module',
11
+ parser: vueParser,
12
+ parserOptions: {
13
+ parser: tsParser,
14
+ },
15
+ },
16
+ plugins: {
17
+ '@adyen/bento': adyenBento,
18
+ },
19
+ rules: {
20
+ // Register the specific rule we are testing
21
+ '@adyen/bento/deprecation-components-input-emit': 'warn',
22
+ },
23
+ files: ['**/*.vue'],
24
+ },
25
+ ]);
@@ -0,0 +1,35 @@
1
+ import path from 'node:path';
2
+ import { execFileSyncEslintVueFiles } from '../../utils/exec-file-sync-eslint-vue-files';
3
+
4
+ describe('@adyen/bento/deprecation-components-input-emit', () => {
5
+ it('should lint with warning', () => {
6
+ // Load .eslintrc
7
+ const eslintrc = path.resolve(__dirname, '__tests__', 'eslint.config.js');
8
+ // Load the test file generated alongside this one
9
+ const vueFile = path.resolve(__dirname, '__tests__', 'deprecation-components-input-emit.vue');
10
+
11
+ // Execute the linter
12
+ const result = JSON.parse(execFileSyncEslintVueFiles(eslintrc, vueFile));
13
+
14
+ /* ------------------------------------------------ */
15
+ /* CASE 2: SINGLE REPLACEMENT */
16
+ /* ------------------------------------------------ */
17
+
18
+ // For emits/slots, we generate 1 example FOR EACH component.
19
+ expect(result[0].warningCount).toBe(16);
20
+
21
+ // Verify the message structure on the first error found.
22
+ // Since the rule is the same for all components, checking the first one confirms the message is correct.
23
+ expect(result[0].messages[0]).toMatchObject({
24
+ ruleId: '@adyen/bento/deprecation-components-input-emit',
25
+ severity: 1,
26
+
27
+ messageId: 'deprecation',
28
+ message: `The "input" emit is deprecated. Please use "update:model-value" instead.`,
29
+
30
+ fix: expect.objectContaining({
31
+ text: expect.stringContaining('update:model-value'),
32
+ }),
33
+ });
34
+ });
35
+ });
@@ -0,0 +1,48 @@
1
+ /**
2
+ * @typedef {import('eslint').Rule.RuleContext} RuleContext
3
+ */
4
+ /**
5
+ * @typedef {import('eslint-plugin-vue/lib/utils').RuleModule} RuleModule
6
+ */
7
+
8
+ const VueUtils = require('eslint-plugin-vue/lib/utils');
9
+
10
+ /** @type {RuleModule} */
11
+ module.exports = {
12
+ meta: {
13
+ type: 'suggestion',
14
+ docs: {
15
+ description:
16
+ 'Deprecates usage of input emit in bento-date-picker, bento-date-range-picker, bento-dropdown, bento-dropdown-avatar, bento-dropdown-country, bento-dropdown-currency, bento-dropdown-payment-method, bento-dropdown-tag, bento-file-uploader, bento-input-field, bento-input-field-password, bento-input-field-phone-number, bento-checkbox-group, bento-radio-group, bento-selection-card-group, bento-textarea',
17
+ category: 'Deprecations',
18
+ url: 'https://github.com/Adyen/bento/blob/main/packages/eslint/rules/deprecation-components-input-emit/README.md',
19
+ recommended: true,
20
+ },
21
+ messages: {
22
+ deprecation: `The "input" emit is deprecated. Please use "update:model-value" instead.`,
23
+ },
24
+ fixable: 'code',
25
+ schema: [],
26
+ },
27
+
28
+ /** @param {RuleContext} context */
29
+ create(context) {
30
+ /* ------------------------------------------------ */
31
+ /* CASE 3: EMIT DEPRECATION (Multiple Components) */
32
+ /* ------------------------------------------------ */
33
+ return VueUtils.defineTemplateBodyVisitor(context, {
34
+ // @click="foo" or v-on:click="foo"
35
+ [`VElement:matches([name="bento-date-picker"], [name="BentoDatePicker"], [name="bento-date-range-picker"], [name="BentoDateRangePicker"], [name="bento-dropdown"], [name="BentoDropdown"], [name="bento-dropdown-avatar"], [name="BentoDropdownAvatar"], [name="bento-dropdown-country"], [name="BentoDropdownCountry"], [name="bento-dropdown-currency"], [name="BentoDropdownCurrency"], [name="bento-dropdown-payment-method"], [name="BentoDropdownPaymentMethod"], [name="bento-dropdown-tag"], [name="BentoDropdownTag"], [name="bento-file-uploader"], [name="BentoFileUploader"], [name="bento-input-field"], [name="BentoInputField"], [name="bento-input-field-password"], [name="BentoInputFieldPassword"], [name="bento-input-field-phone-number"], [name="BentoInputFieldPhoneNumber"], [name="bento-checkbox-group"], [name="BentoCheckboxGroup"], [name="bento-radio-group"], [name="BentoRadioGroup"], [name="bento-selection-card-group"], [name="BentoSelectionCardGroup"], [name="bento-textarea"], [name="BentoTextarea"]) > VStartTag > VAttribute[directive=true][key.name.name="on"][key.argument.name="input"]`](
36
+ node
37
+ ) {
38
+ context.report({
39
+ node,
40
+ messageId: 'deprecation',
41
+ fix(fixer) {
42
+ return fixer.replaceText(node.key.argument, 'update:model-value');
43
+ },
44
+ });
45
+ },
46
+ });
47
+ },
48
+ };
@@ -0,0 +1,280 @@
1
+ import { RuleTester } from 'eslint';
2
+ import vueParser from 'vue-eslint-parser';
3
+ import tsParser from '@typescript-eslint/parser';
4
+ import deprecationComponentsInputEmit from './deprecation-components-input-emit';
5
+
6
+ const ruleTester = new RuleTester({
7
+ languageOptions: {
8
+ ecmaVersion: 'latest',
9
+ sourceType: 'module',
10
+ parser: vueParser,
11
+ parserOptions: {
12
+ parser: tsParser,
13
+ },
14
+ },
15
+ });
16
+
17
+ describe('@adyen/bento/deprecation-components-input-emit', () => {
18
+ ruleTester.run('deprecation-components-input-emit', deprecationComponentsInputEmit, {
19
+ valid: [
20
+ {
21
+ name: 'Valid usage for bento-date-picker',
22
+ filename: 'test.vue',
23
+ code: `
24
+ <template>
25
+ <bento-date-picker @update:model-value="val" />
26
+ </template>
27
+ `,
28
+ },
29
+ {
30
+ name: 'Valid usage for bento-date-range-picker',
31
+ filename: 'test.vue',
32
+ code: `
33
+ <template>
34
+ <bento-date-range-picker @update:model-value="val" />
35
+ </template>
36
+ `,
37
+ },
38
+ {
39
+ name: 'Valid usage for bento-dropdown',
40
+ filename: 'test.vue',
41
+ code: `
42
+ <template>
43
+ <bento-dropdown @update:model-value="val" />
44
+ </template>
45
+ `,
46
+ },
47
+ {
48
+ name: 'Valid usage for bento-dropdown-avatar',
49
+ filename: 'test.vue',
50
+ code: `
51
+ <template>
52
+ <bento-dropdown-avatar @update:model-value="val" />
53
+ </template>
54
+ `,
55
+ },
56
+ {
57
+ name: 'Valid usage for bento-dropdown-country',
58
+ filename: 'test.vue',
59
+ code: `
60
+ <template>
61
+ <bento-dropdown-country @update:model-value="val" />
62
+ </template>
63
+ `,
64
+ },
65
+ {
66
+ name: 'Valid usage for bento-dropdown-currency',
67
+ filename: 'test.vue',
68
+ code: `
69
+ <template>
70
+ <bento-dropdown-currency @update:model-value="val" />
71
+ </template>
72
+ `,
73
+ },
74
+ {
75
+ name: 'Valid usage for bento-dropdown-payment-method',
76
+ filename: 'test.vue',
77
+ code: `
78
+ <template>
79
+ <bento-dropdown-payment-method @update:model-value="val" />
80
+ </template>
81
+ `,
82
+ },
83
+ {
84
+ name: 'Valid usage for bento-dropdown-tag',
85
+ filename: 'test.vue',
86
+ code: `
87
+ <template>
88
+ <bento-dropdown-tag @update:model-value="val" />
89
+ </template>
90
+ `,
91
+ },
92
+ {
93
+ name: 'Valid usage for bento-file-uploader',
94
+ filename: 'test.vue',
95
+ code: `
96
+ <template>
97
+ <bento-file-uploader @update:model-value="val" />
98
+ </template>
99
+ `,
100
+ },
101
+ {
102
+ name: 'Valid usage for bento-input-field',
103
+ filename: 'test.vue',
104
+ code: `
105
+ <template>
106
+ <bento-input-field @update:model-value="val" />
107
+ </template>
108
+ `,
109
+ },
110
+ {
111
+ name: 'Valid usage for bento-input-field-password',
112
+ filename: 'test.vue',
113
+ code: `
114
+ <template>
115
+ <bento-input-field-password @update:model-value="val" />
116
+ </template>
117
+ `,
118
+ },
119
+ {
120
+ name: 'Valid usage for bento-input-field-phone-number',
121
+ filename: 'test.vue',
122
+ code: `
123
+ <template>
124
+ <bento-input-field-phone-number @update:model-value="val" />
125
+ </template>
126
+ `,
127
+ },
128
+ {
129
+ name: 'Valid usage for bento-checkbox-group',
130
+ filename: 'test.vue',
131
+ code: `
132
+ <template>
133
+ <bento-checkbox-group @update:model-value="val" />
134
+ </template>
135
+ `,
136
+ },
137
+ {
138
+ name: 'Valid usage for bento-radio-group',
139
+ filename: 'test.vue',
140
+ code: `
141
+ <template>
142
+ <bento-radio-group @update:model-value="val" />
143
+ </template>
144
+ `,
145
+ },
146
+ {
147
+ name: 'Valid usage for bento-selection-card-group',
148
+ filename: 'test.vue',
149
+ code: `
150
+ <template>
151
+ <bento-selection-card-group @update:model-value="val" />
152
+ </template>
153
+ `,
154
+ },
155
+ {
156
+ name: 'Valid usage for bento-textarea',
157
+ filename: 'test.vue',
158
+ code: `
159
+ <template>
160
+ <bento-textarea @update:model-value="val" />
161
+ </template>
162
+ `,
163
+ },
164
+ ],
165
+ invalid: [
166
+ {
167
+ name: 'Invalid: Emit event on bento-date-picker',
168
+ filename: 'test.vue',
169
+ code: `<template><bento-date-picker @input="val" /></template>`,
170
+ output: `<template><bento-date-picker @update:model-value="val" /></template>`,
171
+ errors: [{ messageId: 'deprecation' }],
172
+ },
173
+ {
174
+ name: 'Invalid: Emit event on bento-date-range-picker',
175
+ filename: 'test.vue',
176
+ code: `<template><bento-date-range-picker @input="val" /></template>`,
177
+ output: `<template><bento-date-range-picker @update:model-value="val" /></template>`,
178
+ errors: [{ messageId: 'deprecation' }],
179
+ },
180
+ {
181
+ name: 'Invalid: Emit event on bento-dropdown',
182
+ filename: 'test.vue',
183
+ code: `<template><bento-dropdown @input="val" /></template>`,
184
+ output: `<template><bento-dropdown @update:model-value="val" /></template>`,
185
+ errors: [{ messageId: 'deprecation' }],
186
+ },
187
+ {
188
+ name: 'Invalid: Emit event on bento-dropdown-avatar',
189
+ filename: 'test.vue',
190
+ code: `<template><bento-dropdown-avatar @input="val" /></template>`,
191
+ output: `<template><bento-dropdown-avatar @update:model-value="val" /></template>`,
192
+ errors: [{ messageId: 'deprecation' }],
193
+ },
194
+ {
195
+ name: 'Invalid: Emit event on bento-dropdown-country',
196
+ filename: 'test.vue',
197
+ code: `<template><bento-dropdown-country @input="val" /></template>`,
198
+ output: `<template><bento-dropdown-country @update:model-value="val" /></template>`,
199
+ errors: [{ messageId: 'deprecation' }],
200
+ },
201
+ {
202
+ name: 'Invalid: Emit event on bento-dropdown-currency',
203
+ filename: 'test.vue',
204
+ code: `<template><bento-dropdown-currency @input="val" /></template>`,
205
+ output: `<template><bento-dropdown-currency @update:model-value="val" /></template>`,
206
+ errors: [{ messageId: 'deprecation' }],
207
+ },
208
+ {
209
+ name: 'Invalid: Emit event on bento-dropdown-payment-method',
210
+ filename: 'test.vue',
211
+ code: `<template><bento-dropdown-payment-method @input="val" /></template>`,
212
+ output: `<template><bento-dropdown-payment-method @update:model-value="val" /></template>`,
213
+ errors: [{ messageId: 'deprecation' }],
214
+ },
215
+ {
216
+ name: 'Invalid: Emit event on bento-dropdown-tag',
217
+ filename: 'test.vue',
218
+ code: `<template><bento-dropdown-tag @input="val" /></template>`,
219
+ output: `<template><bento-dropdown-tag @update:model-value="val" /></template>`,
220
+ errors: [{ messageId: 'deprecation' }],
221
+ },
222
+ {
223
+ name: 'Invalid: Emit event on bento-file-uploader',
224
+ filename: 'test.vue',
225
+ code: `<template><bento-file-uploader @input="val" /></template>`,
226
+ output: `<template><bento-file-uploader @update:model-value="val" /></template>`,
227
+ errors: [{ messageId: 'deprecation' }],
228
+ },
229
+ {
230
+ name: 'Invalid: Emit event on bento-input-field',
231
+ filename: 'test.vue',
232
+ code: `<template><bento-input-field @input="val" /></template>`,
233
+ output: `<template><bento-input-field @update:model-value="val" /></template>`,
234
+ errors: [{ messageId: 'deprecation' }],
235
+ },
236
+ {
237
+ name: 'Invalid: Emit event on bento-input-field-password',
238
+ filename: 'test.vue',
239
+ code: `<template><bento-input-field-password @input="val" /></template>`,
240
+ output: `<template><bento-input-field-password @update:model-value="val" /></template>`,
241
+ errors: [{ messageId: 'deprecation' }],
242
+ },
243
+ {
244
+ name: 'Invalid: Emit event on bento-input-field-phone-number',
245
+ filename: 'test.vue',
246
+ code: `<template><bento-input-field-phone-number @input="val" /></template>`,
247
+ output: `<template><bento-input-field-phone-number @update:model-value="val" /></template>`,
248
+ errors: [{ messageId: 'deprecation' }],
249
+ },
250
+ {
251
+ name: 'Invalid: Emit event on bento-checkbox-group',
252
+ filename: 'test.vue',
253
+ code: `<template><bento-checkbox-group @input="val" /></template>`,
254
+ output: `<template><bento-checkbox-group @update:model-value="val" /></template>`,
255
+ errors: [{ messageId: 'deprecation' }],
256
+ },
257
+ {
258
+ name: 'Invalid: Emit event on bento-radio-group',
259
+ filename: 'test.vue',
260
+ code: `<template><bento-radio-group @input="val" /></template>`,
261
+ output: `<template><bento-radio-group @update:model-value="val" /></template>`,
262
+ errors: [{ messageId: 'deprecation' }],
263
+ },
264
+ {
265
+ name: 'Invalid: Emit event on bento-selection-card-group',
266
+ filename: 'test.vue',
267
+ code: `<template><bento-selection-card-group @input="val" /></template>`,
268
+ output: `<template><bento-selection-card-group @update:model-value="val" /></template>`,
269
+ errors: [{ messageId: 'deprecation' }],
270
+ },
271
+ {
272
+ name: 'Invalid: Emit event on bento-textarea',
273
+ filename: 'test.vue',
274
+ code: `<template><bento-textarea @input="val" /></template>`,
275
+ output: `<template><bento-textarea @update:model-value="val" /></template>`,
276
+ errors: [{ messageId: 'deprecation' }],
277
+ },
278
+ ],
279
+ });
280
+ });