@adyen/bento-mcp 0.5.3 → 0.6.0

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.
Files changed (64) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/assets/components/alert/alert.docs.mdx +17 -17
  3. package/dist/assets/components/alert/alert.vue +1 -1
  4. package/dist/assets/components/country/country.vue +1 -1
  5. package/dist/assets/components/data-grid/data-grid.docs.mdx +3 -0
  6. package/dist/assets/components/data-grid/data-grid.stories.ts +1 -1
  7. package/dist/assets/components/data-grid/data-grid.vue +1 -1
  8. package/dist/assets/components/date/date.vue +1 -1
  9. package/dist/assets/components/date-picker/date-picker.docs.mdx +6 -0
  10. package/dist/assets/components/date-picker/date-picker.stories.ts +1 -1
  11. package/dist/assets/components/date-picker/date-picker.types.ts +1 -1
  12. package/dist/assets/components/date-picker/date-picker.vue +1 -1
  13. package/dist/assets/components/date-range-picker/components/date-range-picker-calendar/date-range-picker-calendar.vue +1 -1
  14. package/dist/assets/components/date-range-picker/components/date-time-input/date-time-input.types.ts +1 -0
  15. package/dist/assets/components/date-range-picker/components/date-time-input/date-time-input.vue +1 -0
  16. package/dist/assets/components/date-range-picker/date-range-picker.docs.mdx +6 -0
  17. package/dist/assets/components/date-range-picker/date-range-picker.stories.ts +1 -1
  18. package/dist/assets/components/date-range-picker/date-range-picker.types.ts +1 -1
  19. package/dist/assets/components/date-range-picker/date-range-picker.vue +1 -1
  20. package/dist/assets/components/date-time-picker/date-time-picker.vue +1 -1
  21. package/dist/assets/components/draggable/draggable.vue +1 -1
  22. package/dist/assets/components/dropdown/components/dropdown-base-textbox/dropdown-base-textbox.vue +1 -1
  23. package/dist/assets/components/dropdown/components/dropdown-options-container/dropdown-options-container.vue +1 -1
  24. package/dist/assets/components/dropdown/components/variants/dropdown-country/dropdown-country.types.ts +1 -1
  25. package/dist/assets/components/dropdown/dropdown.types.ts +1 -1
  26. package/dist/assets/components/dropdown/dropdown.vue +1 -1
  27. package/dist/assets/components/filter-bar/components/checkbox-group-filter/checkbox-group-filter.vue +1 -1
  28. package/dist/assets/components/filter-bar/components/date-filter/date-filter.vue +1 -1
  29. package/dist/assets/components/filter-bar/components/date-range-filter/date-range-filter.vue +1 -1
  30. package/dist/assets/components/filter-bar/components/filter-bar-button/filter-bar-button.vue +1 -1
  31. package/dist/assets/components/filter-bar/components/input-with-dropdown-filter/input-with-dropdown-filter.vue +1 -1
  32. package/dist/assets/components/filter-bar/filter-bar.docs.mdx +8 -2
  33. package/dist/assets/components/filter-bar/filter-bar.stories.ts +1 -1
  34. package/dist/assets/components/filter-bar/filter-bar.types.ts +1 -1
  35. package/dist/assets/components/filter-bar/filter-bar.vue +1 -1
  36. package/dist/assets/components/input-field-password/input-field-password.vue +1 -1
  37. package/dist/assets/components/internal/calendar/calendar.stories.ts +1 -1
  38. package/dist/assets/components/internal/calendar/calendar.types.ts +1 -1
  39. package/dist/assets/components/internal/calendar/calendar.vue +1 -1
  40. package/dist/assets/components/internal/calendar/components/calendar-month/calendar-month.types.ts +1 -1
  41. package/dist/assets/components/internal/calendar/components/calendar-month/calendar-month.vue +1 -1
  42. package/dist/assets/components/internal/calendar/components/calendar-month/components/calendar-month-day/calendar-month-day.vue +1 -1
  43. package/dist/assets/components/internal/calendar/components/calendar-year/calendar-year.types.ts +1 -1
  44. package/dist/assets/components/internal/calendar/components/calendar-year/calendar-year.vue +1 -1
  45. package/dist/assets/components/internal/calendar/components/calendar-year-selector/calendar-year-selector.types.ts +1 -0
  46. package/dist/assets/components/internal/calendar/components/calendar-year-selector/calendar-year-selector.vue +1 -0
  47. package/dist/assets/components/internal/header-meta/header-meta.vue +1 -1
  48. package/dist/assets/components/internal/listbox/components/listbox-multi-select/listbox-multi-select.vue +1 -1
  49. package/dist/assets/components/internal/listbox/components/listbox-single-select/listbox-single-select.vue +1 -1
  50. package/dist/assets/components/list/components/list-item/list-item.types.ts +1 -1
  51. package/dist/assets/components/list/components/list-item/list-item.vue +1 -1
  52. package/dist/assets/components/list/list.docs.mdx +62 -0
  53. package/dist/assets/components/list/list.stories.ts +1 -1
  54. package/dist/assets/components/list/list.types.ts +1 -1
  55. package/dist/assets/components/list/list.vue +1 -1
  56. package/dist/assets/components/popover/popover.docs.mdx +5 -1
  57. package/dist/assets/components/summary-grid/summary-grid.vue +1 -1
  58. package/dist/assets/components/tabs/tabs.docs.mdx +6 -1
  59. package/dist/assets/components/toast/toast.docs.mdx +7 -0
  60. package/dist/assets/composables/use-bento-delayed-hover/use-bento-delayed-hover.docs.mdx +5 -1
  61. package/dist/assets/deprecations.md +1605 -155
  62. package/dist/assets/usage.json +74 -74
  63. package/dist/main.js +135 -48
  64. package/package.json +1 -1
@@ -45,19 +45,35 @@ This file contains a list of all deprecated components, properties, and features
45
45
  ### Deprecation Found
46
46
 
47
47
  - deprecate(
48
- - ../vue2/src/components/textarea/textarea.vue- BentoTextarea value property
49
- - ../vue2/src/components/textarea/textarea.vue- `The use of value prop in BentoTextarea is no longer supported.
50
- - ../vue2/src/components/textarea/textarea.vue- Use the v-model or model-value property instead.`
51
- - ../vue2/src/components/textarea/textarea.vue- 2.0.0
52
- - ../vue2/src/components/textarea/textarea.vue- );
48
+ - ../vue2/src/install.ts- Using default setting withDesignTokensCSSInjection set to true in BentoVue plugin
49
+ - //adyen-bento.netlify.app/?path=/docs/welcome-getting-started--docs#import-css-variables
50
+ - ../vue2/src/install.ts- 2.0.0
51
+ - ../vue2/src/install.ts- );
52
+ - ../vue2/src/install.ts- // Make sure to put all awaited CSS imports below this point and not above!
53
+ ### Deprecation Found
54
+
55
+ - deprecate(Using `BentoTheme.BENTO`, Please use `BentoTheme.BENTO_LIGHT` instead, 2.0.0);
56
+ - ../vue2/src/install.ts- setTheme(BentoTheme.BENTO_LIGHT);
57
+ - ../vue2/src/install.ts- } else {
58
+ - ../vue2/src/install.ts- setTheme(BentoTheme.BENTO_LIGHT);
59
+ - ../vue2/src/install.ts- }
60
+ - ../vue2/src/install.ts- }
53
61
  ### Deprecation Found
54
62
 
55
63
  - deprecate(
56
- - ../vue2/src/components/checkbox/components/checkbox-group/checkbox-group.vue- BentoCheckboxGroup hasError property
57
- - ../vue2/src/components/checkbox/components/checkbox-group/checkbox-group.vue- `Use the BentoCheckboxGroup errorMessage property instead to indicate that there is a modifier error.
58
- - ../vue2/src/components/checkbox/components/checkbox-group/checkbox-group.vue- Having the field as undefined will hide/remove the error.
59
- - ../vue2/src/components/checkbox/components/checkbox-group/checkbox-group.vue- <bento-checkbox-group errorMessage=Error message text />`
60
- - ../vue2/src/components/checkbox/components/checkbox-group/checkbox-group.vue- 2.0.0
64
+ - ../vue2/src/components/modal/modal.vue- BentoModal overflow-visible property
65
+ - ../vue2/src/components/modal/modal.vue- `overflow-visible property was made redundant. BentoModal can work correctly without the need to pass the propery.
66
+ - ../vue2/src/components/modal/modal.vue- Remove the overflow-visible prop from BentoModal to remove this error.`
67
+ - ../vue2/src/components/modal/modal.vue- 2.0.0
68
+ - ../vue2/src/components/modal/modal.vue- );
69
+ ### Deprecation Found
70
+
71
+ - deprecate(
72
+ - ../vue2/src/components/filter-bar/components/boolean-filter/boolean-filter.vue- Boolean filter BentoFilterItemType.BOOLEAN
73
+ - ../vue2/src/components/filter-bar/components/boolean-filter/boolean-filter.vue- `Use the Radio group filter type BentoFilterItemType.RADIO_GROUP instead.`
74
+ - ../vue2/src/components/filter-bar/components/boolean-filter/boolean-filter.vue- 2.0.0
75
+ - ../vue2/src/components/filter-bar/components/boolean-filter/boolean-filter.vue- );
76
+ - ../vue2/src/components/filter-bar/components/boolean-filter/boolean-filter.vue- });
61
77
  ### Deprecation Found
62
78
 
63
79
  - deprecate(
@@ -85,27 +101,35 @@ This file contains a list of all deprecated components, properties, and features
85
101
  ### Deprecation Found
86
102
 
87
103
  - deprecate(
88
- - ../vue2/src/components/filter-bar/components/boolean-filter/boolean-filter.vue- Boolean filter BentoFilterItemType.BOOLEAN
89
- - ../vue2/src/components/filter-bar/components/boolean-filter/boolean-filter.vue- `Use the Radio group filter type BentoFilterItemType.RADIO_GROUP instead.`
90
- - ../vue2/src/components/filter-bar/components/boolean-filter/boolean-filter.vue- 2.0.0
91
- - ../vue2/src/components/filter-bar/components/boolean-filter/boolean-filter.vue- );
92
- - ../vue2/src/components/filter-bar/components/boolean-filter/boolean-filter.vue- });
104
+ - ../vue2/src/components/input-field-phone-number/input-field-phone-number.vue- BentoInputFieldPhoneNumber value property
105
+ - ../vue2/src/components/input-field-phone-number/input-field-phone-number.vue- `The use of value prop in BentoInputFieldPhoneNumber is no longer supported.
106
+ - ../vue2/src/components/input-field-phone-number/input-field-phone-number.vue- Use the v-model or model-value property instead.`
107
+ - ../vue2/src/components/input-field-phone-number/input-field-phone-number.vue- 2.0.0
108
+ - ../vue2/src/components/input-field-phone-number/input-field-phone-number.vue- );
93
109
  ### Deprecation Found
94
110
 
