@elastic/eui 115.0.0 → 116.0.0-snapshot.1778596789536

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 (290) hide show
  1. package/es/components/accordion/accordion.js +95 -134
  2. package/es/components/collapsible_nav_beta/_kibana_solution/collapsible_nav_kibana_solution.js +14 -11
  3. package/es/components/color_picker/color_palette_picker/color_palette_picker.js +0 -1
  4. package/es/components/combo_box/combo_box.a11y.js +5 -5
  5. package/es/components/combo_box/combo_box.js +61 -53
  6. package/es/components/combo_box/combo_box_options_list/combo_box_options_list.js +147 -84
  7. package/es/components/combo_box/combo_box_options_list/combo_box_options_list.styles.js +8 -7
  8. package/es/components/context_menu/context_menu.js +19 -21
  9. package/es/components/context_menu/context_menu.styles.js +5 -2
  10. package/es/components/context_menu/context_menu_item.js +69 -58
  11. package/es/components/context_menu/context_menu_item.styles.js +14 -28
  12. package/es/components/context_menu/context_menu_panel.js +37 -21
  13. package/es/components/context_menu/context_menu_panel.styles.js +7 -2
  14. package/es/components/context_menu/context_menu_panel_title.js +124 -0
  15. package/es/components/context_menu/context_menu_panel_title.styles.js +20 -0
  16. package/es/components/context_menu/index.js +2 -1
  17. package/es/components/datagrid/body/cell/data_grid_cell.js +35 -29
  18. package/es/components/datagrid/body/cell/data_grid_cell_popover.js +10 -7
  19. package/es/components/datagrid/body/data_grid_body.js +23 -17
  20. package/es/components/datagrid/body/data_grid_body_custom.js +23 -17
  21. package/es/components/datagrid/body/data_grid_body_virtualized.js +23 -17
  22. package/es/components/datagrid/body/header/column_actions.js +1 -2
  23. package/es/components/datagrid/body/header/data_grid_header_cell.js +23 -17
  24. package/es/components/datagrid/controls/column_sorting.js +23 -17
  25. package/es/components/datagrid/data_grid.styles.js +6 -5
  26. package/es/components/datagrid/utils/in_memory.js +23 -17
  27. package/es/components/filter_group/filter_group.a11y.js +8 -2
  28. package/es/components/flyout/flyout_menu.js +1 -4
  29. package/es/components/form/checkbox/checkbox.js +6 -6
  30. package/es/components/form/checkbox/checkbox.styles.js +1 -22
  31. package/es/components/form/checkbox/checkbox_control.js +78 -0
  32. package/es/components/form/checkbox/checkbox_control.styles.js +40 -0
  33. package/es/components/form/checkbox/index.js +1 -0
  34. package/es/components/form/form.styles.js +2 -1
  35. package/es/components/form/radio/radio.styles.js +1 -1
  36. package/es/components/form/super_select/super_select.js +118 -99
  37. package/es/components/form/super_select/super_select.styles.js +4 -8
  38. package/es/components/form/super_select/super_select_item.js +10 -18
  39. package/es/components/link/external_link_icon.js +4 -2
  40. package/es/components/list_group/list_group.js +20 -34
  41. package/es/components/list_group/list_group.styles.js +2 -16
  42. package/es/components/list_group/list_group_item.js +75 -86
  43. package/es/components/list_group/list_group_item.styles.js +17 -61
  44. package/es/components/list_group/list_group_item_extra_action.styles.js +6 -6
  45. package/es/components/list_group/pinnable_list_group/pinnable_list_group.js +16 -28
  46. package/es/components/list_item_layout/_list_item_layout.js +692 -0
  47. package/es/components/list_item_layout/_list_item_layout.styles.js +93 -0
  48. package/es/components/list_item_layout/index.js +9 -0
  49. package/es/components/search_bar/filters/field_value_selection_filter.js +2 -1
  50. package/es/components/selectable/selectable.js +1 -0
  51. package/es/components/selectable/selectable_list/selectable_list.js +52 -36
  52. package/es/components/selectable/selectable_list/selectable_list.styles.js +19 -4
  53. package/es/components/selectable/selectable_list/selectable_list_item.js +45 -152
  54. package/es/components/selectable/selectable_list/utils/get_list_item_size.js +17 -0
  55. package/es/components/selectable/selectable_search/selectable_search.js +4 -1
  56. package/es/components/selectable/selectable_templates/selectable_template_sitewide.js +1 -1
  57. package/es/components/selectable/selectable_templates/selectable_template_sitewide.styles.js +2 -12
  58. package/es/components/selectable/selectable_templates/selectable_template_sitewide_option.js +1 -1
  59. package/es/components/selectable/selectable_templates/selectable_template_sitewide_popover.js +1 -1
  60. package/es/global_styling/mixins/_helpers.js +32 -11
  61. package/eui.d.ts +10453 -8134
  62. package/i18ntokens.json +2607 -2589
  63. package/lib/components/accordion/accordion.js +102 -139
  64. package/lib/components/collapsible_nav_beta/_kibana_solution/collapsible_nav_kibana_solution.js +14 -11
  65. package/lib/components/color_picker/color_palette_picker/color_palette_picker.js +0 -1
  66. package/lib/components/combo_box/combo_box.a11y.js +5 -5
  67. package/lib/components/combo_box/combo_box.js +61 -53
  68. package/lib/components/combo_box/combo_box_options_list/combo_box_options_list.js +145 -82
  69. package/lib/components/combo_box/combo_box_options_list/combo_box_options_list.styles.js +7 -6
  70. package/lib/components/context_menu/context_menu.js +20 -22
  71. package/lib/components/context_menu/context_menu.styles.js +4 -1
  72. package/lib/components/context_menu/context_menu_item.js +70 -59
  73. package/lib/components/context_menu/context_menu_item.styles.js +13 -27
  74. package/lib/components/context_menu/context_menu_panel.js +37 -21
  75. package/lib/components/context_menu/context_menu_panel.styles.js +7 -2
  76. package/lib/components/context_menu/context_menu_panel_title.js +130 -0
  77. package/lib/components/context_menu/context_menu_panel_title.styles.js +26 -0
  78. package/lib/components/context_menu/index.js +8 -1
  79. package/lib/components/datagrid/body/cell/data_grid_cell.js +35 -29
  80. package/lib/components/datagrid/body/cell/data_grid_cell_popover.js +10 -7
  81. package/lib/components/datagrid/body/data_grid_body.js +23 -17
  82. package/lib/components/datagrid/body/data_grid_body_custom.js +23 -17
  83. package/lib/components/datagrid/body/data_grid_body_virtualized.js +23 -17
  84. package/lib/components/datagrid/body/header/column_actions.js +1 -2
  85. package/lib/components/datagrid/body/header/data_grid_header_cell.js +23 -17
  86. package/lib/components/datagrid/controls/column_sorting.js +23 -17
  87. package/lib/components/datagrid/data_grid.styles.js +6 -5
  88. package/lib/components/datagrid/utils/in_memory.js +23 -17
  89. package/lib/components/filter_group/filter_group.a11y.js +8 -2
  90. package/lib/components/flyout/flyout_menu.js +1 -4
  91. package/lib/components/form/checkbox/checkbox.js +6 -6
  92. package/lib/components/form/checkbox/checkbox.styles.js +1 -22
  93. package/lib/components/form/checkbox/checkbox_control.js +84 -0
  94. package/lib/components/form/checkbox/checkbox_control.styles.js +44 -0
  95. package/lib/components/form/checkbox/index.js +7 -0
  96. package/lib/components/form/form.styles.js +2 -1
  97. package/lib/components/form/radio/radio.styles.js +1 -1
  98. package/lib/components/form/super_select/super_select.js +116 -97
  99. package/lib/components/form/super_select/super_select.styles.js +4 -8
  100. package/lib/components/form/super_select/super_select_item.js +13 -18
  101. package/lib/components/link/external_link_icon.js +4 -2
  102. package/lib/components/list_group/list_group.js +21 -35
  103. package/lib/components/list_group/list_group.styles.js +2 -16
  104. package/lib/components/list_group/list_group_item.js +75 -86
  105. package/lib/components/list_group/list_group_item.styles.js +17 -61
  106. package/lib/components/list_group/list_group_item_extra_action.styles.js +5 -5
  107. package/lib/components/list_group/pinnable_list_group/pinnable_list_group.js +16 -28
  108. package/lib/components/list_item_layout/_list_item_layout.js +699 -0
  109. package/lib/components/list_item_layout/_list_item_layout.styles.js +97 -0
  110. package/lib/components/list_item_layout/index.js +12 -0
  111. package/lib/components/search_bar/filters/field_value_selection_filter.js +2 -1
  112. package/lib/components/selectable/selectable.js +1 -0
  113. package/lib/components/selectable/selectable_list/selectable_list.js +50 -34
  114. package/lib/components/selectable/selectable_list/selectable_list.styles.js +20 -5
  115. package/lib/components/selectable/selectable_list/selectable_list_item.js +44 -152
  116. package/lib/components/selectable/selectable_list/utils/get_list_item_size.js +23 -0
  117. package/lib/components/selectable/selectable_search/selectable_search.js +4 -1
  118. package/lib/components/selectable/selectable_templates/selectable_template_sitewide.js +1 -1
  119. package/lib/components/selectable/selectable_templates/selectable_template_sitewide.styles.js +2 -12
  120. package/lib/components/selectable/selectable_templates/selectable_template_sitewide_option.js +1 -1
  121. package/lib/components/selectable/selectable_templates/selectable_template_sitewide_popover.js +1 -1
  122. package/lib/global_styling/mixins/_helpers.js +33 -12
  123. package/optimize/es/components/accordion/accordion.js +88 -126
  124. package/optimize/es/components/collapsible_nav_beta/_kibana_solution/collapsible_nav_kibana_solution.js +1 -4
  125. package/optimize/es/components/color_picker/color_palette_picker/color_palette_picker.js +0 -1
  126. package/optimize/es/components/combo_box/combo_box.a11y.js +5 -5
  127. package/optimize/es/components/combo_box/combo_box.js +60 -52
  128. package/optimize/es/components/combo_box/combo_box_options_list/combo_box_options_list.js +145 -83
  129. package/optimize/es/components/combo_box/combo_box_options_list/combo_box_options_list.styles.js +8 -7
  130. package/optimize/es/components/context_menu/context_menu.js +18 -13
  131. package/optimize/es/components/context_menu/context_menu.styles.js +5 -2
  132. package/optimize/es/components/context_menu/context_menu_item.js +55 -53
  133. package/optimize/es/components/context_menu/context_menu_item.styles.js +14 -28
  134. package/optimize/es/components/context_menu/context_menu_panel.js +36 -17
  135. package/optimize/es/components/context_menu/context_menu_panel.styles.js +7 -2
  136. package/optimize/es/components/context_menu/context_menu_panel_title.js +53 -0
  137. package/optimize/es/components/context_menu/context_menu_panel_title.styles.js +20 -0
  138. package/optimize/es/components/context_menu/index.js +2 -1
  139. package/optimize/es/components/datagrid/body/cell/data_grid_cell_popover.js +10 -7
  140. package/optimize/es/components/datagrid/body/header/column_actions.js +1 -2
  141. package/optimize/es/components/datagrid/data_grid.styles.js +6 -5
  142. package/optimize/es/components/filter_group/filter_group.a11y.js +8 -2
  143. package/optimize/es/components/flyout/flyout_menu.js +1 -4
  144. package/optimize/es/components/form/checkbox/checkbox.js +6 -6
  145. package/optimize/es/components/form/checkbox/checkbox.styles.js +1 -22
  146. package/optimize/es/components/form/checkbox/checkbox_control.js +48 -0
  147. package/optimize/es/components/form/checkbox/checkbox_control.styles.js +40 -0
  148. package/optimize/es/components/form/checkbox/index.js +1 -0
  149. package/optimize/es/components/form/form.styles.js +2 -1
  150. package/optimize/es/components/form/radio/radio.styles.js +1 -1
  151. package/optimize/es/components/form/super_select/super_select.js +118 -90
  152. package/optimize/es/components/form/super_select/super_select.styles.js +4 -8
  153. package/optimize/es/components/form/super_select/super_select_item.js +10 -14
  154. package/optimize/es/components/link/external_link_icon.js +4 -2
  155. package/optimize/es/components/list_group/list_group.js +7 -14
  156. package/optimize/es/components/list_group/list_group.styles.js +2 -16
  157. package/optimize/es/components/list_group/list_group_item.js +62 -79
  158. package/optimize/es/components/list_group/list_group_item.styles.js +17 -61
  159. package/optimize/es/components/list_group/list_group_item_extra_action.styles.js +6 -6
  160. package/optimize/es/components/list_item_layout/_list_item_layout.js +353 -0
  161. package/optimize/es/components/list_item_layout/_list_item_layout.styles.js +93 -0
  162. package/optimize/es/components/list_item_layout/index.js +9 -0
  163. package/optimize/es/components/search_bar/filters/field_value_selection_filter.js +2 -1
  164. package/optimize/es/components/selectable/selectable_list/selectable_list.js +48 -33
  165. package/optimize/es/components/selectable/selectable_list/selectable_list.styles.js +19 -4
  166. package/optimize/es/components/selectable/selectable_list/selectable_list_item.js +41 -143
  167. package/optimize/es/components/selectable/selectable_list/utils/get_list_item_size.js +17 -0
  168. package/optimize/es/components/selectable/selectable_search/selectable_search.js +4 -1
  169. package/optimize/es/components/selectable/selectable_templates/selectable_template_sitewide.js +1 -1
  170. package/optimize/es/components/selectable/selectable_templates/selectable_template_sitewide.styles.js +2 -12
  171. package/optimize/es/components/selectable/selectable_templates/selectable_template_sitewide_option.js +1 -1
  172. package/optimize/es/components/selectable/selectable_templates/selectable_template_sitewide_popover.js +1 -1
  173. package/optimize/es/global_styling/mixins/_helpers.js +32 -11
  174. package/optimize/lib/components/accordion/accordion.js +90 -127
  175. package/optimize/lib/components/collapsible_nav_beta/_kibana_solution/collapsible_nav_kibana_solution.js +1 -4
  176. package/optimize/lib/components/color_picker/color_palette_picker/color_palette_picker.js +0 -1
  177. package/optimize/lib/components/combo_box/combo_box.a11y.js +5 -5
  178. package/optimize/lib/components/combo_box/combo_box.js +60 -52
  179. package/optimize/lib/components/combo_box/combo_box_options_list/combo_box_options_list.js +143 -81
  180. package/optimize/lib/components/combo_box/combo_box_options_list/combo_box_options_list.styles.js +7 -6
  181. package/optimize/lib/components/context_menu/context_menu.js +19 -14
  182. package/optimize/lib/components/context_menu/context_menu.styles.js +4 -1
  183. package/optimize/lib/components/context_menu/context_menu_item.js +56 -54
  184. package/optimize/lib/components/context_menu/context_menu_item.styles.js +13 -27
  185. package/optimize/lib/components/context_menu/context_menu_panel.js +36 -17
  186. package/optimize/lib/components/context_menu/context_menu_panel.styles.js +7 -2
  187. package/optimize/lib/components/context_menu/context_menu_panel_title.js +59 -0
  188. package/optimize/lib/components/context_menu/context_menu_panel_title.styles.js +26 -0
  189. package/optimize/lib/components/context_menu/index.js +8 -1
  190. package/optimize/lib/components/datagrid/body/cell/data_grid_cell_popover.js +10 -7
  191. package/optimize/lib/components/datagrid/body/header/column_actions.js +1 -2
  192. package/optimize/lib/components/datagrid/data_grid.styles.js +6 -5
  193. package/optimize/lib/components/filter_group/filter_group.a11y.js +8 -2
  194. package/optimize/lib/components/flyout/flyout_menu.js +1 -4
  195. package/optimize/lib/components/form/checkbox/checkbox.js +6 -6
  196. package/optimize/lib/components/form/checkbox/checkbox.styles.js +1 -22
  197. package/optimize/lib/components/form/checkbox/checkbox_control.js +54 -0
  198. package/optimize/lib/components/form/checkbox/checkbox_control.styles.js +44 -0
  199. package/optimize/lib/components/form/checkbox/index.js +7 -0
  200. package/optimize/lib/components/form/form.styles.js +2 -1
  201. package/optimize/lib/components/form/radio/radio.styles.js +1 -1
  202. package/optimize/lib/components/form/super_select/super_select.js +116 -88
  203. package/optimize/lib/components/form/super_select/super_select.styles.js +4 -8
  204. package/optimize/lib/components/form/super_select/super_select_item.js +13 -14
  205. package/optimize/lib/components/link/external_link_icon.js +4 -2
  206. package/optimize/lib/components/list_group/list_group.js +8 -15
  207. package/optimize/lib/components/list_group/list_group.styles.js +2 -16
  208. package/optimize/lib/components/list_group/list_group_item.js +62 -79
  209. package/optimize/lib/components/list_group/list_group_item.styles.js +17 -61
  210. package/optimize/lib/components/list_group/list_group_item_extra_action.styles.js +5 -5
  211. package/optimize/lib/components/list_item_layout/_list_item_layout.js +361 -0
  212. package/optimize/lib/components/list_item_layout/_list_item_layout.styles.js +97 -0
  213. package/optimize/lib/components/list_item_layout/index.js +12 -0
  214. package/optimize/lib/components/search_bar/filters/field_value_selection_filter.js +2 -1
  215. package/optimize/lib/components/selectable/selectable_list/selectable_list.js +46 -31
  216. package/optimize/lib/components/selectable/selectable_list/selectable_list.styles.js +20 -5
  217. package/optimize/lib/components/selectable/selectable_list/selectable_list_item.js +41 -143
  218. package/optimize/lib/components/selectable/selectable_list/utils/get_list_item_size.js +23 -0
  219. package/optimize/lib/components/selectable/selectable_search/selectable_search.js +4 -1
  220. package/optimize/lib/components/selectable/selectable_templates/selectable_template_sitewide.js +1 -1
  221. package/optimize/lib/components/selectable/selectable_templates/selectable_template_sitewide.styles.js +2 -12
  222. package/optimize/lib/components/selectable/selectable_templates/selectable_template_sitewide_option.js +1 -1
  223. package/optimize/lib/components/selectable/selectable_templates/selectable_template_sitewide_popover.js +1 -1
  224. package/optimize/lib/global_styling/mixins/_helpers.js +33 -12
  225. package/package.json +6 -5
  226. package/test-env/components/accordion/accordion.js +92 -129
  227. package/test-env/components/collapsible_nav_beta/_kibana_solution/collapsible_nav_kibana_solution.js +14 -11
  228. package/test-env/components/color_picker/color_palette_picker/color_palette_picker.js +0 -1
  229. package/test-env/components/combo_box/combo_box.a11y.js +5 -5
  230. package/test-env/components/combo_box/combo_box.js +61 -53
  231. package/test-env/components/combo_box/combo_box_options_list/combo_box_options_list.js +145 -82
  232. package/test-env/components/combo_box/combo_box_options_list/combo_box_options_list.styles.js +7 -6
  233. package/test-env/components/context_menu/context_menu.js +20 -22
  234. package/test-env/components/context_menu/context_menu.styles.js +4 -1
  235. package/test-env/components/context_menu/context_menu_item.js +67 -59
  236. package/test-env/components/context_menu/context_menu_item.styles.js +13 -27
  237. package/test-env/components/context_menu/context_menu_panel.js +37 -21
  238. package/test-env/components/context_menu/context_menu_panel.styles.js +7 -2
  239. package/test-env/components/context_menu/context_menu_panel_title.js +129 -0
  240. package/test-env/components/context_menu/context_menu_panel_title.styles.js +26 -0
  241. package/test-env/components/context_menu/index.js +8 -1
  242. package/test-env/components/datagrid/body/cell/data_grid_cell.js +35 -29
  243. package/test-env/components/datagrid/body/cell/data_grid_cell_popover.js +10 -7
  244. package/test-env/components/datagrid/body/data_grid_body.js +23 -17
  245. package/test-env/components/datagrid/body/data_grid_body_custom.js +23 -17
  246. package/test-env/components/datagrid/body/data_grid_body_virtualized.js +23 -17
  247. package/test-env/components/datagrid/body/header/column_actions.js +1 -2
  248. package/test-env/components/datagrid/body/header/data_grid_header_cell.js +23 -17
  249. package/test-env/components/datagrid/controls/column_sorting.js +23 -17
  250. package/test-env/components/datagrid/data_grid.styles.js +6 -5
  251. package/test-env/components/datagrid/utils/in_memory.js +23 -17
  252. package/test-env/components/filter_group/filter_group.a11y.js +8 -2
  253. package/test-env/components/flyout/flyout_menu.js +1 -4
  254. package/test-env/components/form/checkbox/checkbox.js +6 -6
  255. package/test-env/components/form/checkbox/checkbox.styles.js +1 -22
  256. package/test-env/components/form/checkbox/checkbox_control.js +83 -0
  257. package/test-env/components/form/checkbox/checkbox_control.styles.js +44 -0
  258. package/test-env/components/form/checkbox/index.js +7 -0
  259. package/test-env/components/form/form.styles.js +2 -1
  260. package/test-env/components/form/radio/radio.styles.js +1 -1
  261. package/test-env/components/form/super_select/super_select.js +116 -97
  262. package/test-env/components/form/super_select/super_select.styles.js +4 -8
  263. package/test-env/components/form/super_select/super_select_item.js +13 -18
  264. package/test-env/components/link/external_link_icon.js +4 -2
  265. package/test-env/components/list_group/list_group.js +21 -35
  266. package/test-env/components/list_group/list_group.styles.js +2 -16
  267. package/test-env/components/list_group/list_group_item.js +75 -86
  268. package/test-env/components/list_group/list_group_item.styles.js +17 -61
  269. package/test-env/components/list_group/list_group_item_extra_action.styles.js +5 -5
  270. package/test-env/components/list_group/pinnable_list_group/pinnable_list_group.js +16 -28
  271. package/test-env/components/list_item_layout/_list_item_layout.js +691 -0
  272. package/test-env/components/list_item_layout/_list_item_layout.styles.js +97 -0
  273. package/test-env/components/list_item_layout/index.js +12 -0
  274. package/test-env/components/search_bar/filters/field_value_selection_filter.js +2 -1
  275. package/test-env/components/selectable/selectable.js +1 -0
  276. package/test-env/components/selectable/selectable_list/selectable_list.js +50 -34
  277. package/test-env/components/selectable/selectable_list/selectable_list.styles.js +20 -5
  278. package/test-env/components/selectable/selectable_list/selectable_list_item.js +42 -147
  279. package/test-env/components/selectable/selectable_list/utils/get_list_item_size.js +23 -0
  280. package/test-env/components/selectable/selectable_search/selectable_search.js +4 -1
  281. package/test-env/components/selectable/selectable_templates/selectable_template_sitewide.js +1 -1
  282. package/test-env/components/selectable/selectable_templates/selectable_template_sitewide.styles.js +2 -12
  283. package/test-env/components/selectable/selectable_templates/selectable_template_sitewide_option.js +1 -1
  284. package/test-env/components/selectable/selectable_templates/selectable_template_sitewide_popover.js +1 -1
  285. package/test-env/global_styling/mixins/_helpers.js +33 -12
  286. package/es/components/selectable/selectable_list/selectable_list_item.styles.js +0 -55
  287. package/lib/components/selectable/selectable_list/selectable_list_item.styles.js +0 -59
  288. package/optimize/es/components/selectable/selectable_list/selectable_list_item.styles.js +0 -55
  289. package/optimize/lib/components/selectable/selectable_list/selectable_list_item.styles.js +0 -59
  290. package/test-env/components/selectable/selectable_list/selectable_list_item.styles.js +0 -59
