@aquera/nile-elements 1.2.6-beta-1.1 → 1.2.6-beta-1.3
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/README.md +3 -0
- package/demo/index.html +69 -17
- package/dist/index.js +46 -44
- package/dist/nile-select/nile-select.cjs.js +1 -1
- package/dist/nile-select/nile-select.cjs.js.map +1 -1
- package/dist/nile-select/nile-select.esm.js +5 -5
- package/dist/nile-select/virtual-scroll-helper.cjs.js +1 -1
- package/dist/nile-select/virtual-scroll-helper.cjs.js.map +1 -1
- package/dist/nile-select/virtual-scroll-helper.esm.js +2 -0
- package/dist/nile-virtual-select/nile-virtual-select.cjs.js +2 -2
- package/dist/nile-virtual-select/nile-virtual-select.cjs.js.map +1 -1
- package/dist/nile-virtual-select/nile-virtual-select.esm.js +3 -3
- package/dist/src/nile-select/nile-select.d.ts +12 -0
- package/dist/src/nile-select/nile-select.js +83 -0
- package/dist/src/nile-select/nile-select.js.map +1 -1
- package/dist/src/nile-select/virtual-scroll-helper.js +2 -0
- package/dist/src/nile-select/virtual-scroll-helper.js.map +1 -1
- package/dist/src/nile-virtual-select/nile-virtual-select.d.ts +12 -0
- package/dist/src/nile-virtual-select/nile-virtual-select.js +84 -6
- package/dist/src/nile-virtual-select/nile-virtual-select.js.map +1 -1
- package/dist/src/version.js +1 -1
- package/dist/src/version.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/nile-select/nile-select.ts +99 -0
- package/src/nile-select/virtual-scroll-helper.ts +2 -0
- package/src/nile-virtual-select/nile-virtual-select.ts +103 -8
- package/vscode-html-custom-data.json +22 -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": "1.2.6-beta-1.
|
|
6
|
+
"version": "1.2.6-beta-1.3",
|
|
7
7
|
"main": "dist/src/index.js",
|
|
8
8
|
"type": "module",
|
|
9
9
|
"module": "dist/src/index.js",
|
|
@@ -287,6 +287,10 @@ export class NileSelect extends NileElement implements NileFormControl{
|
|
|
287
287
|
/** loading indicator for virtual select */
|
|
288
288
|
@property({ type: Boolean, reflect: true, attribute: true }) loading = false;
|
|
289
289
|
|
|
290
|
+
@property({ type: Boolean, reflect: true, attribute: true }) enableVisibilityEffect = false;
|
|
291
|
+
|
|
292
|
+
@property({ type: Boolean, reflect: true, attribute: true }) enableTabClose = false;
|
|
293
|
+
|
|
290
294
|
/** Gets the validity state object */
|
|
291
295
|
get validity() {
|
|
292
296
|
return this.valueInput?.validity;
|
|
@@ -612,6 +616,97 @@ export class NileSelect extends NileElement implements NileFormControl{
|
|
|
612
616
|
this.hide();
|
|
613
617
|
}
|
|
614
618
|
|
|
619
|
+
/** All active IntersectionObservers for visibility detection */
|
|
620
|
+
private anchorVisibilityObservers: IntersectionObserver[] = [];
|
|
621
|
+
|
|
622
|
+
/** Utility: find ALL scrollable ancestors (not just the nearest) */
|
|
623
|
+
private getScrollableAncestors(element: HTMLElement): HTMLElement[] {
|
|
624
|
+
const scrollables: HTMLElement[] = [];
|
|
625
|
+
let parent = element.parentElement;
|
|
626
|
+
while (parent) {
|
|
627
|
+
const style = getComputedStyle(parent);
|
|
628
|
+
const canScroll =
|
|
629
|
+
/(auto|scroll)/.test(style.overflow + style.overflowY + style.overflowX);
|
|
630
|
+
if (canScroll) {
|
|
631
|
+
scrollables.push(parent);
|
|
632
|
+
}
|
|
633
|
+
parent = parent.parentElement;
|
|
634
|
+
}
|
|
635
|
+
return scrollables;
|
|
636
|
+
}
|
|
637
|
+
|
|
638
|
+
/** Handles tab visibility (page hidden / tab switched) */
|
|
639
|
+
private handleDocumentVisibilityChange = (): void => {
|
|
640
|
+
if (!this.enableTabClose) return;
|
|
641
|
+
if (document.visibilityState === 'hidden' && this.open) {
|
|
642
|
+
this.hide();
|
|
643
|
+
this.emit('nile-visibility-change', {
|
|
644
|
+
visible: false,
|
|
645
|
+
reason: 'document-hidden',
|
|
646
|
+
name: this.name,
|
|
647
|
+
});
|
|
648
|
+
}
|
|
649
|
+
};
|
|
650
|
+
|
|
651
|
+
/** Sets up visibility tracking for all relevant contexts */
|
|
652
|
+
private setupAnchorVisibilityObserver(): void {
|
|
653
|
+
if (!this.enableVisibilityEffect) return;
|
|
654
|
+
|
|
655
|
+
this.cleanupAnchorVisibilityObserver();
|
|
656
|
+
|
|
657
|
+
const combobox = this.combobox;
|
|
658
|
+
if (!combobox) return;
|
|
659
|
+
|
|
660
|
+
// Get all scrollable ancestors and viewport
|
|
661
|
+
const scrollContainers = [...this.getScrollableAncestors(this), null];
|
|
662
|
+
|
|
663
|
+
scrollContainers.forEach((rootContainer) => {
|
|
664
|
+
const observer = new IntersectionObserver(
|
|
665
|
+
(entries) => {
|
|
666
|
+
for (const entry of entries) {
|
|
667
|
+
if (!entry.isIntersecting && this.open) {
|
|
668
|
+
this.hide();
|
|
669
|
+
this.emit('nile-visibility-change', {
|
|
670
|
+
visible: false,
|
|
671
|
+
reason: 'anchor-out-of-view',
|
|
672
|
+
name: this.name,
|
|
673
|
+
root: rootContainer,
|
|
674
|
+
});
|
|
675
|
+
return; // stop further triggers
|
|
676
|
+
}
|
|
677
|
+
}
|
|
678
|
+
},
|
|
679
|
+
{
|
|
680
|
+
root: rootContainer,
|
|
681
|
+
threshold: 0.1, // 10% visible = visible
|
|
682
|
+
}
|
|
683
|
+
);
|
|
684
|
+
|
|
685
|
+
observer.observe(combobox);
|
|
686
|
+
this.anchorVisibilityObservers.push(observer);
|
|
687
|
+
});
|
|
688
|
+
|
|
689
|
+
// Attach tab visibility listener only if property enabled
|
|
690
|
+
if (this.enableTabClose) {
|
|
691
|
+
document.addEventListener(
|
|
692
|
+
'visibilitychange',
|
|
693
|
+
this.handleDocumentVisibilityChange
|
|
694
|
+
);
|
|
695
|
+
}
|
|
696
|
+
}
|
|
697
|
+
|
|
698
|
+
/** Cleans up all visibility observers and listeners */
|
|
699
|
+
private cleanupAnchorVisibilityObserver(): void {
|
|
700
|
+
this.anchorVisibilityObservers.forEach((o) => o.disconnect());
|
|
701
|
+
this.anchorVisibilityObservers = [];
|
|
702
|
+
|
|
703
|
+
// Always remove listener to avoid stale callbacks
|
|
704
|
+
document.removeEventListener(
|
|
705
|
+
'visibilitychange',
|
|
706
|
+
this.handleDocumentVisibilityChange
|
|
707
|
+
);
|
|
708
|
+
}
|
|
709
|
+
|
|
615
710
|
private handleComboboxMouseDown(event: MouseEvent) {
|
|
616
711
|
const path = event.composedPath();
|
|
617
712
|
const isIconButton = path.some(
|
|
@@ -1080,6 +1175,10 @@ export class NileSelect extends NileElement implements NileFormControl{
|
|
|
1080
1175
|
this.setCurrentOption(this.currentOption);
|
|
1081
1176
|
});
|
|
1082
1177
|
|
|
1178
|
+
if (this.enableVisibilityEffect) {
|
|
1179
|
+
this.setupAnchorVisibilityObserver();
|
|
1180
|
+
}
|
|
1181
|
+
|
|
1083
1182
|
const { keyframes, options } = getAnimation(this, 'select.show', {
|
|
1084
1183
|
dir: 'ltr',
|
|
1085
1184
|
});
|
|
@@ -27,6 +27,8 @@ export class VirtualScrollHelper {
|
|
|
27
27
|
.disableLocalSearch=${component.disableLocalSearch}
|
|
28
28
|
.optionsLoading=${component.optionsLoading}
|
|
29
29
|
.multiple=${component.multiple}
|
|
30
|
+
.enableVisibilityEffect=${component.enableVisibilityEffect}
|
|
31
|
+
.enableTabClose=${component.enableTabClose}
|
|
30
32
|
.helpText=${component.helpText}
|
|
31
33
|
.errorMessage=${component.errorMessage}
|
|
32
34
|
.warning=${component.warning}
|
|
@@ -186,6 +186,10 @@ export class NileVirtualSelect extends NileElement implements NileFormControl {
|
|
|
186
186
|
/** Sets the input to a warning state */
|
|
187
187
|
@property({ type: Boolean }) warning = false;
|
|
188
188
|
|
|
189
|
+
@property({ type: Boolean, reflect: true, attribute: true }) enableVisibilityEffect = false;
|
|
190
|
+
|
|
191
|
+
@property({ type: Boolean, reflect: true, attribute: true }) enableTabClose = false;
|
|
192
|
+
|
|
189
193
|
/** Sets the input to an error state */
|
|
190
194
|
@property({ type: Boolean }) error = false;
|
|
191
195
|
|
|
@@ -466,6 +470,98 @@ export class NileVirtualSelect extends NileElement implements NileFormControl {
|
|
|
466
470
|
}
|
|
467
471
|
};
|
|
468
472
|
|
|
473
|
+
/** All active IntersectionObservers for visibility detection */
|
|
474
|
+
private anchorVisibilityObservers: IntersectionObserver[] = [];
|
|
475
|
+
|
|
476
|
+
/** Utility: find ALL scrollable ancestors (not just the nearest) */
|
|
477
|
+
private getScrollableAncestors(element: HTMLElement): HTMLElement[] {
|
|
478
|
+
const scrollables: HTMLElement[] = [];
|
|
479
|
+
let parent = element.parentElement;
|
|
480
|
+
while (parent) {
|
|
481
|
+
const style = getComputedStyle(parent);
|
|
482
|
+
const canScroll =
|
|
483
|
+
/(auto|scroll)/.test(style.overflow + style.overflowY + style.overflowX);
|
|
484
|
+
if (canScroll) {
|
|
485
|
+
scrollables.push(parent);
|
|
486
|
+
}
|
|
487
|
+
parent = parent.parentElement;
|
|
488
|
+
}
|
|
489
|
+
return scrollables;
|
|
490
|
+
}
|
|
491
|
+
|
|
492
|
+
/** Handles tab visibility (page hidden / tab switched) */
|
|
493
|
+
private handleDocumentVisibilityChange = (): void => {
|
|
494
|
+
if (!this.enableTabClose) return;
|
|
495
|
+
if (document.visibilityState === 'hidden' && this.open) {
|
|
496
|
+
this.hide();
|
|
497
|
+
this.emit('nile-visibility-change', {
|
|
498
|
+
visible: false,
|
|
499
|
+
reason: 'document-hidden',
|
|
500
|
+
name: this.name,
|
|
501
|
+
});
|
|
502
|
+
}
|
|
503
|
+
};
|
|
504
|
+
|
|
505
|
+
/** Sets up visibility tracking for all relevant contexts */
|
|
506
|
+
private setupAnchorVisibilityObserver(): void {
|
|
507
|
+
if (!this.enableVisibilityEffect) return;
|
|
508
|
+
|
|
509
|
+
this.cleanupAnchorVisibilityObserver();
|
|
510
|
+
|
|
511
|
+
const combobox = this.combobox;
|
|
512
|
+
if (!combobox) return;
|
|
513
|
+
|
|
514
|
+
// Get all scrollable ancestors and viewport
|
|
515
|
+
const scrollContainers = [...this.getScrollableAncestors(this), null];
|
|
516
|
+
|
|
517
|
+
scrollContainers.forEach((rootContainer) => {
|
|
518
|
+
const observer = new IntersectionObserver(
|
|
519
|
+
(entries) => {
|
|
520
|
+
for (const entry of entries) {
|
|
521
|
+
if (!entry.isIntersecting && this.open) {
|
|
522
|
+
this.hide();
|
|
523
|
+
this.emit('nile-visibility-change', {
|
|
524
|
+
visible: false,
|
|
525
|
+
reason: 'anchor-out-of-view',
|
|
526
|
+
name: this.name,
|
|
527
|
+
root: rootContainer,
|
|
528
|
+
});
|
|
529
|
+
return; // stop further triggers
|
|
530
|
+
}
|
|
531
|
+
}
|
|
532
|
+
},
|
|
533
|
+
{
|
|
534
|
+
root: rootContainer,
|
|
535
|
+
threshold: 0.1, // 10% visible = visible
|
|
536
|
+
}
|
|
537
|
+
);
|
|
538
|
+
|
|
539
|
+
observer.observe(combobox);
|
|
540
|
+
this.anchorVisibilityObservers.push(observer);
|
|
541
|
+
});
|
|
542
|
+
|
|
543
|
+
// Attach tab visibility listener only if property enabled
|
|
544
|
+
if (this.enableTabClose) {
|
|
545
|
+
document.addEventListener(
|
|
546
|
+
'visibilitychange',
|
|
547
|
+
this.handleDocumentVisibilityChange
|
|
548
|
+
);
|
|
549
|
+
}
|
|
550
|
+
}
|
|
551
|
+
|
|
552
|
+
/** Cleans up all visibility observers and listeners */
|
|
553
|
+
private cleanupAnchorVisibilityObserver(): void {
|
|
554
|
+
this.anchorVisibilityObservers.forEach((o) => o.disconnect());
|
|
555
|
+
this.anchorVisibilityObservers = [];
|
|
556
|
+
|
|
557
|
+
// Always remove listener to avoid stale callbacks
|
|
558
|
+
document.removeEventListener(
|
|
559
|
+
'visibilitychange',
|
|
560
|
+
this.handleDocumentVisibilityChange
|
|
561
|
+
);
|
|
562
|
+
}
|
|
563
|
+
|
|
564
|
+
|
|
469
565
|
/**
|
|
470
566
|
* This is a workaround for an error in the Lit Labs virtualizer.
|
|
471
567
|
* Since there are no specific guidelines available to fix the issue,
|
|
@@ -946,12 +1042,18 @@ export class NileVirtualSelect extends NileElement implements NileFormControl {
|
|
|
946
1042
|
this.wasShowSelectedCheckedOnClose = false;
|
|
947
1043
|
}
|
|
948
1044
|
|
|
1045
|
+
if (this.enableVisibilityEffect) {
|
|
1046
|
+
this.setupAnchorVisibilityObserver();
|
|
1047
|
+
}
|
|
1048
|
+
|
|
1049
|
+
|
|
949
1050
|
this.filterVirtualOptions("");
|
|
950
1051
|
this.resetScrollPosition();
|
|
951
1052
|
this.emit('nile-after-show', { value: this.value, name: this.name });
|
|
952
1053
|
}
|
|
953
1054
|
|
|
954
1055
|
private async handleClose(): Promise<void> {
|
|
1056
|
+
this.cleanupAnchorVisibilityObserver();
|
|
955
1057
|
this.emit('nile-hide', { value: this.value, name: this.name });
|
|
956
1058
|
this.removeOpenListeners();
|
|
957
1059
|
|
|
@@ -1510,7 +1612,7 @@ export class NileVirtualSelect extends NileElement implements NileFormControl {
|
|
|
1510
1612
|
requestAnimationFrame(() => {
|
|
1511
1613
|
let listbox: HTMLElement | null = null;
|
|
1512
1614
|
|
|
1513
|
-
|
|
1615
|
+
|
|
1514
1616
|
if (this.portal && this.portalManager.portalContainerElement) {
|
|
1515
1617
|
listbox = this.portalManager.portalContainerElement.querySelector('#listbox') as HTMLElement;
|
|
1516
1618
|
} else {
|
|
@@ -1519,22 +1621,17 @@ export class NileVirtualSelect extends NileElement implements NileFormControl {
|
|
|
1519
1621
|
|
|
1520
1622
|
if (!listbox || !listbox.isConnected) return;
|
|
1521
1623
|
|
|
1522
|
-
// Always reset scroll position
|
|
1523
1624
|
listbox.scrollTop = 0;
|
|
1524
|
-
|
|
1525
|
-
// When very few items, collapse overflow completely
|
|
1526
1625
|
const virtualized = listbox.querySelector('.virtualized') as HTMLElement;
|
|
1527
1626
|
if (virtualized && virtualized.isConnected) {
|
|
1528
1627
|
const fewItems = this.data.length <= 5;
|
|
1529
1628
|
|
|
1530
1629
|
if (fewItems) {
|
|
1531
|
-
// 👇 Prevent *any* scrolling and let height shrink
|
|
1532
1630
|
virtualized.style.overflowY = 'hidden';
|
|
1533
1631
|
virtualized.style.maxHeight = 'none';
|
|
1534
1632
|
listbox.style.overflowY = 'hidden';
|
|
1535
1633
|
listbox.style.maxHeight = 'fit-content';
|
|
1536
1634
|
} else {
|
|
1537
|
-
// 👇 Re-enable scrolling when many items
|
|
1538
1635
|
virtualized.style.overflowY = 'auto';
|
|
1539
1636
|
virtualized.style.maxHeight = '';
|
|
1540
1637
|
listbox.style.overflowY = 'auto';
|
|
@@ -1543,8 +1640,6 @@ export class NileVirtualSelect extends NileElement implements NileFormControl {
|
|
|
1543
1640
|
|
|
1544
1641
|
virtualized.scrollTop = 0;
|
|
1545
1642
|
}
|
|
1546
|
-
|
|
1547
|
-
// lit-virtualizer (if used)
|
|
1548
1643
|
const virtualizer = listbox.querySelector('lit-virtualizer') as HTMLElement;
|
|
1549
1644
|
if (virtualizer && virtualizer.isConnected) {
|
|
1550
1645
|
virtualizer.scrollTop = 0;
|
|
@@ -3465,7 +3465,7 @@
|
|
|
3465
3465
|
},
|
|
3466
3466
|
{
|
|
3467
3467
|
"name": "nile-select",
|
|
3468
|
-
"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\n * `nile-search` {} - Emitted when the user types in the search input. The event payload includes the search query for backend search functionality.\n\n * `nile-scroll` {} - Emitted when the user scrolls within the listbox. The event payload includes scroll position information.\n\n * `nile-scroll-start` {} - Emitted when the user starts scrolling within the listbox.\n\n * `nile-scroll-end` {} - Emitted when the user stops scrolling and reaches the bottom of the listbox (debounced).\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` {`\"small\" | \"medium\" | \"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 * `portal` {`boolean`} - When true, the listbox will be appended to the document body instead of the parent container.\nThis is useful when the parent has overflow: hidden, clip-path, or transform applied.\n\n * `multiple` {`string | boolean`} - Allows more than one option to be selected.\n\n * `helpText` {`string`} - \n\n * `help-text` {`string`} - \n\n * `autoResize` {`boolean`} - \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 * `enableGroupHeader` {`boolean`} - To enable the group header in the select\n\n * `autoFocusSearch` {`boolean`} - To auto focus the search input when the select is opened\n\n * `loading` {`boolean`} - loading indicator for virtual select\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 * `portalManager` - \n\n * `hasSlotController` - \n\n * `typeToSelectString` {`string`} - \n\n * `typeToSelectTimeout` {`number`} - \n\n * `scrollTimeout` {`number | undefined`} - \n\n * `scrolling` {`boolean`} - \n\n * `options` {`NileOption[]`} - \n\n * `resizeController` - \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` {`\"small\" | \"medium\" | \"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 * `portal` {`boolean`} - When true, the listbox will be appended to the document body instead of the parent container.\nThis is useful when the parent has overflow: hidden, clip-path, or transform applied.\n\n * `multiple` {`string | boolean`} - Allows more than one option to be selected.\n\n * `helpText` {`string`} - \n\n * `help_text` {`string`} - \n\n * `autoResize` {`boolean`} - \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 * `enableGroupHeader` {`boolean`} - To enable the group header in the select\n\n * `autoFocusSearch` {`boolean`} - To auto focus the search input when the select is opened\n\n * `loading` {`boolean`} - loading indicator for virtual select\n\n * `handleWindowResize` - \n\n * `handleWindowScroll` - \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`} - ",
|
|
3468
|
+
"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\n * `nile-search` {} - Emitted when the user types in the search input. The event payload includes the search query for backend search functionality.\n\n * `nile-scroll` {} - Emitted when the user scrolls within the listbox. The event payload includes scroll position information.\n\n * `nile-scroll-start` {} - Emitted when the user starts scrolling within the listbox.\n\n * `nile-scroll-end` {} - Emitted when the user stops scrolling and reaches the bottom of the listbox (debounced).\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` {`\"small\" | \"medium\" | \"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 * `portal` {`boolean`} - When true, the listbox will be appended to the document body instead of the parent container.\nThis is useful when the parent has overflow: hidden, clip-path, or transform applied.\n\n * `multiple` {`string | boolean`} - Allows more than one option to be selected.\n\n * `helpText` {`string`} - \n\n * `help-text` {`string`} - \n\n * `autoResize` {`boolean`} - \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 * `enableGroupHeader` {`boolean`} - To enable the group header in the select\n\n * `autoFocusSearch` {`boolean`} - To auto focus the search input when the select is opened\n\n * `loading` {`boolean`} - loading indicator for virtual select\n\n * `enableVisibilityEffect` {`boolean`} - \n\n * `enableTabClose` {`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 * `portalManager` - \n\n * `hasSlotController` - \n\n * `typeToSelectString` {`string`} - \n\n * `typeToSelectTimeout` {`number`} - \n\n * `scrollTimeout` {`number | undefined`} - \n\n * `scrolling` {`boolean`} - \n\n * `options` {`NileOption[]`} - \n\n * `resizeController` - \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` {`\"small\" | \"medium\" | \"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 * `portal` {`boolean`} - When true, the listbox will be appended to the document body instead of the parent container.\nThis is useful when the parent has overflow: hidden, clip-path, or transform applied.\n\n * `multiple` {`string | boolean`} - Allows more than one option to be selected.\n\n * `helpText` {`string`} - \n\n * `help_text` {`string`} - \n\n * `autoResize` {`boolean`} - \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 * `enableGroupHeader` {`boolean`} - To enable the group header in the select\n\n * `autoFocusSearch` {`boolean`} - To auto focus the search input when the select is opened\n\n * `loading` {`boolean`} - loading indicator for virtual select\n\n * `enableVisibilityEffect` {`boolean`} - \n\n * `enableTabClose` {`boolean`} - \n\n * `handleWindowResize` - \n\n * `handleWindowScroll` - \n\n * `anchorVisibilityObservers` {`IntersectionObserver[]`} - All active IntersectionObservers for visibility detection\n\n * `handleDocumentVisibilityChange` - Handles tab visibility (page hidden / tab switched)\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`} - ",
|
|
3469
3469
|
"attributes": [
|
|
3470
3470
|
{
|
|
3471
3471
|
"name": "size",
|
|
@@ -3640,6 +3640,16 @@
|
|
|
3640
3640
|
"description": "`loading` {`boolean`} - loading indicator for virtual select\n\nProperty: loading\n\nDefault: false",
|
|
3641
3641
|
"valueSet": "v"
|
|
3642
3642
|
},
|
|
3643
|
+
{
|
|
3644
|
+
"name": "enableVisibilityEffect",
|
|
3645
|
+
"description": "`enableVisibilityEffect` {`boolean`} - \n\nProperty: enableVisibilityEffect\n\nDefault: false",
|
|
3646
|
+
"valueSet": "v"
|
|
3647
|
+
},
|
|
3648
|
+
{
|
|
3649
|
+
"name": "enableTabClose",
|
|
3650
|
+
"description": "`enableTabClose` {`boolean`} - \n\nProperty: enableTabClose\n\nDefault: false",
|
|
3651
|
+
"valueSet": "v"
|
|
3652
|
+
},
|
|
3643
3653
|
{
|
|
3644
3654
|
"name": "name",
|
|
3645
3655
|
"description": "`name` {`string`} - The name of the select, submitted as a name/value pair with form data.\n\nProperty: name\n\nDefault: "
|
|
@@ -5169,7 +5179,7 @@
|
|
|
5169
5179
|
},
|
|
5170
5180
|
{
|
|
5171
5181
|
"name": "nile-virtual-select",
|
|
5172
|
-
"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\n * `nile-search` {} - Emitted when the user types in the search input. The event payload includes the search query for backend search functionality.\n\n * `nile-scroll` {} - Emitted when the user scrolls within the virtualized container. The event payload includes scroll position information.\n\n * `nile-scroll-start` {} - Emitted when the user starts scrolling within the virtualized container.\n\n * `nile-scroll-end` {} - Emitted when the user stops scrolling and reaches the bottom of the virtualized container (debounced).\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` {`\"small\" | \"medium\" | \"large\"`} - The select's size.\n\n * `placeholder` {`string`} - Placeholder text to show as a hint when the select is empty.\n\n * `autoResize` {`boolean`} - Enable automatic resizing of tags area\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 * `loading` {`boolean`} - Show loading state using nile-loader\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 * `portal` {`boolean`} - When true, the listbox will be appended to the document body instead of the parent container.\nThis is useful when the parent has overflow: hidden, clip-path, or transform applied.\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 * `portalManager` - \n\n * `popup` - \n\n * `combobox` {`HTMLElement`} - \n\n * `displayInput` {`HTMLInputElement`} - \n\n * `valueInput` {`HTMLInputElement`} - \n\n * `virtualizedContainer` {`HTMLElement`} - \n\n * `hasFocus` {`boolean`} - \n\n * `displayLabel` {`string`} - \n\n * `selectedOptions` {`VirtualOption[]`} - \n\n * `oldValue` {`string | string[]`} - \n\n * `scrollTimeout` {`number | undefined`} - \n\n * `scrolling` {`boolean`} - \n\n * `data` - Array of all option items for virtual scrolling\n\n * `originalOptionItems` - Original unfiltered option items for search functionality\n\n * `size` {`\"small\" | \"medium\" | \"large\"`} - The select's size.\n\n * `placeholder` {`string`} - Placeholder text to show as a hint when the select is empty.\n\n * `autoResize` {`boolean`} - Enable automatic resizing of tags area\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 * `loading` {`boolean`} - Show loading state using nile-loader\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 * `portal` {`boolean`} - When true, the listbox will be appended to the document body instead of the parent container.\nThis is useful when the parent has overflow: hidden, clip-path, or transform applied.\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 * `showListbox` {`boolean`} - \n\n * `wasShowSelectedCheckedOnClose` {`boolean`} - \n\n * `handleDocumentMouseDown` - \n\n * `handleWindowError` - This is a workaround for an error in the Lit Labs virtualizer.\nSince there are no specific guidelines available to fix the issue,\nwe are catching only the error message related to the virtualizer.\n\n * `handleWindowResize` - \n\n * `handleWindowScroll` - \n\n * `resizeController` - \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`} - ",
|
|
5182
|
+
"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\n * `nile-search` {} - Emitted when the user types in the search input. The event payload includes the search query for backend search functionality.\n\n * `nile-scroll` {} - Emitted when the user scrolls within the virtualized container. The event payload includes scroll position information.\n\n * `nile-scroll-start` {} - Emitted when the user starts scrolling within the virtualized container.\n\n * `nile-scroll-end` {} - Emitted when the user stops scrolling and reaches the bottom of the virtualized container (debounced).\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` {`\"small\" | \"medium\" | \"large\"`} - The select's size.\n\n * `placeholder` {`string`} - Placeholder text to show as a hint when the select is empty.\n\n * `autoResize` {`boolean`} - Enable automatic resizing of tags area\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 * `loading` {`boolean`} - Show loading state using nile-loader\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 * `enableVisibilityEffect` {`boolean`} - \n\n * `enableTabClose` {`boolean`} - \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 * `portal` {`boolean`} - When true, the listbox will be appended to the document body instead of the parent container.\nThis is useful when the parent has overflow: hidden, clip-path, or transform applied.\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 * `portalManager` - \n\n * `popup` - \n\n * `combobox` {`HTMLElement`} - \n\n * `displayInput` {`HTMLInputElement`} - \n\n * `valueInput` {`HTMLInputElement`} - \n\n * `virtualizedContainer` {`HTMLElement`} - \n\n * `hasFocus` {`boolean`} - \n\n * `displayLabel` {`string`} - \n\n * `selectedOptions` {`VirtualOption[]`} - \n\n * `oldValue` {`string | string[]`} - \n\n * `scrollTimeout` {`number | undefined`} - \n\n * `scrolling` {`boolean`} - \n\n * `data` - Array of all option items for virtual scrolling\n\n * `originalOptionItems` - Original unfiltered option items for search functionality\n\n * `size` {`\"small\" | \"medium\" | \"large\"`} - The select's size.\n\n * `placeholder` {`string`} - Placeholder text to show as a hint when the select is empty.\n\n * `autoResize` {`boolean`} - Enable automatic resizing of tags area\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 * `loading` {`boolean`} - Show loading state using nile-loader\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 * `enableVisibilityEffect` {`boolean`} - \n\n * `enableTabClose` {`boolean`} - \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 * `portal` {`boolean`} - When true, the listbox will be appended to the document body instead of the parent container.\nThis is useful when the parent has overflow: hidden, clip-path, or transform applied.\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 * `showListbox` {`boolean`} - \n\n * `wasShowSelectedCheckedOnClose` {`boolean`} - \n\n * `handleDocumentMouseDown` - \n\n * `anchorVisibilityObservers` {`IntersectionObserver[]`} - All active IntersectionObservers for visibility detection\n\n * `handleDocumentVisibilityChange` - Handles tab visibility (page hidden / tab switched)\n\n * `handleWindowError` - This is a workaround for an error in the Lit Labs virtualizer.\nSince there are no specific guidelines available to fix the issue,\nwe are catching only the error message related to the virtualizer.\n\n * `handleWindowResize` - \n\n * `handleWindowScroll` - \n\n * `resizeController` - \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`} - ",
|
|
5173
5183
|
"attributes": [
|
|
5174
5184
|
{
|
|
5175
5185
|
"name": "data",
|
|
@@ -5241,6 +5251,16 @@
|
|
|
5241
5251
|
"description": "`warning` {`boolean`} - Sets the input to a warning state\n\nProperty: warning\n\nDefault: false",
|
|
5242
5252
|
"valueSet": "v"
|
|
5243
5253
|
},
|
|
5254
|
+
{
|
|
5255
|
+
"name": "enableVisibilityEffect",
|
|
5256
|
+
"description": "`enableVisibilityEffect` {`boolean`} - \n\nProperty: enableVisibilityEffect\n\nDefault: false",
|
|
5257
|
+
"valueSet": "v"
|
|
5258
|
+
},
|
|
5259
|
+
{
|
|
5260
|
+
"name": "enableTabClose",
|
|
5261
|
+
"description": "`enableTabClose` {`boolean`} - \n\nProperty: enableTabClose\n\nDefault: false",
|
|
5262
|
+
"valueSet": "v"
|
|
5263
|
+
},
|
|
5244
5264
|
{
|
|
5245
5265
|
"name": "error",
|
|
5246
5266
|
"description": "`error` {`boolean`} - Sets the input to an error state\n\nProperty: error\n\nDefault: false",
|