95
111
  - deprecate(
96
- - ../vue2/src/components/timeline/components/timeline-item/timeline-item.vue- BentoTimelineItem variant property
97
- - ../vue2/src/components/timeline/components/timeline-item/timeline-item.vue- `Use the BentoTimelineItem status modifier instead to modify the color of the timeline icon.
98
- - ../vue2/src/components/timeline/components/timeline-item/timeline-item.vue- <bento-timeline-item status=red />`
99
- - ../vue2/src/components/timeline/components/timeline-item/timeline-item.vue- 2.0.0
100
- - ../vue2/src/components/timeline/components/timeline-item/timeline-item.vue- );
112
+ - ../vue2/src/components/input-field-password/input-field-password.vue- BentoInputFieldPassword value property
113
+ - ../vue2/src/components/input-field-password/input-field-password.vue- `The use of value prop in BentoInputFieldPassword is no longer supported.
114
+ - ../vue2/src/components/input-field-password/input-field-password.vue- Use the v-model or model-value property instead.`
115
+ - ../vue2/src/components/input-field-password/input-field-password.vue- 2.0.0
116
+ - ../vue2/src/components/input-field-password/input-field-password.vue- );
101
117
  ### Deprecation Found
102
118
 
103
119
  - deprecate(
104
- - ../vue2/src/components/modal/modal.vue- BentoModal overflow-visible property
105
- - ../vue2/src/components/modal/modal.vue- `overflow-visible property was made redundant. BentoModal can work correctly without the need to pass the propery.
106
- - ../vue2/src/components/modal/modal.vue- Remove the overflow-visible prop from BentoModal to remove this error.`
107
- - ../vue2/src/components/modal/modal.vue- 2.0.0
108
- - ../vue2/src/components/modal/modal.vue- );
120
+ - ../vue2/src/components/card/card.vue- BentoCard @click property
121
+ - ../vue2/src/components/card/card.vue- `Use the BentoCard @click with the clickable property to enable accessible styles.`
122
+ - ../vue2/src/components/card/card.vue- 2.0.0
123
+ - ../vue2/src/components/card/card.vue- );
124
+ - ../vue2/src/components/card/card.vue- }
125
+ ### Deprecation Found
126
+
127
+ - deprecate(
128
+ - ../vue2/src/components/date-picker/date-picker.vue- BentoDatePicker value property
129
+ - ../vue2/src/components/date-picker/date-picker.vue- `The use of value prop in BentoDatePicker is no longer supported. Use the v-model or model-value property instead.`
130
+ - ../vue2/src/components/date-picker/date-picker.vue- 2.0.0
131
+ - ../vue2/src/components/date-picker/date-picker.vue- );
132
+ - ../vue2/src/components/date-picker/date-picker.vue- }
109
133
  ### Deprecation Found
110
134
 
111
135
  - deprecate(
@@ -117,67 +141,89 @@ This file contains a list of all deprecated components, properties, and features
117
141
  ### Deprecation Found
118
142
 
119
143
  - deprecate(
120
- - ../vue2/src/components/date-picker/date-picker.vue- BentoDatePicker value property
121
- - ../vue2/src/components/date-picker/date-picker.vue- `The use of value prop in BentoDatePicker is no longer supported. Use the v-model or model-value property instead.`
122
- - ../vue2/src/components/date-picker/date-picker.vue- 2.0.0
123
- - ../vue2/src/components/date-picker/date-picker.vue- );
124
- - ../vue2/src/components/date-picker/date-picker.vue- }
144
+ - ../vue2/src/components/dropdown/dropdown.vue- BentoDropdown error property
145
+ - ../vue2/src/components/dropdown/dropdown.vue- `Use the BentoDropdown errorMessage property instead to indicate that there is a modifier error.
146
+ - ../vue2/src/components/dropdown/dropdown.vue- Having the field as undefined will hide/remove the error.
147
+ - ../vue2/src/components/dropdown/dropdown.vue- <bento-dropdown errorMessage=Error message text />`
148
+ - ../vue2/src/components/dropdown/dropdown.vue- 2.0.0
149
+ ### Deprecation Found
150
+
151
+ - deprecate(BentoDropdown size property, `Do not use. Only default size should be used.`, 2.0.0);
152
+ - ../vue2/src/components/dropdown/dropdown.vue- }
153
+ - ../vue2/src/components/dropdown/dropdown.vue-
154
+ - ../vue2/src/components/dropdown/dropdown.vue- if (props.value) {
125
155
  ### Deprecation Found
126
156
 
127
157
  - deprecate(
128
- - ../vue2/src/components/country/country.vue- BentoCountry custom variant and label prop
129
- - ../vue2/src/components/country/country.vue- Use any of the other BentoCountry variants instead OR BentoTypography component for custom text
130
- - ../vue2/src/components/country/country.vue- 2.0.0
131
- - ../vue2/src/components/country/country.vue- );
132
- - ../vue2/src/components/country/country.vue- }
158
+ - ../vue2/src/components/dropdown/dropdown.vue- BentoDropdown value property
159
+ - ../vue2/src/components/dropdown/dropdown.vue- `The use of value prop in BentoDropdown is no longer supported.
160
+ - ../vue2/src/components/dropdown/dropdown.vue- Use the v-model or model-value property instead.`
161
+ - ../vue2/src/components/dropdown/dropdown.vue- 2.0.0
162
+ - ../vue2/src/components/dropdown/dropdown.vue- );
133
163
  ### Deprecation Found
134
164
 
135
165
  - deprecate(
136
- - ../vue2/src/components/date-range-picker/date-range-picker.vue- BentoDateRangePicker hasActions property
137
- - ../vue2/src/components/date-range-picker/date-range-picker.vue- `Set the BentoDateRangePicker hasActions property true which will display the Apply and Cancel buttons.
138
- - ../vue2/src/components/date-range-picker/date-range-picker.vue- This will be the default behavior in the v2 and hasActions will be removed.`
139
- - ../vue2/src/components/date-range-picker/date-range-picker.vue- 2.0.0
140
- - ../vue2/src/components/date-range-picker/date-range-picker.vue- );
166
+ - ../vue2/src/components/dropdown/components/variants/dropdown-payment-method/dropdown-payment-method.vue- BentoDropdownPaymentMethod value property
167
+ - ../vue2/src/components/dropdown/components/variants/dropdown-payment-method/dropdown-payment-method.vue- `The use of value prop in BentoDropdownPaymentMethod is no longer supported.
168
+ - ../vue2/src/components/dropdown/components/variants/dropdown-payment-method/dropdown-payment-method.vue- Use the v-model or model-value property instead.`
169
+ - ../vue2/src/components/dropdown/components/variants/dropdown-payment-method/dropdown-payment-method.vue- 2.0.0
170
+ - ../vue2/src/components/dropdown/components/variants/dropdown-payment-method/dropdown-payment-method.vue- );
141
171
  ### Deprecation Found
142
172
 
143
173
  - deprecate(
144
- - ../vue2/src/components/date-range-picker/date-range-picker.vue- BentoDateRangePicker value property
145
- - ../vue2/src/components/date-range-picker/date-range-picker.vue- The use of value prop in BentoDateRangePicker is no longer supported. Use the v-model or model-value property instead.
146
- - ../vue2/src/components/date-range-picker/date-range-picker.vue- 2.0.0
147
- - ../vue2/src/components/date-range-picker/date-range-picker.vue- );
148
- - ../vue2/src/components/date-range-picker/date-range-picker.vue- }
174
+ - ../vue2/src/components/dropdown/components/variants/dropdown-avatar/dropdown-avatar.vue- BentoDropdownAvatar value property
175
+ - ../vue2/src/components/dropdown/components/variants/dropdown-avatar/dropdown-avatar.vue- `The use of value prop in BentoDropdownAvatar is no longer supported.
176
+ - ../vue2/src/components/dropdown/components/variants/dropdown-avatar/dropdown-avatar.vue- Use the v-model or model-value property instead.`
177
+ - ../vue2/src/components/dropdown/components/variants/dropdown-avatar/dropdown-avatar.vue- 2.0.0
178
+ - ../vue2/src/components/dropdown/components/variants/dropdown-avatar/dropdown-avatar.vue- );
149
179
  ### Deprecation Found
150
180
 
151
181
  - deprecate(
152
- - ../vue2/src/components/card/card.vue- BentoCard @click property
153
- - ../vue2/src/components/card/card.vue- `Use the BentoCard @click with the clickable property to enable accessible styles.`
154
- - ../vue2/src/components/card/card.vue- 2.0.0
155
- - ../vue2/src/components/card/card.vue- );
156
- - ../vue2/src/components/card/card.vue- }
182
+ - ../vue2/src/components/dropdown/components/variants/dropdown-tag/dropdown-tag.vue- BentoDropdownTag value property
183
+ - ../vue2/src/components/dropdown/components/variants/dropdown-tag/dropdown-tag.vue- `The use of value prop in BentoDropdownTag is no longer supported.
184
+ - ../vue2/src/components/dropdown/components/variants/dropdown-tag/dropdown-tag.vue- Use the v-model or model-value property instead.`
185
+ - ../vue2/src/components/dropdown/components/variants/dropdown-tag/dropdown-tag.vue- 2.0.0
186
+ - ../vue2/src/components/dropdown/components/variants/dropdown-tag/dropdown-tag.vue- );
157
187
  ### Deprecation Found
158
188
 
159
189
  - deprecate(
160
- - ../vue2/src/components/input-field-phone-number/input-field-phone-number.vue- BentoInputFieldPhoneNumber value property
161
- - ../vue2/src/components/input-field-phone-number/input-field-phone-number.vue- `The use of value prop in BentoInputFieldPhoneNumber is no longer supported.
162
- - ../vue2/src/components/input-field-phone-number/input-field-phone-number.vue- Use the v-model or model-value property instead.`
163
- - ../vue2/src/components/input-field-phone-number/input-field-phone-number.vue- 2.0.0
164
- - ../vue2/src/components/input-field-phone-number/input-field-phone-number.vue- );
190
+ - ../vue2/src/components/dropdown/components/variants/dropdown-country/dropdown-country.vue- BentoDropdownCountry custom variant and items prop label key
191
+ - ../vue2/src/components/dropdown/components/variants/dropdown-country/dropdown-country.vue- Use any of the other BentoDropdownCountry variants instead OR use BentoDropdown component for custom labels
192
+ - ../vue2/src/components/dropdown/components/variants/dropdown-country/dropdown-country.vue- 2.0.0
193
+ - ../vue2/src/components/dropdown/components/variants/dropdown-country/dropdown-country.vue- );
194
+ - ../vue2/src/components/dropdown/components/variants/dropdown-country/dropdown-country.vue- }
165
195
  ### Deprecation Found
166
196
 
167
197
  - deprecate(
168
- - ../vue2/src/components/currency/currency.vue- BentoCurrency default slot
169
- - ../vue2/src/components/currency/currency.vue- `The use of default slot in BentoCurrency is no longer supported as it causes issues with dynamic content.
170
- - ../vue2/src/components/currency/currency.vue- Use the value property instead.
171
- - value=12345.67 currency=USD major-units=false />`
172
- - ../vue2/src/components/currency/currency.vue- 2.0.0
198
+ - ../vue2/src/components/dropdown/components/variants/dropdown-country/dropdown-country.vue- BentoDropdownCountry value property
199
+ - ../vue2/src/components/dropdown/components/variants/dropdown-country/dropdown-country.vue- `The use of value prop in BentoDropdownCountry is no longer supported.
200
+ - ../vue2/src/components/dropdown/components/variants/dropdown-country/dropdown-country.vue- Use the v-model or model-value property instead.`
201
+ - ../vue2/src/components/dropdown/components/variants/dropdown-country/dropdown-country.vue- 2.0.0
202
+ - ../vue2/src/components/dropdown/components/variants/dropdown-country/dropdown-country.vue- );
173
203
  ### Deprecation Found
