@eui/components 19.1.1-snapshot-1740477848147 → 19.1.1-snapshot-1741264224607

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 (283) hide show
  1. package/directives/eui-clearable.directive.d.ts.map +1 -1
  2. package/directives/eui-loading.directive.d.ts.map +1 -1
  3. package/directives/eui-maxlength.directive.d.ts.map +1 -1
  4. package/directives/eui-scroll-handler.directive.d.ts.map +1 -1
  5. package/directives/eui-smooth-scroll.directive.d.ts.map +1 -1
  6. package/directives/eui-tooltip/eui-tooltip.directive.d.ts.map +1 -1
  7. package/docs/components/EuiAutocompleteComponent.html +1 -1
  8. package/docs/components/EuiAvatarBadgeComponent.html +52 -0
  9. package/docs/components/EuiAvatarComponent.html +109 -1
  10. package/docs/components/EuiAvatarIconComponent.html +16 -0
  11. package/docs/components/EuiAvatarImageComponent.html +42 -0
  12. package/docs/components/EuiAvatarListComponent.html +45 -0
  13. package/docs/components/EuiAvatarTextComponent.html +38 -0
  14. package/docs/components/EuiDisableContentComponent.html +167 -191
  15. package/docs/components/EuiDiscussionThreadComponent.html +77 -1
  16. package/docs/components/EuiDiscussionThreadItemComponent.html +118 -0
  17. package/docs/components/EuiIconToggleComponent.html +149 -0
  18. package/docs/components/EuiLanguageSelectorComponent.html +1 -5
  19. package/docs/components/EuiListComponent.html +130 -0
  20. package/docs/components/EuiListItemComponent.html +29 -0
  21. package/docs/components/EuiMessageBoxComponent.html +192 -2
  22. package/docs/components/EuiPageColumnComponent.html +0 -10
  23. package/docs/components/EuiPopoverComponent.html +119 -8
  24. package/docs/components/EuiTimebarComponent.html +87 -2
  25. package/docs/components/EuiWizardComponent.html +1 -1
  26. package/docs/dependencies.html +33 -33
  27. package/docs/directives/EuiPopoverArrowPositionDirective.html +29 -0
  28. package/docs/injectables/EuiMessageBoxService.html +49 -3
  29. package/docs/interfaces/EuiDiscussionThreadItem.html +61 -0
  30. package/docs/js/menu-wc.js +48 -50
  31. package/docs/js/menu-wc_es5.js +1 -1
  32. package/docs/js/search/search_index.js +2 -2
  33. package/docs/miscellaneous/typealiases.html +6 -0
  34. package/docs/miscellaneous/variables.html +59 -5
  35. package/docs/modules/EuiAvatarModule.html +25 -4
  36. package/docs/modules/EuiDisableContentModule.html +22 -4
  37. package/docs/modules/EuiDiscussionThreadModule.html +16 -1
  38. package/docs/modules/EuiIconToggleModule.html +23 -11
  39. package/docs/modules/EuiListModule.html +17 -2
  40. package/docs/modules/EuiMessageBoxModule.html +13 -1
  41. package/docs/modules/EuiPopoverModule.html +16 -1
  42. package/docs/modules/EuiTimebarModule.html +23 -14
  43. package/eui-alert/eui-alert.component.d.ts.map +1 -1
  44. package/eui-autocomplete/eui-autocomplete-option/eui-autocomplete-option.component.d.ts.map +1 -1
  45. package/eui-autocomplete/eui-autocomplete.component.d.ts.map +1 -1
  46. package/eui-avatar/avatar-badge/avatar-badge.component.d.ts +37 -0
  47. package/eui-avatar/avatar-badge/avatar-badge.component.d.ts.map +1 -1
  48. package/eui-avatar/avatar-icon/avatar-icon.component.d.ts +18 -0
  49. package/eui-avatar/avatar-icon/avatar-icon.component.d.ts.map +1 -1
  50. package/eui-avatar/avatar-image/avatar-image.component.d.ts +26 -0
  51. package/eui-avatar/avatar-image/avatar-image.component.d.ts.map +1 -1
  52. package/eui-avatar/avatar-list/avatar-list.component.d.ts +30 -0
  53. package/eui-avatar/avatar-list/avatar-list.component.d.ts.map +1 -1
  54. package/eui-avatar/avatar-text/avatar-text.component.d.ts +35 -0
  55. package/eui-avatar/avatar-text/avatar-text.component.d.ts.map +1 -1
  56. package/eui-avatar/eui-avatar.component.d.ts +85 -1
  57. package/eui-avatar/eui-avatar.component.d.ts.map +1 -1
  58. package/eui-avatar/eui-avatar.module.d.ts +33 -10
  59. package/eui-avatar/eui-avatar.module.d.ts.map +1 -1
  60. package/eui-badge/eui-badge.component.d.ts.map +1 -1
  61. package/eui-block-content/eui-block-content.component.d.ts.map +1 -1
  62. package/eui-block-document/eui-block-document.component.d.ts.map +1 -1
  63. package/eui-button/eui-button.component.d.ts.map +1 -1
  64. package/eui-button-group/eui-button-group.component.d.ts.map +1 -1
  65. package/eui-button-v2/eui-button-v2.component.d.ts.map +1 -1
  66. package/eui-card/components/eui-card-header/eui-card-header.component.d.ts.map +1 -1
  67. package/eui-card/eui-card.component.d.ts.map +1 -1
  68. package/eui-chip/eui-chip.component.d.ts.map +1 -1
  69. package/eui-chip-list/eui-chip-list.component.d.ts.map +1 -1
  70. package/eui-dashboard-card/eui-dashboard-card.component.d.ts.map +1 -1
  71. package/eui-date-range-selector/eui-date-range-selector.component.d.ts.map +1 -1
  72. package/eui-datepicker/eui-datepicker.component.d.ts.map +1 -1
  73. package/eui-dialog/eui-dialog.component.d.ts.map +1 -1
  74. package/eui-disable-content/eui-disable-content.component.d.ts +80 -13
  75. package/eui-disable-content/eui-disable-content.component.d.ts.map +1 -1
  76. package/eui-discussion-thread/eui-discussion-thread-item.component.d.ts +65 -0
  77. package/eui-discussion-thread/eui-discussion-thread-item.component.d.ts.map +1 -1
  78. package/eui-discussion-thread/eui-discussion-thread.component.d.ts +51 -0
  79. package/eui-discussion-thread/eui-discussion-thread.component.d.ts.map +1 -1
  80. package/eui-discussion-thread/eui-discussion-thread.module.d.ts +19 -1
  81. package/eui-discussion-thread/eui-discussion-thread.module.d.ts.map +1 -1
  82. package/eui-discussion-thread/models/eui-discussion-thread-item.model.d.ts +45 -0
  83. package/eui-discussion-thread/models/eui-discussion-thread-item.model.d.ts.map +1 -1
  84. package/eui-dropdown/dropdown-item/eui-dropdown-item.component.d.ts.map +1 -1
  85. package/eui-dropdown/eui-dropdown.component.d.ts.map +1 -1
  86. package/eui-feedback-message/eui-feedback-message.component.d.ts.map +1 -1
  87. package/eui-fieldset/eui-fieldset.component.d.ts.map +1 -1
  88. package/eui-file-upload/eui-file-upload.component.d.ts.map +1 -1
  89. package/eui-file-upload/file-preview/file-preview.component.d.ts.map +1 -1
  90. package/eui-growl/eui-growl.component.d.ts.map +1 -1
  91. package/eui-icon/eui-icon-svg.component.d.ts.map +1 -1
  92. package/eui-icon-button/eui-icon-button.component.d.ts.map +1 -1
  93. package/eui-icon-button-expander/eui-icon-button-expander.component.d.ts.map +1 -1
  94. package/eui-icon-input/eui-icon-input.component.d.ts.map +1 -1
  95. package/eui-icon-toggle/eui-icon-toggle.component.d.ts +96 -1
  96. package/eui-icon-toggle/eui-icon-toggle.component.d.ts.map +1 -1
  97. package/eui-icon-toggle/eui-icon-toggle.module.d.ts +19 -4
  98. package/eui-icon-toggle/eui-icon-toggle.module.d.ts.map +1 -1
  99. package/eui-input-number/eui-input-number.component.d.ts.map +1 -1
  100. package/eui-label/eui-label.component.d.ts.map +1 -1
  101. package/eui-language-selector/language-selector.component.d.ts +4 -2
  102. package/eui-language-selector/language-selector.component.d.ts.map +1 -1
  103. package/eui-list/eui-list-item/eui-list-item.component.d.ts +34 -0
  104. package/eui-list/eui-list-item/eui-list-item.component.d.ts.map +1 -1
  105. package/eui-list/eui-list.component.d.ts +56 -0
  106. package/eui-list/eui-list.component.d.ts.map +1 -1
  107. package/eui-list/eui-list.module.d.ts +18 -1
  108. package/eui-list/eui-list.module.d.ts.map +1 -1
  109. package/eui-menu/eui-menu-item.component.d.ts.map +1 -1
  110. package/eui-menu/eui-menu.component.d.ts.map +1 -1
  111. package/eui-message-box/eui-message-box.component.d.ts +148 -2
  112. package/eui-message-box/eui-message-box.component.d.ts.map +1 -1
  113. package/eui-message-box/eui-message-box.module.d.ts +15 -1
  114. package/eui-message-box/eui-message-box.module.d.ts.map +1 -1
  115. package/eui-message-box/services/eui-message-box.service.d.ts +58 -3
  116. package/eui-message-box/services/eui-message-box.service.d.ts.map +1 -1
  117. package/eui-navbar/eui-navbar-item/eui-navbar-item.component.d.ts.map +1 -1
  118. package/eui-overlay/eui-overlay.component.d.ts.map +1 -1
  119. package/eui-page/components/eui-page-column/eui-page-column.component.d.ts.map +1 -1
  120. package/eui-page/components/eui-page-columns/eui-page-columns.component.d.ts.map +1 -1
  121. package/eui-page/components/eui-page-header/eui-page-header.component.d.ts.map +1 -1
  122. package/eui-paginator/eui-paginator.component.d.ts.map +1 -1
  123. package/eui-popover/directives/eui-popover-arrow-position.directive.d.ts +32 -0
  124. package/eui-popover/directives/eui-popover-arrow-position.directive.d.ts.map +1 -1
  125. package/eui-popover/eui-popover.component.d.ts +119 -7
  126. package/eui-popover/eui-popover.component.d.ts.map +1 -1
  127. package/eui-popover/eui-popover.module.d.ts +18 -1
  128. package/eui-popover/eui-popover.module.d.ts.map +1 -1
  129. package/eui-popover/models/eui-popover-position.model.d.ts +26 -0
  130. package/eui-popover/models/eui-popover-position.model.d.ts.map +1 -1
  131. package/eui-progress-circle/eui-progress-circle.component.d.ts.map +1 -1
  132. package/eui-select/eui-select-option.directive.d.ts.map +1 -1
  133. package/eui-select/eui-select.component.d.ts.map +1 -1
  134. package/eui-sidebar-menu/eui-sidebar-menu.component.d.ts.map +1 -1
  135. package/eui-skeleton/eui-skeleton.component.d.ts.map +1 -1
  136. package/eui-slide-toggle/eui-slide-toggle.component.d.ts.map +1 -1
  137. package/eui-table/eui-table.component.d.ts.map +1 -1
  138. package/eui-table/filter/eui-table-filter.component.d.ts.map +1 -1
  139. package/eui-table/selectable-header/eui-table-selectable-header.component.d.ts.map +1 -1
  140. package/eui-table/selectable-row/eui-table-selectable-row.component.d.ts.map +1 -1
  141. package/eui-table/sortable-col/eui-table-sortable-col.component.d.ts.map +1 -1
  142. package/eui-table-v2/eui-table-v2.component.d.ts.map +1 -1
  143. package/eui-table-v2/selectable-header/eui-table-v2-selectable-header.component.d.ts.map +1 -1
  144. package/eui-table-v2/selectable-row/eui-table-v2-selectable-row.component.d.ts.map +1 -1
  145. package/eui-table-v2/sortable-col/eui-table-v2-sortable-col.component.d.ts.map +1 -1
  146. package/eui-tabs/eui-tab/eui-tab.component.d.ts.map +1 -1
  147. package/eui-tabs/eui-tab-content/eui-tab-content.component.d.ts.map +1 -1
  148. package/eui-tabs/eui-tabs.component.d.ts.map +1 -1
  149. package/eui-textarea/auto-resize.directive.d.ts.map +1 -1
  150. package/eui-textarea/eui-textarea.component.d.ts.map +1 -1
  151. package/eui-timebar/eui-timebar-item.model.d.ts +20 -1
  152. package/eui-timebar/eui-timebar-item.model.d.ts.map +1 -1
  153. package/eui-timebar/eui-timebar.component.d.ts +83 -6
  154. package/eui-timebar/eui-timebar.component.d.ts.map +1 -1
  155. package/eui-timeline/eui-timeline-item.component.d.ts.map +1 -1
  156. package/eui-timeline/eui-timeline.component.d.ts.map +1 -1
  157. package/eui-timepicker/eui-timepicker.component.d.ts.map +1 -1
  158. package/eui-tree/eui-tree.component.d.ts.map +1 -1
  159. package/eui-tree-list/eui-tree-list-item.component.d.ts.map +1 -1
  160. package/eui-tree-list/eui-tree-list.component.d.ts.map +1 -1
  161. package/eui-tree-list/toolbar/toolbar.component.d.ts.map +1 -1
  162. package/eui-user-profile/user-profile-card/user-profile-card.component.d.ts.map +1 -1
  163. package/eui-user-profile/user-profile.component.d.ts.map +1 -1
  164. package/eui-wizard/eui-wizard-step.component.d.ts.map +1 -1
  165. package/eui-wizard/eui-wizard.component.d.ts +1 -0
  166. package/eui-wizard/eui-wizard.component.d.ts.map +1 -1
  167. package/externals/eui-editor/counters/eui-editor-counters.component.d.ts.map +1 -1
  168. package/externals/quill/quill-editor.component.d.ts.map +1 -1
  169. package/fesm2022/eui-components-directives.mjs +70 -70
  170. package/fesm2022/eui-components-eui-accordion.mjs +13 -13
  171. package/fesm2022/eui-components-eui-alert.mjs +10 -10
  172. package/fesm2022/eui-components-eui-autocomplete.mjs +15 -14
  173. package/fesm2022/eui-components-eui-autocomplete.mjs.map +1 -1
  174. package/fesm2022/eui-components-eui-avatar.mjs +286 -36
  175. package/fesm2022/eui-components-eui-avatar.mjs.map +1 -1
  176. package/fesm2022/eui-components-eui-badge.mjs +7 -7
  177. package/fesm2022/eui-components-eui-block-content.mjs +7 -7
  178. package/fesm2022/eui-components-eui-block-document.mjs +7 -7
  179. package/fesm2022/eui-components-eui-breadcrumb.mjs +13 -13
  180. package/fesm2022/eui-components-eui-button-group.mjs +7 -7
  181. package/fesm2022/eui-components-eui-button-v2.mjs +7 -7
  182. package/fesm2022/eui-components-eui-button.mjs +7 -7
  183. package/fesm2022/eui-components-eui-card.mjs +49 -49
  184. package/fesm2022/eui-components-eui-chip-group.mjs +7 -7
  185. package/fesm2022/eui-components-eui-chip-list.mjs +13 -13
  186. package/fesm2022/eui-components-eui-chip.mjs +7 -7
  187. package/fesm2022/eui-components-eui-dashboard-button.mjs +13 -13
  188. package/fesm2022/eui-components-eui-dashboard-button.mjs.map +1 -1
  189. package/fesm2022/eui-components-eui-dashboard-card.mjs +13 -13
  190. package/fesm2022/eui-components-eui-dashboard-card.mjs.map +1 -1
  191. package/fesm2022/eui-components-eui-date-range-selector.mjs +10 -10
  192. package/fesm2022/eui-components-eui-datepicker.mjs +19 -19
  193. package/fesm2022/eui-components-eui-dialog.mjs +19 -19
  194. package/fesm2022/eui-components-eui-dimmer.mjs +7 -7
  195. package/fesm2022/eui-components-eui-disable-content.mjs +113 -39
  196. package/fesm2022/eui-components-eui-disable-content.mjs.map +1 -1
  197. package/fesm2022/eui-components-eui-discussion-thread.mjs +113 -12
  198. package/fesm2022/eui-components-eui-discussion-thread.mjs.map +1 -1
  199. package/fesm2022/eui-components-eui-dropdown.mjs +20 -20
  200. package/fesm2022/eui-components-eui-feedback-message.mjs +8 -8
  201. package/fesm2022/eui-components-eui-feedback-message.mjs.map +1 -1
  202. package/fesm2022/eui-components-eui-fieldset.mjs +13 -13
  203. package/fesm2022/eui-components-eui-file-upload.mjs +19 -19
  204. package/fesm2022/eui-components-eui-growl.mjs +7 -7
  205. package/fesm2022/eui-components-eui-icon-button-expander.mjs +7 -7
  206. package/fesm2022/eui-components-eui-icon-button.mjs +7 -7
  207. package/fesm2022/eui-components-eui-icon-color.mjs +7 -7
  208. package/fesm2022/eui-components-eui-icon-input.mjs +7 -7
  209. package/fesm2022/eui-components-eui-icon-state.mjs +7 -7
  210. package/fesm2022/eui-components-eui-icon-toggle.mjs +106 -10
  211. package/fesm2022/eui-components-eui-icon-toggle.mjs.map +1 -1
  212. package/fesm2022/eui-components-eui-icon.mjs +7 -7
  213. package/fesm2022/eui-components-eui-input-checkbox.mjs +7 -7
  214. package/fesm2022/eui-components-eui-input-group.mjs +13 -13
  215. package/fesm2022/eui-components-eui-input-number.mjs +10 -10
  216. package/fesm2022/eui-components-eui-input-radio.mjs +7 -7
  217. package/fesm2022/eui-components-eui-input-text.mjs +7 -7
  218. package/fesm2022/eui-components-eui-label.mjs +8 -8
  219. package/fesm2022/eui-components-eui-label.mjs.map +1 -1
  220. package/fesm2022/eui-components-eui-language-selector.mjs +23 -12
  221. package/fesm2022/eui-components-eui-language-selector.mjs.map +1 -1
  222. package/fesm2022/eui-components-eui-list.mjs +116 -15
  223. package/fesm2022/eui-components-eui-list.mjs.map +1 -1
  224. package/fesm2022/eui-components-eui-menu.mjs +10 -10
  225. package/fesm2022/eui-components-eui-message-box.mjs +208 -20
  226. package/fesm2022/eui-components-eui-message-box.mjs.map +1 -1
  227. package/fesm2022/eui-components-eui-navbar.mjs +10 -10
  228. package/fesm2022/eui-components-eui-overlay.mjs +19 -19
  229. package/fesm2022/eui-components-eui-page.mjs +61 -62
  230. package/fesm2022/eui-components-eui-page.mjs.map +1 -1
  231. package/fesm2022/eui-components-eui-paginator.mjs +7 -7
  232. package/fesm2022/eui-components-eui-popover.mjs +194 -20
  233. package/fesm2022/eui-components-eui-popover.mjs.map +1 -1
  234. package/fesm2022/eui-components-eui-progress-bar.mjs +7 -7
  235. package/fesm2022/eui-components-eui-progress-circle.mjs +7 -7
  236. package/fesm2022/eui-components-eui-select.mjs +19 -19
  237. package/fesm2022/eui-components-eui-sidebar-menu.mjs +7 -7
  238. package/fesm2022/eui-components-eui-skeleton.mjs +7 -7
  239. package/fesm2022/eui-components-eui-slide-toggle.mjs +8 -8
  240. package/fesm2022/eui-components-eui-slide-toggle.mjs.map +1 -1
  241. package/fesm2022/eui-components-eui-split-button.mjs +7 -7
  242. package/fesm2022/eui-components-eui-table-v2.mjs +34 -34
  243. package/fesm2022/eui-components-eui-table.mjs +34 -34
  244. package/fesm2022/eui-components-eui-tabs.mjs +24 -24
  245. package/fesm2022/eui-components-eui-tabs.mjs.map +1 -1
  246. package/fesm2022/eui-components-eui-textarea.mjs +10 -10
  247. package/fesm2022/eui-components-eui-timebar.mjs +82 -10
  248. package/fesm2022/eui-components-eui-timebar.mjs.map +1 -1
  249. package/fesm2022/eui-components-eui-timeline.mjs +10 -10
  250. package/fesm2022/eui-components-eui-timepicker.mjs +7 -7
  251. package/fesm2022/eui-components-eui-tree-list.mjs +25 -25
  252. package/fesm2022/eui-components-eui-tree.mjs +21 -21
  253. package/fesm2022/eui-components-eui-user-profile.mjs +16 -16
  254. package/fesm2022/eui-components-eui-user-profile.mjs.map +1 -1
  255. package/fesm2022/eui-components-eui-wizard.mjs +16 -15
  256. package/fesm2022/eui-components-eui-wizard.mjs.map +1 -1
  257. package/fesm2022/eui-components-externals-charts.mjs +7 -7
  258. package/fesm2022/eui-components-externals-eui-editor.mjs +28 -28
  259. package/fesm2022/eui-components-externals-quill.mjs +10 -10
  260. package/fesm2022/eui-components-layout.mjs +183 -182
  261. package/fesm2022/eui-components-layout.mjs.map +1 -1
  262. package/fesm2022/eui-components-pipes.mjs +14 -14
  263. package/fesm2022/eui-components-shared.mjs +6 -6
  264. package/fesm2022/eui-components.mjs +4 -4
  265. package/layout/eui-app/eui-app-sidebar/sidebar-header-user-profile/sidebar-header-user-profile.component.d.ts.map +1 -1
  266. package/layout/eui-app/eui-app-sidebar/sidebar-menu/sidebar-menu.component.d.ts.map +1 -1
  267. package/layout/eui-app/eui-app-toolbar/toolbar.component.d.ts.map +1 -1
  268. package/layout/eui-app/eui-app-top-message/top-message.component.d.ts.map +1 -1
  269. package/layout/eui-app/eui-app.component.d.ts.map +1 -1
  270. package/layout/eui-footer/footer.component.d.ts.map +1 -1
  271. package/layout/eui-header/header-user-profile/header-user-profile.component.d.ts.map +1 -1
  272. package/layout/eui-notifications/eui-notification-item.component.d.ts.map +1 -1
  273. package/layout/eui-notifications/eui-notifications.component.d.ts.map +1 -1
  274. package/layout/eui-notifications-v2/eui-notification-item.component.d.ts.map +1 -1
  275. package/layout/eui-notifications-v2/eui-notifications.component.d.ts.map +1 -1
  276. package/layout/eui-toolbar/toolbar-items/toolbar-items.component.d.ts.map +1 -1
  277. package/layout/eui-toolbar/toolbar-navbar-item/toolbar-navbar-item.component.d.ts.map +1 -1
  278. package/layout/eui-toolbar/toolbar-search/toolbar-search.component.d.ts.map +1 -1
  279. package/layout/eui-toolbar/toolbar-selector/toolbar-selector.component.d.ts.map +1 -1
  280. package/layout/eui-toolbar/toolbar.component.d.ts.map +1 -1
  281. package/package.json +3 -3
  282. package/shared/base/base-states.directive.d.ts.map +1 -1
  283. package/shared/input.directive.d.ts.map +1 -1
