@sankhyalabs/ezui 5.22.0-dev.90 → 5.22.0-dev.92

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 (49) hide show
  1. package/dist/cjs/ez-combo-box-list_3.cjs.entry.js +366 -0
  2. package/dist/cjs/ez-combo-box.cjs.entry.js +58 -184
  3. package/dist/cjs/ez-grid.cjs.entry.js +55 -0
  4. package/dist/cjs/ez-multi-selection-list.cjs.entry.js +186 -0
  5. package/dist/cjs/{ez-multi-selection-list_2.cjs.entry.js → ez-popover-core_2.cjs.entry.js} +115 -196
  6. package/dist/cjs/ezui.cjs.js +1 -1
  7. package/dist/cjs/index-9e5554cb.js +8 -4
  8. package/dist/cjs/loader.cjs.js +1 -1
  9. package/dist/collection/collection-manifest.json +2 -0
  10. package/dist/collection/components/ez-combo-box/ez-combo-box-list/ez-combo-box-list.css +205 -0
  11. package/dist/collection/components/ez-combo-box/ez-combo-box-list/ez-combo-box-list.js +405 -0
  12. package/dist/collection/components/ez-combo-box/ez-combo-box.css +0 -250
  13. package/dist/collection/components/ez-combo-box/ez-combo-box.js +61 -194
  14. package/dist/collection/components/ez-grid/ez-grid.js +56 -1
  15. package/dist/collection/components/ez-popover-plus/ez-popover-plus.css +0 -64
  16. package/dist/collection/components/ez-popover-plus/ez-popover-plus.js +47 -127
  17. package/dist/collection/components/ez-popover-plus/subcomponent/ez-popover-core.css +67 -0
  18. package/dist/collection/components/ez-popover-plus/subcomponent/ez-popover-core.js +468 -0
  19. package/dist/custom-elements/index.d.ts +12 -0
  20. package/dist/custom-elements/index.js +367 -203
  21. package/dist/esm/ez-combo-box-list_3.entry.js +360 -0
  22. package/dist/esm/ez-combo-box.entry.js +59 -185
  23. package/dist/esm/ez-grid.entry.js +56 -1
  24. package/dist/esm/ez-multi-selection-list.entry.js +182 -0
  25. package/dist/esm/{ez-multi-selection-list_2.entry.js → ez-popover-core_2.entry.js} +116 -197
  26. package/dist/esm/ezui.js +1 -1
  27. package/dist/esm/index-5a720e56.js +8 -4
  28. package/dist/esm/loader.js +1 -1
  29. package/dist/ezui/ezui.esm.js +1 -1
  30. package/dist/ezui/p-39f3efcf.entry.js +1 -0
  31. package/dist/ezui/p-b3b5647e.entry.js +1 -0
  32. package/dist/ezui/{p-9e5bbe25.entry.js → p-be72b472.entry.js} +46 -46
  33. package/dist/ezui/p-c7035d65.entry.js +1 -0
  34. package/dist/ezui/p-fcc999c4.entry.js +1 -0
  35. package/dist/types/components/ez-combo-box/ez-combo-box-list/ez-combo-box-list.d.ts +104 -0
  36. package/dist/types/components/ez-combo-box/ez-combo-box.d.ts +7 -16
  37. package/dist/types/components/ez-grid/ez-grid.d.ts +5 -0
  38. package/dist/types/components/ez-popover-plus/ez-popover-plus.d.ts +6 -19
  39. package/dist/types/components/ez-popover-plus/subcomponent/ez-popover-core.d.ts +81 -0
  40. package/dist/types/components.d.ts +218 -3
  41. package/package.json +1 -1
  42. package/react/components.d.ts +2 -0
  43. package/react/components.js +2 -0
  44. package/react/components.js.map +1 -1
  45. package/dist/cjs/ez-custom-form-input_2.cjs.entry.js +0 -236
  46. package/dist/esm/ez-custom-form-input_2.entry.js +0 -231
  47. package/dist/ezui/p-3af64edd.entry.js +0 -1
  48. package/dist/ezui/p-cba34702.entry.js +0 -1
  49. package/dist/ezui/p-fcc78b7f.entry.js +0 -1
