@elastic/eui 89.1.0 → 90.0.0

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 (314) hide show
  1. package/dist/eui_theme_dark.css +2 -467
  2. package/dist/eui_theme_dark.min.css +1 -1
  3. package/dist/eui_theme_light.css +2 -467
  4. package/dist/eui_theme_light.min.css +1 -1
  5. package/es/components/accessibility/skip_link/skip_link.js +1 -2
  6. package/es/components/accordion/accordion.js +27 -2
  7. package/es/components/accordion/accordion_children/accordion_children.js +7 -15
  8. package/es/components/basic_table/basic_table.js +60 -23
  9. package/es/components/basic_table/collapsed_item_actions.js +1 -1
  10. package/es/components/basic_table/in_memory_table.js +18 -4
  11. package/es/components/button/button.js +17 -45
  12. package/es/components/button/button_empty/button_empty.js +30 -47
  13. package/es/components/button/button_icon/button_icon.js +26 -43
  14. package/es/components/card/card.js +1 -6
  15. package/es/components/card/card_select/card_select.js +1 -6
  16. package/es/components/collapsible_nav_beta/collapsible_nav_beta.js +12 -8
  17. package/es/components/collapsible_nav_beta/collapsible_nav_button/collapsible_nav_button.js +12 -7
  18. package/es/components/collapsible_nav_beta/collapsible_nav_group/collapsible_nav_group.js +18 -4
  19. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.js +11 -4
  20. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_item.js +11 -4
  21. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.js +11 -4
  22. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.js +36 -4
  23. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.styles.js +1 -1
  24. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_group.js +158 -0
  25. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +65 -26
  26. package/es/components/collapsible_nav_beta/context.js +1 -0
  27. package/es/components/comment_list/comment_event.js +31 -19
  28. package/es/components/comment_list/comment_event.styles.js +26 -24
  29. package/es/components/context_menu/context_menu.js +28 -22
  30. package/es/components/context_menu/context_menu.styles.js +26 -0
  31. package/es/components/context_menu/context_menu_item.js +95 -125
  32. package/es/components/context_menu/context_menu_item.styles.js +82 -0
  33. package/es/components/context_menu/context_menu_panel.a11y.js +4 -2
  34. package/es/components/context_menu/context_menu_panel.js +32 -61
  35. package/es/components/context_menu/context_menu_panel.styles.js +40 -0
  36. package/es/components/control_bar/control_bar.js +28 -23
  37. package/es/components/datagrid/body/data_grid_body.js +6 -7
  38. package/es/components/datagrid/body/data_grid_body_custom.js +6 -7
  39. package/es/components/datagrid/body/data_grid_body_virtualized.js +6 -7
  40. package/es/components/datagrid/body/data_grid_cell.js +12 -13
  41. package/es/components/datagrid/body/data_grid_row_manager.js +28 -9
  42. package/es/components/datagrid/body/header/data_grid_header_cell.js +6 -7
  43. package/es/components/datagrid/body/header/data_grid_header_row.js +6 -7
  44. package/es/components/datagrid/data_grid.js +6 -7
  45. package/es/components/datagrid/utils/in_memory.js +6 -7
  46. package/es/components/date_picker/auto_refresh/auto_refresh.js +1 -2
  47. package/es/components/form/field_number/field_number.js +13 -9
  48. package/es/components/form/field_password/field_password.js +4 -7
  49. package/es/components/form/range/dual_range.js +110 -85
  50. package/es/components/form/range/range.js +47 -40
  51. package/es/components/form/range/range_track.js +6 -20
  52. package/es/components/form/range/utils.js +1 -2
  53. package/es/components/header/header_links/header_link.js +1 -6
  54. package/es/components/header/header_section/header_section_item_button.js +1 -6
  55. package/es/components/list_group/list_group.js +1 -2
  56. package/es/components/list_group/list_group_item.js +7 -5
  57. package/es/components/list_group/list_group_item_extra_action.js +1 -2
  58. package/es/components/list_group/list_group_item_extra_action.styles.js +1 -1
  59. package/es/components/list_group/pinnable_list_group/pinnable_list_group.js +2 -3
  60. package/es/components/modal/confirm_modal.js +1 -1
  61. package/es/components/notification/notification_event.js +1 -6
  62. package/es/components/notification/notification_event_read_button.js +1 -2
  63. package/es/components/page/index.js +1 -4
  64. package/es/components/pagination/pagination_button.js +1 -6
  65. package/es/components/popover/input_popover.js +26 -11
  66. package/es/components/tabs/tab.js +1 -1
  67. package/eui.d.ts +198 -287
  68. package/i18ntokens.json +103 -67
  69. package/lib/components/accessibility/skip_link/skip_link.js +1 -2
  70. package/lib/components/accordion/accordion.js +27 -2
  71. package/lib/components/accordion/accordion_children/accordion_children.js +5 -13
  72. package/lib/components/basic_table/basic_table.js +60 -23
  73. package/lib/components/basic_table/collapsed_item_actions.js +1 -1
  74. package/lib/components/basic_table/in_memory_table.js +18 -4
  75. package/lib/components/button/button.js +24 -51
  76. package/lib/components/button/button_empty/button_empty.js +29 -46
  77. package/lib/components/button/button_icon/button_icon.js +25 -42
  78. package/lib/components/card/card.js +1 -6
  79. package/lib/components/card/card_select/card_select.js +1 -6
  80. package/lib/components/collapsible_nav_beta/collapsible_nav_beta.js +12 -8
  81. package/lib/components/collapsible_nav_beta/collapsible_nav_button/collapsible_nav_button.js +12 -7
  82. package/lib/components/collapsible_nav_beta/collapsible_nav_group/collapsible_nav_group.js +18 -4
  83. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.js +11 -4
  84. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_item.js +11 -4
  85. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.js +11 -4
  86. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.js +36 -4
  87. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.styles.js +1 -1
  88. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_group.js +165 -0
  89. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +65 -26
  90. package/lib/components/collapsible_nav_beta/context.js +1 -0
  91. package/lib/components/comment_list/comment_event.js +33 -18
  92. package/lib/components/comment_list/comment_event.styles.js +28 -25
  93. package/lib/components/context_menu/context_menu.js +31 -24
  94. package/lib/components/context_menu/context_menu.styles.js +34 -0
  95. package/lib/components/context_menu/context_menu_item.js +102 -133
  96. package/lib/components/context_menu/context_menu_item.styles.js +87 -0
  97. package/lib/components/context_menu/context_menu_panel.a11y.js +4 -2
  98. package/lib/components/context_menu/context_menu_panel.js +35 -63
  99. package/lib/components/context_menu/context_menu_panel.styles.js +46 -0
  100. package/lib/components/control_bar/control_bar.js +28 -23
  101. package/lib/components/datagrid/body/data_grid_body.js +6 -7
  102. package/lib/components/datagrid/body/data_grid_body_custom.js +6 -7
  103. package/lib/components/datagrid/body/data_grid_body_virtualized.js +6 -7
  104. package/lib/components/datagrid/body/data_grid_cell.js +12 -13
  105. package/lib/components/datagrid/body/data_grid_row_manager.js +33 -16
  106. package/lib/components/datagrid/body/header/data_grid_header_cell.js +6 -7
  107. package/lib/components/datagrid/body/header/data_grid_header_row.js +6 -7
  108. package/lib/components/datagrid/data_grid.js +6 -7
  109. package/lib/components/datagrid/utils/in_memory.js +6 -7
  110. package/lib/components/date_picker/auto_refresh/auto_refresh.js +1 -2
  111. package/lib/components/form/field_number/field_number.js +12 -8
  112. package/lib/components/form/field_password/field_password.js +4 -7
  113. package/lib/components/form/range/dual_range.js +110 -85
  114. package/lib/components/form/range/range.js +47 -40
  115. package/lib/components/form/range/range_track.js +5 -19
  116. package/lib/components/form/range/utils.js +1 -2
  117. package/lib/components/header/header_links/header_link.js +1 -6
  118. package/lib/components/header/header_section/header_section_item_button.js +1 -6
  119. package/lib/components/list_group/list_group.js +1 -2
  120. package/lib/components/list_group/list_group_item.js +7 -5
  121. package/lib/components/list_group/list_group_item_extra_action.js +1 -2
  122. package/lib/components/list_group/list_group_item_extra_action.styles.js +1 -1
  123. package/lib/components/list_group/pinnable_list_group/pinnable_list_group.js +2 -3
  124. package/lib/components/modal/confirm_modal.js +1 -1
  125. package/lib/components/notification/notification_event.js +1 -6
  126. package/lib/components/notification/notification_event_read_button.js +1 -2
  127. package/lib/components/page/index.js +1 -40
  128. package/lib/components/popover/input_popover.js +26 -11
  129. package/lib/components/tabs/tab.js +1 -1
  130. package/optimize/es/components/accordion/accordion.js +27 -2
  131. package/optimize/es/components/accordion/accordion_children/accordion_children.js +5 -14
  132. package/optimize/es/components/basic_table/basic_table.js +42 -19
  133. package/optimize/es/components/button/button.js +15 -33
  134. package/optimize/es/components/button/button_empty/button_empty.js +29 -41
  135. package/optimize/es/components/button/button_icon/button_icon.js +25 -37
  136. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_beta.js +12 -8
  137. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_button/collapsible_nav_button.js +12 -7
  138. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.styles.js +1 -1
  139. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_group.js +60 -0
  140. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +21 -10
  141. package/optimize/es/components/collapsible_nav_beta/context.js +1 -0
  142. package/optimize/es/components/comment_list/comment_event.js +31 -19
  143. package/optimize/es/components/comment_list/comment_event.styles.js +26 -24
  144. package/optimize/es/components/context_menu/context_menu.js +25 -19
  145. package/optimize/es/components/context_menu/context_menu.styles.js +26 -0
  146. package/optimize/es/components/context_menu/context_menu_item.js +94 -119
  147. package/optimize/es/components/context_menu/context_menu_item.styles.js +82 -0
  148. package/optimize/es/components/context_menu/context_menu_panel.a11y.js +4 -2
  149. package/optimize/es/components/context_menu/context_menu_panel.js +29 -58
  150. package/optimize/es/components/context_menu/context_menu_panel.styles.js +40 -0
  151. package/optimize/es/components/control_bar/control_bar.js +28 -23
  152. package/optimize/es/components/datagrid/body/data_grid_row_manager.js +23 -9
  153. package/optimize/es/components/form/field_number/field_number.js +13 -9
  154. package/optimize/es/components/form/field_password/field_password.js +4 -7
  155. package/optimize/es/components/form/range/dual_range.js +110 -85
  156. package/optimize/es/components/form/range/range.js +47 -40
  157. package/optimize/es/components/form/range/range_track.js +5 -14
  158. package/optimize/es/components/form/range/utils.js +1 -2
  159. package/optimize/es/components/list_group/list_group_item.js +6 -3
  160. package/optimize/es/components/list_group/list_group_item_extra_action.styles.js +1 -1
  161. package/optimize/es/components/page/index.js +1 -4
  162. package/optimize/es/components/popover/input_popover.js +26 -11
  163. package/optimize/es/components/tabs/tab.js +1 -1
  164. package/optimize/lib/components/accordion/accordion.js +27 -2
  165. package/optimize/lib/components/accordion/accordion_children/accordion_children.js +3 -12
  166. package/optimize/lib/components/basic_table/basic_table.js +42 -19
  167. package/optimize/lib/components/button/button.js +16 -34
  168. package/optimize/lib/components/button/button_empty/button_empty.js +28 -40
  169. package/optimize/lib/components/button/button_icon/button_icon.js +24 -36
  170. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_beta.js +12 -8
  171. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_button/collapsible_nav_button.js +12 -7
  172. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.styles.js +1 -1
  173. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_group.js +67 -0
  174. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +21 -10
  175. package/optimize/lib/components/collapsible_nav_beta/context.js +1 -0
  176. package/optimize/lib/components/comment_list/comment_event.js +33 -18
  177. package/optimize/lib/components/comment_list/comment_event.styles.js +28 -25
  178. package/optimize/lib/components/context_menu/context_menu.js +28 -21
  179. package/optimize/lib/components/context_menu/context_menu.styles.js +34 -0
  180. package/optimize/lib/components/context_menu/context_menu_item.js +101 -128
  181. package/optimize/lib/components/context_menu/context_menu_item.styles.js +87 -0
  182. package/optimize/lib/components/context_menu/context_menu_panel.a11y.js +4 -2
  183. package/optimize/lib/components/context_menu/context_menu_panel.js +32 -60
  184. package/optimize/lib/components/context_menu/context_menu_panel.styles.js +47 -0
  185. package/optimize/lib/components/control_bar/control_bar.js +28 -23
  186. package/optimize/lib/components/datagrid/body/data_grid_row_manager.js +23 -8
  187. package/optimize/lib/components/form/field_number/field_number.js +12 -8
  188. package/optimize/lib/components/form/field_password/field_password.js +5 -8
  189. package/optimize/lib/components/form/range/dual_range.js +110 -85
  190. package/optimize/lib/components/form/range/range.js +47 -40
  191. package/optimize/lib/components/form/range/range_track.js +4 -13
  192. package/optimize/lib/components/form/range/utils.js +1 -2
  193. package/optimize/lib/components/list_group/list_group_item.js +6 -3
  194. package/optimize/lib/components/list_group/list_group_item_extra_action.styles.js +1 -1
  195. package/optimize/lib/components/page/index.js +1 -40
  196. package/optimize/lib/components/popover/input_popover.js +27 -12
  197. package/optimize/lib/components/tabs/tab.js +1 -1
  198. package/package.json +5 -5
  199. package/src/components/datagrid/_data_grid_data_row.scss +0 -1
  200. package/src/components/date_picker/super_date_picker/date_popover/_date_popover_content.scss +2 -1
  201. package/src/components/index.scss +0 -2
  202. package/test-env/components/accessibility/skip_link/skip_link.js +1 -2
  203. package/test-env/components/accordion/accordion.js +27 -2
  204. package/test-env/components/accordion/accordion_children/accordion_children.js +5 -13
  205. package/test-env/components/basic_table/basic_table.js +60 -23
  206. package/test-env/components/basic_table/collapsed_item_actions.js +1 -1
  207. package/test-env/components/basic_table/in_memory_table.js +18 -4
  208. package/test-env/components/button/button.js +17 -40
  209. package/test-env/components/button/button_empty/button_empty.js +29 -46
  210. package/test-env/components/button/button_icon/button_icon.js +25 -42
  211. package/test-env/components/card/card.js +1 -6
  212. package/test-env/components/card/card_select/card_select.js +1 -6
  213. package/test-env/components/collapsible_nav_beta/collapsible_nav_beta.js +12 -8
  214. package/test-env/components/collapsible_nav_beta/collapsible_nav_button/collapsible_nav_button.js +12 -7
  215. package/test-env/components/collapsible_nav_beta/collapsible_nav_group/collapsible_nav_group.js +18 -4
  216. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.js +11 -4
  217. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_item.js +11 -4
  218. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.js +11 -4
  219. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.js +36 -4
  220. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.styles.js +1 -1
  221. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_group.js +164 -0
  222. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +65 -26
  223. package/test-env/components/collapsible_nav_beta/context.js +1 -0
  224. package/test-env/components/comment_list/comment_event.js +33 -18
  225. package/test-env/components/comment_list/comment_event.styles.js +28 -25
  226. package/test-env/components/context_menu/context_menu.js +31 -24
  227. package/test-env/components/context_menu/context_menu.styles.js +34 -0
  228. package/test-env/components/context_menu/context_menu_item.js +102 -129
  229. package/test-env/components/context_menu/context_menu_item.styles.js +87 -0
  230. package/test-env/components/context_menu/context_menu_panel.a11y.js +4 -2
  231. package/test-env/components/context_menu/context_menu_panel.js +35 -63
  232. package/test-env/components/context_menu/context_menu_panel.styles.js +47 -0
  233. package/test-env/components/control_bar/control_bar.js +28 -23
  234. package/test-env/components/datagrid/body/data_grid_body.js +6 -7
  235. package/test-env/components/datagrid/body/data_grid_body_custom.js +6 -7
  236. package/test-env/components/datagrid/body/data_grid_body_virtualized.js +6 -7
  237. package/test-env/components/datagrid/body/data_grid_cell.js +12 -13
  238. package/test-env/components/datagrid/body/data_grid_row_manager.js +23 -8
  239. package/test-env/components/datagrid/body/header/data_grid_header_cell.js +6 -7
  240. package/test-env/components/datagrid/body/header/data_grid_header_row.js +6 -7
  241. package/test-env/components/datagrid/data_grid.js +6 -7
  242. package/test-env/components/datagrid/utils/in_memory.js +6 -7
  243. package/test-env/components/date_picker/auto_refresh/auto_refresh.js +1 -2
  244. package/test-env/components/form/field_number/field_number.js +12 -8
  245. package/test-env/components/form/field_password/field_password.js +4 -7
  246. package/test-env/components/form/range/dual_range.js +110 -85
  247. package/test-env/components/form/range/range.js +47 -40
  248. package/test-env/components/form/range/range_track.js +5 -14
  249. package/test-env/components/form/range/utils.js +1 -2
  250. package/test-env/components/header/header_links/header_link.js +1 -6
  251. package/test-env/components/header/header_section/header_section_item_button.js +1 -6
  252. package/test-env/components/list_group/list_group.js +1 -2
  253. package/test-env/components/list_group/list_group_item.js +7 -5
  254. package/test-env/components/list_group/list_group_item_extra_action.js +1 -2
  255. package/test-env/components/list_group/list_group_item_extra_action.styles.js +1 -1
  256. package/test-env/components/list_group/pinnable_list_group/pinnable_list_group.js +2 -3
  257. package/test-env/components/modal/confirm_modal.js +1 -1
  258. package/test-env/components/notification/notification_event.js +1 -6
  259. package/test-env/components/notification/notification_event_read_button.js +1 -2
  260. package/test-env/components/page/index.js +1 -40
  261. package/test-env/components/popover/input_popover.js +26 -11
  262. package/test-env/components/tabs/tab.js +1 -1
  263. package/es/components/page/page_content/index.js +0 -12
  264. package/es/components/page/page_content/page_content.js +0 -110
  265. package/es/components/page/page_content/page_content_body.js +0 -69
  266. package/es/components/page/page_content/page_content_header.js +0 -43
  267. package/es/components/page/page_content/page_content_header_section.js +0 -34
  268. package/es/components/page/page_side_bar/index.js +0 -9
  269. package/es/components/page/page_side_bar/page_side_bar.js +0 -60
  270. package/es/components/page/page_template.js +0 -591
  271. package/lib/components/page/page_content/index.js +0 -33
  272. package/lib/components/page/page_content/page_content.js +0 -117
  273. package/lib/components/page/page_content/page_content_body.js +0 -77
  274. package/lib/components/page/page_content/page_content_header.js +0 -50
  275. package/lib/components/page/page_content/page_content_header_section.js +0 -41
  276. package/lib/components/page/page_side_bar/index.js +0 -12
  277. package/lib/components/page/page_side_bar/page_side_bar.js +0 -67
  278. package/lib/components/page/page_template.js +0 -598
  279. package/optimize/es/components/page/page_content/index.js +0 -12
  280. package/optimize/es/components/page/page_content/page_content.js +0 -45
  281. package/optimize/es/components/page/page_content/page_content_body.js +0 -45
  282. package/optimize/es/components/page/page_content/page_content_header.js +0 -30
  283. package/optimize/es/components/page/page_content/page_content_header_section.js +0 -26
  284. package/optimize/es/components/page/page_side_bar/index.js +0 -9
  285. package/optimize/es/components/page/page_side_bar/page_side_bar.js +0 -44
  286. package/optimize/es/components/page/page_template.js +0 -325
  287. package/optimize/lib/components/page/page_content/index.js +0 -33
  288. package/optimize/lib/components/page/page_content/page_content.js +0 -52
  289. package/optimize/lib/components/page/page_content/page_content_body.js +0 -53
  290. package/optimize/lib/components/page/page_content/page_content_header.js +0 -37
  291. package/optimize/lib/components/page/page_content/page_content_header_section.js +0 -33
  292. package/optimize/lib/components/page/page_side_bar/index.js +0 -12
  293. package/optimize/lib/components/page/page_side_bar/page_side_bar.js +0 -51
  294. package/optimize/lib/components/page/page_template.js +0 -332
  295. package/src/components/context_menu/_context_menu.scss +0 -27
  296. package/src/components/context_menu/_context_menu_item.scss +0 -65
  297. package/src/components/context_menu/_context_menu_panel.scss +0 -101
  298. package/src/components/context_menu/_index.scss +0 -3
  299. package/src/components/page/_index.scss +0 -2
  300. package/src/components/page/page_content/_index.scss +0 -4
  301. package/src/components/page/page_content/_page_content.scss +0 -25
  302. package/src/components/page/page_content/_page_content_body.scss +0 -19
  303. package/src/components/page/page_content/_page_content_header.scss +0 -20
  304. package/src/components/page/page_content/_page_content_header_section.scss +0 -17
  305. package/src/components/page/page_side_bar/_index.scss +0 -1
  306. package/src/components/page/page_side_bar/_page_side_bar.scss +0 -31
  307. package/test-env/components/page/page_content/index.js +0 -33
  308. package/test-env/components/page/page_content/page_content.js +0 -116
  309. package/test-env/components/page/page_content/page_content_body.js +0 -73
  310. package/test-env/components/page/page_content/page_content_header.js +0 -49
  311. package/test-env/components/page/page_content/page_content_header_section.js +0 -40
  312. package/test-env/components/page/page_side_bar/index.js +0 -12
  313. package/test-env/components/page/page_side_bar/page_side_bar.js +0 -66
  314. package/test-env/components/page/page_template.js +0 -594