@@ -4,12 +4,28 @@ import { FocusKeyManager } from '@angular/cdk/a11y';
4
4
  import * as i1 from '@eui/components/shared';
5
5
  import { BaseStatesDirective } from '@eui/components/shared';
6
6
  import { EuiIconSvgComponent, EuiIconModule } from '@eui/components/eui-icon';
7
- import { EuiLabelComponent, EuiLabelModule } from '@eui/components/eui-label';
7
+ import { EuiLabelComponent } from '@eui/components/eui-label';
8
8
  import { EuiArrowKeyNavigableDirective, EuiTemplateDirective } from '@eui/components/directives';
9
9
  import * as i2 from '@angular/common';
10
10
  import { CommonModule } from '@angular/common';
11
- import { EuiButtonModule } from '@eui/components/eui-button';
11
+ import { EuiButtonComponent } from '@eui/components/eui-button';
12
12
 
13
+ /**
14
+ * @description
15
+ * Component that represents a single item within an EuiList.
16
+ * Implements FocusableOption and Highlightable for keyboard navigation and accessibility.
17
+ *
18
+ * This component is designed to work with the EuiListComponent as part of a navigable list.
19
+ * It supports various display states through the BaseStatesDirective, and can contain
20
+ * nested list components, icons, labels, and custom templates.
21
+ *
22
+ * @example
23
+ * <eui-list>
24
+ * <eui-list-item>Simple item</eui-list-item>
25
+ * <eui-list-item [euiPrimary]="true">Primary item</eui-list-item>
26
+ * <eui-list-item [isActive]="true">Active item</eui-list-item>
27
+ * </eui-list>
28
+ */
13
29
  class EuiListItemComponent {
14
30
  get cssClasses() {
15
31
  return [
@@ -25,22 +41,41 @@ class EuiListItemComponent {
25
41
  this.tabindex = '-1';
26
42
  this.isActive = false;
27
43
  }
44
+ /**
45
+ * Sets focus on the list item element.
46
+ * Used by the FocusKeyManager to handle keyboard navigation within the list.
47
+ */
28
48
  focus() {
29
49
  this.elementRef.nativeElement.focus();
30
50
  }
51
+ /**
52
+ * Programmatically triggers a click event on the list item element.
53
+ * Typically, invoked when the user presses Enter while the item is focused.
54
+ */
55
+ // TODO: make it protected
31
56
  click() {
32
57
  this.elementRef.nativeElement.click();
33
58
  }
59
+ /**
60
+ * Applies active styling to the list item.
61
+ * Called by the FocusKeyManager when this item becomes the active item in the list.
62
+ * Sets the isActive flag to true, which adds the 'eui-list-item--active' CSS class.
63
+ */
34
64
  setActiveStyles() {
35
65
  this.isActive = true;
36
66
  }
67
+ /**
68
+ * Removes active styling from the list item.
69
+ * Called by the FocusKeyManager when another item becomes the active item.
70
+ * Sets the isActive flag to false, removing the 'eui-list-item--active' CSS class.
71
+ */
37
72
  setInactiveStyles() {
38
73
  this.isActive = false;
39
74
  }
40
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: EuiListItemComponent, deps: [{ token: i1.BaseStatesDirective }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
41
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "19.1.7", type: EuiListItemComponent, isStandalone: false, selector: "[euiListItem], eui-list-item", inputs: { e2eAttr: "e2eAttr", isActive: ["isActive", "isActive", booleanAttribute] }, host: { properties: { "class": "this.cssClasses", "attr.role": "this.role", "attr.data-e2e": "this.e2eAttr", "attr.tabindex": "this.tabindex" } }, queries: [{ propertyName: "euiArrowKeyNavigableDirective", first: true, predicate: i0.forwardRef(() => EuiArrowKeyNavigableDirective), descendants: true }, { propertyName: "euiListComponent", predicate: i0.forwardRef(() => EuiListComponent), descendants: true }, { propertyName: "euiIconSvgComponent", predicate: i0.forwardRef(() => EuiIconSvgComponent), descendants: true }, { propertyName: "euiLabelComponent", predicate: i0.forwardRef(() => EuiLabelComponent), descendants: true }, { propertyName: "templates", predicate: i0.forwardRef(() => EuiTemplateDirective), descendants: true }], hostDirectives: [{ directive: i1.BaseStatesDirective, inputs: ["euiPrimary", "euiPrimary", "euiSecondary", "euiSecondary", "euiSuccess", "euiSuccess", "euiInfo", "euiInfo", "euiWarning", "euiWarning", "euiDanger", "euiDanger", "euiAccent", "euiAccent", "euiVariant", "euiVariant"] }], ngImport: i0, template: "<div class=\"eui-list-item__container\" [class.eui-list-item--has-submenu]=\"euiListComponent.length > 0\">\n <div class=\"eui-list-item__content\">\n <div *ngIf=\"euiIconSvgComponent.length > 0\" class=\"eui-list-item__content-icon\">\n <ng-content select=\"eui-icon-svg, span[euiIconSvg]\"></ng-content>\n </div>\n <div *ngIf=\"euiLabelComponent.length > 0\" class=\"eui-list-item__content-text\">\n <ng-content select=\"[eui-label], [euiLabel]\"></ng-content>\n </div>\n <ng-content></ng-content>\n </div>\n\n <div\n class=\"eui-list-item__sub-list\"\n *ngIf=\"(euiListComponent.length > 0) || (euiListComponent.length > 0)\">\n <ng-content select=\"[eui-list], [euiList]\"></ng-content>\n </div>\n</div>\n", styles: [":root{--_eui-scrollbars-foreground-color: var(--eui-c-neutral-lightest)}html.eui-t-dark{--_eui-scrollbars-foreground-color: var(--eui-c-neutral-light)}.eui-19 :host.eui-list-item{background:none;border:var(--eui-bw-none);box-shadow:none;cursor:pointer;display:block;max-width:100%;outline:none;padding:var(--eui-s-xs) var(--eui-s-s);position:relative;-webkit-tap-highlight-color:transparent;text-align:left;text-decoration:none;-webkit-user-select:none;user-select:none;width:100%;list-style:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-19 :host.eui-list-item:focus-visible:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-19 :host.eui-list-item .eui-list-item__container{display:flex;width:100%}.eui-19 :host.eui-list-item .eui-list-item__container .eui-list-item__content{align-items:center;display:flex;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-19 :host.eui-list-item .eui-list-item__container .eui-list-item__content .eui-list-item__content-icon{align-items:center;display:flex;margin-right:var(--eui-s-xs)}.eui-19 :host.eui-list-item .eui-list-item__container .eui-list-item__content .eui-list-item__content-text{display:flex;flex-direction:column;font:var(--eui-f-m-bold);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-19 :host.eui-list-item .eui-list-item__container .eui-list-item__content .eui-list-item__content-text .eui-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-19 :host.eui-list-item .eui-list-item__container.eui-list-item--has-submenu{display:block;width:100%}.eui-19 :host.eui-list-item .eui-list-item__container.eui-list-item--has-submenu .eui-list-item__content{align-items:center;display:flex;width:100%}.eui-19 :host.eui-list-item .eui-list-item__container.eui-list-item--has-submenu .eui-list-item__sub-list{margin-left:var(--eui-s-m)}.eui-19 :host.eui-list-item .eui-list-item__container.eui-list-item--has-submenu .eui-list-item__sub-list ::ng-deep .eui-list-item{padding-right:0}.eui-19 :host.eui-list-item .eui-list-item__container .eui-button{margin-left:var(--eui-s-s)}.eui-19 :host.eui-list-item:hover{background-color:var(--eui-c-hover)}.eui-19 :host.eui-list-item:active,.eui-19 :host.eui-list-item--active{background-color:var(--eui-c-active)}.eui-19 :host.eui-list-item--primary{color:var(--eui-c-primary)}.eui-19 :host.eui-list-item--primary .eui-icon-svg svg{fill:var(--eui-c-primary);color:var(--eui-c-primary)}.eui-19 :host.eui-list-item--secondary{color:var(--eui-c-neutral-light)}.eui-19 :host.eui-list-item--secondary .eui-icon-svg svg{fill:var(--eui-c-neutral-light);color:var(--eui-c-neutral-light)}.eui-19 :host.eui-list-item--info{color:var(--eui-c-info)}.eui-19 :host.eui-list-item--info .eui-icon-svg svg{fill:var(--eui-c-info);color:var(--eui-c-info)}.eui-19 :host.eui-list-item--success{color:var(--eui-c-success-dark)}.eui-19 :host.eui-list-item--success .eui-icon-svg svg{fill:var(--eui-c-success-dark);color:var(--eui-c-success-dark)}.eui-19 :host.eui-list-item--warning{color:var(--eui-c-warning-dark)}.eui-19 :host.eui-list-item--warning .eui-icon-svg svg{fill:var(--eui-c-warning-dark);color:var(--eui-c-warning-dark)}.eui-19 :host.eui-list-item--danger{color:var(--eui-c-danger-dark)}.eui-19 :host.eui-list-item--danger .eui-icon-svg svg{fill:var(--eui-c-danger-dark);color:var(--eui-c-danger-dark)}.eui-19 :host.eui-list-item--accent{color:var(--eui-c-accent-dark)}.eui-19 :host.eui-list-item--accent .eui-icon-svg svg{fill:var(--eui-c-accent-dark);color:var(--eui-c-accent-dark)}.eui-19 :host.eui-list-item .eui-list-item__content-toggle--expanded{transform:rotate(-180deg)}.eui-19 :host.eui-list-item--disabled{pointer-events:none;background-image:none;box-shadow:none;cursor:not-allowed!important;opacity:var(--eui-o-50)}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
75
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: EuiListItemComponent, deps: [{ token: i1.BaseStatesDirective }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
76
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "19.2.1", type: EuiListItemComponent, isStandalone: false, selector: "[euiListItem], eui-list-item", inputs: { e2eAttr: "e2eAttr", isActive: ["isActive", "isActive", booleanAttribute] }, host: { properties: { "class": "this.cssClasses", "attr.role": "this.role", "attr.data-e2e": "this.e2eAttr", "attr.tabindex": "this.tabindex" } }, queries: [{ propertyName: "euiArrowKeyNavigableDirective", first: true, predicate: i0.forwardRef(() => EuiArrowKeyNavigableDirective), descendants: true }, { propertyName: "euiListComponent", predicate: i0.forwardRef(() => EuiListComponent), descendants: true }, { propertyName: "euiIconSvgComponent", predicate: i0.forwardRef(() => EuiIconSvgComponent), descendants: true }, { propertyName: "euiLabelComponent", predicate: i0.forwardRef(() => EuiLabelComponent), descendants: true }, { propertyName: "templates", predicate: i0.forwardRef(() => EuiTemplateDirective), descendants: true }], hostDirectives: [{ directive: i1.BaseStatesDirective, inputs: ["euiPrimary", "euiPrimary", "euiSecondary", "euiSecondary", "euiSuccess", "euiSuccess", "euiInfo", "euiInfo", "euiWarning", "euiWarning", "euiDanger", "euiDanger", "euiAccent", "euiAccent", "euiVariant", "euiVariant"] }], ngImport: i0, template: "<div class=\"eui-list-item__container\" [class.eui-list-item--has-submenu]=\"euiListComponent.length > 0\">\n <div class=\"eui-list-item__content\">\n <div *ngIf=\"euiIconSvgComponent.length > 0\" class=\"eui-list-item__content-icon\">\n <ng-content select=\"eui-icon-svg, span[euiIconSvg]\"></ng-content>\n </div>\n <div *ngIf=\"euiLabelComponent.length > 0\" class=\"eui-list-item__content-text\">\n <ng-content select=\"[eui-label], [euiLabel]\"></ng-content>\n </div>\n <ng-content></ng-content>\n </div>\n\n <div\n class=\"eui-list-item__sub-list\"\n *ngIf=\"(euiListComponent.length > 0) || (euiListComponent.length > 0)\">\n <ng-content select=\"[eui-list], [euiList]\"></ng-content>\n </div>\n</div>\n", styles: [":root{--_eui-scrollbars-foreground-color: var(--eui-c-neutral-lightest)}html.eui-t-dark{--_eui-scrollbars-foreground-color: var(--eui-c-neutral-light)}.eui-19 :host.eui-list-item{background:none;border:var(--eui-bw-none);box-shadow:none;cursor:pointer;display:block;max-width:100%;outline:none;padding:var(--eui-s-xs) var(--eui-s-s);position:relative;-webkit-tap-highlight-color:transparent;text-align:left;text-decoration:none;-webkit-user-select:none;user-select:none;width:100%;list-style:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-19 :host.eui-list-item:focus-visible:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-19 :host.eui-list-item .eui-list-item__container{display:flex;width:100%}.eui-19 :host.eui-list-item .eui-list-item__container .eui-list-item__content{align-items:center;display:flex;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-19 :host.eui-list-item .eui-list-item__container .eui-list-item__content .eui-list-item__content-icon{align-items:center;display:flex;margin-right:var(--eui-s-xs)}.eui-19 :host.eui-list-item .eui-list-item__container .eui-list-item__content .eui-list-item__content-text{display:flex;flex-direction:column;font:var(--eui-f-m-bold);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-19 :host.eui-list-item .eui-list-item__container .eui-list-item__content .eui-list-item__content-text .eui-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-19 :host.eui-list-item .eui-list-item__container.eui-list-item--has-submenu{display:block;width:100%}.eui-19 :host.eui-list-item .eui-list-item__container.eui-list-item--has-submenu .eui-list-item__content{align-items:center;display:flex;width:100%}.eui-19 :host.eui-list-item .eui-list-item__container.eui-list-item--has-submenu .eui-list-item__sub-list{margin-left:var(--eui-s-m)}.eui-19 :host.eui-list-item .eui-list-item__container.eui-list-item--has-submenu .eui-list-item__sub-list ::ng-deep .eui-list-item{padding-right:0}.eui-19 :host.eui-list-item .eui-list-item__container .eui-button{margin-left:var(--eui-s-s)}.eui-19 :host.eui-list-item:hover{background-color:var(--eui-c-hover)}.eui-19 :host.eui-list-item:active,.eui-19 :host.eui-list-item--active{background-color:var(--eui-c-active)}.eui-19 :host.eui-list-item--primary{color:var(--eui-c-primary)}.eui-19 :host.eui-list-item--primary .eui-icon-svg svg{fill:var(--eui-c-primary);color:var(--eui-c-primary)}.eui-19 :host.eui-list-item--secondary{color:var(--eui-c-neutral-light)}.eui-19 :host.eui-list-item--secondary .eui-icon-svg svg{fill:var(--eui-c-neutral-light);color:var(--eui-c-neutral-light)}.eui-19 :host.eui-list-item--info{color:var(--eui-c-info-dark)}.eui-19 :host.eui-list-item--info .eui-icon-svg svg{fill:var(--eui-c-info-dark);color:var(--eui-c-info-dark)}.eui-19 :host.eui-list-item--success{color:var(--eui-c-success-dark)}.eui-19 :host.eui-list-item--success .eui-icon-svg svg{fill:var(--eui-c-success-dark);color:var(--eui-c-success-dark)}.eui-19 :host.eui-list-item--warning{color:var(--eui-c-warning-darker)}.eui-19 :host.eui-list-item--warning .eui-icon-svg svg{fill:var(--eui-c-warning-dark);color:var(--eui-c-warning-dark)}.eui-19 :host.eui-list-item--danger{color:var(--eui-c-danger-dark)}.eui-19 :host.eui-list-item--danger .eui-icon-svg svg{fill:var(--eui-c-danger-dark);color:var(--eui-c-danger-dark)}.eui-19 :host.eui-list-item--accent{color:var(--eui-c-accent-dark)}.eui-19 :host.eui-list-item--accent .eui-icon-svg svg{fill:var(--eui-c-accent-dark);color:var(--eui-c-accent-dark)}.eui-19 :host.eui-list-item .eui-list-item__content-toggle--expanded{transform:rotate(-180deg)}.eui-19 :host.eui-list-item--disabled{pointer-events:none;background-image:none;box-shadow:none;cursor:not-allowed!important;opacity:var(--eui-o-50)}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
42
77
  }
43
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: EuiListItemComponent, decorators: [{
78
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: EuiListItemComponent, decorators: [{
44
79
  type: Component,
45
80
  args: [{ selector: '[euiListItem], eui-list-item', standalone: false, hostDirectives: [
46
81
  {
@@ -56,7 +91,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImpor
56
91
  'euiVariant',
57
92
  ],
58
93
  },
59
- ], template: "<div class=\"eui-list-item__container\" [class.eui-list-item--has-submenu]=\"euiListComponent.length > 0\">\n <div class=\"eui-list-item__content\">\n <div *ngIf=\"euiIconSvgComponent.length > 0\" class=\"eui-list-item__content-icon\">\n <ng-content select=\"eui-icon-svg, span[euiIconSvg]\"></ng-content>\n </div>\n <div *ngIf=\"euiLabelComponent.length > 0\" class=\"eui-list-item__content-text\">\n <ng-content select=\"[eui-label], [euiLabel]\"></ng-content>\n </div>\n <ng-content></ng-content>\n </div>\n\n <div\n class=\"eui-list-item__sub-list\"\n *ngIf=\"(euiListComponent.length > 0) || (euiListComponent.length > 0)\">\n <ng-content select=\"[eui-list], [euiList]\"></ng-content>\n </div>\n</div>\n", styles: [":root{--_eui-scrollbars-foreground-color: var(--eui-c-neutral-lightest)}html.eui-t-dark{--_eui-scrollbars-foreground-color: var(--eui-c-neutral-light)}.eui-19 :host.eui-list-item{background:none;border:var(--eui-bw-none);box-shadow:none;cursor:pointer;display:block;max-width:100%;outline:none;padding:var(--eui-s-xs) var(--eui-s-s);position:relative;-webkit-tap-highlight-color:transparent;text-align:left;text-decoration:none;-webkit-user-select:none;user-select:none;width:100%;list-style:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-19 :host.eui-list-item:focus-visible:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-19 :host.eui-list-item .eui-list-item__container{display:flex;width:100%}.eui-19 :host.eui-list-item .eui-list-item__container .eui-list-item__content{align-items:center;display:flex;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-19 :host.eui-list-item .eui-list-item__container .eui-list-item__content .eui-list-item__content-icon{align-items:center;display:flex;margin-right:var(--eui-s-xs)}.eui-19 :host.eui-list-item .eui-list-item__container .eui-list-item__content .eui-list-item__content-text{display:flex;flex-direction:column;font:var(--eui-f-m-bold);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-19 :host.eui-list-item .eui-list-item__container .eui-list-item__content .eui-list-item__content-text .eui-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-19 :host.eui-list-item .eui-list-item__container.eui-list-item--has-submenu{display:block;width:100%}.eui-19 :host.eui-list-item .eui-list-item__container.eui-list-item--has-submenu .eui-list-item__content{align-items:center;display:flex;width:100%}.eui-19 :host.eui-list-item .eui-list-item__container.eui-list-item--has-submenu .eui-list-item__sub-list{margin-left:var(--eui-s-m)}.eui-19 :host.eui-list-item .eui-list-item__container.eui-list-item--has-submenu .eui-list-item__sub-list ::ng-deep .eui-list-item{padding-right:0}.eui-19 :host.eui-list-item .eui-list-item__container .eui-button{margin-left:var(--eui-s-s)}.eui-19 :host.eui-list-item:hover{background-color:var(--eui-c-hover)}.eui-19 :host.eui-list-item:active,.eui-19 :host.eui-list-item--active{background-color:var(--eui-c-active)}.eui-19 :host.eui-list-item--primary{color:var(--eui-c-primary)}.eui-19 :host.eui-list-item--primary .eui-icon-svg svg{fill:var(--eui-c-primary);color:var(--eui-c-primary)}.eui-19 :host.eui-list-item--secondary{color:var(--eui-c-neutral-light)}.eui-19 :host.eui-list-item--secondary .eui-icon-svg svg{fill:var(--eui-c-neutral-light);color:var(--eui-c-neutral-light)}.eui-19 :host.eui-list-item--info{color:var(--eui-c-info)}.eui-19 :host.eui-list-item--info .eui-icon-svg svg{fill:var(--eui-c-info);color:var(--eui-c-info)}.eui-19 :host.eui-list-item--success{color:var(--eui-c-success-dark)}.eui-19 :host.eui-list-item--success .eui-icon-svg svg{fill:var(--eui-c-success-dark);color:var(--eui-c-success-dark)}.eui-19 :host.eui-list-item--warning{color:var(--eui-c-warning-dark)}.eui-19 :host.eui-list-item--warning .eui-icon-svg svg{fill:var(--eui-c-warning-dark);color:var(--eui-c-warning-dark)}.eui-19 :host.eui-list-item--danger{color:var(--eui-c-danger-dark)}.eui-19 :host.eui-list-item--danger .eui-icon-svg svg{fill:var(--eui-c-danger-dark);color:var(--eui-c-danger-dark)}.eui-19 :host.eui-list-item--accent{color:var(--eui-c-accent-dark)}.eui-19 :host.eui-list-item--accent .eui-icon-svg svg{fill:var(--eui-c-accent-dark);color:var(--eui-c-accent-dark)}.eui-19 :host.eui-list-item .eui-list-item__content-toggle--expanded{transform:rotate(-180deg)}.eui-19 :host.eui-list-item--disabled{pointer-events:none;background-image:none;box-shadow:none;cursor:not-allowed!important;opacity:var(--eui-o-50)}\n"] }]
94
+ ], template: "<div class=\"eui-list-item__container\" [class.eui-list-item--has-submenu]=\"euiListComponent.length > 0\">\n <div class=\"eui-list-item__content\">\n <div *ngIf=\"euiIconSvgComponent.length > 0\" class=\"eui-list-item__content-icon\">\n <ng-content select=\"eui-icon-svg, span[euiIconSvg]\"></ng-content>\n </div>\n <div *ngIf=\"euiLabelComponent.length > 0\" class=\"eui-list-item__content-text\">\n <ng-content select=\"[eui-label], [euiLabel]\"></ng-content>\n </div>\n <ng-content></ng-content>\n </div>\n\n <div\n class=\"eui-list-item__sub-list\"\n *ngIf=\"(euiListComponent.length > 0) || (euiListComponent.length > 0)\">\n <ng-content select=\"[eui-list], [euiList]\"></ng-content>\n </div>\n</div>\n", styles: [":root{--_eui-scrollbars-foreground-color: var(--eui-c-neutral-lightest)}html.eui-t-dark{--_eui-scrollbars-foreground-color: var(--eui-c-neutral-light)}.eui-19 :host.eui-list-item{background:none;border:var(--eui-bw-none);box-shadow:none;cursor:pointer;display:block;max-width:100%;outline:none;padding:var(--eui-s-xs) var(--eui-s-s);position:relative;-webkit-tap-highlight-color:transparent;text-align:left;text-decoration:none;-webkit-user-select:none;user-select:none;width:100%;list-style:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-19 :host.eui-list-item:focus-visible:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-19 :host.eui-list-item .eui-list-item__container{display:flex;width:100%}.eui-19 :host.eui-list-item .eui-list-item__container .eui-list-item__content{align-items:center;display:flex;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-19 :host.eui-list-item .eui-list-item__container .eui-list-item__content .eui-list-item__content-icon{align-items:center;display:flex;margin-right:var(--eui-s-xs)}.eui-19 :host.eui-list-item .eui-list-item__container .eui-list-item__content .eui-list-item__content-text{display:flex;flex-direction:column;font:var(--eui-f-m-bold);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-19 :host.eui-list-item .eui-list-item__container .eui-list-item__content .eui-list-item__content-text .eui-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-19 :host.eui-list-item .eui-list-item__container.eui-list-item--has-submenu{display:block;width:100%}.eui-19 :host.eui-list-item .eui-list-item__container.eui-list-item--has-submenu .eui-list-item__content{align-items:center;display:flex;width:100%}.eui-19 :host.eui-list-item .eui-list-item__container.eui-list-item--has-submenu .eui-list-item__sub-list{margin-left:var(--eui-s-m)}.eui-19 :host.eui-list-item .eui-list-item__container.eui-list-item--has-submenu .eui-list-item__sub-list ::ng-deep .eui-list-item{padding-right:0}.eui-19 :host.eui-list-item .eui-list-item__container .eui-button{margin-left:var(--eui-s-s)}.eui-19 :host.eui-list-item:hover{background-color:var(--eui-c-hover)}.eui-19 :host.eui-list-item:active,.eui-19 :host.eui-list-item--active{background-color:var(--eui-c-active)}.eui-19 :host.eui-list-item--primary{color:var(--eui-c-primary)}.eui-19 :host.eui-list-item--primary .eui-icon-svg svg{fill:var(--eui-c-primary);color:var(--eui-c-primary)}.eui-19 :host.eui-list-item--secondary{color:var(--eui-c-neutral-light)}.eui-19 :host.eui-list-item--secondary .eui-icon-svg svg{fill:var(--eui-c-neutral-light);color:var(--eui-c-neutral-light)}.eui-19 :host.eui-list-item--info{color:var(--eui-c-info-dark)}.eui-19 :host.eui-list-item--info .eui-icon-svg svg{fill:var(--eui-c-info-dark);color:var(--eui-c-info-dark)}.eui-19 :host.eui-list-item--success{color:var(--eui-c-success-dark)}.eui-19 :host.eui-list-item--success .eui-icon-svg svg{fill:var(--eui-c-success-dark);color:var(--eui-c-success-dark)}.eui-19 :host.eui-list-item--warning{color:var(--eui-c-warning-darker)}.eui-19 :host.eui-list-item--warning .eui-icon-svg svg{fill:var(--eui-c-warning-dark);color:var(--eui-c-warning-dark)}.eui-19 :host.eui-list-item--danger{color:var(--eui-c-danger-dark)}.eui-19 :host.eui-list-item--danger .eui-icon-svg svg{fill:var(--eui-c-danger-dark);color:var(--eui-c-danger-dark)}.eui-19 :host.eui-list-item--accent{color:var(--eui-c-accent-dark)}.eui-19 :host.eui-list-item--accent .eui-icon-svg svg{fill:var(--eui-c-accent-dark);color:var(--eui-c-accent-dark)}.eui-19 :host.eui-list-item .eui-list-item__content-toggle--expanded{transform:rotate(-180deg)}.eui-19 :host.eui-list-item--disabled{pointer-events:none;background-image:none;box-shadow:none;cursor:not-allowed!important;opacity:var(--eui-o-50)}\n"] }]
60
95
  }], ctorParameters: () => [{ type: i1.BaseStatesDirective }, { type: i0.ElementRef }], propDecorators: { cssClasses: [{
61
96
  type: HostBinding,
62
97
  args: ['class']
@@ -91,13 +126,50 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImpor
91
126
  args: [{ transform: booleanAttribute }]
92
127
  }] } });
93
128
 
129
+ /**
130
+ * @description
131
+ * Component that provides a navigable list implementation with keyboard interaction support.
132
+ * Works with Angular CDK's FocusKeyManager to enable keyboard navigation between list items.
133
+ *
134
+ * The component automatically manages focus between nested lists and supports rich content
135
+ * navigation. It can contain multiple EuiListItemComponents as children.
136
+ *
137
+ * @example
138
+ * <eui-list>
139
+ * <eui-list-item>First item</eui-list-item>
140
+ * <eui-list-item>Second item</eui-list-item>
141
+ * <eui-list-item>
142
+ * Item with nested list
143
+ * <eui-list>
144
+ * <eui-list-item>Nested item 1</eui-list-item>
145
+ * <eui-list-item>Nested item 2</eui-list-item>
146
+ * </eui-list>
147
+ * </eui-list-item>
148
+ * </eui-list>
149
+ */
94
150
  class EuiListComponent {
95
151
  constructor() {
152
+ /**
153
+ * Binds the 'list' ARIA role to the host element for accessibility.
154
+ * This informs screen readers that this component functions as a list.
155
+ */
96
156
  this.role = 'list';
97
157
  }
158
+ /**
159
+ * CSS class binding that applies the 'eui-list' class to the host element.
160
+ * This class applies the basic styling for the list component.
161
+ *
162
+ * @returns {string} The CSS class to be applied to the host element
163
+ */
98
164
  get cssClasses() {
99
165
  return 'eui-list';
100
166
  }
167
+ /**
168
+ * Handles keyboard events for navigating the list.
169
+ * Supports Enter key for selection and arrow keys for navigation.
170
+ *
171
+ * @param {KeyboardEvent} event - The keyboard event to handle
172
+ */
101
173
  onKeydown(event) {
102
174
  switch (event.key) {
103
175
  case 'Enter': {
@@ -124,6 +196,11 @@ class EuiListComponent {
124
196
  }
125
197
  }
126
198
  }
199
+ /**
200
+ * Initializes the component after content (list items) has been initialized.
201
+ * Sets up the FocusKeyManager for keyboard navigation and configures tabindex
202
+ * attributes based on nested list structure.
203
+ */
127
204
  ngAfterContentInit() {
128
205
  // instantiates FocusKeyManager with the query list of items enabling wrapping
129
206
  this.focusKeyManager = new FocusKeyManager(this.items).withWrap();
@@ -137,14 +214,21 @@ class EuiListComponent {
137
214
  }
138
215
  });
139
216
  }
217
+ /**
218
+ * Manages focus state of rich content navigation within list items.
219
+ * Handles the focus transition between list item elements and their navigable content.
220
+ * Called when right/left arrow keys are pressed on items with navigable content.
221
+ */
140
222
  checkRichContentFocusState() {
141
223
  // eslint-disable-next-line
142
- !this.focusKeyManager.activeItem.euiArrowKeyNavigableDirective.isFocused ? this.focusKeyManager.activeItem.euiArrowKeyNavigableDirective.elementRef.nativeElement.focus() : this.focusKeyManager.activeItem.focus();
224
+ !this.focusKeyManager.activeItem.euiArrowKeyNavigableDirective.isFocused ?
225
+ this.focusKeyManager.activeItem.euiArrowKeyNavigableDirective.elementRef.nativeElement.focus() :
226
+ this.focusKeyManager.activeItem.focus();
143
227
  }
144
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: EuiListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
145
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.7", type: EuiListComponent, isStandalone: false, selector: "[euiList], eui-list", host: { listeners: { "keydown": "onKeydown($event)" }, properties: { "class": "this.cssClasses", "attr.role": "this.role", "attr.tabindex": "this.tabIndex" } }, queries: [{ propertyName: "items", predicate: i0.forwardRef(() => EuiListItemComponent), descendants: true }], ngImport: i0, template: '<ng-content/>', isInline: true, styles: [":root{--_eui-scrollbars-foreground-color: var(--eui-c-neutral-lightest)}html.eui-t-dark{--_eui-scrollbars-foreground-color: var(--eui-c-neutral-light)}.eui-19 :host.eui-list{display:block;height:auto;position:relative;margin:0;padding:0;border:var(--eui-bw-s) solid transparent}.eui-19 :host.eui-list:focus:not([readonly]){outline:2px solid var(--eui-c-focus)!important;outline-offset:-2px!important;transition:none}.eui-19 :host.eui-list:focus-visible:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-19 :host.eui-list [tabindex=\"0\"]:focus:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-19 :host.eui-list button.eui-list-item{padding:var(--eui-s-2xs) var(--eui-s-xs)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
228
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: EuiListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
229
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.1", type: EuiListComponent, isStandalone: false, selector: "[euiList], eui-list", host: { listeners: { "keydown": "onKeydown($event)" }, properties: { "class": "this.cssClasses", "attr.role": "this.role", "attr.tabindex": "this.tabIndex" } }, queries: [{ propertyName: "items", predicate: i0.forwardRef(() => EuiListItemComponent), descendants: true }], ngImport: i0, template: '<ng-content/>', isInline: true, styles: [":root{--_eui-scrollbars-foreground-color: var(--eui-c-neutral-lightest)}html.eui-t-dark{--_eui-scrollbars-foreground-color: var(--eui-c-neutral-light)}.eui-19 :host.eui-list{display:block;height:auto;position:relative;margin:0;padding:0;border:var(--eui-bw-s) solid transparent}.eui-19 :host.eui-list:focus:not([readonly]){outline:2px solid var(--eui-c-focus)!important;outline-offset:-2px!important;transition:none}.eui-19 :host.eui-list:focus-visible:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-19 :host.eui-list [tabindex=\"0\"]:focus:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-19 :host.eui-list button.eui-list-item{padding:var(--eui-s-2xs) var(--eui-s-xs)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
146
230
  }
147
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: EuiListComponent, decorators: [{
231
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: EuiListComponent, decorators: [{
148
232
  type: Component,
149
233
  args: [{ selector: '[euiList], eui-list', template: '<ng-content/>', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, styles: [":root{--_eui-scrollbars-foreground-color: var(--eui-c-neutral-lightest)}html.eui-t-dark{--_eui-scrollbars-foreground-color: var(--eui-c-neutral-light)}.eui-19 :host.eui-list{display:block;height:auto;position:relative;margin:0;padding:0;border:var(--eui-bw-s) solid transparent}.eui-19 :host.eui-list:focus:not([readonly]){outline:2px solid var(--eui-c-focus)!important;outline-offset:-2px!important;transition:none}.eui-19 :host.eui-list:focus-visible:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-19 :host.eui-list [tabindex=\"0\"]:focus:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-19 :host.eui-list button.eui-list-item{padding:var(--eui-s-2xs) var(--eui-s-xs)}\n"] }]
150
234
  }], propDecorators: { cssClasses: [{
@@ -164,15 +248,32 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImpor
164
248
  args: ['keydown', ['$event']]
165
249
  }] } });
166
250
 
251
+ /**
252
+ * Angular module that provides list components for navigation and content organization.
253
+ *
254
+ * This module bundles the EuiListComponent and EuiListItemComponent along with their
255
+ * required dependencies to create accessible, keyboard-navigable list interfaces.
256
+ *
257
+ * @example
258
+ * // Import the module in your application
259
+ * import { EuiListModule } from '@eui/components/eui-list';
260
+ *
261
+ * @NgModule({
262
+ * imports: [
263
+ * EuiListModule
264
+ * ]
265
+ * })
266
+ * export class YourFeatureModule {}
267
+ */
167
268
  class EuiListModule {
168
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: EuiListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
169
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.1.7", ngImport: i0, type: EuiListModule, declarations: [EuiListComponent, EuiListItemComponent], imports: [CommonModule, EuiIconModule, EuiButtonModule, EuiLabelModule], exports: [EuiListComponent, EuiListItemComponent] }); }
170
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: EuiListModule, imports: [CommonModule, EuiIconModule, EuiButtonModule, EuiLabelModule] }); }
269
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: EuiListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
270
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.1", ngImport: i0, type: EuiListModule, declarations: [EuiListComponent, EuiListItemComponent], imports: [CommonModule, EuiIconModule, EuiButtonComponent, EuiLabelComponent], exports: [EuiListComponent, EuiListItemComponent] }); }
271
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: EuiListModule, imports: [CommonModule, EuiIconModule, EuiButtonComponent, EuiLabelComponent] }); }
171
272
  }
