@aquera/nile-elements 1.0.4-beta-1.2 → 1.0.4-beta-1.4

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 (595) hide show
  1. package/README.md +6 -0
  2. package/demo/variables.css +1 -0
  3. package/dist/css-tag-bb10c0fa.cjs.js +6 -0
  4. package/dist/css-tag-bb10c0fa.cjs.js.map +1 -0
  5. package/dist/css-tag-dc564feb.esm.js +6 -0
  6. package/dist/{fixture-8edec91c.esm.js → fixture-985bba12.esm.js} +1 -1
  7. package/dist/{fixture-3bfb4490.cjs.js → fixture-d1470b58.cjs.js} +2 -2
  8. package/dist/{fixture-3bfb4490.cjs.js.map → fixture-d1470b58.cjs.js.map} +1 -1
  9. package/dist/index.cjs.js +1 -1
  10. package/dist/index.esm.js +1 -1
  11. package/dist/index.js +797 -316
  12. package/dist/nile-accordion/nile-accordian.test.cjs.js +1 -1
  13. package/dist/nile-accordion/nile-accordian.test.esm.js +1 -1
  14. package/dist/nile-auto-complete/nile-auto-complete.test.cjs.js +1 -1
  15. package/dist/nile-auto-complete/nile-auto-complete.test.cjs.js.map +1 -1
  16. package/dist/nile-auto-complete/nile-auto-complete.test.esm.js +1 -1
  17. package/dist/nile-avatar/nile-avatar.test.cjs.js +1 -1
  18. package/dist/nile-avatar/nile-avatar.test.cjs.js.map +1 -1
  19. package/dist/nile-avatar/nile-avatar.test.esm.js +1 -1
  20. package/dist/nile-badge/index.cjs.js +1 -1
  21. package/dist/nile-badge/index.esm.js +1 -1
  22. package/dist/nile-badge/nile-badge.cjs.js +1 -1
  23. package/dist/nile-badge/nile-badge.cjs.js.map +1 -1
  24. package/dist/nile-badge/nile-badge.esm.js +1 -1
  25. package/dist/nile-badge/nile-badge.test.cjs.js +1 -1
  26. package/dist/nile-badge/nile-badge.test.cjs.js.map +1 -1
  27. package/dist/nile-badge/nile-badge.test.esm.js +1 -1
  28. package/dist/nile-button/index.cjs.js +1 -1
  29. package/dist/nile-button/index.esm.js +1 -1
  30. package/dist/nile-button/nile-button.cjs.js +1 -1
  31. package/dist/nile-button/nile-button.cjs.js.map +1 -1
  32. package/dist/nile-button/nile-button.esm.js +2 -2
  33. package/dist/nile-button/nile-button.test.cjs.js +1 -1
  34. package/dist/nile-button/nile-button.test.cjs.js.map +1 -1
  35. package/dist/nile-button/nile-button.test.esm.js +1 -1
  36. package/dist/nile-button-toggle-group/nile-button-toggle-group.test.cjs.js +1 -1
  37. package/dist/nile-button-toggle-group/nile-button-toggle-group.test.esm.js +1 -1
  38. package/dist/nile-calendar/nile-calendar.test.cjs.js +1 -1
  39. package/dist/nile-calendar/nile-calendar.test.cjs.js.map +1 -1
  40. package/dist/nile-calendar/nile-calendar.test.esm.js +1 -1
  41. package/dist/nile-card/nile-card.test.cjs.js +1 -1
  42. package/dist/nile-card/nile-card.test.esm.js +1 -1
  43. package/dist/nile-checkbox/nile-checkbox.css.cjs.js +1 -1
  44. package/dist/nile-checkbox/nile-checkbox.css.cjs.js.map +1 -1
  45. package/dist/nile-checkbox/nile-checkbox.css.esm.js +1 -1
  46. package/dist/nile-checkbox/nile-checkbox.test.cjs.js +1 -1
  47. package/dist/nile-checkbox/nile-checkbox.test.esm.js +1 -1
  48. package/dist/nile-chip/nile-chip.test.cjs.js +1 -1
  49. package/dist/nile-chip/nile-chip.test.cjs.js.map +1 -1
  50. package/dist/nile-chip/nile-chip.test.esm.js +1 -1
  51. package/dist/nile-dialog/index.cjs.js +1 -1
  52. package/dist/nile-dialog/index.esm.js +1 -1
  53. package/dist/nile-dialog/nile-dialog.cjs.js +1 -1
  54. package/dist/nile-dialog/nile-dialog.cjs.js.map +1 -1
  55. package/dist/nile-dialog/nile-dialog.esm.js +6 -6
  56. package/dist/nile-dialog/nile-dialog.test.cjs.js +1 -1
  57. package/dist/nile-dialog/nile-dialog.test.cjs.js.map +1 -1
  58. package/dist/nile-dialog/nile-dialog.test.esm.js +1 -1
  59. package/dist/nile-drawer/index.cjs.js +1 -1
  60. package/dist/nile-drawer/index.esm.js +1 -1
  61. package/dist/nile-drawer/nile-drawer.cjs.js +1 -1
  62. package/dist/nile-drawer/nile-drawer.cjs.js.map +1 -1
  63. package/dist/nile-drawer/nile-drawer.esm.js +1 -1
  64. package/dist/nile-drawer/nile-drawer.test.cjs.js +1 -1
  65. package/dist/nile-drawer/nile-drawer.test.cjs.js.map +1 -1
  66. package/dist/nile-drawer/nile-drawer.test.esm.js +1 -1
  67. package/dist/nile-dropdown/nile-dropdown.test.cjs.js +1 -1
  68. package/dist/nile-dropdown/nile-dropdown.test.esm.js +1 -1
  69. package/dist/nile-empty-state/nile-empty-state.test.cjs.js +1 -1
  70. package/dist/nile-empty-state/nile-empty-state.test.esm.js +1 -1
  71. package/dist/nile-error-message/nile-error-message.test.cjs.js +1 -1
  72. package/dist/nile-error-message/nile-error-message.test.esm.js +1 -1
  73. package/dist/nile-file-preview/nile-file-preview.test.cjs.js +1 -1
  74. package/dist/nile-file-preview/nile-file-preview.test.esm.js +1 -1
  75. package/dist/nile-file-upload/index.cjs.js +1 -1
  76. package/dist/nile-file-upload/nile-file-upload.cjs.js +1 -1
  77. package/dist/nile-file-upload/nile-file-upload.template.cjs.js +1 -1
  78. package/dist/nile-file-upload/nile-file-upload.test.cjs.js +1 -1
  79. package/dist/nile-file-upload/nile-file-upload.test.esm.js +1 -1
  80. package/dist/nile-filter-chip/nile-filter-chip.test.cjs.js +1 -1
  81. package/dist/nile-filter-chip/nile-filter-chip.test.esm.js +1 -1
  82. package/dist/nile-form-group/nile-form-group.test.cjs.js +1 -1
  83. package/dist/nile-form-group/nile-form-group.test.esm.js +1 -1
  84. package/dist/nile-form-help-text/nile-form-help-text.test.cjs.js +1 -1
  85. package/dist/nile-form-help-text/nile-form-help-text.test.esm.js +1 -1
  86. package/dist/nile-grid/index.cjs.js +2 -0
  87. package/dist/nile-grid/index.cjs.js.map +1 -0
  88. package/dist/nile-grid/index.esm.js +1 -0
  89. package/dist/nile-grid/nile-grid.cjs.js +2 -0
  90. package/dist/nile-grid/nile-grid.cjs.js.map +1 -0
  91. package/dist/nile-grid/nile-grid.css.cjs.js +2 -0
  92. package/dist/nile-grid/nile-grid.css.cjs.js.map +1 -0
  93. package/dist/nile-grid/nile-grid.css.esm.js +32 -0
  94. package/dist/nile-grid/nile-grid.esm.js +7 -0
  95. package/dist/nile-grid/nile-grid.utils.cjs.js +2 -0
  96. package/dist/nile-grid/nile-grid.utils.cjs.js.map +1 -0
  97. package/dist/nile-grid/nile-grid.utils.esm.js +1 -0
  98. package/dist/nile-grid-body/index.cjs.js +2 -0
  99. package/dist/nile-grid-body/index.cjs.js.map +1 -0
  100. package/dist/nile-grid-body/index.esm.js +1 -0
  101. package/dist/nile-grid-body/nile-grid-body.cjs.js +2 -0
  102. package/dist/nile-grid-body/nile-grid-body.cjs.js.map +1 -0
  103. package/dist/nile-grid-body/nile-grid-body.css.cjs.js +2 -0
  104. package/dist/nile-grid-body/nile-grid-body.css.cjs.js.map +1 -0
  105. package/dist/nile-grid-body/nile-grid-body.css.esm.js +10 -0
  106. package/dist/nile-grid-body/nile-grid-body.esm.js +5 -0
  107. package/dist/nile-grid-cell-item/index.cjs.js +2 -0
  108. package/dist/nile-grid-cell-item/index.cjs.js.map +1 -0
  109. package/dist/nile-grid-cell-item/index.esm.js +1 -0
  110. package/dist/nile-grid-cell-item/nile-grid-cell-item.cjs.js +2 -0
  111. package/dist/nile-grid-cell-item/nile-grid-cell-item.cjs.js.map +1 -0
  112. package/dist/nile-grid-cell-item/nile-grid-cell-item.css.cjs.js +2 -0
  113. package/dist/nile-grid-cell-item/nile-grid-cell-item.css.cjs.js.map +1 -0
  114. package/dist/nile-grid-cell-item/nile-grid-cell-item.css.esm.js +35 -0
  115. package/dist/nile-grid-cell-item/nile-grid-cell-item.esm.js +12 -0
  116. package/dist/nile-grid-cell-item/nile-grid-cell-item.utils.cjs.js +2 -0
  117. package/dist/nile-grid-cell-item/nile-grid-cell-item.utils.cjs.js.map +1 -0
  118. package/dist/nile-grid-cell-item/nile-grid-cell-item.utils.esm.js +1 -0
  119. package/dist/nile-grid-head/index.cjs.js +2 -0
  120. package/dist/nile-grid-head/index.cjs.js.map +1 -0
  121. package/dist/nile-grid-head/index.esm.js +1 -0
  122. package/dist/nile-grid-head/nile-grid-head.cjs.js +2 -0
  123. package/dist/nile-grid-head/nile-grid-head.cjs.js.map +1 -0
  124. package/dist/nile-grid-head/nile-grid-head.css.cjs.js +2 -0
  125. package/dist/nile-grid-head/nile-grid-head.css.cjs.js.map +1 -0
  126. package/dist/nile-grid-head/nile-grid-head.css.esm.js +7 -0
  127. package/dist/nile-grid-head/nile-grid-head.esm.js +5 -0
  128. package/dist/nile-grid-head-item/index.cjs.js +2 -0
  129. package/dist/nile-grid-head-item/index.cjs.js.map +1 -0
  130. package/dist/nile-grid-head-item/index.esm.js +1 -0
  131. package/dist/nile-grid-head-item/nile-grid-head-item.cjs.js +2 -0
  132. package/dist/nile-grid-head-item/nile-grid-head-item.cjs.js.map +1 -0
  133. package/dist/nile-grid-head-item/nile-grid-head-item.css.cjs.js +2 -0
  134. package/dist/nile-grid-head-item/nile-grid-head-item.css.cjs.js.map +1 -0
  135. package/dist/nile-grid-head-item/nile-grid-head-item.css.esm.js +34 -0
  136. package/dist/nile-grid-head-item/nile-grid-head-item.esm.js +12 -0
  137. package/dist/nile-grid-head-item/nile-grid-head-item.utils.cjs.js +2 -0
  138. package/dist/nile-grid-head-item/nile-grid-head-item.utils.cjs.js.map +1 -0
  139. package/dist/nile-grid-head-item/nile-grid-head-item.utils.esm.js +1 -0
  140. package/dist/nile-grid-row/index.cjs.js +2 -0
  141. package/dist/nile-grid-row/index.cjs.js.map +1 -0
  142. package/dist/nile-grid-row/index.esm.js +1 -0
  143. package/dist/nile-grid-row/nile-grid-row.cjs.js +2 -0
  144. package/dist/nile-grid-row/nile-grid-row.cjs.js.map +1 -0
  145. package/dist/nile-grid-row/nile-grid-row.css.cjs.js +2 -0
  146. package/dist/nile-grid-row/nile-grid-row.css.cjs.js.map +1 -0
  147. package/dist/nile-grid-row/nile-grid-row.css.esm.js +15 -0
  148. package/dist/nile-grid-row/nile-grid-row.esm.js +7 -0
  149. package/dist/nile-hero/nile-hero.test.cjs.js +1 -1
  150. package/dist/nile-hero/nile-hero.test.esm.js +1 -1
  151. package/dist/nile-icon/icons/svg/format_align_justify.cjs.js +2 -0
  152. package/dist/nile-icon/icons/svg/format_align_justify.cjs.js.map +1 -0
  153. package/dist/nile-icon/icons/svg/format_align_justify.esm.js +1 -0
  154. package/dist/nile-icon/icons/svg/format_align_left.cjs.js +2 -0
  155. package/dist/nile-icon/icons/svg/format_align_left.cjs.js.map +1 -0
  156. package/dist/nile-icon/icons/svg/format_align_left.esm.js +1 -0
  157. package/dist/nile-icon/icons/svg/format_align_middle.cjs.js +2 -0
  158. package/dist/nile-icon/icons/svg/format_align_middle.cjs.js.map +1 -0
  159. package/dist/nile-icon/icons/svg/format_align_middle.esm.js +1 -0
  160. package/dist/nile-icon/icons/svg/format_align_right.cjs.js +2 -0
  161. package/dist/nile-icon/icons/svg/format_align_right.cjs.js.map +1 -0
  162. package/dist/nile-icon/icons/svg/format_align_right.esm.js +1 -0
  163. package/dist/nile-icon/icons/svg/format_bold.cjs.js +2 -0
  164. package/dist/nile-icon/icons/svg/format_bold.cjs.js.map +1 -0
  165. package/dist/nile-icon/icons/svg/format_bold.esm.js +1 -0
  166. package/dist/nile-icon/icons/svg/format_clear.cjs.js +2 -0
  167. package/dist/nile-icon/icons/svg/format_clear.cjs.js.map +1 -0
  168. package/dist/nile-icon/icons/svg/format_clear.esm.js +1 -0
  169. package/dist/nile-icon/icons/svg/format_italic.cjs.js +2 -0
  170. package/dist/nile-icon/icons/svg/format_italic.cjs.js.map +1 -0
  171. package/dist/nile-icon/icons/svg/format_italic.esm.js +1 -0
  172. package/dist/nile-icon/icons/svg/format_list_bulleted.cjs.js +2 -0
  173. package/dist/nile-icon/icons/svg/format_list_bulleted.cjs.js.map +1 -0
  174. package/dist/nile-icon/icons/svg/format_list_bulleted.esm.js +1 -0
  175. package/dist/nile-icon/icons/svg/format_list_numbered.cjs.js +2 -0
  176. package/dist/nile-icon/icons/svg/format_list_numbered.cjs.js.map +1 -0
  177. package/dist/nile-icon/icons/svg/format_list_numbered.esm.js +1 -0
  178. package/dist/nile-icon/icons/svg/format_underline.cjs.js +2 -0
  179. package/dist/nile-icon/icons/svg/format_underline.cjs.js.map +1 -0
  180. package/dist/nile-icon/icons/svg/format_underline.esm.js +1 -0
  181. package/dist/nile-icon/icons/svg/image_2.cjs.js +2 -0
  182. package/dist/nile-icon/icons/svg/image_2.cjs.js.map +1 -0
  183. package/dist/nile-icon/icons/svg/image_2.esm.js +1 -0
  184. package/dist/nile-icon/icons/svg/index.cjs.js +1 -1
  185. package/dist/nile-icon/icons/svg/index.esm.js +1 -1
  186. package/dist/nile-icon/icons/svg/link_2.cjs.js +2 -0
  187. package/dist/nile-icon/icons/svg/link_2.cjs.js.map +1 -0
  188. package/dist/nile-icon/icons/svg/link_2.esm.js +1 -0
  189. package/dist/nile-icon/index.cjs.js +1 -1
  190. package/dist/nile-icon/index.cjs.js.map +1 -1
  191. package/dist/nile-icon/index.esm.js +1 -1
  192. package/dist/nile-icon/nile-icon.test.cjs.js +1 -1
  193. package/dist/nile-icon/nile-icon.test.cjs.js.map +1 -1
  194. package/dist/nile-icon/nile-icon.test.esm.js +1 -1
  195. package/dist/nile-icon-button/index.cjs.js +1 -1
  196. package/dist/nile-icon-button/index.esm.js +1 -1
  197. package/dist/nile-icon-button/nile-icon-button.cjs.js +1 -1
  198. package/dist/nile-icon-button/nile-icon-button.cjs.js.map +1 -1
  199. package/dist/nile-icon-button/nile-icon-button.esm.js +1 -1
  200. package/dist/nile-input/index.cjs.js +1 -1
  201. package/dist/nile-input/index.esm.js +1 -1
  202. package/dist/nile-input/nile-input.cjs.js +1 -1
  203. package/dist/nile-input/nile-input.cjs.js.map +1 -1
  204. package/dist/nile-input/nile-input.esm.js +5 -5
  205. package/dist/nile-input/nile-input.test.cjs.js +1 -1
  206. package/dist/nile-input/nile-input.test.cjs.js.map +1 -1
  207. package/dist/nile-input/nile-input.test.esm.js +1 -1
  208. package/dist/nile-link/nile-link.css.cjs.js +1 -1
  209. package/dist/nile-link/nile-link.css.cjs.js.map +1 -1
  210. package/dist/nile-link/nile-link.css.esm.js +3 -2
  211. package/dist/nile-link/nile-link.test.cjs.js +1 -1
  212. package/dist/nile-link/nile-link.test.esm.js +1 -1
  213. package/dist/nile-loader/nile-loader.test.cjs.js +1 -1
  214. package/dist/nile-loader/nile-loader.test.esm.js +1 -1
  215. package/dist/nile-menu-item/index.cjs.js +1 -1
  216. package/dist/nile-menu-item/index.esm.js +1 -1
  217. package/dist/nile-menu-item/nile-menu-item.cjs.js +1 -1
  218. package/dist/nile-menu-item/nile-menu-item.cjs.js.map +1 -1
  219. package/dist/nile-menu-item/nile-menu-item.esm.js +2 -2
  220. package/dist/nile-option/index.cjs.js +1 -1
  221. package/dist/nile-option/index.esm.js +1 -1
  222. package/dist/nile-option/nile-option.cjs.js +1 -1
  223. package/dist/nile-option/nile-option.cjs.js.map +1 -1
  224. package/dist/nile-option/nile-option.esm.js +1 -1
  225. package/dist/nile-popover/index.cjs.js +1 -1
  226. package/dist/nile-popover/index.esm.js +1 -1
  227. package/dist/nile-popover/nile-popover.cjs.js +4 -4
  228. package/dist/nile-popover/nile-popover.cjs.js.map +1 -1
  229. package/dist/nile-popover/nile-popover.esm.js +6 -11
  230. package/dist/nile-popover/nile-popover.test.cjs.js +1 -1
  231. package/dist/nile-popover/nile-popover.test.cjs.js.map +1 -1
  232. package/dist/nile-popover/nile-popover.test.esm.js +5 -5
  233. package/dist/nile-popup/nile-popup.test.cjs.js +1 -1
  234. package/dist/nile-popup/nile-popup.test.esm.js +1 -1
  235. package/dist/nile-progress-bar/nile-progress-bar.test.cjs.js +1 -1
  236. package/dist/nile-progress-bar/nile-progress-bar.test.esm.js +1 -1
  237. package/dist/nile-radio/nile-radio.test.cjs.js +1 -1
  238. package/dist/nile-radio/nile-radio.test.esm.js +1 -1
  239. package/dist/nile-radio-group/nile-radio-group.test.cjs.js +1 -1
  240. package/dist/nile-radio-group/nile-radio-group.test.esm.js +1 -1
  241. package/dist/nile-rich-text-editor/index.cjs.js +2 -0
  242. package/dist/nile-rich-text-editor/index.cjs.js.map +1 -0
  243. package/dist/nile-rich-text-editor/index.esm.js +1 -0
  244. package/dist/nile-rich-text-editor/nile-rich-text-editor.cjs.js +2 -0
  245. package/dist/nile-rich-text-editor/nile-rich-text-editor.cjs.js.map +1 -0
  246. package/dist/nile-rich-text-editor/nile-rich-text-editor.css.cjs.js +2 -0
  247. package/dist/nile-rich-text-editor/nile-rich-text-editor.css.cjs.js.map +1 -0
  248. package/dist/nile-rich-text-editor/nile-rich-text-editor.css.esm.js +149 -0
  249. package/dist/nile-rich-text-editor/nile-rich-text-editor.esm.js +1 -0
  250. package/dist/nile-rich-text-editor/nile-rte-color.cjs.js +2 -0
  251. package/dist/nile-rich-text-editor/nile-rte-color.cjs.js.map +1 -0
  252. package/dist/nile-rich-text-editor/nile-rte-color.esm.js +53 -0
  253. package/dist/nile-rich-text-editor/nile-rte-divider.cjs.js +2 -0
  254. package/dist/nile-rich-text-editor/nile-rte-divider.cjs.js.map +1 -0
  255. package/dist/nile-rich-text-editor/nile-rte-divider.esm.js +1 -0
  256. package/dist/nile-rich-text-editor/nile-rte-link.cjs.js +2 -0
  257. package/dist/nile-rich-text-editor/nile-rte-link.cjs.js.map +1 -0
  258. package/dist/nile-rich-text-editor/nile-rte-link.esm.js +19 -0
  259. package/dist/nile-rich-text-editor/nile-rte-mentions-item.cjs.js +2 -0
  260. package/dist/nile-rich-text-editor/nile-rte-mentions-item.cjs.js.map +1 -0
  261. package/dist/nile-rich-text-editor/nile-rte-mentions-item.esm.js +1 -0
  262. package/dist/nile-rich-text-editor/nile-rte-mentions.cjs.js +3 -0
  263. package/dist/nile-rich-text-editor/nile-rte-mentions.cjs.js.map +1 -0
  264. package/dist/nile-rich-text-editor/nile-rte-mentions.esm.js +1 -0
  265. package/dist/nile-rich-text-editor/nile-rte-preview.cjs.js +2 -0
  266. package/dist/nile-rich-text-editor/nile-rte-preview.cjs.js.map +1 -0
  267. package/dist/nile-rich-text-editor/nile-rte-preview.esm.js +1 -0
  268. package/dist/nile-rich-text-editor/nile-rte-select.cjs.js +2 -0
  269. package/dist/nile-rich-text-editor/nile-rte-select.cjs.js.map +1 -0
  270. package/dist/nile-rich-text-editor/nile-rte-select.esm.js +66 -0
  271. package/dist/nile-rich-text-editor/nile-rte-toolbar-item.cjs.js +2 -0
  272. package/dist/nile-rich-text-editor/nile-rte-toolbar-item.cjs.js.map +1 -0
  273. package/dist/nile-rich-text-editor/nile-rte-toolbar-item.esm.js +1 -0
  274. package/dist/nile-rich-text-editor/nile-rte-toolbar.cjs.js +2 -0
  275. package/dist/nile-rich-text-editor/nile-rte-toolbar.cjs.js.map +1 -0
  276. package/dist/nile-rich-text-editor/nile-rte-toolbar.esm.js +1 -0
  277. package/dist/nile-rich-text-editor/utils.cjs.js +2 -0
  278. package/dist/nile-rich-text-editor/utils.cjs.js.map +1 -0
  279. package/dist/nile-rich-text-editor/utils.esm.js +1 -0
  280. package/dist/nile-select/index.cjs.js +1 -1
  281. package/dist/nile-select/index.esm.js +1 -1
  282. package/dist/nile-select/nile-select.cjs.js +1 -1
  283. package/dist/nile-select/nile-select.cjs.js.map +1 -1
  284. package/dist/nile-select/nile-select.css.cjs.js +1 -1
  285. package/dist/nile-select/nile-select.css.cjs.js.map +1 -1
  286. package/dist/nile-select/nile-select.css.esm.js +1 -1
  287. package/dist/nile-select/nile-select.esm.js +2 -2
  288. package/dist/nile-select/nile-select.test.cjs.js +1 -1
  289. package/dist/nile-select/nile-select.test.cjs.js.map +1 -1
  290. package/dist/nile-select/nile-select.test.esm.js +12 -12
  291. package/dist/nile-select/virtual-scroll-helper.cjs.js +1 -1
  292. package/dist/nile-select/virtual-scroll-helper.cjs.js.map +1 -1
  293. package/dist/nile-select/virtual-scroll-helper.esm.js +2 -0
  294. package/dist/nile-slide-toggle/nile-slide-toggle.test.cjs.js +1 -1
  295. package/dist/nile-slide-toggle/nile-slide-toggle.test.esm.js +1 -1
  296. package/dist/nile-stepper-item/nile-stepper-item.cjs.js +1 -1
  297. package/dist/nile-stepper-item/nile-stepper-item.cjs.js.map +1 -1
  298. package/dist/nile-stepper-item/nile-stepper-item.esm.js +6 -6
  299. package/dist/nile-tab/index.cjs.js +1 -1
  300. package/dist/nile-tab/index.esm.js +1 -1
  301. package/dist/nile-tab/nile-tab.cjs.js +1 -1
  302. package/dist/nile-tab/nile-tab.cjs.js.map +1 -1
  303. package/dist/nile-tab/nile-tab.esm.js +2 -2
  304. package/dist/nile-tab-group/index.cjs.js +1 -1
  305. package/dist/nile-tab-group/index.esm.js +1 -1
  306. package/dist/nile-tab-group/nile-tab-group.cjs.js +1 -1
  307. package/dist/nile-tab-group/nile-tab-group.cjs.js.map +1 -1
  308. package/dist/nile-tab-group/nile-tab-group.esm.js +1 -1
  309. package/dist/nile-tab-group/nile-tab-group.test.cjs.js +1 -1
  310. package/dist/nile-tab-group/nile-tab-group.test.cjs.js.map +1 -1
  311. package/dist/nile-tab-group/nile-tab-group.test.esm.js +1 -1
  312. package/dist/nile-tag/index.cjs.js +1 -1
  313. package/dist/nile-tag/index.esm.js +1 -1
  314. package/dist/nile-tag/nile-tag.cjs.js +1 -1
  315. package/dist/nile-tag/nile-tag.cjs.js.map +1 -1
  316. package/dist/nile-tag/nile-tag.esm.js +1 -1
  317. package/dist/nile-textarea/nile-textarea.test.cjs.js +1 -1
  318. package/dist/nile-textarea/nile-textarea.test.esm.js +1 -1
  319. package/dist/nile-toast/index.cjs.js +1 -1
  320. package/dist/nile-toast/index.esm.js +1 -1
  321. package/dist/nile-toast/nile-toast.cjs.js +1 -1
  322. package/dist/nile-toast/nile-toast.cjs.js.map +1 -1
  323. package/dist/nile-toast/nile-toast.esm.js +2 -2
  324. package/dist/nile-tree/index.cjs.js +1 -1
  325. package/dist/nile-tree/index.esm.js +1 -1
  326. package/dist/nile-tree/nile-tree.cjs.js +1 -1
  327. package/dist/nile-tree/nile-tree.cjs.js.map +1 -1
  328. package/dist/nile-tree/nile-tree.esm.js +1 -1
  329. package/dist/nile-tree-item/index.cjs.js +1 -1
  330. package/dist/nile-tree-item/index.esm.js +1 -1
  331. package/dist/nile-tree-item/nile-tree-item.cjs.js +1 -1
  332. package/dist/nile-tree-item/nile-tree-item.cjs.js.map +1 -1
  333. package/dist/nile-tree-item/nile-tree-item.esm.js +3 -3
  334. package/dist/nile-vertical-stepper-item/nile-vertical-stepper-item.cjs.js +1 -1
  335. package/dist/nile-vertical-stepper-item/nile-vertical-stepper-item.cjs.js.map +1 -1
  336. package/dist/nile-vertical-stepper-item/nile-vertical-stepper-item.esm.js +8 -8
  337. package/dist/nile-virtual-select/index.cjs.js +1 -1
  338. package/dist/nile-virtual-select/index.esm.js +1 -1
  339. package/dist/nile-virtual-select/nile-virtual-select.cjs.js +5 -1
  340. package/dist/nile-virtual-select/nile-virtual-select.cjs.js.map +1 -1
  341. package/dist/nile-virtual-select/nile-virtual-select.css.cjs.js +1 -1
  342. package/dist/nile-virtual-select/nile-virtual-select.css.cjs.js.map +1 -1
  343. package/dist/nile-virtual-select/nile-virtual-select.css.esm.js +29 -1
  344. package/dist/nile-virtual-select/nile-virtual-select.esm.js +21 -13
  345. package/dist/nile-virtual-select/nile-virtual-select.test.cjs.js +1 -1
  346. package/dist/nile-virtual-select/nile-virtual-select.test.esm.js +1 -1
  347. package/dist/nile-virtual-select/renderer.cjs.js +1 -1
  348. package/dist/nile-virtual-select/renderer.cjs.js.map +1 -1
  349. package/dist/nile-virtual-select/renderer.esm.js +11 -10
  350. package/dist/nile-virtual-select/selection-manager.cjs.js +1 -1
  351. package/dist/nile-virtual-select/selection-manager.cjs.js.map +1 -1
  352. package/dist/nile-virtual-select/selection-manager.esm.js +1 -1
  353. package/dist/scopedElementsWrapper-31107e48.esm.js +1 -0
  354. package/dist/scopedElementsWrapper-c815042c.cjs.js +2 -0
  355. package/dist/scopedElementsWrapper-c815042c.cjs.js.map +1 -0
  356. package/dist/src/index.d.ts +7 -0
  357. package/dist/src/index.js +7 -0
  358. package/dist/src/index.js.map +1 -1
  359. package/dist/src/nile-button/nile-button.d.ts +1 -1
  360. package/dist/src/nile-button/nile-button.js +1 -1
  361. package/dist/src/nile-button/nile-button.js.map +1 -1
  362. package/dist/src/nile-checkbox/nile-checkbox.css.js +1 -1
  363. package/dist/src/nile-checkbox/nile-checkbox.css.js.map +1 -1
  364. package/dist/src/nile-grid/index.d.ts +1 -0
  365. package/dist/src/nile-grid/index.js +2 -0
  366. package/dist/src/nile-grid/index.js.map +1 -0
  367. package/dist/src/nile-grid/nile-grid.css.d.ts +9 -0
  368. package/dist/src/nile-grid/nile-grid.css.js +41 -0
  369. package/dist/src/nile-grid/nile-grid.css.js.map +1 -0
  370. package/dist/src/nile-grid/nile-grid.d.ts +50 -0
  371. package/dist/src/nile-grid/nile-grid.js +130 -0
  372. package/dist/src/nile-grid/nile-grid.js.map +1 -0
  373. package/dist/src/nile-grid/nile-grid.utils.d.ts +9 -0
  374. package/dist/src/nile-grid/nile-grid.utils.js +170 -0
  375. package/dist/src/nile-grid/nile-grid.utils.js.map +1 -0
  376. package/dist/src/nile-grid-body/index.d.ts +1 -0
  377. package/dist/src/nile-grid-body/index.js +2 -0
  378. package/dist/src/nile-grid-body/index.js.map +1 -0
  379. package/dist/src/nile-grid-body/nile-grid-body.css.d.ts +12 -0
  380. package/dist/src/nile-grid-body/nile-grid-body.css.js +22 -0
  381. package/dist/src/nile-grid-body/nile-grid-body.css.js.map +1 -0
  382. package/dist/src/nile-grid-body/nile-grid-body.d.ts +29 -0
  383. package/dist/src/nile-grid-body/nile-grid-body.js +43 -0
  384. package/dist/src/nile-grid-body/nile-grid-body.js.map +1 -0
  385. package/dist/src/nile-grid-cell-item/index.d.ts +1 -0
  386. package/dist/src/nile-grid-cell-item/index.js +2 -0
  387. package/dist/src/nile-grid-cell-item/index.js.map +1 -0
  388. package/dist/src/nile-grid-cell-item/nile-grid-cell-item.css.d.ts +12 -0
  389. package/dist/src/nile-grid-cell-item/nile-grid-cell-item.css.js +47 -0
  390. package/dist/src/nile-grid-cell-item/nile-grid-cell-item.css.js.map +1 -0
  391. package/dist/src/nile-grid-cell-item/nile-grid-cell-item.d.ts +36 -0
  392. package/dist/src/nile-grid-cell-item/nile-grid-cell-item.js +93 -0
  393. package/dist/src/nile-grid-cell-item/nile-grid-cell-item.js.map +1 -0
  394. package/dist/src/nile-grid-cell-item/nile-grid-cell-item.utils.d.ts +10 -0
  395. package/dist/src/nile-grid-cell-item/nile-grid-cell-item.utils.js +34 -0
  396. package/dist/src/nile-grid-cell-item/nile-grid-cell-item.utils.js.map +1 -0
  397. package/dist/src/nile-grid-head/index.d.ts +1 -0
  398. package/dist/src/nile-grid-head/index.js +2 -0
  399. package/dist/src/nile-grid-head/index.js.map +1 -0
  400. package/dist/src/nile-grid-head/nile-grid-head.css.d.ts +12 -0
  401. package/dist/src/nile-grid-head/nile-grid-head.css.js +19 -0
  402. package/dist/src/nile-grid-head/nile-grid-head.css.js.map +1 -0
  403. package/dist/src/nile-grid-head/nile-grid-head.d.ts +28 -0
  404. package/dist/src/nile-grid-head/nile-grid-head.js +41 -0
  405. package/dist/src/nile-grid-head/nile-grid-head.js.map +1 -0
  406. package/dist/src/nile-grid-head-item/index.d.ts +1 -0
  407. package/dist/src/nile-grid-head-item/index.js +2 -0
  408. package/dist/src/nile-grid-head-item/index.js.map +1 -0
  409. package/dist/src/nile-grid-head-item/nile-grid-head-item.css.d.ts +12 -0
  410. package/dist/src/nile-grid-head-item/nile-grid-head-item.css.js +46 -0
  411. package/dist/src/nile-grid-head-item/nile-grid-head-item.css.js.map +1 -0
  412. package/dist/src/nile-grid-head-item/nile-grid-head-item.d.ts +37 -0
  413. package/dist/src/nile-grid-head-item/nile-grid-head-item.js +100 -0
  414. package/dist/src/nile-grid-head-item/nile-grid-head-item.js.map +1 -0
  415. package/dist/src/nile-grid-head-item/nile-grid-head-item.utils.d.ts +10 -0
  416. package/dist/src/nile-grid-head-item/nile-grid-head-item.utils.js +34 -0
  417. package/dist/src/nile-grid-head-item/nile-grid-head-item.utils.js.map +1 -0
  418. package/dist/src/nile-grid-row/index.d.ts +1 -0
  419. package/dist/src/nile-grid-row/index.js +2 -0
  420. package/dist/src/nile-grid-row/index.js.map +1 -0
  421. package/dist/src/nile-grid-row/nile-grid-row.css.d.ts +12 -0
  422. package/dist/src/nile-grid-row/nile-grid-row.css.js +27 -0
  423. package/dist/src/nile-grid-row/nile-grid-row.css.js.map +1 -0
  424. package/dist/src/nile-grid-row/nile-grid-row.d.ts +29 -0
  425. package/dist/src/nile-grid-row/nile-grid-row.js +45 -0
  426. package/dist/src/nile-grid-row/nile-grid-row.js.map +1 -0
  427. package/dist/src/nile-icon/icons/svg/format_align_justify.d.ts +5 -0
  428. package/dist/src/nile-icon/icons/svg/format_align_justify.js +5 -0
  429. package/dist/src/nile-icon/icons/svg/format_align_justify.js.map +1 -0
  430. package/dist/src/nile-icon/icons/svg/format_align_left.d.ts +5 -0
  431. package/dist/src/nile-icon/icons/svg/format_align_left.js +5 -0
  432. package/dist/src/nile-icon/icons/svg/format_align_left.js.map +1 -0
  433. package/dist/src/nile-icon/icons/svg/format_align_middle.d.ts +5 -0
  434. package/dist/src/nile-icon/icons/svg/format_align_middle.js +5 -0
  435. package/dist/src/nile-icon/icons/svg/format_align_middle.js.map +1 -0
  436. package/dist/src/nile-icon/icons/svg/format_align_right.d.ts +5 -0
  437. package/dist/src/nile-icon/icons/svg/format_align_right.js +5 -0
  438. package/dist/src/nile-icon/icons/svg/format_align_right.js.map +1 -0
  439. package/dist/src/nile-icon/icons/svg/format_bold.d.ts +5 -0
  440. package/dist/src/nile-icon/icons/svg/format_bold.js +5 -0
  441. package/dist/src/nile-icon/icons/svg/format_bold.js.map +1 -0
  442. package/dist/src/nile-icon/icons/svg/format_clear.d.ts +5 -0
  443. package/dist/src/nile-icon/icons/svg/format_clear.js +5 -0
  444. package/dist/src/nile-icon/icons/svg/format_clear.js.map +1 -0
  445. package/dist/src/nile-icon/icons/svg/format_italic.d.ts +5 -0
  446. package/dist/src/nile-icon/icons/svg/format_italic.js +5 -0
  447. package/dist/src/nile-icon/icons/svg/format_italic.js.map +1 -0
  448. package/dist/src/nile-icon/icons/svg/format_list_bulleted.d.ts +5 -0
  449. package/dist/src/nile-icon/icons/svg/format_list_bulleted.js +5 -0
  450. package/dist/src/nile-icon/icons/svg/format_list_bulleted.js.map +1 -0
  451. package/dist/src/nile-icon/icons/svg/format_list_numbered.d.ts +5 -0
  452. package/dist/src/nile-icon/icons/svg/format_list_numbered.js +5 -0
  453. package/dist/src/nile-icon/icons/svg/format_list_numbered.js.map +1 -0
  454. package/dist/src/nile-icon/icons/svg/format_underline.d.ts +5 -0
  455. package/dist/src/nile-icon/icons/svg/format_underline.js +5 -0
  456. package/dist/src/nile-icon/icons/svg/format_underline.js.map +1 -0
  457. package/dist/src/nile-icon/icons/svg/image_2.d.ts +5 -0
  458. package/dist/src/nile-icon/icons/svg/image_2.js +5 -0
  459. package/dist/src/nile-icon/icons/svg/image_2.js.map +1 -0
  460. package/dist/src/nile-icon/icons/svg/index.d.ts +12 -0
  461. package/dist/src/nile-icon/icons/svg/index.js +12 -0
  462. package/dist/src/nile-icon/icons/svg/index.js.map +1 -1
  463. package/dist/src/nile-icon/icons/svg/link_2.d.ts +5 -0
  464. package/dist/src/nile-icon/icons/svg/link_2.js +5 -0
  465. package/dist/src/nile-icon/icons/svg/link_2.js.map +1 -0
  466. package/dist/src/nile-link/nile-link.css.js +1 -0
  467. package/dist/src/nile-link/nile-link.css.js.map +1 -1
  468. package/dist/src/nile-popover/nile-popover.js.map +1 -1
  469. package/dist/src/nile-rich-text-editor/index.d.ts +1 -0
  470. package/dist/src/nile-rich-text-editor/index.js +2 -0
  471. package/dist/src/nile-rich-text-editor/index.js.map +1 -0
  472. package/dist/src/nile-rich-text-editor/nile-rich-text-editor.css.d.ts +3 -0
  473. package/dist/src/nile-rich-text-editor/nile-rich-text-editor.css.js +152 -0
  474. package/dist/src/nile-rich-text-editor/nile-rich-text-editor.css.js.map +1 -0
  475. package/dist/src/nile-rich-text-editor/nile-rich-text-editor.d.ts +63 -0
  476. package/dist/src/nile-rich-text-editor/nile-rich-text-editor.js +734 -0
  477. package/dist/src/nile-rich-text-editor/nile-rich-text-editor.js.map +1 -0
  478. package/dist/src/nile-rich-text-editor/nile-rte-color.d.ts +20 -0
  479. package/dist/src/nile-rich-text-editor/nile-rte-color.js +188 -0
  480. package/dist/src/nile-rich-text-editor/nile-rte-color.js.map +1 -0
  481. package/dist/src/nile-rich-text-editor/nile-rte-divider.d.ts +10 -0
  482. package/dist/src/nile-rich-text-editor/nile-rte-divider.js +12 -0
  483. package/dist/src/nile-rich-text-editor/nile-rte-divider.js.map +1 -0
  484. package/dist/src/nile-rich-text-editor/nile-rte-link.d.ts +19 -0
  485. package/dist/src/nile-rich-text-editor/nile-rte-link.js +169 -0
  486. package/dist/src/nile-rich-text-editor/nile-rte-link.js.map +1 -0
  487. package/dist/src/nile-rich-text-editor/nile-rte-mentions-item.d.ts +18 -0
  488. package/dist/src/nile-rich-text-editor/nile-rte-mentions-item.js +52 -0
  489. package/dist/src/nile-rich-text-editor/nile-rte-mentions-item.js.map +1 -0
  490. package/dist/src/nile-rich-text-editor/nile-rte-mentions.d.ts +64 -0
  491. package/dist/src/nile-rich-text-editor/nile-rte-mentions.js +544 -0
  492. package/dist/src/nile-rich-text-editor/nile-rte-mentions.js.map +1 -0
  493. package/dist/src/nile-rich-text-editor/nile-rte-preview.d.ts +10 -0
  494. package/dist/src/nile-rich-text-editor/nile-rte-preview.js +12 -0
  495. package/dist/src/nile-rich-text-editor/nile-rte-preview.js.map +1 -0
  496. package/dist/src/nile-rich-text-editor/nile-rte-select.d.ts +33 -0
  497. package/dist/src/nile-rich-text-editor/nile-rte-select.js +228 -0
  498. package/dist/src/nile-rich-text-editor/nile-rte-select.js.map +1 -0
  499. package/dist/src/nile-rich-text-editor/nile-rte-toolbar-item.d.ts +12 -0
  500. package/dist/src/nile-rich-text-editor/nile-rte-toolbar-item.js +23 -0
  501. package/dist/src/nile-rich-text-editor/nile-rte-toolbar-item.js.map +1 -0
  502. package/dist/src/nile-rich-text-editor/nile-rte-toolbar.d.ts +10 -0
  503. package/dist/src/nile-rich-text-editor/nile-rte-toolbar.js +12 -0
  504. package/dist/src/nile-rich-text-editor/nile-rte-toolbar.js.map +1 -0
  505. package/dist/src/nile-rich-text-editor/utils.d.ts +13 -0
  506. package/dist/src/nile-rich-text-editor/utils.js +538 -0
  507. package/dist/src/nile-rich-text-editor/utils.js.map +1 -0
  508. package/dist/src/nile-select/nile-select.css.js +1 -1
  509. package/dist/src/nile-select/nile-select.css.js.map +1 -1
  510. package/dist/src/nile-select/nile-select.d.ts +5 -0
  511. package/dist/src/nile-select/nile-select.js +32 -2
  512. package/dist/src/nile-select/nile-select.js.map +1 -1
  513. package/dist/src/nile-select/virtual-scroll-helper.js +2 -0
  514. package/dist/src/nile-select/virtual-scroll-helper.js.map +1 -1
  515. package/dist/src/nile-stepper-item/nile-stepper-item.js +5 -5
  516. package/dist/src/nile-stepper-item/nile-stepper-item.js.map +1 -1
  517. package/dist/src/nile-vertical-stepper-item/nile-vertical-stepper-item.js +4 -4
  518. package/dist/src/nile-vertical-stepper-item/nile-vertical-stepper-item.js.map +1 -1
  519. package/dist/src/nile-virtual-select/nile-virtual-select.css.js +29 -1
  520. package/dist/src/nile-virtual-select/nile-virtual-select.css.js.map +1 -1
  521. package/dist/src/nile-virtual-select/nile-virtual-select.d.ts +22 -1
  522. package/dist/src/nile-virtual-select/nile-virtual-select.js +148 -23
  523. package/dist/src/nile-virtual-select/nile-virtual-select.js.map +1 -1
  524. package/dist/src/nile-virtual-select/renderer.d.ts +2 -2
  525. package/dist/src/nile-virtual-select/renderer.js +9 -8
  526. package/dist/src/nile-virtual-select/renderer.js.map +1 -1
  527. package/dist/src/nile-virtual-select/selection-manager.js +1 -1
  528. package/dist/src/nile-virtual-select/selection-manager.js.map +1 -1
  529. package/dist/tsconfig.tsbuildinfo +1 -1
  530. package/package.json +11 -4
  531. package/src/index.ts +8 -1
  532. package/src/nile-button/nile-button.ts +1 -1
  533. package/src/nile-checkbox/nile-checkbox.css.ts +1 -1
  534. package/src/nile-grid/index.ts +1 -0
  535. package/src/nile-grid/nile-grid.css.ts +43 -0
  536. package/src/nile-grid/nile-grid.ts +185 -0
  537. package/src/nile-grid/nile-grid.utils.ts +252 -0
  538. package/src/nile-grid-body/index.ts +1 -0
  539. package/src/nile-grid-body/nile-grid-body.css.ts +24 -0
  540. package/src/nile-grid-body/nile-grid-body.ts +51 -0
  541. package/src/nile-grid-cell-item/index.ts +1 -0
  542. package/src/nile-grid-cell-item/nile-grid-cell-item.css.ts +49 -0
  543. package/src/nile-grid-cell-item/nile-grid-cell-item.ts +98 -0
  544. package/src/nile-grid-cell-item/nile-grid-cell-item.utils.ts +65 -0
  545. package/src/nile-grid-head/index.ts +1 -0
  546. package/src/nile-grid-head/nile-grid-head.css.ts +21 -0
  547. package/src/nile-grid-head/nile-grid-head.ts +50 -0
  548. package/src/nile-grid-head-item/index.ts +1 -0
  549. package/src/nile-grid-head-item/nile-grid-head-item.css.ts +48 -0
  550. package/src/nile-grid-head-item/nile-grid-head-item.ts +111 -0
  551. package/src/nile-grid-head-item/nile-grid-head-item.utils.ts +66 -0
  552. package/src/nile-grid-row/index.ts +1 -0
  553. package/src/nile-grid-row/nile-grid-row.css.ts +29 -0
  554. package/src/nile-grid-row/nile-grid-row.ts +53 -0
  555. package/src/nile-icon/icons/svg/format_align_justify.ts +5 -0
  556. package/src/nile-icon/icons/svg/format_align_left.ts +5 -0
  557. package/src/nile-icon/icons/svg/format_align_middle.ts +5 -0
  558. package/src/nile-icon/icons/svg/format_align_right.ts +5 -0
  559. package/src/nile-icon/icons/svg/format_bold.ts +5 -0
  560. package/src/nile-icon/icons/svg/format_clear.ts +5 -0
  561. package/src/nile-icon/icons/svg/format_italic.ts +5 -0
  562. package/src/nile-icon/icons/svg/format_list_bulleted.ts +5 -0
  563. package/src/nile-icon/icons/svg/format_list_numbered.ts +5 -0
  564. package/src/nile-icon/icons/svg/format_underline.ts +5 -0
  565. package/src/nile-icon/icons/svg/image_2.ts +5 -0
  566. package/src/nile-icon/icons/svg/index.ts +12 -0
  567. package/src/nile-icon/icons/svg/link_2.ts +5 -0
  568. package/src/nile-link/nile-link.css.ts +1 -0
  569. package/src/nile-popover/nile-popover.ts +0 -1
  570. package/src/nile-rich-text-editor/index.ts +1 -0
  571. package/src/nile-rich-text-editor/nile-rich-text-editor.css.ts +154 -0
  572. package/src/nile-rich-text-editor/nile-rich-text-editor.ts +835 -0
  573. package/src/nile-rich-text-editor/nile-rte-color.ts +189 -0
  574. package/src/nile-rich-text-editor/nile-rte-divider.ts +9 -0
  575. package/src/nile-rich-text-editor/nile-rte-link.ts +161 -0
  576. package/src/nile-rich-text-editor/nile-rte-mentions-item.ts +45 -0
  577. package/src/nile-rich-text-editor/nile-rte-mentions.ts +618 -0
  578. package/src/nile-rich-text-editor/nile-rte-preview.ts +9 -0
  579. package/src/nile-rich-text-editor/nile-rte-select.ts +249 -0
  580. package/src/nile-rich-text-editor/nile-rte-toolbar-item.ts +13 -0
  581. package/src/nile-rich-text-editor/nile-rte-toolbar.ts +9 -0
  582. package/src/nile-rich-text-editor/utils.ts +643 -0
  583. package/src/nile-select/nile-select.css.ts +1 -1
  584. package/src/nile-select/nile-select.ts +30 -2
  585. package/src/nile-select/virtual-scroll-helper.ts +2 -0
  586. package/src/nile-stepper-item/nile-stepper-item.ts +5 -5
  587. package/src/nile-vertical-stepper-item/nile-vertical-stepper-item.ts +4 -4
  588. package/src/nile-virtual-select/nile-virtual-select.css.ts +29 -1
  589. package/src/nile-virtual-select/nile-virtual-select.ts +158 -27
  590. package/src/nile-virtual-select/renderer.ts +10 -8
  591. package/src/nile-virtual-select/selection-manager.ts +1 -1
  592. package/vscode-html-custom-data.json +363 -34
  593. package/dist/scopedElementsWrapper-4c29be11.esm.js +0 -7
  594. package/dist/scopedElementsWrapper-a112fc73.cjs.js +0 -6
  595. package/dist/scopedElementsWrapper-a112fc73.cjs.js.map +0 -1
