@aquera/nile-elements 0.1.74 → 0.1.75-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.
Files changed (464) hide show
  1. package/demo/index.html +95 -9
  2. package/dist/{fixture-3bfb4490.cjs.js → fixture-5b79f853.cjs.js} +2 -2
  3. package/dist/{fixture-3bfb4490.cjs.js.map → fixture-5b79f853.cjs.js.map} +1 -1
  4. package/dist/fixture-90b199c4.esm.js +569 -0
  5. package/dist/{fixture-8edec91c.esm.js → fixture-cf7bfcf5.esm.js} +1 -1
  6. package/dist/fixture-dbd66009.cjs.js +395 -0
  7. package/dist/fixture-dbd66009.cjs.js.map +1 -0
  8. package/dist/index.js +41 -17
  9. package/dist/nile-accordion/nile-accordian.test.cjs.js +1 -1
  10. package/dist/nile-accordion/nile-accordian.test.esm.js +1 -1
  11. package/dist/nile-auto-complete/nile-auto-complete.test.cjs.js +1 -1
  12. package/dist/nile-auto-complete/nile-auto-complete.test.esm.js +1 -1
  13. package/dist/nile-avatar/nile-avatar.test.cjs.js +1 -1
  14. package/dist/nile-avatar/nile-avatar.test.esm.js +1 -1
  15. package/dist/nile-badge/nile-badge.test.cjs.js +1 -1
  16. package/dist/nile-badge/nile-badge.test.esm.js +1 -1
  17. package/dist/nile-button/nile-button.test.cjs.js +1 -1
  18. package/dist/nile-button/nile-button.test.esm.js +1 -1
  19. package/dist/nile-button-toggle-group/nile-button-toggle-group.test.cjs.js +1 -1
  20. package/dist/nile-button-toggle-group/nile-button-toggle-group.test.esm.js +1 -1
  21. package/dist/nile-calendar/nile-calendar.test.cjs.js +1 -1
  22. package/dist/nile-calendar/nile-calendar.test.cjs.js.map +1 -1
  23. package/dist/nile-calendar/nile-calendar.test.esm.js +1 -1
  24. package/dist/nile-card/nile-card.test.cjs.js +1 -1
  25. package/dist/nile-card/nile-card.test.esm.js +1 -1
  26. package/dist/nile-checkbox/nile-checkbox.test.cjs.js +1 -1
  27. package/dist/nile-checkbox/nile-checkbox.test.esm.js +1 -1
  28. package/dist/nile-chip/nile-chip.test.cjs.js +1 -1
  29. package/dist/nile-chip/nile-chip.test.esm.js +1 -1
  30. package/dist/nile-dialog/nile-dialog.test.cjs.js +1 -1
  31. package/dist/nile-dialog/nile-dialog.test.esm.js +1 -1
  32. package/dist/nile-drawer/nile-drawer.test.cjs.js +1 -1
  33. package/dist/nile-drawer/nile-drawer.test.esm.js +1 -1
  34. package/dist/nile-dropdown/nile-dropdown.test.cjs.js +1 -1
  35. package/dist/nile-dropdown/nile-dropdown.test.esm.js +1 -1
  36. package/dist/nile-empty-state/nile-empty-state.test.cjs.js +1 -1
  37. package/dist/nile-empty-state/nile-empty-state.test.esm.js +1 -1
  38. package/dist/nile-error-message/nile-error-message.test.cjs.js +1 -1
  39. package/dist/nile-error-message/nile-error-message.test.esm.js +1 -1
  40. package/dist/nile-file-preview/nile-file-preview.test.cjs.js +1 -1
  41. package/dist/nile-file-preview/nile-file-preview.test.esm.js +1 -1
  42. package/dist/nile-file-upload/nile-file-upload.test.cjs.js +1 -1
  43. package/dist/nile-file-upload/nile-file-upload.test.esm.js +1 -1
  44. package/dist/nile-filter-chip/nile-filter-chip.test.cjs.js +1 -1
  45. package/dist/nile-filter-chip/nile-filter-chip.test.esm.js +1 -1
  46. package/dist/nile-form-group/nile-form-group.test.cjs.js +1 -1
  47. package/dist/nile-form-group/nile-form-group.test.esm.js +1 -1
  48. package/dist/nile-form-help-text/nile-form-help-text.test.cjs.js +1 -1
  49. package/dist/nile-form-help-text/nile-form-help-text.test.esm.js +1 -1
  50. package/dist/nile-hero/nile-hero.test.cjs.js +1 -1
  51. package/dist/nile-hero/nile-hero.test.esm.js +1 -1
  52. package/dist/nile-icon/nile-icon.test.cjs.js +1 -1
  53. package/dist/nile-icon/nile-icon.test.esm.js +1 -1
  54. package/dist/nile-input/nile-input.test.cjs.js +1 -1
  55. package/dist/nile-input/nile-input.test.esm.js +1 -1
  56. package/dist/nile-link/nile-link.test.cjs.js +1 -1
  57. package/dist/nile-link/nile-link.test.esm.js +1 -1
  58. package/dist/nile-loader/nile-loader.test.cjs.js +1 -1
  59. package/dist/nile-loader/nile-loader.test.esm.js +1 -1
  60. package/dist/nile-popover/nile-popover.test.cjs.js +1 -1
  61. package/dist/nile-popover/nile-popover.test.esm.js +1 -1
  62. package/dist/nile-popup/nile-popup.test.cjs.js +1 -1
  63. package/dist/nile-popup/nile-popup.test.esm.js +1 -1
  64. package/dist/nile-progress-bar/nile-progress-bar.test.cjs.js +1 -1
  65. package/dist/nile-progress-bar/nile-progress-bar.test.esm.js +1 -1
  66. package/dist/nile-radio/nile-radio.test.cjs.js +1 -1
  67. package/dist/nile-radio/nile-radio.test.esm.js +1 -1
  68. package/dist/nile-radio-group/nile-radio-group.test.cjs.js +1 -1
  69. package/dist/nile-radio-group/nile-radio-group.test.esm.js +1 -1
  70. package/dist/nile-select/index.cjs.js +1 -1
  71. package/dist/nile-select/index.esm.js +1 -1
  72. package/dist/nile-select/nile-select.cjs.js +1 -1
  73. package/dist/nile-select/nile-select.cjs.js.map +1 -1
  74. package/dist/nile-select/nile-select.esm.js +2 -2
  75. package/dist/nile-select/nile-select.test.cjs.js +1 -1
  76. package/dist/nile-select/nile-select.test.cjs.js.map +1 -1
  77. package/dist/nile-select/nile-select.test.esm.js +1 -1
  78. package/dist/nile-select/virtual-scroll-helper.cjs.js +1 -1
  79. package/dist/nile-select/virtual-scroll-helper.cjs.js.map +1 -1
  80. package/dist/nile-select/virtual-scroll-helper.esm.js +1 -0
  81. package/dist/nile-slide-toggle/nile-slide-toggle.test.cjs.js +1 -1
  82. package/dist/nile-slide-toggle/nile-slide-toggle.test.esm.js +1 -1
  83. package/dist/nile-tab-group/nile-tab-group.test.cjs.js +1 -1
  84. package/dist/nile-tab-group/nile-tab-group.test.esm.js +1 -1
  85. package/dist/nile-textarea/nile-textarea.test.cjs.js +1 -1
  86. package/dist/nile-textarea/nile-textarea.test.esm.js +1 -1
  87. package/dist/nile-virtual-select/index.cjs.js +1 -1
  88. package/dist/nile-virtual-select/index.esm.js +1 -1
  89. package/dist/nile-virtual-select/nile-virtual-select.cjs.js +1 -1
  90. package/dist/nile-virtual-select/nile-virtual-select.cjs.js.map +1 -1
  91. package/dist/nile-virtual-select/nile-virtual-select.css.cjs.js +1 -1
  92. package/dist/nile-virtual-select/nile-virtual-select.css.cjs.js.map +1 -1
  93. package/dist/nile-virtual-select/nile-virtual-select.css.esm.js +18 -0
  94. package/dist/nile-virtual-select/nile-virtual-select.esm.js +15 -11
  95. package/dist/nile-virtual-select/nile-virtual-select.test.cjs.js +1 -1
  96. package/dist/nile-virtual-select/nile-virtual-select.test.esm.js +1 -1
  97. package/dist/nile-virtual-select/renderer.cjs.js +1 -1
  98. package/dist/nile-virtual-select/renderer.cjs.js.map +1 -1
  99. package/dist/nile-virtual-select/renderer.esm.js +11 -10
  100. package/dist/nile-virtual-select/selection-manager.cjs.js +1 -1
  101. package/dist/nile-virtual-select/selection-manager.cjs.js.map +1 -1
  102. package/dist/nile-virtual-select/selection-manager.esm.js +1 -1
  103. package/dist/nile-virtual-select/temp_nile-virtual-select copy.cjs.js +2 -0
  104. package/dist/nile-virtual-select/temp_nile-virtual-select copy.cjs.js.map +1 -0
  105. package/dist/nile-virtual-select/temp_nile-virtual-select copy.esm.js +231 -0
  106. package/dist/src/internal/resizable-helper.d.ts +59 -0
  107. package/dist/src/internal/resizable-helper.js +115 -0
  108. package/dist/src/internal/resizable-helper.js.map +1 -0
  109. package/dist/src/internal/resizable-styles.d.ts +16 -0
  110. package/dist/src/internal/resizable-styles.js +144 -0
  111. package/dist/src/internal/resizable-styles.js.map +1 -0
  112. package/dist/src/internal/virtualizer-error-handler.d.ts +30 -0
  113. package/dist/src/internal/virtualizer-error-handler.js +82 -0
  114. package/dist/src/internal/virtualizer-error-handler.js.map +1 -0
  115. package/dist/src/lib/index.d.ts +7 -0
  116. package/dist/src/lib/index.js +8 -0
  117. package/dist/src/lib/index.js.map +1 -0
  118. package/dist/src/lib/virtualize.d.ts +32 -0
  119. package/dist/src/lib/virtualize.js +105 -0
  120. package/dist/src/lib/virtualize.js.map +1 -0
  121. package/dist/src/lib/virtualize.test.d.ts +7 -0
  122. package/dist/src/lib/virtualize.test.js +57 -0
  123. package/dist/src/lib/virtualize.test.js.map +1 -0
  124. package/dist/src/nile-badge/__snapshots__/nile-badge.test.snap.js +17 -0
  125. package/dist/src/nile-calendar/__snapshots__/nile-calendar.test.snap.js +310 -0
  126. package/dist/src/nile-card/__snapshots__/nile-card.test.snap.js +34 -0
  127. package/dist/src/nile-checkbox/__snapshots__/nile-checkbox.test.snap.js +31 -0
  128. package/dist/src/nile-grid/data-processor.d.ts +37 -0
  129. package/dist/src/nile-grid/data-processor.js +122 -0
  130. package/dist/src/nile-grid/data-processor.js.map +1 -0
  131. package/dist/src/nile-grid/event-handlers.d.ts +35 -0
  132. package/dist/src/nile-grid/event-handlers.js +158 -0
  133. package/dist/src/nile-grid/event-handlers.js.map +1 -0
  134. package/dist/src/nile-grid/index.d.ts +5 -0
  135. package/dist/src/nile-grid/index.js +6 -0
  136. package/dist/src/nile-grid/index.js.map +1 -0
  137. package/dist/src/nile-grid/nile-grid.css.d.ts +1 -0
  138. package/dist/src/nile-grid/nile-grid.css.js +120 -0
  139. package/dist/src/nile-grid/nile-grid.css.js.map +1 -0
  140. package/dist/src/nile-grid/nile-grid.d.ts +39 -0
  141. package/dist/src/nile-grid/nile-grid.js +182 -0
  142. package/dist/src/nile-grid/nile-grid.js.map +1 -0
  143. package/dist/src/nile-grid/renderer.d.ts +8 -0
  144. package/dist/src/nile-grid/renderer.js +78 -0
  145. package/dist/src/nile-grid/renderer.js.map +1 -0
  146. package/dist/src/nile-grid/resize-handler.d.ts +4 -0
  147. package/dist/src/nile-grid/resize-handler.js +36 -0
  148. package/dist/src/nile-grid/resize-handler.js.map +1 -0
  149. package/dist/src/nile-grid/types.d.ts +32 -0
  150. package/dist/src/nile-grid/types.js +2 -0
  151. package/dist/src/nile-grid/types.js.map +1 -0
  152. package/dist/src/nile-grid/utils.d.ts +4 -0
  153. package/dist/src/nile-grid/utils.js +32 -0
  154. package/dist/src/nile-grid/utils.js.map +1 -0
  155. package/dist/src/nile-hero/__snapshots__/nile-hero.test.snap.js +47 -0
  156. package/dist/src/nile-icon/__snapshots__/nile-icon.test.snap.js +16 -0
  157. package/dist/src/nile-icon/icons/svg/ng-action.d.ts +5 -0
  158. package/dist/src/nile-icon/icons/svg/ng-action.js +5 -0
  159. package/dist/src/nile-icon/icons/svg/ng-action.js.map +1 -0
  160. package/dist/src/nile-icon/icons/svg/ng-activity.d.ts +5 -0
  161. package/dist/src/nile-icon/icons/svg/ng-activity.js +5 -0
  162. package/dist/src/nile-icon/icons/svg/ng-activity.js.map +1 -0
  163. package/dist/src/nile-icon/icons/svg/ng-alert-circle.d.ts +5 -0
  164. package/dist/src/nile-icon/icons/svg/ng-alert-circle.js +5 -0
  165. package/dist/src/nile-icon/icons/svg/ng-alert-circle.js.map +1 -0
  166. package/dist/src/nile-icon/icons/svg/ng-align-center.d.ts +5 -0
  167. package/dist/src/nile-icon/icons/svg/ng-align-center.js +5 -0
  168. package/dist/src/nile-icon/icons/svg/ng-align-center.js.map +1 -0
  169. package/dist/src/nile-icon/icons/svg/ng-annotation-x.d.ts +5 -0
  170. package/dist/src/nile-icon/icons/svg/ng-annotation-x.js +5 -0
  171. package/dist/src/nile-icon/icons/svg/ng-annotation-x.js.map +1 -0
  172. package/dist/src/nile-icon/icons/svg/ng-arrow-down.d.ts +5 -0
  173. package/dist/src/nile-icon/icons/svg/ng-arrow-down.js +5 -0
  174. package/dist/src/nile-icon/icons/svg/ng-arrow-down.js.map +1 -0
  175. package/dist/src/nile-icon/icons/svg/ng-arrow-narrow-down.d.ts +5 -0
  176. package/dist/src/nile-icon/icons/svg/ng-arrow-narrow-down.js +5 -0
  177. package/dist/src/nile-icon/icons/svg/ng-arrow-narrow-down.js.map +1 -0
  178. package/dist/src/nile-icon/icons/svg/ng-arrow-narrow-left.d.ts +5 -0
  179. package/dist/src/nile-icon/icons/svg/ng-arrow-narrow-left.js +5 -0
  180. package/dist/src/nile-icon/icons/svg/ng-arrow-narrow-left.js.map +1 -0
  181. package/dist/src/nile-icon/icons/svg/ng-arrow-narrow-right.d.ts +5 -0
  182. package/dist/src/nile-icon/icons/svg/ng-arrow-narrow-right.js +5 -0
  183. package/dist/src/nile-icon/icons/svg/ng-arrow-narrow-right.js.map +1 -0
  184. package/dist/src/nile-icon/icons/svg/ng-arrow-up.d.ts +5 -0
  185. package/dist/src/nile-icon/icons/svg/ng-arrow-up.js +5 -0
  186. package/dist/src/nile-icon/icons/svg/ng-arrow-up.js.map +1 -0
  187. package/dist/src/nile-icon/icons/svg/ng-bar-chart-12.d.ts +5 -0
  188. package/dist/src/nile-icon/icons/svg/ng-bar-chart-12.js +5 -0
  189. package/dist/src/nile-icon/icons/svg/ng-bar-chart-12.js.map +1 -0
  190. package/dist/src/nile-icon/icons/svg/ng-bell-01.d.ts +5 -0
  191. package/dist/src/nile-icon/icons/svg/ng-bell-01.js +5 -0
  192. package/dist/src/nile-icon/icons/svg/ng-bell-01.js.map +1 -0
  193. package/dist/src/nile-icon/icons/svg/ng-bell-ringing-04.d.ts +5 -0
  194. package/dist/src/nile-icon/icons/svg/ng-bell-ringing-04.js +5 -0
  195. package/dist/src/nile-icon/icons/svg/ng-bell-ringing-04.js.map +1 -0
  196. package/dist/src/nile-icon/icons/svg/ng-bold-01.d.ts +5 -0
  197. package/dist/src/nile-icon/icons/svg/ng-bold-01.js +5 -0
  198. package/dist/src/nile-icon/icons/svg/ng-bold-01.js.map +1 -0
  199. package/dist/src/nile-icon/icons/svg/ng-building-01.d.ts +5 -0
  200. package/dist/src/nile-icon/icons/svg/ng-building-01.js +5 -0
  201. package/dist/src/nile-icon/icons/svg/ng-building-01.js.map +1 -0
  202. package/dist/src/nile-icon/icons/svg/ng-building-05.d.ts +5 -0
  203. package/dist/src/nile-icon/icons/svg/ng-building-05.js +5 -0
  204. package/dist/src/nile-icon/icons/svg/ng-building-05.js.map +1 -0
  205. package/dist/src/nile-icon/icons/svg/ng-button-loading-blue-animated.d.ts +5 -0
  206. package/dist/src/nile-icon/icons/svg/ng-button-loading-blue-animated.js +5 -0
  207. package/dist/src/nile-icon/icons/svg/ng-button-loading-blue-animated.js.map +1 -0
  208. package/dist/src/nile-icon/icons/svg/ng-button-loading-blue.d.ts +5 -0
  209. package/dist/src/nile-icon/icons/svg/ng-button-loading-blue.js +5 -0
  210. package/dist/src/nile-icon/icons/svg/ng-button-loading-blue.js.map +1 -0
  211. package/dist/src/nile-icon/icons/svg/ng-calendar-plus-02.d.ts +5 -0
  212. package/dist/src/nile-icon/icons/svg/ng-calendar-plus-02.js +5 -0
  213. package/dist/src/nile-icon/icons/svg/ng-calendar-plus-02.js.map +1 -0
  214. package/dist/src/nile-icon/icons/svg/ng-calendar.d.ts +5 -0
  215. package/dist/src/nile-icon/icons/svg/ng-calendar.js +5 -0
  216. package/dist/src/nile-icon/icons/svg/ng-calendar.js.map +1 -0
  217. package/dist/src/nile-icon/icons/svg/ng-check-circle-broken.d.ts +5 -0
  218. package/dist/src/nile-icon/icons/svg/ng-check-circle-broken.js +5 -0
  219. package/dist/src/nile-icon/icons/svg/ng-check-circle-broken.js.map +1 -0
  220. package/dist/src/nile-icon/icons/svg/ng-check-circle.d.ts +5 -0
  221. package/dist/src/nile-icon/icons/svg/ng-check-circle.js +5 -0
  222. package/dist/src/nile-icon/icons/svg/ng-check-circle.js.map +1 -0
  223. package/dist/src/nile-icon/icons/svg/ng-check-square-broken.d.ts +5 -0
  224. package/dist/src/nile-icon/icons/svg/ng-check-square-broken.js +5 -0
  225. package/dist/src/nile-icon/icons/svg/ng-check-square-broken.js.map +1 -0
  226. package/dist/src/nile-icon/icons/svg/ng-check.d.ts +5 -0
  227. package/dist/src/nile-icon/icons/svg/ng-check.js +5 -0
  228. package/dist/src/nile-icon/icons/svg/ng-check.js.map +1 -0
  229. package/dist/src/nile-icon/icons/svg/ng-chevron-down.d.ts +5 -0
  230. package/dist/src/nile-icon/icons/svg/ng-chevron-down.js +5 -0
  231. package/dist/src/nile-icon/icons/svg/ng-chevron-down.js.map +1 -0
  232. package/dist/src/nile-icon/icons/svg/ng-chevron-left.d.ts +5 -0
  233. package/dist/src/nile-icon/icons/svg/ng-chevron-left.js +5 -0
  234. package/dist/src/nile-icon/icons/svg/ng-chevron-left.js.map +1 -0
  235. package/dist/src/nile-icon/icons/svg/ng-chevron-right.d.ts +5 -0
  236. package/dist/src/nile-icon/icons/svg/ng-chevron-right.js +5 -0
  237. package/dist/src/nile-icon/icons/svg/ng-chevron-right.js.map +1 -0
  238. package/dist/src/nile-icon/icons/svg/ng-chevron-selector-vertical.d.ts +5 -0
  239. package/dist/src/nile-icon/icons/svg/ng-chevron-selector-vertical.js +5 -0
  240. package/dist/src/nile-icon/icons/svg/ng-chevron-selector-vertical.js.map +1 -0
  241. package/dist/src/nile-icon/icons/svg/ng-chevron-up-double.d.ts +5 -0
  242. package/dist/src/nile-icon/icons/svg/ng-chevron-up-double.js +5 -0
  243. package/dist/src/nile-icon/icons/svg/ng-chevron-up-double.js.map +1 -0
  244. package/dist/src/nile-icon/icons/svg/ng-chevron-up.d.ts +5 -0
  245. package/dist/src/nile-icon/icons/svg/ng-chevron-up.js +5 -0
  246. package/dist/src/nile-icon/icons/svg/ng-chevron-up.js.map +1 -0
  247. package/dist/src/nile-icon/icons/svg/ng-copy-03.d.ts +5 -0
  248. package/dist/src/nile-icon/icons/svg/ng-copy-03.js +5 -0
  249. package/dist/src/nile-icon/icons/svg/ng-copy-03.js.map +1 -0
  250. package/dist/src/nile-icon/icons/svg/ng-dataflow-04.d.ts +5 -0
  251. package/dist/src/nile-icon/icons/svg/ng-dataflow-04.js +5 -0
  252. package/dist/src/nile-icon/icons/svg/ng-dataflow-04.js.map +1 -0
  253. package/dist/src/nile-icon/icons/svg/ng-dots-grid.d.ts +5 -0
  254. package/dist/src/nile-icon/icons/svg/ng-dots-grid.js +5 -0
  255. package/dist/src/nile-icon/icons/svg/ng-dots-grid.js.map +1 -0
  256. package/dist/src/nile-icon/icons/svg/ng-dots-vertical.d.ts +5 -0
  257. package/dist/src/nile-icon/icons/svg/ng-dots-vertical.js +5 -0
  258. package/dist/src/nile-icon/icons/svg/ng-dots-vertical.js.map +1 -0
  259. package/dist/src/nile-icon/icons/svg/ng-download-01.d.ts +5 -0
  260. package/dist/src/nile-icon/icons/svg/ng-download-01.js +5 -0
  261. package/dist/src/nile-icon/icons/svg/ng-download-01.js.map +1 -0
  262. package/dist/src/nile-icon/icons/svg/ng-dropdown.d.ts +5 -0
  263. package/dist/src/nile-icon/icons/svg/ng-dropdown.js +5 -0
  264. package/dist/src/nile-icon/icons/svg/ng-dropdown.js.map +1 -0
  265. package/dist/src/nile-icon/icons/svg/ng-edit-02.d.ts +5 -0
  266. package/dist/src/nile-icon/icons/svg/ng-edit-02.js +5 -0
  267. package/dist/src/nile-icon/icons/svg/ng-edit-02.js.map +1 -0
  268. package/dist/src/nile-icon/icons/svg/ng-edit-05.d.ts +5 -0
  269. package/dist/src/nile-icon/icons/svg/ng-edit-05.js +5 -0
  270. package/dist/src/nile-icon/icons/svg/ng-edit-05.js.map +1 -0
  271. package/dist/src/nile-icon/icons/svg/ng-expand-06.d.ts +5 -0
  272. package/dist/src/nile-icon/icons/svg/ng-expand-06.js +5 -0
  273. package/dist/src/nile-icon/icons/svg/ng-expand-06.js.map +1 -0
  274. package/dist/src/nile-icon/icons/svg/ng-eye-off.d.ts +5 -0
  275. package/dist/src/nile-icon/icons/svg/ng-eye-off.js +5 -0
  276. package/dist/src/nile-icon/icons/svg/ng-eye-off.js.map +1 -0
  277. package/dist/src/nile-icon/icons/svg/ng-eye.d.ts +5 -0
  278. package/dist/src/nile-icon/icons/svg/ng-eye.js +5 -0
  279. package/dist/src/nile-icon/icons/svg/ng-eye.js.map +1 -0
  280. package/dist/src/nile-icon/icons/svg/ng-file-02.d.ts +5 -0
  281. package/dist/src/nile-icon/icons/svg/ng-file-02.js +5 -0
  282. package/dist/src/nile-icon/icons/svg/ng-file-02.js.map +1 -0
  283. package/dist/src/nile-icon/icons/svg/ng-file-06.d.ts +5 -0
  284. package/dist/src/nile-icon/icons/svg/ng-file-06.js +5 -0
  285. package/dist/src/nile-icon/icons/svg/ng-file-06.js.map +1 -0
  286. package/dist/src/nile-icon/icons/svg/ng-file-check-02.d.ts +5 -0
  287. package/dist/src/nile-icon/icons/svg/ng-file-check-02.js +5 -0
  288. package/dist/src/nile-icon/icons/svg/ng-file-check-02.js.map +1 -0
  289. package/dist/src/nile-icon/icons/svg/ng-file-question-03.d.ts +5 -0
  290. package/dist/src/nile-icon/icons/svg/ng-file-question-03.js +5 -0
  291. package/dist/src/nile-icon/icons/svg/ng-file-question-03.js.map +1 -0
  292. package/dist/src/nile-icon/icons/svg/ng-filter-lines.d.ts +5 -0
  293. package/dist/src/nile-icon/icons/svg/ng-filter-lines.js +5 -0
  294. package/dist/src/nile-icon/icons/svg/ng-filter-lines.js.map +1 -0
  295. package/dist/src/nile-icon/icons/svg/ng-grid-01.d.ts +5 -0
  296. package/dist/src/nile-icon/icons/svg/ng-grid-01.js +5 -0
  297. package/dist/src/nile-icon/icons/svg/ng-grid-01.js.map +1 -0
  298. package/dist/src/nile-icon/icons/svg/ng-help-circle.d.ts +5 -0
  299. package/dist/src/nile-icon/icons/svg/ng-help-circle.js +5 -0
  300. package/dist/src/nile-icon/icons/svg/ng-help-circle.js.map +1 -0
  301. package/dist/src/nile-icon/icons/svg/ng-image-03.d.ts +5 -0
  302. package/dist/src/nile-icon/icons/svg/ng-image-03.js +5 -0
  303. package/dist/src/nile-icon/icons/svg/ng-image-03.js.map +1 -0
  304. package/dist/src/nile-icon/icons/svg/ng-image-user-left.d.ts +5 -0
  305. package/dist/src/nile-icon/icons/svg/ng-image-user-left.js +5 -0
  306. package/dist/src/nile-icon/icons/svg/ng-image-user-left.js.map +1 -0
  307. package/dist/src/nile-icon/icons/svg/ng-info-circle.d.ts +5 -0
  308. package/dist/src/nile-icon/icons/svg/ng-info-circle.js +5 -0
  309. package/dist/src/nile-icon/icons/svg/ng-info-circle.js.map +1 -0
  310. package/dist/src/nile-icon/icons/svg/ng-italic-01.d.ts +5 -0
  311. package/dist/src/nile-icon/icons/svg/ng-italic-01.js +5 -0
  312. package/dist/src/nile-icon/icons/svg/ng-italic-01.js.map +1 -0
  313. package/dist/src/nile-icon/icons/svg/ng-layers-three-01.d.ts +5 -0
  314. package/dist/src/nile-icon/icons/svg/ng-layers-three-01.js +5 -0
  315. package/dist/src/nile-icon/icons/svg/ng-layers-three-01.js.map +1 -0
  316. package/dist/src/nile-icon/icons/svg/ng-list.d.ts +5 -0
  317. package/dist/src/nile-icon/icons/svg/ng-list.js +5 -0
  318. package/dist/src/nile-icon/icons/svg/ng-list.js.map +1 -0
  319. package/dist/src/nile-icon/icons/svg/ng-lock-03.d.ts +5 -0
  320. package/dist/src/nile-icon/icons/svg/ng-lock-03.js +5 -0
  321. package/dist/src/nile-icon/icons/svg/ng-lock-03.js.map +1 -0
  322. package/dist/src/nile-icon/icons/svg/ng-log-out-01.d.ts +5 -0
  323. package/dist/src/nile-icon/icons/svg/ng-log-out-01.js +5 -0
  324. package/dist/src/nile-icon/icons/svg/ng-log-out-01.js.map +1 -0
  325. package/dist/src/nile-icon/icons/svg/ng-mail-01.d.ts +5 -0
  326. package/dist/src/nile-icon/icons/svg/ng-mail-01.js +5 -0
  327. package/dist/src/nile-icon/icons/svg/ng-mail-01.js.map +1 -0
  328. package/dist/src/nile-icon/icons/svg/ng-mail-04.d.ts +5 -0
  329. package/dist/src/nile-icon/icons/svg/ng-mail-04.js +5 -0
  330. package/dist/src/nile-icon/icons/svg/ng-mail-04.js.map +1 -0
  331. package/dist/src/nile-icon/icons/svg/ng-marker-pin-01.d.ts +5 -0
  332. package/dist/src/nile-icon/icons/svg/ng-marker-pin-01.js +5 -0
  333. package/dist/src/nile-icon/icons/svg/ng-marker-pin-01.js.map +1 -0
  334. package/dist/src/nile-icon/icons/svg/ng-menu-05.d.ts +5 -0
  335. package/dist/src/nile-icon/icons/svg/ng-menu-05.js +5 -0
  336. package/dist/src/nile-icon/icons/svg/ng-menu-05.js.map +1 -0
  337. package/dist/src/nile-icon/icons/svg/ng-message-text-square-01.d.ts +5 -0
  338. package/dist/src/nile-icon/icons/svg/ng-message-text-square-01.js +5 -0
  339. package/dist/src/nile-icon/icons/svg/ng-message-text-square-01.js.map +1 -0
  340. package/dist/src/nile-icon/icons/svg/ng-minimize-02.d.ts +5 -0
  341. package/dist/src/nile-icon/icons/svg/ng-minimize-02.js +5 -0
  342. package/dist/src/nile-icon/icons/svg/ng-minimize-02.js.map +1 -0
  343. package/dist/src/nile-icon/icons/svg/ng-minus.d.ts +5 -0
  344. package/dist/src/nile-icon/icons/svg/ng-minus.js +5 -0
  345. package/dist/src/nile-icon/icons/svg/ng-minus.js.map +1 -0
  346. package/dist/src/nile-icon/icons/svg/ng-plus.d.ts +5 -0
  347. package/dist/src/nile-icon/icons/svg/ng-plus.js +5 -0
  348. package/dist/src/nile-icon/icons/svg/ng-plus.js.map +1 -0
  349. package/dist/src/nile-icon/icons/svg/ng-refresh-cw-02.d.ts +5 -0
  350. package/dist/src/nile-icon/icons/svg/ng-refresh-cw-02.js +5 -0
  351. package/dist/src/nile-icon/icons/svg/ng-refresh-cw-02.js.map +1 -0
  352. package/dist/src/nile-icon/icons/svg/ng-rocket-02.d.ts +5 -0
  353. package/dist/src/nile-icon/icons/svg/ng-rocket-02.js +5 -0
  354. package/dist/src/nile-icon/icons/svg/ng-rocket-02.js.map +1 -0
  355. package/dist/src/nile-icon/icons/svg/ng-search-lg.d.ts +5 -0
  356. package/dist/src/nile-icon/icons/svg/ng-search-lg.js +5 -0
  357. package/dist/src/nile-icon/icons/svg/ng-search-lg.js.map +1 -0
  358. package/dist/src/nile-icon/icons/svg/ng-send-01.d.ts +5 -0
  359. package/dist/src/nile-icon/icons/svg/ng-send-01.js +5 -0
  360. package/dist/src/nile-icon/icons/svg/ng-send-01.js.map +1 -0
  361. package/dist/src/nile-icon/icons/svg/ng-settings-01.d.ts +5 -0
  362. package/dist/src/nile-icon/icons/svg/ng-settings-01.js +5 -0
  363. package/dist/src/nile-icon/icons/svg/ng-settings-01.js.map +1 -0
  364. package/dist/src/nile-icon/icons/svg/ng-share-04.d.ts +5 -0
  365. package/dist/src/nile-icon/icons/svg/ng-share-04.js +5 -0
  366. package/dist/src/nile-icon/icons/svg/ng-share-04.js.map +1 -0
  367. package/dist/src/nile-icon/icons/svg/ng-share-06.d.ts +5 -0
  368. package/dist/src/nile-icon/icons/svg/ng-share-06.js +5 -0
  369. package/dist/src/nile-icon/icons/svg/ng-share-06.js.map +1 -0
  370. package/dist/src/nile-icon/icons/svg/ng-stars-02.d.ts +5 -0
  371. package/dist/src/nile-icon/icons/svg/ng-stars-02.js +5 -0
  372. package/dist/src/nile-icon/icons/svg/ng-stars-02.js.map +1 -0
  373. package/dist/src/nile-icon/icons/svg/ng-trash-01.d.ts +5 -0
  374. package/dist/src/nile-icon/icons/svg/ng-trash-01.js +5 -0
  375. package/dist/src/nile-icon/icons/svg/ng-trash-01.js.map +1 -0
  376. package/dist/src/nile-icon/icons/svg/ng-trash-03.d.ts +5 -0
  377. package/dist/src/nile-icon/icons/svg/ng-trash-03.js +5 -0
  378. package/dist/src/nile-icon/icons/svg/ng-trash-03.js.map +1 -0
  379. package/dist/src/nile-icon/icons/svg/ng-trend-up-01.d.ts +5 -0
  380. package/dist/src/nile-icon/icons/svg/ng-trend-up-01.js +5 -0
  381. package/dist/src/nile-icon/icons/svg/ng-trend-up-01.js.map +1 -0
  382. package/dist/src/nile-icon/icons/svg/ng-underline-01.d.ts +5 -0
  383. package/dist/src/nile-icon/icons/svg/ng-underline-01.js +5 -0
  384. package/dist/src/nile-icon/icons/svg/ng-underline-01.js.map +1 -0
  385. package/dist/src/nile-icon/icons/svg/ng-upload-01.d.ts +5 -0
  386. package/dist/src/nile-icon/icons/svg/ng-upload-01.js +5 -0
  387. package/dist/src/nile-icon/icons/svg/ng-upload-01.js.map +1 -0
  388. package/dist/src/nile-icon/icons/svg/ng-upload-cloud-02.d.ts +5 -0
  389. package/dist/src/nile-icon/icons/svg/ng-upload-cloud-02.js +5 -0
  390. package/dist/src/nile-icon/icons/svg/ng-upload-cloud-02.js.map +1 -0
  391. package/dist/src/nile-icon/icons/svg/ng-user-01.d.ts +5 -0
  392. package/dist/src/nile-icon/icons/svg/ng-user-01.js +5 -0
  393. package/dist/src/nile-icon/icons/svg/ng-user-01.js.map +1 -0
  394. package/dist/src/nile-icon/icons/svg/ng-user-check-02-1.d.ts +5 -0
  395. package/dist/src/nile-icon/icons/svg/ng-user-check-02-1.js +5 -0
  396. package/dist/src/nile-icon/icons/svg/ng-user-check-02-1.js.map +1 -0
  397. package/dist/src/nile-icon/icons/svg/ng-user-check-02.d.ts +5 -0
  398. package/dist/src/nile-icon/icons/svg/ng-user-check-02.js +5 -0
  399. package/dist/src/nile-icon/icons/svg/ng-user-check-02.js.map +1 -0
  400. package/dist/src/nile-icon/icons/svg/ng-user-plus-02.d.ts +5 -0
  401. package/dist/src/nile-icon/icons/svg/ng-user-plus-02.js +5 -0
  402. package/dist/src/nile-icon/icons/svg/ng-user-plus-02.js.map +1 -0
  403. package/dist/src/nile-icon/icons/svg/ng-user-right-01.d.ts +5 -0
  404. package/dist/src/nile-icon/icons/svg/ng-user-right-01.js +5 -0
  405. package/dist/src/nile-icon/icons/svg/ng-user-right-01.js.map +1 -0
  406. package/dist/src/nile-icon/icons/svg/ng-users-01.d.ts +5 -0
  407. package/dist/src/nile-icon/icons/svg/ng-users-01.js +5 -0
  408. package/dist/src/nile-icon/icons/svg/ng-users-01.js.map +1 -0
  409. package/dist/src/nile-icon/icons/svg/ng-x-circle.d.ts +5 -0
  410. package/dist/src/nile-icon/icons/svg/ng-x-circle.js +5 -0
  411. package/dist/src/nile-icon/icons/svg/ng-x-circle.js.map +1 -0
  412. package/dist/src/nile-icon/icons/svg/ng-x-close.d.ts +5 -0
  413. package/dist/src/nile-icon/icons/svg/ng-x-close.js +5 -0
  414. package/dist/src/nile-icon/icons/svg/ng-x-close.js.map +1 -0
  415. package/dist/src/nile-icon/icons/svg/ng-x-square.d.ts +5 -0
  416. package/dist/src/nile-icon/icons/svg/ng-x-square.js +5 -0
  417. package/dist/src/nile-icon/icons/svg/ng-x-square.js.map +1 -0
  418. package/dist/src/nile-input/__snapshots__/nile-input.test.snap.js +75 -0
  419. package/dist/src/nile-popover/__snapshots__/nile-popover.test.snap.js +22 -0
  420. package/dist/src/nile-select/nile-select.d.ts +2 -0
  421. package/dist/src/nile-select/nile-select.js +8 -2
  422. package/dist/src/nile-select/nile-select.js.map +1 -1
  423. package/dist/src/nile-select/virtual-scroll-helper.js +1 -0
  424. package/dist/src/nile-select/virtual-scroll-helper.js.map +1 -1
  425. package/dist/src/nile-table-body/virtual-scroll-helper.d.ts +9 -0
  426. package/dist/src/nile-table-body/virtual-scroll-helper.js +24 -0
  427. package/dist/src/nile-table-body/virtual-scroll-helper.js.map +1 -0
  428. package/dist/src/nile-virtual-select/nile-virtual-select.css.js +18 -0
  429. package/dist/src/nile-virtual-select/nile-virtual-select.css.js.map +1 -1
  430. package/dist/src/nile-virtual-select/nile-virtual-select.d.ts +18 -1
  431. package/dist/src/nile-virtual-select/nile-virtual-select.js +106 -21
  432. package/dist/src/nile-virtual-select/nile-virtual-select.js.map +1 -1
  433. package/dist/src/nile-virtual-select/renderer.d.ts +2 -2
  434. package/dist/src/nile-virtual-select/renderer.js +9 -8
  435. package/dist/src/nile-virtual-select/renderer.js.map +1 -1
  436. package/dist/src/nile-virtual-select/selection-manager.js +1 -1
  437. package/dist/src/nile-virtual-select/selection-manager.js.map +1 -1
  438. package/dist/src/nile-virtual-select/temp_nile-virtual-select copy.d.ts +273 -0
  439. package/dist/src/nile-virtual-select/temp_nile-virtual-select copy.js +1305 -0
  440. package/dist/src/nile-virtual-select/temp_nile-virtual-select copy.js.map +1 -0
  441. package/dist/src/nile-virtual-select/virtualizer-error-handler.d.ts +21 -0
  442. package/dist/src/nile-virtual-select/virtualizer-error-handler.js +56 -0
  443. package/dist/src/nile-virtual-select/virtualizer-error-handler.js.map +1 -0
  444. package/dist/src/nile-virtual-table-body/index.d.ts +2 -0
  445. package/dist/src/nile-virtual-table-body/index.js +3 -0
  446. package/dist/src/nile-virtual-table-body/index.js.map +1 -0
  447. package/dist/src/nile-virtual-table-body/nile-virtual-table-body.css.d.ts +1 -0
  448. package/dist/src/nile-virtual-table-body/nile-virtual-table-body.css.js +44 -0
  449. package/dist/src/nile-virtual-table-body/nile-virtual-table-body.css.js.map +1 -0
  450. package/dist/src/nile-virtual-table-body/nile-virtual-table-body.d.ts +50 -0
  451. package/dist/src/nile-virtual-table-body/nile-virtual-table-body.js +135 -0
  452. package/dist/src/nile-virtual-table-body/nile-virtual-table-body.js.map +1 -0
  453. package/dist/src/nile-virtual-table-body/renderer.d.ts +16 -0
  454. package/dist/src/nile-virtual-table-body/renderer.js +49 -0
  455. package/dist/src/nile-virtual-table-body/renderer.js.map +1 -0
  456. package/dist/tsconfig.tsbuildinfo +1 -1
  457. package/package.json +1 -1
  458. package/src/nile-select/nile-select.ts +6 -2
  459. package/src/nile-select/virtual-scroll-helper.ts +1 -0
  460. package/src/nile-virtual-select/nile-virtual-select.css.ts +18 -0
  461. package/src/nile-virtual-select/nile-virtual-select.ts +121 -25
  462. package/src/nile-virtual-select/renderer.ts +10 -8
  463. package/src/nile-virtual-select/selection-manager.ts +1 -1
  464. package/vscode-html-custom-data.json +28 -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.74",
