@aquera/nile-elements 0.1.49-beta-1.4 → 0.1.50-beta-1.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 (55) hide show
  1. package/README.md +3 -0
  2. package/demo/index.html +106 -29
  3. package/dist/nile-select/nile-select.cjs.js +1 -1
  4. package/dist/nile-select/nile-select.cjs.js.map +1 -1
  5. package/dist/nile-select/nile-select.esm.js +2 -2
  6. package/dist/nile-select/virtual-scroll-helper.cjs.js +1 -1
  7. package/dist/nile-select/virtual-scroll-helper.cjs.js.map +1 -1
  8. package/dist/nile-select/virtual-scroll-helper.esm.js +1 -1
  9. package/dist/nile-virtual-select/nile-virtual-select.cjs.js +1 -1
  10. package/dist/nile-virtual-select/nile-virtual-select.cjs.js.map +1 -1
  11. package/dist/nile-virtual-select/nile-virtual-select.esm.js +2 -2
  12. package/dist/nile-virtual-select/nile-virtual-select.test.cjs.js +1 -1
  13. package/dist/nile-virtual-select/nile-virtual-select.test.cjs.js.map +1 -1
  14. package/dist/nile-virtual-select/nile-virtual-select.test.esm.js +12 -12
  15. package/dist/nile-virtual-select/renderer.cjs.js +1 -1
  16. package/dist/nile-virtual-select/renderer.cjs.js.map +1 -1
  17. package/dist/nile-virtual-select/renderer.esm.js +8 -7
  18. package/dist/nile-virtual-select/search-manager.cjs.js +1 -1
  19. package/dist/nile-virtual-select/search-manager.cjs.js.map +1 -1
  20. package/dist/nile-virtual-select/search-manager.esm.js +1 -1
  21. package/dist/nile-virtual-select/selection-manager.cjs.js +1 -1
  22. package/dist/nile-virtual-select/selection-manager.cjs.js.map +1 -1
  23. package/dist/nile-virtual-select/selection-manager.esm.js +1 -1
  24. package/dist/src/nile-select/nile-select.d.ts +3 -1
  25. package/dist/src/nile-select/nile-select.js +1 -2
  26. package/dist/src/nile-select/nile-select.js.map +1 -1
  27. package/dist/src/nile-select/virtual-scroll-helper.js +1 -1
  28. package/dist/src/nile-select/virtual-scroll-helper.js.map +1 -1
  29. package/dist/src/nile-virtual-select/nile-virtual-select.d.ts +16 -4
  30. package/dist/src/nile-virtual-select/nile-virtual-select.js +35 -10
  31. package/dist/src/nile-virtual-select/nile-virtual-select.js.map +1 -1
  32. package/dist/src/nile-virtual-select/nile-virtual-select.test.js +36 -12
  33. package/dist/src/nile-virtual-select/nile-virtual-select.test.js.map +1 -1
  34. package/dist/src/nile-virtual-select/renderer.d.ts +2 -2
  35. package/dist/src/nile-virtual-select/renderer.js +8 -5
  36. package/dist/src/nile-virtual-select/renderer.js.map +1 -1
  37. package/dist/src/nile-virtual-select/search-manager.d.ts +1 -1
  38. package/dist/src/nile-virtual-select/search-manager.js +3 -2
  39. package/dist/src/nile-virtual-select/search-manager.js.map +1 -1
  40. package/dist/src/nile-virtual-select/selection-manager.d.ts +1 -1
  41. package/dist/src/nile-virtual-select/selection-manager.js +10 -3
  42. package/dist/src/nile-virtual-select/selection-manager.js.map +1 -1
  43. package/dist/src/nile-virtual-select/types.d.ts +6 -1
  44. package/dist/src/nile-virtual-select/types.js.map +1 -1
  45. package/dist/tsconfig.tsbuildinfo +1 -1
  46. package/package.json +1 -1
  47. package/src/nile-select/nile-select.ts +3 -1
  48. package/src/nile-select/virtual-scroll-helper.ts +1 -1
  49. package/src/nile-virtual-select/nile-virtual-select.test.ts +36 -12
  50. package/src/nile-virtual-select/nile-virtual-select.ts +44 -10
  51. package/src/nile-virtual-select/renderer.ts +13 -5
  52. package/src/nile-virtual-select/search-manager.ts +4 -2
  53. package/src/nile-virtual-select/selection-manager.ts +16 -5
  54. package/src/nile-virtual-select/types.ts +7 -1
  55. package/vscode-html-custom-data.json +2 -2
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "description": "Webcomponent nile-elements following open-wc recommendations",
4
4
  "license": "MIT",
5
5
  "author": "nile-elements",
6
- "version": "0.1.49-beta-1.4",
6
+ "version": "0.1.50-beta-1.0",
7
7
  "main": "dist/src/index.js",
8
8
  "type": "module",
9
9
  "module": "dist/src/index.js",
@@ -33,6 +33,7 @@ import type { CSSResultGroup, PropertyValues } from 'lit';
33
33
  import type { NileFormControl } from '../internal/nile-element';
34
34
  import type NileOption from '../nile-option/nile-option';
35
35
  import type NilePopup from '../nile-popup/nile-popup';
36
+ import type { RenderItemConfig } from '../nile-virtual-select/types.js';
36
37
  import { unsafeHTML } from 'lit/directives/unsafe-html.js';
37
38
  import { ifDefined } from 'lit/directives/if-defined.js';
38
39
  import '../nile-virtual-select/nile-virtual-select';