172
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImport: i0, type: EuiListModule, decorators: [{
273
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: EuiListModule, decorators: [{
173
274
  type: NgModule,
174
275
  args: [{
175
- imports: [CommonModule, EuiIconModule, EuiButtonModule, EuiLabelModule],
276
+ imports: [CommonModule, EuiIconModule, EuiButtonComponent, EuiLabelComponent],
176
277
  declarations: [EuiListComponent, EuiListItemComponent],
177
278
  exports: [EuiListComponent, EuiListItemComponent],
178
279
  }]
@@ -1 +1 @@
1
- {"version":3,"file":"eui-components-eui-list.mjs","sources":["../../eui-list/eui-list-item/eui-list-item.component.ts","../../eui-list/eui-list-item/eui-list-item.component.html","../../eui-list/eui-list.component.ts","../../eui-list/eui-list.module.ts","../../eui-list/eui-components-eui-list.ts"],"sourcesContent":["import {\n Component,\n HostBinding,\n ContentChildren,\n forwardRef,\n QueryList,\n Input,\n ElementRef,\n booleanAttribute,\n ContentChild,\n} from '@angular/core';\nimport { Highlightable, FocusableOption } from '@angular/cdk/a11y';\n\nimport { BaseStatesDirective } from '@eui/components/shared';\nimport { EuiListComponent } from '../eui-list.component';\nimport { EuiIconSvgComponent } from '@eui/components/eui-icon';\nimport { EuiLabelComponent } from '@eui/components/eui-label';\nimport { EuiTemplateDirective, EuiArrowKeyNavigableDirective } from '@eui/components/directives';\n\n@Component({\n templateUrl: './eui-list-item.component.html',\n selector: '[euiListItem], eui-list-item',\n styleUrls: ['../styles/list-item.scss'],\n standalone: false,\n hostDirectives: [\n {\n directive: BaseStatesDirective,\n inputs: [\n 'euiPrimary',\n 'euiSecondary',\n 'euiSuccess',\n 'euiInfo',\n 'euiWarning',\n 'euiDanger',\n 'euiAccent',\n 'euiVariant',\n ],\n },\n ],\n})\nexport class EuiListItemComponent implements FocusableOption, Highlightable {\n @HostBinding('class')\n get cssClasses(): string {\n return [\n this.baseStatesDirective.getCssClasses('eui-list-item'),\n this.isActive ? 'eui-list-item--active' : '',\n ].join(' ').trim();\n }\n\n @HostBinding('attr.role') role = 'listitem';\n @HostBinding('attr.data-e2e') @Input() e2eAttr = 'eui-list-item';\n @HostBinding('attr.tabindex') tabindex = '-1';\n\n @ContentChildren(forwardRef(() => EuiListComponent), { descendants: true }) euiListComponent: QueryList<EuiListComponent>;\n @ContentChildren(forwardRef(() => EuiIconSvgComponent), { descendants: true }) euiIconSvgComponent: QueryList<EuiIconSvgComponent>;\n @ContentChildren(forwardRef(() => EuiLabelComponent), { descendants: true }) euiLabelComponent: QueryList<EuiLabelComponent>;\n @ContentChildren(forwardRef(() => EuiTemplateDirective), { descendants: true }) templates: QueryList<EuiTemplateDirective>;\n @ContentChild(forwardRef(() => EuiArrowKeyNavigableDirective)) euiArrowKeyNavigableDirective: EuiArrowKeyNavigableDirective;\n\n @Input({ transform: booleanAttribute }) isActive = false;\n\n constructor(\n public baseStatesDirective: BaseStatesDirective,\n private elementRef: ElementRef,\n ) {\n }\n\n public focus(): void {\n this.elementRef.nativeElement.focus();\n }\n\n public click(): void {\n this.elementRef.nativeElement.click();\n }\n\n public setActiveStyles(): void {\n this.isActive = true;\n }\n\n public setInactiveStyles(): void {\n this.isActive = false;\n }\n}\n","<div class=\"eui-list-item__container\" [class.eui-list-item--has-submenu]=\"euiListComponent.length > 0\">\n <div class=\"eui-list-item__content\">\n <div *ngIf=\"euiIconSvgComponent.length > 0\" class=\"eui-list-item__content-icon\">\n <ng-content select=\"eui-icon-svg, span[euiIconSvg]\"></ng-content>\n </div>\n <div *ngIf=\"euiLabelComponent.length > 0\" class=\"eui-list-item__content-text\">\n <ng-content select=\"[eui-label], [euiLabel]\"></ng-content>\n </div>\n <ng-content></ng-content>\n </div>\n\n <div\n class=\"eui-list-item__sub-list\"\n *ngIf=\"(euiListComponent.length > 0) || (euiListComponent.length > 0)\">\n <ng-content select=\"[eui-list], [euiList]\"></ng-content>\n </div>\n</div>\n","import {\n Component,\n HostBinding,\n ChangeDetectionStrategy,\n AfterContentInit,\n ContentChildren,\n forwardRef,\n QueryList,\n HostListener,\n} from '@angular/core';\nimport { FocusKeyManager } from '@angular/cdk/a11y';\n\nimport { EuiListItemComponent } from './eui-list-item/eui-list-item.component';\n\n@Component({\n selector: '[euiList], eui-list',\n template: '<ng-content/>',\n styleUrls: ['./styles/list.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class EuiListComponent implements AfterContentInit {\n @HostBinding('class')\n get cssClasses(): string {\n return 'eui-list';\n }\n\n @HostBinding('attr.role') role = 'list';\n @HostBinding('attr.tabindex') tabIndex: string;\n @ContentChildren(forwardRef(() => EuiListItemComponent), { descendants: true }) items: QueryList<EuiListItemComponent>;\n private focusKeyManager: FocusKeyManager<EuiListItemComponent>;\n\n @HostListener('keydown', ['$event'])\n onKeydown(event: KeyboardEvent): void {\n switch (event.key) {\n case 'Enter': {\n if (this.focusKeyManager?.activeItem) {\n this.focusKeyManager.activeItem.click();\n }\n break;\n }\n case 'ArrowRight': {\n if(this.focusKeyManager.activeItem?.euiArrowKeyNavigableDirective){\n this.checkRichContentFocusState();\n }\n break;\n }\n case 'ArrowLeft': {\n if(this.focusKeyManager.activeItem?.euiArrowKeyNavigableDirective){\n this.checkRichContentFocusState();\n }\n break;\n }\n default: {\n this.focusKeyManager.onKeydown(event);\n break;\n }\n }\n }\n\n ngAfterContentInit(): void {\n // instantiates FocusKeyManager with the query list of items enabling wrapping\n this.focusKeyManager = new FocusKeyManager(this.items).withWrap();\n\n // checks whether an item contains a sub-menu and if so it sets it's ul element tabindex to -1\n this.items.forEach((item) => {\n if (item.euiListComponent.length > 0) {\n item.euiListComponent.forEach((list) => (list.tabIndex = '-1'));\n } else {\n this.tabIndex = '0';\n }\n });\n }\n\n checkRichContentFocusState(): void {\n // eslint-disable-next-line\n !this.focusKeyManager.activeItem.euiArrowKeyNavigableDirective.isFocused ? this.focusKeyManager.activeItem.euiArrowKeyNavigableDirective.elementRef.nativeElement.focus() : this.focusKeyManager.activeItem.focus();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { EuiListComponent } from './eui-list.component';\nimport { EuiListItemComponent } from './eui-list-item/eui-list-item.component';\nimport { EuiIconModule } from '@eui/components/eui-icon';\nimport { EuiLabelModule } from '@eui/components/eui-label';\nimport { EuiButtonModule } from '@eui/components/eui-button';\n\n@NgModule({\n imports: [CommonModule, EuiIconModule, EuiButtonModule, EuiLabelModule],\n declarations: [EuiListComponent, EuiListItemComponent],\n exports: [EuiListComponent, EuiListItemComponent],\n})\nexport class EuiListModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"eui-components-eui-list.mjs","sources":["../../eui-list/eui-list-item/eui-list-item.component.ts","../../eui-list/eui-list-item/eui-list-item.component.html","../../eui-list/eui-list.component.ts","../../eui-list/eui-list.module.ts","../../eui-list/eui-components-eui-list.ts"],"sourcesContent":["import {\n Component,\n HostBinding,\n ContentChildren,\n forwardRef,\n QueryList,\n Input,\n ElementRef,\n booleanAttribute,\n ContentChild,\n} from '@angular/core';\nimport { Highlightable, FocusableOption } from '@angular/cdk/a11y';\n\nimport { BaseStatesDirective } from '@eui/components/shared';\nimport { EuiListComponent } from '../eui-list.component';\nimport { EuiIconSvgComponent } from '@eui/components/eui-icon';\nimport { EuiLabelComponent } from '@eui/components/eui-label';\nimport { EuiTemplateDirective, EuiArrowKeyNavigableDirective } from '@eui/components/directives';\n\n/**\n * @description\n * Component that represents a single item within an EuiList.\n * Implements FocusableOption and Highlightable for keyboard navigation and accessibility.\n *\n * This component is designed to work with the EuiListComponent as part of a navigable list.\n * It supports various display states through the BaseStatesDirective, and can contain\n * nested list components, icons, labels, and custom templates.\n *\n * @example\n * <eui-list>\n * <eui-list-item>Simple item</eui-list-item>\n * <eui-list-item [euiPrimary]=\"true\">Primary item</eui-list-item>\n * <eui-list-item [isActive]=\"true\">Active item</eui-list-item>\n * </eui-list>\n */\n@Component({\n templateUrl: './eui-list-item.component.html',\n selector: '[euiListItem], eui-list-item',\n styleUrls: ['../styles/list-item.scss'],\n standalone: false,\n hostDirectives: [\n {\n directive: BaseStatesDirective,\n inputs: [\n 'euiPrimary',\n 'euiSecondary',\n 'euiSuccess',\n 'euiInfo',\n 'euiWarning',\n 'euiDanger',\n 'euiAccent',\n 'euiVariant',\n ],\n },\n ],\n})\nexport class EuiListItemComponent implements FocusableOption, Highlightable {\n @HostBinding('class')\n get cssClasses(): string {\n return [\n this.baseStatesDirective.getCssClasses('eui-list-item'),\n this.isActive ? 'eui-list-item--active' : '',\n ].join(' ').trim();\n }\n\n @HostBinding('attr.role') role = 'listitem';\n @HostBinding('attr.data-e2e') @Input() e2eAttr = 'eui-list-item';\n @HostBinding('attr.tabindex') tabindex = '-1';\n\n @ContentChildren(forwardRef(() => EuiListComponent), { descendants: true }) euiListComponent: QueryList<EuiListComponent>;\n @ContentChildren(forwardRef(() => EuiIconSvgComponent), { descendants: true }) euiIconSvgComponent: QueryList<EuiIconSvgComponent>;\n @ContentChildren(forwardRef(() => EuiLabelComponent), { descendants: true }) euiLabelComponent: QueryList<EuiLabelComponent>;\n @ContentChildren(forwardRef(() => EuiTemplateDirective), { descendants: true }) templates: QueryList<EuiTemplateDirective>;\n @ContentChild(forwardRef(() => EuiArrowKeyNavigableDirective)) euiArrowKeyNavigableDirective: EuiArrowKeyNavigableDirective;\n\n @Input({ transform: booleanAttribute }) isActive = false;\n\n constructor(\n public baseStatesDirective: BaseStatesDirective,\n private elementRef: ElementRef,\n ) {\n }\n\n /**\n * Sets focus on the list item element.\n * Used by the FocusKeyManager to handle keyboard navigation within the list.\n */\n public focus(): void {\n this.elementRef.nativeElement.focus();\n }\n\n /**\n * Programmatically triggers a click event on the list item element.\n * Typically, invoked when the user presses Enter while the item is focused.\n */\n // TODO: make it protected\n public click(): void {\n this.elementRef.nativeElement.click();\n }\n\n /**\n * Applies active styling to the list item.\n * Called by the FocusKeyManager when this item becomes the active item in the list.\n * Sets the isActive flag to true, which adds the 'eui-list-item--active' CSS class.\n */\n public setActiveStyles(): void {\n this.isActive = true;\n }\n\n /**\n * Removes active styling from the list item.\n * Called by the FocusKeyManager when another item becomes the active item.\n * Sets the isActive flag to false, removing the 'eui-list-item--active' CSS class.\n */\n public setInactiveStyles(): void {\n this.isActive = false;\n }\n}\n","<div class=\"eui-list-item__container\" [class.eui-list-item--has-submenu]=\"euiListComponent.length > 0\">\n <div class=\"eui-list-item__content\">\n <div *ngIf=\"euiIconSvgComponent.length > 0\" class=\"eui-list-item__content-icon\">\n <ng-content select=\"eui-icon-svg, span[euiIconSvg]\"></ng-content>\n </div>\n <div *ngIf=\"euiLabelComponent.length > 0\" class=\"eui-list-item__content-text\">\n <ng-content select=\"[eui-label], [euiLabel]\"></ng-content>\n </div>\n <ng-content></ng-content>\n </div>\n\n <div\n class=\"eui-list-item__sub-list\"\n *ngIf=\"(euiListComponent.length > 0) || (euiListComponent.length > 0)\">\n <ng-content select=\"[eui-list], [euiList]\"></ng-content>\n </div>\n</div>\n","import {\n Component,\n HostBinding,\n ChangeDetectionStrategy,\n AfterContentInit,\n ContentChildren,\n forwardRef,\n QueryList,\n HostListener,\n} from '@angular/core';\nimport { FocusKeyManager } from '@angular/cdk/a11y';\n\nimport { EuiListItemComponent } from './eui-list-item/eui-list-item.component';\n\n/**\n * @description\n * Component that provides a navigable list implementation with keyboard interaction support.\n * Works with Angular CDK's FocusKeyManager to enable keyboard navigation between list items.\n *\n * The component automatically manages focus between nested lists and supports rich content\n * navigation. It can contain multiple EuiListItemComponents as children.\n *\n * @example\n * <eui-list>\n * <eui-list-item>First item</eui-list-item>\n * <eui-list-item>Second item</eui-list-item>\n * <eui-list-item>\n * Item with nested list\n * <eui-list>\n * <eui-list-item>Nested item 1</eui-list-item>\n * <eui-list-item>Nested item 2</eui-list-item>\n * </eui-list>\n * </eui-list-item>\n * </eui-list>\n */\n@Component({\n selector: '[euiList], eui-list',\n template: '<ng-content/>',\n styleUrls: ['./styles/list.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class EuiListComponent implements AfterContentInit {\n /**\n * CSS class binding that applies the 'eui-list' class to the host element.\n * This class applies the basic styling for the list component.\n *\n * @returns {string} The CSS class to be applied to the host element\n */\n @HostBinding('class')\n get cssClasses(): string {\n return 'eui-list';\n }\n\n /**\n * Binds the 'list' ARIA role to the host element for accessibility.\n * This informs screen readers that this component functions as a list.\n */\n @HostBinding('attr.role') role = 'list';\n /**\n * Binds the tabIndex attribute to the host element.\n * Controls whether the list can receive keyboard focus.\n * Set to '0' for top-level lists and '-1' for nested lists.\n */\n @HostBinding('attr.tabindex') tabIndex: string;\n /**\n * Collection of all list item components that are children of this list.\n * Includes items from nested lists due to the 'descendants: true' option.\n */\n @ContentChildren(forwardRef(() => EuiListItemComponent), { descendants: true }) items: QueryList<EuiListItemComponent>;\n private focusKeyManager: FocusKeyManager<EuiListItemComponent>;\n\n /**\n * Handles keyboard events for navigating the list.\n * Supports Enter key for selection and arrow keys for navigation.\n *\n * @param {KeyboardEvent} event - The keyboard event to handle\n */\n @HostListener('keydown', ['$event'])\n onKeydown(event: KeyboardEvent): void {\n switch (event.key) {\n case 'Enter': {\n if (this.focusKeyManager?.activeItem) {\n this.focusKeyManager.activeItem.click();\n }\n break;\n }\n case 'ArrowRight': {\n if(this.focusKeyManager.activeItem?.euiArrowKeyNavigableDirective){\n this.checkRichContentFocusState();\n }\n break;\n }\n case 'ArrowLeft': {\n if(this.focusKeyManager.activeItem?.euiArrowKeyNavigableDirective){\n this.checkRichContentFocusState();\n }\n break;\n }\n default: {\n this.focusKeyManager.onKeydown(event);\n break;\n }\n }\n }\n\n /**\n * Initializes the component after content (list items) has been initialized.\n * Sets up the FocusKeyManager for keyboard navigation and configures tabindex\n * attributes based on nested list structure.\n */\n ngAfterContentInit(): void {\n // instantiates FocusKeyManager with the query list of items enabling wrapping\n this.focusKeyManager = new FocusKeyManager(this.items).withWrap();\n\n // checks whether an item contains a sub-menu and if so it sets it's ul element tabindex to -1\n this.items.forEach((item) => {\n if (item.euiListComponent.length > 0) {\n item.euiListComponent.forEach((list) => (list.tabIndex = '-1'));\n } else {\n this.tabIndex = '0';\n }\n });\n }\n\n /**\n * Manages focus state of rich content navigation within list items.\n * Handles the focus transition between list item elements and their navigable content.\n * Called when right/left arrow keys are pressed on items with navigable content.\n */\n checkRichContentFocusState(): void {\n // eslint-disable-next-line\n !this.focusKeyManager.activeItem.euiArrowKeyNavigableDirective.isFocused ?\n this.focusKeyManager.activeItem.euiArrowKeyNavigableDirective.elementRef.nativeElement.focus() :\n this.focusKeyManager.activeItem.focus();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { EuiListComponent } from './eui-list.component';\nimport { EuiListItemComponent } from './eui-list-item/eui-list-item.component';\nimport { EuiIconModule } from '@eui/components/eui-icon';\nimport { EuiLabelComponent } from '@eui/components/eui-label';\nimport { EuiButtonComponent } from '@eui/components/eui-button';\n\n/**\n * Angular module that provides list components for navigation and content organization.\n *\n * This module bundles the EuiListComponent and EuiListItemComponent along with their\n * required dependencies to create accessible, keyboard-navigable list interfaces.\n *\n * @example\n * // Import the module in your application\n * import { EuiListModule } from '@eui/components/eui-list';\n *\n * @NgModule({\n * imports: [\n * EuiListModule\n * ]\n * })\n * export class YourFeatureModule {}\n */\n@NgModule({\n imports: [CommonModule, EuiIconModule, EuiButtonComponent, EuiLabelComponent],\n declarations: [EuiListComponent, EuiListItemComponent],\n exports: [EuiListComponent, EuiListItemComponent],\n})\nexport class EuiListModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}