@vaadin/multi-select-combo-box 25.0.0-alpha5 → 25.0.0-alpha7

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/multi-select-combo-box",
3
- "version": "25.0.0-alpha5",
3
+ "version": "25.0.0-alpha7",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -23,6 +23,8 @@
23
23
  "lit.d.ts",
24
24
  "lit.js",
25
25
  "src",
26
+ "!src/styles/*-base-styles.d.ts",
27
+ "!src/styles/*-base-styles.js",
26
28
  "theme",
27
29
  "vaadin-*.d.ts",
28
30
  "vaadin-*.js",
@@ -37,21 +39,21 @@
37
39
  ],
38
40
  "dependencies": {
39
41
  "@open-wc/dedupe-mixin": "^1.3.0",
40
- "@vaadin/a11y-base": "25.0.0-alpha5",
41
- "@vaadin/combo-box": "25.0.0-alpha5",
42
- "@vaadin/component-base": "25.0.0-alpha5",
43
- "@vaadin/field-base": "25.0.0-alpha5",
44
- "@vaadin/input-container": "25.0.0-alpha5",
45
- "@vaadin/item": "25.0.0-alpha5",
46
- "@vaadin/lit-renderer": "25.0.0-alpha5",
47
- "@vaadin/overlay": "25.0.0-alpha5",
48
- "@vaadin/vaadin-lumo-styles": "25.0.0-alpha5",
49
- "@vaadin/vaadin-themable-mixin": "25.0.0-alpha5",
42
+ "@vaadin/a11y-base": "25.0.0-alpha7",
43
+ "@vaadin/combo-box": "25.0.0-alpha7",
44
+ "@vaadin/component-base": "25.0.0-alpha7",
45
+ "@vaadin/field-base": "25.0.0-alpha7",
46
+ "@vaadin/input-container": "25.0.0-alpha7",
47
+ "@vaadin/item": "25.0.0-alpha7",
48
+ "@vaadin/lit-renderer": "25.0.0-alpha7",
49
+ "@vaadin/overlay": "25.0.0-alpha7",
50
+ "@vaadin/vaadin-lumo-styles": "25.0.0-alpha7",
51
+ "@vaadin/vaadin-themable-mixin": "25.0.0-alpha7",
50
52
  "lit": "^3.0.0"
51
53
  },
52
54
  "devDependencies": {
53
- "@vaadin/chai-plugins": "25.0.0-alpha5",
54
- "@vaadin/test-runner-commands": "25.0.0-alpha5",
55
+ "@vaadin/chai-plugins": "25.0.0-alpha7",
56
+ "@vaadin/test-runner-commands": "25.0.0-alpha7",
55
57
  "@vaadin/testing-helpers": "^2.0.0",
56
58
  "sinon": "^18.0.0"
57
59
  },
@@ -59,5 +61,5 @@
59
61
  "web-types.json",
60
62
  "web-types.lit.json"
61
63
  ],