@@ -40,6 +40,7 @@ import '../nile-virtual-select/nile-virtual-select';
40
40
  import { VirtualScrollHelper } from './virtual-scroll-helper';
41
41
  import NileOptionGroup from '../nile-option-group/nile-option-group';
42
42
  import { GroupAttributes } from './nile-select.interface';
43
+ import { ResizeController } from '@lit-labs/observers/resize-controller.js';
43
44
 
44
45
  type NileRemoveEvent = CustomEvent<Record<PropertyKey, never>>;
45
46
 
@@ -120,6 +121,7 @@ export class NileSelect extends NileElement implements NileFormControl{
120
121
  private scrollTimeout: number | undefined;
121
122
  private scrolling = false;
122
123
  private options: NileOption[] = [];
124
+ private resizeController?: ResizeController;
123
125
 
124
126
  @query('.select') popup: NilePopup;
125
127
  @query('.select__combobox') combobox: HTMLSlotElement;
@@ -191,6 +193,7 @@ export class NileSelect extends NileElement implements NileFormControl{
191
193
 
192
194
  @property({ attribute: true, reflect: true }) helpText = '';
193
195
  @property({ attribute: 'help-text', reflect: true }) help_text = '';
196
+ @property({ type: Boolean, attribute: true, reflect: true }) autoResize = false;
194
197
 
195
198
  @property({ attribute: 'error-message', reflect: true }) errorMessage = '';
196
199
 
@@ -274,6 +277,9 @@ export class NileSelect extends NileElement implements NileFormControl{
274
277
  /** To auto focus the search input when the select is opened */
275
278
  @property({ type: Boolean, reflect: true, attribute: true }) autoFocusSearch = false;
276
279
 
280
+ /** loading indicator for virtual select */
281
+ @property({ type: Boolean, reflect: true, attribute: true }) loading = false;
282
+
277
283
  /** Gets the validity state object */
278
284
  get validity() {
279
285
  return this.valueInput?.validity;
@@ -315,10 +321,30 @@ export class NileSelect extends NileElement implements NileFormControl{
315
321
  this.emit('nile-destroy');
316
322
  }
317
323
 
324
+ private setupResizeObserver() {
325
+ if (this.autoResize) {
326
+ const tagsContainer = this.shadowRoot?.querySelector('.select__tags');
327
+ if (tagsContainer) {
328
+ this.resizeController = new ResizeController(this, {
329
+ callback: () => this.calculateTotalWidthOfTags()
330
+ });
331
+ this.resizeController.observe(tagsContainer);
332
+ }
333
+ } else {
334
+ this.resizeController?.unobserve?.(
335
+ this.shadowRoot?.querySelector('.select__tags') as Element
336
+ );
337
+ this.resizeController = undefined;
338
+ }
339
+ }
340
+
318
341
  protected updated(_changedProperties: PropertyValues): void {
319
342
  if(_changedProperties.has('multiple')) {
320
343
  this.setCheckBoxInOption(this.multiple as boolean);
321
344
  }
345
+ if (_changedProperties.has('autoResize')) {
346
+ this.setupResizeObserver();
347
+ }
322
348
  }
323
349
 
324
350
  protected firstUpdated(_changedProperties: PropertyValues): void {
@@ -326,6 +352,7 @@ export class NileSelect extends NileElement implements NileFormControl{
326
352
  this.handleGroupSearchChange();
327
353
  }
328
354
 
355
+ this.setupResizeObserver();
329
356
  if(_changedProperties.has('multiple')) {
330
357
  this.setCheckBoxInOption(this.multiple as boolean);
331
358
  }
@@ -945,8 +972,9 @@ export class NileSelect extends NileElement implements NileFormControl{
945
972
  const allOptions = this.getAllOptions();
946
973
  const value = Array.isArray(this.value) ? this.value : [this.value];
947
974
 
948
- // Select only the options that match the new value
949
- this.setSelectedOptions(allOptions.filter(el => value.includes(el.value)));
975
+ if(!this.enableVirtualScroll) {
976
+ this.setSelectedOptions(allOptions.filter(el => value.includes(el.value)));
977
+ }
950
978
  }
951
979
 
952
980
  @watch('open', { waitUntilFirstUpdate: true })
@@ -19,6 +19,7 @@ export class VirtualScrollHelper {
19
19
  <nile-virtual-select
20
20
  .name=${component.name}
21
21
  .value=${component.value}
22
+ .autoResize=${component.autoResize}
22
23
  .placeholder=${component.placeholder}
23
24
  .size=${component.size}
24
25
  .searchEnabled=${component.searchEnabled}
@@ -48,6 +49,7 @@ export class VirtualScrollHelper {
48
49
  .maxOptionsVisible=${component.maxOptionsVisible}
49
50
  .data=${component.data}
50
51
  .open=${component.open}
52
+ .loading=${component.loading}
51
53
  exportparts="
52
54
  select-options,
53
55
  select-no-results,
@@ -103,8 +103,8 @@ export class NileStepperItem extends NileElement {
103
103
 
104
104
  <div part="bulletin" class=${classMap({ 'stepper__item__bulletin':true, 'stepper__item__bulletin--inline': !this.contentBelow })}>
105
105
  ${showCompletedIcon ?
106
- html`<div class="${classMap({ 'stepper__bulletin--icon':true, 'stepper__bulletin__icon--active':isCurrent })}">${this.getSvg()}</div>`
107
- : html`<div class="${classMap({ 'stepper__bulletin--dot':true, 'stepper__bulletin__dot--active':isCurrent })}"></div>`
106
+ html`<div part="bulletin-icon" class="${classMap({ 'stepper__bulletin--icon':true, 'stepper__bulletin__icon--active':isCurrent })}">${this.getSvg()}</div>`
107
+ : html`<div part="bulletin-dot" class="${classMap({ 'stepper__bulletin--dot':true, 'stepper__bulletin__dot--active':isCurrent })}"></div>`
108
108
  }
109
109
  </div>
110
110
 
@@ -115,7 +115,7 @@ export class NileStepperItem extends NileElement {
115
115
  ${this.contentBelow || !this.title ? nothing:html`
116
116
 
117
117
  <div part="content-above" class="stepper__item__content--above">
118
- <div class="${classMap({ 'stepper__content__title':true, 'stepper__content__title--active':isCurrent })}">
118
+ <div part="title_above" class="${classMap({ 'stepper__content__title':true, 'stepper__content__title--active':isCurrent })}">
119
119
  ${this.title}
120
120
  </div>
121
121
  <div class="${classMap({ 'stepper__content__subtitle':true, 'stepper__content__subtitle--active':isCurrent })}">${this.subtitle}</div>
@@ -132,10 +132,10 @@ export class NileStepperItem extends NileElement {
132
132
  ${this.contentBelow?
133
133
  html`
134
134
  <div part="content-below" class="stepper__item__content--below">
135
- <div part="title" class="${classMap({ 'stepper__content__title':true, 'stepper__content__title--active':isCurrent })}">
135
+ <div part="title_below" class="${classMap({ 'stepper__content__title':true, 'stepper__content__title--active':isCurrent })}">
136
136
  ${this.title}
137
137
  </div>
138
- <div part="subtitle" class="${classMap({ 'stepper__content__subtitle':true, 'stepper__content__subtitle--active':isCurrent })}">${this.subtitle}</div>
138
+ <div part="subtitle_below" class="${classMap({ 'stepper__content__subtitle':true, 'stepper__content__subtitle--active':isCurrent })}">${this.subtitle}</div>
139
139
  </div>
140
140
  `:nothing}
141
141
  </div>
@@ -88,12 +88,12 @@ export class NileVerticalStepperItem extends NileElement {
88
88
  <div part="connector" class="stepper-item__connector-content">
89
89
  <div part="bulletin" class="stepper__item__bulletin">
90
90
  ${showCompletedIcon ?
91
- html`<div class="${classMap({ 'stepper__bulletin--icon':true, 'stepper__bulletin__icon--active':isCurrent })}">${this.getSvg()}</div>`
92
- : html`<div class="${classMap({ 'stepper__bulletin--dot':true, 'stepper__bulletin__dot--active':isCurrent })}"></div>`
91
+ html`<div part="bulletin-icon" class="${classMap({ 'stepper__bulletin--icon':true, 'stepper__bulletin__icon--active':isCurrent })}">${this.getSvg()}</div>`
92
+ : html`<div part="bulletin-dot" class="${classMap({ 'stepper__bulletin--dot':true, 'stepper__bulletin__dot--active':isCurrent })}"></div>`
93
93
  }
94
94
  </div>
95
- <div class="stepper__item__line__container">
96
- ${this.isLast?nothing : html`<div class="${classMap({ 'stepper__item__line':true, 'stepper__item__line--active':suffixStepperLineActive })}"></div>`}
95
+ <div part="line-container" class="stepper__item__line__container">
96
+ ${this.isLast?nothing : html`<div part="line" class="${classMap({ 'stepper__item__line':true, 'stepper__item__line--active':suffixStepperLineActive })}"></div>`}
97
97
  </div>
98
98
  </div>
99
99
  <div part="content" class="stepper__item__content">
@@ -438,7 +438,7 @@ export const styles = css`
438
438
  position: sticky;
439
439
  bottom: 0px;
440
440
  background: var(--nile-colors-neutral-100, var(--ng-colors-bg-secondary));
441
- border: 1px solid var(--nile-colors-neutral-400, var(--ng-colors-border-secondary));
441
+ border-top: 1px solid var(--nile-colors-neutral-400, var(--ng-colors-border-secondary));
442
442
  display: flex;
443
443
  height: 15px;
444
444
  /* Auto layout */
@@ -503,6 +503,34 @@ export const styles = css`
503
503
  .virtualized nile-option[selected]::part(base) {
504
504
  color: var(--nile-colors-primary-600, var(--ng-colors-text-brand-secondary-700));
505
505
  }
506
+
507
+ .virtual-select-loader {
508
+ position: absolute;
509
+ display: flex;
510
+ justify-content: center;
511
+ align-items: center;
512
+ width: 100%;
513
+ height: 75%;
514
+ }
515
+
516
+ .select__footer.loading, .select__options.loading {
517
+ opacity: 0.5;
518
+ pointer-events: none;
519
+ }
520
+
521
+ .virtual-select-loader {
522
+ position: absolute;
523
+ display: flex;
524
+ justify-content: center;
525
+ align-items: center;
526
+ width: 100%;
527
+ height: 75%;
528
+ }
529
+
530
+ .select__footer.loading, .select__options.loading {
531
+ opacity: 0.5;
532
+ pointer-events: none;
533
+ }
506
534
  `;
507
535
 
508
536
  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';
@@ -39,6 +40,7 @@ import type { VirtualOption, NileRemoveEvent, RenderItemConfig } from './types.j
39
40
  import { VirtualSelectSelectionManager } from './selection-manager.js';
40
41
  import { VirtualSelectSearchManager } from './search-manager.js';
41
42
  import { VirtualSelectRenderer } from './renderer.js';
43
+ import { ResizeController } from '@lit-labs/observers/resize-controller.js';
42
44
 
43
45
  /**
44
46
  * Nile Virtual Select component.
@@ -73,6 +75,10 @@ import { VirtualSelectRenderer } from './renderer.js';
73
75
  * @event nile-hide - Emitted when the select's menu closes.
74
76
  * @event nile-after-hide - Emitted after the select's menu closes and all animations are complete.
75
77
  * @event nile-invalid - Emitted when the form control has been checked for validity and its constraints aren't satisfied.
78
+ * @event nile-search - Emitted when the user types in the search input. The event payload includes the search query for backend search functionality.
79
+ * @event nile-scroll - Emitted when the user scrolls within the virtualized container. The event payload includes scroll position information.
80
+ * @event nile-scroll-start - Emitted when the user starts scrolling within the virtualized container.
81
+ * @event nile-scroll-end - Emitted when the user stops scrolling and reaches the bottom of the virtualized container (debounced).
76
82
  *
77
83
  * @csspart form-control - The form control that wraps the label, input, and help text.
78
84
  * @csspart form-control-label - The label's wrapper.
@@ -111,6 +117,9 @@ export class NileVirtualSelect extends NileElement implements NileFormControl {
111
117
  @state() displayLabel = '';
112
118
  @state() selectedOptions: VirtualOption[] = [];
113
119
  @state() oldValue: string | string[] = '';
120
+
121
+ private scrollTimeout: number | undefined;
122
+ private scrolling = false;
114
123
 
115
124
  /** The name of the select, submitted as a name/value pair with form data. */
116
125
  @property() name = '';
@@ -141,6 +150,9 @@ export class NileVirtualSelect extends NileElement implements NileFormControl {
141
150
  /** Placeholder text to show as a hint when the select is empty. */
142
151
  @property() placeholder = 'Select...';
143
152
 
153
+ /** Enable automatic resizing of tags area */
154
+ @property({ type: Boolean }) autoResize = false;
155
+
144
156
  /** Current search value */
145
157
  @state() searchValue: string = '';
146
158
 
@@ -156,6 +168,9 @@ export class NileVirtualSelect extends NileElement implements NileFormControl {
156
168
  /** Show loading state */
157
169
  @property({ type: Boolean, reflect: true }) optionsLoading = false;
158
170
 
171
+ /** Show loading state using nile-loader */
172
+ @property({ type: Boolean, reflect: true, attribute: true }) loading = false;
173
+
159
174
  /** Allows more than one option to be selected. */
160
175
  @property({ type: Boolean, reflect: true }) multiple = false;
161
176
 
@@ -240,6 +255,7 @@ export class NileVirtualSelect extends NileElement implements NileFormControl {
240
255
  maxOptionsVisible = 3;
241
256
 
242
257
  @state() oldMaxOptionsVisible: number = 1;
258
+ @state() showListbox: boolean = false;
243
259
 
244
260
  /** Gets the validity state object */
245
261
  get validity() {
@@ -265,6 +281,25 @@ export class NileVirtualSelect extends NileElement implements NileFormControl {
265
281
 
266
282
  disconnectedCallback() {
267
283
  this.removeOpenListeners();
284
+ // Clear any pending scroll timeout to prevent memory leaks
285
+ if (this.scrollTimeout) {
286
+ clearTimeout(this.scrollTimeout);
287
+ this.scrollTimeout = undefined;
288
+ }
289
+ }
290
+
291
+ protected updated(changedProperties: PropertyValues): void {
292
+ if(changedProperties.has('value')) {
293
+ this.selectionChanged();
294
+ }
295
+ if (changedProperties.has('autoResize')) {
296
+ const tagsDiv = this.shadowRoot?.querySelector('.select__tags') as HTMLElement;
297
+ if (this.autoResize && tagsDiv) {
298
+ this.resizeController.observe(tagsDiv);
299
+ } else if (tagsDiv) {
300
+ this.resizeController.unobserve(tagsDiv);
301
+ }
302
+ }
268
303
  }
269
304
 
270
305
  private initializeComponent(): void {
@@ -307,18 +342,21 @@ export class NileVirtualSelect extends NileElement implements NileFormControl {
307
342
  this.handleDocumentFocusIn = this.handleDocumentFocusIn.bind(this);
308
343
  this.handleDocumentKeyDown = this.handleDocumentKeyDown.bind(this);
309
344
  this.handleDocumentMouseDown = this.handleDocumentMouseDown.bind(this);
345
+ this.handleWindowError = this.handleWindowError.bind(this);
310
346
  }
311
347
 
312
348
  private addOpenListeners(): void {
313
349
  document.addEventListener('focusin', this.handleDocumentFocusIn);
314
350
  document.addEventListener('keydown', this.handleDocumentKeyDown);
315
351
  document.addEventListener('mousedown', this.handleDocumentMouseDown);
352
+ window.addEventListener('error', this.handleWindowError);
316
353
  }
317
354
 
318
355
  private removeOpenListeners(): void {
319
356
  document.removeEventListener('focusin', this.handleDocumentFocusIn);
320
357
  document.removeEventListener('keydown', this.handleDocumentKeyDown);
321
358
  document.removeEventListener('mousedown', this.handleDocumentMouseDown);
359
+ window.removeEventListener('error', this.handleWindowError);
322
360
  }
323
361
 
324
362
  private handleFocus(): void {
@@ -405,6 +443,19 @@ export class NileVirtualSelect extends NileElement implements NileFormControl {
405
443
  }
406
444
  };
407
445
 
446
+ /**
447
+ * This is a workaround for an error in the Lit Labs virtualizer.
448
+ * Since there are no specific guidelines available to fix the issue,
449
+ * we are catching only the error message related to the virtualizer.
450
+ */
451
+ private handleWindowError = (event: ErrorEvent): void => {
452
+ const errorMessage = event.error?.message || event.message || '';
453
+ if (errorMessage.includes('Cannot read properties of null (reading \'insertBefore\')')) {
454
+ event.preventDefault();
455
+ return;
456
+ }
457
+ };
458
+
408
459
  private handleFooterClick(event: MouseEvent): void {
409
460
  event.stopPropagation();
410
461
  event.preventDefault();
@@ -420,9 +471,10 @@ export class NileVirtualSelect extends NileElement implements NileFormControl {
420
471
 
421
472
  if (this.showSelected) {
422
473
  const selectedValues = Array.isArray(this.value) ? this.value : [this.value];
423
- this.data = this.originalOptionItems.filter((item: any) =>
424
- selectedValues.includes(item.value)
425
- );
474
+ this.data = this.originalOptionItems.filter((item: any) => {
475
+ const itemValue = this.getItemValue(item);
476
+ return selectedValues.some(val => String(val) === String(itemValue));
477
+ });
426
478
  } else {
427
479
  this.data = [...this.originalOptionItems];
428
480
  }
@@ -456,6 +508,16 @@ export class NileVirtualSelect extends NileElement implements NileFormControl {
456
508
  this.open = !this.open;
457
509
  }
458
510
 
511
+ private resizeController = new ResizeController(this, {
512
+ callback: (entries: ResizeObserverEntry[]) => {
513
+ for (const entry of entries) {
514
+ if (entry.target.classList.contains('select__tags')) {
515
+ this.calculateTotalWidthOfTags();
516
+ }
517
+ }
518
+ }
519
+ });
520
+
459
521
  private shouldIgnoreComboboxClick(event: MouseEvent): boolean {
460
522
  const path = event.composedPath();
461
523
  const isIconButton = path.some(
@@ -617,6 +679,7 @@ export class NileVirtualSelect extends NileElement implements NileFormControl {
617
679
 
618
680
  this.calculateTotalWidthOfTags();
619
681
  }
682
+
620
683
 
621
684
  handleSearchFocus(): void {
622
685
  document.removeEventListener('keydown', this.handleDocumentKeyDown);
@@ -628,9 +691,65 @@ export class NileVirtualSelect extends NileElement implements NileFormControl {
628
691
 
629
692
  handleSearchChange(e: any): void {
630
693
  this.searchValue = e.detail.value;
694
+
695
+ this.emit('nile-search', {
696
+ query: this.searchValue,
697
+ name: this.name
698
+ });
699
+
631
700
  if (!this.disableLocalSearch) {
632
701
  this.filterVirtualOptions(this.searchValue);
633
702
  this.resetScrollPosition();
703
+ this.updateComplete.then(() => {
704
+ const virtualized = this.shadowRoot?.querySelector('.virtualized') as HTMLElement;
705
+ if (virtualized) {
706
+ if (this.data.length <= 5) {
707
+ virtualized.classList.add('no-scroll');
708
+ } else {
709
+ virtualized.classList.remove('no-scroll');
710
+ }
711
+ }
712
+ });
713
+ }
714
+ }
715
+
716
+ handleScroll(e: Event): void {
717
+ if(this.showSelected) {
718
+ return;
719
+ }
720
+
721
+ const target = e.target as HTMLElement;
722
+
723
+ this.emit('nile-scroll', {
724
+ scrollTop: target.scrollTop,
725
+ scrollLeft: target.scrollLeft,
726
+ name: this.name
727
+ });
728
+
729
+ if (!this.scrolling) {
730
+ this.scrolling = true;
731
+ this.emit('nile-scroll-start', {
732
+ scrollTop: target.scrollTop,
733
+ scrollLeft: target.scrollLeft,
734
+ name: this.name
735
+ });
736
+ }
737
+
738
+ clearTimeout(this.scrollTimeout);
739
+ this.scrollTimeout = window.setTimeout(() => {
740
+ if (this.scrolling) {
741
+ this.scrolling = false;
742
+ }
743
+ }, 300);
744
+
745
+ const isAtBottom = Math.ceil(target.scrollTop) >= Math.floor(target.scrollHeight - target.offsetHeight);
746
+ if (isAtBottom && !this.searchValue) {
747
+ this.emit('nile-scroll-end', {
748
+ scrollTop: target.scrollTop,
749
+ scrollLeft: target.scrollLeft,
750
+ name: this.name,
751
+ isAtBottom: true
752
+ });
634
753
  }
635
754
  }
636
755
 
@@ -670,18 +789,18 @@ export class NileVirtualSelect extends NileElement implements NileFormControl {
670
789
 
671
790
  @watch('data', { waitUntilFirstUpdate: true })
672
791
  handleDataChange(): void {
792
+ if (this.data.length > 0 && this.open && !this.showSelected && !this.searchValue) {
793
+ this.originalOptionItems = [...this.data];
794
+ }
795
+
673
796
  this.selectionChanged();
674
797
  // Show no results message when data is empty and not loading
675
- if (!this.optionsLoading && this.data.length === 0) {
798
+ if (!this.optionsLoading && !this.loading && this.data.length === 0) {
676
799
  this.showNoResults = true;
677
800
  } else if (this.data.length > 0) {
678
801
  this.showNoResults = false;
679
802
  }
680
803
  this.requestUpdate();
681
-
682
- if (this.open) {
683
- this.resetScrollPosition();
684
- }
685
804
  }
686
805
 
687
806
  @watch('renderItemConfig', { waitUntilFirstUpdate: true })
@@ -705,8 +824,10 @@ export class NileVirtualSelect extends NileElement implements NileFormControl {
705
824
  async handleOpenChange(): Promise<void> {
706
825
  if (this.open && !this.disabled) {
707
826
  await this.handleOpen();
827
+ this.showListbox = true;
708
828
  } else {
709
829
  await this.handleClose();
830
+ this.showListbox = false;
710
831
  }
711
832
  }
712
833
 
@@ -745,7 +866,7 @@ export class NileVirtualSelect extends NileElement implements NileFormControl {
745
866
  }
746
867
 
747
868
  private initializeOriginalItems(): void {
748
- if (this.originalOptionItems.length === 0 && this.data.length > 0) {
869
+ if (this.data.length > 0) {
749
870
  this.originalOptionItems = [...this.data];
750
871
  }
751
872
  }
@@ -893,7 +1014,7 @@ export class NileVirtualSelect extends NileElement implements NileFormControl {
893
1014
  >
894
1015
  ${this.renderCustomSelect(hasCustomSelect)}
895
1016
  ${this.renderCombobox(hasCustomSelect, hasClearIcon)}
896
- ${this.renderListbox()}
1017
+ ${this.showListbox ? this.renderListbox() : html``}
897
1018
  </nile-popup>
898
1019
  `;
899
1020
  }
@@ -1125,17 +1246,26 @@ export class NileVirtualSelect extends NileElement implements NileFormControl {
1125
1246
  }
1126
1247
 
1127
1248
  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="var(--nile-icon-button-loading-blue, var(--ng-icon-button-loading-blue))"
1134
- method="var(--nile-svg-method-fill, var(--ng-svg-method-stroke))"
1135
- ></nile-icon>
1136
- </span>
1137
- `
1138
- : html``;
1249
+ if (this.loading) {
1250
+ return html`
1251
+ <span part="loader" class="virtual-select-loader">
1252
+ <nile-loader size="sm"></nile-loader>
1253
+ </span>
1254
+ `;
1255
+ }
1256
+
1257
+ if (this.optionsLoading) {
1258
+ return html`
1259
+ <span part="loader" class="select__loader">
1260
+ <nile-icon
1261
+ class="select__loader--icon"
1262
+ name="button-loading-blue"
1263
+ ></nile-icon>
1264
+ </span>
1265
+ `;
1266
+ }
1267
+
1268
+ return html``;
1139
1269
  }
1140
1270
 
1141
1271
  private renderFooter(): TemplateResult {
@@ -1143,7 +1273,7 @@ export class NileVirtualSelect extends NileElement implements NileFormControl {
1143
1273
  ? html`
1144
1274
  <div
1145
1275
  part="footer"
1146
- class="select__footer"
1276
+ class="select__footer ${this.loading ? 'loading' : ''}"
1147
1277
  @click="${this.handleFooterClick}"
1148
1278
  >
1149
1279
  <span
@@ -1198,7 +1328,8 @@ export class NileVirtualSelect extends NileElement implements NileFormControl {
1198
1328
  this.renderItemConfig?.getValue,
1199
1329
  this.showNoResults,
1200
1330
  this.noResultsMessage,
1201
- this.optionsLoading
1331
+ this.optionsLoading || this.loading,
1332
+ this.handleScroll.bind(this)
1202
1333
  );
1203
1334
  }
1204
1335
 
@@ -1273,16 +1404,16 @@ export class NileVirtualSelect extends NileElement implements NileFormControl {
1273
1404
 
1274
1405
  private resetScrollPosition(): void {
1275
1406
  this.updateComplete.then(() => {
1276
- if (this.virtualizedContainer) {
1407
+ if (this.virtualizedContainer && this.virtualizedContainer.isConnected) {
1277
1408
  this.virtualizedContainer.scrollTop = 0;
1278
1409
 
1279
1410
  const listbox = this.shadowRoot?.querySelector('.select__listbox') as HTMLElement;
1280
- if (listbox) {
1411
+ if (listbox && listbox.isConnected) {
1281
1412
  listbox.scrollTop = 0;
1282
1413
  }
1283
1414
 
1284
1415
  const virtualizer = this.virtualizedContainer.querySelector('lit-virtualizer') as HTMLElement;
1285
- if (virtualizer) {
1416
+ if (virtualizer && virtualizer.isConnected) {
1286
1417
  virtualizer.scrollTop = 0;
1287
1418
  }
1288
1419
  }
@@ -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;