@@ -236,7 +237,8 @@ export class NileSelect extends NileElement implements NileFormControl{
236
237
 
237
238
  @property({ type: String }) noResultsMessage: string = 'No results found';
238
239
 
239
- @property({ attribute: false }) renderItemFunction: (item: any) => string = (item: any) => item?.label || item?.name || item;
240
+ /** Enhanced configuration for rendering items with support for display text, value, and search text */
241
+ @property({ attribute: false }) renderItemConfig?: RenderItemConfig;
240
242
 
241
243
  @property({ type: Array }) data: any = [];
242
244
 
@@ -42,7 +42,7 @@ export class VirtualScrollHelper {
42
42
  .required=${component.required}
43
43
  .showNoResults=${component.showNoResults}
44
44
  .noResultsMessage=${component.noResultsMessage}
45
- .renderItemFunction=${component.renderItemFunction}
45
+ .renderItemConfig=${component.renderItemConfig}
46
46
  .blockValueChange=${component.blockValueChange}
47
47
  .noWidthSync=${component.noWidthSync}
48
48
  .maxOptionsVisible=${component.maxOptionsVisible}
@@ -24,7 +24,9 @@ describe('<nile-virtual-select>', () => {
24
24
  { value: 'option-3', label: 'Option 3' },
25
25
  { value: 'option-4', label: 'Option 4' }
26
26
  ];
27
- el.renderItemFunction = (item: any) => item.label;
27
+ el.renderItemConfig = {
28
+ getDisplayText: (item: any) => item.label
29
+ };
28
30
 
29
31
  // Set multiple values
30
32
  el.value = ['option-1', 'option-2', 'option-3'];
@@ -50,7 +52,9 @@ describe('<nile-virtual-select>', () => {
50
52
  { value: 'option-2', label: 'Option 2' },
51
53
  { value: 'option-3', label: 'Option 3' }
52
54
  ];
53
- el.renderItemFunction = (item: any) => item.label;
55
+ el.renderItemConfig = {
56
+ getDisplayText: (item: any) => item.label
57
+ };
54
58
 
55
59
  // Set values within limit
56
60
  el.value = ['option-1', 'option-2'];
@@ -76,7 +80,9 @@ describe('<nile-virtual-select>', () => {
76
80
  { value: 'option-3', label: 'Option 3' },
77
81
  { value: 'option-4', label: 'Option 4' }
78
82
  ];
79
- el.renderItemFunction = (item: any) => item.label;
83
+ el.renderItemConfig = {
84
+ getDisplayText: (item: any) => item.label
85
+ };
80
86
 
81
87
  // Set multiple values
82
88
  el.value = ['option-1', 'option-2', 'option-3', 'option-4'];
@@ -107,7 +113,9 @@ describe('<nile-virtual-select>', () => {
107
113
  { value: 'option-2', label: 'Option 2' },
108
114
  { value: 'option-3', label: 'Option 3' }
109
115
  ];
110
- el.renderItemFunction = (item: any) => item.label;
116
+ el.renderItemConfig = {
117
+ getDisplayText: (item: any) => item.label
118
+ };
111
119
 
112
120
  // Open the select to render options
113
121
  el.open = true;
@@ -139,7 +147,9 @@ describe('<nile-virtual-select>', () => {
139
147
  { value: 'option-1', label: 'Option 1' },
140
148
  { value: 'option-2', label: 'Option 2' }
141
149
  ];
142
- el.renderItemFunction = (item: any) => item.label;
150
+ el.renderItemConfig = {
151
+ getDisplayText: (item: any) => item.label
152
+ };
143
153
 
144
154
  // Open the select to render options
145
155
  el.open = true;
@@ -171,7 +181,9 @@ describe('<nile-virtual-select>', () => {
171
181
  { value: 'option-2', label: 'Option 2' },
172
182
  { value: 'option-3', label: 'Option 3' }
173
183
  ];
174
- el.renderItemFunction = (item: any) => item.label;
184
+ el.renderItemConfig = {
185
+ getDisplayText: (item: any) => item.label
186
+ };
175
187
 
176
188
  // Open the select to render options
177
189
  el.open = true;
@@ -207,7 +219,9 @@ describe('<nile-virtual-select>', () => {
207
219
  { value: 'option-2', label: 'Option 2' },
208
220
  { value: 'option-3', label: 'Option 3' }
209
221
  ];
210
- el.renderItemFunction = (item: any) => item.label;
222
+ el.renderItemConfig = {
223
+ getDisplayText: (item: any) => item.label
224
+ };
211
225
 
212
226
  // Set a selected value
213
227
  el.value = 'option-2';
@@ -235,7 +249,9 @@ describe('<nile-virtual-select>', () => {
235
249
  { value: 'option-2', label: 'Option 2' },
236
250
  { value: 'option-3', label: 'Option 3' }
237
251
  ];
238
- el.renderItemFunction = (item: any) => item.label;
252
+ el.renderItemConfig = {
253
+ getDisplayText: (item: any) => item.label
254
+ };
239
255
 
240
256
  // Set multiple selected values
241
257
  el.value = ['option-1', 'option-3'];
@@ -266,7 +282,9 @@ describe('<nile-virtual-select>', () => {
266
282
  { value: 'option-2', label: 'Option 2' },
267
283
  { value: 'option-3', label: 'Option 3' }
268
284
  ];
269
- el.renderItemFunction = (item: any) => item.label;
285
+ el.renderItemConfig = {
286
+ getDisplayText: (item: any) => item.label
287
+ };
270
288
 
271
289
  // Set a selected value
272
290
  el.value = 'option-2';
@@ -289,7 +307,9 @@ describe('<nile-virtual-select>', () => {
289
307
  `);
290
308
 
291
309
  // Set renderItemFunction first
292
- el.renderItemFunction = (item: any) => item.label;
310
+ el.renderItemConfig = {
311
+ getDisplayText: (item: any) => item.label
312
+ };
293
313
 
294
314
  // Set value before data
295
315
  el.value = ['option-1', 'option-3'];
@@ -326,7 +346,9 @@ describe('<nile-virtual-select>', () => {
326
346
  `);
327
347
 
328
348
  // Set up test data
329
- el.renderItemFunction = (item: any) => item.label;
349
+ el.renderItemConfig = {
350
+ getDisplayText: (item: any) => item.label
351
+ };
330
352
  el.data = [
331
353
  { value: 'option-1', label: 'Option 1' },
332
354
  { value: 'option-2', label: 'Option 2' },
@@ -357,7 +379,9 @@ describe('<nile-virtual-select>', () => {
357
379
  `);
358
380
 
359
381
  // Set up test data
360
- el.renderItemFunction = (item: any) => item.label;
382
+ el.renderItemConfig = {
383
+ getDisplayText: (item: any) => item.label
384
+ };
361
385
  el.data = [
362
386
  { value: 'option-1', label: 'Option 1' },
363
387
  { value: 'option-2', label: 'Option 2' },
@@ -35,7 +35,7 @@ import type NileOption from '../nile-option/nile-option';
35
35
  import type NilePopup from '../nile-popup/nile-popup';
36
36
  import { ifDefined } from 'lit/directives/if-defined.js';
37
37
 
38
- import type { VirtualOption, NileRemoveEvent } from './types.js';
38
+ import type { VirtualOption, NileRemoveEvent, RenderItemConfig } from './types.js';
39
39
  import { VirtualSelectSelectionManager } from './selection-manager.js';
40
40
  import { VirtualSelectSearchManager } from './search-manager.js';
41
41
  import { VirtualSelectRenderer } from './renderer.js';
@@ -222,8 +222,8 @@ export class NileVirtualSelect extends NileElement implements NileFormControl {
222
222
  /** Show selected options only */
223
223
  @property({ type: Boolean }) showSelected = false;
224
224
 
225
- /** Function to render item value from data object */
226
- @property({ attribute:false}) renderItemFunction: (item:any)=>string = (item:any)=>item?.label || item?.name || item;
225
+ /** Enhanced configuration for rendering items with support for display text, value, and search text */
226
+ @property({ attribute:false}) renderItemConfig?: RenderItemConfig;
227
227
 
228
228
  /** Block value change events */
229
229
  @property({ type: Boolean, reflect: true }) blockValueChange = false;
@@ -267,11 +267,41 @@ export class NileVirtualSelect extends NileElement implements NileFormControl {
267
267
  }
268
268
 
269
269
  private initializeComponent(): void {
270
- this.renderItemFunction = (item:any) => item?.label || item?.name || item;
271
270
  this.open = false;
272
271
  this.emit('nile-init');
273
272
  }
274
273
 
274
+ /**
275
+ * Get display text for an item using renderItemConfig
276
+ */
277
+ private getDisplayText(item: any): string {
278
+ if (this.renderItemConfig?.getDisplayText) {
279
+ return this.renderItemConfig.getDisplayText(item);
280
+ }
281
+ // Fallback to basic display
282
+ return item?.label || item?.name || item?.toString() || '';
283
+ }
284
+
285
+ /**
286
+ * Get value for an item using renderItemConfig or fallback to item.value
287
+ */
288
+ private getItemValue(item: any): string {
289
+ if (this.renderItemConfig?.getValue) {
290
+ return this.renderItemConfig.getValue(item);
291
+ }
292
+ return item?.value || item;
293
+ }
294
+
295
+ /**
296
+ * Get search text for an item using renderItemConfig or fallback to display text
297
+ */
298
+ private getSearchText(item: any): string {
299
+ if (this.renderItemConfig?.getSearchText) {
300
+ return this.renderItemConfig.getSearchText(item);
301
+ }
302
+ return this.getDisplayText(item);
303
+ }
304
+
275
305
  private setupEventListeners(): void {
276
306
  this.handleDocumentFocusIn = this.handleDocumentFocusIn.bind(this);
277
307
  this.handleDocumentKeyDown = this.handleDocumentKeyDown.bind(this);
@@ -560,7 +590,8 @@ export class NileVirtualSelect extends NileElement implements NileFormControl {
560
590
  this.selectedOptions = VirtualSelectSelectionManager.createVirtualOptionsFromValues(
561
591
  this.value,
562
592
  itemsToSearch,
563
- this.renderItemFunction
593
+ this.getDisplayText.bind(this),
594
+ this.renderItemConfig?.getValue
564
595
  );
565
596
 
566
597
  if (this.multiple) {
@@ -604,7 +635,8 @@ export class NileVirtualSelect extends NileElement implements NileFormControl {
604
635
  searchValue,
605
636
  this.originalOptionItems,
606
637
  this.data,
607
- this.renderItemFunction
638
+ this.getDisplayText.bind(this),
639
+ this.renderItemConfig?.getSearchText
608
640
  );
609
641
 
610
642
  this.data = result.filteredItems;
@@ -637,8 +669,8 @@ export class NileVirtualSelect extends NileElement implements NileFormControl {
637
669
  this.requestUpdate();
638
670
  }
639
671
 
640
- @watch('renderItemFunction', { waitUntilFirstUpdate: true })
641
- handleRenderItemFunctionChange(): void {
672
+ @watch('renderItemConfig', { waitUntilFirstUpdate: true })
673
+ handleRenderItemConfigChange(): void {
642
674
  if (this.value && this.data.length > 0) {
643
675
  this.selectionChanged();
644
676
  this.requestUpdate();
@@ -1133,9 +1165,11 @@ export class NileVirtualSelect extends NileElement implements NileFormControl {
1133
1165
  return VirtualSelectRenderer.getVirtualizedContent(
1134
1166
  this.data,
1135
1167
  this.searchEnabled,
1136
- this.renderItemFunction,
1168
+ this.getDisplayText.bind(this),
1137
1169
  this.value,
1138
- this.multiple
1170
+ this.multiple,
1171
+ this.renderItemConfig?.getDisplayText,
1172
+ this.renderItemConfig?.getValue
1139
1173
  );
1140
1174
  }
1141
1175
 
@@ -15,7 +15,9 @@ export class VirtualSelectRenderer {
15
15
  searchEnabled: boolean,
16
16
  renderItemFunction: (item: any) => string,
17
17
  value: string | string[],
18
- multiple: boolean
18
+ multiple: boolean,
19
+ getDisplayText?: (item: any) => string,
20
+ getItemValue?: (item: any) => string
19
21
  ): TemplateResult {
20
22
  return html`
21
23
  <div class="select__options ${
@@ -27,7 +29,7 @@ export class VirtualSelectRenderer {
27
29
  ${virtualize({
28
30
  items: data,
29
31
  renderItem: (item: any): TemplateResult =>
30
- VirtualSelectRenderer.getItemRenderFunction(item, renderItemFunction, value, multiple),
32
+ VirtualSelectRenderer.getItemRenderFunction(item, renderItemFunction, value, multiple, getDisplayText, getItemValue),
31
33
  scroller: true,
32
34
  })}
33
35
  </div>
@@ -38,10 +40,15 @@ export class VirtualSelectRenderer {
38
40
  item: any,
39
41
  renderItemFunction: (item: any) => string,
40
42
  value: string | string[],
41
- multiple: boolean
43
+ multiple: boolean,
44
+ getDisplayText?: (item: any) => string,
45
+ getItemValue?: (item: any) => string
42
46
  ): TemplateResult {
43
- const optionValue = item.value;
44
- const displayText = renderItemFunction(item);
47
+ const displayTextFn = getDisplayText || renderItemFunction;
48
+ const valueFn = getItemValue || ((item: any) => item?.value || item);
49
+
50
+ const optionValue = valueFn(item);
51
+ const displayText = displayTextFn(item);
45
52
  const isDisabled = item.disabled || false;
46
53
 
47
54
  let isSelected = false;
@@ -57,6 +64,7 @@ export class VirtualSelectRenderer {
57
64
  .selected=${isSelected}
58
65
  .multiple=${multiple}
59
66
  .disabled=${isDisabled}
67
+ .showCheckbox=${multiple}
60
68
  >
61
69
  ${unsafeHTML(displayText)}
62
70
  </nile-option>
@@ -10,7 +10,8 @@ export class VirtualSelectSearchManager {
10
10
  searchValue: string,
11
11
  originalOptionItems: any[],
12
12
  data: any[],
13
- renderItemFunction: (item: any) => string
13
+ renderItemFunction: (item: any) => string,
14
+ getSearchText?: (item: any) => string
14
15
  ): { filteredItems: any[], showNoResults: boolean } {
15
16
  if (originalOptionItems.length === 0 && data.length > 0) {
16
17
  return {
@@ -34,8 +35,9 @@ export class VirtualSelectSearchManager {
34
35
  }
35
36
 
36
37
  const lowerCaseSearchValue = searchValue.toLowerCase();
38
+ const searchTextFn = getSearchText || renderItemFunction;
37
39
  const filteredItems = originalOptionItems.filter((item: any) => {
38
- const itemValue = renderItemFunction(item);
40
+ const itemValue = searchTextFn(item);
39
41
  const lowerCaseItemValue = itemValue.toLowerCase();
40
42
  return lowerCaseItemValue.includes(lowerCaseSearchValue);
41
43
  });
@@ -8,7 +8,12 @@
8
8
  import type { VirtualOption } from './types.js';
9
9
 
10
10
  export class VirtualSelectSelectionManager {
11
- static createVirtualOptionsFromValues(value: string | string[], data: any[], renderItemFunction: (item: any) => string): VirtualOption[] {
11
+ static createVirtualOptionsFromValues(
12
+ value: string | string[],
13
+ data: any[],
14
+ getDisplayText: (item: any) => string,
15
+ getItemValue?: (item: any) => string
16
+ ): VirtualOption[] {
12
17
  if (!value || (Array.isArray(value) && value.length === 0)) {
13
18
  return [];
14
19
  }
@@ -16,11 +21,17 @@ export class VirtualSelectSelectionManager {
16
21
  const values = Array.isArray(value) ? value : [value];
17
22
 
18
23
  return values.map(valueItem => {
19
- const item = data.find((item: any) =>
20
- item.value === valueItem || renderItemFunction(item) === valueItem
21
- );
24
+ // Use enhanced functions if available, otherwise fallback to basic logic
25
+ const displayTextFn = getDisplayText;
26
+ const valueFn = getItemValue || ((item: any) => item?.value || item);
22
27
 
23
- const displayText = item ? renderItemFunction(item) : valueItem;
28
+ const item = data.find((item: any) => {
29
+ const itemValue = valueFn(item);
30
+ const itemDisplayText = displayTextFn(item);
31
+ return itemValue === valueItem || itemDisplayText === valueItem;
32
+ });
33
+
34
+ const displayText = item ? displayTextFn(item) : valueItem;
24
35
 
25
36
  return {
26
37
  value: valueItem,
@@ -14,6 +14,12 @@ export interface VirtualOption {
14
14
  getOptionPrefix: () => string;
15
15
  }
16
16
 
17
+ export interface RenderItemConfig {
18
+ getDisplayText: (item: any) => string;
19
+ getValue?: (item: any) => string;
20
+ getSearchText?: (item: any) => string;
21
+ }
22
+
17
23
  export interface VirtualSelectProperties {
18
24
  name: string;
19
25
  data: any[];
@@ -42,7 +48,7 @@ export interface VirtualSelectProperties {
42
48
  required: boolean;
43
49
  showNoResults: boolean;
44
50
  noResultsMessage: string;
45
- renderItemFunction: (item: any) => string;
51
+ renderItemConfig?: RenderItemConfig;
46
52
  blockValueChange: boolean;
47
53
  noWidthSync: boolean;
48
54
  }
@@ -2843,7 +2843,7 @@
2843
2843
  },
2844
2844
  {
2845
2845
  "name": "nile-select",
2846
- "description": "Events:\n\n * `nile-change` {} - Emitted when the control's value changes.\n\n * `nile-clear` {} - Emitted when the control's value is cleared.\n\n * `nile-input` {} - Emitted when the control receives input.\n\n * `nile-focus` {} - Emitted when the control gains focus.\n\n * `nile-blur` {} - Emitted when the control loses focus.\n\n * `nile-show` {} - Emitted when the select's menu opens.\n\n * `nile-after-show` {} - Emitted after the select's menu opens and all animations are complete.\n\n * `nile-hide` {} - Emitted when the select's menu closes.\n\n * `nile-after-hide` {} - Emitted after the select's menu closes and all animations are complete.\n\n * `nile-invalid` {} - Emitted when the form control has been checked for validity and its constraints aren't satisfied.\n\nSlots:\n\n * ` ` {} - The listbox options. Must be `<nile-option>` elements. You can use `<nile-divider>` to group items visually.\n\n * `label` {} - The input's label. Alternatively, you can use the `label` attribute.\n\n * `prefix` {} - Used to prepend a presentational icon or similar element to the combobox.\n\n * `clear-icon` {} - An icon to use in lieu of the default clear icon.\n\n * `expand-icon` {} - The icon to show when the control is expanded and collapsed. Rotates on open and close.\n\n * `help-text` {} - Text that describes how to use the input. Alternatively, you can use the `help-text` attribute.\n\nAttributes:\n\n * `size` {`\"medium\" | \"small\" | \"large\"`} - The select's size.\n\n * `placeholder` {`string`} - Placeholder text to show as a hint when the select is empty.\n\n * `searchEnabled` {`boolean`} - \n\n * `internal-search-placeholder` {`string`} - \n\n * `blockValueChange` {`boolean`} - \n\n * `disableLocalSearch` {`boolean`} - \n\n * `optionsLoading` {`boolean`} - \n\n * `noWidthSync` {`boolean`} - \n\n * `multiple` {`boolean`} - Allows more than one option to be selected.\n\n * `help-text` {`string`} - \n\n * `error-message` {`string`} - \n\n * `warning` {`boolean`} - Sets the input to a warning state, changing its visual appearance.\n\n * `error` {`boolean`} - Sets the input to an error state, changing its visual appearance.\n\n * `success` {`boolean`} - Sets the input to a success state, changing its visual appearance.\n\n * `max-options-visible` {`number`} - The maximum number of selected options to show when `multiple` is true. After the maximum, \"+n\" will be shown to\nindicate the number of additional items that are selected. Set to 0 to remove the limit.\n\n * `clearable` {`boolean`} - Adds a clear button when the select is not empty.\n\n * `open` {`boolean`} - Indicates whether or not the select is open. You can toggle this attribute to show and hide the menu, or you can\nuse the `show()` and `hide()` methods and this attribute will reflect the select's open state.\n\n * `hoist` {`boolean`} - Enable this option to prevent the listbox from being clipped when the component is placed inside a container with\n`overflow: auto|scroll`. Hoisting uses a fixed positioning strategy that works in many, but not all, scenarios.\n\n * `filled` {`boolean`} - Draws a filled select.\n\n * `pill` {`boolean`} - Draws a pill-style select with rounded edges.\n\n * `label` {`string`} - The select's label. If you need to display HTML, use the `label` slot instead.\n\n * `placement` {`\"top\" | \"bottom\"`} - The preferred placement of the select's menu. Note that the actual placement may vary as needed to keep the listbox\ninside of the viewport.\n\n * `showSelected` {`boolean`} - \n\n * `showNoResults` {`boolean`} - \n\n * `noResultsMessage` {`string`} - \n\n * `data` - \n\n * `enableVirtualScroll` {`boolean`} - \n\n * `name` {`string`} - The name of the select, submitted as a name/value pair with form data.\n\n * `value` {`string | string[]`} - The current value of the select, submitted as a name/value pair with form data. When `multiple` is enabled, the\nvalue will be a space-delimited list of values based on the options selected.\n\n * `disabled` {`boolean`} - Disables the select control.\n\n * `form` {`string`} - By default, form controls are associated with the nearest containing `<form>` element. This attribute allows you\nto place the form control outside of a form and associate it with the form that has this `id`. The form must be in\nthe same document or shadow root for this to work.\n\n * `required` {`boolean`} - The select's required attribute.\n\nProperties:\n\n * `styles` - \n\n * `formControlController` - \n\n * `virtualScrollHelper` - \n\n * `hasSlotController` - \n\n * `typeToSelectString` {`string`} - \n\n * `typeToSelectTimeout` {`number`} - \n\n * `popup` - \n\n * `combobox` {`HTMLSlotElement`} - \n\n * `displayInput` {`HTMLInputElement`} - \n\n * `valueInput` {`HTMLInputElement`} - \n\n * `listbox` {`HTMLSlotElement`} - \n\n * `hasFocus` {`boolean`} - \n\n * `displayLabel` {`string`} - \n\n * `currentOption` - \n\n * `selectedOptions` {`NileOption[]`} - \n\n * `oldValue` {`string | string[]`} - \n\n * `size` {`\"medium\" | \"small\" | \"large\"`} - The select's size.\n\n * `placeholder` {`string`} - Placeholder text to show as a hint when the select is empty.\n\n * `searchValue` {`string`} - Placeholder text to show as a hint when the select is empty.\n\n * `searchEnabled` {`boolean`} - \n\n * `internalSearchPlaceHolder` {`string`} - \n\n * `blockValueChange` {`boolean`} - \n\n * `disableLocalSearch` {`boolean`} - \n\n * `optionsLoading` {`boolean`} - \n\n * `noWidthSync` {`boolean`} - \n\n * `multiple` {`boolean`} - Allows more than one option to be selected.\n\n * `helpText` {`string`} - \n\n * `errorMessage` {`string`} - \n\n * `warning` {`boolean`} - Sets the input to a warning state, changing its visual appearance.\n\n * `error` {`boolean`} - Sets the input to an error state, changing its visual appearance.\n\n * `success` {`boolean`} - Sets the input to a success state, changing its visual appearance.\n\n * `maxOptionsVisible` {`number`} - The maximum number of selected options to show when `multiple` is true. After the maximum, \"+n\" will be shown to\nindicate the number of additional items that are selected. Set to 0 to remove the limit.\n\n * `clearable` {`boolean`} - Adds a clear button when the select is not empty.\n\n * `open` {`boolean`} - Indicates whether or not the select is open. You can toggle this attribute to show and hide the menu, or you can\nuse the `show()` and `hide()` methods and this attribute will reflect the select's open state.\n\n * `hoist` {`boolean`} - Enable this option to prevent the listbox from being clipped when the component is placed inside a container with\n`overflow: auto|scroll`. Hoisting uses a fixed positioning strategy that works in many, but not all, scenarios.\n\n * `filled` {`boolean`} - Draws a filled select.\n\n * `pill` {`boolean`} - Draws a pill-style select with rounded edges.\n\n * `label` {`string`} - The select's label. If you need to display HTML, use the `label` slot instead.\n\n * `placement` {`\"top\" | \"bottom\"`} - The preferred placement of the select's menu. Note that the actual placement may vary as needed to keep the listbox\ninside of the viewport.\n\n * `showSelected` {`boolean`} - \n\n * `oldMaxOptionsVisible` {`number`} - \n\n * `showNoResults` {`boolean`} - \n\n * `noResultsMessage` {`string`} - \n\n * `renderItemFunction` - \n\n * `data` - \n\n * `enableVirtualScroll` {`boolean`} - \n\n * `name` {`string`} - The name of the select, submitted as a name/value pair with form data.\n\n * `value` {`string | string[]`} - The current value of the select, submitted as a name/value pair with form data. When `multiple` is enabled, the\nvalue will be a space-delimited list of values based on the options selected.\n\n * `disabled` {`boolean`} - Disables the select control.\n\n * `defaultValue` {`string | string[]`} - The default value of the form control. Primarily used for resetting the form control.\n\n * `defaultChecked` {`boolean | undefined`} - \n\n * `form` {`string`} - By default, form controls are associated with the nearest containing `<form>` element. This attribute allows you\nto place the form control outside of a form and associate it with the form that has this `id`. The form must be in\nthe same document or shadow root for this to work.\n\n * `pattern` {`string | undefined`} - \n\n * `min` {`string | number | Date | undefined`} - \n\n * `max` {`string | number | Date | undefined`} - \n\n * `step` {`number | \"any\" | undefined`} - \n\n * `required` {`boolean`} - The select's required attribute.\n\n * `minlength` {`number | undefined`} - \n\n * `maxlength` {`number | undefined`} - \n\n * `validity` {`ValidityState`} - Gets the validity state object\n\n * `validationMessage` {`string`} - Gets the validation message\n\n * `checkValidity` - \n\n * `getForm` - \n\n * `reportValidity` - \n\n * `setCustomValidity` - \n\n * `BUBBLES` {`boolean`} - \n\n * `COMPOSED` {`boolean`} - \n\n * `CANCELABLE` {`boolean`} - ",
2846
+ "description": "Events:\n\n * `nile-change` {} - Emitted when the control's value changes.\n\n * `nile-clear` {} - Emitted when the control's value is cleared.\n\n * `nile-input` {} - Emitted when the control receives input.\n\n * `nile-focus` {} - Emitted when the control gains focus.\n\n * `nile-blur` {} - Emitted when the control loses focus.\n\n * `nile-show` {} - Emitted when the select's menu opens.\n\n * `nile-after-show` {} - Emitted after the select's menu opens and all animations are complete.\n\n * `nile-hide` {} - Emitted when the select's menu closes.\n\n * `nile-after-hide` {} - Emitted after the select's menu closes and all animations are complete.\n\n * `nile-invalid` {} - Emitted when the form control has been checked for validity and its constraints aren't satisfied.\n\nSlots:\n\n * ` ` {} - The listbox options. Must be `<nile-option>` elements. You can use `<nile-divider>` to group items visually.\n\n * `label` {} - The input's label. Alternatively, you can use the `label` attribute.\n\n * `prefix` {} - Used to prepend a presentational icon or similar element to the combobox.\n\n * `clear-icon` {} - An icon to use in lieu of the default clear icon.\n\n * `expand-icon` {} - The icon to show when the control is expanded and collapsed. Rotates on open and close.\n\n * `help-text` {} - Text that describes how to use the input. Alternatively, you can use the `help-text` attribute.\n\nAttributes:\n\n * `size` {`\"medium\" | \"small\" | \"large\"`} - The select's size.\n\n * `placeholder` {`string`} - Placeholder text to show as a hint when the select is empty.\n\n * `searchEnabled` {`boolean`} - \n\n * `internal-search-placeholder` {`string`} - \n\n * `blockValueChange` {`boolean`} - \n\n * `disableLocalSearch` {`boolean`} - \n\n * `optionsLoading` {`boolean`} - \n\n * `noWidthSync` {`boolean`} - \n\n * `multiple` {`boolean`} - Allows more than one option to be selected.\n\n * `help-text` {`string`} - \n\n * `error-message` {`string`} - \n\n * `warning` {`boolean`} - Sets the input to a warning state, changing its visual appearance.\n\n * `error` {`boolean`} - Sets the input to an error state, changing its visual appearance.\n\n * `success` {`boolean`} - Sets the input to a success state, changing its visual appearance.\n\n * `max-options-visible` {`number`} - The maximum number of selected options to show when `multiple` is true. After the maximum, \"+n\" will be shown to\nindicate the number of additional items that are selected. Set to 0 to remove the limit.\n\n * `clearable` {`boolean`} - Adds a clear button when the select is not empty.\n\n * `open` {`boolean`} - Indicates whether or not the select is open. You can toggle this attribute to show and hide the menu, or you can\nuse the `show()` and `hide()` methods and this attribute will reflect the select's open state.\n\n * `hoist` {`boolean`} - Enable this option to prevent the listbox from being clipped when the component is placed inside a container with\n`overflow: auto|scroll`. Hoisting uses a fixed positioning strategy that works in many, but not all, scenarios.\n\n * `filled` {`boolean`} - Draws a filled select.\n\n * `pill` {`boolean`} - Draws a pill-style select with rounded edges.\n\n * `label` {`string`} - The select's label. If you need to display HTML, use the `label` slot instead.\n\n * `placement` {`\"top\" | \"bottom\"`} - The preferred placement of the select's menu. Note that the actual placement may vary as needed to keep the listbox\ninside of the viewport.\n\n * `showSelected` {`boolean`} - \n\n * `showNoResults` {`boolean`} - \n\n * `noResultsMessage` {`string`} - \n\n * `data` - \n\n * `enableVirtualScroll` {`boolean`} - \n\n * `name` {`string`} - The name of the select, submitted as a name/value pair with form data.\n\n * `value` {`string | string[]`} - The current value of the select, submitted as a name/value pair with form data. When `multiple` is enabled, the\nvalue will be a space-delimited list of values based on the options selected.\n\n * `disabled` {`boolean`} - Disables the select control.\n\n * `form` {`string`} - By default, form controls are associated with the nearest containing `<form>` element. This attribute allows you\nto place the form control outside of a form and associate it with the form that has this `id`. The form must be in\nthe same document or shadow root for this to work.\n\n * `required` {`boolean`} - The select's required attribute.\n\nProperties:\n\n * `styles` - \n\n * `formControlController` - \n\n * `virtualScrollHelper` - \n\n * `hasSlotController` - \n\n * `typeToSelectString` {`string`} - \n\n * `typeToSelectTimeout` {`number`} - \n\n * `popup` - \n\n * `combobox` {`HTMLSlotElement`} - \n\n * `displayInput` {`HTMLInputElement`} - \n\n * `valueInput` {`HTMLInputElement`} - \n\n * `listbox` {`HTMLSlotElement`} - \n\n * `hasFocus` {`boolean`} - \n\n * `displayLabel` {`string`} - \n\n * `currentOption` - \n\n * `selectedOptions` {`NileOption[]`} - \n\n * `oldValue` {`string | string[]`} - \n\n * `size` {`\"medium\" | \"small\" | \"large\"`} - The select's size.\n\n * `placeholder` {`string`} - Placeholder text to show as a hint when the select is empty.\n\n * `searchValue` {`string`} - Placeholder text to show as a hint when the select is empty.\n\n * `searchEnabled` {`boolean`} - \n\n * `internalSearchPlaceHolder` {`string`} - \n\n * `blockValueChange` {`boolean`} - \n\n * `disableLocalSearch` {`boolean`} - \n\n * `optionsLoading` {`boolean`} - \n\n * `noWidthSync` {`boolean`} - \n\n * `multiple` {`boolean`} - Allows more than one option to be selected.\n\n * `helpText` {`string`} - \n\n * `errorMessage` {`string`} - \n\n * `warning` {`boolean`} - Sets the input to a warning state, changing its visual appearance.\n\n * `error` {`boolean`} - Sets the input to an error state, changing its visual appearance.\n\n * `success` {`boolean`} - Sets the input to a success state, changing its visual appearance.\n\n * `maxOptionsVisible` {`number`} - The maximum number of selected options to show when `multiple` is true. After the maximum, \"+n\" will be shown to\nindicate the number of additional items that are selected. Set to 0 to remove the limit.\n\n * `clearable` {`boolean`} - Adds a clear button when the select is not empty.\n\n * `open` {`boolean`} - Indicates whether or not the select is open. You can toggle this attribute to show and hide the menu, or you can\nuse the `show()` and `hide()` methods and this attribute will reflect the select's open state.\n\n * `hoist` {`boolean`} - Enable this option to prevent the listbox from being clipped when the component is placed inside a container with\n`overflow: auto|scroll`. Hoisting uses a fixed positioning strategy that works in many, but not all, scenarios.\n\n * `filled` {`boolean`} - Draws a filled select.\n\n * `pill` {`boolean`} - Draws a pill-style select with rounded edges.\n\n * `label` {`string`} - The select's label. If you need to display HTML, use the `label` slot instead.\n\n * `placement` {`\"top\" | \"bottom\"`} - The preferred placement of the select's menu. Note that the actual placement may vary as needed to keep the listbox\ninside of the viewport.\n\n * `showSelected` {`boolean`} - \n\n * `oldMaxOptionsVisible` {`number`} - \n\n * `showNoResults` {`boolean`} - \n\n * `noResultsMessage` {`string`} - \n\n * `renderItemConfig` {`RenderItemConfig | undefined`} - Enhanced configuration for rendering items with support for display text, value, and search text\n\n * `data` - \n\n * `enableVirtualScroll` {`boolean`} - \n\n * `name` {`string`} - The name of the select, submitted as a name/value pair with form data.\n\n * `value` {`string | string[]`} - The current value of the select, submitted as a name/value pair with form data. When `multiple` is enabled, the\nvalue will be a space-delimited list of values based on the options selected.\n\n * `disabled` {`boolean`} - Disables the select control.\n\n * `defaultValue` {`string | string[]`} - The default value of the form control. Primarily used for resetting the form control.\n\n * `defaultChecked` {`boolean | undefined`} - \n\n * `form` {`string`} - By default, form controls are associated with the nearest containing `<form>` element. This attribute allows you\nto place the form control outside of a form and associate it with the form that has this `id`. The form must be in\nthe same document or shadow root for this to work.\n\n * `pattern` {`string | undefined`} - \n\n * `min` {`string | number | Date | undefined`} - \n\n * `max` {`string | number | Date | undefined`} - \n\n * `step` {`number | \"any\" | undefined`} - \n\n * `required` {`boolean`} - The select's required attribute.\n\n * `minlength` {`number | undefined`} - \n\n * `maxlength` {`number | undefined`} - \n\n * `validity` {`ValidityState`} - Gets the validity state object\n\n * `validationMessage` {`string`} - Gets the validation message\n\n * `checkValidity` - \n\n * `getForm` - \n\n * `reportValidity` - \n\n * `setCustomValidity` - \n\n * `BUBBLES` {`boolean`} - \n\n * `COMPOSED` {`boolean`} - \n\n * `CANCELABLE` {`boolean`} - ",
2847
2847
  "attributes": [
2848
2848
  {
2849
2849
  "name": "size",
@@ -4060,7 +4060,7 @@
4060
4060
  },
4061
4061
  {
4062
4062
  "name": "nile-virtual-select",
4063
- "description": "Events:\n\n * `nile-change` {} - Emitted when the control's value changes.\n\n * `nile-clear` {} - Emitted when the control's value is cleared.\n\n * `nile-input` {} - Emitted when the control receives input.\n\n * `nile-focus` {} - Emitted when the control gains focus.\n\n * `nile-blur` {} - Emitted when the control loses focus.\n\n * `nile-show` {} - Emitted when the select's menu opens.\n\n * `nile-after-show` {} - Emitted after the select's menu opens and all animations are complete.\n\n * `nile-hide` {} - Emitted when the select's menu closes.\n\n * `nile-after-hide` {} - Emitted after the select's menu closes and all animations are complete.\n\n * `nile-invalid` {} - Emitted when the form control has been checked for validity and its constraints aren't satisfied.\n\nSlots:\n\n * `label` {} - The input's label. Alternatively, you can use the `label` attribute.\n\n * `prefix` {} - Used to prepend a presentational icon or similar element to the combobox.\n\n * `clear-icon` {} - An icon to use in lieu of the default clear icon.\n\n * `expand-icon` {} - The icon to show when the control is expanded and collapsed.\n\n * `help-text` {} - Text that describes how to use the input. Alternatively, you can use the `help-text` attribute.\n\nAttributes:\n\n * `data` - Array of all option items for virtual scrolling\n\n * `size` {`\"medium\" | \"small\" | \"large\"`} - The select's size.\n\n * `placeholder` {`string`} - Placeholder text to show as a hint when the select is empty.\n\n * `searchEnabled` {`boolean`} - Enable search functionality\n\n * `internal-search-placeholder` {`string`} - Search input placeholder\n\n * `disableLocalSearch` {`boolean`} - Disable local search filtering\n\n * `optionsLoading` {`boolean`} - Show loading state\n\n * `multiple` {`boolean`} - Allows more than one option to be selected.\n\n * `help-text` {`string`} - Help text\n\n * `error-message` {`string`} - Error message\n\n * `warning` {`boolean`} - Sets the input to a warning state\n\n * `error` {`boolean`} - Sets the input to an error state\n\n * `success` {`boolean`} - Sets the input to a success state\n\n * `clearable` {`boolean`} - Adds a clear button when the select is not empty.\n\n * `open` {`boolean`} - The select's open state.\n\n * `hoist` {`boolean`} - Enable this option to prevent the listbox from being clipped when the component is placed inside a container with\n`overflow: auto|scroll`. Hoisting uses a fixed positioning strategy that works in many, but not all, scenarios.\n\n * `filled` {`boolean`} - Draws a filled select.\n\n * `pill` {`boolean`} - Draws a pill-style select with rounded edges.\n\n * `label` {`string`} - The select's label. If you need to display HTML, use the `label` slot instead.\n\n * `placement` {`\"top\" | \"bottom\"`} - The preferred placement of the select's menu. Note that the actual placement may vary as needed to keep the listbox\ninside of the viewport.\n\n * `showNoResults` {`boolean`} - Show no results message\n\n * `noResultsMessage` {`string`} - No results message\n\n * `showSelected` {`boolean`} - Show selected options only\n\n * `blockValueChange` {`boolean`} - Block value change events\n\n * `noWidthSync` {`boolean`} - Disable width synchronization\n\n * `max-options-visible` {`number`} - The maximum number of selected options to show when `multiple` is true. After the maximum, \"+n\" will be shown to\nindicate the number of additional items that are selected. Set to 0 to remove the limit.\n\n * `name` {`string`} - The name of the select, submitted as a name/value pair with form data.\n\n * `value` {`string | string[]`} - The current value of the select. When `multiple` is enabled, the value will be an array of selected values.\n\n * `disabled` {`boolean`} - Disables the select control.\n\n * `form` {`string`} - By default, form controls are associated with the nearest containing `<form>` element. This attribute allows you\nto place the form control outside of a form and associate it with the form that has this `id`. The form must be in\nthe same document or shadow root for this to work.\n\n * `required` {`boolean`} - The select's required attribute.\n\nProperties:\n\n * `styles` - \n\n * `formControlController` - \n\n * `hasSlotController` - \n\n * `popup` - \n\n * `displayInput` {`HTMLInputElement`} - \n\n * `valueInput` {`HTMLInputElement`} - \n\n * `hasFocus` {`boolean`} - \n\n * `displayLabel` {`string`} - \n\n * `selectedOptions` {`VirtualOption[]`} - \n\n * `oldValue` {`string | string[]`} - \n\n * `data` - Array of all option items for virtual scrolling\n\n * `originalOptionItems` - Original unfiltered option items for search functionality\n\n * `size` {`\"medium\" | \"small\" | \"large\"`} - The select's size.\n\n * `placeholder` {`string`} - Placeholder text to show as a hint when the select is empty.\n\n * `searchValue` {`string`} - Current search value\n\n * `searchEnabled` {`boolean`} - Enable search functionality\n\n * `internalSearchPlaceHolder` {`string`} - Search input placeholder\n\n * `disableLocalSearch` {`boolean`} - Disable local search filtering\n\n * `optionsLoading` {`boolean`} - Show loading state\n\n * `multiple` {`boolean`} - Allows more than one option to be selected.\n\n * `helpText` {`string`} - Help text\n\n * `errorMessage` {`string`} - Error message\n\n * `warning` {`boolean`} - Sets the input to a warning state\n\n * `error` {`boolean`} - Sets the input to an error state\n\n * `success` {`boolean`} - Sets the input to a success state\n\n * `clearable` {`boolean`} - Adds a clear button when the select is not empty.\n\n * `open` {`boolean`} - The select's open state.\n\n * `hoist` {`boolean`} - Enable this option to prevent the listbox from being clipped when the component is placed inside a container with\n`overflow: auto|scroll`. Hoisting uses a fixed positioning strategy that works in many, but not all, scenarios.\n\n * `filled` {`boolean`} - Draws a filled select.\n\n * `pill` {`boolean`} - Draws a pill-style select with rounded edges.\n\n * `label` {`string`} - The select's label. If you need to display HTML, use the `label` slot instead.\n\n * `placement` {`\"top\" | \"bottom\"`} - The preferred placement of the select's menu. Note that the actual placement may vary as needed to keep the listbox\ninside of the viewport.\n\n * `showNoResults` {`boolean`} - Show no results message\n\n * `noResultsMessage` {`string`} - No results message\n\n * `showSelected` {`boolean`} - Show selected options only\n\n * `renderItemFunction` - Function to render item value from data object\n\n * `blockValueChange` {`boolean`} - Block value change events\n\n * `noWidthSync` {`boolean`} - Disable width synchronization\n\n * `maxOptionsVisible` {`number`} - The maximum number of selected options to show when `multiple` is true. After the maximum, \"+n\" will be shown to\nindicate the number of additional items that are selected. Set to 0 to remove the limit.\n\n * `oldMaxOptionsVisible` {`number`} - \n\n * `handleDocumentMouseDown` - \n\n * `name` {`string`} - The name of the select, submitted as a name/value pair with form data.\n\n * `value` {`string | string[]`} - The current value of the select. When `multiple` is enabled, the value will be an array of selected values.\n\n * `disabled` {`boolean`} - Disables the select control.\n\n * `defaultValue` {`string | string[]`} - The default value of the form control. Primarily used for resetting the form control.\n\n * `defaultChecked` {`boolean | undefined`} - \n\n * `form` {`string`} - By default, form controls are associated with the nearest containing `<form>` element. This attribute allows you\nto place the form control outside of a form and associate it with the form that has this `id`. The form must be in\nthe same document or shadow root for this to work.\n\n * `pattern` {`string | undefined`} - \n\n * `min` {`string | number | Date | undefined`} - \n\n * `max` {`string | number | Date | undefined`} - \n\n * `step` {`number | \"any\" | undefined`} - \n\n * `required` {`boolean`} - The select's required attribute.\n\n * `minlength` {`number | undefined`} - \n\n * `maxlength` {`number | undefined`} - \n\n * `validity` {`ValidityState`} - Gets the validity state object\n\n * `validationMessage` {`string`} - Gets the validation message\n\n * `checkValidity` - \n\n * `getForm` - \n\n * `reportValidity` - \n\n * `setCustomValidity` - \n\n * `BUBBLES` {`boolean`} - \n\n * `COMPOSED` {`boolean`} - \n\n * `CANCELABLE` {`boolean`} - ",
4063
+ "description": "Events:\n\n * `nile-change` {} - Emitted when the control's value changes.\n\n * `nile-clear` {} - Emitted when the control's value is cleared.\n\n * `nile-input` {} - Emitted when the control receives input.\n\n * `nile-focus` {} - Emitted when the control gains focus.\n\n * `nile-blur` {} - Emitted when the control loses focus.\n\n * `nile-show` {} - Emitted when the select's menu opens.\n\n * `nile-after-show` {} - Emitted after the select's menu opens and all animations are complete.\n\n * `nile-hide` {} - Emitted when the select's menu closes.\n\n * `nile-after-hide` {} - Emitted after the select's menu closes and all animations are complete.\n\n * `nile-invalid` {} - Emitted when the form control has been checked for validity and its constraints aren't satisfied.\n\nSlots:\n\n * `label` {} - The input's label. Alternatively, you can use the `label` attribute.\n\n * `prefix` {} - Used to prepend a presentational icon or similar element to the combobox.\n\n * `clear-icon` {} - An icon to use in lieu of the default clear icon.\n\n * `expand-icon` {} - The icon to show when the control is expanded and collapsed.\n\n * `help-text` {} - Text that describes how to use the input. Alternatively, you can use the `help-text` attribute.\n\nAttributes:\n\n * `data` - Array of all option items for virtual scrolling\n\n * `size` {`\"medium\" | \"small\" | \"large\"`} - The select's size.\n\n * `placeholder` {`string`} - Placeholder text to show as a hint when the select is empty.\n\n * `searchEnabled` {`boolean`} - Enable search functionality\n\n * `internal-search-placeholder` {`string`} - Search input placeholder\n\n * `disableLocalSearch` {`boolean`} - Disable local search filtering\n\n * `optionsLoading` {`boolean`} - Show loading state\n\n * `multiple` {`boolean`} - Allows more than one option to be selected.\n\n * `help-text` {`string`} - Help text\n\n * `error-message` {`string`} - Error message\n\n * `warning` {`boolean`} - Sets the input to a warning state\n\n * `error` {`boolean`} - Sets the input to an error state\n\n * `success` {`boolean`} - Sets the input to a success state\n\n * `clearable` {`boolean`} - Adds a clear button when the select is not empty.\n\n * `open` {`boolean`} - The select's open state.\n\n * `hoist` {`boolean`} - Enable this option to prevent the listbox from being clipped when the component is placed inside a container with\n`overflow: auto|scroll`. Hoisting uses a fixed positioning strategy that works in many, but not all, scenarios.\n\n * `filled` {`boolean`} - Draws a filled select.\n\n * `pill` {`boolean`} - Draws a pill-style select with rounded edges.\n\n * `label` {`string`} - The select's label. If you need to display HTML, use the `label` slot instead.\n\n * `placement` {`\"top\" | \"bottom\"`} - The preferred placement of the select's menu. Note that the actual placement may vary as needed to keep the listbox\ninside of the viewport.\n\n * `showNoResults` {`boolean`} - Show no results message\n\n * `noResultsMessage` {`string`} - No results message\n\n * `showSelected` {`boolean`} - Show selected options only\n\n * `blockValueChange` {`boolean`} - Block value change events\n\n * `noWidthSync` {`boolean`} - Disable width synchronization\n\n * `max-options-visible` {`number`} - The maximum number of selected options to show when `multiple` is true. After the maximum, \"+n\" will be shown to\nindicate the number of additional items that are selected. Set to 0 to remove the limit.\n\n * `name` {`string`} - The name of the select, submitted as a name/value pair with form data.\n\n * `value` {`string | string[]`} - The current value of the select. When `multiple` is enabled, the value will be an array of selected values.\n\n * `disabled` {`boolean`} - Disables the select control.\n\n * `form` {`string`} - By default, form controls are associated with the nearest containing `<form>` element. This attribute allows you\nto place the form control outside of a form and associate it with the form that has this `id`. The form must be in\nthe same document or shadow root for this to work.\n\n * `required` {`boolean`} - The select's required attribute.\n\nProperties:\n\n * `styles` - \n\n * `formControlController` - \n\n * `hasSlotController` - \n\n * `popup` - \n\n * `displayInput` {`HTMLInputElement`} - \n\n * `valueInput` {`HTMLInputElement`} - \n\n * `hasFocus` {`boolean`} - \n\n * `displayLabel` {`string`} - \n\n * `selectedOptions` {`VirtualOption[]`} - \n\n * `oldValue` {`string | string[]`} - \n\n * `data` - Array of all option items for virtual scrolling\n\n * `originalOptionItems` - Original unfiltered option items for search functionality\n\n * `size` {`\"medium\" | \"small\" | \"large\"`} - The select's size.\n\n * `placeholder` {`string`} - Placeholder text to show as a hint when the select is empty.\n\n * `searchValue` {`string`} - Current search value\n\n * `searchEnabled` {`boolean`} - Enable search functionality\n\n * `internalSearchPlaceHolder` {`string`} - Search input placeholder\n\n * `disableLocalSearch` {`boolean`} - Disable local search filtering\n\n * `optionsLoading` {`boolean`} - Show loading state\n\n * `multiple` {`boolean`} - Allows more than one option to be selected.\n\n * `helpText` {`string`} - Help text\n\n * `errorMessage` {`string`} - Error message\n\n * `warning` {`boolean`} - Sets the input to a warning state\n\n * `error` {`boolean`} - Sets the input to an error state\n\n * `success` {`boolean`} - Sets the input to a success state\n\n * `clearable` {`boolean`} - Adds a clear button when the select is not empty.\n\n * `open` {`boolean`} - The select's open state.\n\n * `hoist` {`boolean`} - Enable this option to prevent the listbox from being clipped when the component is placed inside a container with\n`overflow: auto|scroll`. Hoisting uses a fixed positioning strategy that works in many, but not all, scenarios.\n\n * `filled` {`boolean`} - Draws a filled select.\n\n * `pill` {`boolean`} - Draws a pill-style select with rounded edges.\n\n * `label` {`string`} - The select's label. If you need to display HTML, use the `label` slot instead.\n\n * `placement` {`\"top\" | \"bottom\"`} - The preferred placement of the select's menu. Note that the actual placement may vary as needed to keep the listbox\ninside of the viewport.\n\n * `showNoResults` {`boolean`} - Show no results message\n\n * `noResultsMessage` {`string`} - No results message\n\n * `showSelected` {`boolean`} - Show selected options only\n\n * `renderItemConfig` {`RenderItemConfig | undefined`} - Enhanced configuration for rendering items with support for display text, value, and search text\n\n * `blockValueChange` {`boolean`} - Block value change events\n\n * `noWidthSync` {`boolean`} - Disable width synchronization\n\n * `maxOptionsVisible` {`number`} - The maximum number of selected options to show when `multiple` is true. After the maximum, \"+n\" will be shown to\nindicate the number of additional items that are selected. Set to 0 to remove the limit.\n\n * `oldMaxOptionsVisible` {`number`} - \n\n * `handleDocumentMouseDown` - \n\n * `name` {`string`} - The name of the select, submitted as a name/value pair with form data.\n\n * `value` {`string | string[]`} - The current value of the select. When `multiple` is enabled, the value will be an array of selected values.\n\n * `disabled` {`boolean`} - Disables the select control.\n\n * `defaultValue` {`string | string[]`} - The default value of the form control. Primarily used for resetting the form control.\n\n * `defaultChecked` {`boolean | undefined`} - \n\n * `form` {`string`} - By default, form controls are associated with the nearest containing `<form>` element. This attribute allows you\nto place the form control outside of a form and associate it with the form that has this `id`. The form must be in\nthe same document or shadow root for this to work.\n\n * `pattern` {`string | undefined`} - \n\n * `min` {`string | number | Date | undefined`} - \n\n * `max` {`string | number | Date | undefined`} - \n\n * `step` {`number | \"any\" | undefined`} - \n\n * `required` {`boolean`} - The select's required attribute.\n\n * `minlength` {`number | undefined`} - \n\n * `maxlength` {`number | undefined`} - \n\n * `validity` {`ValidityState`} - Gets the validity state object\n\n * `validationMessage` {`string`} - Gets the validation message\n\n * `checkValidity` - \n\n * `getForm` - \n\n * `reportValidity` - \n\n * `setCustomValidity` - \n\n * `BUBBLES` {`boolean`} - \n\n * `COMPOSED` {`boolean`} - \n\n * `CANCELABLE` {`boolean`} - ",
4064
4064
  "attributes": [
4065
4065
  {
4066
4066
  "name": "data",