@@ -1,21 +1,13 @@
1
- var _excluded = ["children", "className", "id", "role", "element", "buttonElement", "buttonProps", "buttonClassName", "buttonContentClassName", "buttonContent", "arrowDisplay", "arrowProps", "extraAction", "paddingSize", "borders", "initialIsOpen", "forceState", "isLoading", "isLoadingMessage", "isDisabled", "theme"];
2
- function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
1
+ var _excluded = ["children", "className", "id", "role", "element", "buttonElement", "buttonProps", "buttonClassName", "buttonContentClassName", "buttonContent", "arrowDisplay", "arrowProps", "extraAction", "paddingSize", "borders", "initialIsOpen", "forceState", "isLoading", "isLoadingMessage", "isDisabled", "onToggle"];
3
2
  function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
3
+ function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
4
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
5
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
6
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
7
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
8
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
4
9
  function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], t.indexOf(o) >= 0 || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
5
10
  function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.indexOf(n) >= 0) continue; t[n] = r[n]; } return t; }
6
- function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
7
- function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }
8
- function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
9
- function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
10
- function _possibleConstructorReturn(t, e) { if (e && ("object" == _typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return _assertThisInitialized(t); }
11
- function _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; }
12
- function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
13
- function _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); }
14
- function _inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && _setPrototypeOf(t, e); }
15
- function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }
16
- function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
17
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
18
- function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
19
11
  /*
20
12
  * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
21
13
  * or more contributor license agreements. Licensed under the Elastic License
@@ -24,132 +16,102 @@ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e
24
16
  * Side Public License, v 1.
25
17
  */