6
+ "version": "0.1.75-beta-1.3",
7
7
  "main": "dist/src/index.js",
8
8
  "type": "module",
9
9
  "module": "dist/src/index.js",
@@ -273,6 +273,9 @@ export class NileSelect extends NileElement implements NileFormControl{
273
273
  /** To auto focus the search input when the select is opened */
274
274
  @property({ type: Boolean, reflect: true, attribute: true }) autoFocusSearch = false;
275
275
 
276
+ /** loading indicator for virtual select */
277
+ @property({ type: Boolean, reflect: true, attribute: true }) loading = false;
278
+
276
279
  /** Gets the validity state object */
277
280
  get validity() {
278
281
  return this.valueInput?.validity;
@@ -944,8 +947,9 @@ export class NileSelect extends NileElement implements NileFormControl{
944
947
  const allOptions = this.getAllOptions();
945
948
  const value = Array.isArray(this.value) ? this.value : [this.value];
946
949
 
947
- // Select only the options that match the new value
948
- this.setSelectedOptions(allOptions.filter(el => value.includes(el.value)));
950
+ if(!this.enableVirtualScroll) {
951
+ this.setSelectedOptions(allOptions.filter(el => value.includes(el.value)));
952
+ }
949
953
  }
950
954
 
951
955
  @watch('open', { waitUntilFirstUpdate: true })
@@ -48,6 +48,7 @@ export class VirtualScrollHelper {
48
48
  .maxOptionsVisible=${component.maxOptionsVisible}
49
49
  .data=${component.data}
50
50
  .open=${component.open}
51
+ .loading=${component.loading}
51
52
  exportparts="
52
53
  select-options,
53
54
  select-no-results,
@@ -32,6 +32,10 @@ export const styles = css`
32
32
  flex-direction: column;
33
33
  }
34
34
 
35
+ .virtualized div[virtualizer-sizer] {
36
+ display: none !important;
37
+ }
38
+
35
39
  .virtualized:not(:has(lit-virtualizer)) nile-option {
36
40
  flex-shrink: 0;
37
41
  }
@@ -486,6 +490,20 @@ export const styles = css`
486
490
  .virtualized nile-option[selected]::part(base) {
487
491
  color: var(--nile-colors-primary-600);
488
492
  }
493
+
494
+ .virtual-select-loader {
495
+ position: absolute;
496
+ display: flex;
497
+ justify-content: center;
498
+ align-items: center;
499
+ width: 100%;
500
+ height: 75%;
501
+ }
502
+
503
+ .select__footer.loading, .select__options.loading {
504
+ opacity: 0.5;
505
+ pointer-events: none;
506
+ }
489
507
  `;
490
508
 
491
509
  export default [styles];
@@ -16,6 +16,7 @@ import '../nile-icon';
16
16
  import '../nile-popup/nile-popup';
17
17
  import '../nile-tag/nile-tag';
18
18
  import '../nile-checkbox/nile-checkbox';
19
+ import '../nile-loader/nile-loader';
19
20
  import { animateTo, stopAnimations } from '../internal/animate';
20
21
  import { classMap } from 'lit/directives/class-map.js';
21
22
  import { query, state } from 'lit/decorators.js';
@@ -29,7 +30,7 @@ import { HasSlotController } from '../internal/slot';
29
30
  import { waitForEvent } from '../internal/event';
30
31
  import { watch } from '../internal/watch';
31
32
  import NileElement from '../internal/nile-element';
32
- import type { CSSResultGroup, TemplateResult } from 'lit';
33
+ import type { CSSResultGroup, PropertyValues, TemplateResult } from 'lit';
33
34
  import type { NileFormControl } from '../internal/nile-element';
34
35
  import type NileOption from '../nile-option/nile-option';
35
36
  import type NilePopup from '../nile-popup/nile-popup';
@@ -73,6 +74,10 @@ import { VirtualSelectRenderer } from './renderer.js';
73
74
  * @event nile-hide - Emitted when the select's menu closes.
74
75
  * @event nile-after-hide - Emitted after the select's menu closes and all animations are complete.
75
76
  * @event nile-invalid - Emitted when the form control has been checked for validity and its constraints aren't satisfied.
77
+ * @event nile-search - Emitted when the user types in the search input. The event payload includes the search query for backend search functionality.
78
+ * @event nile-scroll - Emitted when the user scrolls within the virtualized container. The event payload includes scroll position information.
79
+ * @event nile-scroll-start - Emitted when the user starts scrolling within the virtualized container.
80
+ * @event nile-scroll-end - Emitted when the user stops scrolling and reaches the bottom of the virtualized container (debounced).
76
81
  *
77
82
  * @csspart form-control - The form control that wraps the label, input, and help text.
78
83
  * @csspart form-control-label - The label's wrapper.
@@ -111,6 +116,9 @@ export class NileVirtualSelect extends NileElement implements NileFormControl {
111
116
  @state() displayLabel = '';
112
117
  @state() selectedOptions: VirtualOption[] = [];
113
118
  @state() oldValue: string | string[] = '';
119
+
120
+ private scrollTimeout: number | undefined;
121
+ private scrolling = false;
114
122
 
115
123
  /** The name of the select, submitted as a name/value pair with form data. */
116
124
  @property() name = '';
@@ -156,6 +164,9 @@ export class NileVirtualSelect extends NileElement implements NileFormControl {
156
164
  /** Show loading state */
157
165
  @property({ type: Boolean, reflect: true }) optionsLoading = false;
158
166
 
167
+ /** Show loading state using nile-loader */
168
+ @property({ type: Boolean, reflect: true, attribute: true }) loading = false;
169
+
159
170
  /** Allows more than one option to be selected. */
160
171
  @property({ type: Boolean, reflect: true }) multiple = false;
161
172
 
@@ -265,6 +276,17 @@ export class NileVirtualSelect extends NileElement implements NileFormControl {
265
276
 
266
277
  disconnectedCallback() {
267
278
  this.removeOpenListeners();
279
+ // Clear any pending scroll timeout to prevent memory leaks
280
+ if (this.scrollTimeout) {
281
+ clearTimeout(this.scrollTimeout);
282
+ this.scrollTimeout = undefined;
283
+ }
284
+ }
285
+
286
+ protected updated(changedProperties: PropertyValues): void {
287
+ if(changedProperties.has('value')) {
288
+ this.selectionChanged();
289
+ }
268
290
  }
269
291
 
270
292
  private initializeComponent(): void {
@@ -307,18 +329,21 @@ export class NileVirtualSelect extends NileElement implements NileFormControl {
307
329
  this.handleDocumentFocusIn = this.handleDocumentFocusIn.bind(this);
308
330
  this.handleDocumentKeyDown = this.handleDocumentKeyDown.bind(this);
309
331
  this.handleDocumentMouseDown = this.handleDocumentMouseDown.bind(this);
332
+ this.handleWindowError = this.handleWindowError.bind(this);
310
333
  }
311
334
 
312
335
  private addOpenListeners(): void {
313
336
  document.addEventListener('focusin', this.handleDocumentFocusIn);
314
337
  document.addEventListener('keydown', this.handleDocumentKeyDown);
315
338
  document.addEventListener('mousedown', this.handleDocumentMouseDown);
339
+ window.addEventListener('error', this.handleWindowError);
316
340
  }
317
341
 
318
342
  private removeOpenListeners(): void {
319
343
  document.removeEventListener('focusin', this.handleDocumentFocusIn);
320
344
  document.removeEventListener('keydown', this.handleDocumentKeyDown);
321
345
  document.removeEventListener('mousedown', this.handleDocumentMouseDown);
346
+ window.removeEventListener('error', this.handleWindowError);
322
347
  }
323
348
 
324
349
  private handleFocus(): void {
@@ -405,6 +430,19 @@ export class NileVirtualSelect extends NileElement implements NileFormControl {
405
430
  }
406
431
  };
407
432
 
433
+ /**
434
+ * This is a workaround for an error in the Lit Labs virtualizer.
435
+ * Since there are no specific guidelines available to fix the issue,
436
+ * we are catching only the error message related to the virtualizer.
437
+ */
438
+ private handleWindowError = (event: ErrorEvent): void => {
439
+ const errorMessage = event.error?.message || event.message || '';
440
+ if (errorMessage.includes('Cannot read properties of null (reading \'insertBefore\')')) {
441
+ event.preventDefault();
442
+ return;
443
+ }
444
+ };
445
+
408
446
  private handleFooterClick(event: MouseEvent): void {
409
447
  event.stopPropagation();
410
448
  event.preventDefault();
@@ -420,9 +458,10 @@ export class NileVirtualSelect extends NileElement implements NileFormControl {
420
458
 
421
459
  if (this.showSelected) {
422
460
  const selectedValues = Array.isArray(this.value) ? this.value : [this.value];
423
- this.data = this.originalOptionItems.filter((item: any) =>
424
- selectedValues.includes(item.value)
425
- );
461
+ this.data = this.originalOptionItems.filter((item: any) => {
462
+ const itemValue = this.getItemValue(item);
463
+ return selectedValues.some(val => String(val) === String(itemValue));
464
+ });
426
465
  } else {
427
466
  this.data = [...this.originalOptionItems];
428
467
  }
@@ -628,12 +667,58 @@ export class NileVirtualSelect extends NileElement implements NileFormControl {
628
667
 
629
668
  handleSearchChange(e: any): void {
630
669
  this.searchValue = e.detail.value;
670
+
671
+ this.emit('nile-search', {
672
+ query: this.searchValue,
673
+ name: this.name
674
+ });
675
+
631
676
  if (!this.disableLocalSearch) {
632
677
  this.filterVirtualOptions(this.searchValue);
633
678
  this.resetScrollPosition();
634
679
  }
635
680
  }
636
681
 
682
+ handleScroll(e: Event): void {
683
+ if(this.showSelected) {
684
+ return;
685
+ }
686
+
687
+ const target = e.target as HTMLElement;
688
+
689
+ this.emit('nile-scroll', {
690
+ scrollTop: target.scrollTop,
691
+ scrollLeft: target.scrollLeft,
692
+ name: this.name
693
+ });
694
+
695
+ if (!this.scrolling) {
696
+ this.scrolling = true;
697
+ this.emit('nile-scroll-start', {
698
+ scrollTop: target.scrollTop,
699
+ scrollLeft: target.scrollLeft,
700
+ name: this.name
701
+ });
702
+ }
703
+
704
+ clearTimeout(this.scrollTimeout);
705
+ this.scrollTimeout = window.setTimeout(() => {
706
+ if (this.scrolling) {
707
+ this.scrolling = false;
708
+ }
709
+ }, 300);
710
+
711
+ const isAtBottom = Math.ceil(target.scrollTop) >= Math.floor(target.scrollHeight - target.offsetHeight);
712
+ if (isAtBottom) {
713
+ this.emit('nile-scroll-end', {
714
+ scrollTop: target.scrollTop,
715
+ scrollLeft: target.scrollLeft,
716
+ name: this.name,
717
+ isAtBottom: true
718
+ });
719
+ }
720
+ }
721
+
637
722
  filterVirtualOptions(searchValue: string): void {
638
723
  const result = VirtualSelectSearchManager.filterVirtualOptions(
639
724
  searchValue,
@@ -670,18 +755,18 @@ export class NileVirtualSelect extends NileElement implements NileFormControl {
670
755
 
671
756
  @watch('data', { waitUntilFirstUpdate: true })
672
757
  handleDataChange(): void {
758
+ if (this.data.length > 0 && this.open && !this.showSelected && !this.searchValue) {
759
+ this.originalOptionItems = [...this.data];
760
+ }
761
+
673
762
  this.selectionChanged();
674
763
  // Show no results message when data is empty and not loading
675
- if (!this.optionsLoading && this.data.length === 0) {
764
+ if (!this.optionsLoading && !this.loading && this.data.length === 0) {
676
765
  this.showNoResults = true;
677
766
  } else if (this.data.length > 0) {
678
767
  this.showNoResults = false;
679
768
  }
680
769
  this.requestUpdate();
681
-
682
- if (this.open) {
683
- this.resetScrollPosition();
684
- }
685
770
  }
686
771
 
687
772
  @watch('renderItemConfig', { waitUntilFirstUpdate: true })
@@ -745,7 +830,7 @@ export class NileVirtualSelect extends NileElement implements NileFormControl {
745
830
  }
746
831
 
747
832
  private initializeOriginalItems(): void {
748
- if (this.originalOptionItems.length === 0 && this.data.length > 0) {
833
+ if (this.data.length > 0) {
749
834
  this.originalOptionItems = [...this.data];
750
835
  }
751
836
  }
@@ -1125,16 +1210,26 @@ export class NileVirtualSelect extends NileElement implements NileFormControl {
1125
1210
  }
1126
1211
 
1127
1212
  private renderLoader(): TemplateResult {
1128
- return this.optionsLoading
1129
- ? html`
1130
- <span part="loader" class="select__loader">
1131
- <nile-icon
1132
- class="select__loader--icon"
1133
- name="button-loading-blue"
1134
- ></nile-icon>
1135
- </span>
1136
- `
1137
- : html``;
1213
+ if (this.loading) {
1214
+ return html`
1215
+ <span part="loader" class="virtual-select-loader">
1216
+ <nile-loader size="sm"></nile-loader>
1217
+ </span>
1218
+ `;
1219
+ }
1220
+
1221
+ if (this.optionsLoading) {
1222
+ return html`
1223
+ <span part="loader" class="select__loader">
1224
+ <nile-icon
1225
+ class="select__loader--icon"
1226
+ name="button-loading-blue"
1227
+ ></nile-icon>
1228
+ </span>
1229
+ `;
1230
+ }
1231
+
1232
+ return html``;
1138
1233
  }
1139
1234
 
1140
1235
  private renderFooter(): TemplateResult {
@@ -1142,7 +1237,7 @@ export class NileVirtualSelect extends NileElement implements NileFormControl {
1142
1237
  ? html`
1143
1238
  <div
1144
1239
  part="footer"
1145
- class="select__footer"
1240
+ class="select__footer ${this.loading ? 'loading' : ''}"
1146
1241
  @click="${this.handleFooterClick}"
1147
1242
  >
1148
1243
  <span
@@ -1197,7 +1292,8 @@ export class NileVirtualSelect extends NileElement implements NileFormControl {
1197
1292
  this.renderItemConfig?.getValue,
1198
1293
  this.showNoResults,
1199
1294
  this.noResultsMessage,
1200
- this.optionsLoading
1295
+ this.optionsLoading || this.loading,
1296
+ this.handleScroll.bind(this)
1201
1297
  );
1202
1298
  }
1203
1299
 
@@ -1272,16 +1368,16 @@ export class NileVirtualSelect extends NileElement implements NileFormControl {
1272
1368
 
1273
1369
  private resetScrollPosition(): void {
1274
1370
  this.updateComplete.then(() => {
1275
- if (this.virtualizedContainer) {
1371
+ if (this.virtualizedContainer && this.virtualizedContainer.isConnected) {
1276
1372
  this.virtualizedContainer.scrollTop = 0;
1277
1373
 
1278
1374
  const listbox = this.shadowRoot?.querySelector('.select__listbox') as HTMLElement;
1279
- if (listbox) {
1375
+ if (listbox && listbox.isConnected) {
1280
1376
  listbox.scrollTop = 0;
1281
1377
  }
1282
1378
 
1283
1379
  const virtualizer = this.virtualizedContainer.querySelector('lit-virtualizer') as HTMLElement;
1284
- if (virtualizer) {
1380
+ if (virtualizer && virtualizer.isConnected) {
1285
1381
  virtualizer.scrollTop = 0;
1286
1382
  }
1287
1383
  }
@@ -21,13 +21,14 @@ export class VirtualSelectRenderer {
21
21
  getItemValue?: (item: any) => string,
22
22
  showNoResults?: boolean,
23
23
  noResultsMessage?: string,
24
- optionsLoading?: boolean
24
+ loading?: boolean,
25
+ onScroll?: (e: Event) => void
25
26
  ): TemplateResult {
26
27
  return html`
27
28
  <div part="select-options" class="select__options ${
28
29
  searchEnabled ? 'select__options__search-enabled' : ``
29
- }">
30
- ${showNoResults && !optionsLoading
30
+ } ${loading ? 'loading' : ''}">
31
+ ${showNoResults && !loading
31
32
  ? html`
32
33
  <div part="select-no-results" class="select__no-results">
33
34
  ${noResultsMessage || 'No results found'}
@@ -37,6 +38,7 @@ export class VirtualSelectRenderer {
37
38
  <div
38
39
  class="virtualized"
39
40
  part="virtualized"
41
+ @scroll=${onScroll}
40
42
  >
41
43
  ${VirtualSelectRenderer.shouldUseVirtualizer(data)
42
44
  ? html`
@@ -70,12 +72,12 @@ export class VirtualSelectRenderer {
70
72
 
71
73
  const optionValue = valueFn(item);
72
74
  const displayText = displayTextFn(item);
73
- const isDisabled = item.disabled || false;
74
- const className = item.className;
75
+ const isDisabled = item?.disabled || false;
76
+ const className = item?.className;
75
77
 
76
78
  let isSelected = false;
77
79
  if (multiple) {
78
- isSelected = Array.isArray(value) && value.includes(optionValue);
80
+ isSelected = Array.isArray(value) && value.some(v => String(v) === String(optionValue));
79
81
  } else {
80
82
  isSelected = (Array.isArray(value) ? value[0] : value) === optionValue;
81
83
  }
@@ -95,9 +97,9 @@ export class VirtualSelectRenderer {
95
97
 
96
98
  /**
97
99
  * Determines whether to use virtualizer based on dataset size
98
- * For small datasets (less than 50 items), use regular rendering for better sizing
100
+ * For small datasets (less than 5 items), use regular rendering for better sizing
99
101
  */
100
102
  private static shouldUseVirtualizer(data: any[]): boolean {
101
- return data.length >= 50;
103
+ return data.length >= 5;
102
104
  }
103
105
  }
@@ -28,7 +28,7 @@ export class VirtualSelectSelectionManager {
28
28
  const item = data.find((item: any) => {
29
29
  const itemValue = valueFn(item);
30
30
  const itemDisplayText = displayTextFn(item);
31
- return itemValue === valueItem || itemDisplayText === valueItem;
31
+ return String(itemValue) === String(valueItem) || String(itemDisplayText) === String(valueItem);
32
32
  });
33
33
 
34
34
  const displayText = item ? displayTextFn(item) : valueItem;
@@ -3023,7 +3023,7 @@
3023
3023
  },
3024
3024
  {
3025
3025
  "name": "nile-select",
3026
- "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` {`\"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` {`string | 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 * `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 * `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 * `scrollTimeout` {`number | undefined`} - \n\n * `scrolling` {`boolean`} - \n\n * `options` {`NileOption[]`} - \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` {`string | 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 * `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 * `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`} - ",
3026
+ "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` {`\"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` {`string | 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 * `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 * `hasSlotController` - \n\n * `typeToSelectString` {`string`} - \n\n * `typeToSelectTimeout` {`number`} - \n\n * `scrollTimeout` {`number | undefined`} - \n\n * `scrolling` {`boolean`} - \n\n * `options` {`NileOption[]`} - \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` {`string | 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 * `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 * `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`} - ",
3027
3027
  "attributes": [
3028
3028
  {
3029
3029
  "name": "size",
@@ -3179,6 +3179,11 @@
3179
3179
  "description": "`autoFocusSearch` {`boolean`} - To auto focus the search input when the select is opened\n\nProperty: autoFocusSearch\n\nDefault: false",
3180
3180
  "valueSet": "v"
3181
3181
  },
3182
+ {
3183
+ "name": "loading",
3184
+ "description": "`loading` {`boolean`} - loading indicator for virtual select\n\nProperty: loading\n\nDefault: false",
3185
+ "valueSet": "v"
3186
+ },
3182
3187
  {
3183
3188
  "name": "name",
3184
3189
  "description": "`name` {`string`} - The name of the select, submitted as a name/value pair with form data.\n\nProperty: name\n\nDefault: "
@@ -4371,7 +4376,7 @@
4371
4376
  },
4372
4377
  {
4373
4378
  "name": "nile-virtual-select",
4374
- "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 * `virtualizedContainer` {`HTMLElement`} - \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`} - ",
4379
+ "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` {`\"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 * `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 * `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 * `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` {`\"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 * `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 * `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 * `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 * `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`} - ",
4375
4380
  "attributes": [
4376
4381
  {
4377
4382
  "name": "data",
@@ -4415,6 +4420,11 @@
4415
4420
  "description": "`optionsLoading` {`boolean`} - Show loading state\n\nProperty: optionsLoading\n\nDefault: false",
4416
4421
  "valueSet": "v"
4417
4422
  },
4423
+ {
4424
+ "name": "loading",
4425
+ "description": "`loading` {`boolean`} - Show loading state using nile-loader\n\nProperty: loading\n\nDefault: false",
4426
+ "valueSet": "v"
4427
+ },
4418
4428
  {
4419
4429
  "name": "multiple",
4420
4430
  "description": "`multiple` {`boolean`} - Allows more than one option to be selected.\n\nProperty: multiple\n\nDefault: false",
@@ -4574,6 +4584,22 @@
4574
4584
  {
4575
4585
  "name": "onnile-invalid",
4576
4586
  "description": "`nile-invalid` {} - Emitted when the form control has been checked for validity and its constraints aren't satisfied."
4587
+ },
4588
+ {
4589
+ "name": "onnile-search",
4590
+ "description": "`nile-search` {} - Emitted when the user types in the search input. The event payload includes the search query for backend search functionality."
4591
+ },
4592
+ {
4593
+ "name": "onnile-scroll",
4594
+ "description": "`nile-scroll` {} - Emitted when the user scrolls within the virtualized container. The event payload includes scroll position information."
4595
+ },
4596
+ {
4597
+ "name": "onnile-scroll-start",
4598
+ "description": "`nile-scroll-start` {} - Emitted when the user starts scrolling within the virtualized container."
4599
+ },
4600
+ {
4601
+ "name": "onnile-scroll-end",
4602
+ "description": "`nile-scroll-end` {} - Emitted when the user stops scrolling and reaches the bottom of the virtualized container (debounced)."
4577
4603
  }
4578
4604
  ]
4579
4605
  }