174
204
 
175
205
  - deprecate(
176
- - The property \`label\` will always be rendered by default.`
177
- - ../vue2/src/components/internal/controls-group/controls-group.vue- `After version 2.0.0, the label will be shown by default.
178
- - hide-label=true\`. Up until version 2.0.0, to display the label set \`hide-label=false\`.
179
- - ../vue2/src/components/internal/controls-group/controls-group.vue- \`label\` will always be rendered when \`description\` is passed alongside with \`label\``
180
- - ../vue2/src/components/internal/controls-group/controls-group.vue- `2.0.0`
206
+ - ../vue2/src/components/dropdown/components/variants/dropdown-currency/dropdown-currency.vue- BentoDropdownCurrency value property
207
+ - ../vue2/src/components/dropdown/components/variants/dropdown-currency/dropdown-currency.vue- `The use of value prop in BentoDropdownCurrency is no longer supported.
208
+ - ../vue2/src/components/dropdown/components/variants/dropdown-currency/dropdown-currency.vue- Use the v-model or model-value property instead.`
209
+ - ../vue2/src/components/dropdown/components/variants/dropdown-currency/dropdown-currency.vue- 2.0.0
210
+ - ../vue2/src/components/dropdown/components/variants/dropdown-currency/dropdown-currency.vue- );
211
+ ### Deprecation Found
212
+
213
+ - deprecate(
214
+ - string | Array<string> | File | Array<File>
215
+ - ../vue2/src/components/file-uploader/file-uploader.vue- Use FileList instead.
216
+ - ../vue2/src/components/file-uploader/file-uploader.vue- 2.0.0
217
+ - ../vue2/src/components/file-uploader/file-uploader.vue- );
218
+ - ../vue2/src/components/file-uploader/file-uploader.vue- }
219
+ ### Deprecation Found
220
+
221
+ - deprecate(
222
+ - ../vue2/src/components/timeline/components/timeline-item/timeline-item.vue- BentoTimelineItem variant property
223
+ - ../vue2/src/components/timeline/components/timeline-item/timeline-item.vue- `Use the BentoTimelineItem status modifier instead to modify the color of the timeline icon.
224
+ - ../vue2/src/components/timeline/components/timeline-item/timeline-item.vue- <bento-timeline-item status=red />`
225
+ - ../vue2/src/components/timeline/components/timeline-item/timeline-item.vue- 2.0.0
226
+ - ../vue2/src/components/timeline/components/timeline-item/timeline-item.vue- );
181
227
  ### Deprecation Found
182
228
 
183
229
  - deprecate(
@@ -205,126 +251,1530 @@ This file contains a list of all deprecated components, properties, and features
205
251
  ### Deprecation Found
206
252
 
207
253
  - deprecate(
208
- - ../vue2/src/components/radio-group/radio-group.vue- BentoRadioGroup hasError property
209
- - ../vue2/src/components/radio-group/radio-group.vue- `Use the BentoRadioGroup errorMessage property instead to indicate that there is a modifier error.
210
- - ../vue2/src/components/radio-group/radio-group.vue- Having the field as undefined will hide/remove the error.
211
- - ../vue2/src/components/radio-group/radio-group.vue- <bento-radio-group errorMessage=Error message text />`
212
- - ../vue2/src/components/radio-group/radio-group.vue- 2.0.0
254
+ - ../vue2/src/components/inspector/inspector.vue- BentoInspector active-page as optional
255
+ - active-page.
256
+ - ../vue2/src/components/inspector/inspector.vue- active-page prop will be required in the next version`
257
+ - ../vue2/src/components/inspector/inspector.vue- 2.0.0
258
+ - ../vue2/src/components/inspector/inspector.vue- );
213
259
  ### Deprecation Found
214
260
 
215
261
  - deprecate(
216
- - string | Array<string> | File | Array<File>
217
- - ../vue2/src/components/file-uploader/file-uploader.vue- Use FileList instead.
218
- - ../vue2/src/components/file-uploader/file-uploader.vue- 2.0.0
219
- - ../vue2/src/components/file-uploader/file-uploader.vue- );
220
- - ../vue2/src/components/file-uploader/file-uploader.vue- }
262
+ - ../vue2/src/components/textarea/textarea.vue- BentoTextarea value property
263
+ - ../vue2/src/components/textarea/textarea.vue- `The use of value prop in BentoTextarea is no longer supported.
264
+ - ../vue2/src/components/textarea/textarea.vue- Use the v-model or model-value property instead.`
265
+ - ../vue2/src/components/textarea/textarea.vue- 2.0.0
266
+ - ../vue2/src/components/textarea/textarea.vue- );
221
267
  ### Deprecation Found
222
268
 
223
269
  - deprecate(
224
- - ../vue2/src/components/sidepanel/sidepanel.vue- BentoSidepanel isDismissible property’s behavior
225
- - ../vue2/src/components/sidepanel/sidepanel.vue- BentoSidepanel isDismissible will no longer hide the close button. Use hideCloseButton=true instead.
226
- - ../vue2/src/components/sidepanel/sidepanel.vue- 2.0.0
227
- - ../vue2/src/components/sidepanel/sidepanel.vue- );
228
- - ../vue2/src/components/sidepanel/sidepanel.vue- }
270
+ - ../vue2/src/components/country/country.vue- BentoCountry custom variant and label prop
271
+ - ../vue2/src/components/country/country.vue- Use any of the other BentoCountry variants instead OR BentoTypography component for custom text
272
+ - ../vue2/src/components/country/country.vue- 2.0.0
273
+ - ../vue2/src/components/country/country.vue- );
274
+ - ../vue2/src/components/country/country.vue- }
229
275
  ### Deprecation Found
230
276
 
231
277
  - deprecate(
232
- - ../vue2/src/components/inspector/inspector.vue- BentoInspector active-page as optional
233
- - active-page.
234
- - ../vue2/src/components/inspector/inspector.vue- active-page prop will be required in the next version`
235
- - ../vue2/src/components/inspector/inspector.vue- 2.0.0
236
- - ../vue2/src/components/inspector/inspector.vue- );
278
+ - ../vue2/src/components/radio-group/radio-group.vue- BentoRadioGroup hasError property
279
+ - ../vue2/src/components/radio-group/radio-group.vue- `Use the BentoRadioGroup errorMessage property instead to indicate that there is a modifier error.
280
+ - ../vue2/src/components/radio-group/radio-group.vue- Having the field as undefined will hide/remove the error.
281
+ - ../vue2/src/components/radio-group/radio-group.vue- <bento-radio-group errorMessage=Error message text />`
282
+ - ../vue2/src/components/radio-group/radio-group.vue- 2.0.0
237
283
  ### Deprecation Found
238
284
 
239
285
  - deprecate(
240
- - ../vue2/src/components/dropdown/components/variants/dropdown-avatar/dropdown-avatar.vue- BentoDropdownAvatar value property
241
- - ../vue2/src/components/dropdown/components/variants/dropdown-avatar/dropdown-avatar.vue- `The use of value prop in BentoDropdownAvatar is no longer supported.
242
- - ../vue2/src/components/dropdown/components/variants/dropdown-avatar/dropdown-avatar.vue- Use the v-model or model-value property instead.`
243
- - ../vue2/src/components/dropdown/components/variants/dropdown-avatar/dropdown-avatar.vue- 2.0.0
244
- - ../vue2/src/components/dropdown/components/variants/dropdown-avatar/dropdown-avatar.vue- );
286
+ - ../vue2/src/components/currency/currency.vue- BentoCurrency default slot
287
+ - ../vue2/src/components/currency/currency.vue- `The use of default slot in BentoCurrency is no longer supported as it causes issues with dynamic content.
288
+ - ../vue2/src/components/currency/currency.vue- Use the value property instead.
289
+ - value=12345.67 currency=USD major-units=false />`
290
+ - ../vue2/src/components/currency/currency.vue- 2.0.0
245
291
  ### Deprecation Found
246
292
 
247
293
  - deprecate(
248
- - ../vue2/src/components/dropdown/components/variants/dropdown-tag/dropdown-tag.vue- BentoDropdownTag value property
249
- - ../vue2/src/components/dropdown/components/variants/dropdown-tag/dropdown-tag.vue- `The use of value prop in BentoDropdownTag is no longer supported.
250
- - ../vue2/src/components/dropdown/components/variants/dropdown-tag/dropdown-tag.vue- Use the v-model or model-value property instead.`
251
- - ../vue2/src/components/dropdown/components/variants/dropdown-tag/dropdown-tag.vue- 2.0.0
252
- - ../vue2/src/components/dropdown/components/variants/dropdown-tag/dropdown-tag.vue- );
294
+ - The property \`label\` will always be rendered by default.`
295
+ - ../vue2/src/components/internal/controls-group/controls-group.vue- `After version 2.0.0, the label will be shown by default.
296
+ - hide-label=true\`. Up until version 2.0.0, to display the label set \`hide-label=false\`.
297
+ - ../vue2/src/components/internal/controls-group/controls-group.vue- \`label\` will always be rendered when \`description\` is passed alongside with \`label\``
298
+ - ../vue2/src/components/internal/controls-group/controls-group.vue- `2.0.0`
253
299
  ### Deprecation Found
254
300
 
255
301
  - deprecate(
256
- - ../vue2/src/components/dropdown/components/variants/dropdown-country/dropdown-country.vue- BentoDropdownCountry custom variant and items prop label key
257
- - ../vue2/src/components/dropdown/components/variants/dropdown-country/dropdown-country.vue- Use any of the other BentoDropdownCountry variants instead OR use BentoDropdown component for custom labels
258
- - ../vue2/src/components/dropdown/components/variants/dropdown-country/dropdown-country.vue- 2.0.0
259
- - ../vue2/src/components/dropdown/components/variants/dropdown-country/dropdown-country.vue- );
260
- - ../vue2/src/components/dropdown/components/variants/dropdown-country/dropdown-country.vue- }
302
+ - ../vue2/src/components/date-range-picker/date-range-picker.vue- BentoDateRangePicker hasActions property
303
+ - ../vue2/src/components/date-range-picker/date-range-picker.vue- `Set the BentoDateRangePicker hasActions property true which will display the Apply and Cancel buttons.
304
+ - ../vue2/src/components/date-range-picker/date-range-picker.vue- This will be the default behavior in the v2 and hasActions will be removed.`
305
+ - ../vue2/src/components/date-range-picker/date-range-picker.vue- 2.0.0
306
+ - ../vue2/src/components/date-range-picker/date-range-picker.vue- );
261
307
  ### Deprecation Found
262
308
 