62
- "gitHead": "7dc87bb2a3cae81ed53259fa10b58f990d50c6fd"
64
+ "gitHead": "87f72707ce6866892f8be5782fa0da008e87dcbc"
63
65
  }
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @license
3
+ * Copyright (c) 2021 - 2025 Vaadin Ltd.
4
+ * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
5
+ */
6
+ import type { CSSResult } from 'lit';
7
+
8
+ export const multiSelectComboBoxStyles: CSSResult;
@@ -0,0 +1,59 @@
1
+ /**
2
+ * @license
3
+ * Copyright (c) 2021 - 2025 Vaadin Ltd.
4
+ * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
5
+ */
6
+ import { css } from 'lit';
7
+ import { comboBoxStyles } from '@vaadin/combo-box/src/styles/vaadin-combo-box-base-styles.js';
8
+
9
+ export const multiSelectComboBoxStyles = [
10
+ comboBoxStyles,
11
+ css`
12
+ @layer base {
13
+ :host {
14
+ max-width: 100%;
15
+ --_input-min-width: var(--vaadin-multi-select-combo-box-input-min-width, 4rem);
16
+ --_chip-min-width: var(--vaadin-multi-select-combo-box-chip-min-width, var(--vaadin-chip-min-width, 48px));
17
+ --_wrapper-gap: var(--vaadin-multi-select-combo-box-chips-gap, 2px);
18
+ }
19
+
20
+ #chips {
21
+ display: flex;
22
+ align-items: center;
23
+ gap: var(--vaadin-multi-select-combo-box-chips-gap, 2px);
24
+ }
25
+
26
+ ::slotted(input) {
27
+ box-sizing: border-box;
28
+ flex: 1 0 var(--_input-min-width);
29
+ }
30
+
31
+ ::slotted([slot='chip']),
32
+ ::slotted([slot='overflow']) {
33
+ flex: 0 1 auto;
34
+ }
35
+
36
+ ::slotted([slot='chip']) {
37
+ overflow: hidden;
38
+ }
39
+
40
+ :host(:is([readonly], [disabled])) ::slotted(input) {
41
+ flex-grow: 0;
42
+ flex-basis: 0;
43
+ padding: 0;
44
+ }
45
+
46
+ :host([readonly]:not([disabled])) [part$='button'] {
47
+ cursor: var(--vaadin-clickable-cursor);
48
+ }
49
+
50
+ :host([auto-expand-vertically]) #chips {
51
+ display: contents;
52
+ }
53
+
54
+ :host([auto-expand-horizontally]) [class$='container'] {
55
+ width: auto;
56
+ }
57
+ }
58
+ `,
59
+ ];
@@ -0,0 +1,114 @@
1
+ /**
2
+ * @license
3
+ * Copyright (c) 2021 - 2025 Vaadin Ltd.
4
+ * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
5
+ */
6
+ import '@vaadin/component-base/src/style-props.js';
7
+ import { css } from 'lit';
8
+
9
+ export const multiSelectComboBoxChipStyles = css`
10
+ @layer base {
11
+ :host {
12
+ display: inline-flex;
13
+ align-items: center;
14
+ justify-content: center;
15
+ white-space: nowrap;
16
+ box-sizing: border-box;
17
+ gap: var(--vaadin-chip-gap, var(--vaadin-chip-padding, 0.3em));
18
+ background: var(--vaadin-chip-background, var(--vaadin-background-container));
19
+ color: var(--vaadin-chip-color, var(--vaadin-color));
20
+ font-size: var(--vaadin-chip-font-size, 0.875em);
21
+ font-weight: var(--vaadin-chip-font-weight, 500);
22
+ line-height: var(--vaadin-input-field-value-line-height, inherit);
23
+ padding: 0 var(--vaadin-chip-padding, 0.3em);
24
+ height: var(--vaadin-chip-height, calc(1lh / 0.875));
25
+ border-radius: var(--vaadin-chip-border-radius, var(--vaadin-radius-m));
26
+ border: var(--vaadin-chip-border-width, 1px) solid var(--vaadin-chip-border-color, var(--vaadin-border-color));
27
+ cursor: default;
28
+ }
29
+
30
+ :host(:not([slot='overflow'])) {
31
+ min-width: min(
32
+ max-content,
33
+ var(--vaadin-multi-select-combo-box-chip-min-width, var(--vaadin-chip-min-width, 48px))
34
+ );
35
+ }
36
+
37
+ :host([focused]) {
38
+ outline: var(--vaadin-focus-ring-width) solid var(--vaadin-focus-ring-color);
39
+ outline-offset: calc(var(--vaadin-chip-border-width, 1px) * -1);
40
+ }
41
+
42
+ [part='label'] {
43
+ overflow: hidden;
44
+ text-overflow: ellipsis;
45
+ }
46
+
47
+ [part='remove-button'] {
48
+ flex: none;
49
+ display: block;
50
+ margin-inline: auto calc(var(--vaadin-chip-padding, 0.3em) * -1);
51
+ color: var(--vaadin-chip-remove-button-color, var(--vaadin-color-subtle));
52
+ cursor: var(--vaadin-clickable-cursor);
53
+ }
54
+
55
+ [part='remove-button']::before {
56
+ content: '';
57
+ display: block;
58
+ width: var(--vaadin-icon-size, 1lh);
59
+ height: var(--vaadin-icon-size, 1lh);
60
+ background: currentColor;
61
+ mask-image: var(--_vaadin-icon-cross);
62
+ }
63
+
64
+ :host([disabled]) {
65
+ cursor: var(--vaadin-disabled-cursor);
66
+ }
67
+
68
+ :host([disabled]) [part='label'] {
69
+ --vaadin-chip-color: var(--vaadin-color-disabled);
70
+ }
71
+
72
+ :host([hidden]),
73
+ :host(:is([readonly], [disabled], [slot='overflow'])) [part='remove-button'] {
74
+ display: none !important;
75
+ }
76
+
77
+ :host([slot='overflow']) {
78
+ position: relative;
79
+ margin-inline-start: 8px;
80
+ min-width: 1.5em;
81
+ }
82
+
83
+ :host([slot='overflow'])::before,
84
+ :host([slot='overflow'])::after {
85
+ content: '';
86
+ position: absolute;
87
+ inset: calc(var(--vaadin-chip-border-width, 1px) * -1);
88
+ border-inline-start: 2px solid var(--vaadin-chip-border-color, var(--vaadin-border-color));
89
+ border-radius: inherit;
90
+ }
91
+
92
+ :host([slot='overflow'])::before {
93
+ left: calc(-4px - var(--vaadin-chip-border-width, 1px));
94
+ }
95
+
96
+ :host([slot='overflow'])::after {
97
+ left: calc(-8px - var(--vaadin-chip-border-width, 1px));
98
+ }
99
+
100
+ :host([count='2']) {
101
+ margin-inline-start: 4px;
102
+ }
103
+
104
+ :host([count='1']) {
105
+ margin-inline-start: 0;
106
+ }
107
+
108
+ :host([count='2'])::after,
109
+ :host([count='1'])::before,
110
+ :host([count='1'])::after {
111
+ display: none;
112
+ }
113
+ }
114
+ `;
@@ -0,0 +1,21 @@
1
+ /**
2
+ * @license
3
+ * Copyright (c) 2021 - 2025 Vaadin Ltd.
4
+ * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
5
+ */
6
+ import { css } from 'lit';
7
+ import { comboBoxOverlayStyles } from '@vaadin/combo-box/src/styles/vaadin-combo-box-overlay-base-styles.js';
8
+
9
+ export const multiSelectComboBoxOverlayStyles = [
10
+ comboBoxOverlayStyles,
11
+ css`
12
+ @layer base {
13
+ #overlay {
14
+ width: var(
15
+ --vaadin-multi-select-combo-box-overlay-width,
16
+ var(--_vaadin-multi-select-combo-box-overlay-default-width, auto)
17
+ );
18
+ }
19
+ }
20
+ `,
21
+ ];
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @license
3
+ * Copyright (c) 2021 - 2025 Vaadin Ltd.
4
+ * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
5
+ */
6
+ import { comboBoxScrollerStyles } from '@vaadin/combo-box/src/styles/vaadin-combo-box-scroller-base-styles.js';
7
+
8
+ export const multiSelectComboBoxScrollerStyles = comboBoxScrollerStyles;
@@ -14,9 +14,6 @@ export const multiSelectComboBoxScrollerStyles = css`
14
14
  /* Fixes item background from getting on top of scrollbars on Safari */
15
15
  transform: translate3d(0, 0, 0);
16
16
 
17
- /* Enable momentum scrolling on iOS */
18
- -webkit-overflow-scrolling: touch;
19
-
20
17
  /* Fixes scrollbar disappearing when 'Show scroll bars: Always' enabled in Safari */
21
18
  box-shadow: 0 0 0 white;
22
19
  }
@@ -6,7 +6,7 @@
6
6
  import { html, LitElement } from 'lit';
7
7
  import { defineCustomElement } from '@vaadin/component-base/src/define.js';
8
8
  import { PolylitMixin } from '@vaadin/component-base/src/polylit-mixin.js';
9
- import { CSSInjectionMixin } from '@vaadin/vaadin-themable-mixin/css-injection-mixin.js';
9
+ import { LumoInjectionMixin } from '@vaadin/vaadin-themable-mixin/lumo-injection-mixin.js';
10
10
  import { ThemableMixin } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';
11
11
  import { multiSelectComboBoxChipStyles } from './styles/vaadin-multi-select-combo-box-chip-core-styles.js';
12
12
 
@@ -28,7 +28,7 @@ import { multiSelectComboBoxChipStyles } from './styles/vaadin-multi-select-comb
28
28
  * @extends HTMLElement
29
29
  * @private
30
30
  */
31
- class MultiSelectComboBoxChip extends CSSInjectionMixin(ThemableMixin(PolylitMixin(LitElement))) {
31
+ class MultiSelectComboBoxChip extends LumoInjectionMixin(ThemableMixin(PolylitMixin(LitElement))) {
32
32
  static get is() {
33
33
  return 'vaadin-multi-select-combo-box-chip';
34
34
  }
@@ -27,6 +27,7 @@ class MultiSelectComboBoxContainer extends InputContainer {
27
27
  display: flex;
28
28
  width: 100%;
29
29
  min-width: 0;
30
+ gap: var(--_wrapper-gap);
30
31
  }
31
32
 
32
33
  :host([auto-expand-vertically]) #wrapper {
@@ -93,6 +93,10 @@ export const MultiSelectComboBoxInternalMixin = (superClass) =>
93
93
  sync: true,
94
94
  },
95
95
 
96
+ owner: {
97
+ type: Object,
98
+ },
99
+
96
100
  _target: {
97
101
  type: Object,
98
102
  },
@@ -177,7 +181,7 @@ export const MultiSelectComboBoxInternalMixin = (superClass) =>
177
181
  if (items && items.length && this.topGroup && this.topGroup.length) {
178
182
  // Filter out items included to the top group.
179
183
  const filteredItems = items.filter(
180
- (item) => this._comboBox._findIndex(item, this.topGroup, this.itemIdPath) === -1,
184
+ (item) => this.owner._findIndex(item, this.topGroup, this.itemIdPath) === -1,
181
185
  );
182
186
 
183
187
  super._setDropdownItems(this.topGroup.concat(filteredItems));
@@ -196,18 +200,11 @@ export const MultiSelectComboBoxInternalMixin = (superClass) =>
196
200
 
197
201
  /**
198
202
  * Override combo-box method to set correct owner for using by item renderers.
199
- * This needs to be done before the scroller gets added to the DOM to ensure
200
- * Lit directive works in case when combo-box is opened using attribute.
201
- *
202
203
  * @protected
203
204
  * @override
204
205
  */
205
206
  _initScroller() {
206
- const comboBox = this.getRootNode().host;
207
-
208
- this._comboBox = comboBox;
209
-
210
- super._initScroller(comboBox);
207
+ super._initScroller(this.owner);
211
208
  }
212
209
 
213
210
  /**
@@ -10,7 +10,6 @@ import { css, html, LitElement } from 'lit';
10
10
  import { ifDefined } from 'lit/directives/if-defined.js';
11
11
  import { defineCustomElement } from '@vaadin/component-base/src/define.js';
12
12
  import { PolylitMixin } from '@vaadin/component-base/src/polylit-mixin.js';
13
- import { CSSInjectionMixin } from '@vaadin/vaadin-themable-mixin/css-injection-mixin.js';
14
13
  import { ThemableMixin } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';
15
14
  import { MultiSelectComboBoxInternalMixin } from './vaadin-multi-select-combo-box-internal-mixin.js';
16
15
 
@@ -23,9 +22,7 @@ import { MultiSelectComboBoxInternalMixin } from './vaadin-multi-select-combo-bo
23
22
  * @mixes ThemableMixin
24
23
  * @private
25
24
  */
26
- class MultiSelectComboBoxInternal extends MultiSelectComboBoxInternalMixin(
27
- CSSInjectionMixin(ThemableMixin(PolylitMixin(LitElement))),
28
- ) {
25
+ class MultiSelectComboBoxInternal extends MultiSelectComboBoxInternalMixin(ThemableMixin(PolylitMixin(LitElement))) {
29
26
  static get is() {
30
27
  return 'vaadin-multi-select-combo-box-internal';
31
28
  }
@@ -45,6 +42,7 @@ class MultiSelectComboBoxInternal extends MultiSelectComboBoxInternalMixin(
45
42
 
46
43
  <vaadin-multi-select-combo-box-overlay
47
44
  id="overlay"
45
+ .owner="${this.owner}"
48
46
  .opened="${this._overlayOpened}"
49
47
  ?loading="${this.loading}"
50
48
  theme="${ifDefined(this._theme)}"
@@ -9,7 +9,7 @@ import { defineCustomElement } from '@vaadin/component-base/src/define.js';
9
9
  import { DirMixin } from '@vaadin/component-base/src/dir-mixin.js';
10
10
  import { PolylitMixin } from '@vaadin/component-base/src/polylit-mixin.js';
11
11
  import { itemStyles } from '@vaadin/item/src/styles/vaadin-item-core-styles.js';
12
- import { CSSInjectionMixin } from '@vaadin/vaadin-themable-mixin/css-injection-mixin.js';
12
+ import { LumoInjectionMixin } from '@vaadin/vaadin-themable-mixin/lumo-injection-mixin.js';
13
13
  import { ThemableMixin } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';
14
14
 
15
15
  /**
@@ -40,7 +40,7 @@ import { ThemableMixin } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mix
40
40
  * @private
41
41
  */
42
42
  export class MultiSelectComboBoxItem extends ComboBoxItemMixin(
43
- CSSInjectionMixin(ThemableMixin(DirMixin(PolylitMixin(LitElement)))),
43
+ LumoInjectionMixin(ThemableMixin(DirMixin(PolylitMixin(LitElement)))),
44
44
  ) {
45
45
  static get is() {
46
46
  return 'vaadin-multi-select-combo-box-item';
@@ -10,7 +10,7 @@ import { DirMixin } from '@vaadin/component-base/src/dir-mixin.js';
10
10
  import { PolylitMixin } from '@vaadin/component-base/src/polylit-mixin.js';
11
11
  import { overlayStyles } from '@vaadin/overlay/src/styles/vaadin-overlay-core-styles.js';
12
12
  import { OverlayMixin } from '@vaadin/overlay/src/vaadin-overlay-mixin.js';
13
- import { CSSInjectionMixin } from '@vaadin/vaadin-themable-mixin/css-injection-mixin.js';
13
+ import { LumoInjectionMixin } from '@vaadin/vaadin-themable-mixin/lumo-injection-mixin.js';
14
14
  import { ThemableMixin } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';
15
15
  import { multiSelectComboBoxOverlayStyles } from './styles/vaadin-multi-select-combo-box-overlay-core-styles.js';
16
16
 
@@ -26,7 +26,7 @@ import { multiSelectComboBoxOverlayStyles } from './styles/vaadin-multi-select-c
26
26
  * @private
27
27
  */
28
28
  class MultiSelectComboBoxOverlay extends ComboBoxOverlayMixin(
29
- OverlayMixin(DirMixin(CSSInjectionMixin(ThemableMixin(PolylitMixin(LitElement))))),
29
+ OverlayMixin(DirMixin(LumoInjectionMixin(ThemableMixin(PolylitMixin(LitElement))))),
30
30
  ) {
31
31
  static get is() {
32
32
  return 'vaadin-multi-select-combo-box-overlay';
@@ -8,7 +8,6 @@ import { ComboBoxPlaceholder } from '@vaadin/combo-box/src/vaadin-combo-box-plac
8
8
  import { ComboBoxScrollerMixin } from '@vaadin/combo-box/src/vaadin-combo-box-scroller-mixin.js';
9
9
  import { defineCustomElement } from '@vaadin/component-base/src/define.js';
10
10
  import { PolylitMixin } from '@vaadin/component-base/src/polylit-mixin.js';
11
- import { CSSInjectionMixin } from '@vaadin/vaadin-themable-mixin/css-injection-mixin.js';
12
11
  import { multiSelectComboBoxScrollerStyles } from './styles/vaadin-multi-select-combo-box-scroller-core-styles.js';
13
12
 
14
13
  /**
@@ -19,7 +18,7 @@ import { multiSelectComboBoxScrollerStyles } from './styles/vaadin-multi-select-
19
18
  * @mixes ComboBoxScrollerMixin
20
19
  * @private
21
20
  */
22
- export class MultiSelectComboBoxScroller extends ComboBoxScrollerMixin(CSSInjectionMixin(PolylitMixin(LitElement))) {
21
+ export class MultiSelectComboBoxScroller extends ComboBoxScrollerMixin(PolylitMixin(LitElement)) {
23
22
  static get is() {
24
23
  return 'vaadin-multi-select-combo-box-scroller';
25
24
  }
@@ -130,7 +130,6 @@ export interface MultiSelectComboBoxEventMap<TItem> extends HTMLElementEventMap
130
130
  * `--vaadin-field-default-width` | Default width of the field | `12em`
131
131
  * `--vaadin-multi-select-combo-box-overlay-width` | Width of the overlay | `auto`
132
132
  * `--vaadin-multi-select-combo-box-overlay-max-height` | Max height of the overlay | `65vh`
133
- * `--vaadin-multi-select-combo-box-chip-min-width` | Min width of the chip | `50px`
134
133
  * `--vaadin-multi-select-combo-box-input-min-width` | Min width of the input | `4em`
135
134
  *
136
135
  * ### Internal components
@@ -12,7 +12,7 @@ import { defineCustomElement } from '@vaadin/component-base/src/define.js';
12
12
  import { ElementMixin } from '@vaadin/component-base/src/element-mixin.js';
13
13
  import { PolylitMixin } from '@vaadin/component-base/src/polylit-mixin.js';
14
14
  import { inputFieldShared } from '@vaadin/field-base/src/styles/input-field-shared-styles.js';
15
- import { CSSInjectionMixin } from '@vaadin/vaadin-themable-mixin/css-injection-mixin.js';
15
+ import { LumoInjectionMixin } from '@vaadin/vaadin-themable-mixin/lumo-injection-mixin.js';
16
16
  import { ThemableMixin } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';
17
17
  import { multiSelectComboBoxStyles } from './styles/vaadin-multi-select-combo-box-core-styles.js';
18
18
  import { MultiSelectComboBoxMixin } from './vaadin-multi-select-combo-box-mixin.js';
@@ -69,7 +69,6 @@ import { MultiSelectComboBoxMixin } from './vaadin-multi-select-combo-box-mixin.
69
69
  * `--vaadin-field-default-width` | Default width of the field | `12em`
70
70
  * `--vaadin-multi-select-combo-box-overlay-width` | Width of the overlay | `auto`
71
71
  * `--vaadin-multi-select-combo-box-overlay-max-height` | Max height of the overlay | `65vh`
72
- * `--vaadin-multi-select-combo-box-chip-min-width` | Min width of the chip | `50px`
73
72
  * `--vaadin-multi-select-combo-box-input-min-width` | Min width of the input | `4em`
74
73
  *
75
74
  * ### Internal components
@@ -101,7 +100,7 @@ import { MultiSelectComboBoxMixin } from './vaadin-multi-select-combo-box-mixin.
101
100
  * @mixes MultiSelectComboBoxMixin
102
101
  */
103
102
  class MultiSelectComboBox extends MultiSelectComboBoxMixin(
104
- CSSInjectionMixin(ThemableMixin(ElementMixin(PolylitMixin(LitElement)))),
103
+ LumoInjectionMixin(ThemableMixin(ElementMixin(PolylitMixin(LitElement)))),
105
104
  ) {
106
105
  static get is() {
107
106
  return 'vaadin-multi-select-combo-box';
@@ -122,6 +121,7 @@ class MultiSelectComboBox extends MultiSelectComboBoxMixin(
122
121
 
123
122
  <vaadin-multi-select-combo-box-internal
124
123
  id="comboBox"
124
+ .owner="${this}"
125
125
  .filteredItems="${this.filteredItems}"
126
126
  .items="${this.items}"
127
127
  .itemIdPath="${this.itemIdPath}"
@@ -59,6 +59,10 @@ registerStyles(
59
59
  );
60
60
 
61
61
  const multiSelectComboBox = css`