@@ -0,0 +1,405 @@
1
+ import { h } from "@stencil/core";
2
+ import { ElementIDUtils } from "@sankhyalabs/core";
3
+ export class EzComboBoxList {
4
+ constructor() {
5
+ this.showLoading = undefined;
6
+ this.visibleOptions = undefined;
7
+ this.textEmptyList = "Nenhum resultado encontrado";
8
+ this.showOptionValue = undefined;
9
+ this.preSelection = undefined;
10
+ this.maxWidth = undefined;
11
+ this.width = undefined;
12
+ this.onOptionSelect = undefined;
13
+ this.onOptionHover = undefined;
14
+ }
15
+ /**
16
+ * Move a seleção para a próxima opção na lista.
17
+ */
18
+ async nextOption() {
19
+ this.preSelection = this.preSelection === undefined ? 0 : Math.min(this.preSelection + 1, this.visibleOptions.length - 1);
20
+ this.scrollToOption(this.visibleOptions[this.preSelection]);
21
+ }
22
+ /**
23
+ * Move a seleção para a opção anterior na lista.
24
+ */
25
+ async previousOption() {
26
+ this.preSelection = this.preSelection === undefined ? 0 : Math.max(this.preSelection - 1, 0);
27
+ this.scrollToOption(this.visibleOptions[this.preSelection]);
28
+ }
29
+ /**
30
+ * Seleciona a opção atualmente pré-selecionada.
31
+ */
32
+ async selectCurrentOption() {
33
+ if (this.preSelection !== undefined) {
34
+ this.onOptionSelect(this.visibleOptions[this.preSelection]);
35
+ this.preSelection = undefined;
36
+ }
37
+ }
38
+ /**
39
+ * Observa mudanças na propriedade `width` e ajusta a largura da lista.
40
+ *
41
+ * @param newValue O novo valor da largura.
42
+ * @param oldValue O valor anterior da largura.
43
+ */
44
+ observeWidth(newValue, oldValue) {
45
+ if (newValue === oldValue)
46
+ return;
47
+ if (!this._listWrapper)
48
+ return;
49
+ this._listWrapper.style.width = `${this.width}px`;
50
+ }
51
+ /**
52
+ * Observa mudanças na propriedade `maxWidth` e ajusta a largura máxima da lista.
53
+ *
54
+ * @param newValue O novo valor da largura máxima.
55
+ * @param oldValue O valor anterior da largura máxima.
56
+ */
57
+ observeMaxWidth(newValue, oldValue) {
58
+ if (newValue === oldValue)
59
+ return;
60
+ if (!this._listWrapper)
61
+ return;
62
+ this._listWrapper.style.maxWidth = this.maxWidth ? `${this.maxWidth}px` : '';
63
+ }
64
+ /**
65
+ * Gerencia a navegação por teclado na lista do combo box.
66
+ *
67
+ * - `ArrowDown`: Move para a próxima opção.
68
+ * - `ArrowUp`: Move para a opção anterior.
69
+ * - `Enter`: Seleciona a opção atual.
70
+ * - `Escape`: Limpa a pré-seleção.
71
+ *
72
+ * @param event O evento de teclado.
73
+ */
74
+ handleKeyDown(event) {
75
+ switch (event.key) {
76
+ case "ArrowDown":
77
+ event.preventDefault();
78
+ event.stopPropagation();
79
+ this.nextOption();
80
+ break;
81
+ case "ArrowUp":
82
+ event.preventDefault();
83
+ event.stopPropagation();
84
+ this.previousOption();
85
+ break;
86
+ case "Enter":
87
+ this.selectCurrentOption();
88
+ break;
89
+ case "Escape":
90
+ this.preSelection = undefined;
91
+ break;
92
+ }
93
+ }
94
+ buildItem(opt, index) {
95
+ const widthValue = this.showOptionValue && this.maxWidth > 0 ? `${this.maxWidth}px` : '';
96
+ opt.label = opt.label || opt.value;
97
+ return h("li", { class: index === this.preSelection ? "item preselected" : "item", id: `item_${opt.value}`, onMouseDown: () => this.onOptionSelect(opt), onMouseOver: () => this.preSelection = index }, this.showOptionValue
98
+ ? h("span", { class: "item__value", title: opt.value, style: { width: widthValue, minWidth: widthValue, maxWidth: widthValue } }, opt.value)
99
+ : undefined, h("span", { class: "item__label " + (this.showOptionValue ? "item__label--bold" : ""), title: opt.label }, opt.label));
100
+ }
101
+ scrollToOption(opt) {
102
+ window.requestAnimationFrame(() => {
103
+ const liElem = (opt === null || opt === void 0 ? void 0 : opt.value) ? this._optionsList.querySelector(`li#item_${opt.value.replace(/[ <>\[\]#=]/g, '\\$&').replace(/:/g, '\\:')}`) : undefined;
104
+ if (liElem)
105
+ liElem.scrollIntoView({ behavior: "smooth", block: "nearest" });
106
+ });
107
+ }
108
+ componentDidLoad() {
109
+ this._listWrapper.style.width = `${this.width}px`;
110
+ this._listWrapper.style.maxWidth = this.maxWidth ? `${this.maxWidth}px` : '';
111
+ }
112
+ componentDidRender() {
113
+ var _a;
114
+ (_a = this._optionsList) === null || _a === void 0 ? void 0 : _a.querySelectorAll(".item").forEach((elem) => {
115
+ ElementIDUtils.addIDInfoIfNotExists(elem, "itemComboBox");
116
+ });
117
+ }
118
+ render() {
119
+ return (h("section", { class: "list-container" }, h("div", { class: "list-wrapper", ref: elem => this._listWrapper = elem }, h("ul", { class: "list-options", ref: elem => this._optionsList = elem }, !this.showLoading && this.visibleOptions.length === 0 && (h("div", { class: "message" }, h("span", { class: "message__no-result" }, this.textEmptyList))), this.showLoading && (h("div", { class: "message" }, h("div", { class: "message__loading" }))), this.showOptionValue && (h("span", { class: "item__value item__value--hidden" })), !this.showLoading && this.visibleOptions.length > 0 &&
120
+ this.visibleOptions.map((opt, index) => this.buildItem(opt, index))))));
121
+ }
122
+ static get is() { return "ez-combo-box-list"; }
123
+ static get encapsulation() { return "shadow"; }
124
+ static get originalStyleUrls() {
125
+ return {
126
+ "$": ["ez-combo-box-list.css"]
127
+ };
128
+ }
129
+ static get styleUrls() {
130
+ return {
131
+ "$": ["ez-combo-box-list.css"]
132
+ };
133
+ }
134
+ static get properties() {
135
+ return {
136
+ "showLoading": {
137
+ "type": "boolean",
138
+ "mutable": false,
139
+ "complexType": {
140
+ "original": "boolean",
141
+ "resolved": "boolean",
142
+ "references": {}
143
+ },
144
+ "required": false,
145
+ "optional": false,
146
+ "docs": {
147
+ "tags": [{
148
+ "name": "tipo",
149
+ "text": "{boolean}"
150
+ }],
151
+ "text": "Indica se o indicador de carregamento deve ser exibido."
152
+ },
153
+ "attribute": "show-loading",
154
+ "reflect": false
155
+ },
156
+ "visibleOptions": {
157
+ "type": "unknown",
158
+ "mutable": false,
159
+ "complexType": {
160
+ "original": "Array<IOption>",
161
+ "resolved": "IOption[]",
162
+ "references": {
163
+ "Array": {
164
+ "location": "global"
165
+ },
166
+ "IOption": {
167
+ "location": "import",
168
+ "path": "../ez-combo-box"
169
+ }
170
+ }
171
+ },
172
+ "required": false,
173
+ "optional": false,
174
+ "docs": {
175
+ "tags": [{
176
+ "name": "tipo",
177
+ "text": "{Array<IOption>}"
178
+ }],
179
+ "text": "Lista de op\u00E7\u00F5es vis\u00EDveis que ser\u00E3o exibidas no componente."
180
+ }
181
+ },
182
+ "textEmptyList": {
183
+ "type": "string",
184
+ "mutable": false,
185
+ "complexType": {
186
+ "original": "string",
187
+ "resolved": "string",
188
+ "references": {}
189
+ },
190
+ "required": false,
191
+ "optional": false,
192
+ "docs": {
193
+ "tags": [{
194
+ "name": "padr\u00E3o",
195
+ "text": "\"Nenhum resultado encontrado\""
196
+ }, {
197
+ "name": "tipo",
198
+ "text": "{string}"
199
+ }],
200
+ "text": "Mensagem exibida quando a lista de op\u00E7\u00F5es est\u00E1 vazia."
201
+ },
202
+ "attribute": "text-empty-list",
203
+ "reflect": false,
204
+ "defaultValue": "\"Nenhum resultado encontrado\""
205
+ },
206
+ "showOptionValue": {
207
+ "type": "boolean",
208
+ "mutable": false,
209
+ "complexType": {
210
+ "original": "boolean",
211
+ "resolved": "boolean",
212
+ "references": {}
213
+ },
214
+ "required": false,
215
+ "optional": false,
216
+ "docs": {
217
+ "tags": [{
218
+ "name": "tipo",
219
+ "text": "{boolean}"
220
+ }],
221
+ "text": "Indica se o valor de cada op\u00E7\u00E3o deve ser exibido junto com o r\u00F3tulo."
222
+ },
223
+ "attribute": "show-option-value",
224
+ "reflect": false
225
+ },
226
+ "preSelection": {
227
+ "type": "number",
228
+ "mutable": false,
229
+ "complexType": {
230
+ "original": "number",
231
+ "resolved": "number",
232
+ "references": {}
233
+ },
234
+ "required": false,
235
+ "optional": false,
236
+ "docs": {
237
+ "tags": [{
238
+ "name": "tipo",
239
+ "text": "{number}"
240
+ }],
241
+ "text": "\u00CDndice da op\u00E7\u00E3o pr\u00E9-selecionada na lista."
242
+ },
243
+ "attribute": "pre-selection",
244
+ "reflect": false
245
+ },
246
+ "maxWidth": {
247
+ "type": "number",
248
+ "mutable": false,
249
+ "complexType": {
250
+ "original": "number",
251
+ "resolved": "number",
252
+ "references": {}
253
+ },
254
+ "required": false,
255
+ "optional": false,
256
+ "docs": {
257
+ "tags": [{
258
+ "name": "tipo",
259
+ "text": "{number}"
260
+ }],
261
+ "text": "Largura m\u00E1xima da lista, em pixels."
262
+ },
263
+ "attribute": "max-width",
264
+ "reflect": false
265
+ },
266
+ "width": {
267
+ "type": "number",
268
+ "mutable": false,
269
+ "complexType": {
270
+ "original": "number",
271
+ "resolved": "number",
272
+ "references": {}
273
+ },
274
+ "required": false,
275
+ "optional": false,
276
+ "docs": {
277
+ "tags": [{
278
+ "name": "tipo",
279
+ "text": "{number}"
280
+ }],
281
+ "text": "Largura fixa da lista, em pixels."
282
+ },
283
+ "attribute": "width",
284
+ "reflect": false
285
+ },
286
+ "onOptionSelect": {
287
+ "type": "unknown",
288
+ "mutable": false,
289
+ "complexType": {
290
+ "original": "(option: IOption) => void",
291
+ "resolved": "(option: IOption) => void",
292
+ "references": {
293
+ "IOption": {
294
+ "location": "import",
295
+ "path": "../ez-combo-box"
296
+ }
297
+ }
298
+ },
299
+ "required": false,
300
+ "optional": false,
301
+ "docs": {
302
+ "tags": [{
303
+ "name": "param",
304
+ "text": "option A op\u00E7\u00E3o selecionada."
305
+ }, {
306
+ "name": "tipo",
307
+ "text": "{(option: IOption) => void}"
308
+ }],
309
+ "text": "Callback chamado quando uma op\u00E7\u00E3o \u00E9 selecionada."
310
+ }
311
+ },
312
+ "onOptionHover": {
313
+ "type": "unknown",
314
+ "mutable": false,
315
+ "complexType": {
316
+ "original": "(index: number) => void",
317
+ "resolved": "(index: number) => void",
318
+ "references": {}
319
+ },
320
+ "required": false,
321
+ "optional": false,
322
+ "docs": {
323
+ "tags": [{
324
+ "name": "param",
325
+ "text": "index O \u00EDndice da op\u00E7\u00E3o em foco."
326
+ }, {
327
+ "name": "tipo",
328
+ "text": "{(index: number) => void}"
329
+ }],
330
+ "text": "Callback chamado quando o mouse passa sobre uma op\u00E7\u00E3o."
331
+ }
332
+ }
333
+ };
334
+ }
335
+ static get methods() {
336
+ return {
337
+ "nextOption": {
338
+ "complexType": {
339
+ "signature": "() => Promise<void>",
340
+ "parameters": [],
341
+ "references": {
342
+ "Promise": {
343
+ "location": "global"
344
+ }
345
+ },
346
+ "return": "Promise<void>"
347
+ },
348
+ "docs": {
349
+ "text": "Move a sele\u00E7\u00E3o para a pr\u00F3xima op\u00E7\u00E3o na lista.",
350
+ "tags": []
351
+ }
352
+ },
353
+ "previousOption": {
354
+ "complexType": {
355
+ "signature": "() => Promise<void>",
356
+ "parameters": [],
357
+ "references": {
358
+ "Promise": {
359
+ "location": "global"
360
+ }
361
+ },
362
+ "return": "Promise<void>"
363
+ },
364
+ "docs": {
365
+ "text": "Move a sele\u00E7\u00E3o para a op\u00E7\u00E3o anterior na lista.",
366
+ "tags": []
367
+ }
368
+ },
369
+ "selectCurrentOption": {
370
+ "complexType": {
371
+ "signature": "() => Promise<void>",
372
+ "parameters": [],
373
+ "references": {
374
+ "Promise": {
375
+ "location": "global"
376
+ }
377
+ },
378
+ "return": "Promise<void>"
379
+ },
380
+ "docs": {
381
+ "text": "Seleciona a op\u00E7\u00E3o atualmente pr\u00E9-selecionada.",
382
+ "tags": []
383
+ }
384
+ }
385
+ };
386
+ }
387
+ static get watchers() {
388
+ return [{
389
+ "propName": "width",
390
+ "methodName": "observeWidth"
391
+ }, {
392
+ "propName": "maxWidth",
393
+ "methodName": "observeMaxWidth"
394
+ }];
395
+ }
396
+ static get listeners() {
397
+ return [{
398
+ "name": "keydown",
399
+ "method": "handleKeyDown",
400
+ "target": undefined,
401
+ "capture": false,
402
+ "passive": false
403
+ }];
404
+ }
405
+ }
@@ -1,105 +1,27 @@
1
1
  :host {
2
-
3
2
  /* dimensions */
4
- /*@doc Define altura do input.*/
5
3
  --ez-combo-box--height: 42px;
6
- /*@doc Define largura do input.*/
7
4
  --ez-combo-box--width: 100%;
8
- /*@doc Define largura do slot do ícone do input.*/
9
- --ez-combo-box__icon--width: 48px;
10
-
11
- /*@doc Define a largura maxima do componente.*/
12
- --ez-combo-box__min-width: 0px;
13
- /*@doc Define a largura minima do componente.*/
14
- --ez-combo-box__max-width: 100%;
15
5
 
16
6
  /* general */
17
- /*@doc Define o raio da borda do input.*/
18
7
  --ez-combo-box--border-radius: var(--border--radius-medium, 12px);
19
- /*@doc Define o raio da borda do input quando pequeno.*/
20
- --ez-combo-box--border-radius-small: var(--border--radius-small, 6px);
21
- /*@doc Define o tamanho da fonte dentro do input.*/
22
8
  --ez-combo-box--font-size: var(--text--medium, 14px);
23
- /*@doc Define a família da fonte dentro do input.*/
24
9
  --ez-combo-box--font-family: var(--font-pattern, Arial);
25
- /*@doc Define o peso da fonte dentro do input quando pesada.*/
26
- --ez-combo-box--font-weight--large: var(--text-weight--large, 500);
27
- /*@doc Define o peso da fonte dentro do input quando média.*/
28
- --ez-combo-box--font-weight--medium: var(--text-weight--medium, 400);
29
- /*@doc Define a cor de fundo da lista de opções.*/
30
10
  --ez-combo-box--background-color--xlight: var(--background--xlight, #fff);
31
- /*@doc Define a cor de fundo dos itens da lista de opções.*/
32
- --ez-combo-box--background-medium: var(--background--medium, #f0f3f7);
33
- /*@doc Define a altura da linha do texto dentro do input.*/
34
- --ez-combo-box--line-height: calc(var(--text--medium, 14px) + 4px);
35
11
 
36
12
  /* input */
37
- /*@doc Define a cor de fundo do input.*/
38
13
  --ez-combo-box__input--background-color: var(--background--medium, #e0e0e0);
39
- /*@doc Define o estilo da borda do input.*/
40
14
  --ez-combo-box__input--border: var(--border--medium, 2px solid);
41
- /*@doc Define a cor da borda do input.*/
42
15
  --ez-combo-box__input--border-color: var(--ez-combo-box__input--background-color);
43
- /*no modo normal usamos a borda com a mesma cor do bg*/
44
- /*@doc Define a cor da borda do input quando focado.*/
45
16
  --ez-combo-box__input--focus--border-color: var(--color--primary, #008561);
46
- /*@doc Define a cor de fundo do input quando desabilitado.*/
47
17
  --ez-combo-box__input--disabled--background-color: var(--color--disable-secondary, #F2F5F8);
48
- /*@doc Define a cor do texto dentro do input quando desabilitado.*/
49
18
  --ez-combo-box__input--disabled--color: var(--text--disable, #AFB6C0);
50
- /*@doc Define a cor da borda do input quando com erro.*/
51
- --ez-combo-box__input--error--border-color: #CC2936;
52
19
 
53
20
  /* buttons */
54
- /*@doc Define a cor do botão de pesquisa do componente.*/
55
21
  --ez-combo-box__btn--color: var(--title--primary, #2B3A54);
56
- /*@doc Define a cor do botão de pesquisa do componente quando desabilitado.*/
57
22
  --ez-combo-box__btn-disabled--color: var(--text--disable, #AFB6C0);
58
- /*@doc Define a cor do botão de pesquisa do componente quando o mouse está sobre ele.*/
59
23
  --ez-combo-box__btn-hover--color: var(--color--primary, #4e4e4e);
60
24
 
61
- /* label */
62
- /*@doc Define a cor do label.*/
63
- --ez-combo-box__label--color: var(--title--primary, #2B3A54);
64
-
65
- /* list */
66
- /*@doc Define a cor do texto da lista de opções.*/
67
- --ez-combo-box__list-title--primary: var(--title--primary, #2B3A54);
68
- /*@doc Define a cor do texto do value da lista de opções.*/
69
- --ez-combo-box__list-text--primary: var(--text--primary, #626e82);
70
- /*@doc Define a altura do box da lista de opções.*/
71
- --ez-combo-box__list-height: calc(var(--ez-combo-box--font-size) + var(--ez-combo-box--space--medium) + 4px);
72
- /*@doc Define a largura mínima da lista de opções.*/
73
- --ez-combo-box__list-min-width: 64px;
74
-
75
- /* espaçamento */
76
- /*@doc Define um espaçamento mediano entre elementos do componente.*/
77
- --ez-combo-box--space--medium: var(--space--medium, 12px);
78
- /*@doc Define um espaçamento pequeno entre elementos do componente.*/
79
- --ez-combo-box--space--small: var(--space--small, 6px);
80
-
81
- /* scrollbar */
82
- /*@doc Define a cor da barra de rolagem do componente.*/
83
- --ez-combo-box__scrollbar--color-default: var(--scrollbar--default, #626e82);
84
- /*@doc Define a cor de fundo da barra de rolagem do componente.*/
85
- --ez-combo-box__scrollbar--color-background: var(--scrollbar--background, #E5EAF0);
86
- /*@doc Define a cor do hover na barra de rolagem do componente.*/
87
- --ez-combo-box__scrollbar--color-hover: var(--scrollbar--hover, #2B3A54);
88
- /*@doc Define a cor do active na barra de rolagem do componente.*/
89
- --ez-combo-box__scrollbar--color-clicked: var(--scrollbar--clicked, #a2abb9);
90
- /*@doc Define o raio da borda da barra de rolagem do componente.*/
91
- --ez-combo-box__scrollbar--border-radius: var(--border--radius-small, 6px);
92
- /*@doc Define a largura da barra de rolagem do componente.*/
93
- --ez-combo-box__scrollbar--width: var(--space--small, 6px);
94
-
95
- /***************
96
- host style
97
- ***************/
98
- /*private*/
99
- display: flex;
100
- flex-wrap: wrap;
101
- position: relative;
102
-
103
25
  /*public*/
104
26
  width: var(--ez-combo-box--width);
105
27
  }
@@ -118,178 +40,6 @@ ez-icon {
118
40
  --ez-text-input__input--disabled--color: var(--title--primary, #2B3A54);
119
41
  }
120
42
 
121
- .list-container {
122
- /*public*/
123
- min-width: var(--ez-combo-box__list-min-width);
124
-
125
- /*private*/
126
- position: relative;
127
- width: 100%;
128
- }
129
-
130
- .list-wrapper {
131
- display: flex;
132
- flex-direction: column;
133
- box-sizing: border-box;
134
- width: 0;
135
-
136
- /*public*/
137
- z-index: var(--more-visible, 2);
138
- max-height: calc(4*var(--ez-combo-box__list-height) + 2*var(--ez-combo-box--space--small) + 9px);
139
- background-color: var(--ez-combo-box--background-color--xlight);
140
- border-radius: var(--ez-combo-box--border-radius);
141
- box-shadow: var(--shadow, 0px 0px 16px 0px #000);
142
- padding: var(--ez-combo-box--space--small);
143
- }
144
-
145
- .list-options {
146
- box-sizing: border-box;
147
- width: 100%;
148
- height: 100%;
149
- padding: 0;
150
- display: flex;
151
- flex-direction: column;
152
- scroll-behavior: smooth;
153
- overflow: auto;
154
- scrollbar-width: thin;
155
- gap: 3px;
156
-
157
- /*public*/
158
- scrollbar-color: var(--ez-combo-box__scrollbar--color-clicked) var(--ez-combo-box__scrollbar--color-background);
159
- }
160
-
161
- .list-options::-webkit-scrollbar {
162
- /*public*/
163
- background-color: var(--ez-combo-box__scrollbar--color-background);
164
- width: var(--ez-combo-box__scrollbar--width);
165
- max-width: var(--ez-combo-box__scrollbar--width);
166
- min-width: var(--ez-combo-box__scrollbar--width);
167
- }
168
-
169
- .list-options::-webkit-scrollbar-track {
170
- /*public*/
171
- background-color: var(--ez-combo-box__scrollbar--color-background);
172
- border-radius: var(--ez-combo-box__scrollbar--border-radius);
173
- }
174
-
175
- .list-options::-webkit-scrollbar-thumb {
176
- /*public*/
177
- background-color: var(--ez-combo-box__scrollbar--color-default);
178
- border-radius: var(--ez-combo-box__scrollbar--border-radius);
179
- }
180
-
181
- .list-options::-webkit-scrollbar-thumb:vertical:hover,
182
- .list-options::-webkit-scrollbar-thumb:horizontal:hover {
183
- /*public*/
184
- background-color: var(--ez-combo-box__scrollbar--color-hover);
185
- }
186
-
187
- .list-options::-webkit-scrollbar-thumb:vertical:active,
188
- .list-options::-webkit-scrollbar-thumb:horizontal:active {
189
- /*public*/
190
- background-color: var(--ez-combo-box__scrollbar--color-clicked);
191
- }
192
-
193
- .item {
194
- display: flex;
195
- align-items: center;
196
- width: 100%;
197
- box-sizing: border-box;
198
- list-style-type: none;
199
- cursor: pointer;
200
-
201
- /*public*/
202
- border-radius: var(--ez-combo-box--border-radius-small);
203
- padding: var(--ez-combo-box--space--small);
204
- min-height: var(--ez-combo-box__list-height);
205
- gap: var(--space--small, 6px);
206
- }
207
-
208
- .item__value,
209
- .item__label {
210
- flex-basis: auto;
211
- white-space: nowrap;
212
- overflow: hidden;
213
- text-overflow: ellipsis;
214
-
215
- /*public*/
216
- color: var(--ez-combo-box__list-title--primary);
217
- font-family: var(--ez-combo-box--font-family);
218
- font-size: var(--ez-combo-box--font-size);
219
- line-height: var(--ez-combo-box--line-height);
220
- }
221
-
222
- .item__label {
223
- /*public*/
224
- font-weight: var(--ez-combo-box--font-weight--medium);
225
- }
226
-
227
- .item__label--bold {
228
- /*public*/
229
- font-weight: var(--ez-combo-box--font-weight--large);
230
- }
231
-
232
- .item__value {
233
- text-align: center;
234
-
235
- /*public*/
236
- color: var(--ez-combo-box__list-text--primary);
237
- font-weight: var(--ez-combo-box--font-weight--large);
238
- }
239
-
240
- .item__value--hidden {
241
- visibility: hidden;
242
- position: absolute;
243
- white-space: nowrap;
244
- z-index: -1;
245
- top: 0;
246
- left: 0;
247
- }
248
-
249
- .item__label {
250
- text-align: left;
251
- }
252
-
253
- .message {
254
- text-align: center;
255
- display: flex;
256
- justify-content: center;
257
- align-items: center;
258
- list-style-type: none;
259
-
260
- /*public*/
261
- min-height: var(--ez-combo-box__list-height);
262
- }
263
-
264
- .message__no-result {
265
- /*public*/
266
- color: var(--ez-combo-box__list-title--primary);
267
- font-family: var(--ez-combo-box--font-family);
268
- font-size: var(--ez-combo-box--font-size);
269
- }
270
-
271
- .message__loading {
272
- border-radius: 50%;
273
- width: 14px;
274
- height: 14px;
275
- -webkit-animation: spin 1s linear infinite;
276
- animation: spin 1s linear infinite;
277
-
278
- /*public*/
279
- border: 3px solid var(--ez-combo-box__list-title--primary);
280
- border-top: 3px solid transparent;
281
- }
282
-
283
- li:hover {
284
- /*public*/
285
- background-color: var(--ez-combo-box--background-medium);
286
- }
287
-
288
- .preselected {
289
- /*public*/
290
- background-color: var(--background--medium);
291
- }
292
-
293
43
  .btn {
294
44
  outline: none;
295
45
  border: none;