@vaadin/combo-box 25.3.2 → 25.3.4
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/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vaadin/combo-box",
|
|
3
|
-
"version": "25.3.
|
|
3
|
+
"version": "25.3.4",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -36,22 +36,22 @@
|
|
|
36
36
|
],
|
|
37
37
|
"dependencies": {
|
|
38
38
|
"@open-wc/dedupe-mixin": "^1.3.0",
|
|
39
|
-
"@vaadin/a11y-base": "~25.3.
|
|
40
|
-
"@vaadin/component-base": "~25.3.
|
|
41
|
-
"@vaadin/field-base": "~25.3.
|
|
42
|
-
"@vaadin/input-container": "~25.3.
|
|
43
|
-
"@vaadin/item": "~25.3.
|
|
44
|
-
"@vaadin/lit-renderer": "~25.3.
|
|
45
|
-
"@vaadin/overlay": "~25.3.
|
|
46
|
-
"@vaadin/vaadin-themable-mixin": "~25.3.
|
|
39
|
+
"@vaadin/a11y-base": "~25.3.4",
|
|
40
|
+
"@vaadin/component-base": "~25.3.4",
|
|
41
|
+
"@vaadin/field-base": "~25.3.4",
|
|
42
|
+
"@vaadin/input-container": "~25.3.4",
|
|
43
|
+
"@vaadin/item": "~25.3.4",
|
|
44
|
+
"@vaadin/lit-renderer": "~25.3.4",
|
|
45
|
+
"@vaadin/overlay": "~25.3.4",
|
|
46
|
+
"@vaadin/vaadin-themable-mixin": "~25.3.4",
|
|
47
47
|
"lit": "^3.0.0"
|
|
48
48
|
},
|
|
49
49
|
"devDependencies": {
|
|
50
|
-
"@vaadin/aura": "~25.3.
|
|
51
|
-
"@vaadin/chai-plugins": "~25.3.
|
|
52
|
-
"@vaadin/test-runner-commands": "~25.3.
|
|
50
|
+
"@vaadin/aura": "~25.3.4",
|
|
51
|
+
"@vaadin/chai-plugins": "~25.3.4",
|
|
52
|
+
"@vaadin/test-runner-commands": "~25.3.4",
|
|
53
53
|
"@vaadin/testing-helpers": "^2.0.0",
|
|
54
|
-
"@vaadin/vaadin-lumo-styles": "~25.3.
|
|
54
|
+
"@vaadin/vaadin-lumo-styles": "~25.3.4",
|
|
55
55
|
"sinon": "^22.0.0"
|
|
56
56
|
},
|
|
57
57
|
"customElements": "custom-elements.json",
|
|
@@ -59,5 +59,5 @@
|
|
|
59
59
|
"web-types.json",
|
|
60
60
|
"web-types.lit.json"
|
|
61
61
|
],
|
|
62
|
-
"gitHead": "
|
|
62
|
+
"gitHead": "10d0b4f1accc697ccc701265159d8f9314bf9851"
|
|
63
63
|
}
|
|
@@ -109,6 +109,7 @@ export const ComboBoxBaseMixin = (superClass) =>
|
|
|
109
109
|
this._boundOnClearButtonMouseDown = this.__onClearButtonMouseDown.bind(this);
|
|
110
110
|
this._boundOnClick = this._onClick.bind(this);
|
|
111
111
|
this._boundOnOverlayTouchAction = this._onOverlayTouchAction.bind(this);
|
|
112
|
+
this._boundOnOverlayClick = this.__onOverlayClick.bind(this);
|
|
112
113
|
this._boundOnTouchend = this._onTouchend.bind(this);
|
|
113
114
|
}
|
|
114
115
|
|
|
@@ -186,6 +187,12 @@ export const ComboBoxBaseMixin = (superClass) =>
|
|
|
186
187
|
if (['_overlayOpened', '_dropdownItems', '_focusedIndex', '_theme'].some((prop) => props.has(prop))) {
|
|
187
188
|
this._updateScroller();
|
|
188
189
|
}
|
|
190
|
+
|
|
191
|
+
// An item can be focused while the overlay is closed, e.g. when filtering
|
|
192
|
+
// on input. Reference it once the overlay is opened.
|
|
193
|
+
if (props.has('_overlayOpened') && this._overlayOpened) {
|
|
194
|
+
this._updateActiveDescendant(this._focusedIndex);
|
|
195
|
+
}
|
|
189
196
|
}
|
|
190
197
|
|
|
191
198
|
/** @protected */
|
|
@@ -220,6 +227,9 @@ export const ComboBoxBaseMixin = (superClass) =>
|
|
|
220
227
|
overlay.addEventListener('touchend', this._boundOnOverlayTouchAction);
|
|
221
228
|
overlay.addEventListener('touchmove', this._boundOnOverlayTouchAction);
|
|
222
229
|
|
|
230
|
+
// Use capture phase as the scroller stops click propagation
|
|
231
|
+
overlay.addEventListener('click', this._boundOnOverlayClick, true);
|
|
232
|
+
|
|
223
233
|
// Prevent blurring the input when clicking inside the overlay
|
|
224
234
|
overlay.addEventListener('mousedown', (e) => e.preventDefault());
|
|
225
235
|
|
|
@@ -346,6 +356,9 @@ export const ComboBoxBaseMixin = (superClass) =>
|
|
|
346
356
|
}
|
|
347
357
|
}
|
|
348
358
|
} else {
|
|
359
|
+
// Reset when a tap was not followed by a click, e.g. at the end of a scroll
|
|
360
|
+
this.__blurOnClick = false;
|
|
361
|
+
|
|
349
362
|
if (this.autoselect) {
|
|
350
363
|
// When the dropdown closes, the input remains focused. Mark that the next
|
|
351
364
|
// host click should re-trigger autoselect, since the normal focus event
|
|
@@ -365,9 +378,31 @@ export const ComboBoxBaseMixin = (superClass) =>
|
|
|
365
378
|
}
|
|
366
379
|
|
|
367
380
|
/** @private */
|
|
368
|
-
_onOverlayTouchAction() {
|
|
369
|
-
// On
|
|
370
|
-
//
|
|
381
|
+
_onOverlayTouchAction(event) {
|
|
382
|
+
// On tap, wait for the click: hiding the keyboard scrolls the page
|
|
383
|
+
// before iOS dispatches the click, which then misses its target.
|
|
384
|
+
if (event.type === 'touchend') {
|
|
385
|
+
this.__blurOnClick = true;
|
|
386
|
+
return;
|
|
387
|
+
}
|
|
388
|
+
|
|
389
|
+
this.__blurInputKeepOpened();
|
|
390
|
+
}
|
|
391
|
+
|
|
392
|
+
/** @private */
|
|
393
|
+
__onOverlayClick() {
|
|
394
|
+
if (this.__blurOnClick) {
|
|
395
|
+
this.__blurOnClick = false;
|
|
396
|
+
this.__blurInputKeepOpened();
|
|
397
|
+
}
|
|
398
|
+
}
|
|
399
|
+
|
|
400
|
+
/**
|
|
401
|
+
* Blur the input on touch inside the overlay to hide the virtual keyboard,
|
|
402
|
+
* but don't close the overlay on this blur.
|
|
403
|
+
* @private
|
|
404
|
+
*/
|
|
405
|
+
__blurInputKeepOpened() {
|
|
371
406
|
this._closeOnBlurIsPrevented = true;
|
|
372
407
|
this.inputElement.blur();
|
|
373
408
|
this._closeOnBlurIsPrevented = false;
|
|
@@ -205,8 +205,8 @@ export const ComboBoxItemsMixin = (superClass) =>
|
|
|
205
205
|
}
|
|
206
206
|
|
|
207
207
|
/**
|
|
208
|
-
* Override an event listener from `ComboBoxBaseMixin` to
|
|
209
|
-
*
|
|
208
|
+
* Override an event listener from `ComboBoxBaseMixin` to update
|
|
209
|
+
* the filter and open the dropdown on user input.
|
|
210
210
|
* @param {!Event} event
|
|
211
211
|
* @protected
|
|
212
212
|
* @override
|
|
@@ -214,25 +214,18 @@ export const ComboBoxItemsMixin = (superClass) =>
|
|
|
214
214
|
_onInput(event) {
|
|
215
215
|
const filter = this._inputElementValue;
|
|
216
216
|
|
|
217
|
-
// When opening dropdown on user input, both `opened` and `filter` properties are set.
|
|
218
|
-
// Perform a batched property update instead of relying on sync property observers.
|
|
219
|
-
// This is necessary to avoid an extra data-provider request for loading first page.
|
|
220
|
-
const props = {};
|
|
221
|
-
|
|
222
217
|
if (this.filter === filter) {
|
|
223
218
|
// Filter and input value might get out of sync, while keyboard navigating for example.
|
|
224
219
|
// Afterwards, input value might be changed to the same value as used in filtering.
|
|
225
220
|
// In situation like these, we need to make sure all the filter changes handlers are run.
|
|
226
221
|
this._filterChanged(this.filter);
|
|
227
222
|
} else {
|
|
228
|
-
|
|
223
|
+
this.filter = filter;
|
|
229
224
|
}
|
|
230
225
|
|
|
231
226
|
if (!this.opened && !this._isClearButton(event) && !this.autoOpenDisabled) {
|
|
232
|
-
|
|
227
|
+
this.opened = true;
|
|
233
228
|
}
|
|
234
|
-
|
|
235
|
-
this.setProperties(props);
|
|
236
229
|
}
|
|
237
230
|
|
|
238
231
|
/**
|
|
@@ -284,6 +284,11 @@ export const ComboBoxScrollerMixin = (superClass) =>
|
|
|
284
284
|
}
|
|
285
285
|
|
|
286
286
|
this.requestContentUpdate();
|
|
287
|
+
|
|
288
|
+
// The focused index can change while closed, when scrolling to it is skipped
|
|
289
|
+
if (this.focusedIndex >= 0 && !this.loading) {
|
|
290
|
+
this.scrollIntoView(this.focusedIndex);
|
|
291
|
+
}
|
|
287
292
|
return;
|
|
288
293
|
}
|
|
289
294
|
|
package/web-types.json
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json.schemastore.org/web-types",
|
|
3
3
|
"name": "@vaadin/combo-box",
|
|
4
|
-
"version": "25.3.
|
|
4
|
+
"version": "25.3.4",
|
|
5
5
|
"description-markup": "markdown",
|
|
6
6
|
"contributions": {
|
|
7
7
|
"html": {
|
|
8
8
|
"elements": [
|
|
9
9
|
{
|
|
10
10
|
"name": "vaadin-combo-box",
|
|
11
|
-
"description": "`<vaadin-combo-box>` is a web component for choosing a value from a filterable list of options\npresented in a dropdown overlay. The options can be provided as a list of strings or objects\nby setting [`items`](https://cdn.vaadin.com/vaadin-web-components/25.3.
|
|
11
|
+
"description": "`<vaadin-combo-box>` is a web component for choosing a value from a filterable list of options\npresented in a dropdown overlay. The options can be provided as a list of strings or objects\nby setting [`items`](https://cdn.vaadin.com/vaadin-web-components/25.3.4/#/elements/vaadin-combo-box#property-items) property on the element.\n\n```html\n<vaadin-combo-box id=\"combo-box\"></vaadin-combo-box>\n```\n```js\ndocument.querySelector('#combo-box').items = ['apple', 'orange', 'banana'];\n```\n\nWhen the selected `value` is changed, a `value-changed` event is triggered.\n\n### Item rendering\n\nTo customize the content of the `<vaadin-combo-box-item>` elements placed in the dropdown, use\n[`renderer`](https://cdn.vaadin.com/vaadin-web-components/25.3.4/#/elements/vaadin-combo-box#property-renderer) property which accepts a function.\nThe renderer function is called with `root`, `comboBox`, and `model` as arguments.\n\nGenerate DOM content by using `model` object properties if needed, and append it to the `root`\nelement. The `comboBox` reference is provided to access the combo-box element state. Do not\nset combo-box properties in a `renderer` function.\n\n```js\nconst comboBox = document.querySelector('#combo-box');\ncomboBox.items = [{'label': 'Hydrogen', 'value': 'H'}];\ncomboBox.renderer = (root, comboBox, model) => {\n const item = model.item;\n root.innerHTML = `${model.index}: ${item.label} <b>${item.value}</b>`;\n};\n```\n\nRenderer is called on the opening of the combo-box and each time the related model is updated.\nBefore creating new content, it is recommended to check if there is already an existing DOM\nelement in `root` from a previous renderer call for reusing it. Even though combo-box uses\ninfinite scrolling, reducing DOM operations might improve performance.\n\nThe following properties are available in the `model` argument:\n\nProperty | Type | Description\n-----------|------------------|-------------\n`index` | Number | Index of the item in the `items` array\n`item` | String or Object | The item reference\n`selected` | Boolean | True when item is selected\n`focused` | Boolean | True when item is focused\n\n### Lazy Loading with Function Data Provider\n\nIn addition to assigning an array to the items property, you can alternatively use the\n[`dataProvider`](https://cdn.vaadin.com/vaadin-web-components/25.3.4/#/elements/vaadin-combo-box#property-dataProvider) function property.\nThe `<vaadin-combo-box>` calls this function lazily, only when it needs more data\nto be displayed.\n\n__Note that when using function data providers, the total number of items\nneeds to be set manually. The total number of items can be returned\nin the second argument of the data provider callback:__\n\n```js\ncomboBox.dataProvider = async (params, callback) => {\n const API = 'https://demo.vaadin.com/demo-data/1.0/filtered-countries';\n const { filter, page, pageSize } = params;\n const index = page * pageSize;\n\n const res = await fetch(`${API}?index=${index}&count=${pageSize}&filter=${filter}`);\n if (res.ok) {\n const { result, size } = await res.json();\n callback(result, size);\n }\n};\n```\n\n### Styling\n\nThe following shadow DOM parts are available for styling:\n\nPart name | Description\n---------------------|----------------\n`label` | The label element\n`input-field` | The element that wraps prefix, value and buttons\n`field-button` | Set on both clear and toggle buttons\n`clear-button` | The clear button\n`error-message` | The error message element\n`helper-text` | The helper text element wrapper\n`required-indicator` | The `required` state indicator element\n`toggle-button` | The toggle button\n`overlay` | The overlay container\n`content` | The overlay content\n`loader` | The loading indicator shown while loading items\n\nThe following state attributes are available for styling:\n\nAttribute | Description\n---------------------|---------------------------------\n`disabled` | Set when the element is disabled\n`has-value` | Set when the element has a value\n`has-label` | Set when the element has a label\n`has-helper` | Set when the element has helper text or slot\n`has-error-message` | Set when the element has an error message\n`has-tooltip` | Set when the element has a slotted tooltip\n`invalid` | Set when the element is invalid\n`focused` | Set when the element is focused\n`focus-ring` | Set when the element is keyboard focused\n`readonly` | Set when the element is readonly\n`opened` | Set when the overlay is opened\n`loading` | Set when loading items from the data provider\n\nThe following custom CSS properties are available for styling:\n\nCustom CSS property |\n:--------------------------------------------------|\n| `--vaadin-combo-box-overlay-max-height` |\n| `--vaadin-combo-box-overlay-width` |\n| `--vaadin-field-default-width` |\n| `--vaadin-input-field-background` |\n| `--vaadin-input-field-border-color` |\n| `--vaadin-input-field-border-radius` |\n| `--vaadin-input-field-border-width` |\n| `--vaadin-input-field-bottom-end-radius` |\n| `--vaadin-input-field-bottom-start-radius` |\n| `--vaadin-input-field-button-text-color` |\n| `--vaadin-input-field-container-gap` |\n| `--vaadin-input-field-disabled-background` |\n| `--vaadin-input-field-disabled-text-color` |\n| `--vaadin-input-field-error-color` |\n| `--vaadin-input-field-error-font-size` |\n| `--vaadin-input-field-error-font-weight` |\n| `--vaadin-input-field-error-line-height` |\n| `--vaadin-input-field-gap` |\n| `--vaadin-input-field-helper-color` |\n| `--vaadin-input-field-helper-font-size` |\n| `--vaadin-input-field-helper-font-weight` |\n| `--vaadin-input-field-helper-line-height` |\n| `--vaadin-input-field-label-color` |\n| `--vaadin-input-field-label-font-size` |\n| `--vaadin-input-field-label-font-weight` |\n| `--vaadin-input-field-label-line-height` |\n| `--vaadin-input-field-padding` |\n| `--vaadin-input-field-placeholder-color` |\n| `--vaadin-input-field-required-indicator` |\n| `--vaadin-input-field-required-indicator-color` |\n| `--vaadin-input-field-top-end-radius` |\n| `--vaadin-input-field-top-start-radius` |\n| `--vaadin-input-field-value-color` |\n| `--vaadin-input-field-value-font-size` |\n| `--vaadin-input-field-value-font-weight` |\n| `--vaadin-input-field-value-line-height` |\n| `--vaadin-item-overlay-padding` |\n\n### Internal components\n\nIn addition to `<vaadin-combo-box>` itself, the following internal\ncomponents are themable:\n\n- `<vaadin-combo-box-item>` - has the same API as [`<vaadin-item>`](https://cdn.vaadin.com/vaadin-web-components/25.3.4/#/elements/vaadin-item).\n\nSee [Styling Components](https://vaadin.com/docs/latest/styling/styling-components) documentation.",
|
|
12
12
|
"attributes": [
|
|
13
13
|
{
|
|
14
14
|
"name": "accessible-description-ref",
|
package/web-types.lit.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json.schemastore.org/web-types",
|
|
3
3
|
"name": "@vaadin/combo-box",
|
|
4
|
-
"version": "25.3.
|
|
4
|
+
"version": "25.3.4",
|
|
5
5
|
"description-markup": "markdown",
|
|
6
6
|
"framework": "lit",
|
|
7
7
|
"framework-config": {
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
"elements": [
|
|
17
17
|
{
|
|
18
18
|
"name": "vaadin-combo-box",
|
|
19
|
-
"description": "`<vaadin-combo-box>` is a web component for choosing a value from a filterable list of options\npresented in a dropdown overlay. The options can be provided as a list of strings or objects\nby setting [`items`](https://cdn.vaadin.com/vaadin-web-components/25.3.
|
|
19
|
+
"description": "`<vaadin-combo-box>` is a web component for choosing a value from a filterable list of options\npresented in a dropdown overlay. The options can be provided as a list of strings or objects\nby setting [`items`](https://cdn.vaadin.com/vaadin-web-components/25.3.4/#/elements/vaadin-combo-box#property-items) property on the element.\n\n```html\n<vaadin-combo-box id=\"combo-box\"></vaadin-combo-box>\n```\n```js\ndocument.querySelector('#combo-box').items = ['apple', 'orange', 'banana'];\n```\n\nWhen the selected `value` is changed, a `value-changed` event is triggered.\n\n### Item rendering\n\nTo customize the content of the `<vaadin-combo-box-item>` elements placed in the dropdown, use\n[`renderer`](https://cdn.vaadin.com/vaadin-web-components/25.3.4/#/elements/vaadin-combo-box#property-renderer) property which accepts a function.\nThe renderer function is called with `root`, `comboBox`, and `model` as arguments.\n\nGenerate DOM content by using `model` object properties if needed, and append it to the `root`\nelement. The `comboBox` reference is provided to access the combo-box element state. Do not\nset combo-box properties in a `renderer` function.\n\n```js\nconst comboBox = document.querySelector('#combo-box');\ncomboBox.items = [{'label': 'Hydrogen', 'value': 'H'}];\ncomboBox.renderer = (root, comboBox, model) => {\n const item = model.item;\n root.innerHTML = `${model.index}: ${item.label} <b>${item.value}</b>`;\n};\n```\n\nRenderer is called on the opening of the combo-box and each time the related model is updated.\nBefore creating new content, it is recommended to check if there is already an existing DOM\nelement in `root` from a previous renderer call for reusing it. Even though combo-box uses\ninfinite scrolling, reducing DOM operations might improve performance.\n\nThe following properties are available in the `model` argument:\n\nProperty | Type | Description\n-----------|------------------|-------------\n`index` | Number | Index of the item in the `items` array\n`item` | String or Object | The item reference\n`selected` | Boolean | True when item is selected\n`focused` | Boolean | True when item is focused\n\n### Lazy Loading with Function Data Provider\n\nIn addition to assigning an array to the items property, you can alternatively use the\n[`dataProvider`](https://cdn.vaadin.com/vaadin-web-components/25.3.4/#/elements/vaadin-combo-box#property-dataProvider) function property.\nThe `<vaadin-combo-box>` calls this function lazily, only when it needs more data\nto be displayed.\n\n__Note that when using function data providers, the total number of items\nneeds to be set manually. The total number of items can be returned\nin the second argument of the data provider callback:__\n\n```js\ncomboBox.dataProvider = async (params, callback) => {\n const API = 'https://demo.vaadin.com/demo-data/1.0/filtered-countries';\n const { filter, page, pageSize } = params;\n const index = page * pageSize;\n\n const res = await fetch(`${API}?index=${index}&count=${pageSize}&filter=${filter}`);\n if (res.ok) {\n const { result, size } = await res.json();\n callback(result, size);\n }\n};\n```\n\n### Styling\n\nThe following shadow DOM parts are available for styling:\n\nPart name | Description\n---------------------|----------------\n`label` | The label element\n`input-field` | The element that wraps prefix, value and buttons\n`field-button` | Set on both clear and toggle buttons\n`clear-button` | The clear button\n`error-message` | The error message element\n`helper-text` | The helper text element wrapper\n`required-indicator` | The `required` state indicator element\n`toggle-button` | The toggle button\n`overlay` | The overlay container\n`content` | The overlay content\n`loader` | The loading indicator shown while loading items\n\nThe following state attributes are available for styling:\n\nAttribute | Description\n---------------------|---------------------------------\n`disabled` | Set when the element is disabled\n`has-value` | Set when the element has a value\n`has-label` | Set when the element has a label\n`has-helper` | Set when the element has helper text or slot\n`has-error-message` | Set when the element has an error message\n`has-tooltip` | Set when the element has a slotted tooltip\n`invalid` | Set when the element is invalid\n`focused` | Set when the element is focused\n`focus-ring` | Set when the element is keyboard focused\n`readonly` | Set when the element is readonly\n`opened` | Set when the overlay is opened\n`loading` | Set when loading items from the data provider\n\nThe following custom CSS properties are available for styling:\n\nCustom CSS property |\n:--------------------------------------------------|\n| `--vaadin-combo-box-overlay-max-height` |\n| `--vaadin-combo-box-overlay-width` |\n| `--vaadin-field-default-width` |\n| `--vaadin-input-field-background` |\n| `--vaadin-input-field-border-color` |\n| `--vaadin-input-field-border-radius` |\n| `--vaadin-input-field-border-width` |\n| `--vaadin-input-field-bottom-end-radius` |\n| `--vaadin-input-field-bottom-start-radius` |\n| `--vaadin-input-field-button-text-color` |\n| `--vaadin-input-field-container-gap` |\n| `--vaadin-input-field-disabled-background` |\n| `--vaadin-input-field-disabled-text-color` |\n| `--vaadin-input-field-error-color` |\n| `--vaadin-input-field-error-font-size` |\n| `--vaadin-input-field-error-font-weight` |\n| `--vaadin-input-field-error-line-height` |\n| `--vaadin-input-field-gap` |\n| `--vaadin-input-field-helper-color` |\n| `--vaadin-input-field-helper-font-size` |\n| `--vaadin-input-field-helper-font-weight` |\n| `--vaadin-input-field-helper-line-height` |\n| `--vaadin-input-field-label-color` |\n| `--vaadin-input-field-label-font-size` |\n| `--vaadin-input-field-label-font-weight` |\n| `--vaadin-input-field-label-line-height` |\n| `--vaadin-input-field-padding` |\n| `--vaadin-input-field-placeholder-color` |\n| `--vaadin-input-field-required-indicator` |\n| `--vaadin-input-field-required-indicator-color` |\n| `--vaadin-input-field-top-end-radius` |\n| `--vaadin-input-field-top-start-radius` |\n| `--vaadin-input-field-value-color` |\n| `--vaadin-input-field-value-font-size` |\n| `--vaadin-input-field-value-font-weight` |\n| `--vaadin-input-field-value-line-height` |\n| `--vaadin-item-overlay-padding` |\n\n### Internal components\n\nIn addition to `<vaadin-combo-box>` itself, the following internal\ncomponents are themable:\n\n- `<vaadin-combo-box-item>` - has the same API as [`<vaadin-item>`](https://cdn.vaadin.com/vaadin-web-components/25.3.4/#/elements/vaadin-item).\n\nSee [Styling Components](https://vaadin.com/docs/latest/styling/styling-components) documentation.",
|
|
20
20
|
"extension": true,
|
|
21
21
|
"attributes": [
|
|
22
22
|
{
|