26
18
 
27
- import React, { Component } from 'react';
19
+ import React, { useState } from 'react';
28
20
  import PropTypes from "prop-types";
29
21
  import classNames from 'classnames';
30
- import { htmlIdGenerator, withEuiTheme } from '../../services';
22
+ import { useEuiMemoizedStyles, useGeneratedHtmlId } from '../../services';
31
23
  import { EuiLoadingSpinner } from '../loading';
32
24
  import { EuiAccordionTrigger } from './accordion_trigger';
33
25
  import { EuiAccordionChildren } from './accordion_children';
34
26
  import { euiAccordionStyles } from './accordion.styles';
35
27
  import { jsx as ___EmotionJSX } from "@emotion/react";
36
28
  export var PADDING_SIZES = ['none', 'xs', 's', 'm', 'l', 'xl'];
37
- export var EuiAccordionClass = /*#__PURE__*/function (_Component) {
38
- function EuiAccordionClass() {
39
- var _this;
40
- _classCallCheck(this, EuiAccordionClass);
41
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
42
- args[_key] = arguments[_key];
29
+ export var EuiAccordion = function EuiAccordion(_ref) {
30
+ var _buttonProps$id;
31
+ var children = _ref.children,
32
+ className = _ref.className,
33
+ id = _ref.id,
34
+ _ref$role = _ref.role,
35
+ role = _ref$role === void 0 ? 'group' : _ref$role,
36
+ _ref$element = _ref.element,
37
+ Element = _ref$element === void 0 ? 'div' : _ref$element,
38
+ _ref$buttonElement = _ref.buttonElement,
39
+ buttonElement = _ref$buttonElement === void 0 ? 'button' : _ref$buttonElement,
40
+ buttonProps = _ref.buttonProps,
41
+ buttonClassName = _ref.buttonClassName,
42
+ buttonContentClassName = _ref.buttonContentClassName,
43
+ buttonContent = _ref.buttonContent,
44
+ _ref$arrowDisplay = _ref.arrowDisplay,
45
+ arrowDisplay = _ref$arrowDisplay === void 0 ? 'left' : _ref$arrowDisplay,
46
+ arrowProps = _ref.arrowProps,
47
+ extraAction = _ref.extraAction,
48
+ _ref$paddingSize = _ref.paddingSize,
49
+ paddingSize = _ref$paddingSize === void 0 ? 'none' : _ref$paddingSize,
50
+ _ref$borders = _ref.borders,
51
+ borders = _ref$borders === void 0 ? 'none' : _ref$borders,
52
+ _ref$initialIsOpen = _ref.initialIsOpen,
53
+ initialIsOpen = _ref$initialIsOpen === void 0 ? false : _ref$initialIsOpen,
54
+ forceState = _ref.forceState,
55
+ _ref$isLoading = _ref.isLoading,
56
+ isLoading = _ref$isLoading === void 0 ? false : _ref$isLoading,
57
+ _ref$isLoadingMessage = _ref.isLoadingMessage,
58
+ isLoadingMessage = _ref$isLoadingMessage === void 0 ? false : _ref$isLoadingMessage,
59
+ _ref$isDisabled = _ref.isDisabled,
60
+ isDisabled = _ref$isDisabled === void 0 ? false : _ref$isDisabled,
61
+ onToggle = _ref.onToggle,
62
+ rest = _objectWithoutProperties(_ref, _excluded);
63
+ var _useState = useState(forceState ? forceState === 'open' : initialIsOpen),
64
+ _useState2 = _slicedToArray(_useState, 2),
65
+ isOpenState = _useState2[0],
66
+ setIsOpenState = _useState2[1];
67
+ var isOpen = forceState ? forceState === 'open' : isOpenState;
68
+ var onAccordionToggle = function onAccordionToggle() {
69
+ if (forceState) {
70
+ onToggle === null || onToggle === void 0 || onToggle(!isOpen);
71
+ } else {
72
+ var nextState = !isOpenState;
73
+ setIsOpenState(nextState);
74
+ onToggle === null || onToggle === void 0 || onToggle(nextState);
43
75
  }
44
- _this = _callSuper(this, EuiAccordionClass, [].concat(args));
45
- _defineProperty(_this, "state", {
46
- isOpen: _this.props.forceState ? _this.props.forceState === 'open' : _this.props.initialIsOpen
47
- });
48
- _defineProperty(_this, "onToggle", function () {
49
- var forceState = _this.props.forceState;
50
- if (forceState) {
51
- var _this$props$onToggle, _this$props;
52
- var nextState = !_this.isOpen;
53
- (_this$props$onToggle = (_this$props = _this.props).onToggle) === null || _this$props$onToggle === void 0 || _this$props$onToggle.call(_this$props, nextState);
54
- } else {
55
- _this.setState(function (prevState) {
56
- return {
57
- isOpen: !prevState.isOpen
58
- };
59
- }, function () {
60
- var _this$props$onToggle2, _this$props2;
61
- (_this$props$onToggle2 = (_this$props2 = _this.props).onToggle) === null || _this$props$onToggle2 === void 0 || _this$props$onToggle2.call(_this$props2, _this.state.isOpen);
62
- });
63
- }
64
- });
65
- _defineProperty(_this, "generatedId", htmlIdGenerator()());
66
- return _this;
67
- }
68
- _inherits(EuiAccordionClass, _Component);
69
- return _createClass(EuiAccordionClass, [{
70
- key: "isOpen",
71
- get: function get() {
72
- return this.props.forceState ? this.props.forceState === 'open' : this.state.isOpen;
73
- }
74
- }, {
75
- key: "render",
76
- value: function render() {
77
- var _buttonProps$id;
78
- var _this$props3 = this.props,
79
- children = _this$props3.children,
80
- className = _this$props3.className,
81
- id = _this$props3.id,
82
- role = _this$props3.role,
83
- _this$props3$element = _this$props3.element,
84
- Element = _this$props3$element === void 0 ? 'div' : _this$props3$element,
85
- buttonElement = _this$props3.buttonElement,
86
- buttonProps = _this$props3.buttonProps,
87
- buttonClassName = _this$props3.buttonClassName,
88
- buttonContentClassName = _this$props3.buttonContentClassName,
89
- buttonContent = _this$props3.buttonContent,
90
- arrowDisplay = _this$props3.arrowDisplay,
91
- arrowProps = _this$props3.arrowProps,
92
- extraAction = _this$props3.extraAction,
93
- paddingSize = _this$props3.paddingSize,
94
- borders = _this$props3.borders,
95
- initialIsOpen = _this$props3.initialIsOpen,
96
- forceState = _this$props3.forceState,
97
- isLoading = _this$props3.isLoading,
98
- isLoadingMessage = _this$props3.isLoadingMessage,
99
- isDisabled = _this$props3.isDisabled,
100
- theme = _this$props3.theme,
101
- rest = _objectWithoutProperties(_this$props3, _excluded);
102
- var classes = classNames('euiAccordion', {
103
- 'euiAccordion-isOpen': this.isOpen
104
- }, className);
105
- var styles = euiAccordionStyles(theme);
106
- var cssStyles = [styles.euiAccordion, borders !== 'none' && styles.borders.borders, borders !== 'none' && styles.borders[borders]];
107
- var buttonId = (_buttonProps$id = buttonProps === null || buttonProps === void 0 ? void 0 : buttonProps.id) !== null && _buttonProps$id !== void 0 ? _buttonProps$id : this.generatedId;
108
- return ___EmotionJSX(Element, _extends({
109
- className: classes,
110
- css: cssStyles
111
- }, rest), ___EmotionJSX(EuiAccordionTrigger, {
112
- ariaControlsId: id,
113
- buttonId: buttonId
114
- // Force button element to be a legend if the element is a fieldset
115
- ,
116
- buttonElement: Element === 'fieldset' ? 'legend' : buttonElement,
117
- buttonClassName: buttonClassName,
118
- buttonContent: buttonContent,
119
- buttonContentClassName: buttonContentClassName,
120
- buttonProps: buttonProps,
121
- arrowProps: arrowProps,
122
- arrowDisplay: arrowDisplay,
123
- isDisabled: isDisabled,
124
- isOpen: this.isOpen,
125
- onToggle: this.onToggle,
126
- extraAction: isLoading ? ___EmotionJSX(EuiLoadingSpinner, null) : extraAction
127
- }), ___EmotionJSX(EuiAccordionChildren, {
128
- role: role,
129
- id: id,
130
- "aria-labelledby": buttonId,
131
- paddingSize: paddingSize,
132
- isLoading: isLoading,
133
- isLoadingMessage: isLoadingMessage,
134
- isOpen: this.isOpen,
135
- initialIsOpen: initialIsOpen
136
- }, children));
137
- }
138
- }]);
139
- }(Component);
140
- _defineProperty(EuiAccordionClass, "defaultProps", {
141
- initialIsOpen: false,
142
- borders: 'none',
143
- paddingSize: 'none',
144
- arrowDisplay: 'left',
145
- isLoading: false,
146
- isDisabled: false,
147
- isLoadingMessage: false,
148
- element: 'div',
149
- buttonElement: 'button',
150
- role: 'group'
151
- });
152
- EuiAccordionClass.propTypes = {
76
+ };
77
+ var generatedId = useGeneratedHtmlId();
78
+ var buttonId = (_buttonProps$id = buttonProps === null || buttonProps === void 0 ? void 0 : buttonProps.id) !== null && _buttonProps$id !== void 0 ? _buttonProps$id : generatedId;
79
+ var classes = classNames('euiAccordion', {
80
+ 'euiAccordion-isOpen': isOpen
81
+ }, className);
82
+ var styles = useEuiMemoizedStyles(euiAccordionStyles);
83
+ var cssStyles = [styles.euiAccordion, borders !== 'none' && styles.borders.borders, borders !== 'none' && styles.borders[borders]];
84
+ return ___EmotionJSX(Element, _extends({
85
+ className: classes,
86
+ css: cssStyles
87
+ }, rest), ___EmotionJSX(EuiAccordionTrigger, {
88
+ ariaControlsId: id,
89
+ buttonId: buttonId
90
+ // Force button element to be a legend if the element is a fieldset
91
+ ,
92
+ buttonElement: Element === 'fieldset' ? 'legend' : buttonElement,
93
+ buttonClassName: buttonClassName,
94
+ buttonContent: buttonContent,
95
+ buttonContentClassName: buttonContentClassName,
96
+ buttonProps: buttonProps,
97
+ arrowProps: arrowProps,
98
+ arrowDisplay: arrowDisplay,
99
+ isDisabled: isDisabled,
100
+ isOpen: isOpen,
101
+ onToggle: onAccordionToggle,
102
+ extraAction: isLoading ? ___EmotionJSX(EuiLoadingSpinner, null) : extraAction
103
+ }), ___EmotionJSX(EuiAccordionChildren, {
104
+ role: role,
105
+ id: id,
106
+ "aria-labelledby": buttonId,
107
+ paddingSize: paddingSize,
108
+ isLoading: isLoading,
109
+ isLoadingMessage: isLoadingMessage,
110
+ isOpen: isOpen,
111
+ initialIsOpen: initialIsOpen
112
+ }, children));
113
+ };
114
+ EuiAccordion.propTypes = {
153
115
  className: PropTypes.string,
154
116
  "aria-label": PropTypes.string,
155
117
  "data-test-subj": PropTypes.string,
@@ -242,5 +204,4 @@ EuiAccordionClass.propTypes = {
242
204
  * Disable the open/close interaction and visually subdues the trigger
243
205
  */
244
206
  isDisabled: PropTypes.bool
245
- };
246
- export var EuiAccordion = withEuiTheme(EuiAccordionClass);
207
+ };
@@ -66,7 +66,6 @@ export var KibanaCollapsibleNavSolution = function KibanaCollapsibleNavSolution(
66
66
  var solutionSolutionSwitcherAriaLabel = useEuiI18n('euiCollapsibleNavKibanaSolution.switcherAriaLabel', ' - click to switch to another solution');
67
67
  var solutionSolutionGroupLabel = useEuiI18n('euiCollapsibleNavKibanaSolution.groupLabel', 'Navigate to solution');
68
68
  var closeSolutionPopover = useCallback(function (event) {
69
- var _childItem$firstEleme;
70
69
  // Allow child items to stop the popover from being closed
71
70
  if (event.isPropagationStopped()) return;
72
71
  // Only listen for clicks on child items - currentTarget is the parent <ul>
@@ -75,7 +74,7 @@ export var KibanaCollapsibleNavSolution = function KibanaCollapsibleNavSolution(
75
74
  // Only close the popover if the item is a clickable link or button
76
75
  var target = event.target;
77
76
  var childItem = target.closest('.euiListGroupItem');
78
- if (['A', 'BUTTON'].includes((childItem === null || childItem === void 0 || (_childItem$firstEleme = childItem.firstElementChild) === null || _childItem$firstEleme === void 0 ? void 0 : _childItem$firstEleme.tagName) || '')) {
77
+ if (['A', 'BUTTON'].includes((childItem === null || childItem === void 0 ? void 0 : childItem.tagName) || '')) {
79
78
  setIsSolutionSwitcherOpen(false);
80
79
  }
81
80
  }, []);
@@ -88,12 +87,10 @@ export var KibanaCollapsibleNavSolution = function KibanaCollapsibleNavSolution(
88
87
  "data-test-subj": "kibanaSolutionSwitcherList",
89
88
  "aria-label": solutionSolutionGroupLabel,
90
89
  listItems: primaryItems,
91
- size: "s",
92
90
  bordered: true,
93
91
  onClick: closeSolutionPopover
94
92
  }), secondaryItems.length > 0 && ___EmotionJSX(React.Fragment, null, ___EmotionJSX(EuiListGroup, {
95
93
  listItems: secondaryItems,
96
- size: "s",
97
94
  css: styles.euiCollapsibleNavKibanaSolution__secondaryItems,
98
95
  onClick: closeSolutionPopover
99
96
  })));
@@ -174,22 +171,28 @@ KibanaCollapsibleNavSolution.propTypes = {
174
171
  "data-test-subj": PropTypes.string,
175
172
  css: PropTypes.any,
176
173
  /**
177
- * Size of the label text
178
- */
179
- size: PropTypes.any,
174
+ * Controls the disabled behavior via the native `disabled` attribute.
175
+ */
176
+ isDisabled: PropTypes.bool,
177
+ /**
178
+ * NOTE: Beta feature, may be changed or removed in the future
179
+ *
180
+ * Changes the native `disabled` attribute to `aria-disabled` to preserve focusability.
181
+ * This results in a semantically disabled button without the default browser handling of the disabled state.
182
+ *
183
+ * Use e.g. when a disabled button should have a tooltip.
184
+ */
185
+ hasAriaDisabled: PropTypes.bool,
180
186
  /**
181
187
  * By default the item will get the color `text`.
182
188
  * You can customize the color of the item by passing a color name.
189
+ * @default 'text'
183
190
  */
184
191
  color: PropTypes.any,
185
192
  /**
186
193
  * Apply styles indicating an item is active
187
194
  */
188
195
  isActive: PropTypes.bool,
189
- /**
190
- * Apply styles indicating an item is disabled
191
- */
192
- isDisabled: PropTypes.bool,
193
196
  /**
194
197
  * Make the list item label a link.
195
198
  * While permitted, `href` and `onClick` should not be used together in most cases and may create problems.
@@ -92,7 +92,6 @@ export var EuiColorPalettePicker = function EuiColorPalettePicker(_ref) {
92
92
  options: paletteOptions,
93
93
  valueOfSelected: valueOfSelected,
94
94
  onChange: onChange,
95
- hasDividers: true,
96
95
  isInvalid: isInvalid,
97
96
  compressed: compressed,
98
97
  disabled: disabled,
@@ -87,7 +87,7 @@ describe('EuiComboBox', function () {
87
87
  rowHeight: rowHeight
88
88
  }));
89
89
  cy.get('input[data-test-subj="comboBoxSearchInput"]').realClick();
90
- cy.get('button[data-test-subj="titanOption"]').should('exist');
90
+ cy.get('[data-test-subj="titanOption"]').should('exist');
91
91
  cy.checkAxe();
92
92
  });
93
93
  it('has zero violations after keyboard interaction', function () {
@@ -96,7 +96,7 @@ describe('EuiComboBox', function () {
96
96
  }));
97
97
  cy.realPress('Tab');
98
98
  cy.get('input[data-test-subj="comboBoxSearchInput"]').should('have.focus');
99
- cy.get('button[data-test-subj="titanOption"]').should('exist');
99
+ cy.get('[data-test-subj="titanOption"]').should('exist');
100
100
  cy.repeatRealPress('ArrowDown');
101
101
  cy.realPress('Enter');
102
102
  cy.repeatRealPress('ArrowDown');
@@ -122,14 +122,14 @@ describe('EuiComboBox', function () {
122
122
  }));
123
123
  cy.realPress('Tab');
124
124
  cy.get('input[data-test-subj="comboBoxSearchInput"]').should('have.focus');
125
- cy.get('button[data-test-subj="titanOption"]').should('exist');
125
+ cy.get('[data-test-subj="titanOption"]').should('exist');
126
126
  cy.realPress('ArrowDown');
127
127
  cy.realPress('ArrowDown');
128
128
  cy.realPress('ArrowDown');
129
129
  cy.get('input[data-test-subj="comboBoxSearchInput"]').invoke('attr', 'aria-activedescendant').should('include', 'option-2');
130
130
  cy.realPress('Enter');
131
131
  cy.realPress('ArrowDown');
132
- cy.get('input[data-test-subj="comboBoxSearchInput"]').invoke('attr', 'aria-activedescendant').should('include', 'option-3');
132
+ cy.get('input[data-test-subj="comboBoxSearchInput"]').invoke('attr', 'aria-activedescendant').should('include', 'option-4');
133
133
  });
134
134
  it('sets the correct aria-activedescendant id with custom option ids', function () {
135
135
  cy.realMount(___EmotionJSX(ComboBox, {
@@ -159,7 +159,7 @@ describe('EuiComboBox', function () {
159
159
  cy.get('input[data-test-subj="comboBoxSearchInput"]').should('exist');
160
160
  cy.realPress('Tab');
161
161
  cy.get('input[data-test-subj="comboBoxSearchInput"]').should('have.focus');
162
- cy.get('button[data-test-subj="titanOption"]').should('exist');
162
+ cy.get('[data-test-subj="titanOption"]').should('exist');
163
163
  cy.realPress('ArrowDown');
164
164
  cy.realPress('ArrowDown');
165
165
  cy.realPress('ArrowDown');
@@ -1,4 +1,4 @@
1
- var _excluded = ["data-test-subj", "async", "className", "compressed", "customOptionText", "fullWidth", "id", "inputRef", "isCaseSensitive", "isClearable", "isDisabled", "isInvalid", "isLoading", "noSuggestions", "onBlur", "onChange", "onCreateOption", "onSearchChange", "options", "placeholder", "renderOption", "rowHeight", "selectedOptions", "singleSelection", "prepend", "sortMatchesBy", "delimiter", "append", "autoFocus", "truncationProps", "inputPopoverProps", "optionMatcher", "aria-label", "aria-labelledby", "aria-describedby"];
1
+ var _excluded = ["data-test-subj", "async", "className", "compressed", "customOptionText", "fullWidth", "id", "inputRef", "isCaseSensitive", "isClearable", "isDisabled", "isInvalid", "isLoading", "noSuggestions", "onBlur", "onChange", "onCreateOption", "onSearchChange", "options", "placeholder", "renderOption", "rowHeight", "selectedOptions", "singleSelection", "prepend", "sortMatchesBy", "delimiter", "append", "autoFocus", "onFocusBadge", "truncationProps", "inputPopoverProps", "optionMatcher", "aria-label", "aria-labelledby", "aria-describedby"];
2
2
  function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
3
3
  function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
4
4
  function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], t.indexOf(o) >= 0 || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
@@ -101,6 +101,9 @@ export var EuiComboBox = /*#__PURE__*/function (_Component) {
101
101
  _this.listRefInstance = ref;
102
102
  });
103
103
  _defineProperty(_this, "setListOptionRefs", function (node, index) {
104
+ var current = _this.state.listOptionRefs[index];
105
+ // Skip updating if the ref is null (on cleanup) or didn't change
106
+ if (node === null || node === current) return;
104
107
  _this.setState(function (_ref) {
105
108
  var listOptionRefs = _ref.listOptionRefs;
106
109
  var _listOptionRefs = listOptionRefs;
@@ -121,41 +124,32 @@ export var EuiComboBox = /*#__PURE__*/function (_Component) {
121
124
  isListOpen: false
122
125
  });
123
126
  });
124
- _defineProperty(_this, "incrementActiveOptionIndex", function (amount) {
125
- // If there are no options available, do nothing.
126
- if (!_this.state.matchingOptions.length) {
127
- return;
127
+ _defineProperty(_this, "findNextSelectableOptionIndex", function (options, startIndex) {
128
+ var direction = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
129
+ if (!options.length) return -1;
130
+ var index = startIndex;
131
+ for (var count = 0; count < options.length; count++) {
132
+ var option = options[index];
133
+ if (!option.isGroupLabelOption && !option.disabled) {
134
+ return index;
135
+ }
136
+ index = (index + direction + options.length) % options.length;
128
137
  }
138
+ return -1; // the remaining options can't be selected (group labels or disabled)
139
+ });
140
+ _defineProperty(_this, "incrementActiveOptionIndex", function (amount) {
141
+ if (!_this.state.matchingOptions.length) return;
129
142
  _this.setState(function (_ref2) {
130
143
  var activeOptionIndex = _ref2.activeOptionIndex,
131
144
  matchingOptions = _ref2.matchingOptions;
132
- var nextActiveOptionIndex;
133
- if (activeOptionIndex < 0) {
134
- // If this is the beginning of the user's keyboard navigation of the menu, then we'll focus
135
- // either the first or last item.
136
- nextActiveOptionIndex = amount < 0 ? matchingOptions.length - 1 : 0;
137
- } else {
138
- nextActiveOptionIndex = activeOptionIndex + amount;
139
- if (nextActiveOptionIndex < 0) {
140
- nextActiveOptionIndex = matchingOptions.length - 1;
141
- } else if (nextActiveOptionIndex === matchingOptions.length) {
142
- nextActiveOptionIndex = 0;
143
- }
144
- }
145
-
146
- // Group titles are included in option list but are not selectable
147
- // Skip group title options
148
145
  var direction = amount > 0 ? 1 : -1;
149
- while (matchingOptions[nextActiveOptionIndex].isGroupLabelOption) {
150
- nextActiveOptionIndex = nextActiveOptionIndex + direction;
151
- if (nextActiveOptionIndex < 0) {
152
- nextActiveOptionIndex = matchingOptions.length - 1;
153
- } else if (nextActiveOptionIndex === matchingOptions.length) {
154
- nextActiveOptionIndex = 0;
155
- }
156
- }
146
+ var startIndex = activeOptionIndex < 0 ?
147
+ // Inintial interaction: jump to first or last item
148
+ amount < 0 ? matchingOptions.length - 1 : 0 :
149
+ // Advance by amount, wrapping around
150
+ (activeOptionIndex + amount + matchingOptions.length) % matchingOptions.length;
157
151
  return {
158
- activeOptionIndex: nextActiveOptionIndex
152
+ activeOptionIndex: _this.findNextSelectableOptionIndex(matchingOptions, startIndex, direction)
159
153
  };
160
154
  });
161
155
  });
@@ -373,27 +367,36 @@ export var EuiComboBox = /*#__PURE__*/function (_Component) {
373
367
  onChange = _this$props7.onChange,
374
368
  selectedOptions = _this$props7.selectedOptions,
375
369
  singleSelectionProp = _this$props7.singleSelection;
370
+ var _this$state2 = _this.state,
371
+ matchingOptions = _this$state2.matchingOptions,
372
+ listOptionRefs = _this$state2.listOptionRefs;
376
373
  var singleSelection = Boolean(singleSelectionProp);
377
374
  var changeOptions = singleSelection ? [addedOption] : selectedOptions.concat(addedOption);
378
375
  onChange === null || onChange === void 0 || onChange(changeOptions);
379
376
  _this.clearSearchValue();
380
- _this.clearActiveOption();
381
- if (!isContainerBlur) {
382
- var _this$searchInputRefI2;
383
- (_this$searchInputRefI2 = _this.searchInputRefInstance) === null || _this$searchInputRefI2 === void 0 || _this$searchInputRefI2.focus();
384
- }
385
377
  if (singleSelection) {
378
+ // List closes after single selection; return focus to the input
379
+ _this.clearActiveOption();
380
+ if (!isContainerBlur) {
381
+ var _this$searchInputRefI2;
382
+ (_this$searchInputRefI2 = _this.searchInputRefInstance) === null || _this$searchInputRefI2 === void 0 || _this$searchInputRefI2.focus();
383
+ }
386
384
  requestAnimationFrame(function () {
387
385
  return _this.closeList();
388
386
  });
387
+ } else if (isContainerBlur) {
388
+ // User tabbed away. `onContainerBlur` will close the list. We're only cleaning up state
389
+ _this.clearActiveOption();
389
390
  } else {
390
- _this.setState(function (_ref4) {
391
- var listOptionRefs = _ref4.listOptionRefs,
392
- matchingOptions = _ref4.matchingOptions;
393
- return {
394
- listOptionRefs: listOptionRefs.slice(0, matchingOptions.length - 1),
395
- activeOptionIndex: matchingOptions.indexOf(addedOption)
396
- };
391
+ var currentIndex = matchingOptions.indexOf(addedOption);
392
+ var nextOptions = matchingOptions.filter(function (option) {
393
+ return option !== addedOption;
394
+ });
395
+ _this.setState({
396
+ listOptionRefs: listOptionRefs.slice(0, matchingOptions.length - 1),
397
+ activeOptionIndex: _this.findNextSelectableOptionIndex(nextOptions, Math.min(currentIndex, nextOptions.length - 1)
398
+ // direction defaults to 1 (forward)
399
+ )
397
400
  });
398
401
  }
399
402
  });
@@ -501,6 +504,7 @@ export var EuiComboBox = /*#__PURE__*/function (_Component) {
501
504
  delimiter = _this$props11.delimiter,
502
505
  append = _this$props11.append,
503
506
  autoFocus = _this$props11.autoFocus,
507
+ onFocusBadge = _this$props11.onFocusBadge,
504
508
  truncationProps = _this$props11.truncationProps,
505
509
  inputPopoverProps = _this$props11.inputPopoverProps,
506
510
  optionMatcher = _this$props11.optionMatcher,
@@ -508,12 +512,12 @@ export var EuiComboBox = /*#__PURE__*/function (_Component) {
508
512
  ariaLabelledby = _this$props11['aria-labelledby'],
509
513
  ariaDescribedby = _this$props11['aria-describedby'],
510
514
  rest = _objectWithoutProperties(_this$props11, _excluded);
511
- var _this$state2 = this.state,
512
- activeOptionIndex = _this$state2.activeOptionIndex,
513
- hasFocus = _this$state2.hasFocus,
514
- isListOpen = _this$state2.isListOpen,
515
- searchValue = _this$state2.searchValue,
516
- matchingOptions = _this$state2.matchingOptions;
515
+ var _this$state3 = this.state,
516
+ activeOptionIndex = _this$state3.activeOptionIndex,
517
+ hasFocus = _this$state3.hasFocus,
518
+ isListOpen = _this$state3.isListOpen,
519
+ searchValue = _this$state3.searchValue,
520
+ matchingOptions = _this$state3.matchingOptions;
517
521
 
518
522
  // Make sure we have a valid ID if users don't pass one as a prop
519
523
  var inputId = id !== null && id !== void 0 ? id : this.rootId('_eui-combobox-id');
@@ -564,7 +568,8 @@ export var EuiComboBox = /*#__PURE__*/function (_Component) {
564
568
  delimiter: delimiter,
565
569
  getSelectedOptionForSearchValue: getSelectedOptionForSearchValue,
566
570
  listboxAriaLabel: listboxAriaLabel,
567
- truncationProps: truncationProps
571
+ truncationProps: truncationProps,
572
+ onFocusBadge: onFocusBadge
568
573
  });
569
574
  });
570
575
  }
@@ -589,11 +594,11 @@ export var EuiComboBox = /*#__PURE__*/function (_Component) {
589
594
  ref: _this2.comboBoxRefCallback
590
595
  }), ___EmotionJSX(EuiInputPopover, _extends({
591
596
  fullWidth: fullWidth,
592
- panelPaddingSize: "none",
597
+ panelPaddingSize: "s",
593
598
  disableFocusTrap: true,
594
599
  closeOnScroll: true
595
600
  }, inputPopoverProps, {
596
- isOpen: isListOpen,
601
+ isOpen: isListOpen && !noSuggestions,
597
602
  closePopover: _this2.closeList
598
603
  /* we don't want content changes to be announced via aria-live
599
604
  because ComboBox uses a virtualized list that updates itself
@@ -601,7 +606,10 @@ export var EuiComboBox = /*#__PURE__*/function (_Component) {
601
606
  "aria-live": "off",
602
607
  input: ___EmotionJSX(EuiComboBoxInput, {
603
608
  compressed: compressed,
604
- focusedOptionId: _this2.hasActiveOption() ? (_this2$state$listOpti = (_this2$state$listOpti2 = _this2.state.listOptionRefs[_this2.state.activeOptionIndex]) === null || _this2$state$listOpti2 === void 0 ? void 0 : _this2$state$listOpti2.id) !== null && _this2$state$listOpti !== void 0 ? _this2$state$listOpti : _this2.rootId("_option-".concat(_this2.state.activeOptionIndex)) : undefined,
609
+ focusedOptionId: _this2.hasActiveOption() ? (_this2$state$listOpti = (_this2$state$listOpti2 = _this2.state.listOptionRefs[_this2.state.activeOptionIndex]) === null || _this2$state$listOpti2 === void 0 ? void 0 : _this2$state$listOpti2.id) !== null && _this2$state$listOpti !== void 0 ? _this2$state$listOpti :
610
+ // uses the original `options` array to ensure a stable `id`, otherwise `aria-activedescendant`
611
+ // loses focus on selecting an option (due to actively removing it from the list)
612
+ _this2.rootId("_option-".concat(_this2.props.options.indexOf(matchingOptions[activeOptionIndex]))) : undefined,
605
613
  fullWidth: fullWidth,
606
614
  hasSelectedOptions: selectedOptions.length > 0,
607
615
  id: inputId,
@@ -791,7 +799,7 @@ EuiComboBox.propTypes = {
791
799
  "aria-labelledby": PropTypes.string,
792
800
  /**
793
801
  * By default, EuiComboBox will truncate option labels at the end of
794
- * the string. You can use pass in a custom truncation configuration that
802
+ * the string. You can pass in a custom truncation configuration that
795
803
  * accepts any [EuiTextTruncate](/#/utilities/text-truncation) prop,
796
804
  * except for `text` and `children`.
797
805
  *