62
+ :host {
63
+ --_wrapper-gap: 0;
64
+ }
65
+
62
66
  :host([has-value]) {
63
67
  padding-inline-start: 0;
64
68
  }
@@ -77,7 +81,6 @@ const multiSelectComboBox = css`
77
81
  min-height: auto;
78
82
  padding: 0.3125em calc(0.5em + var(--lumo-border-radius-s) / 4);
79
83
  color: var(--lumo-body-text-color);
80
- -webkit-mask-image: none;
81
84
  mask-image: none;
82
85
  }
83
86
 
package/web-types.json CHANGED
@@ -1,14 +1,14 @@
1
1
  {
2
2
  "$schema": "https://json.schemastore.org/web-types",
3
3
  "name": "@vaadin/multi-select-combo-box",
4
- "version": "25.0.0-alpha5",
4
+ "version": "25.0.0-alpha7",
5
5
  "description-markup": "markdown",
6
6
  "contributions": {
7
7
  "html": {
8
8
  "elements": [
9
9
  {
10
10
  "name": "vaadin-multi-select-combo-box",
11
- "description": "`<vaadin-multi-select-combo-box>` is a web component that wraps `<vaadin-combo-box>` and extends\nits functionality to allow selecting multiple items, in addition to basic features.\n\n```html\n<vaadin-multi-select-combo-box id=\"comboBox\"></vaadin-multi-select-combo-box>\n```\n```js\nconst comboBox = document.querySelector('#comboBox');\ncomboBox.items = ['apple', 'banana', 'lemon', 'orange'];\ncomboBox.selectedItems = ['lemon', 'orange'];\n```\n\n### Styling\n\nThe following shadow DOM parts are available for styling:\n\nPart name | Description\n-----------------------|----------------\n`chips` | The element that wraps slotted chips for selected items\n`label` | The label element\n`input-field` | The element that wraps prefix, value and suffix\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\nThe following state attributes are available for styling:\n\nAttribute | Description\n-----------------------|-----------------\n`disabled` | Set to a disabled element\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`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`loading` | Set when loading items from the data provider\n`opened` | Set when the dropdown is open\n`readonly` | Set to a readonly element\n\nThe following custom CSS properties are available for styling:\n\nCustom property | Description | Default\n-----------------------------------------------------|----------------------------|--------\n`--vaadin-field-default-width` | Default width of the field | `12em`\n`--vaadin-multi-select-combo-box-overlay-width` | Width of the overlay | `auto`\n`--vaadin-multi-select-combo-box-overlay-max-height` | Max height of the overlay | `65vh`\n`--vaadin-multi-select-combo-box-chip-min-width` | Min width of the chip | `50px`\n`--vaadin-multi-select-combo-box-input-min-width` | Min width of the input | `4em`\n\n### Internal components\n\nIn addition to `<vaadin-multi-select-combo-box>` itself, the following internal\ncomponents are themable:\n\n- `<vaadin-multi-select-combo-box-overlay>` - has the same API as `<vaadin-overlay>`.\n- `<vaadin-multi-select-combo-box-item>` - has the same API as `<vaadin-item>`.\n- `<vaadin-multi-select-combo-box-container>` - has the same API as `<vaadin-input-container>`.\n\nNote: the `theme` attribute value set on `<vaadin-multi-select-combo-box>` is\npropagated to these components.\n\nSee [Styling Components](https://vaadin.com/docs/latest/styling/styling-components) documentation.",
11
+ "description": "`<vaadin-multi-select-combo-box>` is a web component that wraps `<vaadin-combo-box>` and extends\nits functionality to allow selecting multiple items, in addition to basic features.\n\n```html\n<vaadin-multi-select-combo-box id=\"comboBox\"></vaadin-multi-select-combo-box>\n```\n```js\nconst comboBox = document.querySelector('#comboBox');\ncomboBox.items = ['apple', 'banana', 'lemon', 'orange'];\ncomboBox.selectedItems = ['lemon', 'orange'];\n```\n\n### Styling\n\nThe following shadow DOM parts are available for styling:\n\nPart name | Description\n-----------------------|----------------\n`chips` | The element that wraps slotted chips for selected items\n`label` | The label element\n`input-field` | The element that wraps prefix, value and suffix\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\nThe following state attributes are available for styling:\n\nAttribute | Description\n-----------------------|-----------------\n`disabled` | Set to a disabled element\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`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`loading` | Set when loading items from the data provider\n`opened` | Set when the dropdown is open\n`readonly` | Set to a readonly element\n\nThe following custom CSS properties are available for styling:\n\nCustom property | Description | Default\n-----------------------------------------------------|----------------------------|--------\n`--vaadin-field-default-width` | Default width of the field | `12em`\n`--vaadin-multi-select-combo-box-overlay-width` | Width of the overlay | `auto`\n`--vaadin-multi-select-combo-box-overlay-max-height` | Max height of the overlay | `65vh`\n`--vaadin-multi-select-combo-box-input-min-width` | Min width of the input | `4em`\n\n### Internal components\n\nIn addition to `<vaadin-multi-select-combo-box>` itself, the following internal\ncomponents are themable:\n\n- `<vaadin-multi-select-combo-box-overlay>` - has the same API as `<vaadin-overlay>`.\n- `<vaadin-multi-select-combo-box-item>` - has the same API as `<vaadin-item>`.\n- `<vaadin-multi-select-combo-box-container>` - has the same API as `<vaadin-input-container>`.\n\nNote: the `theme` attribute value set on `<vaadin-multi-select-combo-box>` is\npropagated to these components.\n\nSee [Styling Components](https://vaadin.com/docs/latest/styling/styling-components) documentation.",
12
12
  "attributes": [
13
13
  {
14
14
  "name": "disabled",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json.schemastore.org/web-types",
3
3
  "name": "@vaadin/multi-select-combo-box",
4
- "version": "25.0.0-alpha5",
4
+ "version": "25.0.0-alpha7",
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-multi-select-combo-box",
19
- "description": "`<vaadin-multi-select-combo-box>` is a web component that wraps `<vaadin-combo-box>` and extends\nits functionality to allow selecting multiple items, in addition to basic features.\n\n```html\n<vaadin-multi-select-combo-box id=\"comboBox\"></vaadin-multi-select-combo-box>\n```\n```js\nconst comboBox = document.querySelector('#comboBox');\ncomboBox.items = ['apple', 'banana', 'lemon', 'orange'];\ncomboBox.selectedItems = ['lemon', 'orange'];\n```\n\n### Styling\n\nThe following shadow DOM parts are available for styling:\n\nPart name | Description\n-----------------------|----------------\n`chips` | The element that wraps slotted chips for selected items\n`label` | The label element\n`input-field` | The element that wraps prefix, value and suffix\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\nThe following state attributes are available for styling:\n\nAttribute | Description\n-----------------------|-----------------\n`disabled` | Set to a disabled element\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`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`loading` | Set when loading items from the data provider\n`opened` | Set when the dropdown is open\n`readonly` | Set to a readonly element\n\nThe following custom CSS properties are available for styling:\n\nCustom property | Description | Default\n-----------------------------------------------------|----------------------------|--------\n`--vaadin-field-default-width` | Default width of the field | `12em`\n`--vaadin-multi-select-combo-box-overlay-width` | Width of the overlay | `auto`\n`--vaadin-multi-select-combo-box-overlay-max-height` | Max height of the overlay | `65vh`\n`--vaadin-multi-select-combo-box-chip-min-width` | Min width of the chip | `50px`\n`--vaadin-multi-select-combo-box-input-min-width` | Min width of the input | `4em`\n\n### Internal components\n\nIn addition to `<vaadin-multi-select-combo-box>` itself, the following internal\ncomponents are themable:\n\n- `<vaadin-multi-select-combo-box-overlay>` - has the same API as `<vaadin-overlay>`.\n- `<vaadin-multi-select-combo-box-item>` - has the same API as `<vaadin-item>`.\n- `<vaadin-multi-select-combo-box-container>` - has the same API as `<vaadin-input-container>`.\n\nNote: the `theme` attribute value set on `<vaadin-multi-select-combo-box>` is\npropagated to these components.\n\nSee [Styling Components](https://vaadin.com/docs/latest/styling/styling-components) documentation.",
19
+ "description": "`<vaadin-multi-select-combo-box>` is a web component that wraps `<vaadin-combo-box>` and extends\nits functionality to allow selecting multiple items, in addition to basic features.\n\n```html\n<vaadin-multi-select-combo-box id=\"comboBox\"></vaadin-multi-select-combo-box>\n```\n```js\nconst comboBox = document.querySelector('#comboBox');\ncomboBox.items = ['apple', 'banana', 'lemon', 'orange'];\ncomboBox.selectedItems = ['lemon', 'orange'];\n```\n\n### Styling\n\nThe following shadow DOM parts are available for styling:\n\nPart name | Description\n-----------------------|----------------\n`chips` | The element that wraps slotted chips for selected items\n`label` | The label element\n`input-field` | The element that wraps prefix, value and suffix\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\nThe following state attributes are available for styling:\n\nAttribute | Description\n-----------------------|-----------------\n`disabled` | Set to a disabled element\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`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`loading` | Set when loading items from the data provider\n`opened` | Set when the dropdown is open\n`readonly` | Set to a readonly element\n\nThe following custom CSS properties are available for styling:\n\nCustom property | Description | Default\n-----------------------------------------------------|----------------------------|--------\n`--vaadin-field-default-width` | Default width of the field | `12em`\n`--vaadin-multi-select-combo-box-overlay-width` | Width of the overlay | `auto`\n`--vaadin-multi-select-combo-box-overlay-max-height` | Max height of the overlay | `65vh`\n`--vaadin-multi-select-combo-box-input-min-width` | Min width of the input | `4em`\n\n### Internal components\n\nIn addition to `<vaadin-multi-select-combo-box>` itself, the following internal\ncomponents are themable:\n\n- `<vaadin-multi-select-combo-box-overlay>` - has the same API as `<vaadin-overlay>`.\n- `<vaadin-multi-select-combo-box-item>` - has the same API as `<vaadin-item>`.\n- `<vaadin-multi-select-combo-box-container>` - has the same API as `<vaadin-input-container>`.\n\nNote: the `theme` attribute value set on `<vaadin-multi-select-combo-box>` is\npropagated to these components.\n\nSee [Styling Components](https://vaadin.com/docs/latest/styling/styling-components) documentation.",
20
20
  "extension": true,
21
21
  "attributes": [
22
22
  {