263
309
  - deprecate(
264
- - ../vue2/src/components/dropdown/components/variants/dropdown-country/dropdown-country.vue- BentoDropdownCountry value property
265
- - ../vue2/src/components/dropdown/components/variants/dropdown-country/dropdown-country.vue- `The use of value prop in BentoDropdownCountry is no longer supported.
266
- - ../vue2/src/components/dropdown/components/variants/dropdown-country/dropdown-country.vue- Use the v-model or model-value property instead.`
267
- - ../vue2/src/components/dropdown/components/variants/dropdown-country/dropdown-country.vue- 2.0.0
268
- - ../vue2/src/components/dropdown/components/variants/dropdown-country/dropdown-country.vue- );
310
+ - ../vue2/src/components/date-range-picker/date-range-picker.vue- BentoDateRangePicker value property
311
+ - ../vue2/src/components/date-range-picker/date-range-picker.vue- The use of value prop in BentoDateRangePicker is no longer supported. Use the v-model or model-value property instead.
312
+ - ../vue2/src/components/date-range-picker/date-range-picker.vue- 2.0.0
313
+ - ../vue2/src/components/date-range-picker/date-range-picker.vue- );
314
+ - ../vue2/src/components/date-range-picker/date-range-picker.vue- }
269
315
  ### Deprecation Found
270
316
 
271
317
  - deprecate(
272
- - ../vue2/src/components/dropdown/components/variants/dropdown-payment-method/dropdown-payment-method.vue- BentoDropdownPaymentMethod value property
273
- - ../vue2/src/components/dropdown/components/variants/dropdown-payment-method/dropdown-payment-method.vue- `The use of value prop in BentoDropdownPaymentMethod is no longer supported.
274
- - ../vue2/src/components/dropdown/components/variants/dropdown-payment-method/dropdown-payment-method.vue- Use the v-model or model-value property instead.`
275
- - ../vue2/src/components/dropdown/components/variants/dropdown-payment-method/dropdown-payment-method.vue- 2.0.0
276
- - ../vue2/src/components/dropdown/components/variants/dropdown-payment-method/dropdown-payment-method.vue- );
318
+ - ../vue2/src/components/checkbox/components/checkbox-group/checkbox-group.vue- BentoCheckboxGroup hasError property
319
+ - ../vue2/src/components/checkbox/components/checkbox-group/checkbox-group.vue- `Use the BentoCheckboxGroup errorMessage property instead to indicate that there is a modifier error.
320
+ - ../vue2/src/components/checkbox/components/checkbox-group/checkbox-group.vue- Having the field as undefined will hide/remove the error.
321
+ - ../vue2/src/components/checkbox/components/checkbox-group/checkbox-group.vue- <bento-checkbox-group errorMessage=Error message text />`
322
+ - ../vue2/src/components/checkbox/components/checkbox-group/checkbox-group.vue- 2.0.0
277
323
  ### Deprecation Found
278
324
 
279
325
  - deprecate(
280
- - ../vue2/src/components/dropdown/components/variants/dropdown-currency/dropdown-currency.vue- BentoDropdownCurrency value property
281
- - ../vue2/src/components/dropdown/components/variants/dropdown-currency/dropdown-currency.vue- `The use of value prop in BentoDropdownCurrency is no longer supported.
282
- - ../vue2/src/components/dropdown/components/variants/dropdown-currency/dropdown-currency.vue- Use the v-model or model-value property instead.`
283
- - ../vue2/src/components/dropdown/components/variants/dropdown-currency/dropdown-currency.vue- 2.0.0
284
- - ../vue2/src/components/dropdown/components/variants/dropdown-currency/dropdown-currency.vue- );
285
- ### Deprecation Found
326
+ - ../vue2/src/components/sidepanel/sidepanel.vue- BentoSidepanel isDismissible property’s behavior
327
+ - ../vue2/src/components/sidepanel/sidepanel.vue- BentoSidepanel isDismissible will no longer hide the close button. Use hideCloseButton=true instead.
328
+ - ../vue2/src/components/sidepanel/sidepanel.vue- 2.0.0
329
+ - ../vue2/src/components/sidepanel/sidepanel.vue- );
330
+ - ../vue2/src/components/sidepanel/sidepanel.vue- }
286
331
 