@@ -13,7 +13,7 @@ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) r
13
13
  import React from 'react';
14
14
  import PropTypes from "prop-types";
15
15
  import classNames from 'classnames';
16
- import { EuiThemeProvider, getSecureRelForTarget, useEuiTheme } from '../../../services';
16
+ import { getSecureRelForTarget, useEuiTheme } from '../../../services';
17
17
  import { EuiIcon } from '../../icon';
18
18
  import { EuiLoadingSpinner } from '../../loading';
19
19
  import { useEuiButtonColorCSS, useEuiButtonFocusCSS } from '../../../themes/amsterdam/global_styling/mixins/button';
@@ -22,28 +22,28 @@ import { euiButtonIconStyles, _emptyHoverStyles } from './button_icon.styles';
22
22
  import { jsx as ___EmotionJSX } from "@emotion/react";
23
23
  export var SIZES = ['xs', 's', 'm'];
24
24
  export var DISPLAYS = ['base', 'empty', 'fill'];
25
- export var EuiButtonIcon = function EuiButtonIcon(props) {
26
- var className = props.className,
27
- iconType = props.iconType,
28
- _props$iconSize = props.iconSize,
29
- iconSize = _props$iconSize === void 0 ? 'm' : _props$iconSize,
30
- _props$color = props.color,
31
- _color = _props$color === void 0 ? 'primary' : _props$color,
32
- _isDisabled = props.isDisabled,
33
- disabled = props.disabled,
34
- href = props.href,
35
- _props$type = props.type,
36
- type = _props$type === void 0 ? 'button' : _props$type,
37
- _props$display = props.display,
38
- display = _props$display === void 0 ? 'empty' : _props$display,
39
- target = props.target,
40
- rel = props.rel,
41
- _props$size = props.size,
42
- size = _props$size === void 0 ? 'xs' : _props$size,
43
- buttonRef = props.buttonRef,
44
- isSelected = props.isSelected,
45
- isLoading = props.isLoading,
46
- rest = _objectWithoutProperties(props, _excluded);
25
+ export var EuiButtonIcon = function EuiButtonIcon(_ref) {
26
+ var className = _ref.className,
27
+ iconType = _ref.iconType,
28
+ _ref$iconSize = _ref.iconSize,
29
+ iconSize = _ref$iconSize === void 0 ? 'm' : _ref$iconSize,
30
+ _ref$color = _ref.color,
31
+ color = _ref$color === void 0 ? 'primary' : _ref$color,
32
+ _isDisabled = _ref.isDisabled,
33
+ disabled = _ref.disabled,
34
+ href = _ref.href,
35
+ _ref$type = _ref.type,
36
+ type = _ref$type === void 0 ? 'button' : _ref$type,
37
+ _ref$display = _ref.display,
38
+ display = _ref$display === void 0 ? 'empty' : _ref$display,
39
+ target = _ref.target,
40
+ rel = _ref.rel,
41
+ _ref$size = _ref.size,
42
+ size = _ref$size === void 0 ? 'xs' : _ref$size,
43
+ buttonRef = _ref.buttonRef,
44
+ isSelected = _ref.isSelected,
45
+ isLoading = _ref.isLoading,
46
+ rest = _objectWithoutProperties(_ref, _excluded);
47
47
  var euiThemeContext = useEuiTheme();
48
48
  var isDisabled = isButtonDisabled({
49
49
  isDisabled: _isDisabled || disabled,
@@ -55,26 +55,14 @@ export var EuiButtonIcon = function EuiButtonIcon(props) {
55
55
  if (!rest['aria-label'] && !rest['aria-labelledby'] && !isAriaHidden) {
56
56
  console.warn("EuiButtonIcon requires aria-label or aria-labelledby to be specified because icon-only\n buttons are screen-reader-inaccessible without them.");
57
57
  }
58
- var color = isDisabled ? 'disabled' : _color === 'ghost' ? 'text' : _color;
59
58
  var buttonColorStyles = useEuiButtonColorCSS({
60
59
  display: display
61
60
  });
62
61
  var buttonFocusStyle = useEuiButtonFocusCSS();
62
+ var emptyHoverStyles = display === 'empty' && !isDisabled && _emptyHoverStyles(euiThemeContext, color);
63
63
  var styles = euiButtonIconStyles(euiThemeContext);
64
- var emptyHoverStyles = _emptyHoverStyles(euiThemeContext, color);
65
- var cssStyles = [styles.euiButtonIcon, styles[size], buttonColorStyles[color], buttonFocusStyle, display === 'empty' && emptyHoverStyles, isDisabled && styles.isDisabled];
64
+ var cssStyles = [styles.euiButtonIcon, styles[size], buttonColorStyles[isDisabled ? 'disabled' : color], buttonFocusStyle, emptyHoverStyles, isDisabled && styles.isDisabled];
66
65
  var classes = classNames('euiButtonIcon', className);
67
- if (_color === 'ghost') {
68
- // INCEPTION: If `ghost`, re-implement with a wrapping dark mode theme provider
69
- return ___EmotionJSX(EuiThemeProvider, {
70
- colorMode: "dark",
71
- wrapperProps: {
72
- cloneElement: true
73
- }
74
- }, ___EmotionJSX(EuiButtonIcon, _extends({}, props, {
75
- color: "text"
76
- })));
77
- }
78
66
 
79
67
  // Add an icon to the button if one exists.
80
68
  var buttonIcon;
@@ -144,13 +132,8 @@ EuiButtonIcon.propTypes = {
144
132
  iconType: PropTypes.oneOfType([PropTypes.oneOf(["accessibility", "addDataApp", "advancedSettingsApp", "agentApp", "aggregate", "analyzeEvent", "annotation", "apmApp", "apmTrace", "appSearchApp", "apps", "arrowDown", "arrowLeft", "arrowRight", "arrowUp", "arrowStart", "arrowEnd", "article", "asterisk", "at", "auditbeatApp", "beaker", "bell", "bellSlash", "beta", "bolt", "boxesHorizontal", "boxesVertical", "branch", "branchUser", "broom", "brush", "bug", "bullseye", "calendar", "canvasApp", "casesApp", "check", "checkInCircleFilled", "cheer", "classificationJob", "clock", "cloudDrizzle", "cloudStormy", "cloudSunny", "cluster", "codeApp", "color", "compute", "console", "consoleApp", "container", "continuityAbove", "continuityAboveBelow", "continuityBelow", "continuityWithin", "controlsHorizontal", "controlsVertical", "copy", "copyClipboard", "createAdvancedJob", "createMultiMetricJob", "createPopulationJob", "createSingleMetricJob", "cross", "crossClusterReplicationApp", "crosshairs", "currency", "cut", "dashboardApp", "dataVisualizer", "database", "desktop", "devToolsApp", "discoverApp", "discuss", "document", "documentEdit", "documentation", "documents", "dot", "dotInCircle", "doubleArrowLeft", "doubleArrowRight", "download", "editorAlignCenter", "editorAlignLeft", "editorAlignRight", "editorBold", "editorChecklist", "editorCodeBlock", "editorComment", "editorDistributeHorizontal", "editorDistributeVertical", "editorHeading", "editorItalic", "editorItemAlignBottom", "editorItemAlignCenter", "editorItemAlignLeft", "editorItemAlignMiddle", "editorItemAlignRight", "editorItemAlignTop", "editorLink", "editorOrderedList", "editorPositionBottomLeft", "editorPositionBottomRight", "editorPositionTopLeft", "editorPositionTopRight", "editorRedo", "editorStrike", "editorTable", "editorUnderline", "editorUndo", "editorUnorderedList", "email", "empty", "emsApp", "eql", "eraser", "error", "exit", "expand", "expandMini", "exportAction", "eye", "eyeClosed", "faceHappy", "faceNeutral", "faceSad", "filebeatApp", "filter", "filterExclude", "filterIgnore", "filterInclude", "filterInCircle", "flag", "fleetApp", "fold", "folderCheck", "folderClosed", "folderExclamation", "folderOpen", "frameNext", "framePrevious", "fullScreen", "fullScreenExit", "function", "gear", "gisApp", "glasses", "globe", "grab", "grabHorizontal", "grabOmnidirectional", "gradient", "graphApp", "grid", "grokApp", "heart", "heartbeatApp", "heatmap", "help", "home", "iInCircle", "image", "importAction", "indexClose", "indexEdit", "indexFlush", "indexManagementApp", "indexMapping", "indexOpen", "indexPatternApp", "indexRollupApp", "indexRuntime", "indexSettings", "indexTemporary", "infinity", "inputOutput", "inspect", "invert", "ip", "key", "keyboard", "kqlField", "kqlFunction", "kqlOperand", "kqlSelector", "kqlValue", "kubernetesNode", "kubernetesPod", "launch", "layers", "lensApp", "lettering", "lineDashed", "lineDotted", "lineSolid", "link", "list", "listAdd", "lock", "lockOpen", "logoAWS", "logoAWSMono", "logoAerospike", "logoApache", "logoAppSearch", "logoAzure", "logoAzureMono", "logoBeats", "logoBusinessAnalytics", "logoCeph", "logoCloud", "logoCloudEnterprise", "logoCode", "logoCodesandbox", "logoCouchbase", "logoDocker", "logoDropwizard", "logoElastic", "logoElasticStack", "logoElasticsearch", "logoEnterpriseSearch", "logoEtcd", "logoGCP", "logoGCPMono", "logoGithub", "logoGmail", "logoGolang", "logoGoogleG", "logoHAproxy", "logoIBM", "logoIBMMono", "logoKafka", "logoKibana", "logoKubernetes", "logoLogging", "logoLogstash", "logoMaps", "logoMemcached", "logoMetrics", "logoMongodb", "logoMySQL", "logoNginx", "logoObservability", "logoOsquery", "logoPhp", "logoPostgres", "logoPrometheus", "logoRabbitmq", "logoRedis", "logoSecurity", "logoSiteSearch", "logoSketch", "logoSlack", "logoUptime", "logoVulnerabilityManagement", "logoWebhook", "logoWindows", "logoWorkplaceSearch", "logsApp", "logstashFilter", "logstashIf", "logstashInput", "logstashOutput", "logstashQueue", "machineLearningApp", "magnet", "magnifyWithExclamation", "magnifyWithMinus", "magnifyWithPlus", "managementApp", "mapMarker", "memory", "menu", "menuDown", "menuLeft", "menuRight", "menuUp", "merge", "metricbeatApp", "metricsApp", "minimize", "minus", "minusInCircle", "minusInCircleFilled", "mobile", "monitoringApp", "moon", "namespace", "nested", "node", "notebookApp", "number", "offline", "online", "outlierDetectionJob", "package", "packetbeatApp", "pageSelect", "pagesSelect", "palette", "paperClip", "partial", "pause", "payment", "pencil", "percent", "pin", "pinFilled", "pipelineApp", "pivot", "play", "playFilled", "plus", "plusInCircle", "plusInCircleFilled", "popout", "push", "questionInCircle", "quote", "recentlyViewedApp", "refresh", "regressionJob", "reporter", "reportingApp", "returnKey", "save", "savedObjectsApp", "scale", "search", "searchProfilerApp", "securityAnalyticsApp", "securityApp", "securitySignal", "securitySignalDetected", "securitySignalResolved", "sessionViewer", "shard", "share", "snowflake", "sortAscending", "sortDescending", "sortDown", "sortLeft", "sortRight", "sortUp", "sortable", "spaces", "spacesApp", "sparkles", "sqlApp", "starEmpty", "starEmptySpace", "starFilled", "starFilledSpace", "starMinusEmpty", "starMinusFilled", "starPlusEmpty", "starPlusFilled", "stats", "stop", "stopFilled", "stopSlash", "storage", "string", "submodule", "sun", "swatchInput", "symlink", "tableDensityCompact", "tableDensityExpanded", "tableDensityNormal", "tableOfContents", "tag", "tear", "temperature", "timeline", "timelineWithArrow", "timelionApp", "timeRefresh", "timeslider", "training", "transitionLeftIn", "transitionLeftOut", "transitionTopIn", "transitionTopOut", "trash", "unfold", "unlink", "upgradeAssistantApp", "uptimeApp", "user", "userAvatar", "users", "usersRolesApp", "vector", "videoPlayer", "visArea", "visAreaStacked", "visBarHorizontal", "visBarHorizontalStacked", "visBarVertical", "visBarVerticalStacked", "visGauge", "visGoal", "visLine", "visMapCoordinate", "visMapRegion", "visMetric", "visPie", "visTable", "visTagCloud", "visText", "visTimelion", "visVega", "visVisualBuilder", "visualizeApp", "vulnerabilityManagementApp", "warning", "alert", "watchesApp", "wordWrap", "wordWrapDisabled", "workplaceSearchApp", "wrench", "tokenAlias", "tokenAnnotation", "tokenArray", "tokenBinary", "tokenBoolean", "tokenClass", "tokenCompletionSuggester", "tokenConstant", "tokenDate", "tokenElement", "tokenEnum", "tokenEnumMember", "tokenEvent", "tokenException", "tokenField", "tokenFile", "tokenFlattened", "tokenFunction", "tokenGeo", "tokenHistogram", "tokenInterface", "tokenIP", "tokenJoin", "tokenKey", "tokenKeyword", "tokenMethod", "tokenMetricCounter", "tokenMetricGauge", "tokenModule", "tokenNamespace", "tokenNested", "tokenNull", "tokenNumber", "tokenObject", "tokenOperator", "tokenPackage", "tokenParameter", "tokenPercolator", "tokenProperty", "tokenRange", "tokenRankFeature", "tokenRankFeatures", "tokenRepo", "tokenSearchType", "tokenShape", "tokenString", "tokenStruct", "tokenSymbol", "tokenTag", "tokenText", "tokenTokenCount", "tokenVariable", "tokenVectorDense", "tokenDenseVector", "tokenVectorSparse"]).isRequired, PropTypes.string.isRequired, PropTypes.elementType.isRequired]).isRequired,
145
133
  /**
146
134
  * Any of the named color palette options.
147
- * **`'ghost'` is set for deprecation. Use EuiThemeProvide.colorMode = 'dark' instead.**
148
- */
149
- /**
150
- * Any of the named color palette options.
151
- * **`'ghost'` is set for deprecation. Use EuiThemeProvide.colorMode = 'dark' instead.**
152
135
  */
153
- color: PropTypes.oneOfType([PropTypes.any.isRequired, PropTypes.oneOf(["ghost"])]),
136
+ color: PropTypes.any,
154
137
  "aria-label": PropTypes.string,
155
138
  "aria-labelledby": PropTypes.string,
156
139
  isDisabled: PropTypes.bool,
@@ -416,13 +416,8 @@ EuiCard.propTypes = {
416
416
  fill: PropTypes.bool,
417
417
  /**
418
418
  * Any of the named color palette options.
419
- * **`'ghost'` is set for deprecation. Use EuiThemeProvide.colorMode = 'dark' instead.**
420
419
  */
421
- /**
422
- * Any of the named color palette options.
423
- * **`'ghost'` is set for deprecation. Use EuiThemeProvide.colorMode = 'dark' instead.**
424
- */
425
- color: PropTypes.oneOfType([PropTypes.any.isRequired, PropTypes.oneOf(["ghost"])]),
420
+ color: PropTypes.any,
426
421
  /**
427
422
  * Use size `s` in confined spaces
428
423
  */
@@ -51,13 +51,8 @@ EuiCardSelect.propTypes = {
51
51
  fill: PropTypes.bool,
52
52
  /**
53
53
  * Any of the named color palette options.
54
- * **`'ghost'` is set for deprecation. Use EuiThemeProvide.colorMode = 'dark' instead.**
55
54
  */
56
- /**
57
- * Any of the named color palette options.
58
- * **`'ghost'` is set for deprecation. Use EuiThemeProvide.colorMode = 'dark' instead.**
59
- */
60
- color: PropTypes.oneOfType([PropTypes.any.isRequired, PropTypes.oneOf(["ghost"])]),
55
+ color: PropTypes.any,
61
56
  /**
62
57
  * Use size `s` in confined spaces
63
58
  */
@@ -84,6 +84,15 @@ var _EuiCollapsibleNavBeta = function _EuiCollapsibleNavBeta(_ref) {
84
84
  _useState6 = _slicedToArray(_useState5, 2),
85
85
  isOverlayFullWidth = _useState6[0],
86
86
  setIsOverlayFullWidth = _useState6[1];
87
+ var _useState7 = useState(false),
88
+ _useState8 = _slicedToArray(_useState7, 2),
89
+ isOverlayOpen = _useState8[0],
90
+ setIsOverlayOpen = _useState8[1];
91
+ var toggleOverlayFlyout = useCallback(function () {
92
+ setIsOverlayOpen(function (isOpen) {
93
+ return !isOpen;
94
+ });
95
+ }, []);
87
96
  var flyoutType = isOverlay ? 'overlay' : 'push';
88
97
  var isPush = !isOverlay;
89
98
 
@@ -100,12 +109,6 @@ var _EuiCollapsibleNavBeta = function _EuiCollapsibleNavBeta(_ref) {
100
109
  return window.removeEventListener('resize', onWindowResize);
101
110
  };
102
111
  }, [_width]);
103
-
104
- // If the nav was previously uncollapsed and shrinks down to the
105
- // overlay flyout, default to its hidden/collapsed state
106
- useEffect(function () {
107
- if (isOverlay) setIsCollapsed(true);
108
- }, [isOverlay]);
109
112
  var width = useMemo(function () {
110
113
  if (isOverlayFullWidth) return '100%';
111
114
  if (isPush && isCollapsed) return headerHeight;
@@ -154,16 +157,17 @@ var _EuiCollapsibleNavBeta = function _EuiCollapsibleNavBeta(_ref) {
154
157
  onClose: onClose,
155
158
  hideCloseButton: true
156
159
  }), children);
157
- var hideFlyout = isOverlay && isCollapsed;
160
+ var hideFlyout = isOverlay && !isOverlayOpen;
158
161
  return ___EmotionJSX(EuiCollapsibleNavContext.Provider, {
159
162
  value: {
160
163
  isPush: isPush,
161
164
  isCollapsed: isCollapsed,
165
+ isOverlayOpen: isOverlayOpen,
162
166
  side: side
163
167
  }
164
168
  }, ___EmotionJSX(EuiCollapsibleNavButton, {
165
169
  ref: buttonRef,
166
- onClick: toggleCollapsed,
170
+ onClick: isPush ? toggleCollapsed : toggleOverlayFlyout,
167
171
  "aria-controls": flyoutID
168
172
  }), !hideFlyout && flyout);
169
173
  };
@@ -26,25 +26,30 @@ export var EuiCollapsibleNavButton = /*#__PURE__*/forwardRef(function (_ref, ref
26
26
  var _useContext = useContext(EuiCollapsibleNavContext),
27
27
  side = _useContext.side,
28
28
  isPush = _useContext.isPush,
29
- isCollapsed = _useContext.isCollapsed;
29
+ isCollapsed = _useContext.isCollapsed,
30
+ isOverlayOpen = _useContext.isOverlayOpen;
30
31
  var euiTheme = useEuiTheme();
31
32
  var styles = euiCollapsibleNavButtonWrapperStyles(euiTheme);
32
33
  var cssStyles = [styles.euiCollapsibleNavButtonWrapper, styles[side]];
33
34
  var buttonStyles = [styles.euiCollapsibleNavButton, css];
34
35
  var classes = classNames('euiCollapsibleNavButton', className);
36
+ var toggleExpandLabel = useEuiI18n('euiCollapsibleNavButton.ariaLabelExpand', 'Expand navigation');
37
+ var toggleCollapseLabel = useEuiI18n('euiCollapsibleNavButton.ariaLabelCollapse', 'Collapse navigation');
38
+ var toggleOpenLabel = useEuiI18n('euiCollapsibleNavButton.ariaLabelOpen', 'Open navigation');
39
+ var toggleCloseLabel = useEuiI18n('euiCollapsibleNavButton.ariaLabelClose', 'Close navigation');
40
+ var ariaLabel;
35
41
  var iconType;
36
42
  if (isPush) {
43
+ ariaLabel = isCollapsed ? toggleExpandLabel : toggleCollapseLabel;
37
44
  if (side === 'left') {
38
45
  iconType = isCollapsed ? 'menuRight' : 'menuLeft';
39
46
  } else {
40
47
  iconType = isCollapsed ? 'menuLeft' : 'menuRight';
41
48
  }
42
49
  } else {
43
- iconType = isCollapsed ? 'menu' : 'cross';
50
+ ariaLabel = isOverlayOpen ? toggleCloseLabel : toggleOpenLabel;
51
+ iconType = isOverlayOpen ? 'cross' : 'menu';
44
52
  }
45
- var toggleOpenLabel = useEuiI18n('euiCollapsibleNavButton.ariaLabelOpen', 'Toggle navigation open');
46
- var toggleCloselLabel = useEuiI18n('euiCollapsibleNavButton.ariaLabelClose', 'Toggle navigation closed');
47
- var ariaLabel = isCollapsed ? toggleOpenLabel : toggleCloselLabel;
48
53
  return ___EmotionJSX("div", {
49
54
  className: "euiCollapsibleNavButtonWrapper",
50
55
  css: cssStyles,
@@ -57,8 +62,8 @@ export var EuiCollapsibleNavButton = /*#__PURE__*/forwardRef(function (_ref, ref
57
62
  color: "text",
58
63
  iconType: iconType,
59
64
  "aria-label": ariaLabel,
60
- "aria-pressed": !isCollapsed,
61
- "aria-expanded": !isCollapsed
65
+ "aria-pressed": isPush ? !isCollapsed : isOverlayOpen,
66
+ "aria-expanded": isPush ? !isCollapsed : isOverlayOpen
62
67
  }, rest)));
63
68
  });
64
69
  EuiCollapsibleNavButton.propTypes = {
@@ -74,6 +74,13 @@ EuiCollapsibleNavGroup.propTypes = {
74
74
  * will render as an non-interactive `<span>`.
75
75
  */
76
76
  href: PropTypes.string,
77
+ /**
78
+ * If set to false, will (visually) render an always-open accordion that cannot
79
+ * be toggled closed. Ignored if `items` is not passed.
80
+ *
81
+ * @default true
82
+ */
83
+ isCollapsible: PropTypes.bool,
77
84
  /**
78
85
  * If a `href` is specified, use this prop to pass any prop that `EuiLink` accepts
79
86
  */
@@ -119,7 +126,7 @@ EuiCollapsibleNavGroup.propTypes = {
119
126
  */
120
127
  href: PropTypes.string,
121
128
  /**
122
- * When passed, an `EuiAccordion` with nested child item links will be rendered.
129
+ * Will render either an accordion or group of nested child item links.
123
130
  *
124
131
  * Accepts any #EuiCollapsibleNavItemProps. Or, to render completely custom
125
132
  * subitem content, pass an object with a `renderItem` callback.
@@ -128,9 +135,16 @@ EuiCollapsibleNavGroup.propTypes = {
128
135
  renderItem: PropTypes.func
129
136
  }).isRequired),
130
137
  /**
131
- * If `items` is specified, use this prop to pass any prop that `EuiAccordion`
132
- * accepts, including props that control the toggled state of the accordion
133
- * (e.g. `initialIsOpen`, `forceState`)
138
+ * If set to false, will (visually) render an always-open accordion that cannot
139
+ * be toggled closed. Ignored if `items` is not passed.
140
+ *
141
+ * @default true
142
+ */
143
+ isCollapsible: PropTypes.bool,
144
+ /**
145
+ * If `items` is specified, and `isCollapsible` is not set to false, you may
146
+ * use this prop to pass any prop that `EuiAccordion` accepts, including props
147
+ * that control the toggled state of the accordion (e.g. `initialIsOpen`, `forceState`)
134
148
  */
135
149
  accordionProps: PropTypes.any,
136
150
  /**
@@ -89,7 +89,7 @@ EuiCollapsedNavButton.propTypes = {
89
89
  */
90
90
  href: PropTypes.string,
91
91
  /**
92
- * When passed, an `EuiAccordion` with nested child item links will be rendered.
92
+ * Will render either an accordion or group of nested child item links.
93
93
  *
94
94
  * Accepts any #EuiCollapsibleNavItemProps. Or, to render completely custom
95
95
  * subitem content, pass an object with a `renderItem` callback.
@@ -116,9 +116,16 @@ EuiCollapsedNavButton.propTypes = {
116
116
  renderItem: PropTypes.func
117
117
  }).isRequired),
118
118
  /**
119
- * If `items` is specified, use this prop to pass any prop that `EuiAccordion`
120
- * accepts, including props that control the toggled state of the accordion
121
- * (e.g. `initialIsOpen`, `forceState`)
119
+ * If set to false, will (visually) render an always-open accordion that cannot
120
+ * be toggled closed. Ignored if `items` is not passed.
121
+ *
122
+ * @default true
123
+ */
124
+ isCollapsible: PropTypes.bool,
125
+ /**
126
+ * If `items` is specified, and `isCollapsible` is not set to false, you may
127
+ * use this prop to pass any prop that `EuiAccordion` accepts, including props
128
+ * that control the toggled state of the accordion (e.g. `initialIsOpen`, `forceState`)
122
129
  */
123
130
  accordionProps: PropTypes.any,
124
131
  /**
@@ -63,7 +63,7 @@ EuiCollapsedNavItem.propTypes = {
63
63
  */
64
64
  href: PropTypes.string,
65
65
  /**
66
- * When passed, an `EuiAccordion` with nested child item links will be rendered.
66
+ * Will render either an accordion or group of nested child item links.
67
67
  *
68
68
  * Accepts any #EuiCollapsibleNavItemProps. Or, to render completely custom
69
69
  * subitem content, pass an object with a `renderItem` callback.
@@ -90,9 +90,16 @@ EuiCollapsedNavItem.propTypes = {
90
90
  renderItem: PropTypes.func
91
91
  }).isRequired),
92
92
  /**
93
- * If `items` is specified, use this prop to pass any prop that `EuiAccordion`
94
- * accepts, including props that control the toggled state of the accordion
95
- * (e.g. `initialIsOpen`, `forceState`)
93
+ * If set to false, will (visually) render an always-open accordion that cannot
94
+ * be toggled closed. Ignored if `items` is not passed.
95
+ *
96
+ * @default true
97
+ */
98
+ isCollapsible: PropTypes.bool,
99
+ /**
100
+ * If `items` is specified, and `isCollapsible` is not set to false, you may
101
+ * use this prop to pass any prop that `EuiAccordion` accepts, including props
102
+ * that control the toggled state of the accordion (e.g. `initialIsOpen`, `forceState`)
96
103
  */
97
104
  accordionProps: PropTypes.any,
98
105
  /**
@@ -108,7 +108,7 @@ EuiCollapsedNavPopover.propTypes = {
108
108
  */
109
109
  href: PropTypes.string,
110
110
  /**
111
- * When passed, an `EuiAccordion` with nested child item links will be rendered.
111
+ * Will render either an accordion or group of nested child item links.
112
112
  *
113
113
  * Accepts any #EuiCollapsibleNavItemProps. Or, to render completely custom
114
114
  * subitem content, pass an object with a `renderItem` callback.
@@ -141,9 +141,16 @@ EuiCollapsedNavPopover.propTypes = {
141
141
  renderItem: PropTypes.func
142
142
  }).isRequired).isRequired]),
143
143
  /**
144
- * If `items` is specified, use this prop to pass any prop that `EuiAccordion`
145
- * accepts, including props that control the toggled state of the accordion
146
- * (e.g. `initialIsOpen`, `forceState`)
144
+ * If set to false, will (visually) render an always-open accordion that cannot
145
+ * be toggled closed. Ignored if `items` is not passed.
146
+ *
147
+ * @default true
148
+ */
149
+ isCollapsible: PropTypes.bool,
150
+ /**
151
+ * If `items` is specified, and `isCollapsible` is not set to false, you may
152
+ * use this prop to pass any prop that `EuiAccordion` accepts, including props
153
+ * that control the toggled state of the accordion (e.g. `initialIsOpen`, `forceState`)
147
154
  */
148
155
  accordionProps: PropTypes.any,
149
156
  /**
@@ -91,6 +91,31 @@ export var EuiCollapsibleNavAccordion = function EuiCollapsibleNavAccordion(_ref
91
91
  }));
92
92
  };
93
93
  EuiCollapsibleNavAccordion.propTypes = {
94
+ className: PropTypes.string,
95
+ "aria-label": PropTypes.string,
96
+ "data-test-subj": PropTypes.string,
97
+ css: PropTypes.any,
98
+ /**
99
+ * The nav item link.
100
+ * If not included, and no `onClick` is specified, the nav item
101
+ * will render as an non-interactive `<span>`.
102
+ */
103
+ href: PropTypes.string,
104
+ /**
105
+ * If `items` is specified, and `isCollapsible` is not set to false, you may
106
+ * use this prop to pass any prop that `EuiAccordion` accepts, including props
107
+ * that control the toggled state of the accordion (e.g. `initialIsOpen`, `forceState`)
108
+ */
109
+ accordionProps: PropTypes.any,
110
+ /**
111
+ * If a `href` is specified, use this prop to pass any prop that `EuiLink` accepts
112
+ */
113
+ linkProps: PropTypes.any,
114
+ /**
115
+ * Highlights whether an item is currently selected, e.g.
116
+ * if the user is on the same page as the nav link
117
+ */
118
+ isSelected: PropTypes.bool,
94
119
  /**
95
120
  * Determines whether the item should render as a top-level nav item
96
121
  * or a nested nav subitem. Set internally by EUI
@@ -127,7 +152,7 @@ EuiCollapsibleNavAccordion.propTypes = {
127
152
  */
128
153
  href: PropTypes.string,
129
154
  /**
130
- * When passed, an `EuiAccordion` with nested child item links will be rendered.
155
+ * Will render either an accordion or group of nested child item links.
131
156
  *
132
157
  * Accepts any #EuiCollapsibleNavItemProps. Or, to render completely custom
133
158
  * subitem content, pass an object with a `renderItem` callback.
@@ -136,9 +161,16 @@ EuiCollapsibleNavAccordion.propTypes = {
136
161
  renderItem: PropTypes.func
137
162
  }).isRequired),
138
163
  /**
139
- * If `items` is specified, use this prop to pass any prop that `EuiAccordion`
140
- * accepts, including props that control the toggled state of the accordion
141
- * (e.g. `initialIsOpen`, `forceState`)
164
+ * If set to false, will (visually) render an always-open accordion that cannot
165
+ * be toggled closed. Ignored if `items` is not passed.
166
+ *
167
+ * @default true
168
+ */
169
+ isCollapsible: PropTypes.bool,
170
+ /**
171
+ * If `items` is specified, and `isCollapsible` is not set to false, you may
172
+ * use this prop to pass any prop that `EuiAccordion` accepts, including props
173
+ * that control the toggled state of the accordion (e.g. `initialIsOpen`, `forceState`)
142
174
  */
143
175
  accordionProps: PropTypes.any,
144
176
  /**
@@ -18,7 +18,7 @@ export var euiCollapsibleNavAccordionStyles = function euiCollapsibleNavAccordio
18
18
  euiCollapsibleNavAccordion: /*#__PURE__*/css(".euiAccordion__button{overflow:hidden;&:hover,&:focus{cursor:default;text-decoration:none;}}.euiAccordion__triggerWrapper{border-radius:", sharedStyles.borderRadius, ";", euiCanAnimate, "{transition:background-color ", sharedStyles.animation, ";}}.euiAccordion__buttonContent{", logicalCSS('max-width', '100%'), " flex-basis:100%;display:flex;align-items:center;}.euiCollapsibleNavLink{", logicalCSS('width', '100%'), ";};label:euiCollapsibleNavAccordion;"),
19
19
  isTopItem: /*#__PURE__*/css("margin:", sharedStyles.padding, ";&>.euiAccordion__triggerWrapper{&:hover{background-color:", sharedStyles.backgroundHoverColor, ";}};label:isTopItem;"),
20
20
  isSelected: /*#__PURE__*/css("&>.euiAccordion__triggerWrapper{background-color:", sharedStyles.backgroundSelectedColor, ";&:hover{background-color:", sharedStyles.backgroundSelectedColor, ";}};label:isSelected;"),
21
- isSubItem: /*#__PURE__*/css("&.euiAccordion-isOpen{", logicalCSS('margin-bottom', euiTheme.size.m), ";};label:isSubItem;"),
21
+ isSubItem: /*#__PURE__*/css("&.euiAccordion-isOpen .euiAccordion__children::after{content:'';display:block;", logicalCSS('height', euiTheme.size.m), ";};label:isSubItem;"),
22
22
  // Arrow element
23
23
  euiCollapsibleNavAccordion__arrow: /*#__PURE__*/css(logicalCSS('margin-right', euiTheme.size.xs), euiCanAnimate, "{transition:background-color ", sharedStyles.animation, ";}&:hover,&:focus-visible{background-color:", euiTheme.colors.lightShade, ";&>.euiIcon{color:", sharedStyles.color, ";}}transform:none!important;&>.euiIcon{color:", sharedStyles.rightIconColor, ";transform:rotate(90deg);", euiCanAnimate, "{transition:transform ", sharedStyles.animation, ",color ", sharedStyles.animation, ";}}&.euiAccordion__arrow[aria-expanded='true']>.euiIcon{color:", sharedStyles.color, ";transform:rotate(-90deg);};label:euiCollapsibleNavAccordion__arrow;")
24
24
  };
@@ -0,0 +1,158 @@
1
+ var _excluded = ["className", "header", "href", "items", "isSubItem", "isSelected", "linkProps", "children"];
2
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
3
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
4
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
5
+ /*
6
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
7
+ * or more contributor license agreements. Licensed under the Elastic License
8
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
9
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
10
+ * Side Public License, v 1.
11
+ */
12
+
13
+ import React from 'react';
14
+ import PropTypes from "prop-types";
15
+ import classNames from 'classnames';
16
+ import { useEuiTheme } from '../../../services';
17
+ import { EuiCollapsibleNavSubItems } from './collapsible_nav_item';
18
+ import { euiCollapsibleNavItemVariables } from './collapsible_nav_item.styles';
19
+ import { EuiCollapsibleNavLink } from './collapsible_nav_link';
20
+ import { jsx as ___EmotionJSX } from "@emotion/react";
21
+ /**
22
+ * Internal nav group. Should look the same as an open accordion,
23
+ * but not be toggle-able to close.
24
+ *
25
+ * Yes, I know this is the 3rd component in EUI named EuiCollapsibleNavGroup :|
26
+ * I'm waiting for serverless's design architecture to settle before untangling
27
+ * this pasghetti
28
+ */
29
+ export var EuiCollapsibleNavGroup = function EuiCollapsibleNavGroup(_ref) {
30
+ var className = _ref.className,
31
+ header = _ref.header,
32
+ href = _ref.href,
33
+ items = _ref.items,
34
+ isSubItem = _ref.isSubItem,
35
+ isSelected = _ref.isSelected,
36
+ linkProps = _ref.linkProps,
37
+ _children = _ref.children,
38
+ rest = _objectWithoutProperties(_ref, _excluded);
39
+ var classes = classNames('euiCollapsibleNavGroup', className);
40
+ var euiTheme = useEuiTheme();
41
+ var sharedStyles = euiCollapsibleNavItemVariables(euiTheme);
42
+ var cssStyles = !isSubItem ? {
43
+ css: {
44
+ margin: sharedStyles.padding,
45
+ label: 'euiCollapsibleNavGroup-isTopItem'
46
+ }
47
+ } : undefined; // Prevents Emotion from generating a selector if no styles need to be applied
48
+
49
+ return ___EmotionJSX("div", _extends({
50
+ className: classes
51
+ }, cssStyles, rest), ___EmotionJSX(EuiCollapsibleNavLink, _extends({
52
+ href: href
53
+ }, linkProps, {
54
+ isSelected: isSelected,
55
+ isSubItem: isSubItem,
56
+ isInteractive: !!(href || rest.onClick || linkProps !== null && linkProps !== void 0 && linkProps.onClick)
57
+ }), header), ___EmotionJSX(EuiCollapsibleNavSubItems, {
58
+ items: items,
59
+ isSubItem: isSubItem,
60
+ className: "euiCollapsibleNavGroup__children"
61
+ }));
62
+ };
63
+ EuiCollapsibleNavGroup.propTypes = {
64
+ className: PropTypes.string,
65
+ "aria-label": PropTypes.string,
66
+ "data-test-subj": PropTypes.string,
67
+ css: PropTypes.any,
68
+ /**
69
+ * The nav item link.
70
+ * If not included, and no `onClick` is specified, the nav item
71
+ * will render as an non-interactive `<span>`.
72
+ */
73
+ href: PropTypes.string,
74
+ /**
75
+ * If set to false, will (visually) render an always-open accordion that cannot
76
+ * be toggled closed. Ignored if `items` is not passed.
77
+ *
78
+ * @default true
79
+ */
80
+ isCollapsible: PropTypes.bool,
81
+ /**
82
+ * If a `href` is specified, use this prop to pass any prop that `EuiLink` accepts
83
+ */
84
+ linkProps: PropTypes.any,
85
+ /**
86
+ * Highlights whether an item is currently selected, e.g.
87
+ * if the user is on the same page as the nav link
88
+ */
89
+ isSelected: PropTypes.bool,
90
+ /**
91
+ * Determines whether the item should render as a top-level nav item
92
+ * or a nested nav subitem. Set internally by EUI
93
+ */
94
+ isSubItem: PropTypes.bool,
95
+ header: PropTypes.node.isRequired,
96
+ items: PropTypes.arrayOf(PropTypes.shape({
97
+ /**
98
+ * Required text to render as the nav item title
99
+ */
100
+ title: PropTypes.string,
101
+ /**
102
+ * Allows customizing the title element.
103
+ * Consider using a heading element for better accessibility.
104
+ * Defaults to an unsemantic `span` or `div`, depending on context.
105
+ */
106
+ titleElement: PropTypes.oneOf(["h2", "h3", "h4", "h5", "h6", "span", "div"]),
107
+ /**
108
+ * Optional icon to render to the left of title content
109
+ */
110
+ icon: PropTypes.oneOfType([PropTypes.oneOf(["accessibility", "addDataApp", "advancedSettingsApp", "agentApp", "aggregate", "analyzeEvent", "annotation", "apmApp", "apmTrace", "appSearchApp", "apps", "arrowDown", "arrowLeft", "arrowRight", "arrowUp", "arrowStart", "arrowEnd", "article", "asterisk", "at", "auditbeatApp", "beaker", "bell", "bellSlash", "beta", "bolt", "boxesHorizontal", "boxesVertical", "branch", "branchUser", "broom", "brush", "bug", "bullseye", "calendar", "canvasApp", "casesApp", "check", "checkInCircleFilled", "cheer", "classificationJob", "clock", "cloudDrizzle", "cloudStormy", "cloudSunny", "cluster", "codeApp", "color", "compute", "console", "consoleApp", "container", "continuityAbove", "continuityAboveBelow", "continuityBelow", "continuityWithin", "controlsHorizontal", "controlsVertical", "copy", "copyClipboard", "createAdvancedJob", "createMultiMetricJob", "createPopulationJob", "createSingleMetricJob", "cross", "crossClusterReplicationApp", "crosshairs", "currency", "cut", "dashboardApp", "dataVisualizer", "database", "desktop", "devToolsApp", "discoverApp", "discuss", "document", "documentEdit", "documentation", "documents", "dot", "dotInCircle", "doubleArrowLeft", "doubleArrowRight", "download", "editorAlignCenter", "editorAlignLeft", "editorAlignRight", "editorBold", "editorChecklist", "editorCodeBlock", "editorComment", "editorDistributeHorizontal", "editorDistributeVertical", "editorHeading", "editorItalic", "editorItemAlignBottom", "editorItemAlignCenter", "editorItemAlignLeft", "editorItemAlignMiddle", "editorItemAlignRight", "editorItemAlignTop", "editorLink", "editorOrderedList", "editorPositionBottomLeft", "editorPositionBottomRight", "editorPositionTopLeft", "editorPositionTopRight", "editorRedo", "editorStrike", "editorTable", "editorUnderline", "editorUndo", "editorUnorderedList", "email", "empty", "emsApp", "eql", "eraser", "error", "exit", "expand", "expandMini", "exportAction", "eye", "eyeClosed", "faceHappy", "faceNeutral", "faceSad", "filebeatApp", "filter", "filterExclude", "filterIgnore", "filterInclude", "filterInCircle", "flag", "fleetApp", "fold", "folderCheck", "folderClosed", "folderExclamation", "folderOpen", "frameNext", "framePrevious", "fullScreen", "fullScreenExit", "function", "gear", "gisApp", "glasses", "globe", "grab", "grabHorizontal", "grabOmnidirectional", "gradient", "graphApp", "grid", "grokApp", "heart", "heartbeatApp", "heatmap", "help", "home", "iInCircle", "image", "importAction", "indexClose", "indexEdit", "indexFlush", "indexManagementApp", "indexMapping", "indexOpen", "indexPatternApp", "indexRollupApp", "indexRuntime", "indexSettings", "indexTemporary", "infinity", "inputOutput", "inspect", "invert", "ip", "key", "keyboard", "kqlField", "kqlFunction", "kqlOperand", "kqlSelector", "kqlValue", "kubernetesNode", "kubernetesPod", "launch", "layers", "lensApp", "lettering", "lineDashed", "lineDotted", "lineSolid", "link", "list", "listAdd", "lock", "lockOpen", "logoAWS", "logoAWSMono", "logoAerospike", "logoApache", "logoAppSearch", "logoAzure", "logoAzureMono", "logoBeats", "logoBusinessAnalytics", "logoCeph", "logoCloud", "logoCloudEnterprise", "logoCode", "logoCodesandbox", "logoCouchbase", "logoDocker", "logoDropwizard", "logoElastic", "logoElasticStack", "logoElasticsearch", "logoEnterpriseSearch", "logoEtcd", "logoGCP", "logoGCPMono", "logoGithub", "logoGmail", "logoGolang", "logoGoogleG", "logoHAproxy", "logoIBM", "logoIBMMono", "logoKafka", "logoKibana", "logoKubernetes", "logoLogging", "logoLogstash", "logoMaps", "logoMemcached", "logoMetrics", "logoMongodb", "logoMySQL", "logoNginx", "logoObservability", "logoOsquery", "logoPhp", "logoPostgres", "logoPrometheus", "logoRabbitmq", "logoRedis", "logoSecurity", "logoSiteSearch", "logoSketch", "logoSlack", "logoUptime", "logoVulnerabilityManagement", "logoWebhook", "logoWindows", "logoWorkplaceSearch", "logsApp", "logstashFilter", "logstashIf", "logstashInput", "logstashOutput", "logstashQueue", "machineLearningApp", "magnet", "magnifyWithExclamation", "magnifyWithMinus", "magnifyWithPlus", "managementApp", "mapMarker", "memory", "menu", "menuDown", "menuLeft", "menuRight", "menuUp", "merge", "metricbeatApp", "metricsApp", "minimize", "minus", "minusInCircle", "minusInCircleFilled", "mobile", "monitoringApp", "moon", "namespace", "nested", "node", "notebookApp", "number", "offline", "online", "outlierDetectionJob", "package", "packetbeatApp", "pageSelect", "pagesSelect", "palette", "paperClip", "partial", "pause", "payment", "pencil", "percent", "pin", "pinFilled", "pipelineApp", "pivot", "play", "playFilled", "plus", "plusInCircle", "plusInCircleFilled", "popout", "push", "questionInCircle", "quote", "recentlyViewedApp", "refresh", "regressionJob", "reporter", "reportingApp", "returnKey", "save", "savedObjectsApp", "scale", "search", "searchProfilerApp", "securityAnalyticsApp", "securityApp", "securitySignal", "securitySignalDetected", "securitySignalResolved", "sessionViewer", "shard", "share", "snowflake", "sortAscending", "sortDescending", "sortDown", "sortLeft", "sortRight", "sortUp", "sortable", "spaces", "spacesApp", "sparkles", "sqlApp", "starEmpty", "starEmptySpace", "starFilled", "starFilledSpace", "starMinusEmpty", "starMinusFilled", "starPlusEmpty", "starPlusFilled", "stats", "stop", "stopFilled", "stopSlash", "storage", "string", "submodule", "sun", "swatchInput", "symlink", "tableDensityCompact", "tableDensityExpanded", "tableDensityNormal", "tableOfContents", "tag", "tear", "temperature", "timeline", "timelineWithArrow", "timelionApp", "timeRefresh", "timeslider", "training", "transitionLeftIn", "transitionLeftOut", "transitionTopIn", "transitionTopOut", "trash", "unfold", "unlink", "upgradeAssistantApp", "uptimeApp", "user", "userAvatar", "users", "usersRolesApp", "vector", "videoPlayer", "visArea", "visAreaStacked", "visBarHorizontal", "visBarHorizontalStacked", "visBarVertical", "visBarVerticalStacked", "visGauge", "visGoal", "visLine", "visMapCoordinate", "visMapRegion", "visMetric", "visPie", "visTable", "visTagCloud", "visText", "visTimelion", "visVega", "visVisualBuilder", "visualizeApp", "vulnerabilityManagementApp", "warning", "alert", "watchesApp", "wordWrap", "wordWrapDisabled", "workplaceSearchApp", "wrench", "tokenAlias", "tokenAnnotation", "tokenArray", "tokenBinary", "tokenBoolean", "tokenClass", "tokenCompletionSuggester", "tokenConstant", "tokenDate", "tokenElement", "tokenEnum", "tokenEnumMember", "tokenEvent", "tokenException", "tokenField", "tokenFile", "tokenFlattened", "tokenFunction", "tokenGeo", "tokenHistogram", "tokenInterface", "tokenIP", "tokenJoin", "tokenKey", "tokenKeyword", "tokenMethod", "tokenMetricCounter", "tokenMetricGauge", "tokenModule", "tokenNamespace", "tokenNested", "tokenNull", "tokenNumber", "tokenObject", "tokenOperator", "tokenPackage", "tokenParameter", "tokenPercolator", "tokenProperty", "tokenRange", "tokenRankFeature", "tokenRankFeatures", "tokenRepo", "tokenSearchType", "tokenShape", "tokenString", "tokenStruct", "tokenSymbol", "tokenTag", "tokenText", "tokenTokenCount", "tokenVariable", "tokenVectorDense", "tokenDenseVector", "tokenVectorSparse"]).isRequired, PropTypes.string.isRequired, PropTypes.elementType.isRequired]),
111
+ /**
112
+ * Optional props to pass to the title icon
113
+ */
114
+ iconProps: PropTypes.any,
115
+ className: PropTypes.string,
116
+ "aria-label": PropTypes.string,
117
+ "data-test-subj": PropTypes.string,
118
+ css: PropTypes.any,
119
+ /**
120
+ * The nav item link.
121
+ * If not included, and no `onClick` is specified, the nav item
122
+ * will render as an non-interactive `<span>`.
123
+ */
124
+ href: PropTypes.string,
125
+ /**
126
+ * Will render either an accordion or group of nested child item links.
127
+ *
128
+ * Accepts any #EuiCollapsibleNavItemProps. Or, to render completely custom
129
+ * subitem content, pass an object with a `renderItem` callback.
130
+ */
131
+ items: PropTypes.arrayOf(PropTypes.shape({
132
+ renderItem: PropTypes.func
133
+ }).isRequired),
134
+ /**
135
+ * If set to false, will (visually) render an always-open accordion that cannot
136
+ * be toggled closed. Ignored if `items` is not passed.
137
+ *
138
+ * @default true
139
+ */
140
+ isCollapsible: PropTypes.bool,
141
+ /**
142
+ * If `items` is specified, and `isCollapsible` is not set to false, you may
143
+ * use this prop to pass any prop that `EuiAccordion` accepts, including props
144
+ * that control the toggled state of the accordion (e.g. `initialIsOpen`, `forceState`)
145
+ */
146
+ accordionProps: PropTypes.any,
147
+ /**
148
+ * If a `href` is specified, use this prop to pass any prop that `EuiLink` accepts
149
+ */
150
+ linkProps: PropTypes.any,
151
+ /**
152
+ * Highlights whether an item is currently selected, e.g.
153
+ * if the user is on the same page as the nav link
154
+ */
155
+ isSelected: PropTypes.bool,
156
+ renderItem: PropTypes.func
157
+ }).isRequired).isRequired
158
+ };