287
- - deprecate(
288
- - ../vue2/src/components/dropdown/dropdown.vue- BentoDropdown error property
289
- - ../vue2/src/components/dropdown/dropdown.vue- `Use the BentoDropdown errorMessage property instead to indicate that there is a modifier error.
290
- - ../vue2/src/components/dropdown/dropdown.vue- Having the field as undefined will hide/remove the error.
291
- - ../vue2/src/components/dropdown/dropdown.vue- <bento-dropdown errorMessage=Error message text />`
292
- - ../vue2/src/components/dropdown/dropdown.vue- 2.0.0
293
- ### Deprecation Found
332
+ ---
294
333
 
295
- - deprecate(BentoDropdown size property, `Do not use. Only default size should be used.`, 2.0.0);
296
- - ../vue2/src/components/dropdown/dropdown.vue- }
297
- - ../vue2/src/components/dropdown/dropdown.vue-
298
- - ../vue2/src/components/dropdown/dropdown.vue- if (props.value) {
299
- ### Deprecation Found
334
+ # ESLint Deprecation Rules Migration Guides
300
335
 
301
- - deprecate(
302
- - ../vue2/src/components/dropdown/dropdown.vue- BentoDropdown value property
303
- - ../vue2/src/components/dropdown/dropdown.vue- `The use of value prop in BentoDropdown is no longer supported.
304
- - ../vue2/src/components/dropdown/dropdown.vue- Use the v-model or model-value property instead.`
305
- - ../vue2/src/components/dropdown/dropdown.vue- 2.0.0
306
- - ../vue2/src/components/dropdown/dropdown.vue- );
307
- ### Deprecation Found
336
+ The following sections are extracted from the ESLint deprecation rule documentation.
337
+ Each rule includes affected components, migration examples, and correct replacements.
308
338
 
309
- - deprecate(
310
- - ../vue2/src/components/input-field-password/input-field-password.vue- BentoInputFieldPassword value property
311
- - ../vue2/src/components/input-field-password/input-field-password.vue- `The use of value prop in BentoInputFieldPassword is no longer supported.
312
- - ../vue2/src/components/input-field-password/input-field-password.vue- Use the v-model or model-value property instead.`
313
- - ../vue2/src/components/input-field-password/input-field-password.vue- 2.0.0
314
- - ../vue2/src/components/input-field-password/input-field-password.vue- );
315
- ### Deprecation Found
339
+ ---
316
340
 
317
- - deprecate(
318
- - ../vue2/src/install.ts- Using default setting withDesignTokensCSSInjection set to true in BentoVue plugin
319
- - //adyen-bento.netlify.app/?path=/docs/welcome-getting-started--docs#import-css-variables
320
- - ../vue2/src/install.ts- 2.0.0
321
- - ../vue2/src/install.ts- );
322
- - ../vue2/src/install.ts- // Make sure to put all awaited CSS imports below this point and not above!
323
- ### Deprecation Found
341
+ # deprecation-bento-data-grid-cell-action-menu-item-handler
342
+
343
+ ## Description
344
+
345
+ The `handler` property on `BentoColumnCellActionMenuItem` objects (used in `menuData` arrays) is deprecated since
346
+ v2.0.0. Use `event` instead, which receives `(rowDataItem, columnKey)` parameters providing context about which row and
347
+ column triggered the action.
348
+
349
+ ## Options
350
+
351
+ | Option | Type | Default | Description |
352
+ | :------------ | :-------- | :------ | :------------------- |
353
+ | **`autofix`** | `boolean` | `false` | Enables auto-fixing. |
354
+
355
+ ## Rule Details
356
+
357
+ This rule detects `handler` properties on objects inside `menuData` arrays, both in `<template>` expressions and
358
+ `<script>` blocks.
359
+
360
+ ### ❌ Incorrect
361
+
362
+ ```javascript
363
+ const cellActions = [
364
+ {
365
+ menuData: [
366
+ {
367
+ text: 'Cancel payment',
368
+ handler: () => cancelPayment(),
369
+ },
370
+ ],
371
+ },
372
+ ];
373
+ ```
374
+
375
+ ### ✅ Correct
376
+
377
+ ```javascript
378
+ const cellActions = [
379
+ {
380
+ menuData: [
381
+ {
382
+ text: 'Cancel payment',
383
+ event: (rowDataItem, columnKey) => cancelPayment(rowDataItem),
384
+ },
385
+ ],
386
+ },
387
+ ];
388
+ ```
389
+
390
+ ---
391
+
392
+ # deprecation-bento-date-range-picker-has-actions-prop
393
+
394
+ ## Description
395
+
396
+ Manages the **temporary** `has-actions` prop on `bento-date-range-picker`.
397
+
398
+ The `has-actions` prop is a temporary opt-in flag for the new actions behavior. This rule helps teams adopt it during
399
+ the transition period, and later remove it once the behavior becomes the default.
400
+
401
+ ## Options
402
+
403
+ | Option | Type | Default | Description |
404
+ | :------------ | :-------------------- | :------ | :------------------------------------------------------------- |
405
+ | **`action`** | `'add'` \| `'remove'` | `'add'` | `add` reports missing `has-actions`. `remove` reports present. |
406
+ | **`autofix`** | `boolean` | `false` | Enables auto-fixing. |
407
+
408
+ ## Rule Details
409
+
410
+ ### Action: `add` (default)
411
+
412
+ Reports `bento-date-range-picker` instances that are **missing** the `has-actions` prop.
413
+
414
+ #### ❌ Incorrect
415
+
416
+ ```html
417
+ <bento-date-range-picker label="Pick" />
418
+ ```
419
+
420
+ #### ✅ Correct
421
+
422
+ ```html
423
+ <bento-date-range-picker has-actions label="Pick" />
424
+ ```
425
+
426
+ ### Action: `remove`
427
+
428
+ Reports `bento-date-range-picker` instances that **have** the `has-actions` prop, so it can be cleaned up once the
429
+ behavior becomes permanent.
430
+
431
+ #### ❌ Incorrect
432
+
433
+ ```html
434
+ <bento-date-range-picker has-actions label="Pick" />
435
+ ```
436
+
437
+ #### ✅ Correct
438
+
439
+ ```html
440
+ <bento-date-range-picker label="Pick" />
441
+ ```
442
+
443
+ ---
444
+
445
+ # deprecation-bento-dropdown-size-prop
446
+
447
+ ## Description
448
+
449
+ The `size` prop in the following components is deprecated:
450
+
451
+ - `bento-dropdown`
452
+
453
+ Only the `default` size is supported. Remove the `size` prop entirely.
454
+
455
+ ## Rule Details
456
+
457
+ This rule reports usages of the deprecated `size` prop.
458
+
459
+ ### ❌ Incorrect
460
+
461
+ ```html
462
+ <bento-dropdown size="small" /> <bento-dropdown :size="BentoDropdownSize.SMALL" />
463
+ ```
464
+
465
+ ### ✅ Correct
466
+
467
+ ```html
468
+ <bento-dropdown />
469
+ ```
470
+
471
+ ---
472
+
473
+ # deprecation-bento-popover-modifiers-prop
474
+
475
+ ## Description
476
+
477
+ The `modifiers` prop in the following components is deprecated:
478
+
479
+ - `bento-popover`
480
+
481
+ ## Rule Details
482
+
483
+ This rule reports usages of the deprecated item.
484
+
485
+ ### ❌ Incorrect
486
+
487
+ ```html
488
+ <bento-popover modifiers="value" /> <bento-popover :modifiers="value" />
489
+ ```
490
+
491
+ ### ✅ Correct
492
+
493
+ ```html
494
+ <bento-popover />
495
+ ```
496
+
497
+ ---
498
+
499
+ # deprecation-bento-timeline-item-variant-prop
500
+
501
+ ## Description
502
+
503
+ The `variant` prop in `bento-timeline-item` is deprecated. Use `status` instead.
504
+
505
+ The `variant` prop accepted `BentoTimelineItemVariant` enum values (icon names), while `status` accepts color strings.
506
+ The autofix remaps values automatically:
507
+
508
+ | `variant` value | `status` value |
509
+ | ------------------------------- | -------------- |
510
+ | `SquareSmallIcon` / `DEFAULT` | `black` |
511
+ | `CheckedCircleIcon` / `SUCCESS` | `green` |
512
+ | `CrossCircleIcon` / `CRITICAL` | `red` |
513
+
514
+ > **Note:** If the variant value cannot be statically resolved (e.g. a variable reference), the autofix is skipped and
515
+ > only the deprecation warning is reported.
516
+
517
+ ## Rule Details
518
+
519
+ This rule reports usages of the deprecated `variant` prop and autofixes it to `status` with the correct color value.
520
+
521
+ ### ❌ Incorrect
522
+
523
+ ```html
524
+ <bento-timeline-item variant="CheckedCircleIcon" /> <bento-timeline-item :variant="BentoTimelineItemVariant.CRITICAL" />
525
+ ```
526
+
527
+ ### ✅ Correct
528
+
529
+ ```html
530
+ <bento-timeline-item status="green" /> <bento-timeline-item status="red" />
531
+ ```
532
+
533
+ ---
534
+
535
+ # deprecation-components-aria-label-prop
536
+
537
+ ## Description
538
+
539
+ The `ariaLabel` prop in the following components is deprecated:
540
+
541
+ - `bento-dropdown`
542
+ - `bento-input-field`
543
+ - `bento-pagination`
544
+ - `bento-popover`
545
+ - `bento-segmented-control`
546
+
547
+ Please use `aria-label` instead.
548
+
549
+ ## Rule Details
550
+
551
+ This rule reports usages of the deprecated `ariaLabel` prop (camelCase). The replacement `aria-label` is the native HTML
552
+ attribute, which the components already pick up via `attrs['aria-label']`.
553
+
554
+ ### ❌ Incorrect
555
+
556
+ ```html
557
+ <bento-dropdown ariaLabel="value" /> <bento-dropdown :ariaLabel="value" />
558
+ ```
559
+
560
+ ```html
561
+ <bento-input-field ariaLabel="value" /> <bento-input-field :ariaLabel="value" />
562
+ ```
563
+
564
+ ```html
565
+ <bento-pagination ariaLabel="value" /> <bento-pagination :ariaLabel="value" />
566
+ ```
567
+
568
+ ```html
569
+ <bento-popover ariaLabel="value" /> <bento-popover :ariaLabel="value" />
570
+ ```
571
+
572
+ ```html
573
+ <bento-segmented-control ariaLabel="value" /> <bento-segmented-control :ariaLabel="value" />
574
+ ```
575
+
576
+ ### ✅ Correct
577
+
578
+ ```html
579
+ <bento-dropdown aria-label="value" />
580
+ ```
581
+
582
+ ```html
583
+ <bento-input-field aria-label="value" />
584
+ ```
585
+
586
+ ```html
587
+ <bento-pagination aria-label="value" />
588
+ ```
589
+
590
+ ```html
591
+ <bento-popover aria-label="value" />
592
+ ```
593
+
594
+ ```html
595
+ <bento-segmented-control aria-label="value" />
596
+ ```
597
+
598
+ ---
599
+
600
+ # deprecation-components-error-prop
601
+
602
+ ## Description
603
+
604
+ The `error` prop in the following components is deprecated:
605
+
606
+ - `bento-dropdown`
607
+ - `bento-input-field`
608
+ - `bento-input-field-phone-number`
609
+
610
+ Please use `error-message` instead.
611
+
612
+ > **Note:** The `error` prop is a `boolean` that only toggles error styling, while `error-message` is a `string` that
613
+ > both displays a message and applies error styling. A direct rename is not type-safe — you must also update the bound
614
+ > value from a boolean to an error message string.
615
+
616
+ | Deprecated prop | Replacement prop | Type change |
617
+ | --------------- | ---------------- | -------------------- |
618
+ | `error` | `error-message` | `boolean` → `string` |
619
+
620
+ ## Rule Details
621
+
622
+ This rule reports usages of the deprecated `error` prop and provides an IDE suggestion (not an autofix) to rename it.
623
+
624
+ ### ❌ Incorrect
625
+
626
+ ```html
627
+ <!-- Static boolean -->
628
+ <bento-dropdown :error="true" :items="items" label="Country" />
629
+
630
+ <!-- Dynamic binding -->
631
+ <bento-dropdown :error="hasError" :items="items" label="Country" />
632
+ ```
633
+
634
+ ```html
635
+ <bento-input-field :error="true" label="Email" />
636
+
637
+ <bento-input-field :error="hasError" label="Email" />
638
+ ```
639
+
640
+ ```html
641
+ <bento-input-field-phone-number :error="true" label="Phone number" />
642
+
643
+ <bento-input-field-phone-number :error="hasError" label="Phone number" />
644
+ ```
645
+
646
+ ### ✅ Correct
647
+
648
+ ```html
649
+ <!-- Static error message -->
650
+ <bento-dropdown error-message="Please select a country" :items="items" label="Country" />
651
+
652
+ <!-- Dynamic error message driven by validation -->
653
+ <bento-dropdown :error-message="errorMessage" :items="items" label="Country" />
654
+ ```
655
+
656
+ ```html
657
+ <bento-input-field error-message="Enter a valid email address" label="Email" />
658
+
659
+ <bento-input-field :error-message="errorMessage" label="Email" />
660
+ ```
661
+
662
+ ```html
663
+ <bento-input-field-phone-number error-message="Enter a valid phone number" label="Phone number" />
664
+
665
+ <bento-input-field-phone-number :error-message="errorMessage" label="Phone number" />
666
+ ```
667
+
668
+ ## Migration Examples
669
+
670
+ ### Before — static boolean on `bento-dropdown`
671
+
672
+ ```html
673
+ <template>
674
+ <bento-dropdown :error="true" :items="items" label="Country" />
675
+ </template>
676
+ ```
677
+
678
+ ### After — static error message on `bento-dropdown`
679
+
680
+ ```html
681
+ <template>
682
+ <bento-dropdown error-message="Please select a country" :items="items" label="Country" />
683
+ </template>
684
+ ```
685
+
686
+ ### Before — dynamic validation on `bento-input-field`
687
+
688
+ ```html
689
+ <template>
690
+ <bento-input-field :error="hasError" v-model="email" label="Email" />
691
+ </template>
692
+
693
+ <script setup lang="ts">
694
+ const email = ref('');
695
+ const hasError = ref(false);
696
+
697
+ const validate = () => {
698
+ hasError.value = !email.value.includes('@');
699
+ };
700
+ </script>
701
+ ```
702
+
703
+ ### After — dynamic validation with error message on `bento-input-field`
704
+
705
+ ```html
706
+ <template>
707
+ <bento-input-field :error-message="errorMessage" v-model="email" label="Email" />
708
+ </template>
709
+
710
+ <script setup lang="ts">
711
+ const email = ref('');
712
+ const errorMessage = ref<string | null>(null);
713
+
714
+ const validate = () => {
715
+ errorMessage.value = !email.value.includes('@') ? 'Enter a valid email address' : null;
716
+ };
717
+ </script>
718
+ ```
719
+
720
+ ### Before — phone number validation
721
+
722
+ ```html
723
+ <template>
724
+ <bento-input-field-phone-number
725
+ :error="hasError"
726
+ v-model="phone"
727
+ :selected-country="country"
728
+ label="Phone number"
729
+ @input:valid="onValid"
730
+ @blur="validate"
731
+ />
732
+ </template>
733
+
734
+ <script setup lang="ts">
735
+ const phone = ref('');
736
+ const country = ref('US');
737
+ const hasError = ref(false);
738
+ const isValid = ref(false);
739
+
740
+ const onValid = (validity: boolean) => {
741
+ isValid.value = validity;
742
+ };
743
+
744
+ const validate = () => {
745
+ hasError.value = !isValid.value && !!phone.value;
746
+ };
747
+ </script>
748
+ ```
749
+
750
+ ### After — phone number validation with error message
751
+
752
+ ```html
753
+ <template>
754
+ <bento-input-field-phone-number
755
+ :error-message="errorMessage"
756
+ v-model="phone"
757
+ :selected-country="country"
758
+ label="Phone number"
759
+ @input:valid="onValid"
760
+ @blur="validate"
761
+ />
762
+ </template>
763
+
764
+ <script setup lang="ts">
765
+ const phone = ref('');
766
+ const country = ref('US');
767
+ const errorMessage = ref<string | null>(null);
768
+ const isValid = ref(false);
769
+
770
+ const onValid = (validity: boolean) => {
771
+ isValid.value = validity;
772
+ };
773
+
774
+ const validate = () => {
775
+ errorMessage.value = !isValid.value && !!phone.value ? 'Enter a valid phone number' : null;
776
+ };
777
+ </script>
778
+ ```
779
+
780
+ ---
781
+
782
+ # deprecation-components-has-error-prop
783
+
784
+ ## Description
785
+
786
+ The `hasError` prop in the following components is deprecated:
787
+
788
+ - `bento-checkbox-group`
789
+ - `bento-radio-group`
790
+
791
+ Please use `error-message` instead.
792
+
793
+ > **Note:** The `has-error` prop is a `boolean` that only toggles error styling, while `error-message` is a `string`
794
+ > that both displays a message and applies error styling. A direct rename is not type-safe — you must also update the
795
+ > bound value from a boolean to an error message string.
796
+
797
+ | Deprecated prop | Replacement prop | Type change |
798
+ | --------------- | ---------------- | -------------------- |
799
+ | `has-error` | `error-message` | `boolean` → `string` |
800
+
801
+ ## Rule Details
802
+
803
+ This rule reports usages of the deprecated `has-error` prop and provides an IDE suggestion (not an autofix) to rename
804
+ it.
805
+
806
+ ### ❌ Incorrect
807
+
808
+ ```html
809
+ <!-- Static boolean -->
810
+ <bento-checkbox-group :has-error="true" :items="items" label="Permissions" />
811
+
812
+ <!-- Dynamic binding -->
813
+ <bento-checkbox-group :has-error="hasError" :items="items" label="Permissions" />
814
+ ```
815
+
816
+ ```html
817
+ <bento-radio-group :has-error="true" :items="items" label="Priority" />
818
+
819
+ <bento-radio-group :has-error="hasError" :items="items" label="Priority" />
820
+ ```
821
+
822
+ ### ✅ Correct
823
+
824
+ ```html
825
+ <!-- Group-level error: pass a string message to error-message -->
826
+ <bento-checkbox-group error-message="Select at least one option" :items="items" label="Permissions" />
827
+
828
+ <!-- Dynamic error message driven by validation -->
829
+ <bento-checkbox-group :error-message="errorMessage" :items="items" label="Permissions" />
830
+ ```
831
+
832
+ ```html
833
+ <bento-radio-group error-message="Please select an option" :items="items" label="Priority" />
834
+
835
+ <bento-radio-group :error-message="errorMessage" :items="items" label="Priority" />
836
+ ```
837
+
838
+ ## Migration Examples
839
+
840
+ ### Before — static boolean
841
+
842
+ ```html
843
+ <template>
844
+ <bento-checkbox-group :has-error="true" :items="items" label="Toppings" />
845
+ </template>
846
+ ```
847
+
848
+ ### After — static error message
849
+
850
+ ```html
851
+ <template>
852
+ <bento-checkbox-group error-message="Select at least one topping" :items="items" label="Toppings" />
853
+ </template>
854
+ ```
855
+
856
+ ### Before — dynamic validation
857
+
858
+ ```html
859
+ <template>
860
+ <bento-checkbox-group :has-error="hasError" :items="items" label="Toppings" />
861
+ </template>
862
+
863
+ <script setup lang="ts">
864
+ const hasError = ref(false);
865
+
866
+ const validate = () => {
867
+ hasError.value = selectedToppings.value.length === 0;
868
+ };
869
+ </script>
870
+ ```
871
+
872
+ ### After — dynamic validation with error message
873
+
874
+ ```html
875
+ <template>
876
+ <bento-checkbox-group :error-message="errorMessage" :items="items" label="Toppings" />
877
+ </template>
878
+
879
+ <script setup lang="ts">
880
+ const errorMessage = ref<string | null>(null);
881
+
882
+ const validate = () => {
883
+ errorMessage.value = selectedToppings.value.length === 0 ? 'Select at least one topping' : null;
884
+ };
885
+ </script>
886
+ ```
887
+
888
+ ### Before — item-level `hasError`
889
+
890
+ ```html
891
+ <template>
892
+ <bento-checkbox-group :items="items" label="Permissions" />
893
+ </template>
894
+
895
+ <script setup lang="ts">
896
+ const items = [
897
+ { value: 'read', label: 'Read', hasError: true },
898
+ { value: 'write', label: 'Write' },
899
+ ];
900
+ </script>
901
+ ```
902
+
903
+ ### After — item-level `errorMessage`
904
+
905
+ ```html
906
+ <template>
907
+ <bento-checkbox-group :items="items" label="Permissions" />
908
+ </template>
909
+
910
+ <script setup lang="ts">
911
+ const items = [
912
+ { value: 'read', label: 'Read', errorMessage: 'Read permission is required' },
913
+ { value: 'write', label: 'Write' },
914
+ ];
915
+ </script>
916
+ ```
917
+
918
+ ---
919
+
920
+ # deprecation-components-input-emit
921
+
922
+ ## Description
923
+
924
+ The `@input` event listener in the following components is deprecated:
925
+
926
+ - `bento-date-picker`
927
+ - `bento-date-range-picker`
928
+ - `bento-dropdown`
929
+ - `bento-dropdown-avatar`
930
+ - `bento-dropdown-country`
931
+ - `bento-dropdown-currency`
932
+ - `bento-dropdown-payment-method`
933
+ - `bento-dropdown-tag`
934
+ - `bento-file-uploader`
935
+ - `bento-input-field`
936
+ - `bento-input-field-password`
937
+ - `bento-input-field-phone-number`
938
+ - `bento-checkbox-group`
939
+ - `bento-radio-group`
940
+ - `bento-selection-card-group`
941
+ - `bento-textarea`
942
+
943
+ Please use `@update:model-value` instead.
944
+
945
+ | Deprecated event | Replacement event | Autofix available |
946
+ | ---------------- | --------------------- | -------------------------- |
947
+ | `@input` | `@update:model-value` | Yes (opt-in via `autofix`) |
948
+
949
+ > **⚠️ Caveat — `v-model` combined with `@input`**
950
+ >
951
+ > Bento Vue 2 components emit **both** `input` (deprecated) and `update:model-value` on every value change for backward
952
+ > compatibility. In Vue 2, `v-model` internally listens to `@input`. If you autofix `@input` to `@update:model-value`
953
+ > while keeping `v-model`, you end up with `v-model` listening to `@input` **and** an explicit `@update:model-value`
954
+ > handler — both of which fire on every change. This causes race conditions because the handler may read the model value
955
+ > before `v-model`'s `@input` listener has propagated the update.
956
+ >
957
+ > In this case, **do not rely on autofix alone**. You must also replace `v-model` with an explicit `:model-value`
958
+ > binding so that a single `@update:model-value` handler controls both the model update and any side effects. See the
959
+ > [Migration Examples](#migration-examples) below.
960
+
961
+ ## Rule Details
962
+
963
+ This rule reports usages of the deprecated `@input` event and can optionally autofix them to `@update:model-value`.
964
+ Autofix is disabled by default and can be enabled with the `autofix` option.
965
+
966
+ ### ❌ Incorrect
967
+
968
+ ```html
969
+ <bento-date-picker @input="handler" />
970
+ ```
971
+
972
+ ```html
973
+ <bento-date-range-picker @input="handler" />
974
+ ```
975
+
976
+ ```html
977
+ <bento-dropdown @input="handler" />
978
+ ```
979
+
980
+ ```html
981
+ <bento-dropdown-avatar @input="handler" />
982
+ ```
983
+
984
+ ```html
985
+ <bento-dropdown-country @input="handler" />
986
+ ```
987
+
988
+ ```html
989
+ <bento-dropdown-currency @input="handler" />
990
+ ```
991
+
992
+ ```html
993
+ <bento-dropdown-payment-method @input="handler" />
994
+ ```
995
+
996
+ ```html
997
+ <bento-dropdown-tag @input="handler" />
998
+ ```
999
+
1000
+ ```html
1001
+ <bento-file-uploader @input="handler" />
1002
+ ```
1003
+
1004
+ ```html
1005
+ <bento-input-field @input="handler" />
1006
+ ```
1007
+
1008
+ ```html
1009
+ <bento-input-field-password @input="handler" />
1010
+ ```
1011
+
1012
+ ```html
1013
+ <bento-input-field-phone-number @input="handler" />
1014
+ ```
1015
+
1016
+ ```html
1017
+ <bento-checkbox-group @input="handler" />
1018
+ ```
1019
+
1020
+ ```html
1021
+ <bento-radio-group @input="handler" />
1022
+ ```
1023
+
1024
+ ```html
1025
+ <bento-selection-card-group @input="handler" />
1026
+ ```
1027
+
1028
+ ```html
1029
+ <bento-textarea @input="handler" />
1030
+ ```
1031
+
1032
+ ```html
1033
+ <!-- v-on:input directive syntax is also reported -->
1034
+ <bento-input-field v-on:input="handler" />
1035
+ ```
1036
+
1037
+ ```html
1038
+ <!-- ⚠️ v-model + @input — autofix alone is NOT safe -->
1039
+ <bento-input-field v-model="email" @input="onEmailChange" />
1040
+
1041
+ <bento-dropdown v-model="country" @input="onCountryChange" :items="items" />
1042
+ ```
1043
+
1044
+ ### ✅ Correct
1045
+
1046
+ ```html
1047
+ <bento-date-picker @update:model-value="handler" />
1048
+ ```
1049
+
1050
+ ```html
1051
+ <bento-date-range-picker @update:model-value="handler" />
1052
+ ```
1053
+
1054
+ ```html
1055
+ <bento-dropdown @update:model-value="handler" />
1056
+ ```
1057
+
1058
+ ```html
1059
+ <bento-dropdown-avatar @update:model-value="handler" />
1060
+ ```
1061
+
1062
+ ```html
1063
+ <bento-dropdown-country @update:model-value="handler" />
1064
+ ```
1065
+
1066
+ ```html
1067
+ <bento-dropdown-currency @update:model-value="handler" />
1068
+ ```
1069
+
1070
+ ```html
1071
+ <bento-dropdown-payment-method @update:model-value="handler" />
1072
+ ```
1073
+
1074
+ ```html
1075
+ <bento-dropdown-tag @update:model-value="handler" />
1076
+ ```
1077
+
1078
+ ```html
1079
+ <bento-file-uploader @update:model-value="handler" />
1080
+ ```
1081
+
1082
+ ```html
1083
+ <bento-input-field @update:model-value="handler" />
1084
+ ```
1085
+
1086
+ ```html
1087
+ <bento-input-field-password @update:model-value="handler" />
1088
+ ```
1089
+
1090
+ ```html
1091
+ <bento-input-field-phone-number @update:model-value="handler" />
1092
+ ```
1093
+
1094
+ ```html
1095
+ <bento-checkbox-group @update:model-value="handler" />
1096
+ ```
1097
+
1098
+ ```html
1099
+ <bento-radio-group @update:model-value="handler" />
1100
+ ```
1101
+
1102
+ ```html
1103
+ <bento-selection-card-group @update:model-value="handler" />
1104
+ ```
1105
+
1106
+ ```html
1107
+ <bento-textarea @update:model-value="handler" />
1108
+ ```
1109
+
1110
+ ```html
1111
+ <!-- v-model without a separate handler — no change needed -->
1112
+ <bento-input-field v-model="email" />
1113
+ ```
1114
+
1115
+ ```html
1116
+ <!-- v-model + @input migrated: split v-model into explicit binding + handler -->
1117
+ <bento-input-field :model-value="email" @update:model-value="onEmailChange" />
1118
+
1119
+ <bento-dropdown :model-value="country" @update:model-value="onCountryChange" :items="items" />
1120
+ ```
1121
+
1122
+ ## Migration Examples
1123
+
1124
+ If `v-model` is used alongside `@input`, you must also replace `v-model` with `:model-value` — see Case 2. Otherwise,
1125
+ renaming `@input` to `@update:model-value` is sufficient — see Cases 1 and 3.
1126
+
1127
+ ### Case 1 — standalone `@input` (safe to autofix)
1128
+
1129
+ The simplest case: `@input` is used without `v-model`. Rename it to `@update:model-value`.
1130
+
1131
+ #### Before
1132
+
1133
+ ```html
1134
+ <template>
1135
+ <bento-dropdown @input="onSelect" :items="countries" label="Country" />
1136
+ </template>
1137
+
1138
+ <script setup lang="ts">
1139
+ const onSelect = (value: string) => {
1140
+ console.log('Selected:', value);
1141
+ };
1142
+ </script>
1143
+ ```
1144
+
1145
+ #### After
1146
+
1147
+ ```html
1148
+ <template>
1149
+ <bento-dropdown @update:model-value="onSelect" :items="countries" label="Country" />
1150
+ </template>
1151
+
1152
+ <script setup lang="ts">
1153
+ const onSelect = (value: string) => {
1154
+ console.log('Selected:', value);
1155
+ };
1156
+ </script>
1157
+ ```
1158
+
1159
+ ### Case 2 — `v-model` + `@input` (autofix NOT safe — requires manual split)
1160
+
1161
+ When `v-model` is used alongside `@input`, autofix alone will cause a dual-emission race condition. You must replace
1162
+ `v-model` with an explicit `:model-value` binding and merge the update logic into a single `@update:model-value`
1163
+ handler.
1164
+
1165
+ #### Before — `v-model` + `@input`
1166
+
1167
+ ```html
1168
+ <template>
1169
+ <bento-dropdown v-model="country" @input="onCountryChange" :items="countries" label="Country" />
1170
+ </template>
1171
+
1172
+ <script setup lang="ts">
1173
+ const country = ref('');
1174
+
1175
+ const onCountryChange = (value: string) => {
1176
+ fetchCities(value);
1177
+ };
1178
+ </script>
1179
+ ```
1180
+
1181
+ #### ❌ Broken — after autofix only (dual-emission race condition)
1182
+
1183
+ ```html
1184
+ <template>
1185
+ <!-- v-model internally listens to @input, while @update:model-value listens to the new event.
1186
+ The component emits BOTH events on every change, causing a race condition:
1187
+ onCountryChange may read `country` before v-model's @input handler has updated it. -->
1188
+ <bento-dropdown v-model="country" @update:model-value="onCountryChange" :items="countries" label="Country" />
1189
+ </template>
1190
+ ```
1191
+
1192
+ #### ✅ Correct — split `v-model` and merge handlers
1193
+
1194
+ Replace `v-model` with `:model-value` and merge the update logic into one handler:
1195
+
1196
+ ```html
1197
+ <template>
1198
+ <bento-dropdown :model-value="country" @update:model-value="onCountryChange" :items="countries" label="Country" />
1199
+ </template>
1200
+
1201
+ <script setup lang="ts">
1202
+ const country = ref('');
1203
+
1204
+ const onCountryChange = (value: string) => {
1205
+ country.value = value;
1206
+ fetchCities(value);
1207
+ };
1208
+ </script>
1209
+ ```
1210
+
1211
+ ### Case 3 — explicit `:model-value` + `@input` (safe to autofix)
1212
+
1213
+ When `:model-value` is already used instead of `v-model`, there is no dual-emission conflict. Rename `@input` to
1214
+ `@update:model-value`.
1215
+
1216
+ #### Before — `:model-value` + `@input`
1217
+
1218
+ ```html
1219
+ <template>
1220
+ <bento-checkbox-group :model-value="selected" @input="onSelect" :items="items" label="Toppings" />
1221
+ </template>
1222
+
1223
+ <script setup lang="ts">
1224
+ const selected = ref([]);
1225
+
1226
+ const onSelect = (value: string[]) => {
1227
+ selected.value = value;
1228
+ };
1229
+ </script>
1230
+ ```
1231
+
1232
+ #### After — rename to `@update:model-value`
1233
+
1234
+ ```html
1235
+ <template>
1236
+ <bento-checkbox-group :model-value="selected" @update:model-value="onSelect" :items="items" label="Toppings" />
1237
+ </template>
1238
+
1239
+ <script setup lang="ts">
1240
+ const selected = ref([]);
1241
+
1242
+ const onSelect = (value: string[]) => {
1243
+ selected.value = value;
1244
+ };
1245
+ </script>
1246
+ ```
1247
+
1248
+ ---
1249
+
1250
+ # deprecation-components-value-prop
1251
+
1252
+ ## Description
1253
+
1254
+ The `value` prop in the following components is deprecated:
1255
+
1256
+ - `bento-date-picker`
1257
+ - `bento-date-range-picker`
1258
+ - `bento-dropdown`
1259
+ - `bento-dropdown-avatar`
1260
+ - `bento-dropdown-country`
1261
+ - `bento-dropdown-currency`
1262
+ - `bento-dropdown-payment-method`
1263
+ - `bento-dropdown-tag`
1264
+ - `bento-file-uploader`
1265
+ - `bento-input-field`
1266
+ - `bento-input-field-password`
1267
+ - `bento-input-field-phone-number`
1268
+ - `bento-checkbox-group`
1269
+ - `bento-radio-group`
1270
+ - `bento-selection-card-group`
1271
+ - `bento-textarea`
1272
+
1273
+ Please use `model-value` instead.
1274
+
1275
+ ## Rule Details
1276
+
1277
+ This rule reports usages of the deprecated item.
1278
+
1279
+ ### ❌ Incorrect
1280
+
1281
+ ```html
1282
+ <bento-date-picker value="value" /> <bento-date-picker :value="value" />
1283
+ ```
1284
+
1285
+ ```html
1286
+ <bento-date-range-picker value="value" /> <bento-date-range-picker :value="value" />
1287
+ ```
1288
+
1289
+ ```html
1290
+ <bento-dropdown value="value" /> <bento-dropdown :value="value" />
1291
+ ```
1292
+
1293
+ ```html
1294
+ <bento-dropdown-avatar value="value" /> <bento-dropdown-avatar :value="value" />
1295
+ ```
1296
+
1297
+ ```html
1298
+ <bento-dropdown-country value="value" /> <bento-dropdown-country :value="value" />
1299
+ ```
1300
+
1301
+ ```html
1302
+ <bento-dropdown-currency value="value" /> <bento-dropdown-currency :value="value" />
1303
+ ```
1304
+
1305
+ ```html
1306
+ <bento-dropdown-payment-method value="value" /> <bento-dropdown-payment-method :value="value" />
1307
+ ```
1308
+
1309
+ ```html
1310
+ <bento-dropdown-tag value="value" /> <bento-dropdown-tag :value="value" />
1311
+ ```
1312
+
1313
+ ```html
1314
+ <bento-file-uploader value="value" /> <bento-file-uploader :value="value" />
1315
+ ```
1316
+
1317
+ ```html
1318
+ <bento-input-field value="value" /> <bento-input-field :value="value" />
1319
+ ```
1320
+
1321
+ ```html
1322
+ <bento-input-field-password value="value" /> <bento-input-field-password :value="value" />
1323
+ ```
1324
+
1325
+ ```html
1326
+ <bento-input-field-phone-number value="value" /> <bento-input-field-phone-number :value="value" />
1327
+ ```
1328
+
1329
+ ```html
1330
+ <bento-checkbox-group value="value" /> <bento-checkbox-group :value="value" />
1331
+ ```
1332
+
1333
+ ```html
1334
+ <bento-radio-group value="value" /> <bento-radio-group :value="value" />
1335
+ ```
1336
+
1337
+ ```html
1338
+ <bento-selection-card-group value="value" /> <bento-selection-card-group :value="value" />
1339
+ ```
1340
+
1341
+ ```html
1342
+ <bento-textarea value="value" /> <bento-textarea :value="value" />
1343
+ ```
1344
+
1345
+ ### ✅ Correct
1346
+
1347
+ ```html
1348
+ <bento-date-picker model-value="value" />
1349
+ ```
1350
+
1351
+ ```html
1352
+ <bento-date-range-picker model-value="value" />
1353
+ ```
1354
+
1355
+ ```html
1356
+ <bento-dropdown model-value="value" />
1357
+ ```
1358
+
1359
+ ```html
1360
+ <bento-dropdown-avatar model-value="value" />
1361
+ ```
1362
+
1363
+ ```html
1364
+ <bento-dropdown-country model-value="value" />
1365
+ ```
1366
+
1367
+ ```html
1368
+ <bento-dropdown-currency model-value="value" />
1369
+ ```
1370
+
1371
+ ```html
1372
+ <bento-dropdown-payment-method model-value="value" />
1373
+ ```
1374
+
1375
+ ```html
1376
+ <bento-dropdown-tag model-value="value" />
1377
+ ```
1378
+
1379
+ ```html
1380
+ <bento-file-uploader model-value="value" />
1381
+ ```
1382
+
1383
+ ```html
1384
+ <bento-input-field model-value="value" />
1385
+ ```
1386
+
1387
+ ```html
1388
+ <bento-input-field-password model-value="value" />
1389
+ ```
1390
+
1391
+ ```html
1392
+ <bento-input-field-phone-number model-value="value" />
1393
+ ```
1394
+
1395
+ ```html
1396
+ <bento-checkbox-group model-value="value" />
1397
+ ```
1398
+
1399
+ ```html
1400
+ <bento-radio-group model-value="value" />
1401
+ ```
1402
+
1403
+ ```html
1404
+ <bento-selection-card-group model-value="value" />
1405
+ ```
1406
+
1407
+ ```html
1408
+ <bento-textarea model-value="value" />
1409
+ ```
1410
+
1411
+ ---
1412
+
1413
+ # deprecation-country-custom-usage
1414
+
1415
+ ## Description
1416
+
1417
+ This rule deprecates the `variant="custom"` prop and custom `label` usage across country-related components.
1418
+ These features are being removed because country components should use built-in variants (`name`, `iso`, `capital`, `phone_code`) rather than custom labels.
1419
+
1420
+ The rule covers three components:
1421
+
1422
+ 1. **`bento-country`** — the `variant="custom"` prop and the `label` prop
1423
+ 2. **`bento-dropdown-country`** — the `variant="custom"` prop and `label` keys in the `:items` array
1424
+ 3. **`BentoFilterItemType.SELECT_COUNTRY`** — the `variant: 'custom'` option and `label` keys in `listboxItems`
1425
+
1426
+ ## Rule Details
1427
+
1428
+ ### `bento-country`
1429
+
1430
+ The `label` prop only takes effect when `variant="custom"` is set. Using either one alone is dead code.
1431
+
1432
+ #### ❌ Incorrect
1433
+
1434
+ ```html
1435
+ <!-- variant="custom" only — variant does nothing without a label -->
1436
+ <bento-country code="NL" variant="custom" />
1437
+
1438
+ <!-- label only — label is ignored without variant="custom" -->
1439
+ <bento-country code="NL" label="Custom label" />
1440
+
1441
+ <!-- both — deprecated, use bento-typography instead -->
1442
+ <bento-country code="NL" variant="custom" label="Custom label" />
1443
+ <bento-country code="NL" :variant="BentoCountryVariant.CUSTOM" :label="customLabel" />
1444
+ ```
1445
+
1446
+ #### ✅ Correct
1447
+
1448
+ ```html
1449
+ <!-- Use a built-in variant -->
1450
+ <bento-country code="NL" variant="name" />
1451
+
1452
+ <!-- Use bento-typography for custom text -->
1453
+ <bento-typography el="span">Custom label</bento-typography>
1454
+ ```
1455
+
1456
+ ### `bento-dropdown-country`
1457
+
1458
+ The `label` key in items is only used when `variant="custom"` is set. Using either one alone is dead code.
1459
+
1460
+ #### ❌ Incorrect
1461
+
1462
+ ```html
1463
+ <!-- label in items only — labels are ignored without variant="custom" -->
1464
+ <bento-dropdown-country :items="[{ value: 'NL', label: 'Custom label' }]" />
1465
+
1466
+ <!-- variant="custom" only — variant does nothing without labels in items -->
1467
+ <bento-dropdown-country :items="[{ value: 'NL' }]" variant="custom" />
1468
+
1469
+ <!-- both — deprecated, use bento-dropdown instead -->
1470
+ <bento-dropdown-country :items="[{ value: 'NL', label: 'Custom label' }]" variant="custom" />
1471
+ ```
1472
+
1473
+ #### ✅ Correct
1474
+
1475
+ ```html
1476
+ <!-- Use a built-in variant -->
1477
+ <bento-dropdown-country :items="[{ value: 'NL' }]" variant="name" />
1478
+
1479
+ <!-- Use bento-dropdown for custom labels -->
1480
+ <bento-dropdown :items="[{ value: 'NL', label: 'Custom label' }]" />
1481
+ ```
1482
+
1483
+ ### `SELECT_COUNTRY` filter config (`bento-filter-bar` / `bento-data-grid`)
1484
+
1485
+ The `label` key in `listboxItems` is only used when `variant: 'custom'` is set. Using either one alone is dead code.
1486
+
1487
+ #### ❌ Incorrect
1488
+
1489
+ ```html
1490
+ <!-- variant: 'custom' only -->
1491
+ <bento-filter-bar
1492
+ :config="[{
1493
+ field: 'country', label: 'Country',
1494
+ type: BentoFilterItemType.SELECT_COUNTRY,
1495
+ options: { listboxItems: [{ value: 'NL' }], variant: 'custom' }
1496
+ }]"
1497
+ />
1498
+
1499
+ <!-- label in listboxItems only -->
1500
+ <bento-filter-bar
1501
+ :config="[{
1502
+ field: 'country', label: 'Country',
1503
+ type: BentoFilterItemType.SELECT_COUNTRY,
1504
+ options: { listboxItems: [{ value: 'NL', label: 'Custom label' }] }
1505
+ }]"
1506
+ />
1507
+
1508
+ <!-- both -->
1509
+ <bento-filter-bar
1510
+ :config="[{
1511
+ field: 'country', label: 'Country',
1512
+ type: BentoFilterItemType.SELECT_COUNTRY,
1513
+ options: {
1514
+ listboxItems: [{ value: 'NL', label: 'Custom label' }],
1515
+ variant: 'custom'
1516
+ }
1517
+ }]"
1518
+ />
1519
+ ```
1520
+
1521
+ #### ✅ Correct
1522
+
1523
+ ```html
1524
+ <!-- Use a built-in variant -->
1525
+ <bento-filter-bar
1526
+ :config="[{
1527
+ field: 'country', label: 'Country',
1528
+ type: BentoFilterItemType.SELECT_COUNTRY,
1529
+ options: { listboxItems: [{ value: 'NL' }], variant: 'name' }
1530
+ }]"
1531
+ />
1532
+
1533
+ <!-- Use SELECT type for custom labels -->
1534
+ <bento-filter-bar
1535
+ :config="[{
1536
+ field: 'country', label: 'Country',
1537
+ type: BentoFilterItemType.SELECT,
1538
+ options: { listboxItems: [{ value: 'NL', label: 'Custom label' }] }
1539
+ }]"
1540
+ />
1541
+ ```
1542
+
1543
+ ## Autofix
1544
+
1545
+ Enable opt-in autofix via ESLint config:
1546
+
1547
+ ```js
1548
+ '@adyen/bento/deprecation-country-custom-usage': ['warn', { autofix: true }]
1549
+ ```
1550
+
1551
+ The autofix behavior depends on which deprecated props are present:
1552
+
1553
+ | Scenario | Autofix |
1554
+ |---|---|
1555
+ | `variant="custom"` only | Removes the `variant` prop/property |
1556
+ | `label` only | Removes the `label` prop/property |
1557
+ | Both `variant="custom"` + `label` | Full replacement (see below) |
1558
+
1559
+ ### Full replacement (both present)
1560
+
1561
+ - **`bento-country`** — replaces the entire element with `<bento-typography el="span">{{ label }}</bento-typography>`
1562
+ - **`bento-dropdown-country`** — renames the tag to `bento-dropdown` and removes the `variant` attribute
1563
+ - **`SELECT_COUNTRY` filter** — changes `type` to `BentoFilterItemType.SELECT` and removes `variant` from options
1564
+
1565
+ ---
1566
+
1567
+ # @adyen/bento/deprecation-currency-default-slot
1568
+
1569
+ > Disallow the use of the `default` slot in `bento-currency` instances
1570
+
1571
+ - This rule is included in the `plugin:@adyen/bento/recommended` configuration.
1572
+ - 🔧 The `--fix` option can automatically fix the problems reported by this rule.
1573
+
1574
+ This rule prevents using the deprecated `default` slot within the `Currency` component.
1575
+
1576
+ ## ✗ BAD
1577
+
1578
+ <!-- prettier-ignore -->
1579
+ ```html
1580
+ <template>
1581
+ <bento-currency currency="USD">
1582
+ 12345
1583
+ </bento-currency>
1584
+
1585
+ <bento-currency currency="USD">
1586
+ 12345.67
1587
+ </bento-currency>
1588
+
1589
+ <bento-currency>
1590
+ {{ thisIsMyVariableWithCurrencyValue }}
1591
+ </bento-currency>
1592
+ </template>
1593
+ ```
1594
+
1595
+ ## ✓ Good
1596
+
1597
+ <!-- prettier-ignore -->
1598
+ ```html
1599
+ <template>
1600
+ <bento-currency
1601
+ :value="12345"
1602
+ currency="USD"
1603
+ />
1604
+
1605
+ <bento-currency
1606
+ :value="12345.67"
1607
+ currency="USD"
1608
+ />
1609
+
1610
+ <bento-currency
1611
+ :value="thisIsMyVariableWithCurrencyValue"
1612
+ :currency="BentoCurrencyISOCode.USD"
1613
+ major-units
1614
+ />
1615
+ </template>
1616
+ ```
1617
+
1618
+ ---
1619
+
1620
+ # deprecation-filter-bar-deprecated-props
1621
+
1622
+ ## Description
1623
+
1624
+ Deprecates the following props and options in `bento-filter-bar` and `bento-data-grid` filter configs:
1625
+
1626
+ ### Direct prop on `bento-filter-bar`
1627
+
1628
+ | Deprecated | Replacement |
1629
+ | ---------- | ---------------------------- |
1630
+ | `value` | `config` and `filter-values` |
1631
+
1632
+ ### Nested options in filter config items (`BentoSelectFilterOptions`)
1633
+
1634
+ | Deprecated | Replacement |
1635
+ | --------------------------------------------------- | ------------------------------------------------- |
1636
+ | `messages` | None (persistent filter label now uses a counter) |
1637
+ | `messagesPersistentButtonLabelPartiallySelectedKey` | None |
1638
+ | `messagesPersistentButtonLabelAllSelectedKey` | None |
1639
+
1640
+ ### `value` on filter config items (`BentoFilterModel`)
1641
+
1642
+ | Deprecated | Replacement |
1643
+ | ---------- | --------------- |
1644
+ | `value` | `filter-values` |
1645
+
1646
+ ## Rule Details
1647
+
1648
+ ### ❌ Incorrect
1649
+
1650
+ ```html
1651
+ <bento-filter-bar :value="filters" /> <bento-filter-bar v-model="filters" />
1652
+ ```
1653
+
1654
+ ```js
1655
+ const config = [
1656
+ {
1657
+ field: 'status',
1658
+ type: 'BentoSelectFilter',
1659
+ value: 'active',
1660
+ options: {
1661
+ messages: { en: { persistentButtonLabelPartiallySelected: 'x' } },
1662
+ messagesPersistentButtonLabelPartiallySelectedKey: 'customKey',
1663
+ messagesPersistentButtonLabelAllSelectedKey: 'customKey',
1664
+ },
1665
+ },
1666
+ ];
1667
+ ```
1668
+
1669
+ ### ✅ Correct
1670
+
1671
+ ```html
1672
+ <bento-filter-bar :config="config" :filter-values="values" />
1673
+ ```
1674
+
1675
+ ```js
1676
+ const config = [
1677
+ {
1678
+ field: 'status',
1679
+ type: 'BentoSelectFilter',
1680
+ options: { listboxItems: [] },
1681
+ },
1682
+ ];
1683
+ ```
1684
+
1685
+ ---
1686
+
1687
+ # deprecation-input-filter-dropdown-options
1688
+
1689
+ Deprecates usage of `dropdown`, `dropdownPosition`, and `variant` properties inside `BentoInputFilterOptions`.
1690
+
1691
+ These properties were used to configure the input filter as a dropdown variant. They should be replaced by using
1692
+ `BentoFilterItemType.INPUT_DROPDOWN` instead of `BentoFilterItemType.INPUT`.
1693
+
1694
+ ## Examples
1695
+
1696
+ ### Invalid
1697
+
1698
+ ```vue
1699
+ <script setup>
1700
+ const config = [
1701
+ {
1702
+ field: 'name',
1703
+ label: 'Name',
1704
+ type: BentoFilterItemType.INPUT,
1705
+ options: { dropdown: { items: [] }, dropdownPosition: 'end', variant: 'dropdown' },
1706
+ },
1707
+ ];
1708
+ </script>
1709
+ <template>
1710
+ <bento-filter-bar :config="config" />
1711
+ </template>
1712
+ ```
1713
+
1714
+ ### Valid
1715
+
1716
+ ```vue
1717
+ <script setup>
1718
+ const config = [
1719
+ {
1720
+ field: 'name',
1721
+ label: 'Name',
1722
+ type: BentoFilterItemType.INPUT_DROPDOWN,
1723
+ options: { dropdown: { items: [] }, dropdownPosition: 'end' },
1724
+ },
1725
+ ];
1726
+ </script>
1727
+ <template>
1728
+ <bento-filter-bar :config="config" />
1729
+ </template>
1730
+ ```
1731
+
1732
+ ---
1733
+
1734
+ # @adyen/bento/deprecation-tag-default-slot
1735
+
1736
+ > Disallow the use of the slot in `bento-tag` instances
1737
+
1738
+ - This rule is included in the `plugin:@adyen/bento/recommended` configuration.
1739
+ - 🔧 The `--fix` option can automatically fix the problems reported by this rule.
1740
+
1741
+ This rule prevents using the deprecated `default` slot within the `Tag` component.
1742
+
1743
+ ## ✗ BAD
1744
+
1745
+ <!-- prettier-ignore -->
1746
+ ```html
1747
+ <template>
1748
+ <bento-tag variant="blue">
1749
+ Label text
1750
+ </bento-tag>
1751
+
1752
+ <bento-tag>
1753
+ Label text
1754
+ </bento-tag>
1755
+
1756
+ <bento-tag>
1757
+ {{ thisIsMyVariableWithText }}
1758
+ </bento-tag>
1759
+
1760
+ <bento-tag>
1761
+ Value: {{ thisIsAValue }}
1762
+ </bento-tag>
1763
+ </template>
1764
+ ```
1765
+
1766
+ ## ✓ Good
1767
+
1768
+ <!-- prettier-ignore -->
1769
+ ```html
1770
+ <template>
1771
+ <bento-tag label="Label text" variant="blue" />
1772
+
1773
+ <bento-tag label="Label text" variant="blue" />
1774
+
1775
+ <bento-tag :label="thisIsMyVariableWithText" variant="blue" />
1776
+
1777
+ <bento-tag :label="Value: ${thisIsAValue}" />
1778
+ </template>
1779
+ ```
324
1780
 
325
- - deprecate(Using `BentoTheme.BENTO`, Please use `BentoTheme.BENTO_LIGHT` instead, 2.0.0);
326
- - ../vue2/src/install.ts- setTheme(BentoTheme.BENTO_LIGHT);
327
- - ../vue2/src/install.ts- } else {
328
- - ../vue2/src/install.ts- setTheme(BentoTheme.BENTO_LIGHT);
329
- - ../vue2/src/install.ts- }
330
- - ../vue2/src/install.ts- }